当前位置: 首页 > article >正文

2023年3月GESPC++一级真题解析

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

题目123456789101112131415
答案BAACBDDAADBCDBC
1.以下不属于计算机输入设备的有(  )。
A .键盘
B .音箱
C .鼠标
D .传感器
【答案】 B
【考纲知识点】计算机基础(一级)
【解析】本题属于考察计算机基础知识中的 输入 输出 概念; 输入 指外界
  向机器内部传递信息, 输出 指计算机内部信息向外界展示。此题中, 音箱
  于向外部播放声音,故属于输出概念,所以本题正确答案为 B
2. 计算机系统中存储的基本单位用 B来表示,它代表的是( )。
A.Byte
B.Block
C.Bulk
D.Bit
【答案】 A
【考纲知识点】计算机基础(一级)
【解析】本题属于考察计算机基础知识中,关于存储的基本单位;计算机中,表
  示存储大小的最小单位为 字节 ,英文为 “Byte” ,表示一个字节存储空间大小的
  单位,用大写字母 B 表示,所以本题正确答案为 A
3. 常量 7.0 的数据类型是()。
A.double
B.float
C.void
D.int
【答案】 A
【考纲知识点】基本数据类型(一级)
【解析】本题考察考生对于 C++ 基本数据类型的了解:关于基本数据类型,有整
  型 int ,浮点型 double float ,字符型 char ,布尔型 bool ,本题中 7.0 是小数形
  式,属于浮点型, C++ 中浮点型默认是 double ,所以本题正确答案为 A
4. 下列关于 C++ 语言的叙述,不正确的是()。
A. 变量定义时可以不初始化
B. 变量被赋值之后的类型不变
C. 变量没有定义也能够使用
D. 变量名必须是合法的标识符
【答案】 C
【考纲知识点】变量的定义与使用(一级)
【解析】本题考察 C++ 语言中变量的定义与使用;关于变量的定义与使用,变量
  在定义时可以不初始化,变量名必须是合法的标识符,并且变量被赋值之后的类
  型不变,均不符合题意,故 A B D 排除;选项 C 变量必须定义才能使用,没
  有定义变量就使用会造成编译错误,所以本题正确答案为 C
5. 以下不可以作为 C++ 标识符的是()。
A.x321
B.0x321
C.x321_
D._x321
【答案】 B
【考纲知识点】变量的定义与使用(一级)
【解析】本题察 C++ 语言中变量的定义与使用;根据变量的命名规则: 1. 只能包
  含大小写字母、数字、下划线; 2. 必须以大小写字母或者下划线开头; 3. 不能使
  用 C++ 的指令或关键字。选项 B 0x321 ,以数字开头,违反变量的命名规则,
  所以本题正确答案为 B
6. 以下哪个不是 C++ 语言的关键字?
A.int
B.for
C.do
D.cout
【答案】 D
【考纲知识点】计算机基础与编程环境(一级)
【解析】本题考察输入输出语句及变量的定义与使用两部分内容;输入输出的
  cin cout 都是 C++ 的常对象,但不是关键字。 C++ 的关键字如下图所示:
  所以本题正确答案为 D
7. 如果 a b c 都是 int 类型的变量,下列哪个语句不符合 C++ 语法?
A.c=a+b;
B.c+=a+b;
C.c=a=b;
D.c=a++b;
【答案】 D
【考纲知识点】基本运算(一级)
【解析】本题属于考察 C++ 基本运算中的算术运算;选项 A 是将 a b 的和赋值
  给 c ;选项 B 等价于 c=c+(a+b) ,将 a b 的值相加,再加上 c 的值之后,赋给 c
  选项 C 是将 b 赋给 a ,再将 a 赋给 c ;选项 D ++ 是自增运算符, a++ 表示的是 a
  在原本的值上自增 1 ,后面跟上 b 不符合 C++ 语法,所以本题正确答案为 D
