



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ー、单选题:1、以下说法中正确的是(C)A.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在mainO函数中定义C语言程序总是从main。函数开始执行C语言程序中的main。函数必须放在程序的开始部分2、C语言可执行程序的开始执行点是(c)A,程序中的一条可执行语句B.程序中第一个函数C.程序中的main函数D,包含文件中的第一个函数3、C程序是(B)A.顺序执行B.从Main函数开始C,从函数体开始D.任意语句4、C语言程序的基本单位是B_.A.语句B,函数C.程序行D.字符5、C语言程序由(C)组成A,子程序B1过程C.函数D.主程序段程序6、ー个C程序的执行是从(A)A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束7、以下叙述正确的是(0A,在C程序中,main函数必须位于程序的最前面C程序的每行中只能写一条语句C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误8、以下叙述不正确的是Dー个C源程序可由一个或多个函数组成一个C源程序必须包含ー个main函数C程序的基本组成单位是函数D,在C程序中,注释说明只能位于一条语句的后面9、C语言规定,在ー个源程序中,main函数的位置(C)A,必须在最开始B,必须在系统调用的库函数的后面C,可以任意D.必须在最后10、ー个C语言程序是由BA.ー个主程序和若干子程序组成B.函数组成C,若干过程组成D.若干子程序组成二、填空题:1,函数体用ー{—开始,用ー}_结束。2、C源程序的基本单位是ー函数3、ー个C源程序中至少应包括ー个MAIN函数4、在ー个C源程序中,注释部分两侧的分界符分别为ー/*和*/.三、程序设计题:(这两个程序设计题上课讲过我就不做了,自己写吧)1、编写ー个c程序,输出以下信息:Verygood!2、编写ー个程序,输入a,b,c三个值,输出其中最大者。第2章程序设计的灵魂ーー算法ー、单选题:1、将三个数排序需要比较_B次。234D.不确定2、算法的表示方法有一A.A,自然语言,传统流程图,N-S流程图,伪代码,计算机语言B,高级语言,汇编语言,机器语言C.C语言,QBASIC语言,InterDevD.图形图像法,描述法,编程法二、问答题:1、什么是结构化的算法?为什么要提倡结构化的算法?2、算法有哪些特性?3、什么叫算法?为什么要提倡结构化算法?第3章数据类型、运算符和表达式ー、单选题:1、设intb=2;表达式b/(b*2)的值是 A.00.50.5000000.0000002、设有如下定义:inta.=l,b=2,c=3,d~4,m=2,n~2;则执行表达式:(m=a<b)&&(n=c>d)后,m的值为ーA.12303、设有a=b=c=2,求表达式a+++b+++c++的结果是 A 〇698D,表达式出错4、表示关系X<=Y<:二Z的C语言表达式为ーA〇(X<=Y)&&(Y<=Z)(X<=Y)AND(Y<=Z)(X<=Y<=Z)(X<=Y)&(Y<=Z)5、选出运行结果为4的表达式(〇;inti=0,j=l;(i=3,(++j>+1))inti=0,j=l;(j==l)?(i=l):(i=3)inti=l,j=l;i+=j+=2;inti=l,j=0;j=i=((i=3)*2);6、表达式(a=3*5,a*5),a+5的值是多少(B)2080C,不能确定D.157、设有整型变量a,b,c,它们的初值是1运行表达式:++a||++b&++c后,a,b,c的值分别是: A〇(这个最好电脑上通过一下)2,1,12,2,11,2,11,1,28、下面的表达式中一A_满足:当x为偶数时值为“真”,为奇数时值为“假”x%2==0!x%2!=0C.2*x/2-x=0D.!(x%2)9、C语言的对语句中用作判断的表达式一般为_E_A,关系表达式B.逻辑表达式C.算术表达式D.逻辑表达式和关系表达式E,关系或逻辑表达式10、若已定义x和y为double型,则表达式:x=l,y=x+3/2的值是(D)122.02.511、若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为_D_.floatintchardouble12、以下定义和语句:charcl二'b',c2=4#39;e';printf(z,%d,%c\n”,c2—cl,c2-'破#39;+'A');则输出结果是:_B_.2,M3,E2,ED.输出项与对应的格式控制不一致,输出结果不确定13、语句:printf("%d\n",12&&12);的输出结果是B.12124014、设A=3,B=4,执行printf("%d,%d"(A,B),(B,A));的输出是 B .3,44,33,34,415、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是AA.200B.100C.200100D.输出格式符不够,输出不确定的值16、表达式:10!=9的值是—D_A.trueB,非零值0117、请读程序:main(){intA;floatB,C;scanf("%2d%3f%4f",&A,&B,&C);printf("\nA=%d,B=%f,C=%f\n"A,B,C);}若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是BA=98,B=765,C=4321A=10,B=765.000000,€=4321.000000A=98,B=765.0,C=4321.0D,以上答案都不正确18、执行程序段charstr[20]={'a','b','c',':\o'};intlen=strlen(str);变量len的值为(020433或4或2019、若x,i,j和k都是int型变量,则计算下面表达式后,x的值为Cx=(i=4,j=16.k=32)416325220、下列四组选项中,均不是C语言关键字的选项是AdefineIFtypegetccharprintfincludescanfcasewhilegopow21、下列四个选项中,均是C语言关键字的选项是Bautoenumincludeswitchtypedefcontinuesignedunionscanfifstructtype22、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符CA,必须为字母B,必须为下划线C,必须为字母或下划线D.可以是字母,数字和下划线中任一字符23、下面四个选项中,均是不合法的浮点数的选项是B160.0.12e31232e4.2.e518123e40.0-e3.234le324、已知各变量的类型说明如下:Aintk,a,b;unsignedlongw=5;doublex=l.42;则以下不符合c语言语法的表达式是x%(-3)w+=-2k=(a=2,b=3,a+b)a+=a-=(b=4)*(a=3)25、以下不正确的叙述是DA.在C程序中,逗号运算符的优先级最低B,在C程序中,APH和aph是两个不同的变量C,若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值26>若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A2.5000002.750000C.3.500000D.0.00000027、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为CintfloatdoubleD.不确定28、以下关于运算符优先顺序的描述中正确的是CA.关系运算符<:算术运算符<赋值运算符<逻辑运算符B.逻辑运算符<:关系运算符<:算术运算符<:赋值运算符C,赋值运算符<:逻辑运算符<:关系运算符<:算术运算符D.算术运算符<!关系运算符<:赋值运算符<逻辑运算符29、若有条件表达式(exp)?a++:b—,则以下表达式中能完全等价于表达式(exp)的是BA.(exp=0)C.(exp==l)D.(exp!=l)30、设intx=l,y=l:表达式(!x||y-)的值是B012-1二、填空题:1、字符串“Thisisastring"的存储形式为ー顺序存储ー2、写出下问表达式运算后a的值设原来a=12a+=a24a-=a0a/=a+a0TOC\o"1-5"\h\za+二a一=a*=a 03、求下面算术表达式的值x+a%3*(int)(x+y)%2/4 2.5设x=2.5,a=7,y=4.7(float)(a+b)/2+(int)x%(int)y 3.5设a=2,b=3,x=3.5,y=2.54、写出该程序运行的结果。^includevoidmain(){inti,j,k=10;i=(j=k)>0;j=i=j;printf(%2d,%2d\n,i,j); 10k=!i==++j;printf("%2d,%2d,%2d\n",i,j,k);} 110main(){charst='A';inti=10;st=st+i;i=st%i;printf("%C,%d\n",st,i);)己知字母A的ASCII码为65结果:—K,5—6、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为97、C语言中的标识符只能由三种字符组成,它们是一字母ー,ー数字一和一下画线8、己知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为ーf9、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为8.010、若有定义:inte=l,f=4,g=2;floatm=10.5,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt((double)n)*L2/g+m后k的值是—13.7 第4章顺序程序设计ー、单选题:1、输入一个华氏温度,要求输出摄氏温度。计算公式为:c=5/9(F-32),以下程序正确的是(B)main(){floatc,F;scanf("%f,%f",&c,&F);c=5/9*(F-32);printf("摄氏温度是:%f\n",c);}main() {float c,F; scanf("%f,%f",&c,&F); c=5*(F-32)/9;printf("摄氏温度是:%f\n",c);}main() {float c,F; scanf("%f,%f",&c,&F); c=5%9*(F-32);printf("摄氏温度是:%f\n",c);}main(){floatc,F;scanf("%f,%f",&c,&F);c=5.0/9.0(F-32);printf("摄氏温度是:%f\n",c);}2、以下程序的输出结果是Cmain(){inta=12,b=12;printf("%d%d\n",―a,++b);}10101212111311103、有如下程序mainOIinty=3,x=3,z=l;printf("%d%d\n",(++x,y++),z+2);I运行该程序的输出结果是D344243334、能正确表示逻辑关系:"a»=10或aWO"的C语言表达式是Da>=10orafelt;=0a>=0||a<=10a>=10&&a<=0a<=0a>=105、下列程序的输出结果是Cmain()doubled=3.2;intx,y;x=l.2;y=(x+3.8)/5.0;printf("%d\n"d*y);I33.203.07二、填空题:1、从键盘输入一个大写字母,要求改用小写字母输此程序如下办#includemain(){charcl,c2;scanf("%c”,&cl);;printf("%c,%d\n",cl,cl);—c2=c1+32;;printf("%c,%d\n",c2,c2);}2、以下程序不用第三个变量,实现将两个数进行对调操作:#includemain(){inta,b;scanf("%d%d",&a,&b);printf("a=%db=%d\n",a,b);a=(_a+b);b=(_a_b);a=(a_b);printf("a=%db=%d\n",a,b);}3、写出该程序运行的结果。K,5main()charst='A';inti=10;st=st+i;i=st%i;printf("%c,%d\n",st,i);}(已知字母A的ASCH码为65)四、程序设计题:1、用scanf函数输入ー个年份year,然后用ー个赋值语句计算这一年中2月份的天数datesum,最后用格式输出函数printf输出datesum值。具体要求如下:(1)所有变量为整型(2)输入前要有提示(3)输出结果时要有必要的文字说明#include<stdio.h>voidmain(){intyear,datesum;clrscr();Printf(“请任意输入一个年份值:“);Scanf(u%dw,&year);Datesum=((year%400=ニ〇)||((year%4==0)&&(year%l00!=0)))?29:28;Printf(a\n%d二月份的天数为:%d”,year,datesum);}2、由键盘输入一个小于256的十进制整数,然后将该数转换成八位的二进制形式输出。具体要求如下:(1)输入前要有提示(2)若转换成的二进制数不够八位,则在前面添“〇"补足八位。例如:十进制数79转换成的二进制数为1001111,但应输出01001111(3)分别输入十进制数54,96,175,233,255来运行这个程序。#include<stdio.h>#include<math.h>voidmain(){intnumber,b,i,n=0;longresult=0,p;clrscr();printf(“请输入一个大于0小于256的整数”);scanf("刎”,&number);p=l;Printf("\n%d=",number);do{b=number%2;result=result+p*b;p=p*10;n++;number=number/2;)While(number!=0)For(i=8;i>n:i—)Printf("0");Printf("%ldB",result);}第5章选择结构程序设计ー、单选题:1、以下程序的输出结果是Cmain(){inta=-1,b=l;if((++a&11;0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);I-110110002、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是_A.main()Iintx;scanf("%d",&x);if(x++>5)printf("%d",x)elseprintf("%d\n"x--);}7和56和3C.7和43、若执行下面的程序从键盘输入3和4,则输出是ーB.main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);I141618204、下面的程序是_D—main(){intx=3,y=0,z=0;if(x==y+z)printf(fequot;****");elseprintf("####");A,有语法错误不能过通过编译B.输出****C,可能通过编译,但是不能通过连接,因而不能运行D.输出####5、若要求在if后ー对圆括号中表示a不等于〇的关系,则能正确表示这ー关系的表达式为ーD 〇a<>0!aa=0a!=06、在C语言中的if语句中,用作判断的表达式为(D)A.关系表达式B.逻辑表达式C,算数表达式D.任意表达式7、以下程序输出结果是Bmain(){intm=5;if(m++>5)printf(ftquot;%d\n",m);elseprintf("%d\n",m--);}A.7C.5D.48、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是Amain(){intx;scanf("%d"&x);if(x++〉5)printf("%d",x);elseprintf("%d\n"x );)7和56和37和46和49、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的else总是与一A_组成配对关系。A,其上面距它最近的,并且没有其他else与其配对的if相配对B.在同一行上的ifC.缩排位置相同的ifD.在其之前未配对的if10>若变量都已经说明,则以下程序段输出为(B)a=10;b=50;c=30;if(a>b)a=b;b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);a=10b=50c=10a=10b=30c=10a=50b=30c=10a=50b=30c=5011、在执行以下程序时,为了使输出结果为t=4,则给a和b输入的值应满足的条件是Dmain(){ints,t,a,b;scanf("%d,%d",&a,&b);s=l;t=l;if(a<0)s=s+l;if(a>b)t=s+l;elseif(a==b)t=5;elset=2*s;printf("t=%d\n",t);I0>a>ba=0<ba=bAlt;0a<b<012、若变量都已经说明,则以下程序段输出为(B)a=10;b=50;c=30;if(a>b)a=b;b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);a=10b=50c=10a=10b=30c=10a=50b=30c=10a=50b=30c=5013、执行下面语句后的输出为(D)inti=-1;if(i<=0)printf("****\n")elseprintf("%%%%\n")****%%%%%%%%CD,有语法错,不能执行14、下列语句正确的是(B)if(a>b>c)temp=aif((a=b)>0)temp=ainta=b=c=4inta;scanf(%d,a)15、若有定义:floatw;inta,b:则合法的switch语句是(c)
A.switch(w) {printf("**\n");}A.switch(w) {printf("**\n");}easel.0:printf("*\n");case2.0:switch(a);{case1printf("*\n");case2printf("*\n");}switch(b){case1:printf("*\n");case2:printf("*\n");}switch(a+b);{case1:printf("*\n");default:printf("\n");case2}16、判断两个字符串S!和S2相等的正确语句是_D_if(S1=S2)if(S1==S2)if(strcpy(Sl,S2))if(strcmp(Sl,S2)==0)17、以下不正确的if语句形式是D是不是没写完啊if(x>y&&x!=y)t=x++;if(x=y)x+=y;if(x!=y)scanf("%d",&x)elsescanf("%d",&y);if(x<>18、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是Bif(x>y)z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2019、当a=l,b=3,c=5,d=4时,执行完下面一段程序后x的值是Bif(a<b)if(c<d)x=l;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;123620、若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>:表示回车),则下面程序的运行结果是D#includemain(){charc;intv0=0,vl=0,v2=0;do{switch(c=getchar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'0':case'u':case'U':vl+=l;default:vO+=l;v2+=l;}}while(c!=4#39:\n');printf(Aquot;vO=%d,vl=%d,v2=%d\n"vO,vl,v2);}v0=7,vl=4,v2=7v0=8,vl=4,v2=8vO=ll,vl=4,v2=llv0=12,vl=4,v2=1221、阅读以下程序:main(){intx;scanf("%d",&x);if(x-<5)printf("%d"4#39;x);elseprintf("%d"'x++);程序运行后,如果从键盘上输人5,则输出结果是B345622、若执行以下程序时从键盘上输入9,则输出结果是Bmain(){intn;scanf("%d",&n);if(n++<10)printf("%d\n",n);elseprintf("%d\n"n-);}11109823、若a、b、cl、c2、x、y、均是整型变量,正确的switch语句是Bswitch(a+b);{case1:y二a+b;break;case0:y=a-b;break;case3:y=b-a,break;}switch(a*a+b*b){case3:case1:y=a+b;break;}switcha{casec1:y=a-b;break;casec2:y=a*d;break;default:x=a+b;}switch(a-b){default:y=a*b;break;case4:x=a+b;break;case10:y=a-b;break;}24、有如下程序main(){inta=2,b=-l,c=2;if(a<b)if(b<O)c=O;elsec++;printf("%d\n",c);}该程序的输出结果是C012325、若有定义:floatw;inta,b;则合法的switch语句是Dswitch(w){easel.0: printf("*\n");case2.0:printf("**\n");}switch(a);{case1printf("*\n");case2printf("**\n");}switch(b){casea:printf("*\n");default:printf("\n");caseb:printf("**\n");}switch(a+b){case1:printf("*\n");case2:printf(ftquot;**\n");default:printf("\n");}二、填空题:1、Hinclude<stdio.h>main(){inti-0,j=0,a=6;if((++i>0)II(j++>0))a++;printf("i=%d,j=%d,a=%d\n",i,j,a);}结果:_i=1,j=0,a=72、若从键盘输入58,则以下程序输出的结果是ー585858〇main(){inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);}3、下列程序段的输出结果是_passwarm〇intn='c';switch(n++){default:printf("error");break;case 'a':case 'AƇ:case 'b':case'B':printf("good");break;case'c':case'C':printf("pass"つ;case'd':case'D':printf("warm");}三、程序设计题:1、编写程序,从键盘输入年号和月号,计算这一年的这一月共有几天.#include<stdio.h>Voidmain(){intyear,m,sumdate;Clrscr();Printf(“请输入年号和月号:“);Scanf(a%d%dv,&year,&m);if(m==l||m==3||m==5||m==7||m==8m=10||m==12)sumdate=31;elseif(m==4||m-6!m==9||m==ll)sumdate=30;elseif((m==2)&&((year%400==0)||((year%4==0)&&(year%100!=0)))sumdate=29elsesumdate=28;printf("\n%d.%d的天数为:%d”,year,m,sumdate);}2、编写程序,从键盘输入x的值,计算并打印下列分段函数的值。(这个题目太容易,自己写吧)y=0(x<60)y=l(60<=x<70)y=2(70<=x<80)y=3(80<=x<90)y=4(x>=90)3、编写程序,输入三个整数x,y,z,请把这三个数由小到大输出。(这个上课讲过)[程序分析]我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。4、编写程序,输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。ftinclude<stdio.h>Voidmain(){longdate;inta,b,c,d;clrscr();printf(“请任意输入ー个五位的整数:")a=date/10000;b=(dateハ000)机〇;c=(date%l00)/10;d=date%10;if(a==d&&b==c)printf("\n%d是ー个回文数”,date);elseprintf(“\n%d不是ー个回文数",date);}5、编写程序,将一个不大于256的十进制正整数转化为8位的二进制数,若不足8位,则在前面补〇,例如十进制数2转化位8位二进制数后是00000010,37转化后是00100101。试求出十进制数5、23、189转化位8位二进制分别是多少?(要求必须使用循环语句实现)(这个题目上一章做过了)第6章循环结构程序设计ー、单选题:1、以下程序运行后,输出结果是main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i;j>0;j--)printf(fequot;%d\n",a[j]);printf("\n");}1000110102、以下程序的输出结果是main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x-,y);|101929876109901010913、以下程序的输出结果是main(){intn=4;while(n一)printf("%d",--n);)2031D.2104、假定a和b为int型变量,则执行以下语句后b的值为a=l;b=10;do{b=b-a;a++;}while(b—>0);~3-2-1-45、下面程序的输出是—main(){intx=3,y=6,a=0;while(x++!=(y-=l)){a+=l;if(y<x)break;Iprintf("x=%d,y=%d,a=%d\n",x,y,a);}A.x=4,y=4,a=lx=5,y=4,a=3x=5,y=4,a=l6、定义如下变量:intn=10则下列循环的输出结果是ーwhile(n>7)(n——;printf("%d\n",n);}10989871098798767、以下程序段的输出结果是ーintx=3;do{printf("%3d",x-=2);)while(!(—x));A.1D,死循环8、以下程序的输出结果是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+l)];for(i=0;i<3;i++)k=k+p[i]*2;printf("%d\n",k);}202122239、有以下程序main(){intx,i;for(i=l;i<=50;i++){x=i;if(x%2ニニ〇)if(x%7==0)printf("%d",i);))输出结果是2827424110、下面程序的输出是main()(inty=9;for(;y>0;y--)(if(y%3=0){printf("%d"--y);continue;}})A.741D.87542111、若X是int型变量,且有下面的程序片段:for(X=3;X<6;X++)printf((X%2)?("**%d"):("##%d\n"),X);上面程序片段的输出结果是**3##3##3**3##4**512、执行下面的程序后,a的值为main(){inta,b;for(a=l,b=l;a<=100;a++){if(b>=20)break;if(b%3==l){b-=2;continue;b+=5;A.1115121313、有以下程序main(){intx,i;for(i=l;i<=5O;i++){x=i;if(x%2==0)if(x%3==0)if(x%7=0)printf("%d",i);I}输出结果是28274241main(){inti;for(i='A';i<'I';i++,i++)printf("%c",i+32);printf("\n");}A.编译不通过,无输出acegacegiabcdefghi15、执行以下程序后,输出的结果是main(){inty=10;do{yーー;}while(-y);printf("%d\n",y一一);}-118016、如果输入为:ABCdef执行下面一段程序后,则输出为: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);Iprintf("\n");}ABCdefabcDEFabcDEF17、请读程序:#includemain(){intnum=0;while(num<=2){num++;printf("%d\n",num);)}上面程序的输出结果是12123118、设有程序段:t=0;while(printf("*")){t++;if(t<3)break;}下面描述正确的是A.其中循环控制表达式与〇等价B.其中循环控制表达式与'0'等价C,其中循环控制表达式是不合法的D,以上说法都不对19、以下程序段x=-l;do{x=x*x;}while(!x);A.是死循环B.循环执行二次C,循环执行ー次D.有语法错误20、下面程序的运行结果是ftincludemain(){inty=10;do{y—;}while(—y);printf("%d\n",y-);i-118021、对for(表达式1;;表达式3)可理解为for(表达式l;0;表达式3)for(表达式1;1;表达式3)for(表达式1;表达式1;表达式3)for(表达式1;表达式3;表达式3)22、有一堆零件(100到200之间),如果分成4个零件ー组的若干组,则多2个零件;若分成7个零件ー组,则多3个零件;若分成9个零件ー组,则多5个零件。下面程序是求这堆零件总数,请选择填空。#includemain(){inti;for(i=100;i<200;i++)if((i-2)%4=0)if(!((i-3)%7))if()printf(ftquot;%d",i);!i%9=5i%9!=5(i-5)%9!=0i%9==523、t为int类型,进入下面的循环之前,t的值为〇while(t=l)则以下叙述中正确的是A.循环控制表达式的值为〇B.循环控制表达式的值为1C,循环控制表达式不合法D.以上说法都不对24、以下程序执行后sum的值是main(){inti,sum;for(i=l;i<6;i++)sum+=i;printf("%d\n",sum);}1514C.不确定D.025、以下程序的输出结果是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+l)];for(i=。;i<3;i++)k+=p[i]*2;printf("%d\n",k);}20212226、有如下程序main(){inti,sum;for(i=l;i<=3;sum++)sum+=i;printf("%d\n"sum);)该程序的执行结果是63C,死循环D.027、有如下程序main(){intn[5]={0,0,0},i,k=2;for(i=0;i<k;i++)n[i]=n[i]+l;printf("%d\n";,n[k]);A.不确定的值21028、有如下程序main(){charch[2][5]={ftquot;6937",ftquot;8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=。;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);IB.63825638569382529、以下程序的输出结果是main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d,%d",x-,y);}1019298761099010109130、以下程序的输出结果是main(){inti;for(i二'A';i<'I';i++,i++)printf("%c",i+32);printf("\n");A.编译不通过,无输出acegacegiabcdefghi二、填空题:1、程序的功能:从键盘输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入main(){floatx,amax,amin;scanf("%f",&x);amax=x;amin=x;while_1_{if(x>amax)amax=x;if(_2_)amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);)2、求输入100个数中正数的个数及其平均值main(){inti,n;floatsum,f;n二〇;_1_;for(i=0;i<=100,i++)(printf("enterarealnumber:";scanf("%f",&f));if—2—continue;_3_;n++;}printf("sum二%f",sum);printf("arerage=%f",sum/n);}3、用数组来处理求Fibonacci数组main(){inti;staticintf[20]={1,1};for(i=2;i<20;i++)⑴ for(i=0;i<20;i++){if(i%5ニニ〇)printf("\n");printf("%d",f[i]);}}4、读入一个1到9的数a,求s二a+aa+aaa+…+aa…a(共20项)。请对下述程序填空,其中16111P保存当前处理项aa…a0(每个空分别以序号标注,如:(1) )ttinclude<stdio.h>main()(intI;longa,s,temp;s二tempニ〇;printf("Pleaseenteranumber(1-9)");scanf((1) );s=a;for(1=1;(2):(3) ){temp=(4);a=temp;s=s+(5);printf("s=%f",s);}5、输出结果为main(){inti;for(i=l;i<=5;i++)printf(ftquot;%d",f(i));printf("\n");}f(intn){staticintj=l;j=j*n;return(j);}6、输出结果为main(){intn[3],i,j,k;for(i=0;i<3;i++)n[i]=0;k=2;for・二〇;i<k;i++)for(j二0;j<k;j++)n[j]=n[i]+l;printf("%d\n",n[l]);)7、#include<stdio.h>main()for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;)x++;}printf("x=%d\n",x);结果:一8、main(){intsum二0,i;scanf("%d",&i);while(i<:二10){sum=sum+i;i++;}printf("%d",sum);}输入1输出 9、程序的输出为ー#includemain(){inty=10;while(y-);printf("y=%d\n",y);}10>设i,j,k均为int型变量,则执行完下面的for循环后,k的值为.for(i=0,j=10;i<=j;i++,j—)k=i+j;三、程序设计题:1、本程序演示计算1-1/2+1/3-1/4+.../99-1/100的值,并显示出来。2、本程序演示从键盘输入100个字符,分别统计其中字母(不区分大、小写)、数字字符和其它字符的个数。3、本程序演示输出9*9口诀。[程序分析]分行与列考虑,共9行9歹リ,i控制行,j控制列。4、本程序演示打印出所有的“水仙花数”,所谓“水仙花数”是指ー个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。[程序分析]5、编写程序,演示将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。[程序分析]对n进行分解质因数,应先找到ー个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。第7章数组ー、单选题:1、执行下面的程序段后,变量k中的值为s[O]=k;k=s[l]*10;A.不定值3330102、以下程序的输出结果是main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<4;i+=2)printf("%d",x[i][i]);I5291D.973、以下程序运行后,输出结果是main(){charch[2][5]={"693","825"},*p[2];inti,j,s=O;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2,i++)for(j=0;p[i][j]>='0'&&p[i][j]<=ཏ';j+=2)s=10*s+p[i][j]-'0ft#39;;printf("%d\n",s);I638522336938254、以下能对二维数组a进行正确初始化的语句是inta[2][]={{!,0,1}{5,2,3}};inta[][3]={{1.2,3},{4,5,6}};inta[2][4]={{1,2,3},{4,5},{6}};inta[][3]={{l,0,1}{},{1,1}};5、若有说明:inta[3][4]={〇};则下面正确的叙述是A.只有元素a[〇][〇]可得到初值0B.此说明语句不正确C,数组a中各元素都可得到初值,但其值不一定为〇D.数组&中每个元素均可得到初值。6、以下程序运行后,输出结果是main(){charch[2][5]-{"693","825"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2,i++)for(j=0;p[i][j]>=ཆ'&&p[i];=ཏ';j+=2)s=10*s+p[i][j]-ཆƇprintf("%d\n",s);)638522336938257、合法的数组定义是staticinta口=“string";staticinta[5]={0,1,2,3,4,5}staticchara="string";staticchara[]={0,1,2,3,4,5};8、给出以下定义:charx[]="abcdefg";chary[]={'a','b','c','d','e',':f','g'};则正确的叙述为A,数组X和数组Y等价B.数组x和数组Y的长度相同C,数组X的长度大于数组Y的长度D,数组X的长度小于数组Y的长度9、若有说明:inta[10];则对a数组元素的正确引用是a[10]a[3,5]a(5)a[10-10]10、以下对ー维整型数组a的正确说明是inta(10);intn=10,a[n];intn;scanf("%d",&n);inta[n];ftdefineSIZE10(换行)inta[SIZE];11、若有说明:inta[][4]={0,0};则下面不正确的叙述是A,数组a的每个元素都可得到初值0B,二维数组a的第一维大小为1C.因为二维数组a中第二维大小的值除经初值个数的商为1.故数组a的行数为1D.只有元素a[0][0]和a[0]ロ]可得到初值0,其余元素均得不到初值〇12、以下不正确的定义语句是doublex[5]={2.0,4.0,6.0,8.0,10.0};inty[5]={0,1,3,5,7,9};charcl[]={'1','2','3':,'4','5'};charc2ロ={'\xl0','\xa','\x8'};13、若二维数组a有m列,则在a[i][j]前的元素个数为j*m+ii*m+ji*m+j-li*m+j+l14、定义如下变量和数组:intk;inta[3][3]={1,2,3,4,5,6,7,8,9);则下面语句的输出结果是for(k=0;k<3;k++)printf("%d",a[k][2-k]);35736915914715、以下程序的输出结果是main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(ftquot;%d%d%d%d\n",a[0][3],a[l][2],a[2][1],a[3][0];}065014705430D.输出值不定16、以下程序的输出结果是main(){charch[3][5]={"AAAA","BBB","CC"};printf("%s",ch[l]);I"AAAA""BBB""BBBCC"ftquot;CC"17、若有定义:intaa[8];o则以下表达式中不能代表数组元aa[l]的地址的是&aa[0]+l&aa[l]&aa[0]++aa+118、以下程序的输出结果是main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=O;for(i=l;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}1819202119、以下程序的输出结果是main(){ charw[][10]={"ABCD","EFGII","IJKL","MN0P"},kFfor(k=l;k<3;k++)printf(fequot;%s\n",w[k]);IABCDFGHKLABCDEFGIJEFGJK0EFGHIJKL20、执行下面的程序段后,变量k中的值为intk=3,s[2];s[0]=k;k=s[l]*10;A,不定值333010二、填空题:1、任意给200个数,按由大到小对其排序,并输出结果。#includemain(){inti,h[20],temp;printf("\nEnter20integers;");for(i=0;i<20:i++){_1_;printf("\n");}for(i=0;i<19;i++)_2_;if(n[i]>n[j]){temp=n[i];n[i]=n[j];_3_;}_4_{if(i%5==0)printf("\n")printf("%10d",n[i]);}}2、用来引用特定数组元素的数字称为ー.答案:下标3、若有定义语句:chars[100],d[100];intj-0,i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)while([i]){d[j]=;j++;i++;}d[j]=O;4、下列程序段的输出结果是。main(){charb[]="Hello,you";b[5]=0;printf("%s\n",b);}5、若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[〇]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。a[0]a[l]a[2]a[3]a[4]22334455661(若P已指向存储单元a[l]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。2(若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。三、程序设计题:1、设某四位数的千位数字和十位数字的和等于百位数字和个位数字的积,例如,对于四位数:9512,9+1=5*2,试问这样的四位数有多少个?2、设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde(a不等于〇,e不等于。或1),求满足上述条件的所有四位数bcde的和。3、程序,计算在〇至99的范围内有多少个数,其每位数的乘积小于等于每位数的和。4、编写程序,求共有几组i、j、k符合算式ijk+kji=1333,其中i、j、k是〇~9之间的一位整数。5、编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是15的倍数,且A+D=B+C,即第1位数加上第4位数等于第2位数加上第3位数。第8章函?数ー、填空题:1、以下程序运行后,输出结果是intd=l;fun(intp){intd=5;d=d+p++;printf("%d",d);}main(){inta=3;fun(a);d=d+a++;printf("%d\n",d);}849995442、有以下程序#includeintabc(intu,intv);main(){inta=24,b=16,c;c=abc(a,b);printf('%d\n",c);Iintabc(intu,intv){intw;while(v){w=u%v;u=v;v=w}returnu;}输出结果是167893、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为func(charstr[]){intnum=0;while(str+num!='\0')num++;return(num);main(){charstr[10];gets(str);printf("%d\n",func(p));383736354、请读程序:#includevoidFUN(intS[]){staticintJ=0;do{S[J]+=S[J+1];}while(++J<2);}main(){intK,A[10]={1,2,3,4,5};for(K=l;K<3;K++)FUN(A);for(K=0;K<5;K++)printf(ftquot;%d",A[K]);上面程序输出结果是347562344535745123455、下面程序的输出是intm=13;intfun2(intx,inty){int01=3;return(x*y-m);Imain(){inta=7,b=5;printf(ftquot;%d\n",fun2(a,b)/m);}1276、请读程序:#includeFUNC(intA,intB){intC;C=A+B;returnC;1main(){intX=6,Y=7,Z=8,R;R=FUNC((X,Y,X+Y),Z—);printf("%d\n",R);}上面程序的输出结果是112021317、下列程序执行后输出的结果是#include(stdio.h〉f(inta){intb=0;a=c++,b++;return(a);Imain(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);I30148、下面程序的输出是fun3(intx){staticinta=3;a+=x;return(a);main()intk=2,m=l,n;n=fun3(k);n=fun3(m);printf("%d\n",n);)34699、下面程序的输出是intm=13;intfun2(intx,inty)intm=3;return(x*y-m);)main()inta=7,b=5;printf("%d\n",fun2(a,b)/m);)A.1C.7D.1010、请读程序:f(intb[],intn){inti,r;r=l;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序输出结果是72012024611、下列程序执行后输出的结果是intd=l;fun(intq){intd=5;d+=q++;printf("%d",d);Imain(){inta=3;fun(a);d+=a++;printf("%d\n",d);}8496848512、C语言中函数返回值的类型是有决定的。A.调用该函数的主调函数类型B.return语句中的表达式类型C,定义函数时所指定的返回函数值类型D.调用函数时临时13、以下正确的函数定义形式是doublefun(intx,inty)doublefun(intx;inty)doublefun(intx,inty);doublefun(intx,y);14、若调用ー个函数,且此函数中没有return语句,则正确的说法是:该函数A,没有返回值B.返回若干个系统默认值C.能返回一个用户所希望的值D.返回一个不确定的值15、以下正确的说法是A.用户若需调用标准库函数,调用前必须重新定义B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义C.系统根本不允许用户重新定义标准库函数D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调16、以下不正确的说法是:C语言规定A.实参不可以是常量,变量或表达式B,形参可以是常量,变量或表达式C.实参可以为任何类型D.形参应与其对应的实参类型一致17、C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是A.地址传递B,单向值传递C,由实参传给形参,再由形参传回给实参D.由用户指定的传递方式18、C语言允许函数类型缺省定义,此时函数值隐含的类型是floatintlongdouble19、已有如下数组定义和f函数调用语句,inta[3][4];f(a);则在f函数的说明中,对形参数组array的错误定义方式为f(intarray[][6])f(intarray[3][])f(intarray[][4])f(intarray[2][5])20、有如下程序intrune(inta,intb){return(a+b);}mainO{intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%\d\n",r);}该程序的输出的结果是12131415二、填空题:1、下面的函数pow是求x.y的值,请将正确答案填在以序列号标注如:((1))的横线上。pow(x,y)intx,y;{intj;for((l);y>=l;(2);j=(3);return(j);i2、ー个函数一般由两部分组成:它们分别是一和ー。3、下面程序的输出是inttun(intnum){intk=l;do{k=k*num%10;num=num/10;}while(num);return(k);)main(){intn=26;printf("%d\n",tun(n));}4、下面程序的输出是ーintfun(intn)(ints;if((n==l)II(n=2));s=2;elses=n——;return(s);main()x=fun((l,2,3));printf("%ld\n",x);}5、若已定义:inta[10],i;»以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3,4、5、6,7、8、9、10:在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1«请填空。fun(inta[]){inti;for(i=l;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年邵东市中医医院夏季编外合同制专业技术人员招聘(6人)笔试备考试题含答案详解(a卷)
- (标准)转让地合同协议书
- (标准)转让店面顾客合同协议书
- (标准)转让快递合同协议书模板
- (标准)麻辣烫店转让合同协议书
- (标准)山地承包合同转让协议书
- (标准)杂粮品种转让合同协议书
- (标准)转让柴棚房合同协议书
- (标准)转让饮食合同协议书
- (标准)农用车转让合同协议书
- 2025年行政事业单位会计继续教育考试试题及答案
- 2024年攀枝花市仁和区招聘中小学教师真题
- 2025年医保知识考试题库及答案:基础政策解读及案例分析试题
- 灯店的合作协议合同范本
- 检验科室内质控培训课件
- 电工复审培训课件
- 七一党课:传承红色基因勇担时代使命2025年建党104周年“七一”专题党课
- 公司安全事故隐患内部举报、报告奖励制度
- 石油集团公司井喷事故案例汇编C
- 水泥厂生料均化库滑模施工组织设计及方案文本
- 建设工程规划许可证申请表(外墙装修改建)
评论
0/150
提交评论