C语言部分编程题答案Word文档格式.docx

上传人:b****8 文档编号:22959265 上传时间:2023-02-06 格式:DOCX 页数:24 大小:20.25KB
下载 相关 举报
C语言部分编程题答案Word文档格式.docx_第1页
第1页 / 共24页
C语言部分编程题答案Word文档格式.docx_第2页
第2页 / 共24页
C语言部分编程题答案Word文档格式.docx_第3页
第3页 / 共24页
C语言部分编程题答案Word文档格式.docx_第4页
第4页 / 共24页
C语言部分编程题答案Word文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C语言部分编程题答案Word文档格式.docx

《C语言部分编程题答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言部分编程题答案Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

C语言部分编程题答案Word文档格式.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1