万卷网 > 题目详情
题型:单选题

在数学中N!表示N的阶乘,即1到N的乘积,如3! = 123,且0! = 1。下面的两段C++代码用于求1到N的阶 乘之和,如N为3,则结果是9( 1! + 2! + 3!的值)。选项中的说法正确的是( )。

// 实现1
int i, N;
cin >> N;
int tnt = 0, last = 1;
for (i = 1; i < N + 1; i++) {
	last *= i;
	tnt += last;
}
cout << tnt << endl;
// 实现2
int i, N;
cin >> N;
int tnt = 0, tmp;
for (i = 1; i < N + 1; i++) {
	tmp = 1;
	for (int j = 1; j < i + 1; j++)
		tmp *= j;
	tnt += tmp;
}
cout << tnt << endl;
A.

虽然实现1的代码短小,但效率并不高

B.

实现2的代码效率更高,且更易于理解

C.

实现1因为应用了前项计算结果,计算量更小,因此效率高

D.

两种实现,效率几乎—致

更新时间:2025-06-23 16:27:28 |
【知识点】 CCF—GESP C++二级

相似题推荐

单选题

下面代码用来找出输入的N个正整数中最大的一个。如果将代码段用流程图来表示,则 L1 标记的代码行应 该使用的图形是( )。

int N, max=0, val; 
cin >> N; 

while(N){ 
    cin >> val; 
    if(val > max) // L1 
        max = val; 
    N--; 
} 
cout << max;
A.

圆形框

B.

椭圆形框

C.

平行四边形框

D.

菱形框

2026-09-29
判断题

下面C++代码段执行后将输出 0-3-6-9- 。 ( )

for (int i = 0; i < 10; i++){ 
    if (i % 3) 
        continue; 
    cout << i << "-"; 
}


A.正确 B.错误
2026-09-29
单选题

下面的 C++ 代码段正常执行后其输出的数字图形是( )。

for (i = 1; i < 5; i++){ 
    for (j = 1; j < i+1; j++) 
        cout << j; 
    cout << endl; 
}
A.

1

12

123

1234

B.

1

22

333

4444

C.

1

21

321

4321

D.

4

34

234

1234

2026-09-29
判断题

C++ 语句cout << ('4' % '2' == '2' * '2' % 2); 执行后的输出是1。( )

A.正确 B.错误
2026-09-29
单选题

下面 C++ 代码段执行后,其输出是( )。

int i, j, cnt; 
cnt = 0; 
for (i = 0; i < 5; i++){ 
    i = -i; for (j = i; j < -i; j++) cnt += 1; 
    i = -i; 
} 
cout << cnt;
A.

5

B.

15

C.

20

D.

30

2026-09-29
公众号
客服 反馈
顶部