《C语言期末复习.ppt》由会员分享,可在线阅读,更多相关《C语言期末复习.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1试卷共试卷共5个大题个大题单项选择题题单项选择题题(每题每题1分,共分,共20分)分)填空题填空题(20分,每题分,每题2分分)阅读程序阅读程序(20分,每题分,每题4分分)完成程序题完成程序题(20分,每空分,每空2分分)程序编制题:程序编制题:(20分,每题分,每题10分分)2 21、下列语句中符合、下列语句中符合C语言语法的赋值语句是语言语法的赋值语句是A)a=7+b+c=a+7;B)a=7+b+=a+7;C)a=7+b,b+,a+7D)a=7+b,c=a+7;2、在、在C语言中语言中,要求运算数必须是整型的运算符是要求运算数必须是整型的运算符是A)%B)/C)D)!练练习习3、已知字
2、母、已知字母A的的ASC码为十进制的码为十进制的65,下面程序的输出是下面程序的输出是main()charch1,ch2;ch1=A+5-3;ch2=A+6-3;printf(%d,%cn,ch1,ch2);A)67,DB)B,CC)C,DD)不确定的值不确定的值34、下面程序的输出是、下面程序的输出是main()intx=10,y=3;printf(%dn,y=x/y);A)0B)1C)3D)不确定的值不确定的值5、若执行下面的程序时从键盘上输入若执行下面的程序时从键盘上输入13和和14,则输出是则输出是main()inta,b;scanf(“%d%d”,&a,&b);if(ab)print
3、f(“%dn”,a+);elseprintf(%dn,b-);A)12B)13C)14D)156、下面程序的输出是、下面程序的输出是main()inta10=1,2,3,4,5,6,7,8,9,10,*p=a;printf(%dn,*(p+2);A)3B)4C)1D)247、下面程序的输出是、下面程序的输出是main()enumteammy,your=4,his,her=his+10;printf(%d%d%d%dn,my,your,his,her);A)0123B)04010C)04515D)145158、下面程序的输出是、下面程序的输出是main()inta=-1,b=4,k;k=(a+=
4、0)&(!(b-0;y-)if(y%3=0)printf(%d,-y);continue;A)741B)852C)963D)875421613.下面程序的输出是下面程序的输出是main()charx=040;printf(%dn,x=x1):A)100B)160C)120D)6414.下面程序的输出是下面程序的输出是main()structcmplxintx;infy;cnum2=1,3,2,7;printf(%dn,cnum0.y/cnum0.x*cnum1.x);A)0B)1C)3D)615.下面程序的输出是下面程序的输出是fun3(intx)staticinta=3;a+=x;retur
5、n(a);main()intk=2,m=1,n;n=fun3(k);n=fun3(m);printf(%dn,n);A)3B)4C)6D)9716.下面程序的输出是下面程序的输出是main()inta34=1,3,5,7,9,11,13,15,17,19,21,23;int(*P)4=a,i,j,k=0;for(i=0;i3;i+)for(j=0;j2;j+)k=k+*(*(p+i)+j);printf(%dn,k);A)60B)68C)99D)10817.该程序有两个该程序有两个printf语句语句,如果第一个如果第一个printf语句输出的是语句输出的是194,则第二则第二个个printf
6、语句的输出结果是语句的输出结果是:main()inta10=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(%xn,p);printf(%xn,p+9);A)203B)204C)1a4D)1a6818.以下说法中正确的是以下说法中正确的是A)C语言程序总是从第一个的函数开始执行语言程序总是从第一个的函数开始执行B)在在C语言程序中语言程序中,要调用的函数必须在要调用的函数必须在main()函数中定义函数中定义C)C语言程序总是从语言程序总是从main()函数开始执行函数开始执行D)C语言程序中的语言程序中的main()函数必须放在程序的开始部分函数必须放在程序的开始部分19
7、.执行下面的程序后执行下面的程序后,a的值为的值为main()inta,b;for(a=1,b=1;a=20)break;if(b%3=1)b+=3;continue;b-=5;A)7B)8C)9D)10920.以下程序段的输出结果是以下程序段的输出结果是intx=3;doprintf(%3d,x-=2);while(!(-x);A)1B)30C)1-2D)死循环死循环21.设有以下定义设有以下定义:inta43=1,2,3,4,5,6,7,8,9,10,11,12;int(*ptr)3=a,*p=a;则下列能够正确表示数组元素则下列能够正确表示数组元素a12的表达式是的表达式是A)*(*pt
8、r+1)2)B)*(*(p+5)C)(*ptr+1)+2D)*(*(ptr+1)+2)22.下列程序的输出结果是下列程序的输出结果是main()char*p1,*p2,str50=xyz;p1=abcd;p2=ABCD;strcpy(str+2,strcat(p1+2,p2+1);printf(%s,str);A)xyabcABB)abcABzC)ABabczD)xycdBCD1023.执行以下程序后执行以下程序后,y的值是的值是main()inta=2,4,6,8,10,y=1,x,*p;p=&a1;for(x=0;xamax)amax=x;if()amin=x;scanf(%f,&x);p
9、rintf(namax=%fnamin=%fn,amax,amin);x=0.0 xamin1125.不能把字符串不能把字符串:Hello!赋给数组赋给数组b的语句是的语句是A)charb10=H,e,l,l,o,!;B)charb10;b=“Hello!”;C)charb10;strcpy(b,“Hello!”);D)charb10=“Hello!”;26.若有以下说明若有以下说明:inta12=1,2,3,4,5,6,7,8,9,10,11,12;charc=a,d,g;则数值为则数值为4的表达式是的表达式是A)ag-cB)a4C)ad-cD)ad-c27.若有以下说明若有以下说明:int
10、a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为则数值为6的表达式是的表达式是A)*p+6B)*(p+6)C)*p+=5D)p+528.若有以下说明若有以下说明:intw34o=0,1,2,4,5,8;int(*p)4=w;则数值为则数值为4的表达式是的表达式是A)*w1+1B)p+,*(p+1)C)w22D)p111229.若程序中有下面的说明和定义若程序中有下面的说明和定义structabcintx;chary;structabcs1,s2;则会发生的情况是则会发生的情况是A)编译出错编译出错B)程序将顺利编译、连接、执行程序将顺利编译、连接、执行C)能顺利通过编译、连
11、接、但不能执行能顺利通过编译、连接、但不能执行D)能顺利通过编译能顺利通过编译但连接出错但连接出错30.下面程序输出数组中的最大值下面程序输出数组中的最大值,由由s指针指向该元素指针指向该元素.则在则在if语句中的判断表语句中的判断表达式应该是达式应该是main()inta10=6,7,2,9,1,10,5,8,4,3,*p,*s;for(p=a,s=a;p-a*sa=1,b=21332.若有定义和语句若有定义和语句:chars10;s=“abcd”;printf(“%sn”,s);则结果是则结果是:(以下以下u代表空格代表空格)A)输出输出abcdB)输出输出aC)输出输出abcduuuuu
12、D)编译不通过编译不通过33.若有以下定义和语句若有以下定义和语句:intu=010,v=0 x10,w=10;printf(“%d,%d,%dn,u,v,w);则输出结果是则输出结果是:A)8,16,10B)10,10,10C)8,8,10D)8,10,1034.若有以下定义和语句若有以下定义和语句charc1=b,c2=e;printf(“%d,%cn”,c2-c1,c2-a+A);则输出结果是则输出结果是:A)2,MB)3,EC)2,ED)输出结果不确定输出结果不确定35.若若i,j已定义为已定义为int类型类型,则以下程序段中内循环体的总的执行次数是则以下程序段中内循环体的总的执行次数
13、是for(i=5;i;i-)for(j=0;j4;j+).A)20B)25C)24D)301436.若有以下定义和语句若有以下定义和语句:char*s1=“12345”,*s2=“1234”;printf(“%dn”,strlen(strcpy(s1,s2);则输出结果是则输出结果是:A)4B)5C)9D)1037.若有以下定义和语句若有以下定义和语句:inta10=1,2,3,4,5,6,7,8,9,10,*p=a;则不能表示则不能表示a数组元素的表达式是数组元素的表达式是A)*pB)a10C)*aD)ap-a38.下面程序的输出是下面程序的输出是main()char*s=121;intk=
14、0,a=0,b=0;dok+;if(k%2=0)a=a+sk-0;continue;b=b+sk-0;a=a+sk-0;while(sk+1);printf(k=%da=%db=%dn,k,a,b);A)k=3a=2b=3B)k=3a=3b=2C)k=2a=3b=2D)k=2a=2b=31539.下面程序的输出是下面程序的输出是main()unsigneda=32768;printf(“a=%dn”,a);A)a=32768B)a=-32767C)a=-32768D)a=-140.若有以下定义若有以下定义:floatx;inta,b;则正确的则正确的switch语句是语句是A)switch(x
15、)B)switch(x)case1.0:printf(*n);case1,2:printf(*n);case2.0:printf(*n);case3:printf(*n);C)switch(a+b)D)switch(a+b);case1:printf(n);case1:printf(.*n);case1+2:printf(*n);case2:printf(*n);1641.以下程序输出的结果是以下程序输出的结果是main()charw10=ABCD,EFGH,IJKL,MNOP,K;for(k=1;k3;k+)printf(%sn,&wkk);A)ABCDB)ABCDC)FGHD)FGHFGH
16、EFGJKKLKLIJOM42.若有以下的定义若有以下的定义:inta=1,2,3,4,5,6,7,88,9,10),*p=a;则值为则值为3的表达式是的表达式是A)p+=2,*(p+)B)p+=2,*+pC)p+=3,*p+D)p+=2,+*p43.假定所有变量均已正确说明假定所有变量均已正确说明,下列程序段运行后下列程序段运行后x的值是的值是a=b=c=0;x=35;if(!a)x-;if(c)x+=3;elsex+=4;A)34B)36C)37D)381744.以下程序的输出结果是以下程序的输出结果是subl(chara,charb)charc;c=a;a=b;b=c;sub2(char
17、*a,charb)charc;c=*a;*a=b;b=c;sub3(char*a,char*b)charc;c=*a;*a=*b;*b=c;main()chara,b;a=A;b=B;sub3(&a,&b);putchar(a);putchar(b);a=A;b=B;sub2(&a,b);putchar(a);prtchar(b);a=A;b=B;sub1(a,b);putchar(a);putchar(b);A)BABBABB)ABBBBAC)BABABAD)BAABBA45.下列程序运行结果是下列程序运行结果是_。#includevoidmain()staticcharschText=La
18、nguage;char*s=&schText8;while(-s=&schText0)putchar(*s);putchar(n);egaugnaL1846.下列程序运行结果是下列程序运行结果是_。#includechar*search(char*p,intn)returnpn;voidmain()char*weekDay7=“Sunday”“,Monday”,Tuesday“,Wednesday“,Thursday“,Friday“,Saturday;char*pch=search(weekDay,4);printf(%sn,pch);Thursday1947.下列程序运行结果是下列程序运行
19、结果是_。#includevoidmain()structAddrListcharname12;chartele18;Li,010-12345678;printf(%s%sn,MyAL1.name,MyAL1.tele);2048.下面程序的功能是打开文件下面程序的功能是打开文件D:test.txt,计算该文件中的字符数。,计算该文件中的字符数。请填空完善之。请填空完善之。#includevoidmain()FILE*in;in=fopen(,r);charch=fgetc(in);intnFileLength=0;while();ch=;printf(nFileLength=%dn,nFil
20、eLength);“D:Test.txt”ch!=EOFnFileLength+fgetc(in)2149下面程序的功能是用从键盘上输入下面程序的功能是用从键盘上输入3个数,比较得出个数,比较得出3个数中的最小个数中的最小值、中间值、最大值。使用了交换函数值、中间值、最大值。使用了交换函数swap。请填空完善之。请填空完善之。#includevoidswap(int*p1,int*p2)inthold=;*p1=*p2;*p2=hold;voidmain()intmax,min,mid;printf(Enterthreenumbers:);scanf(%d%d%d,&max,&mid,&min
21、);if(maxmin);if()swap(&max,&mid);if(midmin)swap(&mid,&min);printf(min=%dmid=%dmax=%dn,min,mid,max);*p1swap(&max,&min)maxmid2250.下面程序的功能是计算如下分数序列的前下面程序的功能是计算如下分数序列的前20项之和,请填空。项之和,请填空。2/1,3/2,5/3,8/5,13/8,#includevoidmain()intn,t;floatx=2,y=1,s=0;for(n=1;n=20;n+);t=x;printf(“thesumis:%fn”,s);s+=x/yx=x
22、+yy=t2351.下列程序运行结果是下列程序运行结果是_。#includeint*Search(int(*ptr)3,intn)return*(ptr+n);voidmain()intscores3=60,70,80,61,71,81,62,72,82,63,73,83;int*ptr=Search(scores,2);printf(%dn,*(ptr+2);822452.完成一个C程序的步骤:编辑、_、连接、执行。53.在C语言中,文件的数据存放有两种形式,一种是二进制代码形式,另一种是_形式。54.C语言中的位运算符&表示的是按位与,那么位运算符表示的 。55.C程序中的指针比较复杂,其
23、中指向函数的指针和指针函数容易混淆。C语句 int (*p)();申明的是一个 。56.C语言中申明结构体的关键字是 。57.在switch语句中,运行_语句时,将导致立即从该结构中退出。编译ASCII指向函数的指针struct按位异或break2558.下列程序运行结果是下列程序运行结果是_。#includeintf(inta)intb=0;staticintc=3;a+;c+;b+;return(a+b+c);voidmain()inta=2,i,k=0;for(i=0;i2;i+)k+=f(a+);printf(%dn,k);182659.下列程序运行结果是下列程序运行结果是_。#inc
24、ludevoidmain()inta=1,b;for(b=1;b=8)break;if(a%2=1)a+=5;continue;a-=3;printf(%dn,b);42760.读入读入n(n0,再输出,再输出x在在r中所对应的最小中所对应的最小下标(下标从下标(下标从0开始)。开始)。#includestdio.hvoidmain()intx,k,sub,count,n,r10;scanf(%d,&n);for(k=0;kn;k+)scanf(%d“,_);scanf(%d,&x);sub=count=0;for(k=0;kn;k+)if(_)count+;for(k=0;k0)printf(subscriptis%dn,_);&rk rk=xbreaksub