2012年3月上半年计算机二级C语言试题一、选择题1、下列叙述中正确的是()。A.循环队列是队列的一种顺序存储结构B.循环队列是队列的一种链式存储结构C.循环队列是非线性结构D.循环队列是一直逻辑结构2、下列叙述中正确的是()。A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈和队列都是非线性结构D.以上三种说法都不对3、一棵二叉树共有25个节点,其中5个是子节点,那么度为1的节点数为()。A.4B.6C.10D.164、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。A.内模式B.外模式C.概念模式D.逻辑模式5、在满足实体完整性约束的条件下()。A、一个关系中可以没有候选关键词B、一个关系中只能有一个候选关键词C、一个关系中必须有多个候选关键词D、一个关系中应该有一个或者多个候选关键词6、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是()。A.自然连接B.并C.差D.交7、软件生命周期中的活动不包括()。A.软件维护B.市场调研C.软件测试D.需求分析8、下面不属于需求分析阶段任务的是()。A.确定软件系统的性能需求B.确定软件系统的功能需求B.制定软件集成测试计划D.需求规格说明书评审9、在黑盒测试方式中,设计测试用例的主要根据是()。A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图10、在软件设计中不使用的工具是()。A.系统结构图B.程序流程图C.PAD图D.数据流图(DFD图)11、针对简单程序设计,以下叙述的实施步骤正确的是()。A.确定算法和数据结构、编码、调试、整理文档B.编码、确定算法和数据结构、调试、整理文档C.整理文档、确定算法和数据结构、编码、调试D.确定算法和数据结构、调试、编码、整理文档12、关于C语言中数的表示,以下叙述正确的是()。A.只有整型数在允许范围内能精确无误的表示,实型数会有误差B.只要在允许范围内整型和实型都能精确表示C.只有实型数在允许范围内能精确无误的表示,整型数会有误差D.只有八进制表示的数不会有误差13、以下关于算法叙述错误的是()。A.算法可以用伪代码、流程图等多种形式来描述B.一个正确的算法必须有输入C.一个正确的算法必须有输出D.用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码14、以下叙述错误的是()。A.一个C程序可以包含多个不同名的函数B.一个C程序只能有一个主函数C.C程序在书写时,有严格的缩进要求,否则不能编译通过D.C程序的主函数必须用main作为函数名15、设有以下语句charch1,ch2,scanf(”%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是()。A.A和B之间用逗号间隔B.A和B之间不能有任何间隔符C.A和B之间可以用回车间隔D.A和B之间用空格间隔16、以下选项中非法的字符常量是()。A.’\102’B.’\65’C.’\xff’D.’\019’17、有以下程序#include“stdio.h”main(){intA=0,B=0,C=0;C=(A-=A-5);(A=B,B+=4);printf(“%d,%d,%d\n”,A,B,C);}程序运行后输出的结果是()。A.0,4,5B.4,4,5C.4,4,4D.0,0,018、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是()。A.x++;printf(“%d\n”,x);B.n=++x;printf(“%d\n”,n);C.++x;printf(“%d\n”,x);D.n=x++;printf(“%d\n”,n);19、以下选项中,能表示逻辑值“假”的是()。A.1B.0.000001C.0D.100.020、有以下程序#includestdio.hmain(){inta;scanf(%d,&a);if(a++9)printf(%d\n,a);elseprintf(%d\n,a--);}程序运行时键盘输入9回车,则输出的结构是()。A.10B.11C.9D.821、有以下程序#includestdio.hmain(){ints=0,n;for(n=0;n3;n++){switch(s){case0:case1:s+=1;case2:s+=2;break;case3:s+=3;case4:s+=4;break;default:s+=4;}printf(%d,s);}}程序运行后的结果是()。A.124B.136C.31014D.361022、若k是int类型变量,且有以下for语句for(k=-1;k0;k++)printf(****\n”);下面关于语句执行情况的叙述中正确的是()。A.循环体执行一次B.循环体执行两次C.循环体一次也不执行D.构成无限循环23、有以下程序#includestdio.hmain(){charA,B,C;B='1';C='A';for(A=0;A6;A++){if(A%2)putchar(B+A);elseputchar(C+A);}}程序运行后输出的结果是()。A.1B3D5FB.ABCDFEC.A2C4E6D.12345624、设有如下定义语句intm[]={2,4,6,8},*k=m;以下选项中,表达式的值为6的是()。A.*(k+2)B.k+2C.*k+2D.*k+=225、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下列划线处应该填写的是()。#include“stdio.h”#defineN5viodfun(intx[N]){intm;for(m=N-1;m=0;m--)scanf(“%d\n”,____________);}A.&x[++m]B.&x[m+1]C.x+(m++)D.x+m26、若有函数viodfun(doublea[],int*n){………}以下叙述中正确的是()。A、调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送B、形参a和n都是指针变量C、形参a是一个数组名,n是指针变量D、调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组27、有以下程序#include“stdio.h”main(){inta,b,k,m,*p1,*p2;k=1,m=8;p1=&k,p2=&m;a=/*p1-m;b=*p1+*p2+6;printf(“%d”,a);printf(“%d\n”,b);}编译时编译器提示错误信息,你认为出错的语句是()。A.a=/*p1-mB.b=*p1+*p2+6C.k=1,m=8;D.p1=&k,p2=&m;28、以下选项中有语法错误的是()。A.char*str[]={“guest”};B.charstr[10]={“guest”};C.char*str[3];str[1]=“guest”;D.charstr[3][10];str[1]=“guest”;29、avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是()。A.intavg(int*a,intn);B.intavg(inta[10],intn);C.intavg(inta,intn);D.intavg(inta[],intn);30、有以下函数#include“stdio.h”#include“string.h”main(){printf(“%d\n”,strlen(”ATS\n012\1”));}程序运行后的输出结果是()。A.3B.8C.4D.931、有以下函数#includestdio.hmain(){chara[20],b[20],c[20];scanf(%s%s,a,b);gets(c);printf(%s%s%s\n,a,b,c);}程序运行时从第一行开始输入thisisacat!回车,则输出结果是()。A.thisisacat!B.thisisaC.thisisacat!D.thisisacat!32、有以下函数#includestdio.hvoidfun(charc){if(c'x')fun(c-1);printf(%c,c);}main(){fun('z');}程序运行输出结果是()。A.xyzB.wxyzC.zyxwD.zyx33、有以下函数#includestdio.hvoidfunc(intn){inti;for(i=0;i=n;i++)printf(*);printf(#);}main(){func(3);printf(????);func(4);printf(\n);}程序运行输出结果是()。A.****#????***#B.***#????*****#C.**#????*****#D.****#????*****#34、有以下函数#includestdio.hvoidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j2);}main(){intk,a[10]={1,2,3,4,5};for(k=1;k3;k++)fun(a);for(k=0;k5;k++)printf(%d,a[k]);printf(\n);}程序运行输出结果是()。A.12345B.23445C.34756D.3574535、有以下函数#includestdio.h#defineS(x)(x)*x*2main(){intk=5,j=2;printf(%d,,S(k+j));printf(%d\n,S(k-j));}程序运行输出结果是()。A.98,18B.39,11C.39,18D.98,1136、有以下函数#includestdio.hvoidexch(intt[]){t[0]=t[5];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i=4){exch(&x[i]);i++;}for(i=0;i5;i++)printf(%d,x[i]);printf(\n);}程序运行输出结果是()。A.246810B.13579C.12345D.67891037、设有以下程序段structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std;若要引用结构体变量std中的color成员,写法错误的是()。A.std.colorB.ptr-colorC.std-colorD.(*ptr).color38、有以下函数#includestdio.hstructstu{intmun;charname[10];intage;};voidfun(structstu*p){printf(%s\n,p-name);}main(){structstux[3]={{01,zhang,20},{02,wang,19},{03,zhao,18}};fun(x+2);}程序运行输出结果是()。A.zhangB.zhaoC.wangD.1939、有以下函数#includestdio.hmain(){inta=12,c;c=(a2)1;printf(%d\n,c);}程序运行输出结果是()。A.3B.50C.2D.9640、以下函数不能用于向文件写入数据的是()。A.ftellB.fwriteC.fputcD.fprintf二、填空题1、在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数是()。2、设循环队列的存储空间为Q(1:3),初始状态为front=rear=30。现经过一系列入队与退队运算后,front=16,rear=15,则循环队列中有()个元素。3、数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是()。4、在将E-R图转换到关系模式时,实体和联系都可以表示成()。5、常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于()。6、设变量a和b