2023年9月真题
一、单选题(每题2分,共30分)
正确答案:D
解析:考察知识点:计算机基础
本题属于考察计算机基础知识。中国第一台计算机通用数字电子计算机于 1958 年 6 月由中科院计算所研制成功。那时候的逻辑部件是电子管。
正确答案:B
解析:考察知识点:流程图的概念与描述
本题属于考察流程图知识。通过图得知,x=5,y=12,x>y 不成立,会执行否,结果是 a=y=12,b=x=5,输出选项为 B。
正确答案:C
解析:考察知识点:控制语句结构
本题属于考察计算机程序结构。比较大小,需要分支结构。
正确答案:B
解析:考察知识点:变量的定义与使用
本题属于考察 C++知识,cout 不是关键字,是一个类的对象。
正确答案:D
解析:考察知识点:数据类型的转换
本题属于考察 C++运算和强制类型转换。-123.123/10=-12.3123,转换成整数是-12。
正确答案:C
解析:考察知识点:控制语句结构、基本运算
本题属于考察程序填空,根据题意,从大到小输出N 的所有因子,判断范围是[N,1],观察选项,C 选项符合,D 选项错误的地方是i>1,不包括1。
正确答案:D
解析:考察知识点:多层循环结构
本题属于考察程序填空,根据题意,对角线上的元素等于1,对角线元素的坐标特点是行左边等于列坐标,也就是 i==j。 选D。
正确答案:A
解析:控制语句结构、基本运算
本题属于考察程序填空,根据题意,判断质数,质数的特点是只能被1和它本身整除,如果被 2—N-1 之间的数字整除,就不是质数,这样的数字找到1 个,就不需要再循环判断了,因此填 break,A。
正确答案:D
解析:考察知识点:控制语句结构、基本运算
根据代码,最后的 0 肯定输出,所以判断AD选项。9%2==1,会输出 1#,可以判断 i=2,4,5,6,7,8 时都会输出1#,选D。
正确答案:A
解析:考察知识点:多层循环结构
根据题意这是一道双重循环的题,题目的核心是考核运行次数,注意 i 的循环范围,j 的循环范围,j 的每次累加的是2。i=1是,j 循环次数是 0;i=2 时,j 循环 1 次,cnt+1,以此类推,选A。
正确答案:B
解析:考察知识点:多层循环结构
本题属于考察程序填空,根据题意,i 的范围是[1,12],i 每次累加3;j
每次的范围是[1,i-1],j 每次累加 2。我们会发现,j 每次的值都是奇数,根据if条件,i 是偶数的时候不会累加,只有奇数的时候才会累加cnt,因此i 的范围是1,7。I=1,j 不会循环(j<i);i=7,j 的合理范围是 1,3,5,cnt 会增加3 次。选B。
正确答案:B
解析:考察知识点:控制语句结构、基本运算
根据题意,while 循环中,x 每次增加2,x=1,3,5,7,9,11…… 根据 if 条件,1%3==1,!(1)==0,不会输出;x=3 时,会输出“3,”,以此类推,x=11 时,x/10 等于 1,退出循环,输出 11,答案选B。
正确答案:D
解析:考察知识点:多层循环结构
本题属于考察程序填空,根据题意,要输出 N 行字符,每行字符数量都等于行数,例如第 1 行输出 1 个字符,第 2 行输出2 个字符……每行输出的内容总结是:ABC 循环输出,BD 选项可以输出字符,模拟B选项发现会连续输出 A,因此选择 D 选项。
正确答案:A
解析:考察知识点:多层循环结构
本题属于考察程序填空,根据给出的数字三角形,总结规律:1、每行前面空格逐渐减少,最后 1 行不需要输出,AC 中选择;2、每行每个数字之间还有 1 个空格,因此每行前还要多输出 1 个空格,选A。
正确答案:A
解析:考察知识点:控制语句结构、基本运算
本题属于考察程序填空,根据题意,while 循环内是根据输入数据退出,如果输入不是负数,就一直循环下去。CD 关键字错误,B 直接退出循环,不能实现题意,选 A。
二、判断题(每题2分,共20分)
正确答案:正确
解析:考察知识点:计算机的存储与网络
正确答案:正确
解析:考察知识点:计算机历史,超级计算机。
正确答案:错误
解析:考察知识点:基本数据类型
小数默认是 double 类型。
正确答案:错误
解析:考察知识点:基本运算
C++基础知识,逻辑运算返回结果是0 或者1,该表达式返回 1。
正确答案:正确
解析:考察知识点:控制语句结构、基本运算
本题考察循环、逗号表达式、赋值运算的知识。第1 次循环:m=31=3,n=()
括号里面是个逗号表达式,n 赋值为 3-1=2。第 2 次循环:m=32=6,n 赋值后的结果是 5;第 3 次循环:m=15,n 的结果是 14,退出循环。N 是偶数。
正确答案:错误
解析:考察知识点:基本运算
本题考察比较运算符和逻辑运算符。前者是 2 个条件都要满足,后者的操作是先计算 5<=a 的结果,然后再和 10 比大小。例如a=20,5<=20 的结果是1,1 再和 10 比较大小,也成立,返回结果是 1. (a >= 5 && a <= 10)返回结果是0。
正确答案:错误
解析:考察知识点:循环结构
本题考察循环结构。每次循环,i 实际上是+2,cnt 加不到10 次,输出不是 10,是 5。
正确答案:错误
解析:考察知识点:循环结构
本题考察循环结构。每次循环,i 每次+2,观察一下i 值变化是:-100,-98,-96……0,2,4,……98。Rst 是-100。
正确答案:错误
解析:考察知识点:循环结构
本题考察循环结构。每次循环,i 每次+2,观察一下i 值变化是:0,2,4,6,8,rst
累加了 0,2,4,6,8。i=10 的时候退出循环,rst 是 20。
正确答案:正确
解析:考察知识点:计算机基础知识
本题考察 C++语言知识,c++是一门高级程序设计语言。
三、编程题(每题25分,共50分)
循环嵌套的应用,输出图形。
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
//n*n的矩阵,for循环嵌套
for(int i=1; i<=n; i++) { //n行
for(int j=1; j<=n; j++) { //n列
//观察可知,两对角线的字符为'+',其他为'-'
if(i==j || i+j==n+1) cout<<"+";
else cout<<"-";
}
cout<<endl;
}
return 0;
}
本题考察 循环结构、分支结构、基本运算
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, a, b, c, cnt=0; //cnt记录变换次数
cin>>n;
//循环次数未知而循环条件已知,一般用while循环
while(n!=495){
cnt++;
//a、b、c 三位数的百位、十位、个位上的数字
a = n/100;
b = n/10%10;
c = n%10;
//swap函数交换两个变量的值
//这里通过分支语句和swap函数实现a、b、c三个变量从小到大的排序
if(a>b) swap(a, b);
if(a>c) swap(a, c);
if(b>c) swap(b, c);
n = (c*100+b*10+a)-(a*100+b*10+c);
}
cout<<cnt;
return 0;
}