#GESPC2202406. GESP-2024年6月份 C++ 二级 客观题

GESP-2024年6月份 C++ 二级 客观题

单选题

  1. ⼩杨⽗母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语⾔有⼏ 种?( ) {{ select(1) }}
  • 1
  • 2
  • 3
  • 4

2 下⾯流程图在yr输⼊2024时,可以判定yr代表闰年,并输出 2月是29天 ,则图中菱形框中应该填⼊( )。

image {{ select(2) }}

  • (yr%400==0) || (yr%4==0)
  • (yr%400==0) || (yr%4==0 && yr%100!=0)
  • (yr%400==0) && (yr%4==0)
  • (yr%400==0) && (yr%4==0 && yr%100!=0)

3 在C++中,下列不可做变量的是( )。 {{ select(3) }}

  • five-Star
  • five_star
  • fiveStar
  • _fiveStar

4 在C++中,与for(int i=0; i<10; i++) 效果相同的是( )。 {{ select(4) }}

  • for(int i=0; i<10; i+=1)
  • for(int i=1; i<=10; i++)
  • for(int i=10; i>0; i--)
  • for(int i=10; i<1; i++)

5 在C++中,cout << (5 % 2 && 5 % 3)的输出是( )。 {{ select(5) }}

  • 1
  • 2
  • true
  • flase
  1. 执⾏下⾯的C++代码时输⼊ 1 ,则输出是( )。
int month;
 cin >> month;
 switch(month){
 	case 1:
 		cout << "Jan ";
 	case 3:
 		cout << "Mar ";
 		break;
 	default:
 		;
 }

{{ select(6) }}

  • Jan
  • Mar
  • Jan Mar
  • 以上均不对

7 执⾏下⾯C++代码后,有关说法错误的是( )。

int a, b;
 cin >> a >> b;
 if (a && b)
	 cout << "1";
 else if (!(a || b))
 	cout << "2";
 else if (a || b)
 	cout << "3";
 else
 	cout << "4";

{{ select(7) }}

  • 如果先后输⼊1和1,则将输出1
  • 如果先后输⼊0和1或者1和0,则将输出3
  • 如果先后输⼊0和0,则将输出2
  • 如果先后输⼊0和0,则将输出4

8 某货币由5元,2元和1元组成。输⼊⾦额(假设为正整数),计算出最少数量。为实现其功能,横线处应填 ⼊代码是( )。

int N;
 cin >>N;
 int M5,M2,M1;
 M5 = N / 5;
 M2 = ______________;
 M1 = ______________;
 printf("5*%d+2*%d+1*%d", M5, M2, M1);

{{ select(8) }}

  • 第1横线处应填⼊:N / 2 第2横线处应填⼊:N - M5 - M2
  • 第1横线处应填⼊:(N - M5 * 5) / 2 第2横线处应填⼊:N - M5 * 5 - M2 * 2
  • 第1横线处应填⼊:N - M5 * 5 / 2 第2横线处应填⼊:N - M5 * 5 - M2 * 2
  • 第1横线处应填⼊:(N - M5 * 5) / 2 第2横线处应填⼊:N - M5 - M2

9 下面C++代码执行后的输出是( )。

int loopCount = 0;
 for (int i=0; i < 10; i++)
 	for (int j=1; j < i; j++)
		 loopCount += 1;
 cout << loopCount;

{{ select(9) }}

  • 55
  • 45
  • 36
  • 28

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

int loopCount = 0;
 for (int i=0; i < 10; i++){
 	for (int j=0; j < i; j++)
 		if (i * j % 2)
 			break;
 		loopCount += 1;
 }
 cout << loopCount;

{{ select(10) }}

  • 25
  • 16
  • 10
  • 9

11 假设下⾯C++代码执⾏过程中仅输⼊正负整数或0,有关说法错误的是( )。

int N,Sum = 0;
 cin >> N;
 while (N){
     Sum += N;
     cin >> N;
 }
 cout << Sum;

{{ select(11) }}

  • 执⾏上⾯代码如果输⼊0,将终⽌循环
  • 执⾏上⾯代码能实现所有⾮0整数的求和
  • 执⾏上⾯代码第⼀次输⼊0,最后将输出0
  • 执⾏上⾯代码将陷⼊死循环,可将while (N) 改为while (N==0)

12 执⾏下⾯的C++代码,有关说法正确的是( )【质数是指仅能被1和它本⾝整除的正整数】

int N;
 cin >> N;
 bool Flag = true;
 for ( int i = 2; i < N; i++){
 	if (i * i > N)
 		break;
 	if (N % i == 0){
 		Flag = false;
 		break;
 	}
 }
 if (Flag)
 	cout << N << "是质数" << endl;
 else
 	cout << N << "不是质数" << endl;

