[计算机类试卷]国家二级(C语言)机试模拟试卷100及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷100及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷100及答案与解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 100及答案与解析 一、选择题 1 下列关于栈叙述正确的是 ( )。 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除 ( C)栈底元素永远不能被删除 ( D)栈底元素最先被删除 2 下列叙述中正确的是 ( )。 ( A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 ( B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 ( C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 ( D)以上说法都不正确 3 某二叉树共有 7个结 点,其中叶子结点只有 1个,则该二叉树的深度为 (假设根结点在第 1层 )( )。 ( A)
2、3 ( B) 4 ( C) 6 ( D) 7 4 软件按功能可以分为应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)学生成绩管理系统 ( B) C语言编译程序 ( C) UNIX操作系统 ( D)数据库管理系统 5 结构化程序所要求的基本结构不包括 ( )。 ( A)顺序结构 ( B) GOTO跳转 ( C)选择 (分支 )结构 ( D)重复 (循环 )结构 6 下面描述中错误的是 ( )。 ( A)系统总体结构图支持软件系统的详细设计 ( B)软件设计是将软件需求转换为软件表示的过程 ( C)数据结构与数据库设计是软件设计的任务之一 ( D) PAD图
3、是软件详细设计的表示工具 7 负责数据库中查询操作的数据库语言是 ( )。 ( A)数据定义语言 ( B)数据管理语言 ( C)数据操纵语言 ( D)数据控制语言 8 一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是 ( )。 ( A) 1: 1联系 ( B) 1: m联系 ( C) m: 1联系 ( D) m: n联系 9 有 三个关系 R、 S和 T如下: 则由关系R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)并 ( C)交 ( D)差 10 定义无符号整数类为 UInt,下面可以作为类 UInt实例化值的是 ( )。 ( A) -369 (
4、 B) 369 ( C) 0 369 ( D)整数集合 1, 2, 3, 4, 5 11 以下叙述中错误的是 ( )。 ( A) C程序在运行过程中所有计算都以二进制方式进行 ( B) C程序在运行过程中所有计算都以十进制方式进行 ( C)所有 C程序都需要编译链接无误后才能运行 ( D) C程序中 字符变量存放的是字符的 ASCII码值 12 以下关于 C语言的叙述中正确的是 ( )。 ( A) C语言的数值常量中夹带空格不影响常量值的正确表示 ( B) C语言中的变量可以在使用之前的任何位置进行定义 ( C)在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 ( D) C语言中的
5、注释不可以夹在变量名或关键字的中间 13 以下不合法的字符常量是 ( )。 ( A) ( B) “ ( C) 018 ( D) xcc 14 以下选项中正确的定义语句是 ( )。 ( A) double, a, b; ( B) double a=b=7; ( C) double a; b; ( D) double a=7, b=7; 15 若有定义语句: int a=3, b=2, c=1; 以下选项中错误的赋值表达式是 ( )。 ( A) a=(b=4)=3; ( B) a=b=c+1; ( C) a=(b=4)+c; ( D) a=1+(b=c=4); 16 若有定义: int a, b;
6、 通过语句: scanf(“ d; d“, &a, &b); 能把整数 3赋给变量 a, 5赋给变量 b的输入数据是 ( )。 ( A) 3 5 ( B) 3, 5 ( C) 3; 5 ( D) 35 17 已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码值是 97。以下不能将变量 c中的大写字母转换为对应小写字母的语句是 ( )。 ( A) c=(A+c) 26-a ( B) c=c+32 ( C) c=c-A+a ( D) c=(c-A) 26+a 18 在以下给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( )。 ( A) (E 0|E 0)
7、( B) (E=0) ( C) (!E=0) ( D) (E!=0) 19 以下程序段中,与语句: k=a b?(b c?1: 0): 0; 功能相同的是 ( )。 ( A) if(a h)|(b c)k=1; else k=0; ( B) if(a b)&(b c)k=1; else!k=0; ( C) if(a =b)k=0; else if(b =c)k=1; ( D) if(a h)k=1; else if(h c)k=1; else k=0; 20 有以下程序: #include stdio h main() int a=1, 1=2; for(; a 8; a+)b+=a; a+=
8、2; printf(“ d, d n“, a, b); 程序运行后的输出结果是 ( )。 ( A) 9, 18 ( B) 8, 11 ( C) 7, 11 ( D) 10 14 21 有以下程序: #include stdio h main() int i, j, m=55; for(i=1; i =3; i+) for(j=3; j =i; j+)m=m j; printf(“ d n“, m); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 22 有以下程序: #inelude stdio h main() int x=8: for(; x 0;
9、 x-) if(x 3) printf(“ d, “, x-); continue; printf(“ d, “, -x); 程序运行后的输出结果是 ( )。 ( A) 7, 4, 2, ( B) 8, 7, 5, 2, ( C) 9, 7, 6, 4, ( D) 8, 5, 4, 2, 23 以下叙述中错误的是 ( )。 ( A) C程序必须由一个或一个以上的函数组成 ( B)函数调用可以作为一个独立的 语句存在 ( C)若函数有返回值,必须通过 return语句返回 ( D)函数形参的值也可以传回给对应的实参 24 有以下程序: #include stdio h main() int a=
10、1, b=3, c=5; int*p1=&a, *p2=&b, *p=&c; *p=*p1*(*p2); printf(“ d n“, c); 程序执行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 25 有以下程序: #include stdio h void f(int*p, int*q); main() int m=1, n=2, *r=&m; f(r, &n); printf(“ d, d“, m, n); void f(int*p, int*q) p=p+1; *q=*q+1: 程序运行后的输出结果是 ( )。 ( A) 2, 3 ( B) 1, 3
11、 ( C) 1, 4 ( D) 1, 2 26 若有定义语句: int a23, *p3; 则以下语句中正确的是 ( )。 ( A) p=a; ( B) p0=a; ( C) p0=&12; ( D) p1=&a; 27 以下程序中函数 f的功能是:当 flag为 1时,进行由小到大排序;当 flag为 0时,进行由大到小排序。 #include stdio h void f(int b, int n, int flag) int i, j, t; for(i=0; i n-1; i+) for(j=i+1; j n; j+) if(flag?bi bj: bi bj) t=bi; bi=bj
12、; bj=t; main() int a10=5, 4, 3, 2, 1, 6, 7, 8, 9, 10, i; f(&a2, 5, 0); f(a, 5, 1); for(i=0; i 10; i+) printf(“ d, “, ai); 程序运行后的输出结果是 ( )。 ( A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ( B) 3, 4, 5, 6, 7, 2, 1, 8, 9, 10, ( C) 5, 4, 3, 2, 1, 6, 7, 8, 9, 10, ( D) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 28 有以下程序: #includ
13、e stdio h main() int s12=1, 2, 3, 4, 4, 3, 2, 1, 1, 1, 2, 3, c5=0, i; for(i=0; i 12; i+) csi+; for(i=1; i 5; i+) printf(“ d“, ci); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 2 3 4 4 ( B) 4 3 3 2 ( C) 1 2 3 4 ( D) 1 1 2 3 29 以下能正确定义字符串的语句是 ( )。 ( A) char str: “ x43“; ( B) char str=“ 0“; ( C) char str= ; ( D
14、) char str= 064; 30 以下关于字符串的叙述中正确的是 ( )。 ( A)空串比空格打头的字符串小 ( B)两个字符串中的字符个数相同时才能进行字符串大小的比较 ( C)可以用关系运算符对字符串的大小进行比较 ( D) C语言中有字符串类型的常量和变量 31 有以下程序: #include stdio。 h void fun(ehar*a, char*b) while(*a=*)a+; while(*b=*a)b+; a+; main() char*s=“*a*b*“, t80; fun(s, t); puts(t); 程序运行后的输出结果是 ( )。 ( A) ab ( B)
15、 a*b ( C) *a*b ( D) a*b* 32 下列函数的功能是 ( )。 void fun(char*a, char*b) while(*b=*a)!= 0) a+; b+; ( A)将 a所指字符串赋给 b所指空间 ( B)使指针 b指向 a所指字符串 ( C)将 a所指字符串和 b所指字符串进行比较 ( D)检查 a和 b所指字符串中是否有 0 33 有以下程序: #include stdio h int fun(int x) int p; if(x=0|x=1) return(3): p=x-fun(x-2); return p; main() printf(“ d n“, f
16、un(7); 干旱序执行后的输出结果是 ( )。 ( A) 2 ( B) 3 ( C) 7 ( D) 0 34 有以下程序: #include stdio h int fun() static int x=1; x*=2; return x; main() int i, s=1: for(i=1; i =2; i+)s=fun(); printf(“ din“, s); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 1 ( C) 4 ( D) 8 35 以下结构体类型说明和变量定义中正确的是 ( )。 ( A) struct REC; int n; char c; ; REC t1
17、, t2; ( B) typedef struct int n; char c; REC; REC t1, t2; ( C) typedef struct REC; int n=0; char c=A; t1, t2; ( D) struct int n; char c; REC; REC t1, t2; 36 似定已建立以下链表结构,且指针 p和 q已指向如图所示的结点:则以下选项中可将 q所指结点从链表中删除并释放该结点的语句组是 ( )。 ( A) p- next=q- next; free(q); ( B) p=q- next; free(q); ( C) p=q; free(q);
18、( D) (*p) next=(*q) next; free(p); 37 有以下程序: #include stdio h #include string h struct A int a; char b10; double c; ; void f(struct A t); main() struct A a=1001, “ZhangDa“, 1098 0; f(a); printf(“ d, s, 6 1f n“, a a, a b, a c); void f(struct A t) t a=1002; strcpy(t b, “ChangRong“); t c=1202 0; 程序运行后的
19、输出结果是 ( )。 ( A) 1002, ZhangDa, 1202 0 ( B) 1002, ChangRong, 1202 0 ( C) 1001, ChangRong, 1098 0 ( D) 1001, ZhangDa, 1098 0 38 有以下程序: #include stdio h #define N5 #define M N+l #define f(x)(x*M) main() int i1, i2: i1=f(2): i2=f(1+1); printf(“ d d n“, i1, i2); 程序运行后的输出结果是 ( )。 ( A) 12 7 ( B) 12 12 ( C)
20、 11 11 ( D) 11 7 39 有以下程序: #include stdio h main() int a=5, b=1, t: t=(a 2)|b: printf(“ d n“, t); 程序运行后的输出结果是 ( )。 ( A) 1 ( B) 11 ( C) 6 ( D) 21 40 设 fp为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为 ( )。 ( A) 0 ( B) 0 ( C)非 0值 ( D) NULL 二、程序填空题 41 下列给定程序中,函数 fun的功能是进行数字字符转换。若形参 ch中是数字字符 0 9,则将 0转换成 9, 1转换
21、成 8, 2转换成 7, , 9转换成 0;若是其他字符则保持不变;并将转换后的结果作为函数值返回。 请在程序的下划线处填入止确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include stdio h *found* 1fun(char ch) *found* if(ch =0&2) *found* return9-(ch-3); return ch; main() char c1, c2; printf(“ nThe result: n“); c1=2; c2=fun(c1); printf(“c1
22、= c c2= c n“, c1, c2); c1=8; c2=fun(c1); printf(“c1= c c2= c n“, c1, c2); c1=a; c2=fun(c1); printf(“c1= c c2= c n“, c1, c2); 三、程序修改题 42 给定程序 MODI1 C中,函数 fun的功能是:判断输入的任何一个正整数 n,是否等于某个连续正整数序 列之和。若是,则输出所有可能的序列,否则输出 “不能分解 ”。 例如:当输入 100时,输出: 100=9+10+11+12+13+14+15+16 100=18+19+20+21+22 请改正函数 fun中指定部位的错误
23、,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include stdio h void fun(int n) int j, b, c, m, flag=0; for(b=1; b =n 2; b+) *found* n=m: c=b; while(m!=0&m =c) *found* m=m-c; c+ *found* if(m!=0) printf(“ d=“, n); for(j=b; j c-1; j+)printf(“ d+“, j); printf(“ d n“, j); flag=1; if(flag=0) print
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 100 答案 解析 DOC
