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

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

1、国家二级 C语言机试( C语言基础知识)模拟试卷 2及答案与解析 一、选择题 1 下列叙述中错误的是 ( A) C程序可以由多个程序文件组成 ( B)一个 C语言程序只能实现一种算法 ( C) C程序可以由一个或多个函数组成 ( D)一个 C函数可以单独作为一个 C程序文件存在 2 以下选项中关于程序模块化的叙述错误的是 ( A)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块 ( B)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 ( C)把程序分成若干相对独立的模块,可便于编 码和调试 ( D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的

2、程序 3 以下不能用于描述算法的是 ( A)程序语句 ( B) E R图 ( C)伪代码和流程图 ( D)文字叙述 4 以下叙述中正确的是 ( A)每个后缀为 c的 C语言源程序都应该包含一个 main函数 ( B)在 C语言程序中, main函数必须放在其他函数的最前面 ( C)每个后缀为 c的 C语言源程序都可以单独进行编译 ( D)在 C语言程序中,只有 main函数才可单独进行编译 5 计算机能直接执行的程序是 ( A)目标 程序 ( B)可执行程序 ( C)汇编程序 ( D)源程序 6 下列叙述中正确的是 ( A)在 C程序中 main函数的位置是固定的 ( B) C程序中所有函数之

3、间都可以相互调用 ( C)每个 C程序文件中都必须要有一个 main函数 ( D)在 C程序的函数中不能定义另一个函数 7 以下叙述中正确的是 ( A) C语言程序总是从最前面的函数开始执行 ( B) C语言程序总是从 main函数开始执行 ( C) C语言程序中 main函数必须放在程序的开始位置 ( D) C语言程序所调用的函数必须放在 main函数的前面 8 以下关于结构化程序设计的叙述中正确的是 ( A)结构化程序使用 goto语句会很便捷 ( B)一个结构化程序必须同时由顺序、分支、循环三种结构组成 ( C)由三种基本结构构成的程序只能解决小规模的问题 ( D)在 C语言中,程序的模

4、块化是利用函数实现的 9 以下关于 C语言的叙述中正确的是 ( A) C语言中的变量可以在使用之前的任何位置进行定义 ( B)在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 ( C) C语言的数值常量中夹带空格不影响常量值的正确表示 ( D) C语言中的注释不可以夹在变量 名或关键字的中间 10 以下选项中不属于 C语言程序运算符的是 ( A) sizeof ( B) () ( C) ( D) & 11 以下选项中不合法的标识符是 ( A) FOR ( B) &a ( C) print ( D) _00 12 以下选项中,能用作用户标识符的是 ( A) _0_ ( B) 8_8

5、( C) void ( D) unsigned 13 以下关于 C语言数据类型使用的叙述中错误的是 ( A)若要保存带有多位小数的数据,可使用双精度类型 ( B)若要处理如 “人员信息 ”等含有不同类型的相关 数据,应自定义结构体类型 ( C)若只处理 “真 ”和 “假 ”两种逻辑值,应使用逻辑类型 ( D)整数类型表示的自然数是准确无误差的 14 以下选项中合法的标识符是 ( A) 1-1 ( B) 1_1 ( C) _11 ( D) 1_ 15 以下选项中不属于 C语言标识符的是 ( A)用户标识符 ( B)关键字 ( C)常量 ( D)预定义标识符 16 C语言中的标识符分为关键字、预定

6、义标识符和用户标识符,以下叙述正确的是 ( A)关键字可用作用户标识符,但失去原有含义 ( B)在标识符中大写字母和小写字母被 认为是相同的字符 ( C)用户标识符可以由字母和数字任意顺序组成 ( D)预定义标识符可用作用户标识符,但失去原有含义 17 C源程序中不能表示的数制是 ( A)八进制 ( B)十进制 ( C)二进制 ( D)十六进制 18 以下选项中能表永合法常量的是 ( A) 007 ( B) 1 5E2 0 ( C) ( D) 1 200 19 有以下程序段 double x=5 1 6894; printf(“ f n“, (int)(x*1 000+0 5) (double

7、)1000); 则程序段的输出结果是 ( A) 5 175000 ( B) 5 169000 ( C) 5 170000 ( D) 5 168000 20 以下叙述中正确的是 ( A)整型常量和实型常量都是数值型常量 ( B)常量的类型不能从字面形式上区分,需要根据类型名来决定 ( C)预定义的标识符是 C语言关键字的一种,不能另作它用 ( D)只能在函数体内定义变量,其他地方不允许定义变量 21 以下定义语句中正确的是 ( A) char A=65+1, b=b; ( B) int a=b=0; ( C) float a=1, *b=&a, *c=&b; ( D) double a=0 0:

8、 b=1 1: 22 以下不能输出字符 A的语句是 (注:字符 A的 ASCII码值为 65,字符 a的ASCII码值为 97) ( A) printf(“ c n“, a-32); ( B) printf(“ d n“, A); ( C) printf(“ c n“, 65); ( D) printf(“ c n“, B-1); 23 已知字符 A的 ASCII代码值是 65,字符变量 c1的值是 A, c2的值是 D。则执行语句 printf(“ d, d“, c1, c2-2);的输出结果是 ( A) A, 68 ( B) A, B ( C) 65, 66 ( D) 65, 68 24

9、以下选项中非法的 C语言字符常量是 ( A) 9 ( B) 09 ( C) x09 ( D) x9d 25 以下叙述中正确的是 ( A)字符常量在内存中占 2个字节 ( B)转义字符要用双引号括起来,以便与普通的字符常量区分开 ( C)字符常量需要用单引号括起来 ( D)字符常量是不能进行关系运算的 26 有以下程序 main() char c1=A, c2=Y; printf(“ d, d n“, c1, c2); 程序的输出结果是 ( A)输出格式不合法,输出出错信息 ( B) 65, 90 ( C) 65, 89 ( D) A Y 27 以下正确的字符串常量是 ( A) abe ( B)

10、 Olympic Games ( C) “ ( D) 28 若有定义语句: int x=12, y=8, z;在其后执行语句 z=0 9+x y;则 z的值为 ( A) 1 9 ( B) 1 ( C) 2 ( D) 2 4 29 若有以下程序 #include main() int a=0, b=0, c=0, d; c=(a+=b, b+=a); *第 4行 * d=c; *第 5行 * ; *第 6行 * printf(“ d, d, d n“, a, b, c); *第 7行 * 编译时出现错误,你认为出错的是 ( A)第 4行 ( B)第 5行 ( C)第 6行 ( D)第 7行 30

11、 若有定义: double a=22; int i=0, k=18; 则不符合 C语言规定的赋值语句是 ( A) i=(a+k) main() int a=1, b=0; printf(“ d, “, b=a+b); printf(“ d n“, a=: 2*b); 程序运行后的输出结果是 ( A) 1, 0 ( B) 3, 2 ( C) 1, 2 ( D) 0, 0 32 表达式 a+=a-=a=9的值是 ( A) -9 ( B) 0 ( C) 18 ( D) 9 33 有以下程序 #include main() int a=3; printf(“ d n“, (a+=a-=a*a); 程序

12、运行后的输出结果是 ( A) 9 ( B) 0 ( C) 3 ( D) -12 34 有以下程序 #include main() int x, y, z; x=y=1; z=x+, y+, +y; printf(“ d, d, d n“, x, y, z); ) 程序运行后的输出结果是 ( A) 2, 3, 1 ( B) 2, 3, 2 ( C) 2, 3, 3 ( D) 2, 2, 1 35 若有以下程序 #include stdio h main() int a=0, b=0, c=0; c=(a-=+a), (a+=b, b+=4); printf(“ d, d, d n“, a, b,

13、 c); 则程序的输出结果是 ( A) 0, 4, 4 ( B) 1, 4, 1 ( C) 0, 4, 0 ( D) 1, 4, 4 36 若有定义 int x, y;并已正确给变量赋值,则以下选项中与表达式 (x-y)?(x+):(y+)中的条件表达式 (x-y)等价的是 ( A) (x-y 0) ( B) (x-y 0) ( C) (x-y 0x-y 0) ( D) (x-y=0) 37 以下叙述中正确的是 ( A)关系运算符两边的运算对象可以是 C语言中任意合法的表达式 ( B)在 C语言中,逻辑真值和假值分别对应 1和 0 ( C)对于浮点变量 X和 Y,表达式: x=y是非法的,会出

