[计算机类试卷]国家二级C语言机试(C语言基础知识)模拟试卷1及答案与解析.doc

上传人:孙刚 文档编号:497924 上传时间:2018-11-30 格式:DOC 页数:23 大小:55KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(C语言基础知识)模拟试卷1及答案与解析.doc_第1页
第1页 / 共23页
[计算机类试卷]国家二级C语言机试(C语言基础知识)模拟试卷1及答案与解析.doc_第2页
第2页 / 共23页
[计算机类试卷]国家二级C语言机试(C语言基础知识)模拟试卷1及答案与解析.doc_第3页
第3页 / 共23页
[计算机类试卷]国家二级C语言机试(C语言基础知识)模拟试卷1及答案与解析.doc_第4页
第4页 / 共23页
[计算机类试卷]国家二级C语言机试(C语言基础知识)模拟试卷1及答案与解析.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、国家二级 C语言机试( C语言基础知识)模拟试卷 1及答案与解析 一、选择题 1 以下叙述中错误的是 ( A) C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( B)用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 ( C) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 ( D) C语言源程序经编译后生成后缀为 obi的目标程序 2 以下叙述中错误的是 ( A)算法正确的程序最终一定会结束 ( B)算法正确的程序可以有零个输入 ( C) 算法正确的程序可以有零个输出 ( D)算法正确的程序对于相同的输入一定有相同的结

2、果 3 关于算法,以下叙述中错误的是 ( A)同一个算法对于相同的输入必能得出相同的结果 ( B)一个算法对于某个输入的循环次数是可以事先估计出来的 ( C)某个算法可能会没有输入 ( D)任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕 4 以下叙述中正确的是 ( A)在 C语言程序设计中,所有函数必须保存在一个源文件中 ( B)在算法设计时,可以把复杂任务分解成一些简单的子任务 ( C)只要包含了三种基本 结构的算法就是结构化程序 ( D)结构化程序必须包含所有的三种基本结构,缺一不可 5 对于一个正常运行的 C程序,以下叙述中正确的是 ( A)程序的执行总是从程序的第一个函

3、数开始,在 main函数结束 ( B)程序的执行总是从 main函数开始,在程序的最后一个函数中结束 ( C)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 ( D)程序的执行总是从 main函数开始 6 以下叙述中错误的是 ( A) C程序在运行过程中所有计算都以二进制方式进行 ( B)所有 C程序都需要编译链接无误后才能 运行 ( C) C程序在运行过程中所有计算都以十进制方式进行 ( D) C程序中字符变量存放的是字符的 ASCII值 7 以下叙述中正确的是 ( A)程序的主函数名除 main外,也可以使用 Main或 main ( B)在 C程序中,模块化主要是通过函

4、数来实现的 ( C)程序可以包含多个主函数,但总是从第一个主函数处开始执行 ( D)书写源程序时,必须注意缩进格式,否则程序会有编译错误 8 以下四个程序中,完全正确的是 ( A) #include main(); * Programming * printf(“programming! n”); ( B) #include main() *programming* print“programming! n“); ) ( C) #include main() * *programming* * printf(“programming! n“); ( D) include main() *pro

5、gramming* printf(“programming! n“); ) 9 以下叙述中正确的是 ( A) C程序书写格式严格,要求一行内只能写一个语句 ( B) C程序书写格式自由,一个语句可以写在多行上 ( C) C程序中的注释只能出现在程序的开始位置和语句的后面 ( D)用 C语言编写的程序只能放在一个程序文件中 10 我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是 ( A)一条 C语句可能会被转换成多条机器指令 ( B)一条 C语句对应转换成一条机器指令 ( C)一条 C语句可能会被转换成零条 机器指令 ( D)某种类型和格式的 C语句被转换

6、成机器指令的条数是固定的 11 以下叙述中正确的是 ( A)程序必须包含所有三种基本结构才能成为一种算法 ( B)如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 ( C)只有简单算法才能在有限的操作步骤之后结束 ( D)我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令 12 按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是 ( A)连接符 ( B)大写字母 ( C)数字字符 ( D)下划线 13 以下选项中 ,不合法的 C语言用户标识符是 ( A) AaBc ( B) a-b ( C) a_b ( D) _1 14 阅读以下程序 #include

