C语言部分编程题答案Word文档格式.docx
- 文档编号:22959265
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:24
- 大小:20.25KB
C语言部分编程题答案Word文档格式.docx
《C语言部分编程题答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言部分编程题答案Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
intcount1,count2,count3;
count1=0;
count2=0;
count3=0;
while(ch!
#'
{
if((ch>
Z'
)||(ch>
z'
))
count1++;
elseif(ch>
count2++;
else
count3++;
scanf("
}
字母个数:
count1);
数字个数:
count2);
其他字符个数:
count3);
3.编写程序,输入一个正整数,计算并显示该整数的各位数字之和,例如,整型数1987的各位数字之和是1+9+8+7,等于25.(P135(17))
(1)只求和
intn,sum;
sum=0;
%d"
n);
while(n)
sum+=n%10;
n/=10;
sum=%d\n"
sum);
(2)输出各位数字并求和
%d"
n%10);
sum+=n%10;
n/=10;
+%d"
=%d\n"
4.在歌手大奖赛中有若干裁判为歌手打分,计算歌手最后得分的方法是:
去掉一个最高分,去掉一个最低分,去剩余成绩的平均分。
编写程序输入一个歌手的若干成绩,以-1作为输入结束标记,计算歌手的最后打分。
(P135(18))
(1)求最高分
intscore,max;
score);
max=score;
while(score!
=-1)
if(max<
score)
max=score;
max=%d\n"
max);
(2)求最低分
intscore,min;
min=score;
if(min>
min=score;
min=%d\n"
min);
(3)求平均分
intscore,max,min,count,sum,avg;
count=0;
count++;
sum+=score;
if(count>
2)
avg=(sum-max-min)/(count-2);
avg=%d\n"
avg);
Thedataistooless.\n"
5.输出所有的水仙花数
(1)用for语句完成
inti,bw,sw,gw;
for(i=100;
i<
1000;
i++)
bw=i/100;
sw=i%100/10;
gw=i%10;
if(bw*bw*bw+sw*sw*sw+gw*gw*gw==i)
printf("
i);
(2)用多重循环完成
intn,bw,sw,gw;
for(bw=1;
bw<
10;
bw++)
for(sw=0;
sw<
sw++)
for(gw=0;
gw<
gw++)
{
n=bw*100+sw*10+gw;
if(bw*bw*bw+sw*sw*sw+gw*gw*gw==n)
printf("
n);
}
6.编写程序求a+aa+aaa+…+aa…a,其中a是一个数字。
例如:
3+33+333+3333+33333(此时n=5)。
要求a和n从键盘输入,输出格式为:
3+33+333+3333+33333=37035.(P134(13))
inta,n,sum,i,b;
%d%d"
a,&
b=0;
for(i=1;
=n;
b=b*10+a;
sum+=b;
(2)输出各项并求和
b=a;
sum=b;
b);
for(i=2;
7.假设数列中的每一项都比前一项大一个常量。
假设数列第一项为a,并且两个相邻项之间的差为d。
编写程序提示用输入数列的前两项,以及需要计算的项数k。
利用循环语句输出数列的前k项,并计算前k项的和。
(P134(14))
(1)逐项求和
inta1,a2,ai,k,d,sum,i;
%d%d%d"
a1,&
a2,&
k);
d=a2-a1;
ai=a1;
ai);
sum=a1;
=k;
ai+=d;
sum+=ai;
(2)按公式求和,效率更高
sum=(a1+(a1+d*(k-1)))*k/2;
8.输出九九乘法表
inti,j;
=9;
for(j=1;
j<
=i;
j++)
%5d"
j*i);
9.请为“百鸡问题”编写程序。
百鸡问题:
“鸡翁一,值钱五;
鸡母一,值钱三;
鸡雏三,值钱一。
百钱买百鸡,问鸡翁、母、雏各几只”。
(1)三重循环
intcock,hen,chick;
for(cock=0;
cock<
=100/5;
cock++)
for(hen=0;
hen<
=100/3;
hen++)
for(chick=0;
chick<
=100*3;
chick+=3)
if(cock+hen+chick==100&
cock*5+hen*3+chick/3==100)
cock=%d,hen=%d,chick=%d\n"
cock,hen,chick);
(2)双重循环
for(chick=0;
{
hen=100-cock-chick;
if(hen>
=0&
printf("
}
10.幼儿园有大、中、小三个班的小朋友。
分西瓜时,大班三人一个,中班四人一个,小班五人一个,正好分掉10个西瓜;
分苹果时,大班每人2人,中班每人3个,小班每人4人,正好分掉100个苹果。
编写程序求幼儿园共有多少个朋友。
intdb,zb,xb;
intmax_db,max_zb,max_xb;
intflag1,flag2;
if(3*10<
100/2)
max_db=3*10;
max_db=100/2;
if(4*10<
100/3)
max_zb=4*10;
max_zb=100/3;
if(5*10<
100/4)
max_xb=5*10;
max_xb=100/4;
大班\t中班\t小班\t总数\n"
for(db=0;
db<
=max_db;
db+=3)
for(zb=0;
zb<
=max_zb;
zb+=4)
for(xb=0;
xb<
=max_xb;
xb+=5)
flag1=db/3+zb/4+xb/5==10;
flag2=db*2+zb*3+xb*4==100;
if(flag1&
flag2)
%d\t%d\t%d\t%d\n"
db,zb,xb,db+zb+xb);
11.求3到100之间的所有素数。
每行输出五个
inti,j,count;
for(i=3;
=100;
i+=2)
for(j=2;
=i-1;
if(i%j==0)
break;
if(j==i)
%10d"
count++;
if(count%5==0)
12.定义函数求两个函数的最小公倍数,并在主函数中输入两个整数以后调用该函数。
编写主函数调用该函数。
(1)解法一
intgetlcm(intx,inty);
inta,b;
b);
lcm=%d\n"
getlcm(a,b));
intgetlcm(intx,inty)
intlcm;
if(x>
y)
lcm=x;
lcm=y;
while(!
(lcm%x==0&
lcm%y==0))
lcm++;
returnlcm;
(2)解法2
while(lcm%x||lcm%y)
13.用递归法输出整数1-10。
voidoutput(intfrom,intto);
output(1,10);
voidoutput(intfrom,intto)
if(from<
=to)
from);
output(from+1,to);
14.用递归方法计算Fibonacci的前20项。
intfabonacci(intn);
inti;
=20;
fabonacci(i));
intfabonacci(intn)
intr;
if(n>
r=fabonacci(n-1)+fabonacci(n-2);
r=1;
returnr;
15.输入两个字符串,输出较大的字符串。
string.h>
charstr1[80],str2[80],max_str[80];
gets(str1);
gets(str2);
r=strcmp(str1,str2);
if(r>
0)
strcpy(max_str,str1);
strcpy(max_str,str2);
puts(max_str);
16.编写函数str_len求字符串的长度,并在主函数中调用该函数,函数使用如下:
intstr_len(char*str);
chars[80];
gets(s);
len=%d\n"
str_len(s));
intstr_len(char*str)
intlen;
len=0;
while(*str!
\0'
len++;
str++;
returnlen;
17.输入三行四列的二维整形数组,求最大值及其行号、列号。
inta[3][4],i,j,max,row,col;
for(i=0;
3;
for(j=0;
4;
scanf("
a[i][j]);
max=a[0][0];
row=0;
col=0;
if(a[i][j]>
max)
max=a[i][j];
row=i;
col=j;
\n最大值为:
最大值的行号:
row);
最大值的列号:
col);
18.编写程序,输入10个学生的“C程序设计”课程的期中、期末成绩,计算出总评成绩,总评成绩为“30%*期中成绩+70%*期末成绩”,根据总评成绩的统计90-100、80-89、60-79、0-59这四个分数段各有多少人,输出拥挤情况,并按总评成绩降序输出学生的总评成绩。
(1)仅用main函数
doublescore1[10],score2[10],score3[10],temp;
inti,j,max_cur;
puts("
请输入10个学生的“期中成绩”:
%lf"
score1[i]);
请输入10个学生的“期末成绩”:
score2[i]);
score3[i]=score1[i]*0.3+score2[i]*0.7;
9;
max_cur=i;
for(j=i+1;
if(score3[max_cur]<
score3[j])
max_cur=j;
temp=score3[i];
score3[i]=score3[max_cur];
score3[max_cur]=temp;
按从高到低输出总评成绩:
%7.2f"
score3[i]);
(2)使用自定义函数
voidinput_score(doublescore[],intn);
voidcalculate_final_grade(doublet1[],doublet2[],doublet3[],intn);
voidsort(doublescore[],intn);
voidoutput_score(doublescore[],intn);
doublescore1[10],score2[10],score3[10];
input_score(score1,10);
input_score(score2,10);
calculate_final_grade(score1,score2,score3,10);
sort(score3,10);
output_score(score3,10);
voidinput_score(doublescore[],intn)
n;
score[i]);
voidcalculate_final_grade(d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 部分 编程 答案