1、国家二级( C语言)笔试模拟试卷 191及答案与解析 1 数据结构主要研究的是数据的逻辑结构、数据的运算和 ( )。 ( A)数据的方法 ( B)数据的存储结构 ( C)数据的对象 ( D)数据的逻辑存储 2 一棵二叉树的前序遍历结果是 ABCEDF,中序遍历结果是 CBAEDF,则其后序遍历的结果是 ( )。 ( A) DBACEF ( B) CBEFDA ( C) FDAEBC ( D) DFABEC 3 在数据处理中,其处理的最小单位是 ( )。 ( A)数据 ( B)数据项 ( C)数据结构 ( D)数据元素 4 在数据库系统的内部结构体系中,索引属于 ( )。 ( A)模式 ( B)
2、内模式 ( C)外模式 ( D)概念模式 5 以下 ( )不属于对象的基本特征。 ( A)继承性 ( B)封装性 ( C)分类性 ( D)多态性 6 数据厍系统的核心是 ( )。 ( A)数据模型 ( B)软件开发 ( C)数据库设计 ( D)数据库管理系统 7 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( )。 ( A)软件矛盾 ( B)软件危机 ( C) 软件藕合 ( D)软件产生 8 关系模型允许定义 3类数据约束,下列不属于数据约束的是 ( )。 ( A)实体完整性约束 ( B)参照完整性约束 ( C)属性完整性约束 ( D)用户自定义的完整性约束 9 关系表中
3、的每一行记录称为一个 ( )。 ( A)字段 ( B)元组 ( C)属性 ( D)关键码 10 在数据库管理技术的发展中,数据独立性最高的是 ( )。 ( A)人工管理 ( B)文件系统 ( C)数据库系统 ( D)数据模型 11 在 C语言中,以下说法不正确的是 ( )。 ( A)在 C程序中,整数和实数都能被准确无误地表示出来 ( B)在 C程序中,任何一个变量名都代表存储器中的一个位置 ( C)静态变量的生存期与整个程序的运行期相同 ( D) C语言中,任何变量都必须先声明才能进行引用 12 以下关于 C语言数据类型的叙述中正确的是 ( )。 ( A) C基本数据类型包括:分为整型、实型
4、、浮点型、字符型四种 ( B)实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式 ( C)若要处理如 “人员信息 ”等含有不同类型的相关数据,应自定义结构体类 型 ( D)若只处理 “真 ”和 “假 ”两种逻辑值,应使用逻辑类型 13 以下标识符不是关键字的是 ( )。 ( A) break ( B) char ( C) switch ( D) return 14 下列选项中,不能作为合法常最的是 ( )。 ( A) 1.2340000 ( B) 1.234.4 ( C) 1.2340000 ( D) 1.234 15 以下不合法的用户标识符是 ( )。 ( A)
5、 r3_t3 ( B) Else ( C) 6a ( D) _6 16 下列叙述中正确的是 ( )。 ( A)调用 printf()函数时,必须要有输出项 ( B)使用 putchar()函数时,必须在之前包含头文件 stdio.h ( C)在 C语言中,整数可以以二进制、八进制或十六进制的形式输出 ( D)调节 getchar()函数读入字符时,可以从键盘上输入字符所对应的 ASCII码 17 执行以下程序段后, w的值为 ( )。 intw=A, x=14, y=15; w=(x|y)&(w a); ( A) -1 ( B) NULL ( C) 1 ( D) 0 18 设有定义: “lon
6、g x=123450L; ”,则以下能够正确输出变量 x的是 ( )。 ( A) printf(“x=%dn“, x); ( B) printf(“x=%ida“,x); ( C) printf(“x=%dLn”, x); ( D) printf(“x=%ldn“, x); 19 已有定义 int a=3;和输出语句 printf(“%8x“, A);以下正确的叙述是 ( )。 ( A)整型变量的输出格式符只有 %d一种 ( B) %x是格式符的一种,它可以适用于任何一种类犁的数据 ( C) %x是格式符的一种,其变量 的值按十六进制数输出,但 %08x是错误的 ( D) %8x是正确的格式符
7、,其中数字 8规定了输出字段的宽度 20 若有定义 int x, y;并已正确给变量赋值,则下列选项中与表达式 (x-y)?(x+):(y+)中的条件表达式 (x-y)等价的是 ( )。 ( A) (x-y 0) ( B) (x-y 0) ( C) (x-y 0|x-y 0) ( D) (x-y=0) 21 若 a、 b、 c、 d都是 int型变量且都已经正确赋初值,则以下不正确的赋值语句是 ( )。 ( A) a+d; ( B) a+: ( C) a=b=c=d=100; ( D) a=(b=3)+(d=5); 22 有以下程序 #define F(X, Y)(X)*(Y) main()
8、int a=3, b=4: printf(“%dn“, F(a+, b+); 程序运行后的输出结果是 ( )。 ( A) 12 ( B) 15 ( C) 16 ( D) 20 23 以下是 while语句的基本形式: while(表达式 )语句: 其中 “表达式 ”( )。 ( A)必须是逻辑表达式 ( B) 必须是关系表达式 ( C)必须是逻辑表达式或关系表达式 ( D)可以是任意合法的表达式 24 有以下程序: #include stdio.h main() int a=6, b=7, m=I; switch(a%2) case 0:m+; break; case 1:m+; switch
9、(b%2) defaut:m+; case 0:m+; break; printf(“%dn“, m); 程序运行后 的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 25 有以下程序 #include stdio.h intfun(int a, intB)if(b=0)return a; else return(fun(-a, -B); main() pdntf(“%dn“, fun(4, 2); 程序的运行结果是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 26 关于字符常量,以下叙述正确的是 ( )。 ( A)空格不是一个字符常量 (
10、B)字符常量能包含大于一个的字符 ( C)单引号中的大写字母和小写字母代表的是相同的字符常量 ( D)所有的字符常量都可以作为整型量来处理 27 下面函数调用语句含有实参的个数为 ( )。 func(exp1, exp2), (exp3,exp4, exp5); ( A) 1 ( B) 2 ( C) 3 ( D) 5 28 若有以下定义,则对数组元素的正确引用是 ( )。 int a5, *p=a; ( A) *&a5 ( B) (*A)2 ( C) *p+4 ( D) (a+2) 29 下列字符数组初始化语句中,不正确的是 ( )。 ( A) char c=goodmorning; ( B)
11、 char c20=“goodmorning“; ( C) char c=a, b, c, d; ( D) char c=“goodmorning“; 30 阅读下面程序,程序执行后的结果为 ( )。 #include“stdio.h“ main() char*str=“abcdefghijklnmopq“: while(*str+!=e); printf(“%cn“,*str); ( A) f ( B) a ( C) e ( D) a 31 设有如下的程序段: char str=“HelloWorld“; char*ptr; ptr=str; 执行上面的程序段后, *(ptr+10)的值为
12、( )。 ( A) 0 ( B) 0 ( C)不确定的值 ( D) 0的地址 32 下述语句中,在字符串 sl和 s2相等时显示 “they are Equal”的是 ( )。 ( A) if(*s1=*s2) puts(“they are Equal“); ( B) if(!strcmp(s1, s2) puts(“they are Equal“); ( C) if(s1=s2) Puts(“they are Equal“); ( D) if(strcmp(s1, s2) puts(“they are Equal”); 33 设有定义: Struct complex int real, un
13、real; data1=1, 8, data2; 则以下赋值语句中错误的是 ( )。 ( A) data2=data1.rea1, data1.unrea1; ( B) data2=(2, 6); ( C) data2.rea1=data1- rea1; ( D) data2- rea1=data1.unrea1; 34 以下程序的输出结果是 ( )。 #include stdio.h void prt(int *x, int *y, int *z) printf(“%d, %d, %dn“, +*x, +*y, *(z+); main() inta=10,b=40, c=20; prt(&a
14、, &b, &C); prt(&a, &b, &C); ( A) 11, 42, 31 12, 22, 41 ( B) 11, 41, 20 1, 42, 20 ( C) 11, 21, 40 11, 21, 21 ( D) 11, 41, 21 12, 42, 22 35 设有以下说明,则不正确的叙述是 ( )。 union un int a; chat b: float c; arr; ( A) arr所占的内存长度等于成员 c的长度 ( B) arr的地址和它的各成员的地址都是同一地址 ( C) arr可以作为函数参数 ( D)不能在定义 art时对它初始化 36 若 x=4, y=5,
15、则 x&y的结果是 ( )。 ( A) 0 ( B) 4 ( C) 3 ( D) 5 37 下列关于 C语言数据文件的叙述中正确的是 ( )。 ( A)文件由 ASCII码字符序列组成, C语言只能读写文本文件 ( B)文件由二进制数据序列组成, C语言只能读写二进制文件 ( C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 ( D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 38 有以下程序: #include stdio.h main() int i=0, a=0; while(i 20) for(; ) if(i%5)=0)break; else
16、i-; i+=13, a+=i; pfintf(“%dn“, A); 程序的输出结果 是 ( )。 ( A) 62 ( B) 63 ( C) 23 ( D) 36 39 在下列选项中,没有构成死循环的程序段是 ( )。 ( A) int i=100; for(; ) i=i%10+1; if(i 10)break; ( B) while(1); ( C) int k=0; do+k; while(k =10); ( D) int s=12; while(s); -s; 40 在 E-R图中,矩形表示 ( )。 41 符合结构化 原则的三种基本控制结构是顺序结构、 ( )和循环结构。 42 在面
17、向对象方法中,类的实例称为 ( )。 43 队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许删除的一端称作 ( )。 44 在关系模型中,若属性 A是关系 R的主码,属性 A的取值不能为空,称为约束。 国家二级( C语言)笔试模拟试卷 191答案与解析 1 【正确答案】 B 【试题解析】 数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包含 3个方面的内容,即数据的逻辑 结构、存储结构和数据的运算。 2 【正确答案】 B 【试题解析】 由于该二叉树的前序遍历结果是 ABCEDF,显然 A结点为根结点,所以后序遍历时 A结点是最后遍历的,其后序遍历的结果为 CBE
18、FDA。 3 【正确答案】 B 【试题解析】 数据元素是由多个数据项组成,数据是能够被计算机识别、存储和加工处理的信息载体,数据处理的最小单位是数据项。 4 【正确答案】 B 【试题解析】 内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash等 存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上 (如磁盘及磁盘操作 )。 5 【正确答案】 A 6 【正确答案】 D 【试题解析】 数据库管理系统 DBMS是数据库系统的核心。 DBMS是负责数据库的建立、使用和维护的软件。 DBMS建立在操作系统之上,实施对数
19、据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过 DBMS。另外, DBMS还承担着数据库的安全保护工作,按照 DBA所规定的要求,保证数据库的完整性和安全性。 7 【正确答案】 B 【试题解析】 随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期显著变长,正确性难以保证,软件开发费用上涨,生产效率急剧下降,从而出现了入们难以控制软件发展的局面,即所谓的 “软件危机 ”。 8 【正确答案】 C 9 【正确答案】 B 【试题解析】 在关系表中,每一列称为一个属性,对应表中的一个字段;每一行称为一个元组,对应表中的一条记录。 10 【正确答案】 C 【试题
20、解析】 在人工管理阶段,数据无法共享,冗余度大,不独立,完全依赖程序:在文件系统阶段,数据共享性 差;在数据库系统阶段,共享性好,独立性高。 11 【正确答案】 A 【试题解析】 此题考查 C语言的基本概念。变量的实质就是在内存中占据一定的存储单元,存储单元里存放的是该变量的值,变量的值可以根据需要进行修改;整数在允许的范围内可以准确的表示出来,但不可能表示无限度的实数。 12 【正确答案】 C 【试题解析】 C基本数据类型包括:分为整型、实型、枚举型、字符型四种,实型就是浮点型,实型数据只有十进制,没有 2, 8, 16进制表达,在 C语言中没有定义逻辑类型,而是一般用 0代表假,用非零代表
21、真 。 13 【正确答案】 C 【试题解析】 此题考查标识符和关键字的概念。需要注意的是 C语言是区分大小写的, switch是关键字,但 Switch不是关键字。 14 【正确答案】 B 15 【正确答案】 C 【试题解析】 此题考查的是标识符的概念。标识符是由字母、数字或下划线组成的,而且第一个字符必须字母或下划线,且标识符区分大小写。 16 【正确答案】 B 17 【正确答案】 C 【试题解析】 字符变量 w的初值为字符 A,其 ASCII码值为 65,字符 a的ASCII码 值为 97,所以关系表达式 w a的值为 1;变量 x=14,变量 y=15, x|y为或, x、 y均为真,所
22、以 x|y的结果 1。因而逻辑表达式 (x|y)&(w a)的值为1。 18 【正确答案】 D 【试题解析】 C语言规定,输出 long型数值的格式符为 %1d。 19 【正确答案】 D 【试题解析】 本题考查 printf函数的格式。 “%8x”表示以十六进制无符号形式输出整掣数据。 “8”表示指定输出数据的宽度为 8位。 20 【正确答案】 C 21 【正确答案】 A 22 【正 确答案】 A 【试题解析】 此题考查的是编译预处理命令以及自加运算符。 F(a+, b+)先取a和 b的值,参加运算,再把 a和 b的值分别加 1,所以 F(a+, b+)=F(3,4)=3*4=12。 23 【
23、正确答案】 D 【试题解析】 本题考查 while表达式。 while(表达式 )中的表达式可以为任何合法的表达式,一般情况下为逻辑、条件表达式,需要注意的是,当等号 (=)误写为赋值号 (=)时不会报错的,但是其值恒为 1。 24 【正确答案】 B 【试题解析】 本题考查 switch语句。 因为 a=6,所以 a%2=0,因此第一个switch语句,执行 case 0,将 m加 1,遇到 break语句跳出 switch语句,输出 m值为 2。 25 【正确答案】 B 26 【正确答案】 D 【试题解析】 本题考查字符常量的 4个知识点: 空格是一个字符常量,而且单引号中的空格不可以省略:
24、 字符常量只能包含一个字符: 单引号中的大写字母和小写字母代表的是不相同的字符常量: 所有的字符常量部作为整型量来处理,在计算机内部,其对应的整数值就是 ASCII码值。 27 【正确答案】 B 28 【正确 答案】 D 29 【正确答案】 A 30 【正确答案】 A 【试题解析】 本题考查的是取内容运算符 “*”和自加运算符 “+”的优先级问题。由于 “+”的优先级高于 “*”,所以题干中 *str+!=e,即 *(str+)!=e,当 str指向字符 e时, while循环的条件不成立,但 str已经进行了自加指向了字符 f,所以*str输出字符 f。 31 【正确答案】 A 【试题解析】
25、 本题涉及字符数组和指针两个知识点: 在 C语言中,字符数组在存放字符串时会自动在末尾加上 0,所以题中数组 str有 11个元素; ptr指向数组 str的首地址, ptr+10是指向 str10, *(ptt+10)是引用 str10的值 (即结束符 0)。 32 【正确答案】 B 【试题解析】 字符串比较不能用两个等号 (=)来进行比较,应使用 stremp(s1,s2)函数来比较。 strcmp(s1, s2)函数的功能是:当字符串 s1和 s2相等时,返回值为 0,因此,当表达式 !strcmp(s1, s2)=1时,条件成立,执行后面的语句,输出they are Equa1。 33
26、 【正确 答案】 B 34 【正确答案】 B 35 【正确答案】 C 【试题解析】 本题主要考查联合体的内存使用:联合体所占用的内存空间为最长的成员所占用的空间, int占 2个字节, char占 1个字节, float占 4个字节,所以arr所占的内存长度等于成员 c的长度; arr的地址和它的各成员的地址都是同一地址;不能直接对 arr赋值,即不能在定义 arr时对它初始化; arr也不可以作为函数参数。 36 【正确答案】 B 【试题解析】 本题主要考查按位与运算的知识点。按位与是对两个运算量相应的位进行逻辑 与, “&”的规则与逻辑与 “&”相同。 x=4的二进制为 00000100,
27、 y=5的二进制为 00000101, x&y=00000100,转化为十进制即为 4。 37 【正确答案】 D 【试题解析】 本题考查的是数据文件的有关概念。文件由数据流的形式组成,可以按数据存放的形式分为二进制文件和文本文件, C语言既能读写文本文件,又能读写二进制文件。 38 【正确答案】 D 39 【正确答案】 C 40 【正确答案】 实体集 【试题解析】 在 E-R图中用矩形表示实体集,在矩形内写上该实体集的名 字。用椭圆形表示属性,在椭圆形内写上该属性的名称。用菱形表示联系,菱形内写上联系名。 41 【正确答案】 选择结构 【试题解析】 程序设计语言仅仅使用顺序、选择和重复 (循环
28、 )三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。 42 【正确答案】 对象 【试题解析】 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对 象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。 43 【正确答案】 队头 【试题解析】 队列是只允许在一端删除,在另一端插入的顺序表,在队列中,允许插入的一端叫做 “队尾 ”,允许删除的一端叫做 “队头 ”。 44 【正确答案】 实体完整性