Problem O: GESP23年12月二级认证真题
Description
第 1 题 以下不可以做为C++变量的是( )。
A. FiveStar
B. fiveStar
C. 5Star
D. Star5
第 2 题 在C++中 ,与 for(int i = 10; i < 20; i +=2) cout << i; 输出结果相同的是( )。
A. for(int i = 10; i < 19; i +=2) cout << i;
B. for(int i = 11; i < 19; i +=2) cout << i;
C. for(int i = 10; i < 21; i +=2) cout << i;
D. 以上均不对
第 3 题 以下C++代码实现从⼩到⼤的顺序输出能整除N的数(N的因数) ,例如N= 18时输出1 2 3 6 9 18 ,横线处应填( )。
1 cin>>N;
2 for( )
3 if(N%i == 0)
4 cout<<i<<” “;
A. int i = 0; i < N; i++
B. int i = 1; i < N; i++
C. int i = 0; i < N+1; i++
D. int i = 1; i < N+1; i++
第 4 题 下⾯C++代码⽤于判断输⼊的整数是否为对称数 ,如1221 、 12321是对称数 ,但123 、972不是对称数 。下⾯
对该题对应代码的说法 ,正确的是( )。
1 cin >> N;
2 newNum = 0;
3 while (N){
4 newNum = newNum * 10+N% 10;
5 N=N/10;
6 }
7 if(newNum ==N)
8 cout << N << "为对称数";
A. 代码没有语法错误 ,如果N为对称数 ,第8行将能正确输出。
B. 代码没有语法错误 ,但如果N为负数 ,将导致死循环。
C. 代码存在语法错误 ,程序不能被执⾏。
D. 代码没有语法错误 ,但不能达到预期⽬标, 因为循环结束N总为0。
第 5 题 下面C++代码用于判断N(大于等于2的正整数)是否为质数(素数) 。下面对如下代码的说法 ,正确的是 ( ) 。
1 cin>> N;
2 for(i = 2; i< N/2; i++)
3 if(N% i ==0){
4 cout << N<<"不是质数";
5 break;
6 }
7 if(i >= N/2)
8 cout<<N<< "是质数";
A. 代码能正确判断N是否为质数。
B. 代码总是不能判断N是否质数。
C. 删除第5⾏ break ,将能正确判断N是否质数。
D. 代码存在漏洞 ,边界存在问题 ,应将第2⾏和第7⾏的 N / 2 改为 N / 2 + 1 。
第 6 题 下⾯C++代码执⾏后的输出是( )。
1 N=4;
2 for(int i =0; i< N; i++){
3 for(int j=1;j<i;j++)
4 if (i*j% 2 ==0)
5 cout <<i << "#";
6 continue;
7 }
8 cout <<"0";
A. 2#3#0
B. 1#2#0
C. 1#0#
D. 2#3#
第 7 题 下面C++代码执⾏后的输出是( )。
1 cnt =0;
2 for(i =1;i<10; i++)
3 for(j =1; j<i;j+=2)
4 if (i* j% 2 ==0){
5 cnt++;
6 break;
7 }
8 if(i>=10) cout<< cnt << "#";
9 cout << cnt;
A. 0
B. 8#8
C. 4
D. 4#4
第 8 题 下⾯C++代码执⾏后的输出是( )。
N=100;
while (N>0)
if (N%2) break;
else if (N%3==0) N-=5;
else N-=20;
cout << N;
A. 100
B. 95
C. 55
D. 0
第 9 题 下⾯C++代码执⾏后的输出是( )。
x= 1;
while (x<100){
if (x%3!=0) cout << x<< ",";
else if (x/10) break;
else x+=5;
x+=2;
}
cout<< x;
A. 1
B. 1,3
C. 15,17
D. 1,10,12
第 10 题 下面C++代码执行后的输出是( )。
cnt=0;
for (i=0; i<5;i++)
for (j=0; j<i;j++)
cnt += 1;
cout << cnt;
A. 5
B. 10
C. 20
D. 30
第 11 题 以下C++代码用于输出1- 100(含) 的整数平方数(完全平方数) ,如16是4的平方 ,横线处应填写( )。
for (i=1; i< 100+1;i++)
if( ) cout << i <<” ”;
A. int(sqrt(i)) * int(sqrt(i)) = i
B. int(sqrt(i)) == sqrt(i)
C. int(sqrt(i)) * int(sqrt(i)) == i
D. int(sqrt(i)) = sqrt(i)
第 12 题 下面的C++代码用于实现如下左图所示的效果 ,应在以下右图C++代码中填入( )。
A. 与第8行下面填入一行: cout << nowNum;
B. 与第2行下面填入一行: cout << endl;
C. 与第7行下面填入一行: cout << nowNum;
D. 与第9行下面填入一行: cout << endl;
第 13 题 某公司新出了一款无人驾驶的小汽车 ,通过声控智能驾驶系统 ,乘客只要告诉汽车目的地 ,车子就能自动 选择一条优化路线 ,告诉乘客后驶达那里 。请问下面哪项不是驾驶系统完成选路所必须的 。 ( )
A. 麦克风
B. 扬声器
C. 油量表
D. 传感器
第 14 题 现代计算机是指电子计算机 ,它所基于的是( )体系结构。
A. 艾伦 · 图灵
B. 冯 ·诺依曼
C. 阿塔纳索夫
D. 埃克特-莫克利
第 15 题 输入一个正整数N ,想找出它所有相邻的因数对 ,例如 ,输入12, 因数对有(1,2) 、(2,3) 、(3,4) 。下面哪段代 码找不到所有的因数对? ( )
A. for(i=1;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
B. for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
C. for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);
D. for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
第 16题 C++表达式 -7/2 的值为整数-3 。( )
第 17 题 C++表达式 2*int( '9 ')*2 的值为36 。( )
第 18 题 C++表达式 3+2 && 5-5 的值为false 。( )
第 19 题 在C++代码中 ,执⾏ srand(0) 后连续两次执⾏ rand() 的结果相等 。 ( )
第 20 题 C++代码中 while(1){...} 的判断条件不是逻辑值 ,将导致语法错误 。 ( )
第 21 题 执⾏以下C++代码后将输出0 。 ( )
Sum =0;
for (i=-500;i<500;i++)
Sum += i;
cout<<Sum;
第 22 题 在C++代码中 ,运算符只能处理相同的数据类型 ,不同类型之间必须转换为相同的数据类型 。 ( )
第 23 题 在C++代码中 ,虽然变量都有数据类型 ,但同⼀个变量也可以先后⽤不同类型的值赋值 。 ( )
第 24 题 ⼩杨最近在准备考GESP ,他⽤的Dev C++来练习和运⾏程序 ,所以Dev C++也是⼀个⼩型操作系统 。 ( )
第 25 题 任何⼀个 while 循环都可以转化为等价的 for 循环( )。
Input
前十五题为选择题,输入选择的字母。
后十题为判断题,如果认为是正确,填T,错误的填F
比如:
16 T