8. 如果用两个 int 类型的变量 a b 分别表达长方形的长和宽,则下列哪个表达
式不能用来计算长方形的周长?
A.a+b*2
B.2*a+2*b
C.a+b+a+b
D.b+a*2+b
【答案】 A
【考纲知识点】基本运算(一级)
【解析】本题主要考察基本运算中的算术运算;长方形的周长公式是(长 + 宽)
  *2 或者长 *2+ *2 或四条边相加;选项 A 根据运算规则,先算乘法 b*2 ,后算加
  法 a+b*2 ,不能用来计算长方形的周长,所以本题正确答案为 A
9. 表达式 ((3==0)+'A'+1+3.0) 的结果类型为()。
A.double
B.int
C.char
D.bool
【答案】 A
【考纲知识点】基本运算(一级)
【解析】本题考察 C++ 基本运算过程中的隐式类型转换;算式中, (3==0) 的计算
  结果为 bool 类型、 ’A’ char 类型常量、 1 int 类型常量、 3.0 double 类型常
  量,将它们相加时会从低精度的高精度的进行类型转换,最终结果为 double
  型,所以本题正确答案为 A
10. 如果 a int 类型的变量,且 a 的值为 6 ,则执行 a*=3; 之后, a 的值会是()。
A.3
B.6
C.9
D.18
【答案】 D
【考纲知识点】基本运算(一级)
【解析】本题考察 C++ 基本运算; a*=3 相当于 a=a*3 a 的值一开始是 6 ,所以
  6*3=18 ,将这个结果再赋给 a a 的值变为 18 ,所以本题正确答案为 D
11. 如果 a b 均为 int 类型的变量,下列表达式不能正确判断 “a 等于 0 b
0” 的是()
A.(a==0)&&(b==0)
B.(a==b==0)
C.(!a)&&(!b)
D.(a==0)+(b==0)==2
【答案】 B
【考纲知识点】基本运算(一级)
【解析】本题主要考察 C++ 基本运算中的逻辑运算;
  选项 A 条件 1 a==0 ,条件 2 b==0 ,两个条件之间用逻辑与 && ,两个条件都
  满足,整个条件就满足,符合 a 等于 0 b 等于 0
  选项 B 是先判断 a b 是否相等,若相等表达式 a==b 的值为 1 ,若不相等 a==b
  的值为 0 ,再判断表达式 a==b 的值是否等于 0 ,只有 a b 不相等时,整个表达
  式成立;
  选项 C 条件 1 !a a 0 时, !a 1 ,条件成立,条件 2 !b b 0 时, !b
  为 1 ,条件成立,两个条件之间是逻辑与 && 关系,两个条件都满足,整个条件
  就满足,符合 a 等于 0 b 等于 0
  选项 D a==0 条件满足为 1 b==0 条件满足也为 1 ,两个都满足相加结果为 2
  两个条件有任意不满足则相加结果可能为 0 1 。因此,判断相加结果是否等于 2
  ,符合 a 等于 0 b 等于 0
  所以本题正确答案为 B
12. 如果 a int 类型的变量,下列哪个表达式可以正确求出满足 大于等于 a
4 的倍数 的整数中最小的?
A.a*4
B.a/4*4
C.(a+3)/4*4
D.a-a%4+4
【答案】 C
【考纲知识点】基本运算(一级)
【解析】本题考察 C++ 基本运算中的算术运算;
  选项 A ,假设 a 3 a*4 即为 3*4=12,12 虽然满足大于等于 a 且是 4 的倍数,但
  不是满足条件的整数中最小的,排除 A
  选项 B ,假设 a 3 a/3 结果为 0 ,因为 a int 类型, int 类型进行计算,结果
  还是 int ,会把小数部分舍去,故 a/3*4 结果为 0 ,不满足条件,排除 B
  选项 C ,令 a=4k+t k 是一个整数, 0<=t<=3 ,则 (a+3)/4=(4k+t+3)/4=k+(t+3)/4 。如
  果 a 4 的倍数,则 t=0,(a+3)/4*4=k*4=a ,等于 a 且是 4 的倍数;否则 t>=1
  (4k+4)/4*4<=(a+3)/4*4<=(4k+6)/4*4 ,即 (4k+4)<=(a+3)/4*4<=(4k+4) ,结果为
  4k+4 ,大于 a 且是 4 的倍数的整数中最小的,满足题意;
  选项 D ,假设 a 4,4%4=0 a-a%4+4=8 8 虽然满足大于等于 a 且是 4 的倍数,
  但不是满足条件的整数中最小的,排除 D
  所以本题正确答案为 C
