[计算机类试卷]国家二级(C语言)机试模拟试卷30及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷30及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷30及答案与解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 30 及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)结点中具有两个指针域的链表一定是二叉链表 ( B)结点中具有两个指针域的链表可以是线性结构,也可以是非线性结构 ( C)二叉树只能采用链式存储结构 ( D)循环链表是非线性结构 2 某二叉树的前序序列为 ABCD,中序序列为 DCBA,则后序序列为 ( A) BADC ( B) DCBA ( C) CDAB ( D) ABCD 3 下面不能作为软件设计工具的是 ( A) PAD图 ( B)程序流程图 ( C) 数据流程图 (DFD图 ) ( D)总体结构图 4 逻辑模型是面向数据库系统的模型,下面
2、属于逻辑模型的是 ( A)关系模型 ( B)谓词模型 ( C)物理模型 ( D)实体 -联系模型 5 运动会中一个运动项目可以有多名运动员参加,一个运动员可以参加多个项目。则实体项目和运动员之间的联系是 ( A)多对多 ( B)一对多 ( C)多对一 ( D)一对一 6 堆排序最坏情况下的时间复杂度为 ( A) O(n15) ( B) O(nlog2n) ( C) ( D) O(log2n) 7 某二 叉树中有 15个度为 1的结点, 16个度为 2的结点,则该二叉树中总的结点数为 ( A) 32 ( B) 46 ( C) 48 ( D) 49 8 下面对软件特点描述错误的是 ( A)软件没有
3、明显的制作过程 ( B)软件是一种逻辑实体,不是物理实体,具有抽象性 ( C)软件的开发、运行对计算机系统具有依赖性 ( D)软件在使用中存在磨损、老化问题 9 某系统结构图如下: 该系统结构图中最大扇入是 ( A) 0 ( B) 1 ( C) 2 ( D) 3 10 设有表示公司和员工及雇佣的三张表,员工可在多家公司兼职, 其中公司(公司号,公司名,地址,注册资本,法人代表,员工数),员工(员工号,姓名,性别,年龄,学历),雇佣(公司号,员工号,工资,工作起始时间)。其中表的键为公司号,表的键为员工号,则表的键(码)为 ( A)公司号,员工号 ( B)员工号,工资 ( C)员工号 ( D)公
4、司号,员工号,工资 11 算法应当具有的特性不包括 ( A)可行性 ( B)有穷性 ( C)确定性 ( D)美观性 12 若想给已定义为 int型的变量 a、 b、 c、 d赋整数 1,以下选项中错误的语句是 ( A) d=c, c=b, b=a, a=1; ( B) d=c=b=a=1; ( C) d=(b=c=(a=1); ( D) d=1, c=d, b=c, a=b; 13 以下选项中,合法的 C语言常量是 ( A) 21.84 ( B) CPP ( C) “1.0 ( D) 2MB 14 下面叙述正确的是 ( A) C语言程序的语句经过编译和链接转换成二进制机器指令后才能执行 ( B
5、)任何算法需要包含三种基本结构中的两种以上 ( C)复杂算法是不能用三种基本结构来表达的 ( D)只要是简单算 法,它的操作步骤都不会超过 20步 15 若已有定义语句: int a, b, c;,且变量已正确赋初值,则以下选项中正确的赋值表达式是 ( A) a = (b = c) + 8; ( B) (a = b) = c = 9; ( C) a = (b = c) = A; ( D) a + b = c + 1; 16 以下表达式的值与 x无关、其值恒为真的是 ( A) 0 x 5 ( B) x 10 ,以下关于 C语言表达式: (+a | +b) : +c : +d 执行顺序的叙述正确的
6、是 ( A)先执行 +a,表达式 +a的值为 1;再执行 +b,表达式 +b 的值为 1,由此可确定 (+a | +b)值为 1,因此执行 +c ( B)先执行 +a,表达式 +a的值为 1,由此可确定 (+a | +b)值为 1,因此执行+c ( C)先执行 +b,表达式 +b的值为 1;再执行 +a,表达式 +a的值为 1,由此可确定 (+a | +b)值为 1,因此执行 +c ( D)先执行 +b,表达式 +b的值为 1,由此可确定 (+a | +b)值为 1,因此执行+c 19 有如下程序 #include stdio.h main( ) int i, data; scanf(“%d“
7、, for (i=0; i 10; i+) if (i data) break; printf(“%d,“, i); 程序运行时,从键盘输入: 3回车后,程序输出结果为 ( A) 3,4,5, ( B) 1,2,3, ( C) 2,3,4, ( D) 0,1,2,3, 20 有以下程序 #include stdio.h main( ) int i = 4; for ( printf(“%d“, i); i 2; i+) printf(“%d“, i); printf(“n“); 程序运行后的输出结 果是 ( A) 12 ( B) 4 ( C) 1 ( D) 0 21 有以下程序 #includ
8、e stdio.h main( ) if (0 = 0) putchar(1); if (0 = 0) putchar(2); if (a b) putchar(3); 程序运行后的输出结果是 ( A) 1 ( B) 123 ( C) 23 ( D) 3 22 有如下程序段 int k; for(k=2;k=0;) printf(“%d“,k-); 则 for循环体执行的次数是 ( A) 0次 ( B) 1次 ( C) 2次 ( D)无限次 23 有以下程序 #include stdio.h int k=5; void f(int *s) s= *s=7; main( ) int m=3; f
9、( printf(“%d,%dn“, m, k); 程序运行后的输出结果是 ( A) 3,5 ( B) 7,7 ( C) 5,7 ( D) 3,7 24 有以下程序 #include stdio.h void fun(int a , int n) int i; for (i=0; i n; i+) if (i % 3 = 0) ai -= n; else ai += n; main( ) int c5 = 6,7,8,9,10,i; fun(c, 5); for (i=0;i 5; i+) printf(“%d,“, ci); printf(“n“); 程序运行后的输出结果是 ( A) 1,1
10、2,13,4,15, ( B) 10,9,8,7,6, ( C) 1,7,13,9,15, ( D) 10,12,8,4,6, 25 有以下程序 #include stdio.h int sub(double a, double b) return (int)(a - b - 1.3); main( ) printf(“%dn“, sub(3.2, 4.1); 程序运行后的输出结果是 ( A) -2 ( B) 1.7 ( C) -3 ( D) 2 26 有以下程序 #include stdio.h main( ) int i, *ptr; int array4 = 1,1,3,4; for (
11、ptr=array, i=0; i 3; i+) printf(“%d,“, *ptr+); printf(“n“); 程序运行后的输出结果是 ( A) 1,2,4, ( B) 1,3,4, ( C) 1,1,3, ( D) 1,4,3, 27 有以下程序 #include stdio.h main( ) int x = 8,2,6,12,5,15, f1, f2; int *p = x; f1 = f2 = x0; for( ; p =x+5; p+) if( f1 *p ) f1 = *p; if( f2 *p ) f2 = *p; printf(“%d,%dn“, f1, f2); 程序
12、的运行结果是 ( A) 15,2 ( B) 15,15 ( C) 2,15 ( D) 8,8 28 有以下程序 #include stdio.h main() int x34 = 1,3,5,7,9,11,2,4,6,8,10,12 ; int (*p)4 = x, k = 1, m, n = 0; for(m=0; m 2; m+) n += *(*(p+m)+k); printf(“%dn“,n); 程序的运行结果是 ( A) 10 ( B) 20 ( C) 14 ( D) 16 29 有以下程序 #include stdio.h main( ) char b410, c; int i,j
13、; for (i=0; i 4; i+) j = 0; while (c=getchar()!= bij = 0; printf(“%s%s%s%sn“, b0, b1, b2, b3); 程序运行时从第一列开始输入 : Peach flower is pink.回车 则输出结果是 ( A) Peachflowerispink. ( B) Peachfloweris pink. ( C) Peachflower is pink. ( D) Peach flower is pink. 30 有如下程序 #include stdio.h void convert(char ch) if (ch X
14、) convert(ch+1); printf(“%c“, ch); main( ) convert(W); printf(“n“); 程序运行后的输出结果是 ( A) YZ ( B) VW ( C) XY ( D) XW 31 有以下程序 #include stdio.h #include string.h main( ) char a20=“ab“,b20=“cdef“; int k=0; strcat(a,b); while(ak!=0) bk=ak; k+; puts(b); 程序的运行结果是 ( A) abcdef ( B) cbcdef ( C) cdef ( D) ab 32 以
15、下使指针指向一个字符串的选项错误的是 ( A) char str = “string“, *ps; *ps = str; ( B) char str = “string“, *ps; *ps = str; ( C) char str = “string“, *ps; ps = str; ( D) char *ps; ps = “string“; 33 有以下程序 #include stdio.h typedef struct stu char name10; char gender; int score; STU; void f(STU a, STU *b) *b = a; printf(“%
16、s,%c,%d,“, b- name, b- gender, b- score); main( ) STU a=“Zhao“, m, 290, b=“Qian“, f, 350; f(a, printf(“%s,%c,%dn“, b.name, b.gender, b.score); 程序运行后的输出结果是 ( A) Zhao,m,290,Qian,f,350 ( B) Qian,m,290,Zhao,m,290 ( C) Qian,f,350,Qian,f,350 ( D) Zhao,m,290,Zhao,m,290 34 若有定义 typedef int *T; T a20; 则以下与上述
17、定义中 a类型完全相同的是 ( A) int *a20; ( B) int (*a)20; ( C) int a20; ( D) int *a20; 35 有如下程序 #include stdio.h struct person char name10; int age; ; main( ) struct person room2 = “Wang“, 19, “Li“, 20; printf(“%s:%dn“, (room+1)- name, room- age); 程序运行后的输出结果是 ( A) Li:19 ( B) Wang:19 ( C) Li:20 ( D) Wang:17 36 以
18、下关于编译预处理的叙述中错误的是 ( A)预处理命令行必须位于源程序的开始 ( B)源程序中凡是以 #开始的控制 行都是预处理命令行 ( C)一行上只能有一条有效的预处理命令 ( D)预处理命令是在程序正式编译之前被处理的 37 以下关于宏的叙述错误的是 ( A)宏替换不具有计算功能 ( B)宏替换不具有类型 ( C)宏名必须用大写字母构成 ( D)宏替换不占用运行时间 38 有以下程序 #include stdio.h struct S int x, y; ; main( ) struct S data3 = 4, 3, 2, 0, 8, 1; int i; for (i=0; i 3; i
19、+) printf(“%d%d;“, datai.x, datai.y 1); printf(“n“); 程序运行后的输出结果是 ( A) 41;20;80; ( B) 41;22;64; ( C) 40;21;80; ( D) 43;20;81; 39 以下叙述正确的是 ( A)文件指针是指针类型的变量 ( B)文件指针变量的值是文件的当前读取位置 ( C)文件指针变量的值是文件的当前读取位置 ( D)调用 fscanf函数能向所有类型的文件中写入任意字符 40 有以下程序 #include stdio.h typedef struct stu char name10; char gende
20、r; int score; STU; void f(STU a, STU *b) a = *b; printf(“%s,%c,%d,“, a.name, a.gender, a.score); main( ) STU a = “Zhao“, m, 290, b = “Qian“, f, 350; f(a, printf(“%s,%c,%dn“, a.name, a.gender, a.score); 程序运行后的输出结果是 ( A) Qian,f,350,Qian,f,350 ( B) Zhao,m,290,Qian,f,350 ( C) Qian,f,350,Zhao,m,290 ( D)
21、Zhao,m,290,Zhao,m,290 二、程序填空题 41 下列给定程序中已建立了一个带头结点的单向链表,链表中的各结点按数据域递增有序链接。函数 fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include stdlib h #define N 8 typedef struct list int data; struct list*next; SLIST; void fun(SLI
22、ST*h) SLIST*p, *q, P=h一 next; if(p!=NULL) q=P一 noxt; while(q!=NULL) (if(P一 dataq data) P一 next=q一 next; /*found*/ free(【 1】 ); /*found*/ q=p一 【 2】 ; else P=q; /*found*/ q=q一 【 3】 ; SLTST*creatlist(int*a) STIST*h, *P, *q; int i; h=P=(SLIST*)malloc(sizeof (SLIST); for(i=0; i N; i+) q=(SLIST*)malloc(si
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 30 答案 解析 DOC
