当前位置:   article > 正文

GESP C++ 2023年3月二级真题卷_char 类型的变量有 256 种取值

char 类型的变量有 256 种取值

一、单选题(每题 2 分,共 30 分)

1. 以下存储器中的数据不会受到附近强磁场干扰的是( )。
A.硬盘
B.U 盘
C.内存
D.光盘
答案:D
解析:略
2. 下列流程图,属于计算机的哪种程序结构?( )。
A.顺序结构
B.循环结构
C.分支结构
D.数据结构
答案:C
解析:略
3. 下列关于 C++语言的叙述,不正确的是()。
A.double 类型的变量占用内存的大小是浮动的
B.bool 类型的变量占用 1 字节内存
C.int 类型变量的取值范围不是无限的
D.char 类型的变量有 256 种取值
答案:A
解析:double 类型的变量占用内存的大小是8个字节
4. 下列关于 C++语言的叙述,不正确的是()。
A.变量定义后,可以使用赋值语句改变它的值
B.变量定义时,必须指定类型
C.变量名必须为合法标识符
D.合法标识符可以以数字开始
答案:A
解析:合法标识符可以由字母、数字和下划线,注意首字符不能是数字
5. 以下哪个不是 C++语言的关键字?
A.return
B.max
C.else
D.case
答案:A
解析:略
6. 以下哪个不是 C++语言的运算符?
A.\=
B./=
C.-=
D.!=
答案:A
解析:略
7. 如果 a 和 b 都是 char 类型的变量,下列哪个语句不符合 C++语法?
A.b = a + 1;
B.b = a + '1';
C.b = 'a'++;
D.b = a++;
答案:C
解析:在 C++ 中,单引号括起来的字符被视为字符字面量(char literal)。字符字面量在赋值时是不可变的,不能进行自增操作,因此语句 b = 'a'++; 是不符合语法的。
8. 如果 a、b、c 和 d 都是 int 类型的变量,则下列哪个表达式能够正确计算它们的平均值?
A. (a + b + c + d) / 4
B. (a + b + c + d) % 4
C. (a + b + c + d) / 4.0
D. (a + b + c + d) % 4.0
答案:C
解析:略
9. 如果 a 为 char 类型的变量,且 a 的值为'2',则下列哪条语句执行后,a 的值不会变为'3'?
A.a = a + 1;
B.a + 1;
C.a = 1 + a;
D.++a;
答案:B
解析:略
10.如果 a 为 int 类型的变量,且 a 的值为 9,则执行 a -= 3;之后,a 的值会是()。
A.3
B.6
C.9
D.12
答案:B
解析:略
11.如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断“a 等于 0 或 b 等 于 0”的是()
A.(!a) || (!b)
B.(a == b == 0)
C. (a == 0) && (b == 0)
D.(a == 0) - (b == 0) == 0
答案:A
解析:略
12.如果 a 为 char 类型的变量,下列哪个表达式可以正确判断“a 是小写字母”?
A.a <= a <= z
B.a - 'a' <= 'z' - 'a'
C.'a' <= a <= 'z'
D.a >= 'a' && a <= 'z'
答案:D
解析:选项A,C格式有问题,选项B因为 'z' - 'a' 的计算结果是一个常数,表示字母表中的字母数目。而 a - 'a' 的计算结果是字符变量 a 与小写字母 'a' 的 ASCII 码之差,表示 a 相对于小写字母 'a' 的位置。这两个值是不可比较的,因此选项 B 是不正确的。
13.在下列代码的横线处填写(),使得输出是`50 10`。

A.a -= b
B.a += b
C.a = b - a
D.a = b
答案:C
解析:根据程序:b=b-a=10,a=a+b=a+(b-a)=b=50,所以a=40,已知a=10,b=50,所以横线上a=b-a
14.在下列代码的横线处填写(),可以使得输出是`5`。

A.ch < '5'
B.ch >= 5
C.ch >= '4'
D.ch % 2 == 1
答案:D
解析:选项D是判断变量ch的常量数值是否是奇数,字符'1'=49,字符'1'-'9'之间一共有5个奇数
15.执行以下 C++语言程序后,输出结果是()。

A.false
B.true
C.0
D.1
答案:C
解析:略

二、判断题(每题 2 分,共 20 分)

