[计算机类试卷]国家二级(C语言)笔试模拟试卷119及答案与解析.doc

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

1、国家二级( C语言)笔试模拟试卷 119及答案与解析 1 下列选项中,不是一个算法的基本特征的是 ( )。 ( A)完整性 ( B)可行性 ( C)有穷性 ( D)拥有足够的情报 2 下列数据结构中,属于非线性的是 ( )。 ( A)线性表 ( B)队列 ( C)树 ( D)栈 3 下列叙述中错误的是 ( )。 ( A)线性表是由 n个元素组成的一个有限序列 ( B)线性表是一种线性结构 ( C)线性表的所有结点有且仅有一个前件和后件 ( D)线性表可以是空表 4 按照 “先进先出 ”组织 数据的数据结构是 ( )。 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 5 下列关于线性

2、链表的描述中正确的是 ( )。 ( A)存储空间不一定连续,且各元素的存储顺序是任意的 ( B)存储空间不一定连续,且前件元素一定存储在后件元素的前面 ( C)存储空间必须连续,且各前件元素一定存储在后件元素的前面 ( D)存储空间必须连续,且各元素的存储顺序是任意的 6 某二叉树共有 60个叶子结点与 50个度为 1的结点,则该二叉树中的总结点数为( )。 ( A) 148 ( B) 169 ( C) 182 ( D) 198 7 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)结性链表 ( C)二叉链表 ( D)有序线性链表 8 简单的交换排序方法是

3、 ( )。 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 9 对于长度为 n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是 ( )。 ( A)冒泡排序为 n/2 ( B)冒泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 10 结构化程序设计的 3种基本结构是 ( )。 ( A)过程、子程序和分程序 ( B)顺序、选择和重复 ( C)递归、堆栈和队列 ( D)调用、返回和转移 11 C语言可执行程序的开始执行点是 ( )。 ( A)包含文件中的第一个函数 ( B)程序中第一个函数 ( C)程序中的 main()函数 ( D)程

4、序中第一条语句 12 可以在 C语言程序中用做用户标识符的一组标识符是 ( )。 ( A) void 123 BBN ( B) aa abc cas ( C) as+b3 -123 If ( D) 6f Do SIG 13 下列正确的实型常量是 ( )。 ( A) E3.4 ( B) -12345 ( C) 2.2e0.8 ( D) 4 14 下列表达式中,可以正确表示 x0或 x)1的关系是 ( )。 ( A) (x =1)|(x =0) ( B) x l|x=0 ( C) x =1 OR x =0 ( D) x =1 k=a b?b:a; k=k c?c:k; 执行该程序段后, k的值是

5、( )。 ( A) 3 ( B) 2 ( C) 1 ( D) 0 22 有下列程序: main() int y=20; doy-;while(-y); printf(“%dn“,y-); 当执行程序时,输出的结果是 ( )。 ( A) -1 ( B) 1 ( C) 4 ( D) 0 23 有下列程序段: struct St int x;int *y;)*pt; int a=1,2),b=3,4); struct st c2=10,a,20,b); pt=c; 下列选项中表达式的值为 11的是 ( )。 ( A) *pt- y ( B) pt- x ( C) + +pt- x ( D) (pt+

6、 +)- x 24 表达式 8-2的值是 ( )。 ( A)整数 6 ( B)字符 6 ( C)表达式不合法 ( D)字符 8 25 在嵌套使用 if语句时, C语言规定 else总是 ( )。 ( A)和之前与其具有相同缩进位置的 if配对 ( B)和之前与其最近的 if配对 ( C)和之前与其最近的且不带 else的 if配对 ( D)和之前的第一个 if配对 26 下列函数值的类型是 ( )。 fun(double x) float y; y=3*x-4; return y; ( A) int ( B)不确定 ( C) void ( D) float 27 有下列程序: main() i

7、nt k=5,n=0; do switch(k) case 1: case 3:n+=1;k-;break; default:n=0;k-; case 2: case 4;n+=2;k-;break; printf(“%d“,n); while(k 0 程序运行后的输出结果是 ( )。 ( A) 235 ( B) 235 ( C) 2356 ( D) 2356 28 下列程序执行输出的结果是 ( )。 #include stdio.h f(int a) int b=0; static c=3; a=c+;b+; return(a); main() int a=2,i,k; for(i=0;i2

8、;i+) k=f(a+); printf(“%dn“,k); ( A) 3 ( B) 4 ( C) 5 ( D) 6 29 设有下列的程序段: char str=“HelloWorld“; char*ptr; ptr=str; 执行上面的程序段后, *(ptr+10)的值为 ( )。 ( A) 0 ( B) 0 ( C)不确定的值 ( D) 0的地址 30 分析下列程序: #include stdio.h main() int*p1,*p2,*p; int a=6,b=9; p1=p2= if(a b)p=p1;p1=p2;p2=p; printf(“%d,%d“,*p1,*p2); prin

