2023年3月GESP能力等级认证C++二级真题


一、单选题(每题 2 分,共 30 分)
1.    以下存储器中的数据不会受到附近强磁场干扰的是( D)。
A.硬盘 
B.U 盘
C.内存
D.光盘 

2.    下列流程图,属于计算机的哪种程序结构?( C)。 

2023年3月GESP能力等级认证C++二级真题_第1张图片
A. 顺序结构
B.循环结构
C.分支结构
D.数据结构 

 

3.    下列关于 C++语言的叙述,不正确的是(A)。
A.double 类型的变量占用内存的大小是浮动的 
B.    bool 类型的变量占用 1 字节内存 
C.    int 类型变量的取值范围不是无限的 
D.    char 类型的变量有 256 种取值 

4.    下列关于 C++语言的叙述,不正确的是(D)。
A.变量定义后,可以使用赋值语句改变它的值
B.变量定义时,必须指定类型 
C.变量名必须为合法标识符 
D.合法标识符可以以数字开始 

5.    以下哪个不是 C++语言的关键字? (B)
A. return 
B.max 
C.else 
D.case 

6.    以下哪个不是 C++语言的运算符? (A)
A.\= 
B./= 
C.-= 
D.!= 

7.    如果 a 和 b 都是 char 类型的变量,下列哪个语句不符合 C++语法? (C)
A.b = a + 1; 
B.b = a + '1'; 
C.b = 'a'++; 
D.b = a++; 


8.    如果 a、b、c 和 d 都是 int 类型的变量,则下列哪个表达式能够正确计算它们的平均值? (C)
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 


9.    如果 a 为 char 类型的变量,且 a 的值为'2',则下列那条语句执行后,a 的值不会变为'3'?(B) 
A.a = a + 1; 
B.a + 1; 
C.a = 1 + a; 
D.++a; 


10.    如果 a 为 int 类型的变量,且 a 的值为 9,则执行 a -= 3;之后,a 的值会是()。 (B)
A.3 
B.6 
C.9 
D.12 


11.    如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断“a 等于 0 或 b 等于 0”的是(A) 
A.(!a) || (!b) 
B.(a == b == 0) 
C. (a == 0) && (b == 0) 
D.(a == 0) - (b == 0) == 0 


12.    如果 a 为 char 类型的变量,下列哪个表达式可以正确判断“a 是小写字母”? (D)
A.a <= a <= z 
B.a - 'a' <= 'z' - 'a' 
C.'a' <= a <= 'z' 
D.a >= 'a' && a <= 'z' 

13.    在下列代码的横线处填写(),使得输出是`50 10`。 (C)

2023年3月GESP能力等级认证C++二级真题_第2张图片
A.a -= b 
B.a += b 
C.a = b - a 
D.a = b 

 

14.    在下列代码的横线处填写(),可以使得输出是`5`。 (D)

2023年3月GESP能力等级认证C++二级真题_第3张图片
A.ch < '5' 
B.ch >= 5 
C.ch >= '4' 
D.ch % 2 == 1 

 

15.    执行以下 C++语言程序后,输出结果是()。 (C)

2023年3月GESP能力等级认证C++二级真题_第4张图片
A. false 
B.true 
C.0 
D.1 

 

二、判断题(每题 2 分,共 20 分)
1.    明明和笑笑在“小庙会”上分别抽到一个 4GB 和 4096MB 的 U 盘,容量大的盘是笑笑的(错 )。

2.    IPv4 的地址通常用“点分十进制”的表示形式,形如(a.b.c.d),其中a、b、c、d 都是 1~255 之间的十进制整数( 错)。 

3.    在 C++语言中,一个程序不能有多个 main 函数。 (对)

4.    在 C++语言中,标识符中可以有下划线_,但不能以下划线_开头。 (错)

5.    如果 a 是 int 类型的变量,而且值为 1,则表达式'a'的值为'1'。 (错)

6.    在 if ... else 语句中,else 子句可以嵌套 if    else 语句,但 if 子句不可以,因为会造成二义性。 (错)

7.    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 

【参考程序】

#include 
using namespace std;
int main(){
    int n;
    cin >> n;
    int ch = 0;
    for (int i=1; i<=n;i++){
        for (int j =1; j <=i,j++)
            cout << (char)('A'+ (ch++)%26)
        cout << endl;
    }
    return 0;
}

2.    百鸡问题 

【问题描述】 

“百鸡问题”是出自我国古代《张丘建算经》的著名数学问题。大意为:“每只公鸡 5 元,每只母鸡 3 元,每 3 只小鸡 1 元;现在有 100 元,买了 100 只鸡, 共有多少种方案?” 
 
小明很喜欢这个故事,他决定对这个问题进行扩展,并使用编程解决:如果每只公鸡 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 

【参考程序】  

#include 
using namespace std;
int main(){
    int x,y,z,n,m,cnt=0;
    cin >> x >> y >> z >> n >> m;
    for (int i=0; i * x <= n && i <=m;i++)
        for (int j=0; j * y + j*x <=n && j + i <=m; j++){
            int g = (n - i * x - j * y ) * z;
            if (i + j + g == m)
                cnt++; 
        }
    cout << cnt << endl;
    return 0;
}

 


 
 

你可能感兴趣的:(GESP等级认证C++真题,c++,青少年编程,算法,数据结构)