2023-06 GESP一级真题
题数:27
分数:100
测试时长:60min
一、选择题(每题 2 分,共 30 分)
1.以下不属于计算机输入设备的有 (B ) 。(2分)
A、键盘
B、音箱
C、鼠标
D、传感器
答案解析:音箱、显示器、打印机等都是计算机输出设备
2.计算机系统中存储的基本单位用B来表示,它代表的是 (A)。(2分)
A、Byte
B、Block
C、Bulk
D、Bit
答案解析:计算机中用来表示内存储器容量大小的基本单位是字节 (Bvte)。
3.常量7.0的数据类型是 (A ) 。(2分)
A、double
B、float
C、void
D、int
答案解析:7.0 默认是 double 型常量;7.0f 是 float 型常量;7 是 int 型常量
4.下列关于C++语言的叙述,不正确的是 (C)。(2分)
A、变量定义时可以不初始化
B、变量被赋值之后的类型不变
C、变量没有定义也能够使用
D、变量名必须是合法的标识符
答案解析:变量其实只不过是程序可操作的存储区的名称。C++ 中每个变量都有指定的类型类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。声明可以确定变量类型。不同变量类型,使用方法有很大程度不一样; 例如
int*/int.
5.以下不可以作为C++标识符的是 (B )。(2分)
A、x321
B、0x321
C、x321
D、x321
答案解析:标识符的命名要以字母 (大小写) 或者下划线 (_) 开头,不可以使用数字
6.以下哪个不是C++语言的关键字?(D)(2分)
A、int
B、for
C、do
D、cout
答案解析:cout既不是C++语言的一种关键字,也不是一个函数,cout是C++的一种输出流对象。
7.如果a、b和c都是int类型的变量,下列哪个语句不符合C++语法?(D)(2分)
A、c = a + b;
B、c+= a + b
C、c = a = b:
D、c=a++ b;
答案解析:++是一个弹幕运算符,和a结合意思就是a+1,后面b前就没有其他操作符,系统无法执行,编译会报错。
8.如果用两个int类型的变量a和b分别表达长方形的长和宽,则下列哪个表达式不能用来计算长方形的周长?(A)(2分)
A、a+b*2
B、2*a+2*b
C、a+b+a+ b
D、b+a*2+b
答案解析:周长的计算需要两个a和两个b相加,只把变量b乘两次是错误的.
9.表达式((3 == 0) +'A' + 1 + 3.0)的结果类型为 ( A)。(2分)
A、double
B、int
C、char
D、bool
答案解析:因为3.0表示是一个double 类型的数据。不同的类型的数据相加时都是向占用存储字节数多的数据类型转化。
10.如果a为int类型的变量,且a的值为6,则执行a *= 3; 之后,a的值会是 (D)。(2分)
A、3
B、6
C、9
D、18
答案解析:符合运算符*=,把a*=3的表达式拆开为a=a*3,结果为18.
11,如果a和b均为int类型的变量,下列表达式不能正确判断"a等于0目b等于0"的是 (B)(2分)
A、(a == 0) &&(b == 0)
B、(a == b ==0)
C、(!a) && (!b)
D、(a == 0) +( == 0) == 2
答案解析:a==b是一个逻辑表达式,其值为1或0 。所以,若a,b不相等,则”a==b==0”的值为”真”即“0==0”成立。和题意不符
12.如果 a 为 int 类型的变量,下列哪个表达式可以正确求出满足”大于等于a且是4的倍数的整数中最小的?(C)(2分)
A、a*4
B、a/4*4
C、(a+3)/4*4
D、a-a%4+4
答案解析:题目要求”大于等于a且是4的倍数”,可以采取特殊值法满足条件的结果都是4,那么只有选项C满足结果。捋、a+b1、2、3、4,
13.在下列代码的横线处填写( ),使得输出是 20 10。(D)(2分)
A、a+b
B、(a+b)*100
C、b*100+a
D、a*100+b
答案解析:根据本题的输出结果采用的方式是要将程序要实现a、b两个变量名数据的交换,20作为一个数除以100的余数,要将10作为一个数除以100的商,那么只需要让这个数等于10*100+20即可。
14.在下列代码的横线处填写(),可以使得输出是1248.(B)(2分)
A、i++
B、i*=2
C、i+=2
D、i*2
答案解析:根据题目条件,!结果输出了4个数按公比为2的等比数列排列,由此可知变量名i每个循环都变为了原来的2倍根据赋值运算自乘2的简化写法。
15.执行以下C++语言程序后,输出结果是(C)。(2分)
A、210
B、113
C、98
D、15
答案解析:本题出现了一个循环语句和条件语句。循环语句要求i从1开始一直循环到20,而条件语句则让我们那i能被3整除或能被5整除的数逐步加起来求和。我们找到1到20里所有满足条件的数求和。可得: 3+5+6+9+10+12+15+18+20=98.
二、判断题(每题 2 分,共 20 分)
1.在Windows系统中通过键盘完成对选定文本移动的按键组合是先 ctrl+x,移动到目标位置后按 ctrl+v。(对)
答案解析:Windows系统中对选定文本移动,先用Ctrl+X 实现剪切,然后在目标位置用Ctrl+V实现粘贴,从而实现文本的移动。题目表述正确。
2.程序员用C、C++、Python、Scratch等编写的程序能在 CPU 上直接执行。(错)
答案解析:C、C++等编程语言编写的源文件需要首先通过编译之后生成可执行文件,才能够被CPU识别并运行。题目表述错误。
3,在C++语言中,注释不宜写得过多,否则会使得程序运行速度变慢。(错)
答案解析:C++语言中,注释只是给人看的备注信息,不会被计算机编译运行,所以并不会影响程序运行速度,故错误。
4.在C++语言中,标识符中可以有数字,但不能以数字开头。(对)
答案解析:标识符可以由大写字母、小写字母、下画线"_"和数字0~9组成,但必须是以大写字母、小写字母、下画线"_"开头,不能以数字开头。题目表述正确
5.'3'是一个 int 类型常量。(错)
答案解析:是int类型,加单引号的3’是个字符,为char类型,故错误
6.if 语句中的条件表达式的结果必须为bool类型。(错)
答案解析:反例: int i = 1;i 也可以作为条件表达式放在if条件语句中,故错误。
7.for 语句的循环体至少会执行一次。(错)
答案解析:for循环会首先检查循环变量的初始化状态是否满足循环继续的条件,如果不满足则一次都不会执行,故错误。
8.如果a为int类型的变量,则赋值语句a = a + 3; 是错误的,因为这条语句会导致a无意义。(错)
答案解析:对于int类型的a,a=a+3为正确语句,a被新赋予的值为原始值基础上+3。故错误.
9,如果a为int 类型的变量,则表达式 (a / 4 == 2) 和表达式(a >= 8 && a<= 11)的结果总是相同的。(对)
答案解析:(a/4==2)为真当且仅当a除以4商为2,等价于a只能是8、9、10、11,故正确。
10.表达式(3.5 * 2) 的计算结果为7.0,且结果类型为 double.(对)
答案解析:以为3.5为double类型,3.5*2也为double类型,:结果为7.0,而不是整型7。故正确。
三、编程题(每题 25 分,共 50 分)
1,每月天数
[问题描述]小明刚刚学习了每月有多少天,以及如何判断平年和闺年,想到可以使用编程方法求出给定的月份有多少天。你能做到吗?
[输入描述]输入一行,包含两个整数,分别表示一个日期的年、月。
[输出描述]输出一行,包含一个整数,表示输入月份有多少天
[样例输入 1]
2022 1
[样例输出 1]
31
[样例输入 2]
2929 2
[样例输出 2]
29
参考代码:
#include <bits/stdc++.h>
using namespace std;
int n,m;
int main(){
cin >> n >> m;
if(m==1 || m=3 || m==5 || m==7 || m==8 || m==10 || m==12){
cout << "31" << endl;
}else if(m==4 || m==6 || m==9 || m==11){
cout << "30" << endl;
}else if(m==2){
if (n%400==0 || (n%4==0 && n%100 !=0)){
cout << "29" << endl;
}else{
cout << "28" << endl;
}
}
return 0;
}
答案解析:
1.非整百年份,需要是4的倍数,也就是 n%4==0&&n%100!=0
2.整百年份,需要是400的倍数,也就是 n%400==0注意两个判断条件用“或”链接
2.长方形面积
[问题描述]
小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?
如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等
[输入描述]
输入一行,包含一个整数A,表示长方形的面积。约定2≤A≤1000
[输出描述]
输出一行,包含一个整数C,表示有C种可能的长方形
[样例输入 1]
4
[样例输出 1]
2
[样例解释1]
2种长方形面积为4,它们的长宽分别为2x2、4x1.
[样例输入 2]
6
[样例输出 2]
2
[样例解释 2]
2种长方形面积为6,它们的长宽分别为3x2、6x1。
参考代码:
#include <bits/stdc+ +.h>
using namespace std;
int n,ans;
int main(){
cin>>n;ans=0;
for (int i=1; i<=n; i+ +){
for (int j=1; j<=i; j++){
if(i*j==n) ans++;
}
}
cout< <ans< <endl;
return 0;
}