admin 管理员组

文章数量: 1184232


2024年3月12日发(作者:mvc指什么)

c语言复习题及参考答案.docx

1、《C语言程序设计》复习题第一、二章一、单项选择题1、以

下符号中,不行以作为变量名的是_________。A、_varB、VAR10C、

varxD、2def2、运算符代表。A、按位与B、规律与C、规律或D、按

位取反3、以下字符串为标识符的是_____。A、_1_AB、5_studentC、

longD、!DF4、以下属于字符型常量的是。A、’AA’B、“B”C、

‘a’D、’x93L’5、表达式18/4*sqrt(4.0)/8值的数据类型为

____________.A、intB、doubleC、charD、不确定6、设有单精度变

量f,其值为13.4执

2、行语句“n=((int)f%3;后,”n的值是。A、1B、4C、4.333333D、

4.67、为表示关系x≥y≥z,正确的C语言表达式是。A、〔x=y〕(y=z)B、

(x=y)AND(y=z)C、(x=y=z)D、(x=z)(y=z)8、运算符||代表。A、按位

或B、规律或C、按位异或D、按位取反9、若k为int型变量且赋值

11,则k++表达式的值为。A、10B、11C、12D、1310、以下四组选项

中,均是合法转义符的选项是。A、‘”’‘’‘n’B、

‘’‘017’‘”’

3、C、‘018’‘f’‘xab’D、‘0’‘101’‘xlf’11、以下

不正确的字符常量是。A、“C”B、‘”’C、‘’D、‘K’12、用C

语言编写的源文件经过编译,若没有产生编译错误,则系统将。A、

生成可执行目标文件B、生成目标文件C、输出运行结果D、自动保

存源文件13、以下说法中错误的选项是。A、主函数可以分为两个部

分:主函数说明部分和主函数体B、主函数可以调用任何非主函数的

第 13 页

其他函数C、任何非主函数可以调用其他任何非主函数D、程序可以

从任何非主函数开头执行14、算术运算符、赋值运算符和关系运算

符的运算优先级按从高到低依次为。A、算术运算、赋值运算、关系

运算B、算术运

4、算、关系运算、赋值运算C、关系运算、赋值运算、算术运

算D、关系运算、算术运算、赋值运算15、已知字母A的ASCII码为

十进制数65,且c2为字符型,则执行语句c2=’A’+-’‘63后’;c2

中的值是。A、CB、DC、68D、不确定的值16、字符串ABC在内存占

用的字节数是。-1-A、3B、4C、6D、817、设a=1,b=2,c=3,d=4,

则表达式:a〔注:表示回车〕,则正确的输出结果为。

voidmain(){intx,y,z;scanf(“%d%d%d”,x,printf(“x+y+z=%dn”

,x+y+z);}A、x+y+

5、z=48B、x+y+z=35C、48D、不确定值4、依据下面的程序及数

据的输入和输出形式,程序中输入语句的正确形式应当为。

voidmain(){charch1,ch2,ch3;输入语句

printf(“%c%%c”,ch1,ch2,ch3);}输入形式:ABC输出形式:ABCA、

scanf(“%c%c%c”,ch1,ch2,B、scanf(“%c,%c,%c”,ch1,ch2,C、

scanf(“%c%c%c”,ch1,ch2,D、scanf(“%c%c”,ch1,ch2,5、已知

ch是字

6、符型变量,下面不正确的赋值语句是。A、ch=‘a’+’b’;B、

ch=‘0’;C、ch=‘7’+‘9D’;、ch=”aa;”6、以下关于结构化程

序设计的表达正确的选项是。A、一个结构化程序必需同时由挨次、

第 14 页

分支、循环三种结构组成B、结构化程序使用goto语句会很便捷C、

在C语言中,程序的模块化是利用函数实现的D、由三种基本结构构

成的程序只能解决小规模的问题7、有以下程序

#includevoidmain(){inta1,a2;charc1,c2;scanf(“%d%c%d%c”,a1

,c1,a2,printf(“%d,%c,%d,%c”,a1

7、,c1,a2,c2);}若想通过键盘输入,使得a1的值为12,a2的

值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:

12,a,34,b,则正确的输入格式是。〔以下_代表空格,代表回车〕A、

12a34bB、12_a_34_bC、12,a,34,bD、12_a34_b8、有以下程序,程序

运行后的输出结果是。

#includevoidmain(){intx=011;-3-printf(%dn,++x);}A、2B、4C、

10D、119、执行以下语句后,显示结果为。x=19;printf(“%x”,x);A、

13B、19C、23D、执

8、行错误10、执行以下语句:显示结果为。

x=97;printf(“%c”,x);A、97B、aC、AD、执行错误二、程序填空题

1、从键盘上输入一个字符,假如是大写字母,则将其转换成小写字

母后输出。

#includevoidmain(){charch;scanf(“%c”,);ch=()?ch+32:ch;pri

ntf(“char=%cn”,ch);}2、从键盘分别为变量x和y输入整数,交

换它们的值后输出。#includevoidmain()

{intx,y;;scanf(“%d%d”,z=x;;y=z;printf(“x=%d,y=%d”,x,y)

;}三、程序改错题,下

第 15 页

9、面程序片段可能只有一个错,也可能有一个以上的错。1、

voidmain(){floata1=123.456;printf(“%d”,a1);}()改为:〔〕2、

printf(请“输入三个数

x1,x2,x3:”);scanf(“%f%f%f”,x1,x2,x3);()改为:〔〕3、

k=-8567;printf(“%6Dn”,k);-4-()改为:〔〕四、编程题。1、从键

盘输入一个四位数,把该整数颠倒过来输出〔例如1234变成4321〕。

2、写一个程序,从键盘输入两个整数,然后输出这两个数的和、差、

积、商。3、将“China译”成密码。加密规章是:用原来的字母后

面的第4

10、个字母代替原来的字母〔提示:设5个字符型变量,存放5

个字符,经运算使各ASCII码增4,再输出〕。第四章一、单项选择

题。1、规律运算符两侧运算对象的数据类型。A、只能是0和1B、

只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类

型的数据2、推断char型变量ch是否为大写字母的正确表达式是。

A、‘A’=‘A’)(ch=‘A’)(ch=ch)3、若期望当A的值为奇数时,

表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以

下不能满足要求的表达式是。A、A%2==1B、!(A%2==0)C、!(A%2)D、

A%24、设有:

11、inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)(n=cd)后n的值

为。A、1B、2C、0D、45、以下程序的运行结果是。

voidmain(){inta,b,d=241;a=d/100%9;b=(-1)printf(“%d,%d”,a,

b);}A、2,0B、2,1C、6,0D、6,16、已知intx=10,y=20,z=30;以下语

第 16 页

句执行后x,y,z的值是。if(xy)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

12、,y=30,z=207、以下程序的运行结果是。

voidmain(){intm=5;if(m++5)printf(“n%d”,m);else;printf(“n

%d”,m--);}A、4B、5C、6D、78、若运行时给变量x输入12,则以

下程序的运行结果是。

-5-voidmain(){intx,y;scanf(“%d”,y=x12?x+10:x-12;printf(“

n%d”,y);}A、0B、2C、3D、49、if语句的基本形式是:if(表达式)

语句,以下关于“表达式”值的表达正确的选项是。A、必需是规律

值B、必需是整数值C、必需是正数D、可以是任意合

13、法的数值10、有以下程序

#includevoidmain(){inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+

=2;elseb+=3;printf(“n%d”,b);}程序运行后的输出结果是。A、0B、

1C、2D、311、有以下程序,程序运行后的输出结果是。

#includevoidmain(){intc=0,k;for(k=1;k12?x+10:x-12;printf

〔%dn,y〕;}A、0B、10C、12D、2214、若变量已正确定义,要将a和

b中的数进行交换,下面不正确的语句组是_____。A、a=a+

14、b,b=a-b,a=a-b;B、t=a,a=b,b=t;C、a=t;t=b;b=a;D、

t=b;b=a;a=t;15、下面程序的运行结果是。

voidmain(){intx=4,y=5;if((xy)(++x0))printf(“%d”,x+y);prin

tf(“%d”,x);}A、94B、4C、5D、10516、以下程序执行后的显示结

果为。{intn=3,m=6;if(n4m++voidmain(){intx;printf(请“输入一

第 17 页

个整数:”);scanf(“%f”,x);if(x%2=0)prin

15、tf(是“一个偶数!n”);elseprintf(是“一个奇数!n”);}

〔〕改为:〔〕〔〕改为:〔〕-8-2、输入一个整数,推断其是否能被

3整除。#includevoidmain(){intx,y;printf(请“输入一个整

数:”);scanf(“%f”,x);y=x%3;switch(y){case0:printf(能被“3

整除!n”);case1,2:printf(不能被“3整除!n”);}}〔〕改为:〔〕

〔〕改为:〔〕〔〕改为:〔〕五、编程题1、编程:输入整数x,计算

并输出以下分段函数f(x)的值。x(x=10)2、编程:输入两个整数,

再输入两个数相加的

16、和,由程序推断输入的和是否正确。3、编程:把百分制成

果转换成5级记分制,要求用switch语句。90分以上〔包括90〕:

A80至90分〔包括80〕:B70至80分〔包括70〕:C60至70分〔包

括60〕:D60分以下:E如:InputScore:8686的等级为B4、用switch

语句编程,输入2021年的任一个月,输出这个月的天数。如:

Inputmonthof2021:102021年10月有31天5、给出一个不多于5位

的正整数,要求:〔1〕求出它是几位数;〔2〕分别输出每一位数字;

〔3〕按逆序输出各位数字,例如原数为321,应输出123第五章一、

单项选择题-9-

17、1、有如下程序,该程序的输出结果是_______。

voidmain(){intn=9;while〔n6〕{n--;printf〔%d,n〕;}}A、876B、

987C、8765D、98762、continue语句的正确的用法是。A、跳过该循

环体中剩余的语句而强行开头下一次循环。B、在多重循环中,只能

第 18 页

退出最靠近的那一层循环语句。C、跳出多重循环。D、无论在任何状

况下,都中断程序的执行,退出到系统下一层。3、有以下程序段,

则下面的描述正确的选项是。intk=0;while(k=0)k=k-1;A、while循

环执行10次B、循环是无限循环C

18、、循环体语句一次也不执行D、循环体语句执行一次4、C语

言中whi1e和do-while循环的主要区分是_____。A、do-while的循

环体至少无条件执行一次B、while的循环把握条件比do-while的循

环把握条件严格C、do-while允许从外部转到循环体内D、do-while

的循环体不能是复合语句5、有以下程序,则以下表达正确的选项是

_______。intt=0;while(t=1){...}A、循环把握表达式的值为0B、

循环把握表达式的值为1C、循环把握表达式不合法D、以上说法都不

对6、语句while(!E);中的表达式!E等价于________。A、E=

19、=0B、E!=1C、E!=0D、E==17、下面程序段的运行结果是_,

循环次数为。

intn=0;while(n++viodmain(){intnum=0;while(numvoidmain(){int

y=10;do{y--;}while(--y);printf(%dn,y--);}A、-1B、0C、1D、812、

若i为整型变量,则以下循环执行次数是_____。

for(i=2;i==0;)printf(%d,i--);A、无限次B、0次C、1次D、2次

13、执行语句for(i=1;i++=’a’s

20、tr[i]voidmain(){inti,j,a[10][10];//生成杨辉三角形

for(i=0;ivoidmain(){inti,j,n,m,mini,minj;doublea[4][4];prin

tf(输入数组行和列数n、m:);scanf(%d%d,printf(输入%d行%d列的

第 19 页

数组元素:

n,n,m);mini=minj=0;for(i=0;ivoidmain(){charstr[80];inti,n=0

;printf(请输入一个字符串:n);gets(s

21、

tr);for(i=0;str[i];i++)-58-if((str[i]=astr[i]voidmain(){cha

rch,str[80];inti,n;printf(输入一个字符:);scanf(%c,printf(输

入一个字符

串:);getchar();gets(str);for(i=0,n=0;str[i];i++)if(str[i]=

=ch)n++;printf(在字符串中与%c相同的字母有%d个!n,ch

22、,n);5、

#includevoidmain(){chara[100],b[50];inti,j;printf(请输入第

一个字符串:);scanf(%s,a);printf(请输入其次个字符

串:);scanf(%s,b);for(i=0;a[i];i++);//将i定位到第一个字符串

的末尾‘/0’处for(j=0;a[i]=b[j];j++,i++);//将其次个字符串的

内容存放在第一个字符串的后面printf(连接后的字符串为:%sn,a);

23、}6、

#includevoidmain(){chara[100],b[100];inti;printf(请输入一个

字符串:);scanf(%s,a);for(i=0;b[i]=a[i];i++);printf(复制字符

串为:%sn,b);-59-}7、

#includevoidmain(){inta[20],i,sum=0,num=0;printf(“任意输入

20个整数:”);for(i=0;i0{sum=sum+a[i];num++;}}printf(“正数

个数为:%d正数的和为:%d”,n

第 20 页

24、um,sum);}第七章一、单项选择题1、B2、D3、C4、D5、A6、

A7、B8、D9、C10、D11、B12、A13、B14、B15、A16、C17、A18、C19、

C20、A21、D22、D23、B24、C25、C26、C27、A28、B29、A30、D31、

C32、A33、C34、D35、C二、填空题1、全局或外部2、文件3、return4、

9三、程序填空题1、xx*x+12、

doubley=1y=y*xm=fun(a,4)+fun(b,4)-fun(a+b,3)3、s=0b=b*i4、

-ffun(10)5、doublemax6、1.0/(i*i)7、

、xpintf(“yes”)printf(“no”)yireturny8

sum(a,5)totals=s+array[i]9、fib(n-1)fib(n-2)10、m=nm11、

intiiintfun(intm);voidmain(){inti,total=0;for(i=100;ivoidco

nnect(char[],char[]);voidmain(){chara[100],b[50];printf(请

输入第一个字符串:);gets(a);printf(请输入其次个字符

串:);gets(

26、b);connect(a,b);printf(连接后的字符串

为:%s,a);}voidconnect(chara[],charb[]){inti,j;-61-for(i=0;

a[i];i++);for(j=0;a[i]=b[j];i++,j++);}3、

#includevoidmain(){doublef(int,int);intmax_u=-20,max_v=-20,

m,n;doublemax=0;for(m=-20;mvoidmain(){intjc(int);intx,y,z,t

otal;printf(Inputx,y,z

27、:);scanf(%d%d%d,x,total=jc(x)+jc(y)+jc(z);printf(Sum=%d

n,total);}intjc(intn){if(n==1)return1;elsereturnn*jc(n-1);}

第 21 页

第八章一、单项选择题-62-1、B2、D3、D4、A5、B6、D7、B8、A9、

A10、B11、A12、A13、C14、C15、C16、C17、C18、C19、A20、A21、

B22、C23、B24、C25、D26、B27、D28、A29、B30、C31、A32、B二、

28、填空题1、4122、FGIJKLMN3、*(++p)4、50125、*p++6、++(*p)7、

4778、Hello9、ef10、8811、*三、程序填空题1、num=*bnum=*cnum2、

s1,s2p++*p23、*(a+i)=*(a+j)*(a+j)=t4、gets(s)或

scanf(“%s”,s)((*p=’a’*p=’A’*pvoidmain(){voidinput(int

*a,intn);voidtrim(int*a,intn);voidoutput(int*a,intn);inta[1

0];

29、

input(a,10);trim(a,10);output(a,10);}voidinput(int*a,intn){

inti;for(i=0;i*(a+i))了min=i;//找最小数

i=*(a+0);*(a+0)=*(a+min);*(a+min)=i;//最小数放在开

头}voidoutput(int*a,intn){inti;for(i=0;ivoidmain(){charstr[

80];inti,n=0;printf(请输入一个字符串:

n);gets(str);for(i=0;*(str+i);i++)if((*(str+i)=a*(str+i)-64

-voidmain(){charstr[80],ch;inti,count=0;printf(“请输入一个

字符:”);scanf(“%c”,printf(“请输入一个字符串,以回车结

束:”);gets(str);for(i=0;*(str+i);i++)if(*(str+i)==ch)coun

t++;printf(“相同字符个数为%dn”,count);}4、

#includevoidmain(){charch,str[80];inti,n=0;printf(请输入一

第 22 页

串:);scanf(%s,str);//gets(str);for(i=0,n=0;*(str+i);i++)if

(*(str+i)=0*(str+i)voidmain(){chara[100],b[50];inti,j;print

f(请输入第一个字符串:);scanf(%s,a);printf(请输入其次个字符

串:);scanf(%s,b);for(i=0;*(a+i);i++);//将i定位到

32、第一个字符串的末尾‘/0’处

for(j=0;*(a+i)=*(b+j);j++,i++);//将其次个字符串的内容存放在

第一个字符串的后面printf(连接后的字符串为:%sn,a);}6、

#includevoidmain(){voidcopy(char*a,char*b,intm);chara[100],

b[100];-65-intm;printf(

请输

);scanf(%s,a);printf(

);scanf(%d,copy(a,b,m);printf(

为:%sn,b);}voidcopy(char*a,char*b,intm)for(i=0;*(b+i)=*(a+

m-1+i);i++);}第九章一、单项选择题1、C2、C3、D4、B5、D6、C7、

C8、D9、C10、D11、B12、A13、A二、填空题1、p-no=1234;或者

(*p).no=1234;2、

(1)intlink*head(2)head-datahead-next(3)head-data三、程序填

空题1、structWorkers[10

34、]s[i].num,s[i].name,s[i].jbpay,s[i]zwpaymax=imin=i

四、程序改错题structemp改为:

改struct{charname[10];floatjbg;floatfdg;floatzc;};

为:}emp;scanf(“%s%d%d%d”,emp[i].name,emp[i].jbg,emp[i].f

dg,emp[i],

第 23 页

为:

scanf(%s%f%f%f,emp[i].name,emp[i].jbg,emp[i].fdg,emp[i].zc);

五、编程题1、

#includestructStudent{intnum;charname[20];floatscore[3];-66

-};voidmain(){structStudents[10];intmax=0,i,n;printf(n=);sc

anf(%d,for(i=0;i#defineSWAP(a,b)t=a;a=b;b=t;voidmain(){inta

,b,t;printf(“请任意输入两个整

数:”);scanf(“%d%d”,SWAP(a,b);printf(“交换后的结果为

36、:%d,%d”n,a,b);}2、

#include#defineMIN(a,b,c)ab?(bc?c:b):(ac?c:a)voidmain(){int

a,b,c;-67-printf(“

数:

请任意输入三

数”);scanf(“%d%d%d”,a,printf(“

为:%dn”,MIN(a,bc));}第十一章一、单项选择题1、A2、B3、C4、

D5、C6、C7、B二、填空题1、wr2、文本二进制文件结束13、fclose4、

开头后rewindfseek5、fgetcfscanffgetsfscanffscanffread

37、6、fputcfprintffputsfprintffprintffwrite三、程序填

空题1、”r”m++fpin四、编程题1、

#include#includevoidmain(){FILE*fp;inta[6]={80,90,72,64,59,

92};if((fpout=fopen(e:,wb))==NULL){printf(Cannotope

nthisfile!n);exit(0);}fwrite(a,sizeof(int),6,fp);fclose(fpo

ut);}2、#inc

38、

lude#includevoidmain()-68-{FILE*fp;intnum,max=0,min==0

第 24 页

,avg,n=0;if((fp=fopen(e:testtxt,r))==NULL){printf(Cannotop

enthisfile!n);exit(0);}while(!feof(fp)){fscanf(fp,“%d”,n+

+;sum=sum+num;if(maxnum)min=num;}avg=sum/n;printf(最“大值

为n”,max);printf(最“

39、小值为n”,min);printf(

n”,avg);fclose(fp);}-69-

第 25 页

平“均值为


本文标签: 输入 程序 语句 输出 循环