《历年计算机2级c考试真题及答案2000-2010年.docx》由会员分享,可在线阅读,更多相关《历年计算机2级c考试真题及答案2000-2010年.docx(147页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2010年3月计算机等级考试二级C笔试试题(文字版)一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需耍的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需耍的比较次数为(nlog2n)(2)算法的时间复杂度是指A)算法的执行时间 B)算法所处理的数据量 C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。卜面属于系
2、统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误 B)尽可能多地发现程序中的错误 C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具 B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段B)开发阶段0维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言0数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一
3、个学生信息的数据单位是A)文件B)数据库0字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计一阶段 C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如F:RI则由关系K得到关系T:A B B 1的操作是A)选择a 11? c 2 B)投影 C)交 D)并(11)以卜叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(函)C)C语言函数不可以单独编译D)C语言中除了 main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的
4、注释不可以夹在变埴名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_lB)AaBc C)a_bD)ab(14)若有定义:double a=22;int i=0,k=18;.则不符合C语言规定的赋值语句是A)a=a+, i+;B)i=(a+k)=(i+k); C) i=a;D)i=!a;(15)有以下程序ttincludemainO char a, b, c, d;scanf(%c%c”,&a,&b);c=getchar
5、(); d=getchar ();printf(%c%c%c%cn”,a, b, c, d);当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是A)1234B)120123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a=l)|(a!=l)的值是A)1B)002 D)不知道a的
6、值,不能确定(18)以下选项中与if (a=l)a=b; else a+;语句功能不同的 switch语句是A)switch(a)case:a=b;break;default:a+;)C)switch(a)defau1t:a+;break;case 1:a=b;)D)switch(a=l)case 1:a=b;break;case 0:a+;)(19)有如下嵌套的if语句if (aif(aelse k=c;elseif(b else k=c;以下选项中与上述if语句等价的语句是A)k=(aB) k=(ac)?b:c);C)k=(aD)k=(a(20)有以下程序#include mainO in
7、 i, j,m=l;for(i=l;i0; j-)if(i*j)3)break;m=i*j;)printf(*m=%dn*, m);程序运行后的输出结果是A) m=6B)m=2C) m=4D) m=5(21)有以下程序#include(stdio. hmainOint a=l;b=2;for(;a8;a+)b+=a;a+=2;printf(*%d,%dn”, a, b);程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数ttincludemainOint k=011;printf(*%dn* k+);)程序运行后的输出结果是A)1
8、2B)llC)10D)9(23)下列语句组中,正确的是A)char *s;s=*01ympic*;B)char s7;s=*01ympic*;C)char *s;s=Olympic;D)char s7;s=Olympic;(24)以下关于return语句的叙述中正确的是A) 一个自定义函数中必须有一条return语句B) 一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的白定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A) int numO.2008;B) int nu
9、m;Oint N=2008;int numN;D)#define N 2008int numN;(26)有以下程序includevoid fun(char *c, int d)c=*c+l;d=d+l;printf (*%c,%c,*c, d);mainOchar b=a,, a=, A,;fun (&b, a);printf (*%e,%en”, b, a);)程序运行后的输出结果是A)b, B, b, AB)b, B, B, AC)a, B, B, aD)a, B, a, B(27)若有定义int(*Pt)3;,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为in
10、t的具有三个元素的指针数组ptC)定义了个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a10,*s=a;,以下能够代表数组元素 a3的是A)(*s)3B)*(s+3)C)*s3D)*s+3(29)有以下程序#include(stdio. h)mainOint a5=l,2,3,4,5,b5=0,2,1,3,0, i,s=0;for(i=0;i5;i+) s=s+abi);printf(*%dn*, s);)程序运行后的输出结果是A)6B)10OilD)15(30)有以下程序#includemain ()
11、int b 33=0,1,2,0,1,2,0,1,2,i, j,t=l;for(i=0;i3;i+)for(j=ij=l;j+) t+=bibji; printf(*%dn*, t);)程序运行后的输出结果是A)1B)304D)9(31)若有以下定义和语句char si 10=*abcd!*s2=*nl23W;printf(%d %dn”, strlen(sl), strlen(s2)则输出结果是A)55B)105C)107D)58(32)有以下程序#includedefine N 8void fun(int *x, int i)*x=*(x+i);main ()int aN=l,2,3,4,
12、5,6,7,8,i;fun(a,2);for (i=0; iprintfai);printf(n);)程序运行后的输出结果是A)1313B)223403234D)1234(33)有以下程序#includeint f(int t, int n);main int a4=l,2,3,4, s;s=f(a,4); printf(*%dn*, s);int f(int t,int n) if(n0) return tn-l+f(t, n-1);else return 0;程序运行后的输出结果是A)4B)10014D)6(34)有以下程序#includeint fun () static int x=l
13、;x*2; return x;)main ()int i,s=l, for(i=l; iyear=1980;D)w. s. year=1980;(39)有以下程序includemainO int a=2, b=2, c=2;printf(%dn”, a/b&c);程序运行后的输出结果是A)0B)102D)3(40)有以下程序includemainO FILE *fp;char str10;fp=fopen(myfile, dat,w); fputs(abc”, fp);fclose(fp); fpfopen(*myfile. data,a+”);fprintf(fp,%d”,28);rewin
14、d(fp);fscanf(fp,*%s*, str); puts (str); fclose(fp);程序运行后的输出结果是A)abcB) 28cC) abc28D)因类型不一致而出错二、填空题(D一个队列的初始状态为空。现将元素A, B, C, D, E, F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为1.(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有12】个元素。(3)设二叉树如下:对该二叉树进行后序遍历的结果为【3】.(4)软件是、数据和文档的集合。(5)有一个学生选课的关
15、系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号,【5】,成绩)。(6)设x为int型变量,请写出一个关系表达式【6】,用以判断x同时为3和7的倍数时,关系表达式的值为真。(7)有以下程序#includemain () int a=l, b=2, c=3, d=0;if(a=l)if(b!=2)if(c=3) d=l;else 6=2;else if(c!=3) d=3;else d=4;else d=5;printf( a%dnw , d);程序运行后的输出结果是1
16、7】o(8)有以下程序includemain() int m, n;scanf (飞d%d”,&m,&n);while(m!=n) while(mn) m=m-n;while(m printf( M%dnw , m);程序运行后,当输入1463回车时,输出结果是8】o(9)有以下程序includemainO int i, j, a3=1,2,3,4,5,6,7,8,9);for(i=0;i3;i+)for(j=i;j3;j+) printf( M%d%, aij);printf(*n*);)程序运行后的输出结果是90(10)有以下程序includemainO int a=l,2,3,4,5,6
17、,*k3, i=0;while(i3) ki=&a2*i:printf (*%d*,*ki);i+;程序运行后的输出结果是10 o(11)有以下程序#includemainO int a33=1,2,3,4,5,6,7,8,9);int b3=0), i;for (i=0; i3; i+) bi=ai2+a2i;for(i=0;i0;i-) stri=stri-l;str0=temp;(15)s+1main() char s50;scanf s); fun(s); printf (*%sn* s);程序运行后输入:abcdef0;i+)if(si!=*)sj=si;j+;sj=14printf
18、 ( w%snw , s);)(15)以下程序的功能是:借助指针变量找出数组元素中的最大值及其元索的下标值。请填空。#includemain () int a10,*p,*s;for(p=a;p-a10;p+) scanfp);for(p=a, s=a;p-a*s) s=15;printf( aindex=%dnM , s-a);2010年3月计算机等级考试二级C笔试试题答案一.选择题1-5: ADBAC6-10:BADAA11-15:BBDCC16-20:DABCA21-25:DDABD26-30:ADBCC31-35: ACBCC36-40:BADAC二.填空(1) A, BC, D, E
19、,5,4,3,2,1(2)15(3)EDBGHFCA(4)程序(5)课号(6)(x%3=0)&(x%7=0)(7)4(8)7(9)123569(10)135(11)101418(12)12 fabcde(13)X%100%10(14)14 si+l2009年9月全国计算机等级考试二级笔试试卷一、选择题(1)(10)、(21)(40)每题2分,(11)(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列0二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A)循环队列B)栈0队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头
20、指针是固定不变的B)队头指针定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据最C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装D)自顶向下0模块化D)逐步求精A) N-S 图B) PAD 图0程序流程图D) E-R 图C语言程序设计(考试时间90分钟,满分100分)(8)数据库管理系统是A)操
21、作系统的一部分B)在操作系统支持下的系统软件0一种编译系统D)一种操作系统(9)在E-R图中,用来表示实体联系的图形是A)椭圆图B)矩形0菱形D)三角形(10)有三个关系R, S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A)选择B)投影0交D)并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A) voidB) 8_8C) _0_D) unsigned(13)阅读以下程序#i ncludemain() int case;
22、float printF;printf (“请输入2个数:”);scanf (%d %f”,&case,&pjrintF);printf (*%d %fn”, case, printF);)该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)(double)9/2)-(9)%2的值是A) 0B) 3C) 4D) 5(15)若有定义语句:int x=10;,则表达式x-=x+x的
23、值为A) -20B) -10C) 0D) 10(16)有以下程序includemain () int a=l, b=0;printf (%d, b=a+b);printf( a%dnw ,a=2*b);)程序运行后的输出结果是A) 0,0B) 1,0C) 3,2D) 1,217)设有定义:int a=l,b=2,c=3;,以下语句中执行效果与其它三个不同的是A) if (ab) c=a, a=b, b=c;B) if (ab)c=a, a=b, b=c;)C) if(ab) c=a;a=b;b=c;D) if(ab)c=a;a=b;b=c;(18)有以下程序includemain () int
24、 c=0, k;for (k=l;kb?(bc?l:0):0;功能相同的是A) if(ab)&(bc) k=l;else k=0;B) if(ab)|(bc) k=l;else k=0;C) if(a=b) k=0; else if(bb) k=l: else if(bc) k=l;else k=0;20)有以下程序includemain () char s=, a&si=, z) n+; printf(2);printf( M%d %dn”,k, n);程序运行后的输出结果是A) 02B) 13057D)12(22)有以下定义语句,编译时会出现编译错误的是A) char a=, a;B) c
25、har a=,n;C) char a=, aa;D) char a:x2d,;(23)有以下程序#include main() char cl,c2;cl=A+8-4;c2=,A,+8,一 ,5,;printf ( a%c,%dnw , cl, c2);)已知字母A的ASCII码为65,程序运行后的输出结果是A) E,68B) D,69C) E,DD)输出无定值(24)有以下程序#i ncludevoid fun(int p) int d=2;p=d+; printf( a%dw ,p);main () int a=l;fun (a); printf(4%dn0,a);)程序运行后的输出结果是
26、A) 32B) 12C) 21D) 22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x,int n) int i, max;for(i=0;iN;1+) max=MIN;if(maxreturn max;)造成错误的原因是A)定义语句int i, max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句 if (maxD)赋值语句max=MIN;放错了位置(26)有以下程序#includemain() int m=l, n=2
27、,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf ( u%d,%d,%d,%dnM , m, n,*p,*q);)程序运行后的输出结果是A) 1,2,1,2B) 1,2,2,1C) 2,1,2,1D) 2,1,1,2(27)若有定义语句:int a410,*p,*q4;且0Wi4,则错误的赋值是A) p=aB) qi=aiC) p=aiD) p=&a2l(28)有以卜程序ncludeincludemain () char str20=a0ne*WorldM, M0ne*Dream! w,*p=strl; printf ( a%d, M , strlen(p) jprintf
28、 (*%snn , p);)程序运行后的输出结果是A) 9, One*WorldB) 9, One*l)reamC) 10, One*DreamD) 10, One*World(29)有以下程序#includemainO int a=2,3,5,4), i;for(i=0;i4;i+)switch (i%2) case 0:switch(ai%2)case 0:ai+;break;case 1:ai一;break;case 1:ai=0;)for(i=0;i4;i+) printf (“d,ai); printf (“n”);A) 3344B) 205003040D)0304(30)有以下程序
29、#includeincludemain () char a10= abed”;printf (4%d,%dnM , strlen(a), sizeof (a);)程序运行后的输出结果是A) 7,4B) 4,10C) 8,8D) 10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun (char * a, char * b) while(*b=*a)!=,0)a+, b+;A)将a所指字符串赋给b所指空间B)使指针b
30、指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有0,(33)设有以下函数void fun (int n, char * s)则下面对函数指针的定义和赋值均是正确的是A) void (*pf)(); pf=fun;B) viod *pf (); pf=fun;C) void *pf();*pf=fun;D) void (*pf)(int, char);pf=&fun;(34)有以下程序#includeint f(int n);main() int a=3, s;s=f(a):s=s+f (a) jprintf (%dnw , s);)int f(int n
31、) static int a=l;n+=a+;return n;)程序运行以后的输出结果是A) 7B) 8C) 9D) 10(35)有以下程序#includedefine f(x) x*x*xmain () int a=3, s, t;s=f(a+1);t=f(a+1);printf( u%d,%dn, s, t);程序运行后的输出结果是A) 10,64B) 10,10C) 64,10D) 64,64(36)下面结构体的定义语句中,错误的是A) structordintx;inty;intz; struct ord a;B) structordintx;inty;intz; struct or
32、d a;C) structordintx;inty;intz; a;D) struct int x;int y;int z; a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A) char str= stringM ;c=str;B) scanf (%s”, c);C) c=getchar();D) *c= string”;(38)有以下程序#include#include struct A int a; char b10; double c; struct A f(struct A t);mainO struct A a=(1001,0 ZhangD
33、aM ,1098.0;a=f (a); jprintf ( u%d,%s,%6. lfnM , a. a, a. b, a. c);)struct A f(struct A t)(t. a=1002; strcpy (t. b,ChangRongH); t. c=1202.0; return t;)程序运行后的输出结果是A) 1001, ZhangDa,1098.0B) 1001,ZhangDa,1202.0C) 1001, ChangRong,1098.0D) 1001, ChangRong,1202.0(39)若有以下程序段 int r=8;printf(0%dnw ,rl);输出结果是A
34、) 16B) 8C) 4D) 2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件 B)文件由结构序列组成,可以构成二进制文件或文本文件 C)文件由数据序列组成,可以构成二进制文件或文本文件 D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。(2)程序流程图中的菱形框表示的是2。(3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中【3】阶段产生“软件需求规格说明书。(4)在数据库技术中,实体集之间的联系可以是一对一或一时多或多对
35、多的,那么“学生”和可选课程”的联系为【4】。(5)人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为在关键字的是【5】.(6)若有定义语句:int a=5;,则表达式:a+的值是【6】.fun(c) ;a+=c;printf ( u%dnw , a);)程序运行后的输出结果是11 O(1)C(2)B(3)D(4)I (26))3 (27)A(28)c(29)c(6)A(7)C(8)B(9)C (31)(flO)(32)A(33)A(34)c(11)D(12)C(13)A(14)! (36)(H5)3 (37)A(38)D(39)c(16)D(17)C(18)A(19)A*答案仅
36、供参考-21)D(22)C(23)A(24)C(25)D(12)设有定义:(10) 0 1 123(9) 5(7)若有语句 double x=17; int y;,当执行 y=(int)(x/5)%2;之后y的值为【7】o(8)以下程序运行后的输出结果是18】ottincludemain() int x=20;printf(0%dM ,0X20);printf(dn ,0X&X(9)以下程序运行后的输出结果是19】ottincludemai n () int a=l,b=7;do b=b/2;a+=b; while (bl);printf( u%dnw , a);(10)有以下程序#includemai n () int f, fl, f2, i;fl=0;f2=l;printf( M%d %dn ,fl,f2);for(i=3;i=5;i+) f=fl+f2; printf(“%d”, f);fl=f2; f2=f;)printf( anw );)程序运行后的输出结果是HO o(11)有以