7、 main() int case; float printF: printfi(“请输入 2个数: “); scanf(“ d f“, &case, &printF); printf(“ d f n“, case, printF); 该程序在编译时产生错误,其出错原因是 ( A)定义语句 出错, printF不能用作用户自定义标识符 ( B)定义语句出错, case是关键字,不能用作用户自定义标识符 ( C)定义语句无错, scanf不能作为输入函数使用 ( D)定义语句无错, printf不能输出 case的值 15 关于 C语言的变量,以下叙述中错误的是 ( A)所谓变量是指在程序运行过程

8、中其值可以被改变的量 ( B)变量所占的存储单元地址可以随时改变 ( C)程序中用到的所有变量都必须先定义后才能使用 ( D)由三条下划线构成的符号名是合法的变量名 16 以下叙述中正确的是 ( A)标识符 的长度不能任意长,最多只能包含 16个字符 ( B)语言中的关键字不能作变量名,但可以作为函数名 ( C)用户自定义的标识符必须 “见名知义 ”,如果随意定义,则会出编译错误 ( D)标识符总是由字母、数字和下划线组成,且第一个字符不得为数字 17 以下选项中,合法的一组 C语言数值常量是 ( A) 12 0Xa23 4 5eO ( B) 028 5e-3 0xf ( C) 177 4e1

9、 5 0abc ( D) 0x8A 10, 000 3 e5 18 以下选项中合法的常量是 ( A) 2 7e ( B) 999 ( C) 123E0 2 ( D) 0Xab 19 以下选项中正确的定义语句是 ( A) double a=b=7; ( B) double a: b; ( C) double, a, b; ( D) double a=7, b=7; 20 C语言中 double类型数据占字节数为 ( A) 4 ( B) 12 ( C) 8 ( D) 16 21 以下选项中,值为 1的表达式是 ( A) 1-0 ( B) 1-0 ( C) 1 0 ( D) 0-0 22 有以下程序

10、 main() char c1, c2; c1=A+8-4: c2=A+8-5: printf(“ c, d n“, c1, c2); 已知字母 A的 ASCII码为 65,程序运行后的输出结果是 ( A) D, 69 ( B) E, 68 ( C) E, D ( D)输出无定值 23 有以下定义语句,编译时会出现编译错误的是 ( A) char a= n; ( B) char a=“aa“; ( C) char a=a; ( D) char a= x2d: 24 以下选项中非法的 C语言字符常量是 ( A) b ( B) 007 ( C) aa ( D) xaa 25 下面选项中合法的字符常

11、量是 ( A) X ( B) abc ( C) X ( D) 26 若有定义语句: char a= 82;则变量 a ( A)包含 1个字符 ( B)说明不合法 ( C)包含 2个字符 ( D)包含 3个字符 27 有以下程序 main() char a=H; a=(a =A&a =Z)?(a+32): a; printf(“ c n“, a); 程序运行后的输出结果是 ( A) H ( B) A ( C) h ( D) a 28 表达式: (int)(double)9 2)-9 2的值是 ( A) 0 ( B) 4 ( C) 3 ( D) 5 29 有以下定义: int a; long b;

12、 double x, y; 则以下选项中正确的表达式是 ( A) a (int)(x-y) ( B) a=x y ( C) (ia*y) b ( D) y=x+y=x 30 C语言程 序中,运算对象必须是整型数的运算符是 ( A) ( B) ( C) & ( D) * 31 若有定义语句: int x=10;则表达式 x=x+x的值为 ( A) -20 ( B) 0 ( C) -10 ( D) 10 32 若有定义语句: int a=3, b=2, c=1;以下选项中错误的赋值表达式是 ( A) a=b=c+1; ( B) a=(b=4)=3; ( C) a=(b=4)+c; ( D) a:

13、1+(b=c=4); 33 以下叙述中正确的是 ( A)在赋值表达式中,赋值号的右边可以是变量,也可以是任 意表达式 ( B) a是实型变量, a=10在 C语言中是允许的,因此可以说:实型变量中可以存放整型数 ( C)若有 int a=4, b=9;执行了 a=b后, a的值已由原值改变为 b的值, b的值变为 0 ( D)若有 int a=4, b=9;执行了 a=b; b=a;之后, a的值为 9, b的值为 4 34 设有定义: int x=2;以下表达式中,值不为 6的是 ( A) 2*x, x+=2 ( B) x+, 2*x ( C) x*=(1+x) ( D) x*=x+1 35

