1、国家二级 C+机试( C+语言概述、数据类型、运算符和表达式)模拟试卷 3及答案与解析 一、选择题 1 下列描述中,不属于面向对象思想主要特征的是 ( )。 ( A)封装性 ( B)跨平台性 ( C)继承性 ( D)多态性 2 下列字符串中,正确的 C+标识符是 ( )。 ( A) foo一 1 ( B) 2b ( C) new ( D) 256 3 下列符号中可以用作 C+标识符的是 ( )。 ( A) _radius ( B) foo bar ( C) else ( D) 3room 4 下列符号中,正确的 C+标识符是 ( )。 ( A) enum ( B) 100bit ( C) s_
2、1 ( D) _int 5 下列字符串中,不可以用作 C+标识符的是 ( )。 ( A) y_2006 ( B) _TEST_H ( C) Return ( D) switch 6 下列符号中能够作为 C+标识符的是 ( )。 ( A) const ( B) 2a ( C) _shape ( D) _count 7 下列字符串中不能作为 C+标识符使用的是 ( )。 ( A) WHILE ( B) user ( C) _lvar ( D) 9stars 8 下列字符串中可以用作 C+标识符的是 ( )。 ( A) 2009var ( B) goto ( C) test一 2009 ( D) _
3、123 9 在下列字符中,不允许作为 C+标识符的是 ( )。 ( A) b ( B) B ( C) _ ( D) 2 10 下列选项中,正确的 C+标识符是 ( )。 ( A) 6_group ( B) group_6 ( C) age+3 ( D) _group_6 11 下列选项可以做 C+标识符 的是 ( )。 ( A) _256 ( B) fat pig ( C) delete ( D) Schar 12 下列符号中不属于 C+关键字的是 ( )。 ( A) friend ( B) namespace ( C) continue ( D) byte 13 下列选项中,不是 C+关键字
4、的是 ( )。 ( A) class ( B) function ( C) friend ( D) virtual 14 下列关于 C+函数的叙述中,正确的是 ( )。 ( A)每个函数至少要具有一个参数 ( B)每个函数都必须返回一个值 ( C)函数在被调用之前必须先声明 ( D)函数不能自己调用自己 15 必须用一对大括号括起来的程序段是 ( )。 ( A) switch语句中的 case标号语句 ( B) if语句的分支 ( C)循环语句的循环体 ( D)函数的函数体 16 Windows环境下,由 C+源程序文件编译而成的目标文件的扩展名是 ( )。 ( A) cpp ( B) exe
5、 ( C) obj ( D) lik 17 在开发一个 C+程序的整个过程中,第 3个步骤为 ( )。 ( A)链接 ( B)运行 ( C)编辑 ( D)编译 18 下列各组类型声明符中,含义相同的一组是 ( )。 ( A) unsigned long int和 long ( B) signed short int和 short ( C) unsigned short和 short ( D) shortint和 int 19 字面常量 42、 4 2、 42L的数据类型分别是 ( )。 ( A) long, double, int ( B) long, float, int ( C) int,
6、 double, long ( D) int, float, long 20 下列叙述中,错误的是 ( )。 ( A) false是一个逻辑型常量 ( B) b是一个字符型常量 ( C) 365是一个 int常量 ( D) 3 1415926是一个 double常量 21 关键字 unsigned不能修饰的类型是 ( )。 ( A) char ( B) int ( C) float ( D) longint 22 已知枚举类型定义语句为: enum Token NAME, NUMBER, PLUS=5, MINUS, PRINT=10; 则下列叙述中错误的是 ( )。 ( A)枚举常量 NAM
7、E的值为 1 ( B)枚举常量 NUMBER的值为 1 ( C)枚举常量 MINUS的值为 6 ( D)枚举常量 PRINT的值为 10 23 已知枚举类型声明语句为: enumCOLOR WHITE, YELLOW, GREEN=5, RED, BLACK=10;则下列说法中错误的是 ( )。 ( A)枚举常量 YELLOW的值为 1 ( B)枚举常量 RED的值为 6 ( C)枚举常量 BLACK的值为 10 ( D)枚举常量 WHITE的值为 1 24 下列枚举类型的定义中,包含枚举值 3的是 ( )。 ( A) enum test RED, YELLOW, BLUE, BLACK; (
8、 B) enum test RED, YELLOW=4, BLUE, BLACK; ( C) enum test RED=一 1, YELLOW, BLUE, BLACK; ( D) enum test RED, YELLOW=6, BLUE, BLACK; 25 下列语句中,错误的是 ( )。 ( A) const int buffe=256; ( B) const int temp; ( C) const double *point; ( D) const double *rt=new double(5 5); 26 在函数中,可以用 auto、 extem、 register和 stat
9、ic这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是 ( )。 ( A) auto ( B) extern ( C) register ( D) static 27 下列语句中错误的是 ( )。 ( A) const int a; ( B) const int a=10; ( C) constint*point=0; ( D) const int*point=new int(10;) 28 有如下程序段: int i=4; int j=1; int main() int i=8, j=i; cout i j end1; 运行时的输出结果是 ( )。 ( A) 4
10、4 ( B) 41 ( C) 88 ( D) 81 29 下列选项中,正确的 C+表达式是 ( )。 ( A) counter+3 ( B) element3+ ( C) a+=b ( D) a=b 30 若有定义语句 “int i=2, j=3; ”,则表达式 i j的结果是 ( )。 ( A) 0 ( B) 0 7 ( C) 0 66667 ( D) 0 66666667 31 若有定义 “int x=4, y=5; ”,则表达式 “y x+?x一一: y+”的值为 ( )。 ( A) 3 ( B) 4 ( C) 5 ( D) 6 国家二级 C+机试( C+语言概述、数据类型、运算符和表达
11、式)模拟试卷 3答案与解析 一、选 择题 1 【正确答案】 B 【试题解析】 封装性、继承性和多态性是面向对象程序设计的三个基本特征。跨平台性不是面向对象程序设计的特征。 【知识模块】 C+语言概述 2 【正确答案】 D 【试题解析】 此题考查的是 C+语言中标识符的定义。标识符由字母、数字或下划线构成,但第一个字符必须是字母或下划线;标识符中大小写字母是不同的;用户定义标识符时,不允许采用系统的关键字。 【知识模块】 C+语言概述 3 【正确答案】 A 【试题解析】 此题考查的是 C+语言中标识 符的定义。标识符有字母、数字和下划线构成,其第一个字母必须是字母或下划线;定义标识符时,不要采用
12、系统的保留字。 【知识模块】 C+语言概述 4 【正确答案】 D 【试题解析】 此题考查的是 C+语言中标识符的概念。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。 【知识模块】 C+语言概述 5 【正确答案】 D 【试题解析】 此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31个字符:标识符中的大小写字母是不同的:定
13、义标识符时不能采用系统的保留字。 【知识模块】 C+语言概述 6 【正确答案】 C 【试题解析】 此题考查的是 C+标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31个字符;标识符 中的大小写字母是不同的;定义标识符时不能采用系统的保留字。 【知识模块】 C+语言概述 7 【正确答案】 D 【试题解析】 在 C+中变量名的命名必须遵循一定的原则,其中之一即是第一个字符必须是字母或者 F划线。 【知识模块】 C+语言概述 8 【正确答案】 D 【试题解析】 标识符是用户为程序中各种需要命名的 “元
14、素 ”所起的名字。标识符的组成要符合一定的规则: 标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串。 标识符不能与任意一个关键字同名。 标 识符中的字母区分大小写。 标识符不宜过长。 C+语言一般设定一个标识符的有效长度为32个字符。由这四条规则可知,选项 D)为正确答案。 【知识模块】 C+语言概述 9 【正确答案】 D 【试题解析】 C+的标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串。 【知识模块】 C+语言概述 10 【正确答案】 D 【试题解析】 C+中标识符的命名遵循如下规则:不能是 C+关键字,第一个字母必须是字母或下划线,中间不能有空格,变
15、量名中不能包括 “ ”、 “; ”、“, ”、 ” 、 “ ”+之类的特殊符号。总之标识符中除了能使用 26个英文大小写字母和数字外,只能使用下划线 “”。 【知识模块】 C+语言概述 11 【正确答案】 A 【试题解析】 标识符的命名规则: 所有标识符必须由一个字母( aZ或 AZ)或下划线 ()开头; 标识符的其他部分可以用字母、下划线或数字( 0 9)组成; 大小写字母表示不同意义,即代表不同的标识符,如 cout和 Cout。 【知识模块】 C+语言概述 12 【正确答案】 D 【试题解析】 此题考查的是 C+语言 的关键字。 Friend是声明友元函数或友元类时用到的关键字; nam
16、espace是定义或使用名字空间时用到的关键字; continue是终止本次循环直接开始下一次循环所用到的关键字; byte是字节的意思,它不是 C+语言中的关键字。 【知识模块】 C+语言概述 13 【正确答案】 B 【试题解析】 class、 friend、 virtual都是 C+的关键字,而 funtion是 VB的关键字。 【知识模块】 C+语言概述 14 【正确答案】 C 【试题解析】 此题考查的是函数的性 质。当调用无参函数时主函数并不将数据传送给被调函数,且可以带回或不带回函数值。函数的递归调用就是直接或间接的调用自己。 【知识模块】 C+语言概述 15 【正确答案】 D 【试
17、题解析】 此题考查的是语句块和函数。 if语句的分支和循环语句的循环体可以是一条语句也可以使 个语句块,所以不是必须用一个大括号括起来: switch语句中的 case标号语句可以是一系列语句,也可以 包含语句块,也不是必须用一对大括号括起来;函数的函数体必须用一对大括号括起来。 【知识模块】 C+语言概述 16 【正确答案】 C 【试题解析】 在 VC6 0集成开发环境下,用户可以使用编译( compile)命令将一个 cpp为扩展名的 C+源程序文件转换成一个以 obj为扩展名的目标文件。 【知识模块】 C+语言概述 17 【正确答案】 A 【试题解析】 C+程序的开发过程是编辑、编译、链
18、接、运行和调试。 【知识模块】 C+语言概述 18 【正确答案】 B 【试题解析】 此题考查的是基本类型和派生型。 C+语言中,基本类型的字长及其取值范围可以放大和缩小,改变后的类型就 叫做基本类型和派生类型。本题 A选项中, unsigned long int的省略形式为 unsigned long;选项 B中, signed short int的省略形式是 short;选项 C中, unsigned short的省略形式是 unsigned short;选项 D中, short int的省略形式是 short。 【知识模块】 数据类型、运算符和表达式 19 【正确答案】 C 【试题解析】
19、此题考查的知识点是字面常量。对于整型字面常量,只要没有超过C+中整数所能表示的范围, C+将自动按整数来 存储此数,也可以通过在整型字面常量后添加 u或 l来指定无符号整数或长整数来存储;对于实型字面常量, C+将自动按照双精度数来存储,也可以通过在实型字面常量后添加 f来指定按单精度数存储。 【知识模块】 数据类型、运算符和表达式 20 【正确答案】 B 【试题解析】 字符常量简称字符,它以单引号作为起止符号,中间有一个或若干个字符。或者以 “ ”开头的包括多个字符的字符序列也符合规定的字符常量。 【知识模块】 数据类型、运算符和表达式 21 【正确答案】 C 【试题解析】 实型常量指 的是
20、 float和 double两种数据类型,而 signed和unsigned只对整型数起作用,用于确定它们的数据范围(例如 16位系统中,一个signedint是一 3276832767,而 unsigned int是 0 65535)。 unsigned对浮点数是无意义的。 【知识模块】 数据类型、运算符和表达式 22 【正确答案】 A 【试题解析】 此题考查的是 C+语言的数据类型。第一个枚举常量的值为 0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量默认时,在前一枚举常量值的基础上以此 增 1。 【知识模块】 数据类型、运算符和表达式 23 【正确答案】 D 【试题解析】 此
21、题考查的是枚举类型的声明。声明枚举类型的语法形式为:enum类型名 枚举值表 。需注意的是:当 n个枚举值全部未赋常量值时,它们自左至右分别与整数 0、 1、 2、 3n 1对应;若第 i个枚举值赋常量值为 m,则其未赋常量值的后续枚举值分别与整数 m+1、 m+2 对应,直到下一个赋了值的枚举值或结束。 【知识模块】 数据类型、运算符和表达式 24 【正确答案】 A 【试题解析】 声明枚举类型的语法格式 为: enum类型名 枚举值表 ;枚举值表包含多个枚举值,它们用逗号隔开,每个枚举值就是一个枚举常量。枚举值有两种定义形式:一是值名;二是值名 =整型常量。关于枚举类型有以下 4点说明: 一
22、个 enum类型实际上是 int类型的一个子集,其每一个枚举值代表一个整数。 n个枚举值全部未赋常量值时,它们自左至右分别与整数 0, 1, n 一 1对应。 若第 i个枚举值赋常量值为 m,则其未赋常量值的后续枚举值分别与整数 m+1, m+2 对应,直到下一个赋了值的枚举值或结束。因此,为枚举值赋的整型常量值应从左到右 递增。 枚举类型的声明也可作为组声明若干整型符号常量的方法。也就是说,把每个要声明的符号常量作为 个枚举值,将各个枚举值合在一起定义成一个枚举类型。对于本题来说,在选项 A)中,对 4个枚举值没有赋常量值,所以它们从左到右与整数 0, l, 2, 3相对应。因而选项 A)为
23、正确选项。 【知识模块】 数据类型、运算符和表达式 25 【正确答案】 B 【试题解析】 此题考查的是符号常量的概念。符号常量必须在声明的同时赋初值,故选项 B错误;选项 C定义的是一个指向常量的指针变量,即通过指针不能改变它所指向的内容, 而它自己的内容是可以改变的, C选项正确。 【知识模块】 数据类型、运算符和表达式 26 【正确答案】 A 【试题解析】 此题考查的是存储类型。 C+语言变量的存储类型分为如下几种类型: auto一一一函数内部的局部变量; static一一一静态存储分配; extern一一一全局变量; register一一一变量存储在硬件寄存器中。 【知识模块】 数据类型
24、、运算符和表达式 27 【正确答案】 A 【试题解析】 由关键字 const声明符号常量的同时必须为其赋初值。 【知识模块】 数 据类型、运算符和表达式 28 【正确答案】 C 【试题解析】 这个程序定义了全局整型对象 i和 j,其值分别等于 4和 1。而在主函数中定义了局部整型对象 i和 j, i值赋予 8,再把 i值赋给 j,接着输出 i和 j的值,所以其结果为 88。这个题目要注意的一点是,全局整型对象 i和 j和主函数中定义了局部整型对象 i和 j,在计算机内存中表示的是不同的存储单元。它们的值是独自存放的,互相不同。 【知识模块】 数据类型、运算符和表达式 29 【正确答案】 C 【
25、试题解析】 在 C+中由一个或多个操作数与操作符连 接而成的有效运算式称为表达式。选项 C)是 C+的合法表达式。 【知识模块】 数据类型、运算符和表达式 30 【正确答案】 A 【试题解析】 由于变量 i、 j都是整型变量,所以两者相除所得的商也是整型数据。 【知识模块】 数据类型、运算符和表达式 31 【正确答案】 C 【试题解析】 在表达式 “y x+?x一一: y+”中,由于自加( +)运行符的优前级高于比较运算符(),所以首先进行自加运算,即变量 x的值前自加 1,等于5,此时表达式 y x不成立,所以整个表达式的值等于 y+的值,由于 y+是后自加运算,所以其值等于 5。 【知识模块】 数据类型、运算符和表达式