9、tf(“%d,%d“,a,b); 程序的输出结果为 ( )。 ( A) 9,6 6,9 ( B) 6,9 9,6 ( C) 6,9 6,9 ( D) 9,6 9,6 31 若有定义 int a10, *p=a,则 p+6表示 ( )。 ( A)数组元素 a5的值 ( B)数组元素 a5的地址 ( C)数组元素 a6的地址 ( D)数组元素 a0的值加上 5 32 下列说法正确的是 ( )。 ( A)在 C语言中,可以使用动态内存分配技术,定义元素个数可变的数组 ( B)在 C语言中,数组元素的个数可以不确定,允许随机变动 ( C)在 C语言中,数组元素的数据类型可以不一致 ( D)在 C语言中

10、,定义了一个数组后,就 确定了它所容纳的元素的个数 33 下列的程序用来输出两个字符串前 7个字符中对应相等的字符及其位置号,程序空白处应该填写的是 ( )。 #include stdio.h main() char s1=“chinese“,s2=“japnese“; int i; for(i=0;s1i!=0i+) if(s1i=s2i ( A) putchar(s2i);putchar(i) ( B) puts(s1i,i) ( C) printf(“%c%dn“,s2i,i) ( D) printf(“%c“,s1i);printf(“%dn“,i) 34 若已包括头文件 stdio.

11、h和 string.h,运行下列程序段时输出结果是 ( )。 int i=0; char s110=“ABCD“,s210=“EFG“; strcat(s1,s2); while(s2i+!=0) s2i=s1i; puts(s2); ( A) ABC ( B) ABCDEF ( C) EBCDEFG ( D) CBD 35 下列程序的运行结果是 ( )。 #include stdio.h main() static char a=“Languagef“,b=“programe“; char *p1,*p2;int k; p1=a;p2=b; for(k=0;k =8;k+) if(*(p1+

