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