[计算机类试卷]国家二级(C语言)机试模拟试卷42及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷42及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷42及答案与解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 42 及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)程序可以作为算法的一种表达方式 ( B)算法的有穷性是指算法的规模不能太大 ( C)算法的复杂度用于衡量算法的控制结构 ( D)算法的效率与数据的存储结构无关 2 某循环队列的存储空间为 Q(1:m),初始状态为 front=rear=m。现经过一系列的入队操作和退队操作后, front=m-1, rear=m,则该循环队列中的元素个数为 ( A) m-1 ( B) 1 ( C) m ( D) 0 3 能从任意一个结 点开始没有重复地扫描到所有结点的数据结构是 ( A)循环链表 ( B)双向链表
2、( C)二叉链表 ( D)有序链表 4 某棵树中共有 25个结点,且只有度为 3的结点和叶子结点,其中叶子结点有 7个,则该树中度为 3的结点数为 ( A)不存在这样的树 ( B) 7 ( C) 8 ( D) 6 5 若有代数式 *02(其中 e仅代表自然对数的底数,不是变量 ),则以下能够正确表示该代数式的 C语言表达式是 ( )。 ( A) sqrt(fabs(pow(n, x) exp(x) ( B) sqrt(fabs(pow(n, x) pow(x, e) ( C) sqrt(abs(nx ex) ( D) sqrt(fabs(pow(x, n) exp(x) 6 某二叉树共有 73
3、0个结点,其中度为 1的结点有 30个,则叶子结点个数为 ( A)不存在这样的二叉树 ( B) 351 ( C) 1 ( D) 350 7 软件开发中需求分析的主要任务是 ( A)定义和描述目标系统 “做什么 “ ( B)获取需求 ( C)给出软件解决方案 ( D)需求评审 8 软件按功能可以分为应用软件、系统软件和支撑软件 (或工具软件 )。下面属于 系统软件的是 ( A)学生成绩管理系统 ( B) ERP系统 ( C)办公自动化系统 ( D) UNIX系统 9 医生可以为病人开不同的药,而同一种药也可由不同医生开给病人,则实体医生和实体药之间的联系是 ( A)多对多 ( B)一对一 ( C
4、)多对一 ( D)一对多 10 有以下程序: #include stdio.h main() int s, t, A 10; double B 6; s sizeof(A); t sizeof(B); printf(“%d, %dn“, s, t); 在 VC6.0平台上编译运行,程序运行后的输出结果是 ( )。 ( A) 10,6 ( B) 4,4 ( C) 2,4 ( D) 4,8 11 若想定义 int型变量 a,b,c,d并都赋值为 1,以下写法中错误的是 ( A) int a=b=c=d=1; ( B) int a=1, b=1, c=1, d=1; ( C) int a,b,c,d
5、; a=b=c=d=1; ( D) int a,b,c,d=1; a=b=c=d; 12 若有定义: char c; double d; 程序运行时输入: 1 2回车,能把字符 1输入给变量 c、数值 2输入给变量 d的输入语句是 ( A) scanf(“%d%lf“, ( B) scanf(“%c%lf“, ( C) scanf(“%c%f“, ( D) scanf(“%d%f“, 13 输出语句: printf(“%dn“,11+011);的输出结果是 ( A) 20 ( B) 22 ( C) 22 ( D) 21 14 以下叙述正确的是 ( A)有些算法不能用三种基本结构来表达 ( B)
6、 C语言程序不编译 也能直接运行 ( C)结构化程序的三种基本结构是循环结构、选择结构、顺序结构 ( D)如果 C语言程序实现的算法很简单,则计算机不进行任何代码转换就能执行程序 15 若有定义 : double x;,则表达式 :x=0,x+10,x+ 的值是 ( A) 11.0 ( B) 10 ( C) 0 ( D) 1 16 有以下程序 #include stdio.h main() int x=1, y=0, a=0, b=0; switch ( x ) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+
7、; b+; break; case 3: a+; b+; printf(“a=%d, b=%dn“, a, b); 程序的运行结果是 ( A) a=2, b=2 ( B) a=2, b=1 ( C) a=1, b=1 ( D) a=1, b=0 17 以下程序段中的变量已正确定义 for( i=0; i 4; i+,i+ ) for( k=1; k 3; k+ ); printf(“*“ ); 该程序段的输出结果是 ( A) * ( B) * ( C) * ( D) * 18 有以下程序 #include stdio.h main( ) char c; for (; ( c=getchar()
8、 != #; ) if ( c =a putchar(+c); 执行时输入: aBcDefG#回车 , 则输出结果是 ( A) AbCdEFg ( B) ABCDEFG ( C) BCDEFGH ( D) bcdefgh 19 有以下程序 #include stdio.h int f(int x); main() int n=1,m; m=f(f(f(n); printf(“%dn“,m); int f(int x) return x*2; 程序运行后的输出结果是 ( A) 4 ( B) 2 ( C) 8 ( D) 1 20 关于地址和指针,以下叙述正确的是 ( A)可以通过强制类型转换让 c
9、har型指针指向 double型变量 ( B)函数指针 p指向一个同类型的函数 f时,必须写成: p = ( C)指针 p指向一个数组 f时,必须写成: p = ( D)一个指针变量 p可以指向自身 21 有以下程 序 #include stdio.h #define N 4 int fun( int aN ) int i,j,x=0; for( i=0; i N; i+ ) for( j=0; j N; j+ ) if ( i = j ) x += aN-1-ji; return x; main( ) int xNN= 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1
10、2, 13, 14, 15, 17, y; y = fun(x); printf( “%dn“, y ); 程序运行后的输出结果是 ( A) 34 ( B) 35 ( C) 28 ( D) 59 22 有以下程序 #include stdio.h #define N 3 void fun( int xN, int *r1, int *r2 ) int i, j; *r1 = *r2 =0; for( i=0; i N; i+ ) j=N - (i+1); if (x*r1*r2 xij) *r1 = i; *r2 = j; main( ) int aNN = 1,5,7,9,2,6,4,3,8
11、 , i,j; fun( a, printf(“%dn“, aij); 程序运行后的输出结果是 ( A) 8 ( B) 6 ( C) 7 ( D) 9 23 对于以下函数声明 void fun(int array4, int *ptr); 以下叙述中正确的是 ( A) array, ptr 都是指针变量 ( B)调用 fun函数时,实参的值将逐一复制给 array ( C)调用 fun函数时, array按值传送, ptr按地址传送 ( D) array 是数组, ptr 是指针,它们的性质不同 24 设有定义: int x10,*p=x,i;,若要为数组 x读入数据,以下选项正 确的是 (
12、A) for(i=0;i 10;i+) scanf(“%d“,p+i); ( B) for(i=0;i 10;i+) scanf(“%d“,*p+i); ( C) for(i=0;i 10;i+) scanf(“%d“,*(p+i); ( D) for(i=0;i 10;i+) scanf(“%d“,xi); 25 有以下程序 #include stdio.h main() char s=“012xy08s34f4w2“; int i, n=0; for ( i=0; si!=0; i+ ) if(si = 0 printf(“%dn“,n); 程序运行后的输出结果是 ( A) 7 ( B)
13、0 ( C) 3 ( D) 8 26 有以下程序段 char str 4 12 =“aaa“,“bbb“,“ccc“,“ddd“ , *p4; int i; for( i=0; i 4; i+ ) pi=stri; 以下选项中不能正确引用字符串的是 ( A) *p3 ( B) p3 ( C) str2 ( D) *p 27 有以下程序 #include stdio.h int mul(int val) static int init = 1; return init *= val; main( ) int i; for (i=1; i =5; i+) printf(“%d,“, mul(i);
14、 程序运行后的输出结果是 ( A) 1,2,6,24,120, ( B) 1,2,3,4,5, ( C) 1,1,1,1,1, ( D) 1,2,4,6,8, 28 有以下程序 #include stdio.h void fun( int n ) static int k=0; if(n 0) printf(“-“); n=-n; k+=n%10; printf(“%d,“,k); if(n/10) fun(n/10); main( ) int x=-12; fun(x); printf(“n“); 程序运行后的输出结果是 ( A) -2,3 ( B) -1,-2, ( C) -2,-3, (
15、 D) -2,1 29 有以下程序 #include stdio.h struct Sint n; int a20; ; void f(struct S *p) int i,j, t; for (i=0; i p- n-1; i+) for (j=i+1; j p- n; j+) if (p- ai p- aj) t= p- ai; p- ai = p- aj; p- aj = t; main() int i; struct S s=10, 2,3,1,6,8,7,5,4,10,9; f( for (i=0; i s.n; i+) printf(“%d,“, s.ai); 程序运行后的输出结果
16、是 ( A) 1,2,3,4,5,6,7,8,9,10, ( B) 10,9,8,7,6,5,4,3,2,1, ( C) 2,3,1,6,8,7,5,4,10,9, ( D) 10,9,8,7,6,1,2,3,4,5, 30 有以下程序 #include stdio.h typedef struct stu char name10; char gender; int score; STU; void f( STU a, STU *b, STU c ) *b = c =a; printf( “%s,%c,%d,“, b- name, b- gender, b- score ); printf(
17、“%s,%c,%d,“, c.name, c.gender, c.score ); main( ) STU a=“Zhao“, m, 290, b=“Qian“, f, 350, c=“Sun“, m, 370; f( a, printf( “%s,%c,%d,“, b.name, b.gender, b.score ); printf( “%s,%c,%dn“, c.name, c.gender, c.score ); 程序运行后的输出结果是 ( A) Zhao,m,290,Zhao,m,290,Zhao,m,290,Sun,m,370 ( B) Zhao,m,290,Zhao,m,290,
18、Zhao,m,290,Zhao,m,290 ( C) Zhao,m,290,Zhao,m,290,Qian,f,350,Sun,m,370 ( D) Zhao,m,290,Zhao,m,290,Qian,f,350,Zhao,m,290 31 有以下程序 #include stdio.h #define SUB( x,y ) (x)*(y) main() int a=3, b=4; printf(“%d n“, SUB( a+, b+ ) ); 程序运行后的输出结果是 ( A) 15 ( B) 12 ( C) 16 ( D) 20 32 有以下程序 #include stdio.h main(
19、) struct cm int x; int y; a2=4,3,2,1 ; printf(“%d n“, a0.y/a0.x*a1.x ); 程序运行后的输出结果是 ( A) 1 ( B) 4 ( C) 0 ( D) 3 33 以下选项中的编译预处理命令行,正确的是 ( A) #define E 2.38 ( B) #define PI_2 1.56 ( C) #define int INT ( D) #DEFINE TRUE 34 设有以下程序段 struct book float price; char language; char title20; rec, *ptr; ptr = 要
20、求输入字符串给结构体变量 rec的 title成员,错误的输入语句是 ( A) scanf(“%s“, ptr.title); ( B) scanf(“%s“, rec.title); ( C) scanf(“%s“, (*ptr).title); ( D) scanf(“%s“, ptr- title); 35 有以下程序 #include stdio.h #include string.h struct computer char CPU10; ; main( ) struct computer pc1, pc2; strcpy(pc1.CPU, “3.2G“); strcpy(pc2.C
21、PU, “?“); pc1 = pc2; printf(“%sn“, pc1.CPU); 程序运行后的输出结果是 ( A) ? ( B) 3.2G ( C) ? ( D) ?.2G 36 有以下程序 #include stdio.h main( ) int a = 2, b; b = (a = 1) + 4; printf(“%d,%d“, a, b); 程序运行后的输出结果是 ( A) 1,5 ( B) 2,4 ( C) 2,6 ( D) 2,5 37 若要建立下图所示的存储结构,以下正确的程序段是( )。( A) char *q,*p,c; p= q= ( B) char *q,*p,c;
22、 p= q=*p; ( C) char *q,*p,c; p= *q=p; ( D) char *q,*p,c; q=p; p=*c; 38 有以下程序 #include stdio.h struct tt int x; struct tt *y; s3= 1,0,2,0,3,0; main( ) struct tt *p=s+1; p- y=s; printf(“%d,“,p- x); p=p- y; printf(“%dn“,p- x); 程序运行后的输出结果是 ( A) 2,3 ( B) 2,1 ( C) 1,2 ( D) 3,1 39 有以下程序 #include stdio.h ma
23、in( ) int x=3,y=5; x=xy; y=xy; x=xy; printf( “%d,%dn“, x, y ); 程序运行后的输出结果是 ( A) 3,5 ( B) 5,3 ( C) 35,35 ( D) 8,8 40 有以下程序 #include stdio.h struct tt int x; struct tt *y; s2= 1,0,2,0; main( ) struct tt *p=s; p- y=s; printf(“%d“,+p- x); 程序运行后的输出结果是 ( A) 2 ( B) 0 ( C) 1 ( D) 3 二、程序填空题 41 下列给定程序中,函数 fun
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 42 答案 解析 DOC