14、编 译错误 ( D)分支结构是根据算术表达式的结果来判断流程走向的 38 若 a是数值类型,则逻辑表达式 (a=1)(a!=1)的值是 ( A) 0 ( B) 2 ( C) 1 ( D)不知道 a的值,不能确定 39 若变量己正确定义,以下选项中非法的表达式是 ( A) a!=4b ( B) a 4 ( C) a=1 2*(x=y=20, x*3) ( D) A+32 40 以下叙述中正确的是 ( A)对于逻辑表达式: a+&b+,设 a的值为 0,则求解表达式的值后, b的值会发生改变 ( B)对于 逻辑表达式: a+b+,设 a的值为 1,则求解表达式的值后, b的值会发生改变 ( C)关

15、系运算符的结果有三种: 0, 1, -1 ( D) else不是一条独立的语句,它只是 if语句的一部分 国家二级 C语言机试( C语言基础知识)模拟试卷 2答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 算法是指为解决某个特定问题而采取的确定且有限的步骤。在 C语言中一个算法是用函数来实现的。一个 C语言源程序由许多函数组成,这些函数都是根据实际任务,确定具体的算法,由用户自己编写。 C语言源程序可以放在不同的文 件中,同一个源程序中的函数也可放在不同的文件中,所以一个 C语言程序可以实现多种算法。 【知识模块】 C语言基础知识 2 【正确答案】 B 【试题解析】 如果应用结构化

16、程序设计方法设计程序,那么可采用自顶向下,逐步细化的设计方法把若干独立模块组装成所要求的程序。 【知识模块】 C语言基础知识 3 【正确答案】 B 【试题解析】 E-R图为实体联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。描述算法的有流程图,盒图,伪代码,文字描述以及程序代码描述。 【知识模块】 C语言基础知识 4 【正确答案】 C 【试题解析】 每一个 C语言的文件或函数都可以单独编译,但只有 main函数的才可以执行。 【知识模块】 C语言基础知识 5 【正确答案】 B 【试题解析】 把由高级语言编写的程序称为 “源程序 ”,由二进制代码表示的程序称为 “目标程序

17、 ”(后缀名为 obj),由汇编语言编写的程序称为 “汇编程序 ”。为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句一一翻译成二进制的机器指令。这 种具有翻译功能的软件称为 “编译程序 ”,每种高级语言都有与它对应的编译程序。 C源程序经过 C编译程序编译之后生成一个后缀为 obj的二制进文件 (称为目标文件 ),这个目标程序要和 C语言的库函数相链接生成一个后缀为 exe的文件,这个文件可以在操作系统中直接执行,称为可执行程序。 【知识模块】 C语言基础知识 6 【正确答案】 D 【试题解析】 当一个程序作为另一个程序的子程序,并

18、且它自己不独立执行时,这该程序可以没有主函数。主函数的位置不固定,并且可以调用程序中的其他函数,而其他函数不可以调用 main()函数。 C语言规定,不能在函数的内部定义函数。 【知识模块】 C语言基础知识 7 【正确答案】 B 【试题解析】 C语言中一个源程序都有一个且只能有一个 main函数,即主函数; C语言规定必须用 main作为主函数名。其后的一对圆括号中可以是空的,但不能省略。程序中的 main()是主函数的起始行,也是 C程序执行的起 始行。每一个程序都必须有一个且只能有一个主函数。一个 C程序总是从主函数开始执行,到 main函数体执行完后结束,而不论 main函数在整个程序中

19、的位置如何。而调用函数的定义位置和调用没有直接关系。 【知识模块】 C语言基础知识 8 【正确答案】 D 【试题解析】 C语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,研究证明任何程序都可以由这三种基本结构组成。但是程序可以包含一种或者几种结构,不是必须包含全部三种结构。自从提倡结构化设计以来, goto就成了有争议 的语句。首先,由于 goto语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次, goto语句经常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。Goto语句的使用会使程序容易发生错误并且也不易阅读

20、,所以应避免使用。由三种基本结构构成的程序几乎能解决大部分问题。 【知识模块】 C语言基础知识 9 【正确答案】 D 【试题解析】 C语言中的注释可以出现在程序中的任何位置,但是不能夹在变量或者关键字之间; C语言的变量在函数开始位置进行定义,也可以在变量使用前位置定义;一个浮点数可以和一个整数相加,运算符两侧的运算类型也可以不一致;数值常量中不允许夹带空格。 【知识模块】 C语言基础知识 10 【正确答案】 C 【试题解析】 sizeof为测试内存的运算符, ()为算术运算符, &为逻辑运算符。而不是 C语言的运算符, C语言中 !=表示不等于。 【知识模块】 C语言基础知识 11 【正确答

21、案】 B 【试题解析】 合法的标识符要满足组成字符为 az以及 Az,数字字符 0到 9和下划线,其中数字不开头,不能是关键字。选项 B)中, &不属于组 成字符,是错误的。 【知识模块】 C语言基础知识 12 【正确答案】 A 【试题解析】 在 C语言中,用户的标识符只能由字母或下划线开始。一般强调文见其义的命名方法。但是 C语言中的保留字不能用作用户的标识符。而选项 C)和 D)全部为保留字,选项 B)中以数字开头,这些都不正确。 【知识模块】 C语言基础知识 13 【正确答案】 C 【试题解析】 在 C语言中没有定义逻辑类型,而是用 0代表假,用非零代表真。 【知识模块】 C语言基础知识

22、 14 【正确答案】 C 【试题解 析】 本题考查标识符定义。合法标识符的要求是由下划线、英文大小写字母和数字组成的字符串,且第一个字符必须是字母或下划线。 【知识模块】 C语言基础知识 15 【正确答案】 C 【试题解析】 C语言的标识符可分为以下 3类: 关键字。 C语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用。这些字符称为关键字。例如, int、 double、 if、 else、 while、for等。 预定义标识符。即预先定义并具有特定含义的标识符。 用户标识符。由用户根据需 要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名。

23、 【知识模块】 C语言基础知识 16 【正确答案】 D 【试题解析】 预定义标识符是 C语言中的标识符,在 C语言中也有特定的含义,如函数 prinff、 scanf、 sin等和编译预处理命令名 (如 define和 include)。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。 【知识模块】 C语言基础知识 17 【正确答案】 C 【试题解析】 在 C语言的源程序中,数值可以用十进制、八 进制和十六进制来表示。不用二进制来表示。 【知识模块】 C语言基础知识 18 【正确答案】 A 【试题解析】 选项 D), 1200中间不能有逗号,否则编译时会认为是 1或出错。选项

24、 B), 2 0错误,必须为整数。选项 C),要表示字符斜杠常量 ,应该在反斜杠的前面再加上一个反斜杠。选项 A)为字符串常量,为正确选项。 【知识模块】 C语言基础知识 19 【正确答案】 B 【试题解析】 (jnt)(x*1000+0 5) (double)1000表达式功能,保存数据 x的后三位小数,把 第四位四舍五入。 【知识模块】 C语言基础知识 20 【正确答案】 A 【试题解析】 整型常量和实型常量都是数值型常量,选项 A)正确;常量的类型可以从字面上区分,比如整型常量不能有小数点,组成字符为 0 9等,选项 B)错误;预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用

25、,不过更改了原有的含义,选项 C)错误;变量可以定义在程序中任何的地方,属于不同的变量,选项 D)错误。 【知识模块】 C语言基础知识 21 【正确答案】 A 【试题解析】 本题考查的是数据类型的定义并 赋值,选项 B)中对变量声明类型且赋值的情况是不允许出现的,必须单独定义且赋值。选项 C)中对于指针变量 c的赋值须为同型指针,而 &b为二级指针。选项 D)中 c语言允许在一个类型说明符后说明多个相同类型的变量,各变量之间要用逗号 (, )隔开,而不是用分号 (; )隔开;在计算机存储字符时将字符相应的 ASCII码以其对应的二进制进行存放,选项 A)中的定义是合法的。 【知识模块】 C语言

26、基础知识 22 【正确答案】 B 【试题解析】 在选项 B)的输出函数中,大写字符 A以整型数据的形式输出。 【知识模 块】 C语言基础知识 23 【正确答案】 C 【试题解析】 在 C语言中,字符常量在内存中占一个字节,存放的是字符的ASC II码值。所有的字符常量都作为整型量来处理。在本题中输出语句用整型格式输出字符时,输出的是其 ASC II码值。因为字符 A和 D的 ASC 码值分别为65和 68,所以 c2 2=68 2=66。 【知识模块】 C语言基础知识 24 【正确答案】 B 【试题解析】 一个字符常量代表 ASC 字符集中的一个字符,在程序中用单引号把一个字符括起来。也可以为

27、转移字符,转义 字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的 ASC字符,这些字符常量也必须括在一对单引号内。其中反斜线后的八进制数可以不用 0开头,但是不能有 8和 9字符出现。反斜线后的十六制数只可由小写字母 x开头。 【知识模块】 C语言基础知识 25 【正确答案】 C 【试题解析】 在程序中用单引号把一个字符括起来作为字符常量。转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的 ASC 字符,这些字符常量也必须括在一 对单引号内,和整型常量一样,字符常量也可以进行关系运算的。 【知识模块】 C

28、语言基础知识 26 【正确答案】 C 【试题解析】 C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。 【知识模块】 C语言基础知识 27 【正确答案】 C 【试题解析】 字符串常量是由双引号括起来的一串字符。在 C语言中,以一个反斜线开头后跟一个特定的字符,用来代表一个特定的 ASCII字符。利用两个 表示一个反斜杠,因此 选项 D)的表示无法确认表示几个反斜杠。 【知识模块】 C语言基础知识 28 【正确答案】 B 【试题解析】 由于 x,y,z都是整型数据,所以 x除以 y的值为整型数值 1, 1和0 9相加得到

29、 1 9,再转换为整型数 1赋给整型变量 z。 【知识模块】 C语言基础知识 29 【正确答案】 A 【试题解析】 第 4行出错,在第 4行括号中两个逗号不可以为空。单独的分号为C语言的空语句,是编译程序可以识别并且编译的,因此第 5、 6行都是正确的。 【知识模块】 C语言基础知识 30 【正确答 案】 C 【试题解析】 在 C语言中,求余运算符的运算对象只能是整型,在题目中,变量 a是一个双精型实型变量。 【知识模块】 C语言基础知识 31 【正确答案】 C 【试题解析】 在主函数中定义了两个整型变量 a和 b,并把它们的初值分别设置为 1和 0;在第二条语句中,首先计算出 a和 b的和等

30、于 1,把此值赋给变量 b,并在屏幕上输出此时变量 b的值 1;在第三条语句中,计算出 2乘以 l的积等于2,把 2赋给变量 a,再把变量 a的值在屏幕上输出。 【知识模块】 C语言基础知识 32 【正确答案】 B 【试题解析】 第一步 a=9,然后计算 a-a的值,并将此值赋给 a,因此此时a=0,最后计算 a+a,并将此值赋给 a,因此最终结果为 0。 【知识模块】 C语言基础知识 33 【正确答案】 D 【试题解析】 对于表达式 a+=a=a*a相当于 a=a-(a*a),然后计算 a=a+a, a的初值为 3,则表达式的值为 -12。 【知识模块】 C语言基础知识 34 【正确答案】

31、A 【试题解析】 在程序中,整型变量 x、 y的初值都为 1,赋值语句 z=x+, y+,+y右边的 “x+, y+, +y”是一个逗号表达式,所以逗号表达式的值为 +y的值。执行逗号表达式 “x+, y+, +y”后, x的值为 2, y的值为 3, z取逗号表达式的值,为 1。 【知识模块】 C语言基础知识 35 【正确答案】 C 【试题解析】 表达式 c=(a-=+a), (a+=b, b+=4)相当于逗号表达式,首先计算c=(a-=+a),其中 a-=+a)等价于 a=a-(+a),得到 a的值 0, c的值为 0,在计算(a+=b, b+=4)时, a和 b的初值为 0,计算以后,

32、a为 0, b为 4。 【知识模块】 C语言基 础知识 36 【正确答案】 D 【试题解析】 条件表达式的形式如下:表达式 1?表达式 2:表达式 3。其含义为当 “表达式 1”的值为非零时,求出 “表达式 2”的值,此时 “表达式 2”的值就是整个条件表达式的值;当 “表达式 1”的值为零时,则求 “表达式 3”的值,这时 “表达式3”的值就是整个表达式的值。本题条件表达式的执行顺序是先求解表达式 “x y”的值,若其值为非 0(可以是正数,也可以是负数 ),则再求表达式 “x+”的值,其值就是条件表达式的值;若表达式 “x-y”的值为 0,则再求表达式 “y+”的值,其值就是条 件表达式的

33、值。 【知识模块】 C语言基础知识 37 【正确答案】 A 【试题解析】 C语言中没有逻辑类型,用非零表示逻辑真。 0表示逻辑假,选项B)错误,无法判断两个浮点变量是否相等,但是 x=y 不会出现编译错误,选项 C)错误,分支结构根据表达式的值,不一定为算术表达式,选项 D)错误。 【知识模块】 C语言基础知识 38 【正确答案】 C 【试题解析】 在逻辑表达式中, ab,只有在 a跟 b都为 0时,表达式的结果才为 0。在题中所给的表达式中 a要么等于 1,要么不等于 1,肯定会有一方 的值不为真,表达式值为 1。 【知识模块】 C语言基础知识 39 【正确答案】 C 【试题解析】 赋值表达式左边应为变量,选项 C)中左边为字符常量,因此非法,其余表达式均为合法的表达式。 【知识模块】 C语言基础知识 40 【正确答案】 D 【试题解析】 else不能单独使用,和 if匹配使用,要注意逻辑与运算和逻辑或运算出现的短路现象,关系运算结果仅有 0和 1。 【知识模块】 C语言基础知识

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

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

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