2014年计算机二级C语言考试上机冲刺试题(1)一、选择题(每小题1分,共40小题,共40分)1.算法的空间复杂度是指()。A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.下列叙述中正确的是()。A.一个逻辑数据结构只能有一种存储结构B.逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率3.简单的交换排序方法是()。A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于结构化程序设计原则和方法的描述错误的是()。A.选用的结构只准许有一个入口和一个出口B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C.不允许使用GOT0语句D.语言中若没有控制结构,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。A.可重用性差B.安全性差C.非持久性D.冗余性6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念7.对如下二叉树进行后序遍历的结果为()。A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA8.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()。A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程9.两个或两个以上模块之间关联的紧密程度称为()。A.耦合度B.内聚度C.复杂度D.数据传输特性10.下列描述错误的是()。A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合11.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系12.下列合法的声明语句是()。A.int_abc=50;B.doubleint=3+5e2.5;C.longdo=1L:D.float3_asd=3e-3;13.设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。A.x&&YB.x=YC.x‖y+z&&y-zD.!((x14.若ch为char型变量,k为int型变量(已知字符a的ASCIl码是97),则执行下列语句后输出的结果为()。ch=’b’;k=10:printf(%X,%o,,ch,ch,k);printf(k=%%d\n,k);A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为0值或不定值C.62,142,k一%dD.62,142,k一%l015.有下列程序:、fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf(%d\n,sum);}执行后的输出结果是()。A.6B.7C.8D.916.假定x和Y为double型,则表达式x=2,y—x+3/2的值是()。A.3.500000B.3C.2.000000D.3.00000017.有如下程序:main(){intx=1,a=0,b=0;switch(x){case0:b++;casel:a++;case2:a++;b++;)printf(a=%d,b=%d\n,a,b);)该程序的输出结果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=218.下列程序的输出结果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3==‖k++==3))printf(%d%d%d\n,i,J,k);)A.123B.234C.223D.23319.下列程序的输出结果是()。#includemain(){inta=0,i;for(i=1;i5;i++){switch(i){case0:case3:a+=1;casel:case2:a+=2;default:a+=3;)printf(%d,i);)A.19B.1C.6D.820.有以下程序:main(){intX,i;for(i=1;i=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0).printf(%d,i);))输出结果是()。A.28B.27C.42D.4121.以下程序的输出结果是()。main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i3;i++)for(j=0;j=i;j++)s+=a[i][j];printf(%d\n,s);}A.18B.19C.20D.2122.有下列程序:main(){intk=5;while(--k)printf(%d,k=1);printf(/n);)执行后的输出结果是()。A.1B.2C.4D.死循环23.若有定义:“inta[2][3];”,则对a数组的第i行第J列元素的正确引用为()。A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j24.下列能正确进行字符串赋值的是()。A.chars[5]={ABCDE};B.chars[5]={’A’,’B’,’C’,’D’,’E’};、C.char*S;S=ABCDE;D.char*s;printf(%《,s);25.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。structnode{hardata;structnode*next;)*P,*q,*r;现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。A.q-:next=r-next;p--:next=r;rm:next=q;B.q-:next=r;q-next=r-next;r-next=q;C.q-:next=r-next;r-next=q;p-next=r;D.q-:next=q;p-next=r;q-next=r-next;26.有下列程序:main(){inti,j,x=0;for(i=0,i2;i++){x++;for(j=0;j=3;j++){if(j%2)continue;x++:)x++:}printf(x=%d\nx);}程序执行后的输出结果是()。A.x=4B.x=8C.x=6D.x=1227.有下列程序:intfunl(doublea){returna*=a;}、intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);)main(){doublew;w=fun2(1.1,2.0),……}程序执行后变量w中的值是()。、A.5.21B.5C.5.0D.0.028.有下列程序:main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i9;i+=2)s+=*(t+i);printf(%d\n,s);}程序执行后的输出结果是()。A.45B.20C.25D.3629.有下列程序:intfun(intn){if(n==1))returnl;elsereturn(n+fun(n-1)):}main(){intx;seanf(%d,&x);x=fun(x);printf(%d\n,x);}执行程序时,给变量x输入l0,程序的输出结果是()。A.55B.54C.65D.4530.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;ireturnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(%d\n,s);程序执行后的输出结果是()。、A.45B.50C.60D.5531.有下列程序:main()fchar*P[]={3697,2584);inti,j;longnum=0;for(i=0;i2;i++){j=0;while(p[i][j]!=’\0’){if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’;j+=2;))printf(%d\n,num);)程序执行后的输出结果是()。A.35B.37C.39D.397532.以下程序的输出结果是()。main(){charst[20]=hell0\O\t\\\”;printf(%d%d\n,strlen(st),sizeof(st));}A.99B.520C.1320D.202033.若有下的定义:intt[3][2];,能正确表示t数组元素地址的表达式是()。A.&t[3][2]B.t[3]C.t[l]D.t[2][2]34.函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是()。A.文件开始B.文件末尾C.文件当前位置D.以上都不对35.下述程序的输出结果是()。#includemain(){inti;for(i=1;i=10;i++){if(i*i=20)&&(i*i=lOO))break;}printf(%d\n,i*i);)A.49B.36C.25D.6436.若有定义“intb[8],*p=b;”,则p+6表示()。A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上637.设变量已正确定义,则以下能正确计算f=n!的程序是()。A.f=0;for(i=1;i=n;i++)f*=i;B.f=1;for(i=1;iC.f=1;for(i=n;i1;i++)f*=i;D.f=1;for(i=n;i=2;i--)f*=i;38.下述程序执行的输出结果是()。#includemain(){chara[2][4];,strcpy(a。are);strcpy(a[1],you);a[o][3]=’&’;printf(%s\n,a);)A.are&youB.youC.areD.&39.设x=011050,则x=x&01252的值是()。A.0000001000101000B.1111110100011001C.0000001011100010D.110000000010100040.在“文件包含,,预处理语句的使用形式中,当#include后面的文件名用(双引号)括时,寻找被包含文件的方式是()。A.直接按系统设定的标准方式搜索目录B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索C.仅仅搜索源程序所在目录D.仅仅搜索当前目录二、基本操作题(共18分)请补充函数proc(),该函数的功能是计算下面公式SN的值:SN=1+1/3十4/5+...+2N-1/SN-1例如,当N=20时,SN=29.031674。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。试题程序:#include#include#includedoubleproc(intn){doubles=1.0,sl=0.0;intk;for(【1】;k=n;k++){sl=S;【2】}return【3】;)voidmain(){intk=0:doublesum;system(CLS);printf(\nPleaseinputN=);scanf(%d,&k);