[计算机类试卷]国家二级(C语言)机试模拟试卷45及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷45及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷45及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 45及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)算法的时间复杂度与空间复杂度没有直接关系 2 下列叙述中正确的是 ( A)循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 ( B)循环队列中的元素个数随队头指针的变化而动态变化 ( C)循环队列中的元素个数随队尾指针的变化而动态变化 ( D)以上说法都不对 3 一棵二叉树中共有 80个叶子结点与 70个度为 1的结点,则该二叉树
2、中的总结点数为 ( A) 219 ( B) 229 ( C) 230 ( D) 231 4 对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 ( A) 9 ( B) 10 ( C) 45 ( D) 90 5 构成计算机软件的是 ( A)源代码 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关文档 6 软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是 ( A)测试 ( B)设计 ( C)可行性研究 ( D)实现 7 下面不能作为结构化方法软件需求分析工具的是 ( A)系统结构图 ( B)数据字典 (DD) ( C)数据流程图 (DFD图 )
3、 ( D)判定表 8 在关系模型中,每一个二维表称为一个 ( A)关系 ( B)属性 ( C)元组 ( D)主码(键) 9 若实体 A和 B是一对多的联系,实体 B和 C是一对一的联系,则实体 A和 C的联系是 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 10 有三个关系 R、 S和 T如下:则由关系 R和 S得到关系 T的操作是 ( A)选择 ( B)投影 ( C)交 ( D)并 11 以下叙述中正确的是 ( A) C语言程序所调用的函数必须放在 main函数的前面 ( B) C语言程序总是从最前面的函数开始执行 ( C) C语言程序中 main函数必须放在程序的开始位置
4、 ( D) C语言程序总是从 main函数开始执行 12 C语言程序中,运算对象必须是整型数的运算符是 ( A) sum = pad = 5; pAd = +sum, pAd+, +pad; printf(“%dn“, pad ); 程序的输出结果是 ( A) 5 ( B) 6 ( C) 7 ( D) 8 14 有以下程序 #include stdio.h main() int a=3; a+=a-=a*a; printf( “%dn“, a ); 程序的输出结果是 ( A) 0 ( B) 9 ( C) 3 ( D) -12 15 sizeof( double )是 ( A)一个整型表达式 (
5、 B)一个双精度型表达式 ( C)一个不合法的表达式 ( D)一种函数调用 16 有以下程序 #include stdio.h main() int a=2, c=5; printf( “a=%d,b=%dn“, a,c ); 程序的输出结果是 ( A) a=2,b=5 ( B) a=%2,b=%5 ( C) a=%d,b=%d ( D) a=%d,b=%d 17 若有定义语句: char a=82; 则变量 a ( A)说明不合法 ( B)包含 1个字符 ( C)包含 2个字符 ( D)包含 3个字符 18 有以下程序 #include stdio.h main() char c1=A, c
6、2=Y; printf( “%d, %dn“, c1,c2 ); 程序的输出结果是 ( A)输出格式不合法,输出出错信息 ( B) 65,89 ( C) 65,90 ( D) A,Y 19 若变量已正确定义 for( x=0,y=0; ( y!=99 x+ ) 则以上 for循环 ( A)执行 3次 ( B)执行 4次 ( C)执行无限次 ( D)执行次数不定 20 对于 while(!E) s; ,若要执行循环体 s,则 E的取值应为: ( A) E等于 1 ( B) E不等于 0 ( C) E不等于 1 ( D) E等于 0 21 有以下程序 #include stdio.h main()
7、 int x; for( x=3; x 6; x+ ) printf( (x%2 ) : (“*%d“) :(“#%d“),x); printf(“n“); 程序的输出结果是 ( A) *3#4*5 ( B) #3*4#5 ( C) *3*4#5 ( D) *3#4#5 22 有以下程序 #include stdio.h main() int a, b; for( a=1,b=1; a =100; a+ ) if(b =20) break; if(b % 3=1) b=b+3; continue; b=b-5; printf(“%dn“,a); 程序的输出结果是 ( A) 10 ( B) 9
8、( C) 8 ( D) 7 23 有以下程序 #include stdio.h void fun( int x, int y, int *c, int *d ) *c = x+y; *d = x-y; main() int a=4, b=3, c=0, d=0; fun ( a, b, printf( “%d %dn“ , c, d ); 程序的输出结果是 ( A) 0 0 ( B) 4 3 ( C) 3 4 ( D) 7 1 24 有以下程序 #include stdio.h void fun( int *p, int *q ) int t; t = *p; *p = *q; *q=t; *
9、q = *p; main() int a=0, b=9; fun ( printf( “%d %dn“ , a,b ); 程序的输出结果是 ( A) 9 0 ( B) 0 0 ( C) 9 9 ( D) 0 9 25 有以下程序 #include stdio.h main() int a = 2,4,6,8,10 , x, *p, y=1; p = for( x=0; x 3; x+ ) y += *(p+x); printf( “%dn“,y ); 程序的输出结果是 ( A) 13 ( B) 19 ( C) 11 ( D) 15 26 有以下程序 #include stdio.h main(
10、) int i, x33 = 1,2,3,4,5,6,7,8,9 ; for( i=0; i 3; i+ ) printf( “%d “, xi2-i ); printf( “n“ ); 程序的输出结果是 ( A) 1 5 0 ( B) 3 5 7 ( C) 1 4 7 ( D) 3 6 9 27 设有某函数的说明为 int* func(int a10, int n); 则下列叙述中,正确的是 ( A)形参 a对应的实参只能是数组名 ( B)说明中的 a10写成 a或 *a效果完全一样 ( C) func的函数体中不能对 a进行移动指针(如 a+)的操作 ( D)只有指向 10个整数内存单元的
11、指针,才能作为实参传给 a 28 有以下程序 #include stdio.h char fun( char *c ) if ( *c =Z return *c; main() char s81, *p=s; gets( s ); while( *p ) *p =fun( p ); putchar( *p ); p+; printf( “n“); 若运行时从键盘上输入 OPEN THE DOOR回车,程序的输出结果是 ( A) OPEN THE DOOR ( B) oPEN tHE dOOR ( C) open the door ( D) Open The Door 29 设有定义语句: ch
12、ar *aa2= “abcd“,“ABCD“; 则以下叙述正确的是 ( A) aa0存放了字符串 “abcd“的首地址 ( B) aa数组的两个元素只能存放 含有 4个字符的一维数组的首地址 ( C) aa数组的值分别是字符串 “abcd“和 “ABCD“ ( D) aa是指针变量,它指向含有两个元素的字符型数组 30 有以下程序 #include stdio.h int fun( char *s ) char *p=s; while (*p !=0 ) p+; return ( p-s ); main() printf( “%dn“, fun( “goodbey!“ ) ); 程序的输出结果
13、是 ( A) 0 ( B) 6 ( C) 7 ( D) 8 31 有以下程序 #include stdio.h int fun( int n ) int a; if( n=1 ) return 1; a = n + fun( n-1 ); return ( a ); main() printf( “%dn“, fun( 5 ) ); 程序的输出结果是 ( A) 9 ( B) 14 ( C) 10 ( D) 15 32 有以下程序 #include stdio.h int d=1; void fun( int p ) int d=5; d += p+; printf(“%d “, d ); ma
14、in() int a=3; fun( a ); d += a+; printf(“%dn“,d); 程序的输出结果是 ( A) 8 4 ( B) 9 6 ( C) 9 4 ( D) 8 5 33 有以下程序 #include stdio.h int fun(intA) int b=0; static int c=3; a =( c+,b+); return ( a ); main() int a = 2, i, k; for( i=0; i 2; i+ ) k = fun(a+); printf( “%dn“,k ); 程序的输出结果是 ( A) 4 ( B) 0 ( C) 1 ( D) 2
15、34 有以下程序 #include stdio.h main() char c25= “6934“, “8254“ ,*p2 ; int i, j, s=0; for( i=0; i 2; i+ ) pi=ci; for( i=0; i 2; i+ ) for( j=0; pij 0 j+=2 ) s = 10*s + pij - 0; printf( “%dn“ ,s ); 程序的输出结果是 ( A) 693825 ( B) 69825 ( C) 63825 ( D) 6385 35 有以下程序 #include stdio.h #define SQR(X) X*X main() int a
16、=10, k=2, m=1; a /= SQR(k+m)/SQR(k+m); printf(“%dn“,a); 程序的输出结果是 ( A) 0 ( B) 1 ( C) 9 ( D) 10 36 有以下程序 #include stdio.h main() char x=2, y=2, z; z=( y 1 ) printf( “%dn“,z ); 程序的输出结果是 ( A) 1 ( B) 0 ( C) 4 ( D) 8 37 有以下程序 #include stdio.h struct S int a;int b; ; main() struct S a, *p= a.a=99; printf(
17、“%dn“ , _ ); 程序要求输出结构体中成员 a的数据,以下不能填入横线处的内容是 ( A) a.a ( B) *p.a ( C) p- a ( D) (*p).a 38 有以下程序 #include stdio.h #include stdlib.h void fun( double *p1,double *p2,double *s) s = (double *)calloc( 1,sizeof(double) ); *s = *p1 + *( p2+1 ); main() double a2 = 1.1, 2.2 , b2 = 10.0, 20.0 , *s=a; fun( a, b
18、, s ); printf( “%5.2fn“, *s); 程序的输出结果是 ( A) 21.10 ( B) 11.1 ( C) 12.1 ( D) 1.1 39 若已建立以下链表结构,指针 p、 s分别指向如图所示结点则不能将 s所指结点插入到链表末尾的语句组是 ( A) p=p- next; s - next=p; p- next=s; ( B) s - next=0; p=p- next; p- next=s; ( C) p=p- next; s - next=p- next; p- next=s; ( D) p=(*p).next; (*s ).next=(*p).next; (*p)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 45 答案 解析 DOC