14、 设有定义: int k=0;以下选项的四个表达式中与其 他三个表达式的值不相同的是 ( A) k+ ( B) k+=1 ( C) +k ( D) k+1 36 有以下程序 main() int sum, pad, pAd; sum=pad=5; pAd=+sum, pAd+, +pad; printf(“ dha“, pad); ) 程序的输出结果是 ( A) 5 ( B) 7 ( C) 8 ( D) 6 37 以下选项中,当 x为大于 1的奇数时,值为 0的表达式是 ( A) x 2 ( B) x 2!-0 ( C) x 2=0 ( D) x 2=1 38 以下关于逻辑运算符两侧运算对象的

15、叙述中正确的是 ( A)只能是整数 0或非 0整数 ( B)可以是结构体类型的数据 ( C)可以是任意合法的表达式 ( D)只能是整数 0或 1 39 表示关系式 xYz的 C语言表达式的是 ( A) (x =y)(y =x) ( B) (x =y =z) ( C) (x =y)&(y =x) ( D) (x =y)!(y =x) 40 与数学表达式 xyz对应的 C语言表达式是 ( A) (x =y =z) ( B) (x =y)&(y =z) ( C) (x =y)!(y =z) ( D) (x =y)(y =x) 国家二级 C语言机试( C语言基础知识)模拟试卷 1答案与解析 一、选择题

16、 1 【正确答案】 C 【试题解析】 C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。由高级语言编写的程序称为 “源程序 ”,把由二进制代码表示的程序称为 “目标程序 ”。 C语言编写的源程序就是一 ASCII的形式存放在文本文件中的。 C源程序经过 C编译程序编译之后生成一个后缀为 obj的 二进制文件 (称为目标文件 ),然后由称为 “连接程序 ”(Link)的软件,把此 obj文件与 C语言提供的各种库函数连接起来生成一个后缀为 EXE的可执行文件。 【知识模块】 C语言基础知识 2 【正确答案】 C 【试题解析】 算法是

17、指为解决某个特定问题而采取的确定且有限的步骤。一个算法应该具有以下 5个特征: 有穷性。一个算法包含的操作步骤应该是有限的。也就是说,在执行若干个操作步骤之后,算法将结束,而且每一步都在合理的时间内完成。 确定性。算法中的每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。 可行性。算法中指定的操作,都可以通过已经验证过可以实现的基本运算执行有限次后实现。 有零个或多个输入。在计算机上实现的算法是用来处理数据对象的,在大多数情况下这些对象需要通过输入来得到。 有一个或多个输出。算法的目的是为了求 “解 ”,这些 “解 ”只有通过输出才能得到。 【知识模块】 C语言基

18、础知识 3 【正确答案】 D 【试题解析】 算法和程序不同,算法满足以 下特性:算法有 5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或多个输出。算法的确定性是指算法中的每一个步骤都必须有明确定义,不允许有模棱两可的解释,也不允许有多义性,因此对于相同的输入必有相同的输出,同时可以事先估计算法的时间复杂度,对于有循环的算法,以循环体内的循环次数来估测时间复杂度。 【知识模块】 C语言基础知识 4 【正确答案】 B 【试题解析】 模块化设计思想,就是把复杂的任务分成简单的子任务,用函数或者过程描述子任务, C语言中一个程序可以包括多个源文件,每个源文件 可以有若干个函数,结构化的

19、程序由顺序结构、循环结构和选择结构三种基本结构组成,不一定全要包括这三种结构,而算法不等于程序。 【知识模块】 C语言基础知识 5 【正确答案】 D 【试题解析】 一个 C语言源程序无论包括了多少函数,在正常情况下总是从main函数开始执行,从 main函数结束。 【知识模块】 C语言基础知识 6 【正确答案】 C 【试题解析】 计算机程序都是编译为二进制的代码,计算机才会执行。 【知识模块】 C语言基础知识 7 【正确答案】 B 【试题 解析】 C语言中任何一个有效的程序都有且只能有一个 main(1函数,不能写成其他形式,一个 C程序总是从主函数开始执行,到 main函数体执行完后结束,而

20、不论 main函数在整个程序中的位置如何。而为了代码清晰容易看懂,最好加上注释,这是程序书写风格,与编译无关。 【知识模块】 C语言基础知识 8 【正确答案】 B 【试题解析】 在选项 A)中, main()函数后面的分号是错误的, C语言在函数名后面不能有分号。在 C语言中注释内容必须放在 “ ”和 “* ”之间, “ *”和 “* ”必须成对出现,按语法规定 在注释之间不可以再嵌套 “ *”和 “* ”。在选项 C)的程序段中注释语句之间有嵌套:所以选项 C)不正确。 C语言用 #include命令行来实现文件包含的功能。 #include命令行的形式为: #include “文件名 ”,

