C语言程序设计习题集_第1页
C语言程序设计习题集_第2页
C语言程序设计习题集_第3页
C语言程序设计习题集_第4页
C语言程序设计习题集_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基础知识一单项选择题(每题2分,共44分)1以下表达正确的选项是___。AC程序基本构成单位是语句BC程序每一行只好写一个语句C简单C语句一定以分号作为结束符D说明语句能够嵌套一个C语言程序是从___开始履行的。A程序中第一个函数B名为main的函数C包括文件(头文件)的第一个函数D程序中的第一个语句3请选出合法的C语言赋值语句___。Aa=b=58Bi++;Ca=58,b=58Dk=int(a+b);4下边表记符中,合法的用户表记符是___。A1abcBincludeCa-b-c123Dchar5以下所列的C语言整形常量中,正确的选项是___。A0x10B0976C076LD01ff6C语言中以下运算符的操作数一定为整型的是___。A%B++C/D=7设a和b均为int型变量,则履行以下语句后的输出为___。inta=20;intb=3;printf("%d\n",a+=(b%=2));A20B21C0D238已知inti;,则履行语句i=;后,i的值为___。A2B3CD不确立以下合法的字符常量为___。A'ab'B'\482'C'\'D'\xaf'10若y为int型变量,则履行以下语句后,y的值是___。y=8;y+=y-=y*y;A64B–56C–112D–48以下合法的浮点型常量是___。Ae-3B+C+2LDe+512设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知floata=2;intb=3;则履行以下语句输出为___。printf("%d",sizeof(a*b)+2/5);A4B8C6D713设int型占2个字节,且inti=-2;,则语句printf("%u",i);的输出结果为___。A0B-2C65534D65535若x、y、z均为整型常量,且a=100,则履行以下语句后的z值为___。x=a++;y=--a;z=x+y-a--;A100B400C200D30015如有以下定义和语句:intu=010,v=0x10,w=10,printf("%d,%d,%d\n",u,v,w);,则输出结果是___。A8,16,10B10,10,10C8,8,10D8,10,1016设x、y为int型变量,则履行以下语句后,y的值是___。x=5;y=x++*x++;y=--y*--y;A529B2401C1209D62517假定在程序中a,b,c均被定义成整型,而且已赋大于1的值,则以下能正确表示代数式abc1的表达式是____。A1/a*b*c

B1/(a*b*c)

C1/a/b/(float)cDa/b/c18如有定义:inta=8,b=5,c;chard='A';

,则履行语句

c=a/b+d%a+;后c的值为___。A2

BC3

D

