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 页
平“均值为
版权声明:本文标题:c语言复习题及参考答案x 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710253834a564575.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论