试卷一(参考答案在后面!)1,有以下程序#includestdio.hvoidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}voidmain(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf(%d,,aa[i]);printf(\n);}执行后输出结果是A)5,4,3,2,1,B)5,2,3,4,1C)1,2,3,4,5,D)1,2,3,4,52,下面程序的输出结果是()#includestdio.hvoidmain(){intx=2,y=1;voidf(intx,inty);f(x,y);printf(“%d,%d”,x,y);}voidf(intx,inty){y=x+y;x=x-y;}A)3,1B)2,1C)1,3D)1,23,以下程序的输出结果是。#include<stdio.h>voidmain(){intk=4,m=1,p;p=func(k,m);printf(%d,,p);p=func(k,m);printf(%d\n,p);}inta,b;func(a,b){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}A)8,17B)8,16C)8,20D)8,84,以下()是不正确的转义字符。A.'\\'B.'\'C.'081'D.'\0'5,在C语言中,int,char,和short三种类型数据所占用的内存A.均为2个字节B.由用户自己定义C.由所用机器的机器字长决定D.是任意的6,有以下程序main(){intx=102,y=012;printf(%2d,%2d\n,x,y);}执行后输出结果是A)10,012B)102,12C)102,10D)0102,107,下列程序的输出结果是main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf(%d\n,d*y);}A)3B)3.2C)0D)3.078,已知inta;那么﹠a表示(A)变量名(B)变量a的地址(C)变量a的值(D)其他9,以下程序段中与语句k=a〉b?(b〉c?1:0):0;功能等价的是()A)if((a〉b)﹠﹠(b〉c))k=1;elsek=0;B)if((a〉b)||(b〉c))k=1;elsek=0;C)if(a〈=b)k=0;elseif(b〈=c)k=1;D)if(a〉b)k=1;elseif(b〉c)k=1;elsek=0;10,当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为A)1B)2C)3D)6if(a〈b)if(c〈d)x=1;elseif(a〈c)if(b〈d)x=2;elsex=3;elsex=6;11,以下错误的if语句是。A)if(x〉y)z=x;B)if(x==y)z=0;C)if(x!=y)printf(%d,x)elseprintf(%d,y);D)if(x〈y){x++;y--;}12,有以下程序main(){inti=10;printf(%d\n,i++);}执行后输出结果是A.9B.10C.11D.813,若x,i,j和k都是int型变量,则计算表达式x=(i=14,j=16,k=j)后,x的值为A.14B.16C.30D.5614,设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf(%d,s);则A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次15,以下程序执行后输出结果是________。inti;for(i=0;i<3;i++)switch(i){case1:printf(%d,i);case2:printf(%d,i);default:printf(%d,i);}A)011122B)012C)012020D)12016,若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段_________。A)for(i=1,p=1;i<=5;i++)p*=i;B)for(i=1;i<=5;i++){p=1;p*=i;}C)i=1;p=1;while(i<=5){p*=i;i++;}D)i=1;p=1;do{p*=i;i++;}while(i<=5);17,以下叙述不正确的是A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面18以下叙述不正确的是_________。A.分号是C语言的必要组成部分B.C程序的注释可以写在句的后面C.函数是C程序的基本单位D.主函数的名字不一定用main表示19,源程序要正确地运行,必须要有什么函数?A.printf函数B.自定义的函数C.main函数D.不需要函数20,不能把字符串:Hello!赋给数组b的语句是A.charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};B.charb[10];b=Hello!;C.charb[10];strcpy(b,Hello!);D.charb[10]=Hello!;21在C语言中,一维数组的定义方法为类型说明符数组名A.[常量表达式]B.[整型常量]C.[整型变量]D.[整型常量]或[整型表达式]22,下列选项中错误的说明语句是A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};B.chara[]={toyou\0};C.chara[]=toyou\0;D.chara[]=′toyou\0′;23字符串常量不能直接赋值给字符数组,但可以通过____strcpy_____函数来实现。24,下面程序段运行的结果__-1_____。inty=2,a=1;do{a*=y;a++;}while(y--);printf(%d\n,y);25,分析如下程序,此程序运行时输出结果是:20#includestdio.hvoidtest(int*x,int*y);voidmain(){inta=10,b=20;test(&a,&b);printf(%d,a);}voidtest(int*x,int*y){intt;t=*x;*x=*y;*y=t;}26分析如下程序,此程序运行时输出结果是:28#includestdio.hvoidmain(){structu{char*name;intage;intincome;}s;s.name=Wangling;s.age=28;s.income=1000;printf(%d\n,s.age);}27,以下程序输出的结果是(0)#includestdio.hvoidmain(){inta=5,b=4,c=3,d;d=(abc);printf(%d\n,d);}28,考生注意:先将源程序文件715.c复制到D盘中操作,操作完成后,将此文件复制回来(覆盖)!要求:补充程序使得程序运行时完成以下功能:计算2个数的立方差(结果=第一个数的立方减去第二个数的立方)要求:1)2个数由键盘输入2)通过函数调用实现(计算方法在子函数中,通过主函数调用实现)3)将结果显示出来29,考生注意:先将源程序文件113.c复制到D盘中操作,操作完成后,将此文件复制回来(覆盖)!要求:补充程序使得程序运行时完成以下功能:********************onedreamoneworld!********************并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。30考生注意:先将源程序文件208.c复制到D盘中操作,操作完成后,将此文件复制回来(覆盖)!要求:补充程序使得程序运行时完成以下功能:计算公式:[xx1y=[2*x-11=x=10[3*x-11x10要求:1)从键盘输入x的值,根据x的值求y的值2)输出y的值并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。31,考生注意:先将源程序文件501.c复制到D盘中操作,操作完成后,将此文件复制回来(覆盖)!要求:补充程序使得程序运行时完成以下功能:计算公式:s=1+3+...+(2n-1)要求:1)n的值由键盘输入;2)将s的值显示出来。试卷21,有以下程序#includestdio.hcharfun(charx,chary){if(x<y)returnx;returny;}voidmain(){inta='9',b='8',c='7';printf(%c\n,fun(fun(a,b),fun(b,c)));}程序的执行结果是A)函数调用出错B)8C)9D)72,请读程序:#includestdio.hvoidf(intb[],intn){inti,r;r=1;for(i=0;i<=n;i)r=r*b[i];returnr;}voidmain(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(“%d、n”,x);}上面程序输出结果是A)720B)120C)24D)63,以下程序有语法错误,有关错误原因的正确说法是#includestdio.hvoidmain(){intG=5,k;voidprt_char();...k=prt_char(G);...}A)语句voidprt_char();有错,它是函数调用语句,不能用void说明B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线4,以下叙述中,不正确的是()A、x*=2.5B、x%=2.5C、x+=2.5D、x-=2.55,以下叙述中,不正确的是()A、x*=2.5B、x%=2.5C、x+=2.5D、x-=2.56,以下程序的输出结果是A)17,021,0x11B)17,17,17B)17,0x11,021D)17,21,11main(){intk=17;printf(%d,%o,%x\n,k,k,k);}7,有以下程序main(){chara,b,c,*d;a='\';b='\xbc';c='\0xab';d=\0127;printf(%c%c%c%c\n,a,b,c,*d);}编译时出现错误,以下叙述中正确的是A)程序中只有a='\';语句不正确B)b='\xbc';语句不正确C)d=\0127;语句不正确D)a='\';和c='\0xab';语句都不正确8,以下程序的输出结果是main(){charc='z';printf(%c,c-25);}A)aB)ZC)z-25D)y9,以下程序的输出结果是main(){charc='z';printf(%c,c-25);}A)aB)ZC)z-25D)y10,当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为A)1B)2C)3D)6if(a〈b)if(c〈d)x=1;elseif(a〈c)if(b〈d)x=2;elsex=3;elsex=6;11,下列程序段运行后x的值是()#includestdio.hvoidmain(){inta=0,b=0,c=0,x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;printf(%d\n,x);}A)34B)4C)35D)312,有以下程序main(){inti=10;printf(%d\n,++i);}13,执行后输出结果是A.9B.10C.11D.8设intx=1,y=1;表达式(!x||y--)的值是A.0B.1C.2D.-114,有如下程序main(){floatx=2.0,y;if(0.0x)y=0.0;elseif(10.0x)y=1.0/x;elsey=1.0;printf(%f\n,y);}该程序的输出结果是A.0.000000B.0.250000C.0.500000D.1.00000015,假定a和b为int型变量,则执