种类不一致,没法计算,编译犯错在有以下程序:main( ){inti=10,j=1;i=i+j++;printf("%d,%d,%d\n",i++,++j,i);}履行后输出结果是___。A12,3,11B12,2,11C11,3,11D12,3,1220已知inti=65;,则putchar(i);printf("%d",i);printf("%c",i);的输出结果为___。AA,65,AB65,65,ACA,A,65DA,A,A21已知inty,a,i=1;,则语句printf("%d,%d",-i++,(y=a=*3));的输出结果为___。A-1,10B-2,C0,3D1,18有以下程序:main( ){chara,b,c,d;a='\';b='\xbc';c='\0xab';d='\023';printf("%c%c%c%c\n",a,b,c,d);}编译时出现错误,以下表达中正确的选项是___。A程序中只有a='\';语句不正确Bb='\xbc';Cd='\023';语句不正确Da='\';

语句不正确和c='\0xab';

语句都不正确二填空题(第1题2分,其余每题3分,共56分)1设x为int型变量,请写出描绘“x是偶数”的表达式是___。2已知scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若从键盘输入2、3、4三个数分别作为变量a、b、c的值则正确的输入形式是___。3设有语句inta=3;,则履行了语句a+=a-=a*a后,变量a的值是___。以下程序的输出结果是___。main( ){inta=-10,b=-3;printf("%d\n",-a++);printf("%d\n",-a+b);}以下程序的输出结果是___。main( ){charc;c=0362;printf("%d\n",c);}6以下程序段(n所赋的是八进制数)履行后输出结果是___。intm=32767,n=032767;printf("%d,%o\n",m,n);7字符串"\\name\\\101ddress\b\xaf"的长度为:___。有以下程序段:intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是___。以下程序的输出结果是___。main( ){printf("%d,%o,%x\n",10,10,10);printf("%d,%d,%d\n",10,010,0x10);printf("%d,%x\n",012,012);}10设a、b、c为整形变量,且a=2、b=3、c=4,则履行完语句a*=16+(b++)-(++c);以后,变量a的值为___。以下程序的输出结果为___。main( ){intx=023;printf("%x\n",--x);}以下程序的结果为___。main( ){inta=2,b=3,c,d;c=(a++)+(a++)+(a++);d=(++b)+(++b)+(++b);printf("a=%dc=%d\n",a,c);printf("b=%dd=%d\n",a,d);}以下程序main( ){charch1,ch2,ch3;scanf("%c%c%c",&ch1,&ch2,&ch3);printf("%c%c%c%c%c",ch1,'#',ch2,'#',ch3);}当输入ABC时运转结果为【1】,当输入ABC时运转结果为【2】。14如有定义:floatx;,以下程序段的输出结果是___。x=;printf("%f\n",(int)(x*1000+/(float)1000);以下程序的功能是:输入一个小写字母,输出对应的大写字母,将程序增补完好。main( ){charch;【1】

/*

从键盘输入一个小写字母

*/【2】

/*

将该字母变换为大写字母

*/【3】/*输出变换后的结果*/}16当运转以下程序时,在键盘上从第一列开始输入10↙(此处↙代表回车),则程序的输出结果是___。main( ){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}以下程序的运转结果是___。main( ){printf("%\n",;printf("%12f\n",;printf("%\n",12345);printf("%\n","abcdefghij");}18运转以下程序时,如从键盘上输入abcdefg↙,则输出结果是___。main( ){charch1,ch2,ch3;ch1=getchar( );ch2=getchar( );ch3=getchar( );putchar(ch1);putchar(ch2);putchar(ch3);putchar('\n');}19运转以下程序时,如从键盘上输入:

a=3,b=5↙35,↙abc↙后,结果是___。main( ){inta,b;floatx,y;charc1,c2;scanf("a=%d,b=%d",&a,&b);scanf("%f,%e",&x,&y);scanf("%c%c%c",&c1,&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);}次序、选择构造程序设计一单项选择题(每题2分,共40分)以下程序运转后的输出结果是___。main( ){inta=0,b=0;a=10;b=20;printf("a+b=%d\n",a+b);}Aa+b=10Ba+b=30C30D犯错以下程序运转后的输出结果是___。main( ){doubled=;intx,y;x=;y=(x+/;printf("%d\n",d*y);}A3BC0D以下程序运转后的输出结果是___。main( ){doubled;floatf;longl;inti;i=f=l=d=20/3;printf("%d%ld%.1f%.1f\n",i,l,f,d);}A66

B66

C66

D66以下程序运转后的输出结果是___。main( ){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf("%d,%d\n",a,b);}A1,2B1,1C2,2D2,1以下程序运转后的输出结果是___。main( ){intx,y,z;x=y=2;z=3;y=x++-1;printf("%d%d",x,y);y=++x-1;printf("%d%d\n",x,y);y=z---1;printf("%d%d",z,x);y=--z-1;printf("%d%d\n",z,x);}A3143B3133C3143D21322414242224121312以下程序运转后的输出结果是___。main( ){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}A2,3,3B2,3,2C2,3,1D2,2,1以下程序运转后的输出结果是___。main( ){intx=4,y=7;x-=y;y+=x;printf("%d%d\n",x,y);}A47B-3-3C-311D-34以下程序运转后的输出结果是___。main( ){unsignedshorta=65536;intb;printf("%d\n",b=a);}A65536B0C1D-1以下程序:#include<>main( ){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar( );c6=getchar( );putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序运转后,若从键盘输入(从第1列开始)123<回车>45678<回车>则输出结果是___。A1267B1256C1278D124510设a、b和c都是int型变量,且a=3,b=0,c=5,则以下值为

0的表达式是___。A'a'&&'b'

Ba&&b||c

Ca&&b&&c

Da||b&&c11在嵌套使用if语句时,C语言规定else老是___。A和以前与其拥有相同缩进地点的if配对B和以前与其近来的if配对C和以前与其近来不带else的if配对D和以前的第一个if配对12若要求在

if

后一对圆括号中表示

a不等于

0的关系,则能正确表示这一关系的表达式为___。Aa<>0

B!a

Ca=0

Da以下程序运转后的输出结果是___。main( ){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);}A0

B1

C2

D314若k是int型变量,下边的程序段的输出结果是k=-3;if(k<=0)printf("####")elseprintf("&&&&");A####B&&&&C####&&&&D

。有语法错误,无输出以下程序运转后的输出结果是___。main( ){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d\n",a,b,c,d);}A0,1,2,0B0,0,0,3C1,1,2,0D编译有错以下程序运转后的输出结果是___。main( ){intx1=1,x2=0,x3=0;if(x1=x2+x3)printf("****");elseprintf("####");}A****B有语法错误C####D无输出结果17当a=1,b=3,c=5,d=4时,履行下边一行程序后,x的值是___。if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;A1B2C3D6以下表达中正确的选项是___。Abreak语句只好用于switch语句B在switch语句中一定使用defaultCbreak语句一定与switch语句中的case配对使用D在switch语句中不必定使用break语句19如有定义:floatx=;inta=1,b=3,c=2;则正确的switch语句是___。Aswitch(x)Bswitch((int)x);{case:printf("*\n");{case1:printf("*\n");case:printf("**\n");}case2:printf("**\n");}Cswitch(a+b)Dswitch(a+b){case1:printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");}以下程序运转后的输出结果是___。#include<>main( ){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=2二填空题(每题3分,共30分)以下程序运转后的输出结果是___。#include<>main( ){inti=010,j=10;printf("%d,%d\n",++i,j--);}以下程序运转后的输出结果是___。#include<>main( ){printf("%d%d%d\n",'\0','\0','\0');}以下程序运转后的输出结果是___。main( ){inti=5,j,k;j=i+++i+++i++;k=(++i)+(++i)+(++i);printf("i=%5dj=%5d\nk=%5d\n",i,j,k);}4下边的程序运转时从键盘上输入10<回车>,程序的输出结果是___。main( ){inta;floatb,c;scanf("%2d%2f%2f",&a,&b,&c);printf("a=%d,b=%.1f,c=%.0f",a,b,c);}下边程序的输出结果是___。main( ){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}6履行下边的语句:printf("%d\n",(a=3*5,a*4,a+5));,输出是___。以下程序运转后的输出结果是___。main( ){intx=10;printf("%d,%d\n",--x,--x);}为表示关系x≥y≥z,应使用C语言表达式___。下边的程序段的输出结果是___。intx=3;if((x%2)?printf("**%d",x):printf("##%d\n",x));以下程序运转后的输出结果是___。main( ){intm=5;switch(m/2){case1:m++;case2:m+=3;case5:m+=6;break;default:m-=7;}printf("%d\n",m);}三程序填空(每空5分,共30分)以下程序的输出结果是,请填空。main( ){inta=9,b=2;floatx=【1】,y=,z;z=a/2+b*x/y+1/2;printf("%\n",z);}2达成以下程序,输入变量a,b,c的值,判断a,b,c可否构成三角形,计算三角形面积。(公式为:sp(pa)(pb)(pc)此中pabc。#include<>2【2】;main( ){inta,b,c;【3】printf("pleaseinputthevalueofa,b,c")scanf("%d%d%d",【4】);if(【5】){【6】s=sqrt(p*(p-a)*(p-b)*(p-c));printf("Yes,thisisatriangle!\ntheareais%.2f.\n",s);}elseprintf("No,thisisnotatriangle!\n")}循环构造程序设计一单项选择题(每题2分,共40分)1以下程序中,while循环的循环次数是___。main( ){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}A1B10C6D死循环以下程序的履行结果是___。main( ){intn=9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是A987B876C8765D98763以下程序段,while循环履行的次数是___。intk=0;while(k=1)k++;A无穷次

B

有语法错

C

一次也不履行

D履行1次以下表达正确的选项是___。Ado-while语句构成的循环不可以用其余语句构成的循环来取代Bdo-while语句构成的循环只好用break语句退出C用do-while语句构成的循环,在while后的表达式为非零时结束循环D用do-while语句构成的循环,在while后的表达式为零时结束循环以下程序的履行结果是___。main( ){inta,y;a=10;y=0;do{a+=2;y+=a;printf("a=%dy=%d\n",a,y);if(y>20)break;}while(a=14);}Aa=12y=12a=14y=16

Ba=12y=12a=16y=28a=16y=20a=18y=24Ca=12y=12

Da=12y=12a=14y=26a=14y=44以下程序的履行结果是___。main( ){intx=23;do{printf("%d",x--);}while(!x);}A321B23C不输出任何内容D堕入死循环有以下程序段,输出结果是___。intx=3;do{printf("%d",x-=2);}while(!(--x));A1B30C1-2D死循环以下程序的输出结果是___。main( ){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}A31B13C10D20以下程序的输出结果是___。main( ){inti=0,a=0;while(i<20){for(;;)if((i%10)==0)break;elsei--;i+=11;a+=i;}printf("%d\n",a);}A21B32C33D11以下循环体的履行次数是___。main( ){inti,j;}A3

for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);B2C1D0以下程序的输出结果是___。main( ){inti,j,m=0,n=0;for(i=0;<2;i++)for(j=0;j<2;j++)if(j>=i)m=1;n++;printf("%d\n",n);}A4B2C1D0以下程序的输出结果是___。main( ){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}A6B3C死循环D013以下程序履行后sum的值是___。main( ){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}A15B14C不确立D0以下程序履行后的输出结果是___。main( ){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}An=5

Bn=2

Cn=3

Dn=415以下语句中,能正确输出26个英文字母的是___。Afor(a='a';a<='z';printf("%c",++a));Bfor(a='a';a<='z';)printf("%c",a);Cfor(a='a';a<='z';printf("%c",a++));Dfor(a='a';a<='z';printf("%c",a));以下程序履行后的输出结果是___。main( ){intx=1,y=1;while(y<=5){if(x>=10)break;if(x%2==0){x+=5;continue;}x-=3;y++;}printf("%d,%d",x,y);}A6,6B7,6C10,3D7,3以下程序履行后的输出结果是___。main( ){inta=5;while(!(a-->5)){switch(a){case1:a++;case4:a+=4;case5:a+=5;break;default:a-=5;}}printf("%d\n",a);}A12B7C5D1318对于下边的for循环语句,能够判定它履行___次循环。for(x=0,y=0;(y!=67)&&(x<5);x++)printf("----");A无穷B不定C5次D4次19在履行以下程序时,假如从键盘上输入:ABCdef,则输出结果为___。#include""main( ){charch;while((ch=getchar( ))!='\n'){if(ch>='A'&&ch<='Z')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}AABCdef

BabcDEF

Cabc

DDEF当履行以下程序时,___。inta=1;do{a=a*a;}while(!a);A循环体将履行1次B循环体将履行2次C循环体将履行无穷次D系统将提示有语法错误二填空题(每空3分,共33分)1若输入字符串:abcde<回车>,则以下while循环体将履行___次。while((ch=getchar( ))=='e')printf("*");2以下while循环履行的次数是___。k=0;while(k=10)k=k+1;以下程序的输出结果是___。main( ){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}4下边程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。main( ){inta,b,c,i;a=c=0;for(i=0;i<=10;i+=2){a+=i;_【1】;c+=b;}printf("偶数之和=%d\n奇数之和=%d\n",a,【2】);}5下边程序的功能是:输出100之内能被3整除且个位数为6的所有整数,请填空。main( ){inti,j;for(i=0;_【1】;i++){j=i*10+6;if(_【2】)continue;printf("%d\n",j);}}以下程序的输出结果是___。main( ){ints,i;for(s=0,i=1;i<3;i++,s+=i);printf("%d\n",s);}7要使以下程序段输出10个整数,请填入一个整数。for(i=0;i<=___;printf("%d\n",i+=2));程序的功能是依据以下近似公式求π值:211112233nn6请填空达成求π的功能。#include""main( ){intn=30000;doubles=;longi;for(i=1;i<=n;i++)s=s+_【1】;printf("pi=%f\n",_【2】);}三程序填空题(每空3分,共27分)1以下程序是求111的值。12450#include""main( ){inti=2;floatsum=1;;while(【1】){sum=sum+i;【2】;}printf("sum=%f\n",【3】);}以下程序的功能是从键盘输入若干个学生的成绩,统计最高成绩和最低成绩,当输入为负数时,结束输入。main( ){floatx,max,min;scanf("%f",&x);max=min=【1】;do{if(x>max)max=x;if(x<min)

【2】

;scanf("%f",&x);}while(

【3】

);printf("%f,%f",max,min);}3下边的程序用来求出所有的水仙花数。所谓水仙花数是指一个

3位数,它的各位数字的立方和恰巧等于它自己。main( ){intn,i,j,k;for(n=100;

【1】

)

/*

判断3位数

n是不是水仙花数

*/{i=n/100;

/*i

是n的百位上的数字

*/j=

【2】

;

/*j

是n的十位上的数字

*/k=n%10;

/*k

是n的个位上的数字

*/if(

【3】

)printf("%d\n",n);}}数组一单项选择题(每题2分,共40分)1以下对一维整型数组a的正确立义(说明)的是___。Ainta(10);

B

)intn=10,a[n];Cintn;

D#defineSIZE10scanf("%d",&n);inta[SIZE];inta[n];2如有定义(说明)

inta[10];

,则对数组

a的元素正确引用的是___。Aa[10]

Ba[]

Ca(5)

Da[10-10]3履行下边程序段后,变量k的值是___。intk=3,s[2];s[0]=k;k=s[1]*10;A不定值B33C30D10以下程序的输出结果是___。main( ){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}A20B21C22D235以下对一维整型数组a初始化的语句中正确的选项是___。Ainta[10]=(0,0,0,0,0);

Binta[10]=( );Cintx=2,a[10]={10*x};

Dinta[10]={0};6如有以下说明,则数值为

4的表达式是___。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;Aa[g-c]Ba[4]Ca['d'-'c']Da['d'-c]以下程序运转后的输出结果是___。#defineMAX10voidmain( ){inti,sum,a[]={1,2,3,4,5,6,7,8,9,10};sum=1;for(i=0;i<MAX;i++)sum-=a[i];printf("sum=%d\n",sum);}Asum=55

Bsum=-54

Csum=-55

Dsum=54以下程序的输出结果是___。main( ){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>0;j--)printf("%d",a[j]);}A1000B1001C1010D11009以下对二维数组a的正确立义(说明)的是___。Ainta[3][];Bfloata(3,4);Cdoublea[1][4];Dfloata(3)(4);10如有定义(说明)inta[3][4];,则对数组a的元素的引用非法的是___。Aa[2][2*1]Ba[1][3]Ca[4-2][0]Da[0][4]11以下不可以对二维数组a进行正确初始化的语句是___。Ainta[2][3]={0};Binta[][3]={{1,2},{0}};Cinta[2][3]={{1,2},{3,4},{5,6}};Dinta[][3]={1,2,3,4,5,6};以下数组定义语句中,正确的选项是___。Achara[][]={'a','b','c','d','e','f'};