13. 在下列代码的横线处填写(),可以使得输出是 “2010”
A.a+b
B.(a+b)*100
C.b*100+a
D.a*100+b
【答案】 D
【考纲知识点】基本运算(一级)
【解析】由于题目中没有分支、循环语句,可以尝试由结果反推。已知在第 8
  行,输出“ 2010 ”,因此此时 a 20 b 10 。第 7 行对 a 赋值后得到的就是
  第 8 行时 a 的值 20 ,可知第 7 行语句执行前 a 除以 100 的余数为 20 。由于第 7
  行未改变 b 的值,第 6 行对 b 赋值后得到的就是第 8 行时 b 的值 10 ,可知第 6
  行语句执行前 a 除以 100 的商为 10 。由于第 6 行未改变 a 的值,综合第 7 行得
  到的线索,可知第 6 行语句执行前, a 应为 1020 。第 5 行语句执行前, a 10
  b 20 ,四个选项中,只有选项 D 的表达式的计算结果为 1020 。所以本题正确
  答案为 D
14. 在下列代码的横线处填写(),可以使得输出是 “1248”
A.i++
B.i*=2
C.i+=2
D.i*2
【答案】 B
【考纲知识点】控制语句结构(一级)
【解析】本题考察控制语句结构中的循环结构。变量 i 的初始值是 1 ,循环条件
  是 i 小于等于 8 ,循环范围是从 1 8 ,循环体中输出 i ,得到的输出是 1248 ,规
  律是在前一个的基础上乘 2 ,每次 i*2 之后赋给 i ,所以本题正确答案为 B
15. 执行以下 C++ 语言程序后,输出结果是()。
A.210
B.113
C.98
D.15
【答案】 C
【考纲知识点】控制语句结构(一级)
【解析】本题考察循环结构和选择结构。循环范围是从 1 20 ,每次循环结束
  后 i++ i 自增 1 ;循环内判断当前数是 3 或者是 5 的倍数,就将 i 累加到 sum
  中,故从 1 20 ,满足条件的数有 35691012151820 ,相加结果为 98 ,所以
  本题正确答案为 C

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

题目12345678910
答案
×
×
×
×
×
×
1. Windows 系统中通过键盘完成对选定文本移动的按键组合是先 Ctrl+X ,移动
到目标位置后按 Ctrl+V
【答案】
【考纲知识点】计算机基础(一级)
【解析】本题考察计算机基础中快捷键的使用。 Ctrl+X 表示剪切文件 ( 复制并从原
  位置删除 ) Ctrl+V 表示粘贴所剪切的文件。所以本题正确。
2. 程序员用 C C++ Python Scratch 等编写的程序能在 CPU 上直接执行。
【答案】 ×
【考纲知识点】计算机基础(一级)
【解析】本题属于对编程语言特点的考察。题目中所列举的编程语言,均无法在
  CPU 上直接执行,而是需要通过各自的方式,转换成机器语言后才能被 CPU
  别和执行,所以本题错误。
