您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 2010年3月全国计算机二级C语言笔试真题及答案(word版)带解析
2010年3月二级c语言笔试真题及答案一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分。共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。(1)下列叙述中正确的是AA)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指DA)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是BA)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是AA)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是CA)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于BA)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是AA)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是DA)文件B)数据库C)字段D)记录(结构体)这里讲的记录就是指结构体,数据元素又被称为元素、结点、或记录,数据元素是数据的最基本单位(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的AA)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:原题目不完整RTABCa12b22c32ABCc32d32则由关系R得到关系T的操作是AA)选择B)投影C)交D)并(11)以下叙述正确的是BA)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译(可以)D)C语言中除了main函数,其他函数不可以作为单独文件形式存在(12)以下关于C语言的叙述中正确的是BA)C语言中的注释不可以夹在变量名或关键字的中间(注释可以写在程序的任何位置)B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(编译报错)(13)以下C语言用户标示符中,不合法的是DA)_1B)AaBcC)a_bD)a--bC语言标示符必须以字母或下划线开头,区分大小写。(14)若有定义:doublea=22;inti=0,k=18;则不符合C语言规定的赋值语句是CA)a=a++,i++B)i=(a+k)=(i+k)(最终i=0)C)i=a%11D)i=!a(15)#includestdio.hvoidmain(){chara,b,c,d;scanf(”%c%c”,&a,&b);c=getchar();d=getchar();//用getchar()函数一次只能输入一个字符printf(”%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第一列开始,CR代表回车,注意:回车是一个字符)12CR34CR则输出结果是:C//当执行第一个回车的时候,就把回车赋值给C(16)以下关于C语言数据类型使用的叙述中错误的是:DA、若要准确无误的表示自然数,应使用整数类型。B、若要保存带有多位小数的数据,应使用双精度类型。C、若要处理如”人员信息”等含有不同类型的相关数据,应自定义结构体类型。D、若只处理”真”和”假”两种逻辑值,应使用逻辑类型。(没有逻辑类型这说法,布尔类型才对)(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是:AA、1B、0C、2D、不知道a的值,不能确定逻辑或“||”是双目运算符,只要一方为真,则为真(18)以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是:B(19)有如下嵌套的if语句以下选项中与上述if语句等价的语句是C(else总是与其最接近的if相配套)A、k=(ab)?a:b;k=(bc)?b:c;B、k=(ab)?((bc)?a:b):((bc)?b:c);C、k=(ab)?((ac)?a:c):((bc)?b:c);D、k=(ab)?a:b;k=(ac)?a;c(20)有以下程序#includestdio.hmain(){inta=1,b=2;for(;a8;a++){b+=a;a+=2;}printf(%d,%d\n,a,b);}程序运行后的输出结果是D(21)分析:右图为该程序的流程图(A)9,18(B)8,11(C)7,11(D)10,14(21)(21)有以下程序#includestdio.hmain(){inti,j,m=1;for(i=1;i3;i++){for(j=3;j0;j--){if(i*j3)break;m*=i*j;}}printf(”m=%d\n”,m);}程序运行后的输出结果是A(A)m=6(B)m=2(C)m=4(D)m=5(22)有以下程序,其中k的初值为八进制数#includestdio.hmain()/*011转化为十进制数是9,运算的方法为011(8)={intk=011;0*82+1*81+1*80=9k++是指使用了k之后再让k自增1printf(”%d\n”,k++);}所以输出为9,以十进制数形式输出k*/程序运行后的输出结果是D(A)12(B)11(C)10(D)9(23)下列语句中,正确的是A(字符串不用加大括号,初始化数组正确形式为chars[7]={”Olympic”};)A)char*s;s=Olympic;B)chars[7];s=Olympic;C)char*s;s={Olympic};D)chars[7];s={Olympic};(24)以下关于return语句的叙述中正确的是DA)一个自定义函数中必须有一条return语句(可以无返回值void/return语句为空)B)一个自定义函数中可以根据不同情况设置多条return语句(最多有一条)C)定义成void类型的函数中可以有带返回值的return语句(既然定义为空类型就不会有返回值)D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能够正确定义数组的语句是DA)intnum[0..2008];B)intnum[];(定义数组是一定要设定数组的大小,不能为空)C)intN=2008;D)#defineN2008(这里的N为符号常量)intnum[N];intnum[N](26)有以下程序#includestdio.hvoidfun(char*c,intd){*c=*c+1;d=d+1;printf(%c,%c,,*c,d);}main(){charb='a',a='A';fun(&b,a);printf(%c,%c\n,b,a);}程序运行后的输出结果是AA)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(26)解析:这是定义了无返回值函数,a的值虽然改变了但没有返回到主调函数中,所以最后输出的a的值仍为原值’A’。定义了一个指针变量形参C,它与主函数的实参b共用一个地址,所以指针C的值改变,字符变量b的值也会随之改变。执行*c=*c+1得到*c=b.(首先’a’的ASCII值是97,*c+1=98,98对应字符’b’)执行d=d+1得到d=’B’(首先’A’的ASCII值是65,*c+1=66,66对应字符’B’)外循环:i=1和j=3/j=2/j=1内循环:i=2和j=3/j=2/j=1(27)若有定义int(*pt)[3];,则下列说法正确的是DA)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组pt。C)定义了一个名为*pt、具有三个元素的整型数组(名为pt)D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组int(*p)[4];这表示p是指针变量,指向有4个元素的一维数组,数组元素为整型也就是p所指的对象是有4个整型元素的数组,此时p只能指向包含4个元素的一维数组,p的值就是该一维数组的起始地址。int*p[4];指针数组中的每一个元素都存放一个地址,相当于一个指针变量(28)设有定义doublea[10],*s=a;一下能够代表数组元素a[3]的是B(29)有以下程序main(){inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},s=0,i;for(i=0;i5;i++)s=s+a[b[i]];printf(%d\n,s);}程序运行后的输出结果是CA)6B)10C)11D)15(30)有以下程序#includestdio.hmain(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i3;i++)for(j=i;j=i;j++)t+=b[i][b[j][i]];printf(%d\n,t);}程序运行后的输出结果是CA)1B)3C)4D)9(31)若有以下定义和语句Acharsl[10]=abcd!,*s2=n123\\;//当要输出斜杠符号时格式为’//’,即要写成两个斜杠才行,最后输出的只有一个斜杠printf(%d%d\n,strlen(s1),strlen(s2));//输出的是字符串的实际长度则输出结果是A)55B)105C)107D)58A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(30)分析:i=0;i3;i++i可取情况0,1,2j=i;j=i;j++j可取情况0,1,2t+=b[i][b[j][i]];①t+=b[0][b[0][0]]=1+0=1②t+=b[1][b[1][1]]=1+1=2③t+=b[2][b[2][2]]=2+2=4(32)有以下程序#includestdio.h#defineN8voidfun(int*x,inti){*x=*(x+i);}main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;iN/2;i++){printf(%d,a[i]);}printf(\n);}程序运行后的输出结果是C分析:函数fun只调用了一次,改变的是a[0]的值,其他的不变,for(i=0;iN/2;i++){printf(%d,a[i]);}的作用是使数组a按序输出4个元素。A)1313B)2234C)3234D)1234(33)有以下程序#includestudio.hintf(intt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,4);printf(”%d\n”,s);}intf(intt[],intn){if(n0)returnt[n-1]+f(t,n-1);elsereturn0;}程序运行后的输出结果是BA)4B)10C)14D)6(34)有以下程序#includestdio.hintfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i=2;i++)s=fun();//当返回的值满足for(i=1;i=2;i++)时,则执行循环,函数值返回到主函数中。printf(%d\n,s);}程序运行后的输出结果是CA)0B)1C)4D)8
本文标题:2010年3月全国计算机二级C语言笔试真题及答案(word版)带解析
链接地址:https://www.777doc.com/doc-3067077 .html