[计算机类试卷]国家二级(C语言)笔试模拟试卷10及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷10及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷10及答案与解析.doc(36页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 10及答案与解析 1 在深度为 5的满二叉树中,叶子结点的个数为 ( )。 ( A) 32 ( B) 31 ( C) 16 ( D) 15 2 若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 ( )。 ( A) bdgcefha ( B) gdbecfha ( C) bdgaechf ( D) gdbehfca 3 一些重要的程序语言 (如 Pascal语言 )允许过程的递归调用,而实现递归调用中的存储分配通常用 ( )。 ( A)栈 ( B)堆 ( C)数组 ( D)链表 4 软件工程的理
2、论和技术性研究的内容主要包括软件开发技术和 ( )。 ( A)消除软件危机 ( B)软件工程管 ( C)程序设计自动化 ( D)实现软件可重用 5 开发软件时对提高开发人员工作效率至关重要的是 ( )。 ( A)操作系统的资源管理功能 ( B)先进的软件开发工具和环境 ( C)程序人员的数量 ( D)计算机的并行处理能力 6 在软件测试设计中,软件测试的主要目的是 ( )。 ( A)实验性运行软件 ( B)证明软件正确 ( C)找出软件中全部错误 ( D)为发现软件错误而执行程序 7 数据处理的最小单位是 ( )。 ( A)数据 ( B)数据元素 ( C)数据项 ( D)数据结构 8 索引属于
3、 ( )。 ( A)模式 ( B)内模式 ( C)外模式 ( D)概念模式 9 下述关于数据库系统的叙述中正确的是 ( )。 ( A)数据库系统减少了数据冗余 ( B)数据库系统避免了一切冗余 ( C)数据库系统中数据的一致性是指数据类型一致 ( D)数据库系统比文件系统能管理更多的数据 10 数据库系统的核心是 ( )。 ( A)数据库 ( B)数据库管理系统 ( C)模拟模型 ( D)软件工程 11 C语言规定,在一个源程序中, main函数的位置 ( )。 ( A)必须在最开始 ( B)必须在系统调用的库函数的后面 ( C)可以任意 ( D)必须在最后 12 下列数据中,不合法的 C语言
4、实型数据的是 ( )。 ( A) 0.123 ( B) 123e3 ( C) 2.1e3.5 ( D) 789.0 13 下面四个选项中,均是不合法的用户标识符的选项是 ( )。 ( A) A P_0 do ( B) float la0_A ( C) b-a goto int ( D) _123 temp int 14 设变量 a是 int型, f是 float型, i是 double型,则表达式 10+a+i*f值的数据类型为 ( )。 ( A) int ( B) float ( C) double ( D)不确定 15 能正确表示逻辑关系 “a)10或 a0”的 C语言表达式是 ( )。
5、( A) a =10 or a =0 ( B) a =0|a =10 ( C) a =10 n-) s=S+1/n; printf(“%6 4fn“, S); 程序运行后输出结果错误,导致错误结果的程序行是 ( A) s=1.0; ( B) for(n=10; n 1; n-) ( C) s=s+1/n; ( D) prind(“%6.4fn“,s); 23 若有语句: char*line5,以下叙述中正确的是 ( A)定义 line是一个数组,每个数组元素是一个基类型为 char的指针变量 ( B)定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组 ( C)定义 line
6、是一个指针数组,语句中的 *号称为间址运算符 ( D)定义 line是一个指向字符型函数的指针 24 有以下程序 main() char a,b,C,*d; a=; b=xbc; c=0xab; d=“0127“; princf(“%c%c%c%cn“, a,b,c,*D) ; 编译时出现错误,以下叙述中正确的是 ( A)程序 中只有 a=;语句不正确 ( B) b=xbc;语句不正确 ( C) d=“0127“:语句不正确 ( D) a=;和 c=0xab;语句都不正确 25 有以下程序 int fl(int x.iht y) return x y?x: y; int f2(int x,in
7、t y) return x y?y: X; main() int a=4, b=3 c=5, d,e,f; d=fla,B) ; d=f1(d,C) : e=f2a, B) ; e=f2(e.C) ; f=a+b+c-d-e; printf(“%d,%d,%dn“,d,f,e); 执行后输出的结果是 ( A) 3,4,5 ( B) 13,4 ( C) 5, 4, 3 ( D) 3, 5, 4 26 有以下程序: void fun(char* a,char* B) ; a=b; (*A) +; main() char c1=A,c2=a,*p1,*p2; p1=p+) if(_)s=p; ret
8、urn(*S); main() int x5=12, 21, 13, 6, 18); printf(“%dn“, findmax(x5); 在下划线处应填入的是 ( A) p s ( B) *p *s ( C) ap as ( D) p-a p-s 32 以下程序的输出结果是 main() char cf35=“AAAA“, “BBB“, “CC“; printf(“%s“n“, cf1); ( A) AAAA ( B) BBB ( C) BBBCC ( D) CC 33 以下能正确定义一维数组的选项是 ( A) int a5=0,1, 2, 3, 4, 5); ( B) char a=0,1
9、, 2, 3, 4, 5); ( C) char a=ABC); ( D) int a5=“0123“; 34 有以下程序 main() char s=“ABCD“, *p; for( p=s+1; p s+4;p+) printf(“%sn“, p); 程序运行后的输出结果是 ( A) ABCD BCD CD ( B) A B C D ( C) B C D ( D) BCD CD D 35 已有定义: char a=“xyz“, b=x,y, z);,以下叙述中正确的是 ( A)数组 a和 b的长度相同 ( B) n数组长度小于 b数组长度 ( C) a数组长度大于 b数组长度 ( D)以述
10、说法都不对 36 若要打开 A盘上 user了目录下名为 abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是 ( A) fopen(“A:userabc.txt“,“,“r“) ( B) fopen(“A: userabc.txt“,“r+“) ( C) fopen(“A: userabc.txt“,“rb“) ( D) fopen(“A: userabc.txt“,“w“) 37 以下叙述中错误的是 ( A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以 ( B)在程序结束时,应当用 fclose函数关闭已打开的文件 ( C)在利用 fread函数从二进制文件中读数据时
11、,可以用数组名给数组中所有元素读入数据 ( D)不可以用 FILE定义指向二进制文件的文件指针 38 有以下程序 #include string h main(int argc, char *argv) int i,len=0; for(i=1; i argc; i+)len+=strlen(argvi); printf(“%dn“, len); 程序 编译连接后生成的可执行文件是 exl.exe,若运行时输入带参数的命令行是: exl abcd efg 10回车 则运行的结果是: ( A) 22 ( B) 17 ( C) 12 ( D) 9 39 有以下程序 #define N 20 fun
12、(int a, int n,: Int m) int i,i; for(i=m; i n; i-) ai+1); ai; main() int i, aN=1, 2, 3, 4, 5,6, 7, 8, 9, 10; fuu(a, 2, 9); for(i=0; i 5; i+) printf(“%d“,ai); 程序运行后的输出结果是 ( A) 10234 ( B) 12344 ( C) 12334 ( D) 12234 40 有以下程序 main() int a32=0, (*ptr)2, i, i; for(i=0; i 2; i+) ptr=a+i; scanf(“%d“, ptr);
13、ptr+; for(i=0; i 3; i+) foil(j=0; j 2; j+) printf(“%2d“, aij); printf(“n“); 若运行时输入: 1 2 3回车,则输出结果为 ( A)产生错误信息 ( B) 1 0 2 0 0 0 ( C) 1 2 3 0 0 0 ( D) 1 0 2 0 3 0 41 有以下程序 main() int a3=(1, 2, 3, 4, 5, 0, (*pa) 3, i; pa=a; for(i=0; i 3; i+) if(i 2) pali=pa1 i-1; else pa1i=1; printf(“%dn“ a01+a11+a12);
14、 执行后输出结果是 ( A) 7 ( B) 6 ( C) 8 ( D)无确定值 42 有以下程序段: main) int a=5, *b, *C; c= fun(p); int fun(int *p) ints; p= ( B) main() int *p; fun( int fun(int *p) int s; *p=) ( C) #include main() int *p; fun( int fun(int *p) *p=(int*)malloc(2); ( D) #include main() iht *p; fun(p); iht fun(iht *p) p=(int*)malloc
15、(sizeof(int); 46 有以下程序: Void f(int a, iht i, int j) int t; if(i j) t=ai; ai=aj; aj=t; f(a, i+1, i-1); main() int i, aa5=1, 2,3, 4, 5; f(aa, 0, 4); for(i=0; i 5; i+) printf(“%d“ ,aai);printf(“n“); 执行后输出结果是 ( A) 5,4, 3, 2, 1, ( B) 5,2, 3, 4, 1, ( C) 1,2, 3, 4, 5, ( D) 1,5, 4, 3, 2, 47 不合法的 main函数命令行参数
16、表示形式是 ( A) main(inta,char *c) ( B) mmn(int arc,char *arv) ( C) main(int argc, char *argv) ( D) majn(int argv, char *atgc) 48 有以下程序 point(char *p) p+=3; main() char b4=a b,c, d, *p=b; point(p); printf(“%cn“, *p); 程序运行后的输出结果是 ( A) a ( B) b ( C) c ( D) d 49 程序中若有如下说明和定义语句 Char fun(char *); main() char
17、*s=“one“, a5=0 (*f1)()=fun, ch; 以下选项中对函数 fun的正确调用语句是 ( A) (*f1)(A) ; ( B) *fl(*s); ( C) fun( scanf (“%d“ , if (a 50) print f (“%d“ ,a); if (a 40) print f (“%d“ ,a); if (a 30) printf (“%d“ ,a); 57 以下程序运行后的输出结果是 _。 main ( ) char m; m = B + 32; printf (“%en“ ,m); 58 以下程序运行 后的输出结果是 _。 main inn a=b= c=5:
18、 if (c=a+b) printf ( “yesn); else printf (“non); 59 以下程序运行后的输出结果是 _。 main () int a.b,c; a=10; b=20; c=(a%b )|a/b 1); printf(“%d %d %d n“ ,a,b,c); 60 以下程序运行后的输出结果是 _。 main ( ) int a4 4=1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18; int i=0.j=0,s=0; while (i+ 4 if (i = 2 | i = 4)continue; j =0; do s += ai j
19、: j+; while (j 4); printf ( “%dn“, s); void fun(int x, int y) 61 以下程序运行后的输出结果是 _。 void fun(int x, int y) x=x+y; y=x-y; x=x-y; printf(“%d,%d,“,x,y); main ( ) int x=2,y=3; fun(x,y); printf(“%d,%dn“,x,y); 62 以下程序运行后的输出结果是 _。 main() char a=“123456789“,*p; int i=0; p=a; while(*p) if (i%2 = 0) *p=*; p+; i
20、+; puts(a); 63 以下程序运行后的输出结果是 _。 main() int i,n=0,0,0,0,0; for(i=1;i =4;i+) ni=ni-1*2+1; printf(“%d“,ni); 64 以下程序运行后的输出结果是 _。 main() / int i,j,a3=1,2,3,4,5,6,7,8,9; for (i=0;i 3;i+) for(j=i+1;j 3;j+) aji=0; for (i=0;i 3;i+) for (j=0;j 3;j+) printf(“%d “,aij); printf(“n“); 65 以下程序运行后的输出结果是 _。 int f(in
21、t a,int n) if(n =l) return f(a,n-1)+an-1; else return 0; main ) int aa5=1, 2, 3, 4, 5, s; s=f(aa,5); printf%dn“,s); 66 下列程序的运行结果是 _。 #include string.h char *ss(char *s) return s+strlen(s)/2; main() char *p,*str=“abcdefgh“; p=ss(str); printf(%sn“,p); 67 下面程序的运行结果是 _。 #define N 10 #define s(x) x*x #de
22、fine f(x) (xx) main() int i1,i2; i1-1000/s(N); i2=1000/f(N); printf(“%d %dn“,i1,i2); 68 以下程序的输出结果是 _。 #define MCRA (m) 2*m #define MCRB (n,m) 2*MCRA (n)+m main() int i-2,j=3; printf(“%dn“,MCRB(j,MCRA(i); 69 以下函数 rotate的功能是 :将 a所指 N行 N列的二维数组中的最后一行放到 b所指二维数组的第 0列中,把 a所指二维数组中的第 0行放到 b所指二维数组的最后一列中, b所指二
23、维数组中其他数据不变。 #define N 4 void rotate(int aN,int bN) int i,j; for(i=0; i N; i+) biN-1=_;_=aN-1i; 国家二级( C语言)笔试模拟试卷 10答案与解析 1 【正确答案】 C 【试题解析】 所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。这就是说,在满二叉树中,每层上的结点数都达到最大值,即在满二叉树的第 k层上有 2k-1个结点,且深度为 m的满二叉树有 2m-1个结点。由此可知,本题中叶子结点的个数为 25-1=16。 2 【正确答案】 D 【试题解析】 前序遍历的第一个
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 10 答案 解析 DOC