21、所以在选项D)中 include前面少了一个 #符号,因而选项 D)不正确。 【知识模块】 C语言基础知识 9 【正确答案】 B 【试题解析】 本题主要考查的是 C语言结构中的源程序书写格式这个知识点,在 C语言中注释部分对程序的运行结果不产生任何影响,它可以出现在任意位置; C语言书写自 由,一行内可以写多个语句,一个语句可以写在多行上;由于C语言编写的程序有很好的移植性,可以放在多个程序文件中。 【知识模块】 C语言基础知识 10 【正确答案】 B 【试题解析】 由 C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而 C语

22、言的语句条数和机器指令的条数不是一对一的关系。 【知识模块】 C语言基础知识 11 【正确答案】 D 【试题解析】 C语句构成了函数,函数构成的程序,经过编译转换成、二进制代码 后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来描述算法,而算法 +数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。 【知识模块】 C语言基础知识 12 【正确答案】 A 【试题解析】 在 C语言中,合法标识符的命令规则是:标识符可以由字母、数字或下划线组成,并且第一

23、个字符必须为字母或下划线。在 C语言的标识符中,大写字母和小写字母被认为是两个不 同的字符。选项 A)是连字符,不在 C语言规定的命名变量标识符的范围内。 【知识模块】 C语言基础知识 13 【正确答案】 B 【试题解析】 在 C语言中的用户标识符只能由字母,数字和下划母组成,并且第一个字符必须是字母或下划线,在选项 A)中出现了非法的字符 -。 【知识模块】 C语言基础知识 14 【正确答案】 B 【试题解析】 case是 C语言中的一个关键字,不能用作用户标识符来使用,所以这段程序代码在编译时就会出错。 【知识模块】 C语言基础知识 15 【正确答案】 B 【试题解析】 变量是指在程序运行

24、过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义后使用。 【知识模块】 C语言基础知识 16 【正确答案】 D 【试题解析】 标识符就是 C语言中的变量名、函数名、数组名、文件名、类型名等。 C语言合法标识符的命名规则是: 标 识符由字母、数字和下划线组成; 第一个字符必须为字母或下划线; 大写字母与小写字母被认为是两个不同的字符; C语言规定了一个标识符允许的字符个数,为 3

25、2,超过的字符将不被识别。 C语言的标识符可分为以下 3类: 关键字,不能用于为自定义标识符命名。 预定义标识符。 用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名,一般做到见名知义,但是没有特殊规定。 【知识模块】 C语言基础知识 17 【正确答案】 A 【试题解析】 八进制数其开头必须是数字 “0”,其数字包括 0 7,而在选项 B)中, 028是错误的。浮点数据的指数形式表示常量中, C语言规定字母 e或 E之前必须要有数字,且 e或 E之后的指数必须为整数,而选项 C)中 4e1 5是错误的。在选项 D)中,整型数据 10, 00

26、0的表示形式是错误的。 【知识模块】 C语言基础知识 18 【正确答案】 D 【试题解析】 0xab是十六进制表示的常量。 【知识模块】 C语言基础知识 19 【正确答案】 D 【试题解析】 在 C语言中,可以用一条语句 同时定义几个同类型的变量,变量之间用逗号隔开。 【知识模块】 C语言基础知识 20 【正确答案】 C 【试题解析】 double类型所占字节为 8。 【知识模块】 C语言基础知识 21 【正确答案】 C 【试题解析】 在 C程序中,字符量可参与任何整数运算。字符参与运算时,首先要将字符转换为其对应的 ASCII码值再参与整数运算。字符 1对应的 ASClI码值是 49,字符

27、0对应的 ASCII码值是 48,字符 0是字符串结束标识符 NULL,其对应的 ASCII码值是 0。 【 知识模块】 C语言基础知识 22 【正确答案】 B 【试题解析】 字符变量 c1的 ASCII值等于 69,而字符变量 c2的 ASCII值等于68,当分别以字符和整型输出 c1和 c2的 ASCII码值时,其结果为 E, 68。 【知识模块】 C语言基础知识 23 【正确答案】 B 【试题解析】 在选项 B)中,由两个字符 aa组成一个字符串赋给一个字符变量 a时会出错。 【知识模块】 C语言基础知识 24 【正确答案】 C 【试题解析】 一个字符常量代表 ASC 字符集中的一个字符

