1、国家二级 C语言( C语言基础知识)机试模拟试卷 16及答案与解析 一、选择题 1 以下叙述中正确的是 ( A) C程序书写格式严格,要求一行内只能写一个语句 ( B) C程序书写格式自由,一个语句可以写在多行上 ( C) C程序中的注释只能出现在程序的开始位置和语句的后面 ( D)用 C语言编写的程序只能放在一个程序文件中 2 以下关于 C语言的叙述中正确的是 ( A) C语言中的变量可以在使用之前的任何位置进行定义 ( B)在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 ( C) C语言的数值常量中夹 带空格不影响常量值的正确表示 ( D) C语言中的注释不可以夹在变量名或关
2、键字的中间 3 有以下程序 #include stdio.h main() int a=0, b=0; /* 给 a赋值 a=10; b=20; 给 b赋值 */ printf(“a+b=%dn“,a+b); /* 输出计算结果 */ 程序运行后的输出结果是 ( A) a+b=30 ( B) a+b=10 ( C)出错 ( D) a+b=0 4 我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下 说法 错误的是 ( A)一条 C语句可能会被转换成多条机器指令 ( B)一条 C语句对应转换成一条机器指令 ( C)一条 C语句可能会被转换成零条机器指令 ( D)某种类型和
3、格式的 C语句被转换成机器指令的条数是固定的 5 以下选项中不属于 C语言程序运算符的是 ( A) sizeof ( B) ( ) ( C) ( D) ( B) B+; ( C) a=a+b ( D) A?a:b; 7 以下叙述中正确的是 ( A)程序必须包含所有 三种基本结构才能成为一种算法 ( B)如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 ( C)只有简单算法才能在有限的操作步骤之后结束 ( D)我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令 8 以下选项中不合法的标识符是 ( A) FOR ( B) ( B) double int_; ( C)
4、 char For; ( D) int _int; 13 以下选项中关于 C语言常量的叙述错误的是 ( A)常量分为整型常量、实型常量、字符常量和字符串常量 ( B)经常被使用的变量可以定义成常量 ( C)常 量可分为数值型常量和非数值型常量 ( D)所谓常量,是指在程序运行过程中,其值不能被改变的量 14 以下选项中,不合法的 C语言用户标识符是 ( A) AaBc ( B) a-b ( C) a_b ( D) _1 15 以下关于 C语言数据类型使用的叙述中错误的是 ( A)若要保存带有多位小数的数据,可使用双精度类型 ( B)若要处理如 “人员信息 ”等含有不同类型的相关数据,应自定义结
5、构体类型 ( C)若只处理 “真 ”和 “假 ”两种逻辑值,应使用逻辑类型 ( D)整数类型表示的自然数是准确无误差的 16 以下选项 中不能用作 C程序合法常量的是 ( A) 123 ( B) 1,234 ( C) 123 ( D) x7D 17 阅读以下程序 #include stdio.h main() int case ; float printF; printf(“请输入 2个数: “); scanf(“%d %f“, printf(“%d %fn“,case,printF ); 该程序在编译时产生错误,其出错原因是 ( A)定义语句出错, printF不能用作用户自定义标识符 (
6、B)定 义语句出错, case是关键字,不能用作用户自定义标识符 ( C)定义语句无错, scanf不能作为输入函数使用 ( D)定义语句无错, printf不能输出 case的值 18 以下选项中合法的标识符是 ( A) 1-1 ( B) 1_1 ( C) _11 ( D) 1_ _ 19 关于 C语言的符号常量,以下叙述中正确的是 ( A)符号常量的符号名是标识符,但必须大写 ( B)符号常量在整个程序中其值都不能再被重新定义 ( C)符号常量是指在程序中通过宏定义用一个符号名来代表一个常量 ( D)符号常量的符号名必须 是常量 20 关于 C语言的变量,以下叙述中错误的是 ( A)所谓变
7、量是指在程序运行过程中其值可以被改变的量 ( B)变量所占的存储单元地址可以随时改变 ( C)程序中用到的所有变量都必须先定义后才能使用 ( D)由三条下划线构成的符号名是合法的变量名 21 以下选项中不属于 C语言标识符的是 ( A)用户标识符 ( B)关键字 ( C)常量 ( D)预定义标识符 22 以下选项中合法的变量是 ( A) 5a ( B) A% ( C) _10_ ( D) sizeof 23 以下叙述中正确的是 ( A) 标识符的长度不能任意长,最多只能包含 16个字符 ( B)语言中的关键字不能作变量名,但可以作为函数名 ( C)用户自定义的标识符必须 “见名知义 ”,如果随
8、意定义,则会出编译错误 ( D)标识符总是由字母、数字和下划线组成,且第一个字符不得为数字 24 C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是 ( A)关键字可用作用户标识符,但失去原有含义 ( B)在标识符中大写字母和小写字母被认为是相同的字符 ( C)用户标识符可以由字母和数字任意顺序组成 ( D)预定义标识符可用作用户标识 符,但失去原有含义 25 以下叙述中错误的是 ( A)常量可以用一个符号名来代表 ( B)数值型常量有正值和负值的区分 ( C)常量是在程序运行过程中值不能被改变的量 ( D)定义符号常量必须用类型名来设定常量的类型 国家二级 C语言( C语
9、言基础知识)机试模拟试卷 16答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 本题主要考查的是 C语言结构中的源程序书写格式这个知识点,在 C语言中注释部分对程序的运行结果不产生任何影响,它可以出现在任意位置; C语言书写自由,一行内可以写多个语句,一 个语句可以写在多行上;由于C语言编写的程序有很好的移植性,可以放在多个程序文件中。 【知识模块】 C语言基础知识 2 【正确答案】 D 【试题解析】 C语言中的注释可以出现在程序中的任何位置,但是不能夹在变量或者关键字之间; C语言的变量在函数开始位置进行定义,也可以在变量使用前位置定义;一个浮点数可以和一个整数相加,运算符两侧的运
10、算类型也可以不一致;数值常量中不允许夹带空格。 【知识模块】 C语言基础知识 3 【正确答案】 D 【试题解析】 C语言规定,在字符 “/*”和其后紧 跟的第一个字符 “*/”中间的部分是注释内容,且注释部分的内容不参与程序的编译和运行,因此,本题中程序语句 “a=10;b=20;”没有执行。 【知识模块】 C语言基础知识 4 【正确答案】 B 【试题解析】 由 C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而 C语言的语句条数和机器指令的条数不是一对一的关系。 【知识模块】 C语言基础知识 5 【正确答案】 C 【试题解析
11、】 sizeof为测试内存的运算符,()为算术运算符, &为逻辑运算符。而不是 C语言的运算符, C语言中! =表示不等于。 【知识模块】 C语言基础知识 6 【正确答案】 C 【试题解析】 C语言语句的表示为分号,不加分号的表达式不能看成 C语句。 【知识模块】 C语言基础知识 7 【正确答案】 D 【试题解析】 C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来描述算法,而算法 +数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题
12、,反之则不一定,所有算法必须在有限步骤后结束。 【知识模块】 C语言基础知识 8 【正确答案】 B 【试题解析】 合法的标识符要满足组成字符为 az以及 AZ,数字字符 0到 9和下划线,其中数字不开头,不能是关键字。选项 B中, &不属于组成字符,是错误的。 【知识模块】 C语言基础知识 9 【正确答案】 A 【试题解析】 本题考查常量定义。数据常量可有 10进制、 8进制、 16进制、指数法等, 8进制数字为 0-7,第一个字符为 0,而不是 o。指数法表示时,指数部分须为整型,选项 A中数字后加入 L是说明此变量为长整型,是正确的常量表示形式。 【知识模块】 C语言基础知识 10 【正确
13、答案】 A 【试题解析】 在 C语言中,合法标识符的命令规则是:标识符可以由字母、数字或下划线组成,并且第一个字符必须为字母或下划线。在 C语言的标识符中,大写字母和小写字母被认为是两个不同的字符。选项 A是连字符,不在 C语言规定的命名变量标识符的范围内。 【知识模块】 C语言基础知识 11 【正确答案】 A 【试题解析】 在 C语言中,用户的标识符只能由字母或下划线开始。一般强调文见其义的命名方法。但是 C语言中的保留字不能用作用户的标识符。而选项 C和 D全部为保留字,选项 B中以数字开头,这些都不正确。 【知识模块】 C语言基础知识 12 【正确答案】 A 【试题解析】 C语言规定,变
14、量的标识符只能由字母、数字或下划线 3种字符组成,且首字符必须为字母或下划线。在 C语言中大写字母和小写字母被认为是两个不同的字符。选项 B定义的变量标识符 int_和选项 D定义的 变量标识符 _int与C语言的关键字 int 是不同的,是正确的变量标识。选项 C定义的变量标识符 For与 C语言中的关键字 for是两个不同的标识符,而在选项 A包含有特殊字符 $,因而其不符合 C语言的变量命名规定。 【知识模块】 C语言基础知识 13 【正确答案】 B 【试题解析】 常量指在程序运行过程中,其值不能被改变的量。常量分为整型常量(即整常数)、实型常量、字符型常量和字符串常量。常量也可以按数据
15、类型分为为数据常量和非数据常量。变量是指在程序运行过程中,其值能被改变的量。 【知识模块】 C语言基础知识 14 【正确答案】 B 【试题解析】 在 C语言中的用户标识符只能由字母,数字和下划母组成,并且第一个字符必须是字母或下划线,在选项 A中出现了非法的字符 -。 【知识模块】 C语言基础知识 15 【正确答案】 C 【试题解析】 在 C语言中没有定义逻辑类型,而是用 0代表假,用非零代表真。 【知识模块】 C语言基础知识 16 【正确答案】 B 【试题解析】 选项 B中的 1, 234在两侧加双引号才是 C程序的合法字符串常量。 【知识模块】 C语言基础知识 17 【正确答案】 B 【试
16、题解析】 case是 C语言中的一个关键字,不能用作用户标识符来使用,所以这段程序代码在编译时就会出错。 【知识模块】 C语言基础知识 18 【正确答案】 C 【试题解析】 本题考查标识符定义。合法标识符的要求是由下划线、英文大小写字母和数字组成的字符串,且第一个字符必须是字母或下划线。 【知识模块】 C语言基础知识 19 【正确答案】 C 【试题解析】 在 C语言程序中,用一个符号名来代表一个常量,称为符号常量。注意:这个符号名必须在程序中 进行特别的 “指定 ”,并符合标识符的命名规则。一般在程序中都是利用宏定义来定义符号常量的,在代码中可以利用 undef来结束符号常量的定义,然后进行重
17、新定义,符号常量的大小写并没有特别的规定,一般时候为了和变量区分利用大写。 【知识模块】 C语言基础知识 20 【正确答案】 B 【试题解析】 变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变量 命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义后使用。 【知识模块】 C语言基础知识 21 【正确答案】 C 【试题解析】 C语言的标识符可分为以下 3类: 关键字。 C语言预先规定了一批标识符,它们在程序中都代表
18、着固定的含义,不能另作他用。这些字符称为关键字。例如, int、 double、 if、 else、 while、 for等。 预定义标识符。即预先定义并具有特定含义的标识符。 用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来 给变量、函数、数组等命名。 【知识模块】 C语言基础知识 22 【正确答案】 C 【试题解析】 对于变量的命名要利用标识符命名,所谓标识符就是 C语言中的变量名、函数名、数组名、文件名、类型名等。其中标识符构成如下: 标识符由字母、数字和下划线组成; 第一个字符必须为字母或下划线; 因此选项 A中数字开头,选项 B出现了非法字符 %,而选
19、项 D中 sizeof为关键字,不能为变量命名。 【知识模块】 C语言基础知识 23 【正确答案】 D 【试题解析】 标识符就是 C语言中的变量名、函 数名、数组名、文件名、类型名等。 C语言合法标识符的命名规则是: 标识符由字母、数字和下划线组成; 第一个字符必须为字母或下划线; 大写字母与小写字母被认为是两个不同的字符; C语言规定了一个标识符允许的字符个数,为 32,超过的字符将不被识别。 C语言的标识符可分为以下 3类: 关键字,不能用于为自定义标识符命名。 预定义标识符。 用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名,一般做
20、到见名知义,但是没有特殊规定。 【知识模块】 C语言基础 知识 24 【正确答案】 D 【试题解析】 预定义标识符是 C语言中的标识符,在 C语言中也有特定的含义,如函数 printf、 scanf、 sin等和编译预处理命令名(如 define和 include)。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。 【知识模块】 C语言基础知识 25 【正确答案】 D 【试题解析】 C语言中,常常用一个标识符来代表一个常量,称为符号常量。符号常量在使用之前要先定义,定义格式如下: #define符号常量名(常量) 其中,符号常量名)用标识符,习惯上用大写字母,常量可以是数字常量,也可以是字符。 【知识模块】 C语言基础知识