[计算机类试卷]国家二级(C语言)机试模拟试卷29及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷29及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷29及答案与解析.doc(34页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 29 及答案与解析 一、选择题 1 设栈的顺序存储空间为 S(0:49),栈底指针 bottom=49,栈顶指针 top=30(指向栈顶元素)。则栈中的元素个数为 ( A) 30 ( B) 29 ( C) 20 ( D) 19 2 某二叉树的前序序列为 ABCDEFG,中序序列为 DCBAEFG,则该二叉树的深度(根结点在第 1层)为 ( A) 2 ( B) 3 ( C) 4 ( D) 5 3 下列叙述中正确的是 ( A)存储空间连续的数据结构一定是线性结构 ( B)存储空间不连续的数据结构一 定是非线性结构 ( C)没有根结点的非空数据结构一定是线性结构 (
2、 D)具有两个根结点的数据结构一定是非线性结构 4 下列叙述中正确的是 ( A)带链队列的存储空间可以不连续,但队头指针必须大于队尾指针 ( B)带链队列的存储空间可以不连续,但队头指针必须小于队尾指针 ( C)带链队列的存储空间可以不连续,且队头指针可以大于也可以小于队尾指针 ( D)带链队列的存储空间一定是不连续的 5 某系统结构图如下图所示 该系统结构图的宽度是 ( A) 2 ( B) 3 ( C) 4 ( D) n 6 下面不能作 为软件需求分析工具的是 ( A) PAD图 ( B) 数据字典 (DD) ( C)数据流程图 (DFD图 ) ( D)判定树 7 下面不属于对象基本特点的是
3、 ( A)标识唯一性 ( B)可复用性 ( C)多态性 ( D)封装性 8 在数据库设计中,描述数据间内在语义联系得到 E-R图的过程属于 ( A)逻辑设计阶段 ( B)需求分析阶段 ( C)概念设计阶段 ( D)物理设计阶段 9 有两个关系 R, S如下,由关系 R和 S得到关系 T,则所使用的操作为( A)并 ( B)自然连接 ( C)差 ( D)交 10 关系数据模型 ( A)只能表示实体间 1:1联系 ( B)只能表示实体间 1:m联系 ( C)可以表示实体间 m:n联系 ( D)能表示实体间 1:n联系而不能表示实体间 n:1联系 11 以下选项中叙述正确的是 ( A) C程序中的语
4、句要经过编译才能转换成二进制机器指令 ( B)算法需要包含所有三种基本结构 ( C)有些算法不能用三种基本结构来表达 ( D)简单算法的操作步骤不能超过 20步 12 以下选项中叙述正确的是 ( A)复杂任务可以分解成简单子任务 ( B) C语言程序中的所有函数必须保存在同一 个源文件中 ( C)全部三种基本结构都包含的才是结构化程序 ( D) C语言程序可以定义多个不同内容的 main函数 13 以下选项中,合法的数值型常量是 ( A) 3.1415 ( B) A ( C) 92 ( D) 0xDH 14 以下选项中,合法的实数是 ( A) 4.5E2 ( B) E1.3 ( C) 7.11
5、E ( D) 1.2E1.2 15 若有定义 int a, b, c; 以下选项中的赋值语句正确的是 ( A) a = (b = c) + 1; ( B) (a = b) = c = 1; ( C) a = (b = c) = 1; ( D) a + b = c; 16 有如下程序 #include stdio.h main() int x = 0x13; printf(“%dn“, x+1); 程序运行后的输出结果是 ( A) 12 ( B) 14 ( C) 20 ( D) 13 17 对于 if(表达式 ) 语句,以下叙述正确的是 ( A)表达式的值可以是任意合法的数值 ( B)在 “表达
6、式 “中不能出现变量 ( C)在 “表达式 “中不能出现常量 ( D)表达式的值必须是逻辑值 18 以下程序段中,不能实现条件 “如果 a b则 x=10,否则 x=-10“的是 ( A) x=(a =b): -10:10; ( B) if(a b) x=10; else x=-10; ( C) x=-10; if(a b) x=10; ( D) if(a b) x=10; if(b a) x=-10; 19 以下能够实现计算 5!的程序段是 ( A) int fac=1,k=0; do k+; fac*=k; while(k 5); ( B) int fac=0,k=1; do fac*=k
7、; k+; while(k 5); ( C) int fac=1,k=1; do k+; fac*=k; while(k =5); ( D) int fac=1,k=0; do fac*=k; k+; while(k 5); 20 有以下程序 #include stdio.h main() int x=0,y=6; do while(-y) x+; while(y-); printf(“%d,%dn“,x,y); 程序的运行结果是 ( A) 5,0 ( B) 6,0 ( C) 5,-1 ( D) 6,-1 21 有以下程序 #include stdio.h main() char *s=“12
8、0119110“; int n0,n1,n2,nn,i; n0=n1=n2=nn=i=0; do switch(si+) default : nn+; case 0 : n0+; case 1 : n1+; case 2 : n2+; while(si); printf(“n0=%d,n1=%d,n2=%d,nn=%dn“,n0,n1,n2,nn); 程序的运行结果是 ( A) n0=3,n1=8,n2=9,nn=1 ( B) n0=2,n1=5,n2=1,nn=1 ( C) n0=2,n1=7,n2=10,nn=1 ( D) n0=4,n1=8,n2=9,nn=1 22 有以下程序 #inc
9、lude stdio.h int m1(int x,int y) return x =y , x :y; int m2(int x,int y) return x =y , y :x; int fun(int a,int b) return a+b; main() int x=2,y=3,z=1; printf(“%dn“, fun(m1(x,y),m2(y,z); 程序的运行结果是 ( A) 6 ( B) 5 ( C) 4 ( D) 3 23 有如下程序 #include stdio.h int sub(double a, double b) return (int)(a - b); mai
10、n() printf(“%dn“, sub(3.8, 2.1); 程序运行后的输出结果是 ( A) 2.0 ( B) 1.7 ( C) 2 ( D) 1 24 有如下程序 #include stdio.h main() char* p1 = 0; int* p2 = 0; double* p3 = 0; printf(“%d,%d,%dn“, sizeof(p1), sizeof(p2), sizeof(p3); 程序运行后的输出结果是 ( A) 4,4,4 ( B) 1,4,8 ( C) 0,0,0 ( D) 1,2,4 25 有如下程序 #include stdio.h main() in
11、t a = 0, *ptr; ptr = *ptr = 3; a = (*ptr) +; printf(“%d,%dn“, a, *ptr); 程序运行后的输出结果是 ( A) 4,4 ( B) 0,1 ( C) 1,4 ( D) 0,4 26 有如下程序 #include stdio.h main() int i, k; int array42 = 1,2, 4,9, 6; for (i=0; i 2; i+) for (k=0; k 4; k+) printf(“%d,“, arrayki); printf(“n“); 程序运行后的输出结果是 ( A) 1,2,4,9,6, ( B) 1,
12、4,6,0,2,9,0,0, ( C) 2,9,0,0,1,4,6,0, ( D) 2,9,6,1,4, 27 有如下程序 #include stdio.h main() int i, *ptr; int array3 = 8,2,4; for (ptr=array, i=0; i 2; i+) printf(“%d,“, *ptr+); printf(“n“); 程序运行后的输出结果是 ( A) 8,2, ( B) 8,8, ( C) 2,4, ( D) 4,8, 28 有如下程序 #include stdio.h main() int i, *ptr; int array5 = 5,3,1
13、; for (ptr=array, i=0; i 5; i+, ptr+) if (*ptr = 0) putchar(X); else putchar(A + *ptr); printf(“n“); 程序运行后的输出结果是 ( A) FDBXX ( B) FFFXX ( C) FDBBB ( D) ABCDE 29 有如下程序 #include stdio.h #include string.h main() char name10 = “c-book“; char* str = name; printf(“%d,%d,%d,%dn“, sizeof(name), strlen(name),
14、 sizeof(str), strlen(str); 程序运行后的输出结果是 ( A) 10,6,4,6 ( B) 11,6,11,6 ( C) 11,6,1,6 ( D) 10,7,1,7 30 有如下程序 #include stdio.h main() char name10 = S, T, R, I, N, G; name3 = E; name5 = 0; printf(“%sn“, name); 程序运行后的输出结果是 ( A) STRENG ( B) STRIEG ( C) STREN ( D) STREN0 31 有如下程序 #include stdio.h int disp(ch
15、ar* str) while (*str) putchar(*str+); return *str; main() printf(“%dn“, disp(“NAME“); 程序运行后的输出结果是 ( A) NAME0 ( B) NAMEE ( C) NAME ( D) NAME0 32 有如下程序 #include stdio.h main() char *p, old_str10 = “wind“; int password; scanf(“%d“, p = old_str; while (*p) printf(“%c“, *p + password); p+; printf(“n“); 程
16、序运行时,从键盘输入 2回车,输出结果是 ( A) ykpf ( B) wind ( C) xjoe ( D) 2222 33 有如下程序 #include stdio.h int sum(int* array, int len) if (len = 0) return array0; else return array0 + sum(array+1, len-1); main() int array5 = 1,2,3,4,5; int res = sum(array, 4); printf(“%dn“, res); 程序运行后的输出结果是 ( A) 15 ( B) 10 ( C) 8 ( D
17、) 1 34 有如下 程序 #include stdio.h int* sum(int data) static int init = 0; init += data; return main() int i, *p; for (i=1; i =4; i+) sum(i); p = sum(0); printf(“%dn“, *p); 程序运行后的输出结果是 ( A) 15 ( B) 0 ( C) 1 ( D) 10 35 有如下程序 #include stdio.h #define D(x) 4*x+1 main() int i = 2, j = 4; printf(“%dn“, D(i+j
18、); 程序运行后的输出结果是 ( A) 25 ( B) 13 ( C) 9 ( D) 12 36 有如下程序 #include stdio.h struct S int x, y; ; main() struct S data2 = 4, 3, 1, 9; int i; for (i=0; i 2; i+) printf(“%d,%d;“, datai.x, datai.y 1); printf(“n“); 程序运行后的输出结果是 ( A) 4,1;1,4; ( B) 4,1;2,4; ( C) 4,3;1,9; ( D) 4,3;2,3; 37 有如下程序 #include stdio.h
19、#include string.h struct S char name10; ; void change(struct S *data, int value) strcpy(data- name, “*“); value = 13; main() struct S input; int num = 4; strcpy(input.name, “THIS“); change( printf(“%s,%dn“, input.name, num); 程序运行后的输出结果是 ( A) *,4 ( B) *,13 ( C) THIS,4 ( D) THIS,13 38 有如下程序 #include s
20、tdio.h #include string.h struct S char name10; ; main() struct S s1, s2; strcpy(s1.name, “12345“); strcpy(s2.name, “ABC“); s1 = s2; printf(“%sn“, s1.name); 程序运 行后的输出结果是 ( A) ABC12 ( B) ABC45 ( C) 12345 ( D) ABC 39 有如下程序 #include stdio.h main() int i, array5 = 3, 5, 10, 4; for (i=0; i 5; i+) printf(“
21、%d,“, arrayi printf(“n“); 程序运行后的输出结果是 ( A) 3,1,2,0,0, ( B) 3,5,10,4,0, ( C) 3,3,3,3,0, ( D) 3,2,2,2,0, 40 有如下程序 #include stdio.h main() int i; FILE* fp; for (i=0; i 5; i+) fp = fopen(“output.txt“, “w“); fputc(A + i, fp); fclose(fp); 程序运行后,在当前目录下会生成一个 output.txt文件,其内容是 ( A) E ( B) EOF ( C) ABCDE ( D)
22、 A 二、程序填空题 41 程序通过定义学牛结构体变量,存储学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到 student dat文件中。函数 fun的功能是:从文件中找出指定学号的学牛数据,读入此学生数据,对该学生的分数进行修改,使每门课的分数加 3分,修改后重写文件中学生的数据,即用该学生的新数据覆盖原数据,其他学生数据指定不变;若找不到,则不做任何操作。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #define N 5 typ
23、edef struct student long Sno; char name10; float Score3; STU; vold fun(char*filename, long sno) ( FILE*fp; STU n; int i; fp=fopen(filename, “rb+”); /*found*/ while(!feof(【 1】 ) (fread( n, sizeof(STU), 1, fp); /*found*/ if(n sno 【 2】 sno)break; if(!feof(fp) for(i=0; i 3; i+) n 8coEei+=3; /*found*/ fs
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 29 答案 解析 DOC
