1、国家二级 C 语言(C 语言概述)机试模拟试卷 1 及答案解析(总分:50.00,做题时间:90 分钟)一、选择题(总题数:25,分数:50.00)1.以下关于 C 语言的叙述中正确的是( )。(分数:2.00)A.C 语言的数值常量中夹带空格不影响常量值的正确表示B.C 语言中的变量可以在使用之前的任何位置进行定义C.在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C 语言中的注释不可以夹在变量名或关键字的中间2.C 语言源程序名的后缀是( )。(分数:2.00)A.CB.exeC.0bjD.cp3.以下叙述中正确的是( )。(分数:2.00)A.C 语言函数可以嵌套调用,
2、例如:fun(fun(x)B.C 语言程序是由过程和函数组成的C.C 语言函数不可以单独编译D.C 语言中除了 main 函数外,其他函数不可作为单独文件形式存在4.以下叙述中错误的是( )。(分数:2.00)A.C 程序在运行过程中的所有计算都以二进制方式进行B.C 程序在运行过程中的所有计算都以十进制方式进行C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中字符变量存放的是字符的 ASC码值5.以下选项中不合法的标识符是( )。(分数:2.00)A.&aB.FORC.printD._006.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是( )。(分数:2.00)A
3、.大写字母B.下划线C.数字字符D.连接符7.以下选项中,能用作用户标识符的是( )。(分数:2.00)A._0_B.8_8C.voidD.unsigned8.下列定义变量的语句中错误的是( )。(分数:2.00)A.int_int;B.double int;C.char For;D.float US$;9.以下选项中,不合法的 C 语言用户标识符是( )。(分数:2.00)A.a_bB.AaBcC.a 一 bD._110.以下选项中合法的标识符是( )。(分数:2.00)A.1_B.11C.1_1D._1111.以下选项中能表示合法常量的是( )。(分数:2.00)A.1,200B.15E2
4、0C.D.“007”12.以下选项中不能作为 C 语言合法常量的是( )。(分数:2.00)A.01e+6B.cdC.“a”D.01 113.以下选项中关于 C 语言常量的叙述错误的是( )。(分数:2.00)A.经常被使用的变量可以定义成常量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.所谓常量,是指在程序运行过程中,其值不能被改变的量14.以下不合法的数值常量是( )。(分数:2.00)A.80E05B.1e1C.011D.0xabcd15.以下选项中不能用作 C 程序合法常量的是( )。(分数:2.00)A.123B.123C.l,234D
5、.“xTD”16.以下选项中,值为 1 的表达式是( )。(分数:2.00)A.1 一0B.1 一0C.1一 0D.0一017.以下选项中,合法的一组 C 语言数值常量是( )。(分数:2.00)A.120Xa23 45e0B.0285e 一 3 一 0xfC.177 4e15 0abcD.0x8A 10,000 3e518.以下选项中能用作数据常量的是( )。(分数:2.00)A.115LB.0118C.15e15D.011519.在下列定义语句中,编译时会出现编译错误的是( )。(分数:2.00)A.char a=x2d;B.char a=n;C.char a=a;D.char a=“aa
6、”;20.以下不合法的字符常量是( )。(分数:2.00)A.B.C.018D.xcc21.已知大写字母 A 的 ASC码值是 65,小写字母 a 的 ASCII 码值是 97。下列不能将变量 c 中的大写字母转换为对应小写字母的语句是( )。(分数:2.00)A.c=(-A+c)26 一aB.c=c+32C.C=CA+aD.c=(c 一A)26+a22.以下能正确定义字符串的语句是( )。(分数:2.00)A.chinstr=“x43”;B.char str=“0”;C.charr str=“;D.char str=064:23.以下正确的字符串常量是( )。(分数:2.00)A.B.abc
7、C.Olympic GamesD.“”24.以下定义语句中正确的是( )。(分数:2.00)A.int a=b=0;B.charA=65+1b=b:C.float a=1,*b:&a,*c=&b;D.double a=00;b=11:25.以下关于 C 语言数据类型使用的叙述中错误的是( )。(分数:2.00)A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型B.若要保存带有多位小数的数据,可使用双精度类型C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型D.整数类型表示的自然数是准确无误差的国家二级 C 语言(C 语言概述)机试模拟试卷 1 答案解析(总分:50.00,
8、做题时间:90 分钟)一、选择题(总题数:25,分数:50.00)1.以下关于 C 语言的叙述中正确的是( )。(分数:2.00)A.C 语言的数值常量中夹带空格不影响常量值的正确表示B.C 语言中的变量可以在使用之前的任何位置进行定义C.在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C 语言中的注释不可以夹在变量名或关键字的中间 解析:解析:C 语言的数值常量中不能夹带空格,所以 A 选项错误。C 语言中的变量都必须先定义再使用,对变量的定义通常放在函数体内的前部,但也可以放在函数外部或复合语句的开头,不能随便放置,所以B 选项错误。在 C 语言中,运算符两侧的运算数据类
9、型可以不一致,且结果与精度较高的保持一致,所以C 选项错误。2.C 语言源程序名的后缀是( )。(分数:2.00)A.C B.exeC.0bjD.cp解析:解析:C 语言源程序名的后缀是C,目标文件的扩展名是obj,可执行文件的扩展名是exe。3.以下叙述中正确的是( )。(分数:2.00)A.C 语言函数可以嵌套调用,例如:fun(fun(x) B.C 语言程序是由过程和函数组成的C.C 语言函数不可以单独编译D.C 语言中除了 main 函数外,其他函数不可作为单独文件形式存在解析:解析:C 语言程序是由函数组成的,所以 B 选项错误。C 语言函数可以单独进行编译,所以 C 选项错误。每个
10、 C 程序中必须包含一个 main 函数,但不一定是每个 C 程序文件中都必须有,用户单独编写的某个函数也可以存储为一个 C 程序文件,所以 D 选项错误。4.以下叙述中错误的是( )。(分数:2.00)A.C 程序在运行过程中的所有计算都以二进制方式进行B.C 程序在运行过程中的所有计算都以十进制方式进行 C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中字符变量存放的是字符的 ASC码值解析:解析:C 程序在运行过程中的所有计算都以二进制方式进行,所以 B 选项错误。5.以下选项中不合法的标识符是( )。(分数:2.00)A.&a B.FORC.printD._00解析:解析:C
11、 语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为 C 语言中区分大小写,所以 B 选项中的“FOR”可以作为标识符来用。A 选项中含有非法字符&,所以其不合法。6.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是( )。(分数:2.00)A.大写字母B.下划线C.数字字符D.连接符 解析:解析:C 语言中的标识符由字母、下划线、数字组成,且开头必须是字母或下划线,所以 D 选项中的连接符不合法。7.以下选项中,能用作用户标识符的是( )。(分数:2.00)A._0_ B.8_8C.voidD.unsigned解析:解析:C 语言中
12、的标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B 选项中以数字 8 开头,所以错误。C 选项与 D 选项中用的是关键字 void 与unsigned,所以错误。8.下列定义变量的语句中错误的是( )。(分数:2.00)A.int_int;B.double int;C.char For;D.float US$; 解析:解析:C 语言规定,变量命名必须符合标识符的命名规则。D 选项中包含了非法字符“$”,所以错误。标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。大写字符与小写字符被认为是两个不同的字符,所以 For
13、 不是关键字 for。9.以下选项中,不合法的 C 语言用户标识符是( )。(分数:2.00)A.a_bB.AaBcC.a 一 b D._1解析:解析:C 语言规定,变量命名必须符合标识符的命名规则,C 选项中包含了非法字符“一”,所以错误。标识符由字母、数字或下划线组成,且第 1 个字符必须是大小写英文字母或者下划线,而不能是数字。10.以下选项中合法的标识符是( )。(分数:2.00)A.1_B.11C.1_1D._11 解析:解析:C 语言中的标识符由下划线、字母和数字组成,且必须以下划线或字母开始,所以只有 D 选项正确。11.以下选项中能表示合法常量的是( )。(分数:2.00)A.
14、1,200B.15E20C.D.“007” 解析:解析:A 选项中整型常量应表示为 1200,不能包含“,”。B 选项中 E 后面的指数必须为整数。C选项中转义字符以“,开始,若要表示字符“”,应写为“”。12.以下选项中不能作为 C 语言合法常量的是( )。(分数:2.00)A.01e+6B.cd C.“a”D.01 1解析:解析:要想表示字符串常量,应该用双引号表示,即”cd,单引号用于表示字符常量,所以 B 选项中的表示方法错误。13.以下选项中关于 C 语言常量的叙述错误的是( )。(分数:2.00)A.经常被使用的变量可以定义成常量 B.常量分为整型常量、实型常量、字符常量和字符串常
15、量C.常量可分为数值型常量和非数值型常量D.所谓常量,是指在程序运行过程中,其值不能被改变的量解析:解析:C 语言中,常量是指在程序运行过程中其值不能被改变的量,变量是指运行过程中其值可以改变的量,二者不能混淆,所以 A 选项错误。14.以下不合法的数值常量是( )。(分数:2.00)A.80E05 B.1e1C.011D.0xabcd解析:解析:A 选项中 E 后面的指数必须为整型数据,所以错误。C 选项中 011 表示的是八进制常量,0xabcd 表示的是十六进制常量。15.以下选项中不能用作 C 程序合法常量的是( )。(分数:2.00)A.123B.123C.l,234 D.“xTD”
16、解析:解析:C 选项中不能含有逗号,所以“1,234”不能用作 C 程序的合法常量。B 选项表示的是八进制的常量,D 选项表示的是十六进制的常量。16.以下选项中,值为 1 的表达式是( )。(分数:2.00)A.1 一0B.1 一0 C.1一 0D.0一0解析:解析:0,空值,其ASCII 码值为 0,所以 B 选项的值为 1。字符 0 的 ASC码值为 048,所以A、C、D 选项的值均不为 1。17.以下选项中,合法的一组 C 语言数值常量是( )。(分数:2.00)A.120Xa23 45e0 B.0285e 一 3 一 0xfC.177 4e15 0abcD.0x8A 10,000
17、3e5解析:解析:C 语言中,八进制整型常量的开头数字是 0,十六进制整型常量的开头数字是 0x 或 0X。C 语言中的实型常量有两种表示形式:小数形式,表示的实型常量必须要有小数点;指数形式,以 e 或 E 后跟一个整数来表示以 10 为底数的幂数,且规定字母 e 或 E 之前必须要有数字,且 e 或 E 后面的指数必须为整数。B 选项中 028 错误,八进制中没有数字 8。C 选项中 4e15 中 e 后面的指数不是整数。D 选项中10,000 数字之间不能有逗号。18.以下选项中能用作数据常量的是( )。(分数:2.00)A.115L B.0118C.15e15D.0115解析:解析:A
18、 选项中 1 15L 表示 115 是长整型数据,合法。B 选项是八进制常量的表示方法,但是在八进制中不能含有数字 8,所以 B 选项错误。C 选项中 e 后面应该是整数,而不能是小数 15,所以 C 选项错误。D 选项中八进制常量应该是数字“O”开始,而不是字母“0”开始。19.在下列定义语句中,编译时会出现编译错误的是( )。(分数:2.00)A.char a=x2d;B.char a=n;C.char a=a;D.char a=“aa”; 解析:解析:D 选项中将字符串常量“aa”赋给字符变量 a 是错误的。20.以下不合法的字符常量是( )。(分数:2.00)A.B.C.018 D.x
19、cc解析:解析:转义字符中,八进制的表示形式为ddd,但是八进制中不能包含数字 8,所以 C 选项不合法。21.已知大写字母 A 的 ASC码值是 65,小写字母 a 的 ASCII 码值是 97。下列不能将变量 c 中的大写字母转换为对应小写字母的语句是( )。(分数:2.00)A.c=(-A+c)26 一a B.c=c+32C.C=CA+aD.c=(c 一A)26+a解析:解析:根据题意可知,小写字母比与之对应的大写字母的 ASC码大 32。A 选项中字符 A 加上 c 表示的大写字符再对字母个数 26 取余,本身这个表达式没有任何含义,所以选择 A 选项。22.以下能正确定义字符串的语句
20、是( )。(分数:2.00)A.chinstr=“x43”;B.char str=“0”; C.charr str=“;D.char str=064:解析:解析:C 语言中,字符串是用一对双引号括起来的字符序列,并用字符型数组来存放,故 C 选项和D 选项不属于字符串,A 选项定义的是一个字符变量 str,却用来存放字符串,显然也不正确,因此 B 选项正确。23.以下正确的字符串常量是( )。(分数:2.00)A.B.abcC.Olympic GamesD.“” 解析:解析:本题考查的知识点是字符串常量。在 C 语言中,字符串常量是以双引号括起来的字符序列,因此 B 选项和 C 选项不正确。字
21、符序列中可包含一些转义字符,转义字符都是以“”开头的。A 选项中包含了 3 个“”,前两个()代表了一个“”字符,后面一个和“”一起(”)被看作一个“”,所以该字符串缺少一个结束的“”,因此不正确。D 选项的两个“”之间没有任何字符,代表的是一个空串,是合法的字符串常量,因此 D 选项正确。24.以下定义语句中正确的是( )。(分数:2.00)A.int a=b=0;B.charA=65+1b=b: C.float a=1,*b:&a,*c=&b;D.double a=00;b=11:解析:解析:A 选项语句中的 b 变量还没有定义,不能直接用于给 a 变量赋值。C 选项语句中,*b、*c 表
22、示的是一个实型变量的地址,不能再将&b 赋值给指针型变量 c。D 选项语句中,a=0,0 后面应该为逗号,不能是分号。25.以下关于 C 语言数据类型使用的叙述中错误的是( )。(分数:2.00)A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型B.若要保存带有多位小数的数据,可使用双精度类型C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型 D.整数类型表示的自然数是准确无误差的解析:解析:C 语言中没有逻辑类型,所以 C 错误。若要保存带有多位小数的数据,可以用单精度类型,也可以用双精度类型。处理包含不同类型的相关数据可以定义为结构体类型。整数类型可以无误差地表示自然数。