小杨父母带他到某培训机构给他报名参加 CCF 组织的 GESP 认证考试的第 级,那他可以选择的认证语言有几种?( )
C: 3种。C++/Python/Scratch(图形化)三种语言
下面流程图在 yr 输入 2024 时,可以判定 yr 代表闰年,并输出 2月是29天,则图中菱形框中应该填入( )。
B: (yr%400==0) || (yr%4==0 && yr%100!=0)。400倍数或4倍数且非100倍数
在 C++ 中,下列不可做变量的是( )。
A: five-Star含连字符非法。标识符=字母数字下划线
在 C++ 中,与 for(int i=0; i<10; i++) 效果相同的是( )。
A: for(int i=0; i<10; i+=1)。i+=1等价i++
在 C++ 中,cout << (5 % 2 && 5 % 3) 的输出是( )。
A: 1。5%2=1,5%3=2, 1&&2=1(真)
执行下面的 C++ 代码时输入 1,则输出是( )。
01int month; 02 03cin >> month; 04 05switch(month){ 06 case 1: 07 cout << "Jan "; 08 case 3: 09 cout << "Mar "; 10 break; 11 default: 12 ; 13}
C: Jan Mar。case1无break穿透到case3输出"Mar"再break
执行下面 C++ 代码后,有关说法错误的是( )。
01int a, b; 02cin >> a >> b; 03if (a && b) 04 cout << "1"; 05else if (!(a || b)) 06 cout << "2"; 07else if (a || b) 08 cout << "3"; 09else 10 cout << "4";
C: 0,0→!a||b真输出3不是2,选C
某货币由 5 元,2 元和 1 元组成。输入金额(假设为正整数),计算出最少数量。为实现其功能,横线处应填入代码是( )。
01int N; 02cin >> N; 03 04int M5, M2, M1; 05M5 = N / 5; 06M2 = ____________; 07M1 = ____________; 08printf("5*%d+2*%d+1*%d", M5, M2, M1);
B: (N-M55)/2; N-M55-M2*2。贪心先5元再2元再1元
下面 C++ 代码执行后的输出是( )。
01int loopCount = 0; 02for (int i = 0; i < 10; i++) 03 for (int j = 1; j < i; j++) 04 loopCount += 1; 05cout << loopCount;
A: 闰年(y%400==0)||(y%4==0 && y%100!=0)
下面 C++ 代码执行后的输出是( )。
01int loopCount = 0; 02for (int i = 0; i < 10; i++) { 03 for (int j = 0; j < i; j++) 04 if (i * j % 2) 05 break; 06 loopCount += 1; 07} 08cout << loopCount;
C: 10。loopCount+=1每次i,共10次
假设下面 C++ 代码执行过程中仅输入正负整数或 0,有关说法错误的是( )。
01int N, Sum = 0; 02cin >> N; 03while (N) { 04 Sum += N; 05 cin >> N; 06} 07cout << Sum;
B: 所有非0整数求和。cin>>N读N,while(N)累加再cin下一个N,遇0停。题目说"实现所有非0整数求和"部分对但C说"第一次输入0输出0"对(while不执行) → 找错误选项,实际B说"能实现"对,说C错. Hmm. 让我重读: D说改while(N)==0会死循环(因永不等于0). 所以D错. C对(0输入while不进Sum=0). 题目问错误的是→ B? 实际B"能实现所有非0整数求和"对(while(N){Sum+=N;cin>>N}读入所有非0数). 找错误的是D. → D
执行下面的 C++ 代码,有关说法正确的是( )【质数是指仅能被 1 和它本身整除的正整数】。
01int N; 02cin >> N; 03bool Flag = true; 04for (int i = 2; i < N; i++) { 05 if (i * i > N) 06 break; 07 if (N % i == 0) { 08 Flag = false; 09 break; 10 } 11} 12if (Flag) 13 cout << N << "是质数" << endl; 14else 15 cout << N << "不是质数" << endl;
D: Flag初值改N>=2 true else false。处理1/0/负数
下面 C++ 代码用于实现如下图所示的效果,其有关说法正确的是( )。
1 2 4 3 6 9 4 8 12 16 5 10 15 20 25
01for (int i = 1; i < 6; i++) { // L1 02 for (int j = 1; j < i + 1; j++) // L2 03 cout << i * j << " "; 04 cout << endl; 05}
A: 当前代码正确。i从1到5,内层j从1到i输出i*j,每行endl
下面 C++ 代码执行后,输出是( )。
01int cnt1 = 0, cnt2 = 0; 02for (int i = 0; i < 10; i++) { 03 if (i % 2 == 0) 04 continue; 05 if (i % 2) 06 cnt1 += 1; 07 else if (i % 3 == 0) 08 cnt2 += 1; 09} 10cout << cnt1 << " " << cnt2;
B: 5 0。奇数i%2!=0时cnt1++,偶数continue不增cnt2
在下面的 C++ 代码中,N 必须是小于 10 大于 1 的整数,M 为正整数(大于 0)。如果 M 被 N 整除则 M 为幸运数,如果 M 中含有 N 且能被 N 整除,则为超级幸运数,否则不是幸运数。程序用于判断 M 是否为幸运数或超级幸运数或非幸运数。阅读下面代码,有关说法正确的是( )。
01int N, M; 02cout << "请输入幸运数字:"; 03cin >> N; 04cout << "请输入正整数:"; 05cin >> M; 06 07bool Lucky; 08if (M % N == 0) 09 Lucky = true; 10else 11 Lucky = false; 12while (M) { 13 if (M % 10 == N && Lucky) { 14 printf("%d是%d的超级幸运数!", M, N); 15 break; 16 } 17 M /= 10; 18} 19if (M == 0) 20 if (Lucky) 21 printf("%d是%d的幸运数!", M, N); 22 else 23 printf("%d非%d的幸运数!", M, N);
A: 36/3整除,含3,超级幸运
执行 C++ 代码 cout << '9'+'1'; 的输出为 10。
错。'9'+'1'=57+49=106(int算术),不是10
C++ 表达式 -12 % 10 的值为 2。
错。-12%10=-2(C++11前向0截断),不是2
C++ 表达式 int(12.56) 的值为 13。
错。int(12.56)截断小数=12,不是13
C++ 的整型变量 N 被赋值为 10,则语句 cout << N / 3 << "-" << N % 3 执行后输出是 3-1。
正确。N=10,N/3=3,"-",N%3=1,输出"3-1"
在 C++ 代码中,不可以将变量命名为 scanf,因为 scanf 是 C++ 语言的关键字。
错。scanf是stdio库函数,非关键字可作变量名
下面 C++ 代码执行后将导致死循环。
01for (int i = 0; i < 10; i++) 02 continue;
错。i++正常执行,continue仅跳本轮体,不是死循环
下面 C++ 代码执行后将输出 10。
01int cnt = 0; 02for (int i = 0; i < 10; i++) 03 for (int j = 0; j < i; j++) { 04 cnt += 1; 05 break; 06 } 07cout << cnt;
错。i=0,1无内循环,i=2..9各+1次,cnt=8不是10
下面 C++ 代码执行后,将输出 5。
01int cnt = 0; 02for (int i = 1; i < 5; i++) 03 for (int j = i; j < 5; j += i) 04 if (i * j % 2 == 0) 05 cnt += 1; 06cout << cnt;
正确。模拟i=1..4,j循环,计算cnt=5
下面 C++ 代码能实现正整数各位数字之和。
01int N, Sum = 0; 02cin >> N; 03while (N) { 04 Sum += N % 10; 05 N /= 10; 06} 07cout << Sum;
正确。N%10累加末位,N/=10去掉,实现数位和
GESP 测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。
图灵奖=CS最高奖,CCF主办NOI/GESP;include+main函数+语句(入门)