[计算机类试卷]国家二级(C语言)机试模拟试卷112及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷112及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷112及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 112及答案与解析 一、选择题 1 某二叉树的中序序列为 DCBAEFG,后序序列为 DCBGFEA,则该二叉树的深度(根结点在第 1层 )为 ( )。 ( A) 5 ( B) 4 ( C) 3 ( D) 2 2 设有定义: structint n; float x; s2, m2: 10, 2 8, 0, 0 0;则以下赋值语句中正确的是 ( )。 ( A) s0=m1; ( B) s=m; ( C) s n=m n; ( D) s2 x=m2 x; 3 关于 C语言标识符,以下叙述错误的是 ( )。 ( A)标识符可全部由数字组成 ( B)标识符可全部由下
2、划线组成 ( C)标识符可全部由小写字母组成 ( D)标识符可全部由大写字母组成 4 以下程序段中的变量已定义为 int类型,则 sum=pad=5; pad=sum+, pad+, +pad; printf(“ d n“, pad); 程序段的输出结果是 ( )。 ( A) 6 ( B) 4 ( C) 5 ( D) 7 5 设循环队列为 Q(1: m),其初始状态为 front=rear=m。经过一系列入队与退队运算后, front=20, rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为 ( )。 ( A) 5 ( B) 6 ( C) m 5 ( D) m 6
3、 6 以下选项中,合法的 C语言常量是 ( )。 ( A) 1 234 ( B) C+ ( C) “ 2 0 ( D) 2Kb 7 以下选项中,不能对主函数中变量 i和 j的值进行交换的程序是 ( )。 ( A) #include void swap(int*p, int*q) int*t; *t=*p; *p=*q; *q=*t; main() int i=10, j=20, *a=&i, *b=&j; swap(a, b); printf(“i= d j= d n“, i, j); ( B) #include void swap(int*P, int*q) int t; t=*p; *p:
4、 *q; *q=t; main() int i=10, j=20, *a=&i, *b=&j; swap(a, b); printf(“i= d j= d n“, i, j); ( C) #include #include void swap(int*p, int*q) int*t; t=(int*)malloc(sizeof(int); *t=*p; *p=*q; *q=*t; free(t); main() int i=10, j=20; swap(&i, &j); printf(“i= dj= d n“, i, j); ( D) #include void swap(int*p, int
5、*q) int t; t=*P; *p=*q; *q=t; main() int i=10, j=20, *x=&i, *y=&j; swap(x, y); printf(“i= dj= d n“, i, j); 8 C语言中,最基本的数据类型包括 ( )。 ( A)整型、实型、逻辑型 ( B)整型、字符型、数组 ( C)整型、实型、字符型 ( D)整型、实型、结构体 9 下列叙述中错误的是 ( )。 ( A)算法的时间复杂度与算法所处理数据的存储结构有直接关系 ( B)算法的空间复杂度与算法所处理数据的存储结构有直接关系 ( C)算法的时间复杂度与空间复杂度有直接关系 ( D)算法的时间复杂
6、度与算法程序执行的具体时间是不一致的 10 以下能正确输出字符 a的语句是 ( )。 ( A) printf(“ s“, “a“); ( B) printf(“ s“, a); ( C) printf(“ c“, “a“); ( D) printf(“ d“, a); 11 字符数组 a和 b中存储了两个字符串,判断字符串 a和 b是否相等,应当使用的是 ( )。 ( A) if(strcmp(a, b)=0) ( B) if(strcpy(a, b) ( C) if(a=b) ( D) if(a=b) 12 设有定义: int x=11, y=12, z=0;,以下表达式值不等于 12的是
7、( )。 ( A) (z, x, y) ( B) (z=x, y) ( C) z=(x, y) ( D) z=(x=y) 13 下列叙述中正确的是 ( )。 ( A)存储空间连续的数据结构一定是线性结构 ( B)存储空间不连续的数据结构一定是非线性结构 ( C)没有根结点的非空数据结构一定是线性结构 ( D)具有两个根结点的数据结构一定是非线性结构 14 以下选项中,合法的实数是 ( )。 ( A) 4 5E2 ( B) E1 3 ( C) 7 11E ( D) 1 2E1 2 15 以下选项中叙述正确的是 ( )。 ( A)函数体必须由 开始 ( B) C程序必须由 main语句开始 ( C
8、) C程序中的注释可以嵌套 ( D) C程序中的注释必须在一行完成 16 在源程序的开始处加上 “#include”进行文件引用的原因,以下叙述正确的是 ( )。 ( A) stdio h文件中包含标准输入输出函数的函数说明,通过引用此文件以便能正确使用 printf、 scanf等函数 ( B)将 stdio h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行 ( C)将 stdio h中标准输入输出函数的源程序插入到引用处,以便进行编译链接 ( D)将 stdio h中标准输 入输出函数的二进制代码插入到引用处,以便进行编译链接 17 下面属于白盒测试方法的是 ( )。 (
9、A)边界值分析法 ( B)基本路径测试 ( C)等价类划分法 ( D)错误推测法 18 有以下程序 (其中的 strstr()函数头部格式为: char*strstr(char*p1, char*p2)确定p2字符串是否在 p1中出现,并返回 p2第一次出现的字符串首地址 ): #include #include char*a=“you“: char*b=“Welcome you to Beijing! “; main() char*p; p=strstr(b, a)+strlen(a)+1; printf(“ s n“, p); 程序的运行结果是 ( )。 ( A) to Beijing!
10、( B) you to Beijing! ( C) Welcome you to Beijing! ( D) Beijing! 19 有以下程序: #include void change(int*array, int len) for(; len =0; len-) arraylen-=1; main() int i, array5=2, 2; change(array, 4); for(i=0; i 5; i+) printf(“ d, “, arrayi); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 1, 1, 1, 1, 1, ( B) 1, 0, 1,
11、1, 1, ( C) 1, 1, 1, 1, 1, ( D) 1, 1, 1, 1, 1, 20 有以下程序: #include main() int i, data; $canf(“ d“, &data); for(i=0; i 5; i+) if(i data)continue; printf(“ d, “, i); printf(“ n“); 程序运行时,从键盘 输入: 3后,程序输出结果为 ( )。 ( A) 3, 4, ( B) 1, 2, 3, 4, ( C) 0, 1, 2, 3, 4, 5, ( D) 0, 1, 2, 21 设序列长度为 n,在最坏情况下,时间复杂度为 0(l
12、og2n)的算法是 ( )。 ( A)二分法查找 ( B)顺序查找 ( C)分块查找 ( D)哈希查找 22 有以下程序: #include main() int x; scanf(“ d“, &x); if(x 10)printf(“1“); else if(x 20)printf(“2“); else if(x 30)printf(“3“); 若运行时输入: 35,则输出结果是 ( )。 ( A) 123 ( B) 2 ( C) 3 ( D) 1 23 以下非法的字符常量是 ( )。 ( A) n ( B) 101 ( C) x21 ( D) 0 24 有以下程序: #include #d
13、efine S(x)x*x main() int k=5, j=2; printf(“ d, d n“, S(k+j+2), S(j+k+2); 程序的运行结果是 ( )。 ( A) 21, 18 ( B) 81, 81 ( C) 21, 21 ( D) 18, 18 25 一名雇员就职于一家公司,一个公司有多名雇员,则实体公司和实体雇员之间的联系是 ( )。 ( A) 1: 1联系 ( B) 1: m联系 ( C) m: 1联系 ( D) m: n联系 26 将 E-R图转换为关系模式时, E-R图中的实体和联系都可以表示为 ( )。 ( A)属性 ( B)键 ( C)关系 ( D)域 27
14、 以下针对全局变量的叙述错误的是 ( )。 ( A)全局变量的作用域是从定义位置开始至源文件结束 ( B)全局变量是在函数外部任意位置上定义的变量 ( C)用 extern说明符可以限制全局变量的作用域 ( D)全局变量的生存期贯穿于整个程序的运行期间 28 有以下程序: #include main() char*S=“120119110“; int n0, n1, n2, nn, i; n0=n1=n2=nn=i=0: do switch(si+) default: nn+; case0: n0+: case1: n1+: case2: n2+: while(si); printf(“n0=
15、 d, n1= d, n2= d, nn= d n“, 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 29 在最坏情况下 ( )。 ( A)快速排序的时间复杂度比冒泡排序的时间复杂度要小 ( B)快速排序的时间复杂度比希尔排序的时间复杂度要小 ( C)希尔排序的时间复杂度比直接插入排序的时间复杂度要小 ( D)快速排序的时间复杂度与希尔排序的时间复杂度是一
16、样的 30 有以下程序: #include main() int x=0x13: if(x=0x18)printf(“T“); printf(“F“); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) TF ( B) T ( C) F ( D) TFT 31 以下关于宏的叙述错误的是 ( )。 ( A)宏替换不具有计算功能 ( B)宏是一种预处理指令 ( C)宏名必须用大写字母构成 ( D)宏替换不占用运行时间 32 有以下程序: #include int fun(char*s) char*p: s; while(*p+! = 0); return(p-s); main
17、() char*p=“01234“; printf(“ d n“, fun(p); 程序的运行结果是 ( )。 ( A) 6 ( B) 5 ( C) 4 ( D) 3 33 计算机软件包括 ( )。 ( A)算法和数据 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关义档 34 有以下 程序: #include main() int i, array5=3, 5, 10, 4; for(i=O; i 5; i+) printf(“ d, “, arrayi&3); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 3, 1, 2, 0, 0, ( B) 3
18、, 5, 10, 4, 0, ( C) 3, 3, 3, 3, 0, ( D) 3, 2, 2, 2, 0, 35 以下叙述正确的是 ( )。 ( A) do-while语句构成的循环,当 while语句中的表达式值为 0时结束循环 ( B) do-while语句和 while-do构成的循环功能相同 ( C) while-do语句构成的循环,当 while语句中的表达式值为非 0时结束循环 ( D) do-while语句构成的循环,必须用 break语句退出循环 36 关于地址和指针,以下说法正确的是 ( )。 ( A)通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量 (
19、B)可以取一个常数的地址赋值给同类型的指针变量 ( C)可以取一个表达式 的地址赋值给同类型的指针变量 ( D)可以取一个指针变量的地址赋值给基类型相同的指针变量 37 下面描述不属于软件特点的是 ( )。 ( A)软件是一种逻辑实体,具有抽象性 ( B)软件在使用中不存在磨损、老化问题 ( C)软件复杂性高 ( D)软件使用不涉及知识产权 38 以下程序的功能是:通过调用 calc函数,把所求得的两数之和值放入变量 add中,并在主函数中输出。 #include void calc(float x, float y, float*sum) _=x+y; main() float x, y,
20、add; scanf(“ f “, &x, &y); calc(x, y, &add); pfintf(“x+y= f n“, add); calc函数中下划线处应填入的是 ( )。 ( A) *sum ( B) sum ( C) &sum ( D) add 39 有以下程序: #include main() char c; for(; (c=getchar()! =#; )putchar(+c); 执行时如输入为: abcdefg#,则输出结果是 ( )。 ( A) abcdefg ( B) bcdefgh$ ( C) bcdefgh$ ( D) bcdefgh 40 有以下程序: #inc
21、lude void fun(int*x, int s, int e) int i, j, t; for(i=s, j=e; i j; i+, j-) t=*(x+i); *(x+i)=*c(x+j); *(x+j)=t; main() int m=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, k; fun(m, 0, 3); fun(m+4, 0, 5); fun(m, 0, 9); for(k=0; k 10; k+) pfinff(“ d“, mk); 程序的运行结果是 ( )。 ( A) 4567890123 ( B) 3210987654 ( C) 9876543210
22、( D) 0987651234 二、程序填空题 41 N个有序整数数列已放在一维数组中,给定下列程序中,函数 fun()的功能是:利用折半查找法查找整数 m在数组中的位置。若找到,则返回其下标值;反之,则返回 “Not be found! ”。 折半查找法的基本算法是:每次查找前先确定数组中待确定的范围: low和high(low high),然后把 m与中间位置 (mid)中元素的值进行比较。如果 m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到 low high,查找结束。 注意: 请勿改动主函数 main和其他函数
23、中的任何内容,仅在函数 fun的横线上填入所编写的若干表达式或语句。 【试题源程序】 #include #define N 10 int fun(int a, int m) int low=0, high=N 1, mid; while(low =high) mid=【 1】 ; if(m amid) high: 【 2】 ; else if(m amid) low=mid+1: else return(mid); 【 3】 ( 1); main() int i, aN= 3, 4, 7, 9, 13, 24, 67, 89, 100, 180, k, m; printf(“a数组中的数据如下
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 112 答案 解析 DOC