3. C++ 语言中,注释不宜写得过多,否则会使得程序运行速度变慢。
【答案】 ×
【考纲知识点】计算机编程环境(一级)
【解析】本题考察计算机的编程环境。注释信息是写在代码当中方便程序阅读者
  理解代码的,养成书写注释的好习惯能够为编写更大规模的程序及团队合作打好
  基础。注释信息会在编译过程中被去掉,不会产生机器指令,也就不会影响程序
  运行速度,所以本题错误。
4. C++ 语言中,标识符中可以有数字,但不能以数字开头。
【答案】
【考纲知识点】变量的定义与使用(一级)
【解析】本题考察 C++ 语言中变量的定义与使用。根据变量的命名规则: 1. 只能
  包含大小写字母、数字、下划线; 2. 必须以大小写字母或者下划线开头; 3. 不能
  使用 C++ 的关键字。故标识符中可以有数字,但不能以数字开头,所以本题正确。
5.'3' 是一个 int 类型常量。
【答案】 ×
【考纲知识点】基本数据类型(一级)
【解析】本题主要考察基本数据类型。 int 是整型,例如 3 是一个 int 类型常量。
  但 3 加上单引号之后 '3' C++ 语言中表示字符,它是 char 类型常量。所以本题错
  误。
6.if 语句中的条件表达式的结果必须为 bool 类型。
【答案】 ×
【考纲知识点】控制语句结构(一级)
【解析】本题主要考察控制语句结构。 if 语句的条件表达式不一定是 bool 类型,
  也可能是其他类型,任何非零值都会被视为真,而零值会被视为假。例如,如果
  a int 类型变量,则 if(a); 是否符合 C++ 语法的 if 语句,表示判断 a 是否为 0
  a 不等于 0 时,则视为真, if 条件成立;反之,如果 a 等于 0 ,则视为假, if 条件
  不成立。但 a 的类型为 int 类型,并不是 bool 类型,所以本题错误。
7.for 语句的循环体至少会执行一次。
【答案】 ×
【考纲知识点】控制语句结构(一级)
【解析】本题主要考察 for 循环结构, for 循环分四步走: 1. 执行第一个分号前
  的初始表达式; 2. 判断两个分号之间的循环条件表达式结果是否为真; 3. 执行
  循环体; 4. 执行第二个分号后的步进表达式,并回到第 2 步重新判断。其中第 2
  步,如果执行初始表达式后的状态循环条件表达式为假,则不会执行循环体。此
  时循环体一次也没有执行就结束了循环,所以本题错误。
8. 如果 a int 类型的变量,则赋值语句 a=a+3; 是错误的,因为这条语句会导
a 无意义。
【答案】 ×
【考纲知识点】变量的定义与使用(一级)
【解析】本题主要考察变量的定义与使用。尽管数学上 a=a+3 是无解的,但在
  C++ 语言中 a=a+3 并不表示方程或恒等式。 a int 类型的变量,执行 a=a+3; ,会
  让 a 的值变为在原值的基础上增加 3 ,不会导致 a 无意义。所以本题错误。
9. 如果 a int 类型的变量,则表达式 (a/4==2) 和表达式 (a>=8&&a<=11) 的结
果总是相同的。
【答案】
【考纲知识点】基本运算(一级)
【解析】本题考察基本运算。由于 a int 类型,表达式 a/4 中的除号 / 为整除运
  算。因此表达式 (a/4==2) 表示 a 除以 4 的商为 2 ,于是 a 的值从 8 11 时表达式
  结果为真,否则为假。这与表达式 (a>=8&&a<=11) 的结果总是相同的,所以本
  题正确。
10. 表达式 (3.5*2) 的计算结果为 7.0 ,且结果类型为 double
【答案】
【考纲知识点】基本运算(一级)
【解析】本题考察了基本运算中的算术运算,在 C++ 语言中, 3.5 double 类型
  常量, 2 int 类型的常量, double 类型与 int 类型做乘法运算的结果是 double
  类型,结果为 7.0 ,所以本题正确。

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

1.每月天数

【问题描述】
        小明刚刚学习了每月有多少天,以及如何判断平年和闰年,想到可以使用编