12、k)=*(p2+k)printf(“%c“,*(p1+k); ( A) gae ( B) ang ( C) program ( D)有语法错 36 下列程序的运行结果为 ( )。 #define MAX(x,y)(x) (y)?(x):(y) main() int a=2,b=3,c=1,d=3,t; printf(“%dn“,(MAX(a+b,c+d)*100); ( A) 500 ( B) 5 ( C) 4 ( D) 400 37 设定义下列结构体,结构体变量 p的出生年份赋值正确的语句是 ( )。 struct st int x; int y; int z; struct worker

13、char name20; char sex; struct st birth; p; ( A) x=1987 ( B) birth.x=1987; ( C) p.birth.x=1987; ( D) p.x=1987; 38 对于下列定义,不正确的叙述是 ( )。 union data int a; char b; double c; x=y; ( A)变量 x所占内存的长度等于成员 c的长度 ( B)变量 x的地址和它的各成员地址都是相同的 ( C)可以在定义时对 x初始化 ( D)不能对变量 x赋值,故 x=y非法 39 表达式 0x11的值是 ( )。 ( A) 0xFFEE ( B)

14、0x71 ( C) 0x0071 ( D) 0xFFE1 40 函数 fseek()的正确调用形式是 ( )。 ( A) fseek(位移量,起始点,文件类型指针 ); ( B) fseek(文件类型指针,位移量,起始点 ); ( C) fseek(文件类型指针,起始点,位移量 ); ( D) fseek(起始点,位移量,文件类型指针 ); 41 数据库系统的主要特点为数据集成性、数据的高 _和低冗余性、数据独立性和数据统一管理和控制。 42 数据库的逻辑模型设计阶段的任务是将 _转换成关系模式。 43 在面向对象方法中, _描述的是具有相似属 性与操作的一组对象。 44 最简单的交换排序方法

15、是 _。 45 在链表的运算过程中,能够使空表与非空表的运算统一的结构是 _。 46 C语言中用 _表示逻辑值为 “真 ”,用数字 “0”表示逻辑值为 “假 ”。 47 语句: x+: +x; x=1+x:执行后都使变量 x中的值增 1,请写出一条同一功能的赋值语句 _。 48 下列程序的输出结果是 _。 main() int a=1, b=2, c=3,t=0; if(a b) t=a; a=b; b=t; if(a c) t=a; a=c; c=t; printf(“%d, %d, %dn“, a, b, c); 49 在 C语言中, while和 dowhile 循环的主要区别是 _的循

16、环至少被执行一次。 50 下列程序的输出结果是 _。 #include stdio.h main() int x=10,y=10,i; for(i=0; x 8; y=+i printf(“%d %d“, x-,y); 51 若有定义 double a5;,则 a数组元素下标的上限为 _。 52 执行下列语句段后, x的值是 _。 int *p, x; x=100; p= static c=7; a=c+; b+; return (a); main() int a=2,i,k; for(i=0;i 2;i+) k=f(a+); printf(“%dn“, k); 国家二级( C语言)笔试模拟试

17、卷 119答案与解析 1 【正确答案】 A 【试题解析】 作为一个算法,一般应该具有下列 4个特征: 可行性,即考虑到实际的条件能够达到一个满意的结果; 确定性,算法中的第一个步骤都必须是有明确定义的: 有穷性,一个算法必须在有限的时间内做完; 拥有足够的情报。 2 【正确答案】 C 【试题解析】 线性结构,是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。 3 【正确答案】 C 【试题解析】 线性表是一种线性结构,由 n(n0)个元素组成,所以 线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没

18、有后件,其他结点有且只有一个前件和后件,所以 C是错误的。 4 【正确答案】 A 【试题解析】 队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫 “队尾 ”,删除元素的一端叫 “队头 ”,先插入的元素先被删除,是按 “先进先出 ”的原则组织数据的。 5 【正确答案】 A 【试题解析】 线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。 6 【正确答案】 B 【试题解析】 叶子结点总是比度为 2的结点多一个。所以,具有 60个叶子结点的二叉树有 59个度为 2的结点。总结点数 =60个叶子结点 +59个度为 2

19、的结点 +50个度为 1的结点 =169个结点。 7 【正确答案】 A 【试题解析】 二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表。都只能采用顺序查找。 8 【正确答案】 D 【试题解析】 所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种 最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。 9 【正确答案】 D 【试题解析】 在最坏情况下,冒泡排序和快速排序的比较次数都是 n(n-1)/2。所谓冒泡排序,就是将相邻的两个数据相比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换

20、,其实就是把大的数往后排,小的数往前排 (就像冒泡一样冒出来了 )。 10 【正确答案】 B 【试题解析】 程序的 3种基本控制结构包括顺序、选择和重复 (循环 ),这 3种结构就足以表达出各种其他形式的结构。 11 【正确答案 】 C 【试题解析】 每个 C程序有且只有一个主函数 main(),且程序必须从 main函数开始执行,并在 main()函数中结束。 12 【正确答案】 B 【试题解析】 C语言规定,标识符是由字母、数字或下画线组成,并且它的第一个字符必须是字母或者下画线。 13 【正确答案】 B 【试题解析】 实型常量有两种书写形式。 小数形式,它由符号、整数部分、小数点及小数部

21、分组成; 指数形式,由十进制小数形式加上指数部分组成,其形式为:十进制小数 e指数或十进制小数 E指数。 注: e或 E后 面的指数必须是整数,并且在 e或 E的前面必须有数字。本题中,选项 A) 中 E的前面没有数字,因此错误。选项 C) 中 0.8不是整数,因此错误。选项 D) 中 4是整型常量而不是实型常量。 14 【正确答案】 A 【试题解析】 题中要求 x的取值是小于等于 0或者大于等于 1,这说明表达式是或的关系,所以在写成 C语言表达式应是逻辑或的关系,逻辑或运算符是 “|”。 15 【正确答案】 A 【试题解析】 本题考查 “%”运算符的使用。运算符 “%”要求两个运算对象都为

22、整型,其结果是整数除法的余数。本题中表达 式 a%=(b%2)等价于a=a%(b%2)=5%(7%2)=5%1=0。 16 【正确答案】 B 【试题解析】 函数 scanf()的调用形式是: scanf(格式字符串,输入项地址表 )。其中, “格式字符串 ”是要输入的变量的格式符; “输入项地址表 ”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。 17 【正确答案】 B 【试题解析】 在 C语言中,数组的下标默认为 0,因此数组 p的下标范围为:0 7。程序循环过程为:第 1次循环 i=0,执行循环,并且 i自加,得 i