Bchara[2][3]='a','b';Cchara[][3]={'a','b','c','d','e','f'};

Dchara[][]={{'a','b','c','d','e','f'}};以下程序运转后的输出结果是___。main( ){inta[4][4],i,j,k;for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=i-j;for(i=1;i<4;i++)for(j=i+1;j<4;j++){k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}for(i=0;i<4;i++){printf("\n");for(j=0;j<4;j++)printf("%4d",a[i][j]);}}A0-1-2-3B012310-1-2-1012210-1-2-1013210-3-2-10C0-1-2-3D01231012-10-1-22-101-210-23-2-10-3210以下程序的输出结果是___。main( ){inti,a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);}A0650B1470C5430D输出值不定有以下程序:main( ){intx[3][2]={0},i;for(i=0;i<3;i++)scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若运转时输入:246<回车>,则输出结果是___。A200B204C240D246以下描绘不正确的选项是___。字符型数组中能够寄存字符串能够对字符型数组进行整体输入和输出能够对整型数组进行整体输入和输出不可以在赋值语句中经过赋值运算符“=”对字符型数组进行整体赋值对于以下定义,表达正确的选项是___。charx[]="abcdef";charx[]={'a','b''c','d','e','f'};A数组

x和数组

y等价

B

数组

x和数组

y的长度相等C数组

x的长度大于数组

y的长度

D

数组

x的长度小于数组

y的长度以下选项中,不可以正确赋值的是___。Achars1[10];s1="Ctest";Cchars3[20]="Ctest";

Bchars2[]={'C','t','e','s','t'};Dchars4[30];strcpy(s4,"Ctest");19如有定义和语句:

chars=[10];s="abcd";printf("%s\n",s);

,则输出结果是___。(以下□表示空格)Aabcd

Ba

Cabcd

□□□□□D编译不经过20当履行下边程序时,假如输入ABC,则输出结果是___。#include<>#include<>main( ){charss[10]="12345";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}AABC6789

BABC67

C12345ABC6

DABC45678二填空题(每空3分,共24分)1若int种类变量占两个字节,定义intx[10]={0,2,4};,则数组x在内存中所占的字节数是___。2如有定义chara[]="\\141\141abc\t";,则数组a在内存中所占的字节数是___。以下程序的输出结果是___。main( ){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d\n",a[2],a[5],a[8]);}以下程序运转的结果是___。main( ){charch[7]="65ab21";inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);}5有定义语句:chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现字符串复制。(注意:不得使用逗号表达式)while(s[i]){d[j]=___;j++;}d[j]=0;下边程序运转的结果是___。main( ){chars[]="abcdef";s[3]='\0';printf("%s\n",s);}以下程序的输出结果是___。main( ){charch[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",ch[1]);}以下程序的输出结果是___。main( ){charch[]="abc",x[3][4];inti;for(i=0;i<3;i++)strcpy(x[i],ch);for(i=0;i<3;i++)printf("%s",&x[i][i]);printf("\n");}三程序填空题(每空3分,共36分)1以下程序的功能是:从键盘上输入若干个学生的成绩(用输入负数结束输入),统计出均匀成绩,并输出低于均匀分的学生成绩。请填空。#include""main( ){intn=0,i;floatx[1000],sum=,ave,a;printf("Entermark:\n");scanf("%f",&a);while(a>=&&n<1000){sum+=【1】;x[n]=【2】;n++;scanf("%f",&a);}ave=【3】;print("Output:\n");printf("ave=%f\n",ave);for(i=0;i<n;i++)if(【4】)printf("%f\n",x[i]);}2以下程序的功能是求出矩阵x的上三角元素之积。此中矩阵x的队列数和元素的值均由键盘输入。请填空。#defineM10main( ){intx[M][M];intn,i,j;longs=1;printf("Enterainteger(<=10):\n");scanf("%d",&n);printf("Enter%ddataoneachlineforthearrayx\n",n);for(【1】)for(j=0;j<n;j++)scanf("%d",&x[i][j]);for(i=0;i<n;i++)for(

