《国家计算机二级c语言历年真题及参考答案》.pdf
2 0。9年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(1)一(10)、(21)(40)每题 2 分,(11)-(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A)循环队列B)栈0队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针O队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量O算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装D)自顶向下O模块化D)逐步求精(7)软件详细设计产生的图如下:该图是A)N-S 图B)PAD 图O程序流程图D)E-R 图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件0 一种编译系统D)一种操作系统(9)在E-R图中,用来表示实体联系的图形是A)椭圆图B)矩形C)菱形D)三角形A)选择B)投影0交D)并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构O程序设计的任务就是确定所用算法D)以上三种说法都不完整1,程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。然所以A不完整。2,程序设计=数据结构+算法(1 2)以下选项中,能用作用户标识符的是A)voidB)8.8C)-0-D)unsigned不能数字开头、不能关键词(1 3)阅读以下程序#includemain()int case;float printF;printf(“请输入2个数:”);scanf(%d%fw,&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(1 5)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10 x-=x+x 可以换成 x=x-(x+x);x=l 0-(1 0+1 0);x=-1 0(1 6)有以下程序#includemainO int a=l,b=0;printf(%d,b=a+b);printf(dn”,a=2*b);)程序运行后的输出结果是A)0,0B)1,0C)3,2D)1,21 7)设有定义:inta=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;C.if(ab)c=a;i f 语句已经结束了a=b;b=c;是俩个单独的表达式c:a=2 b=3 c=3 其他的都没变(1 8)有以下程序#includemain()int c=0,k;for(k=l;kb?(bc?l:0):0;功能相同的是A)if(ab)&(bc)k=l;else k=0;B)if(ab)I|(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;2 0)有以下程序#includemainO char s =012xy;int i,n=0;for(i=0;s i!=0;i+)if(s i=,a&s i 2);p rin tf(%d%dn”,k,n);)程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(2 2)有以下定义语句,编译时会出现编译错误的是A)char a=,a ;B)char a=,n;C)char a=aa,;D)char a=,x 2 d;(2 3)有以下程序#includemainO char cl,c2;cl=A+8-4;c2=A+8-5 ;p rin tf(%c,%dn”,cl,c2);)已知字母A的ASCH码为6 5,程序运行后的输出结果是A)E,68B)D,69C)E,DD)输出无定值(2 4)有以下程序#includevoid fun(int p)int d=2;p=d+;print%d,p);main()int a=l;fun(a);p rin tf(%dn,a);程序运行后的输出结果是A)32B)12C)21D)22(2 5)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define M IN-2147483647int f indmax(int x,int n)int i,max;for(i=0;iN;I+)max=MIN;if(maxreturn max;)造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MI N;中,不应给max赋MI N值C)语句 if (maxD)赋值语句max=MI N;放错了位置(2 6)有以下程序#inc lud emain()int m=l,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(%d,%d,%d,%d n”,m,n,*p,*q);)程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(2 7)若有定义语句:int a4 1 0 ,*p,*q4 ;且0 4 i 4,则错误的赋值是A)p=aB)qi=a iC)p=a iD)p=4 a(2 8)有以下程序#inc lud e#inc lud emain()c har str 2 0 =One*W orld ,One*D re am!”,*p=str1 ;printf(%d,strle n(p);printf(%sn ,p);)程序运行后的输出结果是A)9,One*W orldB)9,One*D re amC)1 0,One*D re amD)1 0,One*W orld(2 9)有以下程序#inc lud emain()int a =2,3,5,4,i;for(i=0;i4;i+)switch(i%2)case 0:switch(a i%2)case 0:a i+;break;case 1:a i一;break;case 1:a i=0;)for(i=0;il);输出结果是A)16B)8C)4D)2(4 0)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2 分,共 3 0 分)(1)某二叉树有5 个度为2的结点以及3 个度为1 的结点,则该二叉树中共 有 1 1】个结点。(2)程序流程图中的菱形框表示的是1 2】。(3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其 中【3】阶段产生“软件需求规格说明书。(4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那 么“学生”和“可选课程”的 联 系 为【4】。(5)人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是【5】。(6)若有定义语句:i nt a=5;,则表达式:a+的值是【6】。(7)若有语句 d oubl e x=1 7;i nt y;,当执行 y=(i nt)(x/5)%2;之后 y 的值为。(8)以下程序运行后的输出结果是1 8】。#i nc l ud emai nO i nt x=2 0;pri ntf(d ,0 X 2 0);pri ntf(“d n”,0 X&X(9)以下程序运行后的输出结果是 9 J。#i nc l ud emai n()i nt a=l,b=7;d o(b=b/2;a+=b;w h i l e(bl);pri ntf(%d n,a);)(1 0)有以下程序#i nc l ud emai n 0 i nt f,f l,f 2,i;f l=0;f 2=l;pri ntf (%d%d”,f l,f 2);f or(i=3;i 0)run(x/2);p rin tf(%d ,x);)main()fun(6);p rin tf(n);程序运行后的输出结果是 15.2 0 0 9 年 9 月全国计算机等级考试二级C语言笔试参考答案一、选择题*答案仅供参考(1)C(2)B(3)D(4)A(5)B(6)A(7)C(8)B(9)C(10)D(11)D(12)C(13)A(14)B(15)B(16)D(17)C(18)A(19)A(20)B(21)D(22)C(23)A(24)C(25)D(26)B(27)A(28)C(29)C(30)B(31)D(32)A(33)A(34)C(35)A(36)B(37)A(38)D(39)C(40)C(10)0 1 123(9)5(8)10(7)1(6)5(5)身份证号(4)多对多(3)需求分析(2)逻辑条件(1)14二、填空题2 0。9年3月二级C 语言笔试真题及答案(1)-(10)每小题2分,(11)-(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)栈 是“先进先出”的线性表B)队列是“先进先出”的线性表O循环队列是非线性结构D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈 B)树 C)队 列 D)二叉树(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A)10 B)8 C)6 D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序O直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是A)编译软件B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性O耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计O数据库维护D)数据库管理员培训(9)有两个关系R,S如下:(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属 性B)键C)关 系D)域(11)以下选项中合法的标识符是A )1-1 B )11 C )-11 D)1-(12)若函数中有定义语句:int k;,则A)系统将自动给k赋初值0B)这时k中值无定义O系统将自动给k赋初值-1D)这时k中无任何值(1 3)以下选项中,能用作数据常量的是A)0 1 1 5 B)0 1 1 8 C)1.5 e l.5 D)1 1 5 L(1 4)设有定义:i n t x=2;,以下表达式中,值不为6 的是A)x*=x+lB)x+,2*xC )x*=(1+x )D)2*x,x+=2(1 5)程序段:i n t x=1 2;d o u b l e y=3.1 4 1 5 9 3;p r i n t f (%d%8.6 f”,x,y);的输出结果是A)1 2 3.1 4 1 5 9 3B)1 23.1 4 1 5 9 3C)1 2,3.1 4 1 5 9 3D)1 2 3.1 4 1 5 9 3(1 6)若有定义语句:d o u b l e x,y,*p x,*p y,执行了 p x=&x,p y=&y;之后,正确的输入语句是A )s c a n f (,x,y );B)s c a n f (;C)s c a n f (,p x,p y);D)s c a n f (,x,y);(1 7)以下是i f 语句的基本形式:i f (表达式)语句其 中“表达式”A)必须是逻辑表达式B)必须是关系表达式O 必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(1 8)有以下程序#i n c l u d e m a i n ()i n t x;s c a n f (%d ,&x);i f (x =3 );e l s ei f (x!=1 0)p r i n t f (%d n ,x);)程序运行时,输入的值在哪个范围才会有输出结果A)不等于1 0 的整数B)大于3 且不等于1 0 的整数C)大于3 或等于1 0 的整数D)小于3 的整数(1 9)有以下程序#includeMain()(int a=l,b=2,c=3,d=0;if(a=1&b+=2)if(b!=2 11 c!=3)printf(%d,%d,%dn”,a,b,c);else printf(%d,%d,%dn”,a,b,c);else printf(%d,%d,%dn”,a,b,c);)程序运行后的输出结果是A)1,2,3B)1,3,2C)1,3,3D)3,2,1(2 0)以下程序中的变量已正确定义for(i=0;i4;i+,i+for(k=l;k3;k+);printf(*);程序段的输出结果是A)*B)*C)*D)*(2 1)有以下程序#includemain()chars=(“A BC);doprintf(d”,*s%10);s+;while(*s);)注意,字母A的ASCII码值为65。程序运行后的输出结果是A)5670B)656667C)567D)A BC(2 2)设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是A)n=0;while(ch=getchar()!=n)n+;B)n=0;while(getchar()!=n)n+;C)for(n=0;getchar()!=,n;n+);D)n=0;for(ch=getchar();ch!=,n;n+);(2 3)有以下程序#includemain()int al,a2;char cl,c2;scanf(%d%c%d%c”,&al,&cl,&a2,&c2);printf(a%d,%c,%d,&1,cl,a2,c2);)若想通过键盘输入,使 得 a l的值为12,a2的是为34,c l的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下代表空格,R代表回车)A)12a34bB)12a34bC)12,a,34,bD)12a34b(2 4)有以下程序#includeint f(int x,int y)return()y-x)*x);main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(%dn,d);)程序运行后的输出结果是A)10B)9C)8D)7(2 5)有以下程序#includevoid fun(char*s)while(*s)if(*s%2=0)printf(%c,*s);s+;)main()chara=good );fun(a);printf(n);)注意:字母a 的A SC II码值为9 7,程序运行后的输出结果是A)dB)goC)godD)good(2 6)有以下程序#include void fun(int*a,int*b)int*c;c=a;a=b;b=c;)main()int x=3,y-5,*P=&x,*q=&y;fun(p,q);printf(%d,%d,”,*p,*q);fun(&x,&y);printf(%d,%dn”,*p,*q);)程序运行后的输出结果是A)3,5,5,3B)3,5,3,5C)5,3,3,5D)5,3,5,3(2 7)有以下程序#include viod f(int*p,int*q);main()int m=l,n=2,*r=&m;f(r,&n);printf(%d,%d”,m,n);)void f(int*p,int*q)p=p+l;*q=*q+l;程序运行后输出的结果是A)1,3B)2,3C)1,4D)1,2(28)以下函数按每行8个输出数组中的数据void fun(int*w,int n)int i;for(i=0;i n;i+)printf(%d,w);)printf(n);)下划线处应填入的语句是A)if(i/8=0)print(“n”);B)if(i/8=0)continue;C)if(i%8=0)print(“n”);D)if(i%8=0)continue;(29)若有以下定义int x 10,*pt=x;则对x数组元素的正确应用是A)*&x10B)*(x+3)C)*(pt+10)D)pt+3(30)设有定义:char s 81;int i=10;,以下不能将一行(不超过80个字符)带有空格的字符串真确读入的语句或语句组是Agets(s )B)while(si+=getchar()!=n;s=0;C)scanf(%s,s);D)doscanf(%c,&s);while(si+!=M n);s=0;(31)有以下程序#include main()char*a =abed,ef,gh,ijk ;int I;for(i=0;i B OOK!”;B)char*s;s=B OOK!”;C)char s1 0;s=w B OOK!”;D)char*s;s=”B OOK!”;(3 3)有以下程序#include int fun int x,int y if(x=y)return(x);else returen(x+y)/2 )main()int a=4,b=5,c=6;printf(%dn”,fun(2*a,fun(b,c)程序运行后的输出结果是A)3B)6C)8D)1 2(3 4)设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是A)autoB)registerC)staticD)auto 或 register(3 5)有以下程序#include int b=2;int fun(int*k)b=*k+b;return(b);main()int a1 0 =l,2,3,4,5,6,7,8 ,I;for(i=2;i 4;i+)b=fun(&a)+b;printf(%d,b);printf(n”);)程序运行后输出的结果是A)1012B)810C)1028D)1016(3 6)有以下程序#include#def ine PT 3.5;#define S(x)PT*x*x;mian()int a=l,b=2;printf(%4.lfn”,S(a+b);程序运行后输出的结果是A)14.0B)31.5C)7.5D)程序有错无输出结果(3 7)有以下程序#include struct ord int x,y;dt 2=1,2,3,4);main()struct ord*p=dt;printf(“%d,”,+p-x);printf(%dn”,+p-y);)程序的运行结果是A)1,2B)2,3C)3,4D)4,1(3 8)设有宏定义:#includeIsDIV(k,n)(k%n=l)?l:0且变量m已正确定义并赋值,则宏调用:IsDIV(叫5)&IsDIV(m,7)为真时所要表达的是A)判断m是否能被5或者7整除B)判断m是否能被5和7整除O判断m被5或者7整除是否余1D)判断m被5和7整除是否余1(3 9)有以下程序#include main()int a=5,b=l,t;t=(a 2 1 b);printf(%dn ,t)程序运行后的输出结果是A)2 1B)1 1C)6D)1(4 0)有以下程序#include main()E ILE *f;f=fopen(filea.txt ,w);fprintf(f,a b c);fclose(f);)若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为A)helloabcB)abcloC)abcD)abchello二、填空题(每空2分,共3 0分)请将每一个空的正确答案写在答题卡【1】至 1 5 序号的横线上,答在试卷上不得分。(1)假设一个长度为5 0的数组(数组元素的下标从0到4 9)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=4 9,top=3 0 (数组下标),则栈中具有【1】个元素。(2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于【2】测试。(3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和【3】。(4)数据库系统的核心是14】(5)在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是 5框。(6)表达式(i n t)(d o u bl e)(5/2)+2.5)的值是 6】(7)若变量x、y已定义为i n t类型且x的值为99,y的值为9,请将输出语句p r i n t f (7 ,x/y);补充完整,使其输出的计算结果形式为:x/y=l l有以下程序#include m ain()(char cl,c2;scanf(a&cw,&cl);while(cl90)scanf(,&cl);c2=cl+32;printf(&cn”,cl,c2);)程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)【8】O(9)以下程序运行后的输出结果是9#include main()int k=l,s=0;do if (k&2)!=0)continue;s+=k;k+;while(k)10);printf(s=&d/n”,s);)(10)下列程序运行时,若输入labcedl2df回车)输出结果为10#include m ain()chara=0,ch;while(ch=getchar 0)!=,n5)if(a&2!=0&(ch a5&ch=z)ch=ch-a+A;a+;putchar(ch);)printf(“n”);)(11)有以下程序,程序执行后,输出结果是【11】#include void fun(int*a)aO=al;ma i n()int a10=10,9,8,7,6,5,4,3,2,1,i;for(i=2;i=0;i-)fun&a;for(i=0;i10;i+)p rin tf(&d,a);p rin tf(“n”);)(12)请将以下程序中的函数声明语句补充完整#include int【12】9main()int x,y,(*p)();p=max;p rin tf(&dn”,&x,&y);)Int max(int a,int b)return(ab/a:b);(13)以下程序用来判断指定文件是否能正常打开,请填空#include main()FILE*fp;if(fp=fopen(test.tx tw J r)=1 3)printf(“未能打开文件!iT);elsep rin tf(文件打开成功!n);(14)下列程序的运行结果为14#include#include struct A(int a;char b 10;doublec;);voidf(structA*t);main()struct A a=(1001,ZhangDa”,1098,0);f(&a);printf(&d,&s,&6,ifn”,a.a,a.b,a.c);)void f(structA*t)strcpy(t-b,ChangRong);)(15)以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据,请填空#include struct nodeint data;struct node*next;typedef struct node NODETYPE;main()NODETYPE a,b,c,*h,*p;a.data=10;b.data=20;c.data=30;h=&a;b.next=&b;b.next=&c;c.next=0 ;P=h;while(p)printf(&d”,p-data);15;)答案:逵择题:P I O:DACDCABABC ll_20:CBDDACDBCB 21-30:CDABABACBC 31-40:ADBCCCBDAC填空题:(1)19(2)白盒(3)顺序结构(4)数据库管理系统(DBMS)(5)菱形(6)4(7)x/y=%d(8)能(9)s=0(10)UbCeDf2dF(11)7777654321(12)max(int a,int b)(13)NULL(14)1001,ChangRong,1098.0(15)p=pnext2 0。8 年 9月二级C语言笔试真题及答案(考试时间:120分钟,满分100分)一、选择题(1)(10)、(21)(40)每题2 分,(11)(20)每题 1 分,7 0分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)一个栈的初始状态为空。现将元素1、2、3、4、5、A,B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA(2)下列叙述中正确的是()。A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况O在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定(3)在长度为的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。A)0(z?)B)0(/?2)C)0(log2z?)D)0(z?log2z?)(4)下列叙述中正确的是()。A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是()。A)控制流B)事件驱动C)模块调用D)数据流(6)在软件开发中,需求分析阶段可以使用的工具是()。A)N-S图B)DFD图C)PAD图D)程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是()A)一致性B)分类性C)多态性D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。A)一对一B)一对多C)多对一D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。A)人工管理阶段B)文件系统阶段C)数据库系统阶段D)三个阶段相同(10)有三个关系R、S和T如下:R S TA B B C A B Cm 1 1 3 m 1 3n 2 3 5由关系R和S通过运算得到关系T,则所使用的运算为()。A)笛卡尔积B)交C)并D)自然连接(11)以下叙述中正确的是()。A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句二级C语言程序设计试卷第2页(共9页)C)简单C语句必须以分号结束D)C语句必须在一行内写完(12)计算机能直接执行的程序是()。A)源程序B)目标程序C)汇编程序D)可执行程序(13)以下选项中不能作为C语言合法常量的是()。A),cd,B)0.le+6 C)a D)(14)以下选项中正确的定义语句是().A)double a;b;B)double a=b=7;C)double a=7,b=7;D)double,a,b;(1 5)以下不能正确表示代数式2abcd的C 语言表达式是()。A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d(16)C 源程序中不能表示的数制是()。A)二进制B)八进制C)十进制D)十六进制(1 7)若有表达式(w)?(-x):(+y),则其中与w 等价的表达式是()。A )w=l B )w=0 C )w!=l D )w!=0(1 8)执行以下程序段后,w 的值为()。int w=A,x=14,y=15;w=(x|y)&(wb)a=b,b=c;c=a;printf(a=%d b=%d c=%dn,a,b,c);程序的输出结果是()。A)a=10 b=50 c=10 B)a=10 b=50 c=30 C)a=10 b=30 c=10 D)a=50 b=30 c=50(2 1)若有定义语句:int m=5,4,3,2,l,i=4;,则下面对m 数组元素的引用中错误的是()。A )mi B)m2*2 C )mm0 D)mmi(2 2)下面的函数调用语句中fu n c 函数的实参个数是()。func(f2(vl,v2),(v3,v4,v5),(v6,max(v7,v8);A)3 B)4 C)5 D)8(2 3)若有定义语句:double x 5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用 x 数组元素的是().A)*p B)x5 C)*(p+l)D)*x(2 4)若有定义语句:char s 10=123456700;,则 strlen(s)的值是()。A)7 B)8 C)9 D)10(2 5)以下叙述中错误的是()。A)用户定义的函数中可以没有re tu rn 语句B)用户定义的函数中可以有多个re tu m 语句,以便可以调用一次返回多个函数值C)用户定义的函数中若没有re tu m 语句,则应当定义函数为v o id 类型二级C 语言程序设计试卷第3 页(共9 页)D)函数的re tu rn 语句中可以没有表达式(2 6)以下关于宏的叙述中正确的是()。A)宏名必须用大写字母表示B)宏定义必须位于源程序中所有语句之前O 宏替换没有数据类型限制D)宏调用比函数调用耗费时间(2 7)有以下程序#includemain()int i,j;for(i=3;i=l;i)for(j=l;j=2;j+)printf(%d,i+j);printf(n);)程序的运行结果是().A)2 3 4 B)4 3 23 4 5 5 4 3C)2 3 D)4 53 4 3 44 5 2 3(2 8)有以下程序#include main()int x=l,y=2,z=3;if(xy)if(yz)printf(%d,+z);else printf(%d,+y);printf(%dn,x+);)程序的运行结果是().A)331 B)41 C)2 D)1(2 9)有以下程序#include main()int i=5;do if(i%3=l)if(i%5=2)printf(*%d,i);break;i+;while(i!=0);printf(n);)二级C语言程序设计试卷第4页(共9页)程序的运行结果是().A)*7 B)*3*5 C)*5 D)*2*6(30)有以下程序#include int fun(int a,int b)if(b=0)return a;else return(fun(a,b);)ma i n()printf(%dn,fun(4,2);程序的运行结果是().A)1 B)2 C)3 D)4(31)有以下程序#include#include int fun(int n)int*p;p=(int*)malloc(sizeof(int);*p=n;return*p;)main()int a;a=fun(10);printf(%dn,a+fun(10);)程序的运行结果是().A)0 B)10 C)20 D)出错(32)有以下程序#include void fun(int a,int b)int t;t=a;a=b;b=t;)ma i n()int c10=l,2,3,4,5,6,7,8,9,0),i;for(i=0;i10;i+=2)fun(c i,c i+1);for(i=0;i10;i+)printf(%d,c i);printf(n);)程序的运行结果是()。A)1,2,3,4,5,6,7,8,9,0,B)2,1,4,3,6,5,8,7,0,9,C)0,9,8,7,6,5,4,3,2,1,D)0,1,2,3,4,5,6,7,8,9,(33)有以下程序#include struct st二级C语 言 程 序 设 计 试 卷 第5页(共9页)int x,y;)data2=l,10,2,20;main()struct st*p=data;printf(%d,p-y);printf(%dn,(+p)-x);)程序的运行结果是().A)10,1 B)20,1 C)10,2 D)20,2(3 4)有以下程序#include void fun(int a,int n)int i,t;for(i=0;in/2;i+)t=a i;a i=a n-l-i;a n-l-i=t;)main()int k10=l,2,3,4,5,6,7,8,9,10,i;f un(k,5);for(i=2;i8;i+)printf(%d,k i);printf(n);)程序的运行结果是().A)345678 B)876543 C)1098765 D)321678(3 5)有以下程序#include#define N 4void fun(int a N,int b)int i;for(i=0;iN;i+)bi=ai i;)main()int x N=1,2,3),4,5,6,7,8),9,10,y N,i;fun(x,y);for(i=0;iN;i+)printf(%d,y i);printf(n);)程序的运行结果是()。A)1,2,3,4,B)1,0,7,0,C)1,4,5,9,D)3,4,8,10,(3 6)有以下程序#include int fun(int(*s)4,int n,int k)int m,i;m=s 0 k;for(i=l;im)m=s i k;return m;)二级C 语言程序设计试卷第6 页(共9 页)main()int a 4 4=1,2,3,4),(11,12,13,14,21,22,23,24),(31,32,33,34);printf(%dn,fun(a,4,0);)程序的运行结果是().A)4 B)34 C)31 D)32(3 7)有以下程序#include main()struct STU char name9;char sex;double score2;struct STU a=nZhao%,m,85.0,90.0),b=nQiann,z fz,95.0,92.0);b=a;printf(H%s,%c,%2.Of,%2.0fnH,b.name,b.sex,b.score 0,b.score 1);)程序的运行结果是()oA )Qian,f,95,92 B)Qian,m,85,90 C )Zhao,f,95,92 D)Zhao,m,85,90(3 8)假定已建立以下链表结构,且指针p 和 q 已指向如图所示的结点:head a b cdata nextt P t Q则以下选项中可将q 所指结点从链表中删除并释放该结点的语句组是()。A )(*p).next=(*q).next;free(p);B )p=q-ne