{{ select(12) }}

  • 如果输⼊正整数,上⾯代码能正确判断N是否为质数
  • 如果输⼊整数,上⾯代码能正确判断N是否为质数
  • 如果输⼊⼤于等于0的整数,上⾯代码能正确判断N是否质数
  • 如将Flag = true 修改为Flag = N>=2? true:false 则能判断所有整数包括负整数、0、正整数是否为质数

13 下⾯C++代码⽤于实现如下图所⽰的效果,其有关说法正确的是( )。

image

for (int i = 1; i < 6; i++){ // L1
 for (int j = 1; j < i+1; j++) //L2
         cout << i*j << " ";
 cout << endl;
 }

{{ select(13) }}

  • 当前代码能实现预期效果,⽆需调整代码
  • 如果cout << endl; 移到循环L2内部,则可实现预期效果
  • 如果cout << endl; 移到循环L1外部,则可实现预期效果
  • 删除cout << endl; ⾏,则可实现预期效果

14 下⾯C++代码执⾏后,输出是( )。

int cnt1 = 0, cnt2 = 0;
 for (int i = 0; i < 10; i++){
 	if (i % 2 == 0)
 		continue;
	 if (i % 2)
 		cnt1 += 1;
 	else if (i % 3 == 0)
		 cnt2 += 1;
 }
 cout << cnt1 << " " << cnt2;

{{ select(14) }}

  • 5 2
  • 5 0
  • 0 2
  • 0 0

15 在下⾯的C++代码中,N必须是⼩于10⼤于1的整数,M为正整数(⼤于0)。如果M被N整除则M为幸运 数,如果M中含有N且能被N整除,则为超级幸运数,否则不是幸运数。程序⽤于判断M是否为幸运数或超级幸运数或⾮幸运数。阅读下⾯代码,有关说法正确的是( )。

int N, M;
 cout << "请输入幸运数字:";
 cin >> N;
 cout << "请输入正整数:";
 cin >> M;
 bool Lucky;
 if (M % N == 0)
	 Lucky = true;
 else
 	Lucky = false;
 while (M){
 	if (M % 10 == N && Lucky){
 		printf("%d是%d的超级幸运数!", M, N);
 		break;
	 }
 	M /= 10;
 }
 if (M == 0)
 	if (Lucky)
 		printf("%d是%d的幸运数!", M, N);
 	else
 		printf("%d非%d的幸运数!", M, N);

{{ select(15) }}

  • 如果N输⼊3,M输⼊36则将输出:36是3的超级幸运数!
  • 如果N输⼊7,M输⼊21则将输出:21是7的幸运数!
  • 如果N输⼊8,M输⼊36则将输出:36⾮8的超级幸运数!
  • 如果N输⼊3,M输⼊63则将输出:63是3的超级幸运数!

16 执⾏C++代码cout << '9'+'1'; 的输出为10。( ) {{ select(16) }}

17 C++表达式-12 % 10 的值为2。( ) {{ select(17) }}

18 C++表达式int(12.56) 的值为13。( ) {{ select(18) }}

19 C++的整型变量N被赋值为10,则语句cout << N / 3 << "-" << N % 3执⾏后输出是3-1。 ( ) {{ select(19) }}

20 在C++代码中,不可以将变量命名为scanf,因为scanf是C++语⾔的关键字。( ) {{ select(20) }}

21 下⾯C++代码执⾏后将导致死循环。( )

for (int i = 0; i < 10; i++)
 continue;

{{ select(21) }}

22 下⾯C++代码执⾏后将输出10。( )

int cnt = 0;
 for (int i = 0; i < 10; i++)
	 for (int j = 0; j < i; j++){
 		cnt += 1;
 		break;
 }
 cout << cnt;

{{ select(22) }}

23 下⾯C++代码执⾏后,将输出5。( )

int cnt = 0;
 for (int i = 1; i < 5; i++)
 	for (int j = i; j < 5; j +=i)
 		if (i * j % 2 == 0)
			 cnt += 1;
 cout << cnt;

{{ select(23) }}

24 下⾯C++代码能实现正整数各位数字之和。( )

int N,Sum = 0;
 cin >> N;
 while (N){
 		Sum += N % 10;
 		N /= 10;
 }
 cout << Sum;

{{ select(24) }}

25 GESP测试是对认证者的编程能⼒进⾏等级认证,同⼀级别的能⼒基本上与编程语⾔⽆关。( ) {{ select(25) }}