【2】

)

【3】

;printf("%ld",s);}3以下程序,数组

a中寄存一个递加数列。输入一个整数,并将它插入到数组

a中,使之仍为一个递加数列。请填空。main( ){inta[【1】]={1,10,20,30,40,50,60,70,80,90},x,i,p;scanf("%d",&x);for(i=0,p=10;i<10;i++)if(x<a[i]){p=i;

【2】

;}for(i=9;i>=p;i--)a[i+1]=a[i];【3】;for(i=0;i<=10;i++)printf("%5d\n",a[i]);printf("\n");}4

以下程序的功能是:将t数组的内容连结到s数组内容的后边,使main( ){staticchars[30]="abcdefg",t[]="abcd";inti=0,j=0;

s数组保留连结后的新字符串。while(s[i]!='\0')【1】while(t[j]!='\0'){s[i+j]=t[j];j++;}

;【2】

;printf("%s\n",s);}函数一单项选择题(每题2分,共40分)以下正确的函数定义是___。Adoublefun(intx,inty){z=x+y;returnz;}Cfun(x,y){intx,y;doublez;z=x+y;returnz;}

Bdoublefun(intx,y){intz;returnz;}Ddoublefun(intx,inty){doublez;returnz;}以下正确的说法是___。实参和与其对应的形参各占用独立的储存单元实参和与其对应的形参共占用一个储存单元有当实参和与其对应的形参同名时才共占用相同的储存单元形参是虚假的,不占用储存单元3若调用一个函数,且此函数中没有return语句,则正确的说法是___。A该函数没有返回值B该函数返回若干个系统默认值C能返回一个用户所希望的函数值D返回一个不确立的值4以下正确的描绘是___。函数的定义能够嵌套,但函数的调用不可以够嵌套函数的定义不可以够嵌套,但函数的调用能够嵌套函数的定义和函数的调用均不可以够嵌套函数的定义和函数的调用均能够嵌套若用数组名作为函数调用的实参,传达给形参的是___。A数组的首地点

