2023年6月 GESP C ++ 试卷(二级)+答案解析

发布于:2025-02-28 ⋅ 阅读:(290) ⋅ 点赞:(0)

一、单选题 (每题 2 分 ,共 30 分)
1.高级语言编写的程序需要经过以下 ( ) 操作,可以生成在计算机上运行 的可执行代码。

A. 编辑         B. 保存         C. 调试         D. 编译

答案:D. 编译

解析:高级语言编写的程序通常需要经过编辑、保存、编译和链接等步骤才能生成在计算机上运行的可执行代码。其中,编译是将高级语言代码转换为机器语言代码的关键步骤。因此,正确答案是D。

2. 能够实现下面流程图功能的伪代码是 ( ) 。


A.if 条件判断 then 语句块                 B. if 条件判断 then 什么也不做 else 语句块 
C. while 条件判断 do 语句块            D. while not 条件判断 do 语句块 

答案:D. while not 条件判断 do 语句块

解析:本题考察对流程图的理解,以及循环结构中的while循环。观察流程图可知,当条件判断不成立时,会执行语句块,并重新进行条件判断;当条件判断成立时,则流程继续往下进行。因此,本题正确答案为D。

3.下列关于 C++语言的叙述,正确的是 ( ) 。 A.char 类型变量不能赋值给 int类型的变量。 
B.两个 int类型变量相乘,计算结果还是 int类型。 
C.计算两个 int类型变量相乘时,如果乘积超出了 int类型的取值范围,程序会报错崩溃。 
D.计算两个 double 类型变量相除时,如果除数的值为 0.0,程序会报错崩溃。

答案:B. 两个 int类型变量相乘,计算结果还是 int类型。

解析

  • A选项错误,因为char类型变量可以赋值给int类型的变量,C++会进行隐式类型转换。
  • B选项正确,两个int类型变量相乘,计算结果仍然是int类型。
  • C选项错误,计算两个int类型变量相乘时,如果乘积超出了int类型的取值范围,结果可能会溢出,但程序不会报错崩溃。
  • D选项错误,计算两个double类型变量相除时,如果除数的值为0.0,程序会产生一个无穷大或NaN(非数字)的结果,但不会报错崩溃(除非程序中有对除零错误的特殊处理)。

4.下列关于 C++语言的叙述,不正确的是 ( ) 。 
A.if 语句中的判断条件必须用小括号‘ ( ’和‘ ) ’括起来。 
B.for 语句中两个‘ ; ’之间的循环条件可以省略,表示循环继续执行的条件一直满足。 
C.循环体包含多条语句时,可以用缩进消除二义性。 
D. 除了“先乘除、后加减” ,还有很多运算符优先级。

答案:C. 循环体包含多条语句时,可以用缩进消除二义性。

解析

A选项正确,if语句中的判断条件必须用小括号括起来。

B选项正确,for语句中两个分号之间的循环条件可以省略,表示循环继续执行的条件一直满足。

C选项错误,缩进在C++中不是语法要求,不能用来消除二义性。C++使用花括号{}来定义代码块。

D选项正确,C++中有很多运算符优先级,除了“先乘除、后加减”的基本规则外,还有其他的优先级规则。

  1. 括号:最先算。
  2. 一元:+-!~等,只对一个数操作。
  3. 乘除取余:*/%,比加减先。
  4. 加减:+-,乘除取余之后。
  5. 位移:<<>>,比加减后,比较前。
  6. 比较:<<==>!=,比较大小或相等。
  7. 逻辑与:&&,两个真才真。
  8. 逻辑或:||,一个真就真。
  9. 赋值:=及其复合,给变量值。

5.以下哪个是 C++语言的关键字? ( )
 A. Main     B. max     C. double     D. sqrt

答案:C. double

解析:在C&


网站公告

今日签到

点亮在社区的每一天
去签到