23、=1,因此pi为 p1=12,12%2=0,不执行后面的语句;接着进行第 2次循环,此时 i=1,小于 7执行循环,并且 i自加,得 i =2,因此 pi为 p2=13,13%2=1,执行后面的语句;这样一直到退出循环。最后 j的值为 j=13+15+17=45。 18 【正确答案】 A 【试题解析】 本题考查函数 printf()的格式。 “%x”表示以十六进制输出整型数据; “%u”表示以十进制无符号型输出整型数据。 printf函数中格式说明符之前插入的任何字 符都原样输出。 19 【正确答案】 C 【试题解析】 在 C语言中,求余运算符 “%”两边的运算对象都应为整型数据,所以需要对变

24、量 f进行强制类型转换,正确的写法为 k%(int)f。在 C语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是: !(逻辑 “非 ”)、算术运算符、关系运算符、 。 fseek函数参数说明: “fp”是指向该文件的文件型指针;“offset为位移量,指从 起始点 position.到要确定的新位置的字节数。也就是以起点为基准,向前移动的字节数。 ANSI C要求该参数为长整型量; “position”为起始点,指出以文件的什么位置为基准进行移动, position的值用整型常数表示,“0”表示文件的开头, “1”表示文件的当前位置, “2”表示文件的末尾。 4

25、1 【正确答案】 共享性 【试题解析】 数据库系统中的数据能被不同的应用程序使用,实现了数据的高度共享,从而降低了数据的冗余,这也是数据库的主要目的。 42 【正确答案】 E-R图 【试题解 析】 数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而 E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将 E-R图转换成关系模式。 43 【正确答案】 类 【试题解析】 在面向对象方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。 44 【正确答案】 冒泡排序 【试题解析】 交换排序是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序是一种最简单的交

26、换排序方法,它是通过相邻元素之间的相互交换逐步将线性表变成有序。 45 【正确 答案】 循环链表 【试题解析】 在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。 46 【正确答案】 非 0 【试题解析】 逻辑运算中,非 0表示逻辑 “真 ”,用 0表示逻辑 “假 ”。 47 【正确答案】 x+ 1 【试题解析】 本题考查 “+”、 “-”运算符。 “+”、 “-”只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增 1或减 1,后缀形式是先使用变量原来的值,使用完后再使其增 1或减 1。 48 【正确答案】

27、3,1,2 【试题解析】 分析程序,第一个 if语句, a=1, b=2,控制条件 a b成立,则交换 a、 b的值,此时 a=2, b=1。第二个 if语句, a=2, c=3,控制条件 a c成立,则交换 a、 c的值,此时 a=3, c=2。 49 【正确答案】 dowhile 【试题解析】 考查 while和 dowhile 循环的主要区别。 while循环的控制出现在循环体之前,只有当 while后面的表达式的值为非零时,才可能执行循环体:在dowhile 构成的循环体中,总是先执行一次循环体, 然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。 50 【正确答

28、案】 10 10 91 【试题解析】 for(表达式 1;表达式 2:表达式 3)语句的功能是:首先计算表达式 1的值,然后枪测表达式 2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式 3的值。然后再检测表达式 2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环;第 1次循环 x 8成立,输出 x=10, y 10后, x的值减 1, i=1,执行 y=+i操作, y的值变为 1:判断条件还成立,输出x=9, y 1,然后 x的值减 1,循环条件不成立,则退出循环。 51 【正确答案】 4 【试题解析】 一维数组元素的定义形式为:数组名 N,则该数组中元素的下限是 0

29、,上限是 N-1。 52 【正确答案】 150 【试题解析】 本题先给变量 x赋初始值 100,然后将指针 p指向变量 x, *p是取指针 p所指地址的内容,即 100,所以 x=100+50=150。 53 【正确答案】 100 【试题解析】 本题考查带参数的宏定义及相关运算。运算过程为:k=B*20=(A+3)*20 (2+3)*20=100。 54 【正确答案】 B 【试题解析】 因为 c是字符类型变量,它只能接收一个字符,所以 c=A,字符型变量在参与算术运算的时候是用其相应的 ASCII码参与运算的,这样 +c得到字母 B的 ASCII码,用 putchar函数输出是输出其相应的字符,所以是 B。 55 【正确答案】 8 【试题解析】 第 1次 for循环, i=0,调用函数 f(2),然后将 a的值加 1,在 f()函数中,变量 c为 static类型,所以 c 8;第 2次 for循环, i=1,调用函数 f(3),然后将 a的值加 1,调用函数 f(3)时, a c+=8,所以 k=8。

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

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

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