28、,在程序 中用单引号把一个字符括起来作为字符常量。 【知识模块】 C语言基础知识 25 【正确答案】 C 【试题解析】 在程序中用单引号把一个字符括起来作为字符常量。但是为了表示字符 “ ”要用两个 “ ”表示一个反斜杠。 【知识模块】 C语言基础知识 26 【正确答案】 B 【试题解析】 转义字符以一个反斜线开头后跟一个特定的字符,可以利用 ddd3位八进制数代表的一个 ASCII字符,也可以 xhh2位十六进制数代表的一个 ASCII字符。选项 A)中的八进制表示出现字符 8,非法。 【知识模块】 C语言基础知识 27 【正确答案】 C 【试题解析】 表达式 a=(a =A&a =Z)?(

29、a+32): a,为条件表达式,如果 a是大写字符,则转换为小写字符存放到 a中,否则不变。 【知识模块】 C语言基础知识 28 【正确答案】 C 【试题解析】 这个表达式的计算过程为,首先求出 9除以 2的商等于 4,再把其强制转化为实型数据为 4 0,然后再强制转 4,减去 9对 2求余数 1,得到其结果等于 3。 【知识模块】 C语言基础知识 29 【正确答案】 A 【试题解析】 选项 B)中运算符不存在,选项 C)中 double类型不能进行取余( )操作,要求两个运算数必须是整数,选项 D)中 x+y=x错误。 【知识模块】 C语言基础知识 30 【正确答案】 B 【试题解析】 要求

30、参与运算的运算量为整型,其他三个运算符对于参与运算的运算量没有直接要求。 【知识模块】 C语言基础知识 31 【正确答案】 C 【试题解析】 表达式 x =x+X等价于 X=X (x+x),整型变量 x的初始值等于10,计算题目所求表达式的值时,首先计算 x与 x的 和等于 20,然后再用 10减去20等于 -10,得到该表达式的值。 【知识模块】 C语言基础知识 32 【正确答案】 B 【试题解析】 本题主要考查赋值表达式,对于赋值表达式来说,赋值号 “=”的左边一定为变量名,右边为一个 C语言合法的表达式。 【知识模块】 C语言基础知识 33 【正确答案】 A 【试题解析】 选项 B)中

31、a=10,在赋值时会把 10自动转换为 double类型然后赋值,实型变量中不可能存放整型。而选项 C)中执行 a=b后, b的值不变还是 9,选项 D)中执行 a-b; b=a; 后, a的值为 9, b的值也为 9。 【知识模块】 C语言基础知识 34 【正确答案】 A 【试题解析】 本题考查逗号表达式。逗号表达式的求解过程是:先求解表达式1,再求解表达式 2,整个逗号表达式的值是表达式 2的值,因此,选项 A)中值为4;选项 B)中,值为 6。选项 C)中 x*=x+1等价于 x=x*(x+1),所以等于 6;选项 D)与选项 C)等价,结果也为 6。 【知识模块】 C语言基础知识 35

32、 【正确答案】 A 【试题解析】 因为题中有语句 int k=0;,所以选项 B)、 C)、 D)都是 对 k的值加1,选项 A)的语句 k+表示先利用 k的值进行运算,然后 k值才加 1。 【知识模块】 C语言基础知识 36 【正确答案】 D 【试题解析】 有逗号表达式构成的语句: pAd=+sum, pAd+, +pad;主要从左到由连续运算,因此 pad的值为 6。注意 pad和 pAd的是不同的变量。 【知识模块】 C语言基础知识 37 【正确答案】 C 【试题解析】 由于 x为大于 1的奇数,因此 x 2取余的值为 1,和 0不相等。 【知识模块】 C语言基础知识 38 【正确答案】 C 【试题解析】 逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的运算结果或者为 1(“真 ”),或者为 0(“假 ”)。 【知识模块】 C语言基础知识 39 【正确答案】 C 【试题解析】 表示三个变量的关系,要利用逻辑表达式,用逻辑与连接。 【知识模块】 C语言基础知识 40 【正确答案】 B 【试题解析】 若要表示 x大于等于 y,同时 y大于等于 z,需要用逻辑与表达式连接。 【知识模块】 C语言基础知识

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1