程方法求出给定的月份有多少天。你能做到吗?
输入描述】
        输入一行,包含两个整数,分别表示一个日期的年、月。
输出描述】
        输出一行,包含一个整数,表示输入月份有多少天。
样例输入1
  2022 1
样例输出1
  31
【样例输入 2
  2020 2
【样例输出 2
  29
【题目大意】条件判断问题,主要分清平年和闰年,平年 2 28 天,闰年 2
  29 天,其余按照大小月取分,输出对应的天数。
【考纲知识点】基本数据类型、控制语句结构、输入输出语句、变量的定义与使
  用(一级)
【解题思路】
  1. 定义变量:年份 y 、月份 m int 类型、判断是否为闰年的 bool 类型 leap 并赋
  值为 false (一开始让它为平年);
  2. 输入年份、月份;
  3. 判断是否为闰年,如果是 400 的倍数,或者是 4 的倍数但不是 100 的倍数,就
  是闰年,将 leap 改为 true
  4. 判断是否为大月: 1 3 5 7 8 10 12 月为大月,输出 31 ;小月: 4 6
  9 11 月为小月,输出 30 ;如果不是大月也不是小月,看下是否为闰年,闰年输
  出 29 ,否则输出 28
【参考程序】

2.长方形面积

【问题描述】
        小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都
是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有
多少种可能的长方形,满足长和宽都是整数?
        如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形
的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。
【输入描述】
        输入一行,包含一个整数,表示长方形的面积。约定 2 ≤ A ≤ 1000
【输出描述】
        输出一行,包含一个整数,表示有种可能的长方形。
【样例输入1
  4
【样例输出1】
  2
【样例解释1
  2 种长方形面积为 4 ,它们的长宽分别为 2 x 2 4 x 1
【样例输入2】
  6
【样例输出2】
  2
【样例解释 2
  2 种长方形面积为 6 ,它们的长宽分别为 3 x 2 6 x 1
【题目大意】统计长方形的个数。两个长方形的长和宽相等算一种情况,所以规
  定长大于宽;长和宽相等是正方形,是长方形的特例,算一种情况。统计完个数
  之后输出。
【考纲知识点】变量的定义与使用、控制语句、基本运算、输入输出语句(一级)
【解题思路】
  1. 定义变量:面积 area 、计数变量 cnt 、宽 w
  2. 利用循环列举所有宽的可能性,从 1 开始,到宽 * 宽小于等于面积即可,后面
  大于宽的就是长了,和前面统计过的算一种情况,所以不用往后遍历。
  3. 每次循环判断面积对宽取余是不是为 0 ,如果为 0 ,说明长、宽都是整数,满
  足题意,计数变量 cnt++
  4.for 循环结束后输出计数变量 cnt
【参考程序】

http://www.kler.cn/a/407422.html

相关文章:

  • PHP实现冒泡排序
  • 第四课 Animation动画资源导入设置检查与优化
  • Flink转换算子——flatMap/map/filter/keyby/reduce综合练习
  • Spring Boot 动态数据源切换
  • apache、iis规则屏蔽拦截ClaudeBot等蜘蛛爬虫抓取网页
  • 营销的本质
  • 3、集线器、交换机、路由器、ip的关系。
  • 传奇996_36——背包图标,物品位置问题
  • Hive分区的种类 分区关联数据的三种方式
  • Pinia 实战教程:构建高效的 Vue 3 状态管理系统
  • 鸿蒙学习笔记:ArkUI概述
  • 从搭建uni-app+vue3工程开始
  • 现代密码学
  • 【Linux庖丁解牛】—软件安装vim!
  • Spring Boot 入门指南:从零开始搭建你的第一个应用
  • Python数据结构之链表
  • 【计算机网络】物理层
  • C语言:字符串
  • 【C++笔记】list使用详解及模拟实现
  • eduSRC挖洞思路