1、国家二级 C+机试( C+语言概述、数据类型、运算符和表达式)模拟试卷 2及答案与解析 一、选择题 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) 5char 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) short int和 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) long int 22 己知枚举类型定义语句为: enum TokenNAME, NUMBER, PLUS=5, MINUS, PRINT=10; 则下列叙述中错误的是 ( )。 ( A)枚举常量 NA
7、ME的值为 1 ( B)枚举常量 NUMBER的值为 1 ( C)枚举常量 MINUS的值为 6 ( D)枚举常量 PRINT的值为 10 23 已知枚举类型声明语句为: enum COLORWHITE, YELLOW, GREEN=5, RED, BLACK=10: 则下列说法中错误的是 ( )。 ( A)枚举常量 YELLOW的值为 1 ( B)枚举常量 RED的值为 6 ( C)枚举常量 BLACK的值为 10 ( D)枚举常量 WHITE的值为 1 24 下列枚举类型的定义中,包含枚举值 3的是 ( )。 ( A) enum testRED, YELLOW, BLUE, BLACK;
8、( B) enum testRED, YELLOW=4, BLUE, BLACK; ( C) enum testRED=1, YELLOW, BLUE, BLACK; ( D) enum testRED, YELLOW=6, BLUE, BLACK; 25 下列语句中,错误的是 ( )。 ( A) const int buffer=256; ( B) const int temp; ( C) const double *point; ( D) const double *rt=newdouble(5 5); 26 在函数中,可以用 auto、 extern、 register和 static这
9、四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是 ( )。 ( A) auto ( B) extern ( C) register ( D) static 27 下列语句中错误的是 ( )。 ( A) const int a; ( B) const int a=10; ( C) const int*point=0; ( D) const int*point=new int(10); 28 有如下程序段: int i=4; intj=1; int main() int i=8, j=i; cout i j endl; 运行时的输出结果是 ( )。 ( A) 44 (
10、 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、卷 2答案与解析 一、选择题 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+中变量名的命名必须遵循一定的原则,其中之一即是第一个字符必须是字母或者下划线。 【知识模块】 C+语言概述 8 【正确答案】 D 【试题解析】 标识符是用户为程序中各种需要命名的 “元素 ”所起的名字。
14、标识符的组成要符合一定的规则: 标识符是二个以字母或下划线开头的,由字母、数字、下划线组成的字符串。 标识符不能与任意一个关键字同名。 标识符中的字母区分大小写。 标识符不宜过长。 C+语言一般设定一个标识符的有效长度为 32个字符。 由这四条规则可知,选项 D)为 正确答案。 【知识模块】 C+语言概述 9 【正确答案】 D 【试题解析】 C+的标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串。 【知识模块】 C+语言概述 10 【正确答案】 D 【试题解析】 C+中标识符的命名遵循如下规则:不能是 C+关键字,第一个字母必须是字母或下划线,中间不能有空格,变量名中不能包括
15、 “ ”、 “; ”、“, ”、 “”、 “”, +-之类的特殊符号。总之标识符中除了能使用 26个英文大小写字母和数字外,只能使用下划线 “_”。 【知识模块】 C+语言概述 11 【正确答案】 A 【试题解析】 标识符的命名规则: 所有标识符必须由一个字母 (a z或 A z)或下划线 (_)开头; 标识符的其他部分可以用字母、下划线或数字 (0 9)组成; 大小写字母表示不同意义,即代表不同的标识符,如 cout和 Cout。 【知识模块】 C+语言概述 12 【正确答案】 D 【试题解析】 此题考查的是 C+语言的关键字。 Friend是声明友元函数或友元类时用到的关键字: names
16、pace是定义或使用名字空间时用到的关键字; 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 【试题解析】 实型常量指的是 floa
20、t和 double两种数据类型,而 signed和unsigned只对整型数起作用,用于确定它们的数据范围 (例 如 16位系统中,一个signedint是 -32768 32767,而 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, 1, 2, 3相对应。因而选项 A)为正确
23、选项。 【知识模块】 数据类型、运算符和表达式 25 【正确答案】 B 【试题解析】 此题考查的是符号常量的概念。符号常量必须在声明的同时赋初值,故选项 B错误;选项 C定义的是一个指向常量的指针变量,即通过指针不能改变它所指向的内容,而它自己的内容是可以改变的, C选项正确。 【知识模块】 数据类型、运算符和表达式 26 【正确答案 】 A 【试题解析】 此题考查的是存储类型。 C+语言变量的存储类型分为如下几种类型: auto-函数内部的局部变量; static-静态存储分配; extern-全局变量;register-变量存储在硬件寄存器中。 【知识模块】 数据类型、运算符和表达式 27
24、 【正确答案】 A 【试题解析】 由关键字 const声明符号常量的同时必须为其赋初值。 【知识模块】 数据类型、运算符和表达式 28 【正确答案】 C 【试题解析】 这个程序定义了全局整型对象 i和 j,其 值分别等于 4和 1。而在主函数中定义了局部整型对象 i和 j, i值赋予 8,再把 i值赋给 j,接着输出 i和 j的值,所以其结果为 88。这个题目要注意的一点是,全局整型对象 i和 j和主函数中定义了局部整型对象 i和 j,在计算机内存中表示的是不同的存储单元。它们的值是独自存放的,互相不同。 【知识模块】 数据类型、运算符和表达式 29 【正确答案】 C 【试题解析】 在 C+中
25、由一个或多个操作数与操作符连接而成的有效运算式称为表达式。选项 C)是 C+的合法表达式。 【知识模块】 数据类型、运算符和表达式 30 【正确答案】 A 【试题解析】 由于变量 i、 j都是整型变量,所以两者相除所得的商也是整型数据。 【知识模块】 数据类型、运算符和表达式 31 【正确答案】 C 【试题解析】 在表达式 “y x+?x-: y+”中,由于自加 (+)运行符的优前级高于比较运算符 ( ),所以首先进行自加运算,即变量 x的值前自加 1,等于 5,此时表达式 y x不成立,所以整个表达式的值等于 y+的值,由于 y+是后自加运算,所以其值等于 5。 【知识模块】 数据类型、运算符和表达式