#KS004. 基础语法测试
基础语法测试
一.单选题(每题 2 分,共 30 分)
- 下面C++代码可以执行,有关说法正确的是( )。
1 double PI = 3.1415926;
2 cout << (PI);
{{ select(1) }}
- 为了方便初学者,cout << (PI) 和 cout << (pi) 效果相同
- cout << (PI) 修改为 coyut << (Pi)能正常执行
- PI不能做变量名
- 将程序中全部PI都改写为Pai能正常执行,不会报错
- C++表达式 3 * 3 % 2 的值为( )。 {{ select(2) }}
- 3
- 27
- 2
- 1
- 下面C++代码的相关说法,正确的是()。
1 int N = 0;
2 cin >> N;
3 cout << (N);
{{ select(3) }}
- 输入 10 输出 10
- 输入 3.14 报错
- 输入 ABC 报错
- 输入 -10 报错
- 下面C++代码执行时,其说法正确的是()。
1 int M = 0, N = 0;
2 cin >> M; cin >> N;
3 if (N > M) cout << (M - N);
4 else cout << (N - M);
{{ select(4) }}
- 如果输入一个正数和一个负数,其输出结果肯定是大于0
- 不管是负整数、正整数亦或0,其结果肯定是大于等于0
- 如果N和M是相等的整数,将不会有输出
- 如果N和M输入带有小数点的数,可以按小数计算,因为int可以存储小数
- 下面C++代码执行后的输出是()。
1 int i, tnt = 1;
2 for (i = 0; i < 5; i++)
3 tnt *= i;
4 printf("%2d%2d\n", tnt, i);
{{ select(5) }}
- 20 5
- 10 5
- 0 4
- 0 5
- 下面C++代码的相关说法,正确的是()。
1 int i;
2 for (i = 1; i < 10; i++) {
3 if (i % 2 == 0) {
4 continue; // L1
5 }
6 else
7 cout << i << "#";
8 }
9 cout << i << "END";
{{ select(6) }}
- 上述代码执行后,其输出是1#3#5#7#9#9END
- 删除else后的执行效果与当前代码相同
- 删除else且将cout<<i<<"#"移入L1行下面,则执行效果与当前代码相同
- 在cout<<i<<"END"前增加判断if(i>10),其执行效果与当前代码相同
- 一个正整数的每位都是个位数,称为数位,最高位非0。下面的C++代码用于求正整数的所有数位之和,简称数位和。如123的各数位分别是1、2、3,则其数位和为1+2+3,结果为6。为实现该目标,横线处应填写的代码是()。
1 int N; cin >> N; int tnt = 0;
2 while (N != 0) {
3 ________;
4 ________;
5 }
6 cout << "N的数位和为:" << tnt;
{{ select(7) }}
- tnt += N / 10和N /= 10
- tnt += N % 10和N /= 10
- tnt += N / 10和N %= 10
- tnt = tnt + N % 10和N %= 10
- 下面的 C++ 代码段正常执行后其输出的数字图形是()。
1 for (int i = 1; i < 5; i++) {
2 for (int j = 1; j < i + 1; j++)
3 cout << j;
4 cout << endl;
5 }
{{ select(8) }}
-
1 12 123 1234
-
1 22 333 4444
-
1 12 123
-
1 21 321 4321
-
下列选项中,与C++表达式!(x > 5 && y <= 10)等价的是()。
{{ select(9) }}
- x <= 5 && y > 10
- x > 5 || y <= 10
- x <= 5 || y > 10
- !x > 5 && !y <= 10
- 下面 C++ 代码段执行后,其输出是()。
1 int i, j, cnt = 0;
2 for (i = 0; i < 5; i++) {
3 i = -i;
4 for (j = i; j < -i; j++)
5 cnt += 1;
6 i = -i;
7 }
8 cout << cnt;
{{ select(10) }}
- 5
- 15
- 20
- 30
- 某学校举办“校园演讲比赛”,每位选手由8位评委打分(分数为 0~10 的整数),且每位评委必须打分。计分规则:若至少有5位评委给出大于等于6分,则成绩有效,最终得分为所有8位评委的总分;如给出低于6分的评委数量超过5位,则记为0分。以下核心程序段依次输入8个分数,并计算最终得分。横线处应填入()
1 int score;
2 int total_score = 0; // 所有分数之和
3 int high_count = 0; // ≥6分的评委数量
4 for (int i = 0; i < 8; i++) {
5 cout << "请输入评委分数: ";
6 cin >> score;
7 ____________________;
8 if (score >= 6)
9 ________________;
10 }
11 if (high_count >= 5)
12 cout << total_score;
13 else
14 cout << 0;
{{ select(11) }}
- total_score += score和high_count += 1
- total_score += score和high_count += score
- high_count += 1和total_score += score
- total_score *= score和high_count *= 1
- 模拟“字符串加密”:字符串保证由小写字母构成,规则为“每个字符 ASCII 码+ 3,若超过z (122)则从a重新开始”,以下代码中正确的条件判断是:()。
1 string str; cin >> str;
2 for (int i = 0; i < str.length(); i++) {
3 // 需补充条件:
4 _______________________
5 else {
6 str[i] += 3;
7 }
8 }
{{ select(12) }}
- if (str[i] > 122) str[i] = str[i] + 3 - 26;
- if (str[i] > 122) str[i] = str[i] - 26;
- if (str[i] + 3 > 122) str[i] = str[i] - 26;
- if (str[i] + 3 > 'z') str[i] = 'a' + (str[i] + 3 - 'z') - 1;
- 执行climb(6) 的返回值为()。
1 int climb(int n){
2 if(n <= 2) return n;
3 int a = 1, b = 2, c = 0;
4 for(int i = 3; i <= n; i++){
5 c = a + b;
6 a = b;
7 b = c;
8 }
9 return c;
10 }
{{ select(13) }}
- 8
- 13
- 5
- 10
- 下面代码试图把数组按升序进行“插入排序”,横线处应填写()。
1 void ins(int a[], int n){
2 for(int i = 1; i < n; i++){
3 int key = a[i];
4 int j = i - 1;
5 while(j >= 0 && __________){
6 a[j + 1] = a[j];
7 j--;
8 }
9 a[j + 1] = key;
10 }
11 }
{{ select(14) }}
- a[j] < key
- a[j] > key
- a[j + 1] > key
- a[j] == key
- 定义int a[3][4] = {{1,2,3,4},{5,6}},则a[1][2]的值是()。
{{ select(15) }}
- 2
- 5
- 6
- 0
二、判断题(每题 2 分,共 20 分)
- C++语句cout << ('4' % '2' == '2' * '2' % 2);执行后的输出是1。
{{ select(16) }}
- 正确
- 错误
- 执行下面的C++代码段,如果N是基本数据类型,则语句 cout << (N); 将被执行 0 次或无数次(即死循环)。
1 cin >> N;
2 while(N)
3 cout << (N);
{{ select(17) }}
- 正确
- 错误
- 下面的 C++ 代码段可正常执行,删除 continue 不影响执行效果。
1 int i;
2 for (i = 0; i < 10; i++){
3 i += 1;
4 continue;
5 }
6 cout << (i);
{{ select(18) }}
- 正确
- 错误
- 执行下面的C++代码后将输出2500。
1 int cnt = 0;
2 for (int i = 1; i < 100; i++)
3 cnt += i++;
4 cout << cnt;
{{ select(19) }}
- 正确
- 错误
- 定义int arr[5] = {1,2,3};则arr[3]的值为0,arr[5]是合法下标。
{{ select(20) }}
- 正确
- 错误
- strcmp(s1, s2)函数比较的是两个字符串的长度大小。
{{ select(21) }}
- 正确
- 错误
- 局部变量在整个程序中都可以使用。
{{ select(22) }}
- 正确
- 错误
- 结构体变量初始化时,必须按成员变量声明的顺序进行赋值。
{{ select(23) }}
- 正确
- 错误
- int a[3][4];定义的数组,所有元素默认初始化为0。
{{ select(24) }}
- 正确
- 错误
- 下列 C++ 代码执行后将输出1#4#9#16#16。
1 int i, j, cnt = 0;
2 for (i = 1; i < 5; i++) {
3 for (j = 1; j < i + 1; j++)
4 if (i * j % 10 == 0)
5 break;
6 if (j >= i + 1)
7 cout << (i * j) << "#";
8 }
9 if(i >= 5)
10 cout << (i * j);
{{ select(25) }}
- 正确
- 错误