B

数组中第一个元素的值C数组中的所有元素的值

D

数组元素的个数以下不正确的说法是___。在不一样函数中能够使用相同名字的变量形式参数是局部变量在函数内定义的变量只在本函数范围内有定义在函数内的复合语句中定义的变量在本函数范围内有定义7已知一个函数的定义以下:doublefun(intx,doubley){

}则该函数正确的函数原型申明为___。Adoublefun(intx,doubley)

Bfun(intx,doubley)Cdoublefun(int,double);

Dfun(x,y);对于函数申明,以下不正确的说法是___。假如函数定义出此刻函数调用以前,能够不用加函数原型申明假如在所有函数定义以前,在函数外面已做了申明,则各个主调函数不用再做函数原型申明函数在调用以前,必定要申明函数原型,保证编译系统进行全面的调用检查标准库不需要函数原型申明调用函数的实参加被调用函数的形参应有以下关系___。A只需务实参加形参个数相等

B

只需务实参加形参次序相同C只需务实参加形参数据种类相同

D

上述三点均需具备凡在函数中未指定储存类其余变量,其隐含的储存类型是___。A自动B静态C外面D寄存器在源程序的一个文件中定义的全局变量的作用域是___。A在本文件的所有范围

B

该程序的所有范围C一个函数的范围

