2016年计算机二级c语言题库及答案一、选择题(每小题1分,共40小题,共40分)1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。A.20B.0或35C.15D.162.下列关于栈的叙述中,正确的是()。A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对3.下列链表中,其逻辑结构属于非线性结构的是()0、A.双向链表B.带链的栈C.二叉链表D.循环链表4.在关系数据库中,用来表示实体间联系的是()。A.网状结构B.树状结构C.属性D.二维表5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是()。A.1:m联系B.m:n联系C.1:1联系D.m:l联系6.右两个关系R和S如下:则由关系R得到关系S的操作是()。A.自然连接B.并C.选择D.投影7.数据字典(DD)所定义的对象都包含于()。A.软件结构图B.方框图C.数据流图(DFD图)D.程序流程图8.软件需求规格说明书的作用不包括()。A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解9.下面属于黑盒测试方法的是()。A.边界值分析B.路径覆盖C.语句覆盖D.逻辑覆盖10.下面不属于软件设计阶段任务的是()。A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计11.以下叙述中正确的是()。A.在C语言程序中,main函数必须放在其他函数的最前面B.每个后缀为C的C语言源程序都可以单独进行编译C.在C语言程序中,只有main函数才可单独进行编译D.每个后缀为.C的C语言源程序都应该包含一个main函数12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义B.用户标识符可以由字母和数字任意顺序组成C.在标识符中大写字母和小写字母被认为是相同的字符D.关键字可用做用户标识符,但失去原有含义13.以下选项中表示一个合法的常量是(说明:符号口表示空格)()。A.9口9口9B.0XabC.123E0.2D.2.7e14.C语言主要是借助以下哪个功能来实现程序模块化?()A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型15.以下叙述中错误的是()。A.非零的数值型常量有正值和负值的区分B.常量是在程序运行过程中值不能被改变的量C.定义符号常量必须用类型名来设定常量的类型D.用符号名表示的常量叫符号常量16.若有定义和语句:inta,b;scanf(%d,%d,&a,&b);以下选项中的输人数据,不能把值3赋给变量a、5赋给变量b的是()。A.3,5,B.3,5,4C.3,5D.3,517.C语言中char类型数据占字节数为()。A.3B.4C.1D.218.下列关系表达式中,结果为“假”的是()。A.(3+4)6B.(3!=4)2C.3=4‖3D.(34)=119.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是()。A.switch(a+9){casecl:y=a-b;casec2:y=a+b;}B.switcha*b{casel0:x=a+b;default:y=a-b;}C.switch(a+b){casel:case3:y=a+b;break;case0:case4:y=a-b;}D.switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}20.有以下程序:#includemain(){inta=-2,b=0;while(a++&&++b);printf(%d,%d\n,a,b);}程序运行后的输出结果是()。A.1,3B.0,2C.0,3D.1,221.设有定义:intx=o,*P;,立刻执行以下语句,正确的语句是()。A.p=x;B.*p=x;C.D=NULL;D.*p=NULL;22.下列叙述中正确的是()。A.可以用关系运算符比较字符串的大小B.空字符串不占用内存,其内存空间大小是0C.两个连续的单引号是合法的字符常量D.两个连续的双引号是合法的字符串常量23.有以下程序:#includemain(){rhara=’H’;a=(a=’A’&&a=’2’)?(a-’A’+’a’):a;printf(%c\n,a);}程序运行后的输出结果是()。A.AB.aC.HD.h24.有以下程序:#includeintf(intx);main(){inta,b=0;for(a=0;a3;a++){b=b+f(a);putchar(’A’+b);}}intf(intx){returnx*xl;}程序运行后的输出结果是()。A.ABEB.BDIC.BCFD.BCD25.设有定义:intx[2][3];,则以下关于二维数组X的叙述错误的是()。A.x[0]可看做是由3个整型元素组成的一维数组B.x[0]和x[l]是数组名,分别代表不同的地址常量C.数组X包含6个元素D.可以用语句x[o]=0;为数组所有元素赋初值026.设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于()。A.p=;B.p=0;C.p=0;D.p=;27.有以下程序:#includemain(){inta[]={10,20,30,40},*p=a,j;for(i=0;i=3;i++){a[i]=*P;p++;}printf(oAd\n,a[2]);}程序运行后的输出结果是()。A.30B.40C.10D.2028.有以下程序:#include#defineN3voidfun(inta[][N],intb[]){inti,j;for(i=0;ifor(j=i;j}main(){intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;fun(x,y);for(i=0;i}程序运行后的输出结果是(,)。A.2,4,8,B.3,6,9,C.3,5,7,D.1,3,5,29.有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):#include#includemain(){chara[10]=abc,b[10]=012,c[10]=xyz;strcpy(a+1,b+2);puts(strcat(a,c+1));}程序运行后的输出结果是()。A.al2xyzB.12yzC.a2yzD.bc2yz30.以下选项中,合法的是()。A.charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’};B.charstr4;str4=helloworld;C.charname[10];name=china;D.charstrl[5]=pass,str2[6];str2=strl;31.有以下程序:#includemain(){char*s=[2]34;intk=0,a=0;whil(s[k+1]!=’\o’){k++;if(k%2=o){a=a+(s[k]-’0’+1);continue;}a=a+(s[k]-’0’);printf(k=%da=%d\n,k,a);}程序运行后的输出结果是()。A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=1532.有以下程序:#includemain(){chara[5][10]={one,tw0,three,four,five};inti,j;chart:、for(i=0;i4;i++)for(j=i+1;j5;j++)if(a[i][O]a[j][0]){t=a[i][O];a[i][O]=a[j][O];a[j][O]=t;)puts(a[1]);}程序运行后的输出结果是()。A.fwoB.fixC.twoD.owo33.有以下程序:#includeinta=1,b=2:voidfunl(inta,intb){printf(%d%d,a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf(%d%d\n,a,b);}程序运行后的输出结果是()。A.1256B.5634C.5612D.345634.有以下程序:#includevoidfunc(intn){staticintnum=1);num=num+n;printf(%d,num);}main(){funo(3);func(4);printf(n);}程序运行后的输出结果是()。A.48B.34C.35D.4535.有以下程序:#include#includevoidfun(int*pl,int*p2,int*s){s=(int*)malloc(sizeof(int));*s=*pl+*p2;free(s);}main(){inta=1,b=40,*q=&a;fun(&a,&b,q);printf(%d\n,*q);}程序运行后的输出结果是()。A.42B.0C.1D.4136.有以下程序:#includestructSTU{charname[9];charsex;intscore[2];};voidf(structSTUa[]){structSTUb={Zhao,’m’,85,90);a[1]=b;}main(){structSTUc[2]={{Qian,’f’,95,92},{Sun,’m’98,99}};f(c);printf(”%s,%c,%d,%d,¨,c[o].name,c[o].sex,c[o].score[o],c[o].score[1]);printf(%s,%c,%d,%d\n,c[1].name,c[1].sex,c[1].score[o],c[1].score[1]);}程序运行后的输出结果是()。A.Zhao,m,85,90,Sun,m,98,99B.Zhao,m,85,90,Qian,f,95,92C.Qian,f,95,92,Sun,m,98,99D.Qian,f,95,92,Zhao,m,85,9037.以下叙述中错误的是()。A.可以用typedef说明的新类型名来定义变量B.typedef说明的新类型名必须使用大写字母,否则会出编译错误C.用typedef可以为基本数据类型说明一个新名称D.用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名38.以下叙述中错误的是()。A.函数的返回值类型不能是结构体类型,只能是简单类型B.函数可以返回指向结构体变量的指针C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员D.只要类型相同,结构体变量之间可以整体赋值39.若有定义语句intb=2;,则表达式(b2)/(3‖b)的值是()。A.4B.8C.0D.240.有以下程序:#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen(d2.dat,w+);for=(i=o;i6;,i++)fpintf(fp,%d\n,a[i]);rewind(fp);for(i=0;i%6;i++)fscanf(fp,%d,&a[5-i]);fclose(fp);for(i=0;i%6;i++)printf(%d,,a[i]);}程序运行后的输出结果是()。A.4,5,6,1,2,3,B.1,2,3,3,2,1,C.1,2,3,4,5,6,D.6,5,4,3,2,1,二、基本操作题(共18分)str是一个由数字和字母字符组成的字符串,由变量num传人字符串长度。请补充函数proc(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。例如,str=abcl23de45f967,结果为: