在 C++ 中,下列不可做变量的是( )。
A: five-Star含连字符非法。标识符=字母数字下划线,_开头合法
C++ 表达式 3 - 3 * 3 / 5 的值是( )。
3-3*3/5=3-9/5=3-1=2。*和/同级左结合
在 C++ 中,假设 N 为正整数,则表达式 cout << (N % 3 + N % 7) 可能输出的最大值是( )。
N%3∈{0,1,2},N%7∈{0..6},最大=2+6=8。N=13:13%3=1,13%7=6→7;N=8:8%3=2,8%7=1→3;N=20:2+6=8
C++ 语句 printf("5%%2={%d}\n", 5 % 2) 执行后的输出是( )。
printf("5%%2={%d}\n", 5%2): %%输出%, %d替换1,得"5%2={1}"
对整型变量 i,执行 C++ 语句 cin >> i, cout << i 时如果输入 5+2,下述说法正确的是( )。
cin>>i读整数,遇+停止,读入5,i=5,输出5。不会报错也不会计算5+2
下面 C++ 代码执行后的输出是( )。
float a;
a = 101.101;
a = 101;
printf("a+1={%.0f}", a + 1);
a=101.101后a=101(浮点=整数),a+1=102.0,%.0f保留0位小数输出102,字面"a+1={102}"
表达式 9 / 4 - 6 % (6 - 2) * 10 的值是( )。
9/4-6%(6-2)10=2-6%410=2-210=2-20=-18。括号优先,/%同级
下面 C++ 代码执行时输入 10 后,正确的输出是( )。
01int N; 02cout << "请输入正整数:"; 03cin >> N; 04if (N % 3) 05 printf("第5行代码%2d", N % 3); 06else 07 printf("第6行代码%2d", N % 3);
N=10,10%3=1真,执行第5行printf("第5行代码%2d",1)。%2d宽度2右对齐输出" 1",得"第5行代码 1"
下面 C++ 代码执行后输出是( )。
01int Sum = 0, i = 0; 02for ( ; i < 10; ) 03 Sum += i++; 04cout << i << " " << Sum;
for(;i<10;)Sum+=i++:i=0..9共10次,Sum=0+1+...+9=45,循环后i=10,输出"10 45"
下面 C++ 代码用于判断 N 是否为质数(只能被 1 和它本身整除的正整数)。程序执行后,下面有关描述正确的是( )。
01int N; 02cout << "请输入整数:"; 03cin >> N; 04 05bool Flag = false; 06 07if (N >= 2) { 08 Flag = true; 09 for (int i = 2; i < N; i++) 10 if (N % i == 0) { 11 Flag = false; 12 break; 13 } 14} 15 16if (Flag) 17 cout << "是质数"; 18else 19 cout << "不是质数";
C: 输入2时循环for(i=2;i<2;i++)不进,Flag保持true,输出"是质数"。A错(N<2 Flag=false);B错(输出是质数);D错(改后漏N=2)
下面的 C++ 代码用于求 1~N 之间所有奇数之和,其中 N 为正整数,如果 N 为奇数,则求和时包括 N。有关描述错误的是( )。
01int N; 02cout << "请输入正整数:"; 03cin >> N; 04 05int i = 1, Sum = 0; 06 07while (i <= N) { 08 if (i % 2 == 1) 09 Sum += i; 10 i += 1; 11} 12 13cout << i << " " << Sum;
A错(描述错误项,实际描述"输入10输出11 25"正确)。D对:删if改i+=2步长2,只累加奇数。选A
如果一个整数 N 能够表示为 X * X 的形式,那么它就是一个完全平方数,下面 C++ 代码用于完成判断 N 是否为一个完全平方数,在横线处应填入的代码是( )。
01int N; 02 03cin >> N; 04for (int i = 0; i <= N; i++) 05 if (____________) 06 cout << N << "是一个完全平方数\n";
D: ii==N。N=X²则存在i=X使ii=N。枚举i判断是否有i²=N
执行下面 C++ 代码后输出的 cnt 的值是( )。
01int cnt = 0; 02 03for (int i = 0; i * i < 64; i += 2) 04 cnt++; 05cout << cnt;
i*i<64: i=0,2,4,6时i²=0,4,16,36<64;i=8时64不<64停。cnt++4次(cnt=4)
小杨父母带他到某培训机构给他报名参加 CCF 组织的 GESP 认证考试的第 级,那他可以选择的认证语言有几种?( )
C: GESP 1级可选C++/Python/Scratch(图形化)三种语言
ENIAC 于 1946 年投入运行,是世界上第一台真正意义上的计算机,它的主要部件都是( )组成的。
B: 电子管(真空管)。ENIAC用18000+电子管,第一代计算机;晶体管是第二代;集成电路是第三、四代
在 C++ 代码中变量 X 被赋值为 16.44,则 cout << X / 10 执行后输出的一定是 1。
错。X=16.44若为double,X/10=1.644;若为int,截断为16,16/10=1。"一定是1"错误
C++ 的整型变量 N 被赋值为 10,则语句 cout << N / 4 << "->" << N % 4 << "->" << N / 4.0 执行后输出是 2->2->2.0。
错。N=10, N/4=2, N%4=2, N/4.0=2.5,输出"2->2->2.5"不是"2->2->2.0"
定义 C++ 的 float 型变量 N,则语句 cin >> N; cout << int(float(N)) 可以输入正负整数和浮点数,并将其转换为整数后输出。
正确。cin>>float N可读正负整数和浮点数,int(float(N))强转整数,截断小数
C++ 的整型 N 被赋值为 5,语句 printf("%d*2", N) 执行后将输出 10。
错。printf("%d2", N)输出"52"而非10。"*2"是字面量,仅N填入第一个%d
在 C++ 中,break 语句用于终止当前层次的循环,循环可以是 for 循环,也可以是 while 循环。
正确。break对for/while/do-while都适用,跳出最近一层循环
在 C++,continue 语句通常与 if 语句配合使用。
正确。continue通常与if配合,条件满足时跳过本次循环剩余体
在 C++ 代码中,不可以将变量命名为 printf,因为 printf 是 C++ 语言的关键字。
错。printf/scanf是C/C++标准库函数,非关键字,虽不建议可作变量名
在 C++ 中有整型变量 N,则表达式 N += 8 / 4 // 2 相当于 N += 8 / (4 / 2)。
错。C++无//运算符,//是注释,本题应N+=8/4/2=4,而非8/4//2(非法)
C++ 中定义变量 int N,则表达式 !!N 的值也是 N 的值。
错。!!N布尔化:0→0,非0→1。仅当N=0或1时!!N=N,其他N不等
GESP 测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。
正确。GESP同级别认证不限定语言(C++/Python/Scratch等),只考察计算思维能力