D

从定义该变量的地点开始至该文件的结束以下程序运转后的输出的数据是___。intsum(intn){intp=1,s=0,i;for(i=1;i<=n;i++)s+=(p*=i);returns;}main( ){printf("sum(5)=%d\n",sum(5));}Asum(5)=151Bsum(5)=152Csum(5)=153Dsum(5)=155以下程序运转后的输出结果是___。intc=1;main( ){staticinta=5;intb=6;printf("a=%d,b=%d,c=%d\n",a,b,c);func( );printf("a=%d,b=%d,c=%d\n",a,b,c);func( );}func( ){staticinta=4;intb=10;a+=2;c+=10;b+=c;printf("a=%d,b=%d,c=%d\n",a,b,c);}Aa=5,b=6,c=1a=6,b=21,c=11a=5,b=6,c=11a=8,b=31,c=21

Ba=5,b=6,c=11a=5,b=21,c=11a=5,b=6,c=11a=8,b=31,c=21

Ca=5,b=6,c=1a=5,b=21,c=11a=5,b=6,c=11a=8,b=31,c=21

Da=5,b=6,c=1a=6,b=21,c=11a=5,b=6,c=11a=5,b=31,c=2114运转下边的程序后,其输出结果是___。main( ){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}intf(intx){inty;y=x++*x++;returny;}A9B6C36D18以下程序输出结果是___。#include<>my( ){staticintx=3;x++;return(x);}main( ){inti,x;for(i=0;i<=2;i++)x=my( );printf("%d\n",x);}A3B4C5D6以下程序的输出结果是___。#include<>intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w;}returnu;}main( ){inta=24,b=16,c;c=abc(a,b);printf("%d\n",c);}A8B6C5D4以下程序运转后的输出结果是___。main( ){staticchars[]="abcdefgca";p(s);printf("s[]=%s\n",s);}p(chars[]){inti,j;for(i=j=0;s[i]!='\0';i++)if(s[i]!='a'+2)s[j++]=s[i];s[j]='\0';}As[]=abcdefgca

Bs[]=abdefga

Cs[]=bcdefgc

D

程序有错以下程序运转后的输出结果是___。voidmain( ){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);k=fun(m,n);printf("%d\n",k);}intfun(intx,inty){staticintn=3,i=2;i+=n+1;n=i+x+y;return(n);}A12B12C12D1212232516以下程序运转后的输出结果是___。intx=1;main( ){inti=5;fun(i);printf("%d,%d\n",i,x);}fun(m)intm;{m+=x;x+=m;{charx='A';printf("%d\n",x);}printf("%d,%d\n",m,x);}A65BACAD656,16,16,76,76,16,16,75,720以下程序运转后,若从键盘输入ABC!四个字符后,程序输出是___。#include<>main( ){voidreceiv( );receiv( );}voidreceiv( ){charc;c=getchar( );putchar(c);if(c!='!')receiv( );putchar(c);}AABC!!

BABC!ABC!

CABC!!CBA

