#TK1036. 2024年3月CCF-GESP编程能力等级认证C++编程二级真题

2024年3月CCF-GESP编程能力等级认证C++编程二级真题

当前没有测试数据。

2024年3月CCF-GESP编程能力等级认证C++编程二级真题

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

第1题 下列流程图的输出结果是?( B )

  • 优秀
  • 良好
  • 不及格
  • 没有输出
    【答案】B
    【考纲知识点】流程图的概念与描述(二级)
    【解析】程序开始; cj 被赋值为75 ; 验证cj >= 60 ; 75 >= 60成立进入YES 分支,验证cj >= 90 ;75 >= 90 不成立进入NO 分支;输出良好 ,程序结束。

第2题 以下选项中不符合 C++变量命名规则的是?( )

  • student
  • 2_from
  • _to
  • Text
    【答案】B
    【考纲知识点】变量的定义与使用(一级)
    【解析】有效的变量名是由大小写字母、数字、下划线组成的任意长度的序列,且第一个字符不能为数字。另外,C++中有一些关键字已被编程语言保留,不能用作变量名。B选项的第一个字符为数字,不符合要求。

第3题 以下选项中,不能用于表示分支结构的C++保留字是?( )

  • switch
  • return
  • else
  • if

第4题 下列说法错误的是?( )

  • while 循环满足循环条件时不断地运行,直到指定的条件不满足为止
  • if 语句通常用于执行条件判断
  • 在C++中可以使用 foreach 循环
  • break 和 continue 语句都可以用在 for 循环和 while 循环中

第5题 下列4个表达式中,答案不是整数8的是?( )

  • abs(-8)
  • min(max(8, 9), 10)
  • int(8.88)
  • sqrt(64)

第6题 下面C++代码执行后的输出是?( )

int n,a,m,i;
n=3, a = 5;
m = (a - 1) * 2;
for (i=0; i<n-1; i++)
    m = (m - 1) * 2;
cout << m;
  • 8
  • 14
  • 26
  • 50

第7题 下面C++代码执行后的输出是?( )

int n,i,result;
n = 81;
i = 1, result = 1;
while (i * i <= n){
    if (n % (i * i) == 0) result = i * i;
    i += 1;
}
cout << result;
  • 16
  • 36
  • 49
  • 81

第8题 下面C++代码执行后的输出是?( )

int s,t,ans;
s = 2, t = 10;
ans = 0;
while (s != t){
    if (t % 2 == 0 && t / 2 >= s) t /= 2;
    else t -= 1;
    ans += 1;
}
cout << ans;
  • 2
  • 3
  • 4
  • 5

第9题 下面C++代码执行后的输出是?( )

int n, masks, days,cur;
n = 17, masks = 10, days = 0;
cur = 2;
while (masks != n){
    if (cur == 0 || cur == 1) masks += 7;
    masks -= 1;
    days += 1;
    cur = (cur + 1) % 7;
}
cout << days;
  • 5
  • 6
  • 7
  • 8

第10题 以下C++代码判断一个正整数N的各个数位是否都是偶数。如果都是,则输出“是”,否则输出“否”。例如N=2024时输出“是”。则横线处应填入( )。

int N,Flag;
cin >> N;
Flag = true;
while (N != 0){
    if (N %2 != 0){
        Flag = false;
        _____________
    } else
        N /= 10;
}
if(Flag == true) cout << "是";
else cout << "否";
  • break
  • continue
  • N = N / 10
  • N = N % 10

第11题 有句俗话叫“三天打渔,两天晒网”。如果小杨前三天打渔,后两天晒网,一直重复这个过程,以下程序代码用于判断,第n天小杨是在打鱼还是晒网,横线处应填写?( )

int n,i;
cin >> n;
i = n % 5;
if (__________________) // 在此处填写代码
 cout << "晒网";
else
 cout << "打鱼";
  • i == 0
  • i == 4
  • i == 0 && i == 4
  • i == 0 || i == 4

第12题 一个数的所有数字倒序排列后这个数的大小保持不变,这个数就是回文数,比如 101 与 6886 都是回文数,而 100 不是回文数。以下程序代码用于判断一个数是否为回文数,横线处应填写?( )

int n,a,k;
cin >> n;
a = 0;
k = n;
while (n > 0){
 a = __________; // 在此处填写代码
 n /= 10;
}
if (a == k)
 cout << "是回文数";
else
 cout << "不是回文数";
  • 10 * a + n % 10
  • a + n % 10
  • 10 * a + n / 10
  • a + n / 10

第13题 给定两个整数n与k,打印出一个栅栏图形,这个栅栏应该分成n段,段与段之间的间隔为 + , 段内的填充为k个 - 。形如n=5,k=6, 时,图形如下: +-----+-----+-----+-----+-----+ 以下程序代码用于绘制该图形,横线处应填写?( )

int n, k, i, j;
n = 5, k = 6;
for (i = 0; i < n; i++){
 __________ // 在此处填写代码
 for (j = 1; j < k; j++)
  cout << '-' ;
}
cout << '+';
  • cout << '+' << endl;
  • cout << '+' << ' ' << endl;
  • cout << '+';
  • cout << '+' << ' ';

第14题 小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是。( )

  • 小程序
  • 计时器
  • 操作系统
  • 神话人物

第15题 中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是( )。

  • 制造自动驾驶汽车
  • 创立培训学校
  • 发明汉字激光照排系统
  • 成立方正公司

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

第16题 如果有以下C++代码:

double s;
int t;
s = 18.5;
t = int(s) + 10;

那么 cout << t 的结果为 28.5 。( )

  • 正确
  • 错误

第17题 Xyz , xYz , xyZ 是三个不同的变量。( )

  • 正确
  • 错误

第18题 cout << (8< 9< 10) 的输出结果为 true 。( )

  • 正确
  • 错误

第19题 for (i = 0; i < 100; i+=2) ; 语句中变量i的取值范围是0到99。( )

  • 正确
  • 错误

第20题 C++中 cout << float(2022) 与 cout << float('2022') 运行后的输出结果均为2022。( )

  • 正确
  • 错误

第21题 已知 A 的ASCII码值为65,表达式 int('C')+abs(-5.8) 的值为72.8。( )

  • 正确
  • 错误

第22题 bool() 函数用于将给定参数或表达式转换为布尔类型。语句 bool(-1) 返回的是 false 值。( )

  • 正确
  • 错误

第23题 如果变量 a 的值使得C++表达式 sqrt(a)==abs(a) ,则 a 的值为0。( )

  • 正确
  • 错误

第24题 小杨今年春节回奶奶家了,奶奶家的数字电视要设置ip地址并接入到WIFI盒子才能收看节目,那这个WIFI盒子具有路由器的功能。( )

  • 正确
  • 错误

第25题 任何一个 for 循环都可以转化为等价的 while 循环( )。

  • 正确
  • 错误