1、国家二级 C 语言(C 语言概述)机试模拟试卷 2 及答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.以下叙述中错误的是( )。(分数:2.00)A.使用 3 种基本结构构成的程序只能解决简单问题B.结构化程序由顺序、分支、循环 3 种基本结构组成C.C 语言是一种结构化程序设计语言D.结构化程序设计提倡模块化的设计方法2.计算机能直接执行的程序是( )。(分数:2.00)A.源程序B.目标程序C.汇编程序D.可执行程序3.以下选项中关于程序模块化的叙述错误的是( )。(分数:2.00)A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成
2、所要求的程序B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C.把程序分成若干相对独立的模块,可便于编码和调试D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序4.以下叙述中错误的是( )。(分数:2.00)A.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中D.C 语言源程序经编译后生成后缀为obj 的目标程序5.下列叙述中错误的是( )。(分数:2.00)A.C 程序可以由
3、多个程序文件组成B.一个 C 语言程序只能实现一种算法C.C 程序可以由一个或多个函数组成D.一个 C 函数可以单独作为一个 C 程序文件存在6.对于一个正常运行的 C 程序,以下叙述中正确的是( )。(分数:2.00)A.程序的执行总是从 main 函数开始,在程序的最后一个函数中结束B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C.程序的执行总是从 main 函数开始D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束7.以下叙述中正确的是( )。(分数:2.00)A.C 语句必须在一行内写完B.C 程序中的每一行只能写一条语句C.C 语言程序中的注释必须
4、与语句写在同一行D.简单 C 语句必须以分号结束8.以下叙述中正确的是( )。(分数:2.00)A.用 C 语言编写的程序只能放在一个程序文件中B.C 程序书写格式严格,要求一行内只能写一个语句C.C 程序中的注释只能出现在程序的开始位置和语句的后面D.C 程序书写格式自由,一个语句可以写在多行上9.以下关于 C 语言的叙述中正确的是( )。(分数:2.00)A.C 语言的数值常量中夹带空格不影响常量值的正确表示B.C 语言中的变量可以在使用之前的任何位置进行定义C.在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C 语言中的注释不可以夹在变量名或关键字的中间10.C 语言源
5、程序名的后缀是( )。(分数:2.00)A.CB.exeC.objD.cp11.以下叙述中正确的是( )。(分数:2.00)A.C 语言函数可以嵌套调用,例如:fun(fun(x)B.C 语言程序是由过程和函数组成的C.C 语言函数不可以单独编译D.C 语言中除了 main 函数外,其他函数不可作为单独文件形式存在12.以下叙述中错误的是( )。(分数:2.00)A.C 程序在运行过程中的所有计算都以二进制方式进行B.C 程序在运行过程中的所有计算都以十进制方式进行C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中字符变量存放的是字符的 ASCII 码值13.以下选项中不合法的标识符
6、是( )。(分数:2.00)A.&aB.FORC.printD._0014.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是( )。(分数:2.00)A.大写字母B.下划线C.数字字符D.连接符15.以下选项中,能用作用户标识符的是( )。(分数:2.00)A._0_B.8_8C.voidD.unsigned16.下列定义变量的语句中错误的是( )。(分数:2.00)A.int_int;B.double int_;C.char For;D.float US$;17.以下选项中能表示合法常量的是( )。(分数:2.00)A.1,200B.15E20C.D.00718.以下选项中不能
7、作为 C 语言合法常量的是( )。(分数:2.00)A.01e+6B.cdC.aD.01119.以下不合法的数值常量是( )。(分数:2.00)A.80E05B.1e1C.011D.Oxabcd20.以下选项中不能用作 C 程序合法常量的是( )。(分数:2.00)A.123B.123C.1,234D.x7D21.以下选项中,值为 1 的表达式是( )。(分数:2.00)A.1-0B.1-0C.1-0D.0-022.以下选项中,合法的一组 C 语言数值常量是( )。(分数:2.00)A.120 Xa23 45e0B.0285e -3 -0xfC.177 4e15 0abcD.0x8A 10,0
8、00 3e523.以下选项中能用作数据常量的是( )。(分数:2.00)A.115LB.0118C.15e15D.o11524.在下列定义语句中,编译时会出现编译错误的是( )。(分数:2.00)A.char a=x2d;B.char a=n;C.char a=ta;D.char a=“as“;25.以下不合法的字符常量是( )。(分数:2.00)A.B.“C.018D.xcc26.已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码值是 97。下列不能将变量 c 中的大写字母转换为对应小写字母的语句是( )。(分数:2.00)A.c=(A+C)26-aB.c=c+
9、32C.c=c-A+aD.c=(c-A)26+a27.以下能正确定义字符串的语句是( )。(分数:2.00)A.char str=“x43“;B.char str=“0“;C.char str=“;D.char str=064;28.以下正确的字符串常量是( )。(分数:2.00)A.B.abcC.Olympic GamesD.29.以下定义语句中正确的是( )。(分数:2.00)A.int a=b=0;B.char A=65+1,b=b;C.float a=1,*b=&a,*c=&b;D.double a=00;b=11;30.以下关于 C 语言数据类型使用的叙述中错误的是( )。(分数:2
10、.00)A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型B.若要保存带有多位小数的数据,可使用双精度类型C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型D.整数类型表示的自然数是准确无误差的国家二级 C 语言(C 语言概述)机试模拟试卷 2 答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.以下叙述中错误的是( )。(分数:2.00)A.使用 3 种基本结构构成的程序只能解决简单问题 B.结构化程序由顺序、分支、循环 3 种基本结构组成C.C 语言是一种结构化程序设计语言D.结构化程序设计提倡模块化的设计方法解析:解析:
11、使用顺序、选择(分支)、循环 3 种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以 A 选项错误。2.计算机能直接执行的程序是( )。(分数:2.00)A.源程序B.目标程序C.汇编程序D.可执行程序 解析:解析:计算机能直接执行的程序是二进制的可执行程序,扩展名为exe,所以选择 D 选项。3.以下选项中关于程序模块化的叙述错误的是( )。(分数:2.00)A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C.把程序分成若干相对独立的模块,可便于编码和调试D.可采用自顶向下、逐步细化的设计
12、方法把若干独立模块组装成所要求的程序解析:解析:程序模块化思想中,可以采用自顶向下、逐步细化的方法,所以 A 选项中“自底向上”的说法是错误的。4.以下叙述中错误的是( )。(分数:2.00)A.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 B.C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中D.C 语言源程序经编译后生成后缀为obj 的目标程序解析:解析:C 语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以 A 选项错误。由 C 语言构成的指令序列
13、称 C 源程序,C 源程序经过 C 语言编译程序编译之后,生成一个后缀名为obj 的二进制文件(称为目标文件);最后要由“连接程序”把此 obj 文件与 C 语言提供的各种库函数连接起来生成一个后缀为exe 的可执行文件。5.下列叙述中错误的是( )。(分数:2.00)A.C 程序可以由多个程序文件组成B.一个 C 语言程序只能实现一种算法 C.C 程序可以由一个或多个函数组成D.一个 C 函数可以单独作为一个 C 程序文件存在解析:解析:在一个 C 语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以 B 选项错误。6.对于一个正常运行的 C 程序,以下叙述中正确的是( )。(分数:
14、2.00)A.程序的执行总是从 main 函数开始,在程序的最后一个函数中结束B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C.程序的执行总是从 main 函数开始 D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束解析:解析:任何一个 C 程序都是从主函数 main 开始,至主函数 main 结束,所以选择 C 选项。7.以下叙述中正确的是( )。(分数:2.00)A.C 语句必须在一行内写完B.C 程序中的每一行只能写一条语句C.C 语言程序中的注释必须与语句写在同一行D.简单 C 语句必须以分号结束 解析:解析:C 语句可以跨行来写,但是必须以分号结束
15、,所以 A 选项错误。C 程序中的一行可以有多条语句,所以 B 选项错误。C 语言中的注释语句可以与原语句放在一行,也可以不放在一行,所以 C 选项错误。8.以下叙述中正确的是( )。(分数:2.00)A.用 C 语言编写的程序只能放在一个程序文件中B.C 程序书写格式严格,要求一行内只能写一个语句C.C 程序中的注释只能出现在程序的开始位置和语句的后面D.C 程序书写格式自由,一个语句可以写在多行上 解析:解析:C 语言编写的程序可以放置于多个程序文件中,所以 A 选项错误。C 程序中的一行可以有多条语句,所以 B 选项错误。C 语言中的注释语句可以与原语句放在一行,也可以不放在一行,所以
16、C 选项错误。9.以下关于 C 语言的叙述中正确的是( )。(分数:2.00)A.C 语言的数值常量中夹带空格不影响常量值的正确表示B.C 语言中的变量可以在使用之前的任何位置进行定义C.在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C 语言中的注释不可以夹在变量名或关键字的中间 解析:解析:C 语言的数值常量中不能夹带空格,所以 A 选项错误。C 语言中的变量都必须先定义再使用,对变量的定义通常放在函数体内的前部,但也可以放在函数外部或复合语句的开头,不能随便放置,所以B 选项错误。在 C 语言中,运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致,所以C 选
17、项错误。10.C 语言源程序名的后缀是( )。(分数:2.00)A.C B.exeC.objD.cp解析:解析:C 语言源程序名的后缀是C,目标文件的扩展名是obj,可执行文件的扩展名是exe。11.以下叙述中正确的是( )。(分数:2.00)A.C 语言函数可以嵌套调用,例如:fun(fun(x) B.C 语言程序是由过程和函数组成的C.C 语言函数不可以单独编译D.C 语言中除了 main 函数外,其他函数不可作为单独文件形式存在解析:解析:C 语言程序是由函数组成的,所以 B 选项错误。C 语言函数可以单独进行编译,所以 C 选项错误。每个 C 程序中必须包含一个 main 函数,但不一
18、定是每个 C 程序文件中都必须有,用户单独编写的某个函数也可以存储为一个 C 程序文件,所以 D 选项错误。12.以下叙述中错误的是( )。(分数:2.00)A.C 程序在运行过程中的所有计算都以二进制方式进行B.C 程序在运行过程中的所有计算都以十进制方式进行 C.所有 C 程序都需要编译链接无误后才能运行D.C 程序中字符变量存放的是字符的 ASCII 码值解析:解析:C 程序在运行过程中的所有计算都以二进制方式进行,所以 B 选项错误。13.以下选项中不合法的标识符是( )。(分数:2.00)A.&a B.FORC.printD._00解析:解析:C 语言中标识符由字母、下划线、数字组成
19、,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为 C 语言中区分大小写,所以 B 选项中的“FOR”可以作为标识符来用。A 选项中含有非法字符&,所以其不合法。14.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是( )。(分数:2.00)A.大写字母B.下划线C.数字字符D.连接符 解析:解析:C 语言中的标识符由字母、下划线、数字组成,且开头必须是字母或下划线,所以 D 选项中的连接符不合法。15.以下选项中,能用作用户标识符的是( )。(分数:2.00)A._0_ B.8_8C.voidD.unsigned解析:解析:C 语言中的标识符由字母、下划线、数字组成,
20、且开头必须是字母或下划线。另外,关键字不能作为标识符。B 选项中以数字 8 开头,所以错误。C 选项与 D 选项中用的是关键字 void 与unsigned,所以错误。16.下列定义变量的语句中错误的是( )。(分数:2.00)A.int_int;B.double int_;C.char For;D.float US$; 解析:解析:C 语言规定,变量命名必须符合标识符的命名规则。D 选项中包含了非法字符“$”,所以错误。标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。大写字符与小写字符被认为是两个不同的字符,所以 For 不是关键字 for。17.以
21、下选项中能表示合法常量的是( )。(分数:2.00)A.1,200B.15E20C.D.007 解析:解析:A 选项中整型常量应表示为 1200,不能包含“,”。B 选项中 E 后面的指数必须为整数。C选项中转义字符以“”开始,若要表示字符“”,应写为“”。18.以下选项中不能作为 C 语言合法常量的是( )。(分数:2.00)A.01e+6B.cd C.aD.011解析:解析:要想表示字符串常量,应该用双引号表示,即“cd“,单引号用于表示字符常量,所以 B 选项中的表示方法错误。19.以下不合法的数值常量是( )。(分数:2.00)A.80E05 B.1e1C.011D.Oxabcd解析:
22、解析:A 选项中 E 后面的指数必须为整型数据,所以错误。C 选项中 011 表示的是八进制常量,0xabcd 表示的是十六进制常量。20.以下选项中不能用作 C 程序合法常量的是( )。(分数:2.00)A.123B.123C.1,234 D.x7D解析:解析:C 选项中不能含有逗号,所以“1,234”不能用作 C 程序的合法常量。B 选项表示的是八进制的常量,D 选项表示的是十六进制的常量。21.以下选项中,值为 1 的表达式是( )。(分数:2.00)A.1-0B.1-0 C.1-0D.0-0解析:解析:0,空值,其 ASCII 码值为 0,所以 B 选项的值为 1。字符0的 ASCII
23、 码值为 48,所以A、C、D 选项的值均不为 1。22.以下选项中,合法的一组 C 语言数值常量是( )。(分数:2.00)A.120 Xa23 45e0 B.0285e -3 -0xfC.177 4e15 0abcD.0x8A 10,000 3e5解析:解析:C 语言中,八进制整型常量的开头数字是 0,十六进制整型常量的开头数字是 0x 或 0X。C 语言中的实型常量有两种表示形式:小数形式,表示的实型常量必须要有小数点;指数形式,以 e 或 E 后跟一个整数来表示以 10 为底数的幂数,且规定字母 e 或 E 之前必须要有数字,且 e 或 E 后面的指数必须为整数。B 选项中 028 错
24、误,八进制中没有数字 8。C 选项中 4e15 中 e 后面的指数不是整数。D 选项中10,000 数字之间不能有逗号。23.以下选项中能用作数据常量的是( )。(分数:2.00)A.115L B.0118C.15e15D.o115解析:解析:A 选项中 115L 表示 115 是长整型数据,合法。B 选项是八进制常量的表示方法,但是在八进制中不能含有数字 8,所以 B 选项错误。C 选项中 e 后面应该是整数,而不能是小数 15,所以 C 选项错误。D 选项中八进制常量应该是数字“0”开始,而不是字母“o”开始。24.在下列定义语句中,编译时会出现编译错误的是( )。(分数:2.00)A.c
25、har a=x2d;B.char a=n;C.char a=ta;D.char a=“as“; 解析:解析:D 选项中将字符串常量“aa”赋给字符变量 a 是错误的。25.以下不合法的字符常量是( )。(分数:2.00)A.B.“C.018 D.xcc解析:解析:转义字符中,八进制的表示形式为ddd,但是八进制中不能包含数字 8,所以 C 选项不合法。26.已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码值是 97。下列不能将变量 c 中的大写字母转换为对应小写字母的语句是( )。(分数:2.00)A.c=(A+C)26-a B.c=c+32C.c=c-A+aD
26、.c=(c-A)26+a解析:解析:根据题意可知,小写字母比与之对应的大写字母的 ASCII 码大 32。A 选项中字符 A 加上 c 表示的大写字符再对字母个数 26 取余,本身这个表达式没有任何含义,所以选择 A 选项。27.以下能正确定义字符串的语句是( )。(分数:2.00)A.char str=“x43“;B.char str=“0“; C.char str=“;D.char str=064;解析:解析:C 语言中,字符串是用一对双引号括起来的字符序列,并用字符型数组来存放,故 C 选项和D 选项不属于字符串,A 选项定义的是一个字符变量 str,却用来存放字符串,显然也不正确,因此
27、 B 选项正确。28.以下正确的字符串常量是( )。(分数:2.00)A.B.abcC.Olympic GamesD. 解析:解析:本题考查的知识点是字符串常量。在 C 语言中,字符串常量是以双引号括起来的字符序列,因此 B 选项和 C 选项不正确。字符序列中可包含一些转义字符,转义字符都是以“”开头的。A 选项中包含了 3 个“”,前两个()代表了一个“”字符,后面一个和“”一起(“)被看作一个“”,所以该字符串缺少一个结束的“”,因此不正确。D 选项的两个“”之间没有任何字符,代表的是一个空串,是合法的字符串常量,因此 D 选项正确;B 选项的 abc 应该使用双引号括起来;C 选项的字母
28、也应该用双引号。29.以下定义语句中正确的是( )。(分数:2.00)A.int a=b=0;B.char A=65+1,b=b; C.float a=1,*b=&a,*c=&b;D.double a=00;b=11;解析:解析:A 选项语句中的 b 变量还没有定义,不能直接用于给 a 变量赋值。C 选项语句中,*b、*c 表示的是一个实型变量的地址,不能再将&b 赋值给指针型变量 c。D 选项语句中,a=00 后面应该为逗号,不能是分号。30.以下关于 C 语言数据类型使用的叙述中错误的是( )。(分数:2.00)A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型B.若要保存带有多位小数的数据,可使用双精度类型C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型 D.整数类型表示的自然数是准确无误差的解析:解析:C 语言中没有逻辑类型,所以错误。若要保存带有多位小数的数据,可以用单精度类型,也可以用双精度类型。处理包含不同类型的相关数据可以定义为结构体类型。整数类型可以无误差地表示自然数。