DABCABC二填空题(每空3分,共30分)1函数调用语句:fun((a,b),(c,d,e));,实参个数为___。凡在函数中未指定储存类其余局部变量,其默认的储存类型为___。在一个C程序中,若要定义一个只同意根源程序言件中所有函数使用的全局变量,则该变量需要定义的储存类型为___。4C语言规定,调用一个函数时,实参变量和形参变量之间的数据传达方式是___。运转下边程序,其输出结果是___。#include<>intx,y;one( ){inta,b;a=25,b=10;x=a-b;y=a+b;}main( ){inta,b;a=9,b=5;x=a+b;y=a-b;one( );printf("%d,%d\n",x,y):}运转下边程序,其输出结果是___。#include<>main( ){voidprintd( )intn=123;printd(n);}voidprintd(intn){inti;if(n<0){n=-n;putchar('-');}putchar(n%10+'0');if((i=n/10)!=0)printd(i);}7运转下边程序,从键盘输入四个字符xyz#,其输出是___。#include<>main( ){voidrecursion( );recursion( );}voidrecursion( ){charc;c=getchar( );putchar(c);if(c!='#')recursion( );putchar(c);}以下程序的输出结果是___。#include<>voidfun(intx){if(x/2>0)fun(x/2);printf("%d",x);}main( ){fun(3);printf("\n");}以下程序运转结果是___。inta=1;intf(intc){staticinta=2;c=c+1;return(a++)+c;}main( ){inti,k=0;for(i=0;i<2;i++){inta=3;k+=f(a);}k+=a;printf("%d\n",k);}10.以下程序的运转结果是___。intk=0;voidfun(intm){m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}main( ){inti=4;fun(i++);printf("i=%dk=%d\n",i,k);}三程序填空题(每空3分,共30分)1一个整数称为完好平方数,是指它的值是另一个整数的平方。比方81是个完好平方数,由于它是9的平方。以下程序是在三位的正整数中找寻符合以下条件的整数:它既是完好平方数,且三位数字中又有两位数字相同:比方144(12*12)、67626*26)等,程序找出并输出所有满足上述条件的三全数。程序以下:main( ){intn,k,a,b,c;for(k=1;;k++){【1】if(n<100)【2】;if(n>999)【3】;a=n/100;b=【4】;c=n%10;if(flag(a,b,c))printf("n=%d=%d*%d\n",n,k,k);}}flag【5】{return(!((x-y)*(x-z)*(y-z)));}2以下程序的功能是应用近似公式计算ex的值。此中,函数f1计算每项分子的值,函数f2计算每项分母的值。共取nmax项之和作为e的近似值。ex1xx2x3xnxmax12!3!n!(max1)2!floatf2(intn){if(n==1)return1;elsereturn【6】;}floatf1(floatx,intn){inti;floatj=for(i=1;【8】returnj;}

【7】;i++)j=j*x;

;#definenmax20main( ){floatx,exp=;intn;printf("Inputxvalue:");scanf("%f",&x);for(n=1;n<nmax;n++)exp=

【9】

;printf("x=%f,exp(x)=%f\n",x,

【10】

_);}指针一单项选择题(每题2分,共40分)以下表达中错误的选项是___。A在程序中凡是以“#”开始的语句行都是预办理命令行预办理命令行的最后不可以以分号表示结束#defineMAX是合法的宏定义命令行C程序对预办理命令行的办理是在程序履行的过程中进行的2若程序中有宏定义行:#defineN100,则以下表达中正确的选项是___。A宏定义行中定义了表记符

N的值为整数

100B在编译程序对

C源程序进行预办理时用

100替代表记符

NC对C源程序进行编译时用

100替代表记符

ND在运转时用100替代表记符如有以下宏定义:#defineN2#definey(n)((N+1)*n)则履行以下语句:z=4*(N+y(5));后的结果是___。A语句有错误Bz值为68Cz值为60Dz值为180以下程序运转后的输出结果是___。#defineF(X,Y)(X)*(Y)main( ){inta=3,b=4;printf("%d\n",F(a++,b++));}A12B15C16D20以下程序运转后的输出结果是___。#definef(x)(x*x)main( ){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}A64,28

B4,4

C4,3

D64,646若已定义

a为

int

型变量,则___是对指针变量

p的正确说明和初始化。Aintp=&a;

Bint*p=a;

Cint*p=*a;

Dint*p=&a;已知以下说明语句:staticinta[]={2,4,6,8}staticint*p[]={a,a+1,a+2,a+3};int**q;q=p;则表达式**(q+2)的值是___。A6B2C4D88下边是一个初始化指针的语句:int*px=&a;,此中指针变量的名字应当___。A*pxBaCpxD&a9若指针px为空指针,则___。。Apx指向不定Bpx的值为零Cpx的目标为零Dpx的地点为零10对下语句int*px[10];,下边正确的说法是___。Apx是一个指针,指向一个数组,数组的元素是整数型。Bpx是一个数组,其数组的每一个元素是指向整数的指针。CA和B均错,但它是C语言的正确语句。C语言不一样意这样的语句。11拥有相同基种类的指针变量p和数组y,以下写法中不合法的是___。Ap=yB*p=y[i]Cp=&y[i]Dp=&y12已知staticinta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;,则表达式*(p[0]+1)+**(q+2)的值是___。A5B4C6D713说明语句int*(*p)( );的含义为___。Ap是一个指向int型数组的指针Bp是指针变量,它构成了指针数组Cp是一个指向函数的指针,该函数的返回值是一个整型Dp是一个指向函数的指针,该函数的返回值是一个指向整型的指针设有以下程序段chars[20]="Beijing",*p;p=s;则履行p=s;语句后,以下表达正确的选项是___。A能够用*p表示s[0]Bs数组中元素个数和p所指字符串长度相等Cs

和p都是指针变量D数组

s中的内容和指针变量

p中的内容相同15设

int

型变量

i、n均已定义,指针变量

s1、s2各指向一个字符串。在

for(i=0;i<n;i++)

循环中,以下语句用以实现将

s2所指字符串中前

n个字符复制到

s1

所指字符串中,此中代码正确的选项是___。A*s1++=*s2++;

Bs1[n-1]=s2[n-1];C*(s1+n-1)=*(s2+n-1);

D*(++s1)=*(++s2);给出以下程序的运转结果___。#include<>voidmain( ){staticchara[]="language",b[]="program";char*ptr1=a,*ptr2=b;intk;for(k=0;k<7;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}Agae

Bga

Clanguage

D

有语法错误以下程序履行后的输出结果是___。voidfun1(char*p){char*q;q=p;while(*q!='\0'){(*q)++;q++;}}main( ){chara[]={"Program"},*p;p=&a[3];fun1(p);printf("%s\n",a);}AProhsbn

