CCF GESP 2024年12月认证 C++ 2级
2024 年 10 ⽉ 8 ⽇,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰·霍普菲尔德(John J. Hopfield)和杰弗里·辛顿(Geoffrey E. Hinton)。这两位科学家的主要研究方向是( )。
计算机系统中存储的基本单位用 B 来表示,它代表的是( ),比如某个照片大小为 3 MB。
C++ 语句 cout << (3 + 3 % 3 * 2 - 1) 执行后输出的值是( )。
下面 C++ 代码执行后其输出是( )。
for (int i=0; i<10; i++)
printf("%d",i);
下面 C++ 代码的相关说法中,正确的是( )。
int tnt;
for (int i=0; i<10; i++)
tnt += i;
cout << tnt;
下面 C++ 代码执行后输出是( )。
int i;
for (i=1; i<10; i++)
if (i % 2)
continue;
else
break;
cout << i;
下面 C++ 代码执行后的输出是( )。
for (i=0; i<10; i++){
if (i % 3)
continue;
printf("0#");
}
if(i>=10)
printf("1#");
下面 C++ 代码用于输出 0-100 之前(包含 100)能被 7 整除但不能被 3 整除的数,横线处不能填入的代码是( )。
for (i=0; i<100; i++)
if(_____________)
cout << i << endl;
下面 C++ 代码用于求正整数各位数字之和,横线处不应填入代码是( )。
int tnt, N;
printf("请输入正整数:");
cin >> N;
tnt = 0;
while (N != 0){
________________
N /= 10;
}
cout <<tnt;
下图的 C++ 程序执行后的输出是( )。
for (i=0; i<5; i++)
for (j=0; j<i; j++)
cout <<j;
下面 C++ 代码用于实现图示的九九乘法表。相关说法错误的是( )。
/*
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
for (int Hang=1; Hang<10; Hang++){
for (int Lie=1; Lie<Hang+1; Lie++){
if (Lie * Hang > 9)
printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
else
printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
// L2
}
printf("\n"); // L1
}
在数学中 $N!$ 表示 N 的阶乘,即 1 到 N 的乘积,如 3!=1*2*3。下面的 C++ 用于求 1-N 的阶乘之和,如 N 为 3,则是 1!+2!+3!。下面代码段补充选项后用于实现上述功能,其中不能实现阶乘和的选项是( )。
int N;
cin >> N;
int tnt=0, nowNum = 1; //tnt保存求和之值,当前N的阶乘
for (int i=1; i < N + 1; i++){
______________ // 基于上一个计算出当前数的阶乘
______________ // 从1到i每个数阶乘之和
}
cout << tnt;
下面 C++ 代码用于输出 N 和 M 之间(可以包括 N 和 M)的孪生素数。孪生素数是指间隔为 2 的两个数均为素数,如 11 和 13 分别是素数,且间隔为 2。isPrime(N) 用于判断 N 是否为素数的函数。为完成上述功能横线处应填上的代码是( )。
int N,M;
//本题假设N小于M
cin >> N >> M;
for (int i = N; i < __________; i++)
if (isPrime(i) && isPrime(i + 2))
printf("%d %d\n",i, i + 2);
下面 C++ 代码实现输出如下图形,横线应填入的代码是 ( )。
/*
高度:5
*
***
*****
*******
*********
*/
int height;
cout << "高度: ";
//获取用户输入的高度
cin >> height;
for (i=0; i<height; i++){
//打印每行前面的空格
for (j = 0; j < _______________; j++)
cout << " ";
//打印每行的星号
for (k = 0; k < _______________; k++)
cout << "*";
//输出一行后,换行
cout << endl;
}
下面 C++ 代码执行后的输出是 30,则横线处不能填入( )。
int a=10,b=20,c=30;
cout << _____________________ << endl;
cout << endl;