[计算机类试卷]国家二级(C语言)笔试模拟试卷59及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷59及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷59及答案与解析.doc(33页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 59及答案与解析 1 下列数据结构中,按先进后出原则组织数据的是 ( A)线性链表 ( B)栈 ( C)循环链表 ( D)顺序表 2 具有 3个结点的二叉树有 ( A) 2种形态 ( B) 4种形态 ( C) 7种形态 ( D) 5种形态 3 设有下列二叉树:对此二叉树前序遍历的结果为 ( A) ZBTYCPXA ( B) ATBZXCYP ( C) ZBTACYXP ( D) ATBZXCPY 4 结构化程序设计主要强调的是 ( A)程序的规模 ( B)程序的效率 ( C)程序设 计语言的先进性 ( D)程序易读性 5 程序的 3种基本控制结构是 ( A)过
2、程、子过程和分程序 ( B)顺序、选择和重复 ( C)递归、堆栈和队列 ( D)调用、返回和转移 6 下列叙述中,不属于测试的特征的是 ( A)测试的挑剔性 ( B)完全测试的不可能性 ( C)测试的可靠性 ( D)测试的经济性 7 需求分析中开发人员要从用户那里了解 ( A)软件做什么 ( B)用户使用界面 ( C)输入的信息 ( D)软件的规模 8 下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中 属性个数的是 ( A)选择 ( B)连接 ( C)投影 ( D)并 9 下列叙述中,正确的是 ( A)用 E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系 ( B
3、)用 E-R图只能表示实体集之间一对一的联系 ( C)用 E-R图只能表示实体集之间一对多的联系 ( D)用 E-R图表示的概念数据模型只能转换为关系数据模型 10 “年龄在 18-25之间 ”这种约束是属于数据库当中的 ( A)原子性措施 ( B)一致性措施 ( C)完整性措施 ( D)安全性措施 11 请读程序: #include stdio.h main() int a;float b,c; scanf(“%2d%3t%4f“, printf(“na=%d,b=%f,c=%fn“,a,b,c); 若运行时从键盘上输入 (图片 ),则上面程序的输出结果是 _。 ( A) a=98,b=76
4、5,c=4321 ( B) a=10,b=432,c=8765 ( C) a=98,b=765.000000,c=4321.000000 ( D) a=98,b=765.0,c=4321.0 12 一个良好的算法由下面的基本结构组成,但不包括 _。 ( A)顺序结构 ( B)选择结构 ( C)循环结构 ( D)跳转结构 13 请选出以下程序的输出结果 _。 #include stdio.h sub(x,y,z) int x,y,*z; *z=y-x; main() int a,b,c; sub(10,5,sub(7,a,sub(a,b, printf(“%d,%d,%dn“,a,b,c); (
5、 A) 5,2,3 ( B) -5,-12,-7 ( C) -5,-12,-17 ( D) 5,-2,-7 14 下面程序在屏幕上的输出是 _。 main() printf(“abbbc“); ( A) abbbc ( B) ac ( C) abc ( D) abc 15 若 x是整型变量, pb是基类型为整型的指针变量,则正确的赋值表达式是_。 ( A) pb=的输出为 _。 ( A) 10 ( B) 11 ( C) 12 ( D)语法错误 17 若要用下面的程序片段使指针变量 p指向一个存储整型变量的动态存储单元 int *p p=_malloc(sizeof(int); 则应填入 _。
6、( A) int ( B) int* ( C) (*int) ( D) (int*) 18 下面程序输出的结果是 _。 main() int i=5,j=9,x; x=(i=j?i:(j=7); printf(“n%d,%d“,i,j); ( A) 5,7 ( B) 5,5 ( C)语法错误 ( D) 7,5 19 若执行下面程序时从键盘上输入 5, main() int x; scanf(“%d“, if(x+ 5)printf(“%dn“,x); else printf(“%dn“,x-); 则输出是 _。 ( A) 7 ( B) 6 ( C) 5 ( D) 4 20 若有以下定义和语句:
7、 int a=1,2,3,4,5,6,7,8,9,10, *p=a; 则值为 3的表达式是 _。 ( A) p+=2,*(p+) ( B) P+=2,*+p ( C) P+=3,*p+ ( D) P+=2,+*p 21 以下程序的输出结果是 #include stdio.h main() int a=15/b=21, m=0; switch(a%3) case0: m+; break; case 1: m +; switch(b%2) default: m+; case 0: m +; break; printf(“%dn“, m); ( A) 1 ( B) 2 ( C) 3 ( D) 4 2
8、2 设有以下程序段 int x=0, s=0; while(!x!=0)s+=+x; printf(“%d“, s); ( A)运行程序 段后输出 0 ( B)运行程序段后输出 1 ( C)程序段中的控制表达式是非法的 ( D)程序段执行无限次 23 在 C语言中,退格符是 ( A) n ( B) t ( C) f ( D) b 24 以下叙述正确的是 ( A)函数可以嵌套定义但不能嵌套调用 ( B)函数既可以嵌套调用也可以嵌套定义 ( C)函数既不可以嵌套定义也不可以嵌套调用 ( D)函数可以嵌套调用但不可以嵌套定义 25 C语言规定,函数返回值的类型是由 ( A) return语句中的表达
9、式类型所决定 ( B)调用该函数时的主调函数类 型所决定 ( C)调用该函数时系统临时决定 ( D)在定义该函数时所指定的函数类型所决定 26 下列程序执行后的输出结果是 void func1(int i); void func2(int i); char st=“hello, friend!”; void func1(int i) printf(“%c“, sti); if(i 3)i+=2;func2(i); void func2(int i) printf(“%c“, sti); if(i 3)i+=2; func1(i); int i=0; func1(i); printf(“n“);
10、 ( A) hello ( B) hel ( C) hlo ( D) hlm 27 以下程序的输出结果是 #include stdio.h void prt(int *x, int*y, int*z) printf(“%d, %d, %dn“, +*x, +*y, *(z+); main() int a=10, b=40,c=20; prt( for(i=0; i 3;i) pi=i 4;i+) sub(a, x); printf(“%d“, x); printf(“n“); sub(s, y) int*s, y; static int t=3; y=st; t-; ( A) 1 2 3 4
11、( B) 4 3 2 1 ( C) 0 ( D) 4444 33 若有以下的说明语句,则与它等价的说明是 char s35=“aaaa“, “bbbb“,“cccc“; ( A) char*s1=“aaaa“, “bbbb“, “cccc“; ( B) char*s23=“aaaa“, “bbbb“, “cccc“; ( C) char s35=“aaaa“, “bbbb“, “cccc“; ( D) char s44=“aaaa“, “bbbb“, “cccc“; 34 若在以下定义和赋值语句,则才 s数组的第 i行第 j列 (假设 i, j已正确说明并赋值 )元素地址的合法引用为 int
12、s23=0, ( *p)3; p=s; ( A) *(*(p+i)+j) ( B) *(pi+j) ( C) (p+i)+j ( D) (*(p+i)j 35 下面能正确进行字符串赋值操作的是 ( A) char s5=“ABCDE“; ( B) char s5=A, B, C, D, E; ( C) char*s; s=“ABCDE“; ( D) char*s; scanf(“%s“, s); 36 若已包括头文件 stdio.h且已有定义 static char str9;,现要使 str从键盘获取字符串 “The lady“,应使用 ( A) scanf(“%s“, str) ( B)
13、for(i=0;i 9;i+)gethchar(stri); ( C) gets(str); ( D) for(i=0;i 9;i+)scanf(“%s“, t=MAX(a+b, c+d); PRINT(t); ( A) Y=3 ( B)存在语法错误 ( C) Y=7 ( D) Y=0 45 以下程序的输 出结果是 #include stdio.h struct st int x; int *y; *p; int dt4=10, 20, 30, 40; struct st aa4=50, &dt0, 60, &dt0, 60,&dt0, 60, &dt0, ; main() p=aa; pri
14、ntf(“%dn“, +(p- x); ( A) 10 ( B) 11 ( C) 51 ( D) 60 46 以下程序的功能是进行位运算 main() unsigned char a, b; a=73; b= 4&3; printf(“%d%dn“, a, b); 程序运行后的输出结果是 ( A) 4 3 ( B) 7 3 ( C) 7 0 ( D) 4 0 47 以下 scanf函数调用语句中对结构体变量成员的不正确引用是 struct pupil char name20; int age int sex; pup5, *p; p=pup; ( A) scanf(“%s“, pup0.nam
15、e); ( B) scanf(“%d“, &pup0.age); ( C) scanf(“%dT“, &(p- sex); ( D) scanf(“%d“, p- age); 48 若有下面的说明语句,已知 A的 +进制数为 65,则以下的输出结果为 union un int a; char c2; w; w.c0=A; w.c1=a; printf(“%on“,w.a); ( A) 60501 ( B) 30240 ( C) 9765 ( D)以上答案均 错 49 fwrite函数的一般调用形式是 ( A) fwrite(buffer, count, size, fp); ( B) fwri
16、te(fP, size, count, buffer); ( C) fwrite(fp, count, size, buffer); ( D) fwrite(buffer, size, count, fp); 50 函数 rewind的作用是 ( A)使文件位置指针重新返回文件的开始位置 ( B)将文件位置指针指向文件中所要求的特定位置 ( C)使文件位置指针指向文件的末尾 ( D)使文件位置指针 自动移至下一个字符位置 51 长度为 n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【 】。 52 用树型结构表示实体类型及实体间联系的数据模型称
17、为【 】。 53 类是一个支持集成的抽象数据类型,而对象是类的【 】。 54 数据流图的类型有【 】和事务型。 55 当数据的物理结构 (存储结构 )改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【 】。 56 如下程序片段: in a, b, c; printf(“input a, b, c: “); scanf(“a=%d, b=%d, c=%d“, &a, &b, &c); 欲使输出结果为 1、 2、 3(分别对应于 a、 b、 c),输入数据的正确形式为【 】。 57 以下程序的运行结果是【 】。 #define MAX(a, b)(a b?a: b)+1 m
18、ain() int i=6, j=8, k; printf(“%dn“, MAX(i, j); 58 以下程序输出的结果是【 】。 main() int a=5, b=4, c=3, d; d=(a b c); printf(“%dn“, d); 59 以下程序段的输出结果是【 】。 main() int a=2, b=3, c=4; a*=16+(b+)-(+c); printf(“%d“, a); 60 阅读下面语句,则执行后的输出结果为【 】。 #include“stdio.h“ main() char a, b; for(a=0, b=9; a b; a+, b-) printf(“%
19、c%c“, a, b); printf(“n“); 61 如下语句 printf(“%cn“, B+40);在执行后的输出结果是【 】。 62 以下程序的输出结果是【 】。 fun(int x, int y, int z) z =x*x+y*y; main() int a=31; fun(6, 3, a) printf(“%d, a) 63 strcat函数的作用是【 】。 64 以下程序的输出结果是【 】。 void fun() static int a=0; a+=2; printf(“%d“, a); main() int cc; for(cc=1; cc 4; cc+)fun(); p
20、rintf(“n“); 65 以下程序的功能是:处理由学号和成绩组成的学生记录, N名学生的数据已在主函数中放入结构体数组 s中,它的 功能是:把分数最高的学生数据放在 h所指的数组中,注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。 #include stdio.h #define N 16 typedef struct char num10; int s; STREC; int fun(STREC *a, STREC *b) int i, j=0, max=a0 s; for(i=0; i N; i+) if(max ai s)max=ai s; for(i=0; i
21、N; i+) if(【 】 )bj+=ai; return j; main() STREC sN= “GA005“, 85, “GA003“, 76, “GA002“, 69,“GA004“, 85, “GA001“, 91, “GA007“, 72, “GA008“, 64, “GA006“, 87, “GA015“, 85, “GA013“, 91, “GA012“, 64, “GA014“, 91, “GA011“, 66, “GA017“, 64, “GA018“, 64, “GA016“, 72 ; STREC hN; int i, n; FILE*out; n=fun(s, h);
22、 printf(“The%d highest score; n“, n); for(i=0; i n; i+) printf(“%s%4dn“, hi num, hi s); printf(“n“); out=fopen(“out15.dat“, “w“); fprintf(out, “%dn“, n); for(i=0; i n; i+); fprintf(out, “%4dn“, hi s); fclose(out); 66 函数 my_cmp()的功能是比较字符串 s和 t的大小,当 s等于 t时返回 0,否则返回 s和 t的第一个不同字符的 ASCII码差值,即 s t时返回正值,当
23、s t时返回负值。请填空。 my_cmp(char*s, char*t) while(*s=*t) if(*s=0)return0; +s; +t; return【 】; 67 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 请填空。 #include stdio.h #define N 80 in fun(int a, int n)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 59 答案 解析 DOC