BPrphsbn

CProgsbn

DProgram以下程序履行后的输出结果是___。voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main( ){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}A123,abc

Babc,123

C1bc,a23

D321,cba以下程序履行后的输出结果是___。main( ){char*p[]={"3697","2584"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}}printf("%d\n",num);}A35B37C39D3975以下程序运转后的输出结果是___。voidmain( ){charstr[]="The_Microsoft";intn=4;sub(str,0,n-1);sub(str,0,strlen(str)-1);printf("%s\n",str);}sub(str,n1,n2)char*str;intn1,n2;{charc,*p;p=str+n2;str=str+n1;while(str<p){c=*str;*str=*p;*p=c;str++;p--;}}AtfosorciMThe_B.ehT_MicrosoftCtfosorciM_ehTD.Microsoft_The二填空题(每空3分,共30分)1以下程序的定义语句中,x[1]的初值是①,程序运转后输出的内容是②。main( ){intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+1];printf("%d",p[i][0]);}printf("\n");}2以下程序的输出结果是③。voidswap(int*a,int*b){int*t;t=a;a=b;b=t;}main( ){inti=2,j=5,*p=&i,*q=&j;swap(p,q);printf("%d%d\n",*p,*q)}3以下程序的输出结果是④。main( ){inta[5]={2,4,6,8,10},*p;p=a;p++;printf("%d",*p);}4以下程序的输出结果是__⑤__。#defineM5#defineNM+Mmain( ){intk;k=N*N*5;printf("%d\n",k);}5如有定义语句:inta[4]={0,1,2,3},*p;p=&a[1];则++(*p)的值是⑥。6如有定义:inta[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是⑦,*(a[1]+2)的值是⑧。7如有程序段:int*p[3],a[6],i;for(i=0;i<3;i++)p[i]=&a[2*i];则*p[0]引用的是a数组元素⑨,*(p[1]+1)引用的是a数组元素⑩。三程序填空题(每空3分,共30分)下边函数的功能是从输入的十个字符串中找出最长的那个串,请填空使程序完好。voidfun(charstr[10][81],char**sp){inti;*sp=【1】;for(i=1;i<10;i++)if(strlen(*sp)<strlen(str[i]))

【2】

;}2下边函数的功能是将一个整数字符串变换为一个整数,比方:

"1234"变换为

1234,请填空使程序完好。intchnum(char*p){intnum=0,k,len,j;len=strlen(p);for(;【3】;p++){k=【4】;j=(--len);while(【5】)k=k*10;num=num+k;}return(num);}3下边函数的功能使统计子串substr在母串str中出现的次数,请填空使程序完好。intcount(char*str,char*substr){inti,j,k,num=0;for(i=0;【6】;i++)for(【7】,k=0;substr[k]==str[j];k++,j++)if(substr[【8】]==’\0’){num++;break;}return(num);}4下边函数的功能是用递归法将一个整数寄存到一个字符数组中,寄存时按逆序寄存,如483寄存成“384”,请填空使程序完整。voidconvert(char*a,intn){inti;if((i=n/10)!=0)convert(【9】,i);else*(a+1)=0;*a=【10】;}构造体文件单项选择题(1~8题每题5分,9~18题每题6分,共100分)1有以下说明语句,对构造变量中成员structstudent{intage;intsex;}stud1,*p;

age的正确引用是___。Ap->ageBC*Duniondata{intx;chary;floatz;}a;Adata和a均是共用体种类变量

说明语句以下,则正确的表达是___。Ba所占内存长度等于其成员

x、y、z各在内存所占长度之和C任何状况下,均不可以对a作整体赋值Da的地点和它的各成员地点都是同一地点共用体成员的数据种类___。A相同

B

能够不一样也能够相同C长度相同

是构造体变量由系统分派和控制的标准输出文件为___。A键盘

B

磁盘

C

打印机

D

显示器5以下对于

C语言数据文件的表达中正确的选项是

。AC语言只好读写文本文件BC语言只好读写二进制文件文件由字符序列构成,可按数据的寄存形式分为二进制文件和文本文件文件由二进制数据序列构成6若要用fopen函数建一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应当为___。A"ab+"B"wb+"C"rb+"D"ab"以下程序运转后的输出结果是___。structs{intn;char*c;}*p;chard[]={'a','b','c','d','e'};structsa[]={10,&d[0],20,&d[1],30,&d[2],40,&d[3],50,&d[4]};#include<>main( ){p=a;printf("%d\n",++p->n);printf("%d\n",(++p)->n);printf("%c\n",++(*p->c));}A11B11C10D1020202020cbcb8已知structstudent{char*name;intstudent_no;chargrade;};structstudenttemp,*p=&temp;="chou";则下边不正确的选项是___。表达式值Ap->namechouB(*p)->name+2hC*p->name+2eD*(p->name+2)o9下边程序运转后,其输出结果是___。#include<>structtree{intx;char*s;}t;func(structtreet){=10;="computer";return0;}main( ){=1;="minicomputer";func(t);printf("%d,%s\n",,;}A10,computerB1,minicomputerC1,computerD10,minicomputer以下程序的输出结果是___

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论