1. 明明和笑笑在“小庙会”上分别抽到一个 4GB 和 4096MB 的 U 盘,容量大的盘是笑笑的( )。
答案:错误
解析:明明和笑笑的容量一样大
2. IPv4 的地址通常用“点分十进制”的表示形式,形如(a.b.c.d),其中a、b、c、d 都是 1~255 之间的十进制整数( )。
答案:错误
解析:其中 a、b、c、d 都是 0 到 255 之间的十进制整数
3. 在 C++语言中,一个程序不能有多个 main 函数。
答案:正确
解析:略
4. 在 C++语言中,标识符中可以有下划线_,但不能以下划线_开头。
答案:错误
解析:标识符可以由字母、数字和下划线,注意首字符不能是数字
5. 如果 a 是 int 类型的变量,而且值为 1,则表达式'a'的值为'1'。
答案:错误
解析:在 C++ 中,单引号括起的字符常量被解释为字符的 ASCII 值。因此,表达式 'a' 的值将是字符 'a' 的 ASCII 值,而不是整数变量 a 的值。同样,表达式 '1' 的值将是字符 '1' 的 ASCII 值,而不是整数值 1。所以,在这种情况下,表达式 'a' 的值不会等于 '1'。
6. 在 if ... else 语句中,else 子句可以嵌套 if ... else 语句,但 if 子句不可以,因为会造成二义性。
答案:错误
解析:在 C++ 中,if 语句可以与 else 子句结合使用,可以嵌套,但是要注意代码的逻辑和书写规范,以避免造成二义性或不易理解的情况。
7. while 语句的循环体至少会执行一次。
答案:错误
解析:只有do......while,循环体至少会执行一次
8. C++语言中>=是运算符,但=>不是。
答案:正确
解析:略
9. 如果 a 为 char 类型的变量,且取值为小写字母,则执行语句 a = a - 'a' + 'A';后,a 的值会变为与原值对应的大写字母。
答案:正确
解析:略
10.表达式(10.0 / 2)的计算结果为 5.0,且结果类型为 double。
答案:正确
解析:略

三、编程题(每题 25 分,共 50 分)

1. 画三角形
【问题描述】
输入一个正整数 n,请使用大写字母拼成一个这样的三角形图案(参考样例
输入输出):三角形图案的第 1 行有 1 个字母,第 2 行有 2 个字母,以此类推;
在三角形图案中,由上至下、由左至右依次由大写字母 A-Z 填充,每次使用大写
字母 Z 填充后,将从头使用大写字母 A 填充。
【输入描述】
输入一行,包含一个正整数 n。约定 2≤n≤40。
【输出描述】
输出符合要求的三角形图案。注意每行三角形图案的右侧不要有多余的空格。
【样例输入 1】
3
【样例输出 1】
A
BC
DEF
【样例输入 2】
7
【样例输出 2】
A
BC
DEF
GHIJ
KLMNO
PQRSTU
VWXYZAB
【参考程序】
  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int n;
  5. cout << "请输入 n 的值:";
  6. cin >> n;
  7. int ch = 0; // 初始化一个字符计数器
  8. // 循环用于打印图案
  9. for (int i = 1; i <= n; i++) {//i一共打印多少行
  10. for (int j = 1; j <= i; j++)//j是每一行字符的个数
  11. cout << (char)('A' + (ch++) % 26); // 按循环顺序打印从 'A' 到 'Z' 的字符,打印每一行的字符
  12. cout << endl; // 在每行结束后换行
  13. }
  14. return 0;
  15. }
2. 百鸡问题
【问题描述】
“百鸡问题”是出自我国古代《张丘建算经》的著名数学问题。大意为:“每
只公鸡 5 元,每只母鸡 3 元,每 3 只小鸡 1 元;现在有 100 元,买了 100 只鸡,
共有多少种方案?”
8
小明很喜欢这个故事,他决定对这个问题进行扩展,并使用编程解决:如果
每只公鸡 x 元,每只母鸡 y 元,每 z 只小鸡 1 元;现在有 n 元,买了 m 只鸡,共
有多少种方案?
【输入描述】
输入一行,包含五个整数,分别为问题描述中的 x、y、z、n、m。约定 1≤
x, y, z ≤10,1≤ n, m ≤1000。
【输出描述】
输出一行,包含一个整数 C,表示有 C 种方案。
【样例输入 1】
5 3 3 100 100
【样例输出 1】
4
【样例解释 1】
这就是问题描述中的“百鸡问题”。4 种方案分别为:公鸡 0 只、母鸡 25 只、
小鸡 75 只;公鸡 4 只、母鸡 18 只、小鸡 78 只;公鸡 8 只、母鸡 11 只、小鸡 81
只;公鸡 12 只、母鸡 4 只、小鸡 84 只。。
【样例输入 2】
1 1 1 100 100
【样例输出 2】
5151
【参考程序】
  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int x, y, z, n, m, cnt = 0;//定义变量x, y, z, n, m, cnt
  5. // 输入 x, y, z, n, m 的值
  6. cout << "请输入 x, y, z, n, m 的值:";
  7. cin >> x >> y >> z >> n >> m;
  8. // 循环用于计算满足条件的组合数量
  9. for (int gj = 0; gj * x <= n && gj <= m; gj++)//公鸡
  10. for (int mj = 0; mj * y + gj * x <= n && mj + gj <= m; mj++) {//母鸡
  11. int xj = (n - gj * x - mj * y) * z;//小鸡
  12. if (gj + mj + xj == m)
  13. cnt++;
  14. }
  15. // 输出满足条件的组合数量
  16. cout << "满足条件的组合数量为:" << cnt << endl;
  17. return 0;
  18. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/602664
推荐阅读
相关标签
  

闽ICP备14008679号