C语言课后答案.docx

上传人:b****6 文档编号:6960325 上传时间:2023-01-13 格式:DOCX 页数:28 大小:23.24KB
下载 相关 举报
C语言课后答案.docx_第1页
第1页 / 共28页
C语言课后答案.docx_第2页
第2页 / 共28页
C语言课后答案.docx_第3页
第3页 / 共28页
C语言课后答案.docx_第4页
第4页 / 共28页
C语言课后答案.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言课后答案.docx

《C语言课后答案.docx》由会员分享,可在线阅读,更多相关《C语言课后答案.docx(28页珍藏版)》请在冰豆网上搜索。

C语言课后答案.docx

C语言课后答案

第3章

 

三、编程题

1.编写程序,输入一个非负数,输出以此数为半径的圆周长以及面积。

#include"stdio.h"

#definePI3.1415

voidmain()

{

floatr,area,circumference;

scanf("%f",&r);

area=PI*r*r;

circumference=2*r*PI;

printf("area=%6.2f\ncircumference=%6.2f\n",area,circumference);

}

2.编写程序,输出下面结果,注意,双引号也要输出:

“I'mastudent!

#include

voidmain()

{

printf("\"I\'mastudent!

\"\n");

}

3.编写程序,输入一个小写字母,将其转换为大写字母输出。

例如输入b,则输出B。

提示:

小写字母和对应的大写字母的ASCII码值相差32。

voidmain()

{

charch;

ch=getchar();

ch-=32;

putchar(ch);

//printf("%c",ch);

}

4.编写程序,输入一个华氏温度f,输出其相应的摄氏温度c。

华氏温度和摄氏温度的转换公式为:

#include

voidmain()

{

floatf,c;

scanf(“%f”,&f);

c=5.0*(f-32)/9;

printf(“华氏温度%5.2f转换为摄氏温度为:

%5.2f\n”,f,c);

}

第4章

三、编程题

1.输入一个整数,判断这个整数是奇数还是偶数(提示:

整数的奇偶性可以利用取余运算符%判定)。

#include

voidmain()

{

inta;

scanf("%d",&a);

if(a%2)

printf("奇数\n");

else

printf("偶数\n");

}

2.编写程序,输入一个24小时制的时间,转换为12小时制时间后进行输出。

以13点15分为例,输入:

13:

15,则输出:

下午1:

15。

#include

voidmain()

{

inthour,minute;

scanf("%d:

%d",&hour,&minute);

if(hour>12)hour=hour-12;

printf("%d:

%d\n",hour,minute);

}

3.输入年号,判断它是否是闰年(如果年号能被400整除,或能被4整除,而不能被100整除,则是闰年,否则不是)。

voidmain()

{

intyear;

scanf("%d",&year);

if(year%400==0||(year%4==0&&year%100==0))

printf("%d是闰年\n",year);

else

printf("%d不是闰年\n",year);

}

4.输入一个字符,如果是大写字母则输出对应的小写字母,如果是小写字母则输出相应的大写字母,如果都不是则原样输出。

#include

voidmain()

{

charch;

scanf("%c",&ch);

if(ch>='a'&&ch<='z')

ch-=32;

else

if(ch>='A'&&ch<='Z')

ch+=32;

printf("\n%c\n",ch);

}

5.设计一个简单的计算器程序,能输入整型运算数和基本运算符(+,-,*,/),输出计算结果。

例如:

输入2+6,输出2+6=8。

#include

main()

{

floata,b,result;

charop;

scanf("%f%c%f",&a,&op,&b);

switch(op)

{

case'+':

result=a+b;printf("=%f",result);break;

case'-':

result=a-b;printf("=%f",result);break;

case'*':

result=a*b;printf("%f",result);break;

case'/':

if(b==0.0)printf("error!

\n");

result=a/b;

printf("=%f",result);

default:

printf("errorduetotheillegalinput!

\n");

}

}

第5章

三、编程题

1.编写程序,显示100~200之间能被7除余2的所有整数。

#include"stdio.h"

main()

{inti;

for(i=100;i<=200;i++)

{if(i%7==2)

printf("\t%d\t",i);

}

}

2.输入n个整数,求这n个整数中的最大数、最小数和偶数平均数,并输出。

#include

voidmain()

{

inti,n,data,max=0,min=0,even=0,evennumber=0;

printf("Pleaseinputthenumberofdata:

");

scanf("%d",&n);

printf("Pleaseinputthedata:

\n");

scanf("%d",&data);

max=data;

min=data;

if(data%2==0)

{

even=even+data;

evennumber++;

}

for(i=1;i

{

scanf("%d",&data);

if(data>max)

max=data;

else

if(data

min=data;

if(data%2==0)

{

even=even+data;

evennumber++;

}

}

printf("Themaxis%d\nTheminis%d\nTheaverageofevenis%5.2f\n",max,min,(float)(even)/evennumber);

}

3.输入一串字符,以回车作为结束标志。

统计并输出这串字符中大写字母、小写字母和数字字符的个数。

#include

voidmain()

{

intupper=0,lower=0,number=0;

charletter;

while((letter=getchar())!

='\n')

{

if(letter>='a'&&letter<='z')lower++;

elseif(letter>='A'&&letter<='Z')upper++;

elseif(letter>='0'&&letter<='9')number++;

}

printf("thenumberofuppercaseis:

%d\n",upper);

printf("thenumberoflowercaseis:

%d\n",lower);

printf("thenumberofnumberis:

%d\n",number);

}

4.输出九九乘法表。

#include

voidmain()

{

inti,j;

for(i=1;i<=9;i++)

{

for(j=1;j<=i;j++)

printf("%d*%d=%-3d",i,j,i*j);

printf("\n");

}

}

5.编写程序,输出3~1000之间全部素数。

#include

#include"math.h"

voidmain()

{

intk,data,tag;

for(data=3;data<=1000;data++)//外层循环,用来产生2~1000之间的整数

{

tag=0;//tag用于表示数i是否是素数,没有判断前先假定是素数

for(k=2;k<=sqrt(data)&&!

tag;k++)//内层循环用来判断data是否有约数

{

if(data%k==0)

tag=1;

}

if(tag==1)printf("%4d",data);//如果i是素数,则输出

}

}

6.输入一个三位数,判断其是否是“水仙花数”。

水仙花数是指3位数中的各位数字的立方和等于这3位数本身。

如153=1*1*1+5*5*5+3*3*3。

#include"stdio.h"

voidmain()

{

intS,a,b,c;

printf("请输入一个3位数:

");

scanf("%d",&S);

a=S/100;b=S%100/10;c=S%10;

if(a*a*a+b*b*b+c*c*c==S)

printf("%d是水仙花数。

",S);

else

printf("%d不是水仙花数。

\n",S);

}

7.编程求Fibonacci数列的前40个数。

该数列的生成方法是:

F1=1,F2=1,Fn=Fn-1+Fn-2(n>=3)(即从第三个数起,每个数等于前2个数之和)。

#include"stdio.h"

voidmain()

{

intf[40],n;

f[0]=1;

f[1]=1;

printf("Fibonacci数列的前40个数是:

%d\t%d\t",f[0],f[1]);

for(n=2;n<40;n++)

{

f[n]=f[n-1]+f[n-2];

printf("%d\t",f[n]);

}

}

8.一个穷人找到一个百万富翁,给他商讨一个换钱计划如下:

我每天给你十万元,而你第一天只需给我一元钱,第二天给我二元钱,第三天给我四元钱,……,即我每天都给你十万元,你每天给我的钱都是前一天的两倍,直到满一个月(30天)。

百万富翁很高兴地接受了这个换钱计划。

请编写程序计算满一个月时,穷人给了富翁多少钱,而富翁又给了穷人多少钱。

#include

voidmain()

{

longpoor=100000,rich=1,i;

for(i=2;i<=30;i++)

{

poor=poor+100000;

rich=rich*2;

}

printf("Moneyofpoorgivingrichis%ld\nMoneyofrichgivingpooris%ld\n",poor,rich);

}

9.猴子吃桃问题。

猴子第一天摘下若干桃子,立即吃了一半,不过瘾又多吃了一个。

第二天早上又将剩下的桃子吃了一半,又多吃了一个。

以后的每天早上都是吃了前一天剩下的一半加一个。

到第10天早上时只剩下一个桃子了。

编写程序,求猴子第一天共摘了多少桃子。

/************************************************************************/

/*有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个*/

/*到了第10天就只余下一个桃子。

(C语言实现)*/

/*用多种方法实现求出原来这群猴子共摘了多少个桃子。

*/

/************************************************************************/

/*运行环境:

VC++6.0*/

/************************************************************************/

#include"stdio.h"

main()

{

inti,j,k;/*j是最后的桃子数,k是中间变量,也是桃子总数*/

j=1;

for(i=9;i>0;i--)

{

k=(j+1)*2;

j=k;

}

printf("%total=%d\n",k);

}

第6章

三.1.#include

#definen10

voidmain()

{inta[n],i,count1=0,count2=0,sum=0;floatave;

for(i=0;i

{scanf("%d",&a[i]);

sum+=a[i];

if(a[i]>80)

count1+=1;

else

if(a[i]<60)

count2+=1;

}

ave=sum/n;

printf("%d个优秀,%d个不及格,平均分:

%f。

",count1,count2,ave);

}

2.#include

#definen10

voidmain()

{inta[n],i,j,k,max,min;

for(i=0;i

{scanf("%d",&a[i]);

if(!

i)

{max=min=a[i];

j=k=i;

}

else

{if(max

{max=a[i];

j=i;

}

else

if(min>a[i])

{min=a[i];

k=i;

}

}

}

printf("最大值%d在第%d位,最小值%d在第%d位。

",max,j+1,min,k+1);

}

3.#include

#include

voidmain()

{chars[20],ch;

inti,n;

printf("请输入字符串:

");

gets(s);

n=strlen(s);

for(i=0;i

{ch=s[i];

s[i]=s[n-1-i];

s[n-1-i]=ch;

}

printf("逆序存放的字符串:

");

puts(s);

}

4.#include

#defineN10

voidmain()

{inti,j,n,a[N+1];

printf("请输入%d个由小到大排列的整数:

",N);

for(i=0;i

scanf("%d",&a[i]);

printf("请输入要插入的数:

");

scanf("%d",&n);

for(i=0;i

if(a[i]>n)

{j=i;

break;

}

if(i==N)

j=i;

for(i=N-1;i>=j;i--)

a[i+1]=a[i];

a[j]=n;

printf("插入后的排列:

");

for(i=0;i<=N;i++)

printf("%d",a[i]);

}

5.#include

#defineN3

voidmain()

{inti,j,a[N][N],sum=0;

printf("请输入%d*%d矩阵的元素:

",N,N);

for(i=0;i

for(j=0;j

{scanf("%d",&a[i][j]);

if(i==j)

sum+=a[i][j];

}

printf("主对角线元素之和:

%d。

",sum);

}

6.#include

#include

voidmain()

{inti,j,n,k=0,b[300];

for(i=1;i<300;i++)

{n=int(sqrt(i));

for(j=2;j<=n;j++)

{if(i%j==0)

break;

}

if(j>n)

{b[k]=i;

k++;

}

}

for(i=0;i

printf("%5d",b[i]);

}

7.#include

#defineN7

voidmain()

{inti,j,k,a[N],temp;

printf("请输入%d个整数:

",N);

for(i=0;i

scanf("%d",&a[i]);

for(i=0;i

{k=i;

temp=a[i];

for(j=i+1;j

if(temp>a[j])

{k=j;

temp=a[j];

}

if(k!

=i)

{a[k]=a[i];

a[i]=temp;

}

}

printf("排序后的数列:

");

for(i=0;i

printf("%3d",a[i]);

}

8.#include

voidmain()

{inti=0,count1=0,count2=0,count3=0;

chars[20];

printf("请输入字符串:

");

gets(s);

while(s[i]!

='\0')

{if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')

count1++;

else

if(s[i]>='0'&&s[i]<='9')

count2++;

elsecount3++;

i++;

}

printf("字符%d个,数字%d个,其他%d个。

",count1,count2,count3);

}

9.#include

#include

voidmain()

{chars[20],ch;inti=0;

printf("请输入字符串:

");

gets(s);

while(s[i]!

='\0')

{s[i]+=3;

if(s[i]>'z')

s[i]-=26;

i++;

}

printf("加密后:

");

puts(s);

}

10.#include

#include

voidmain()

{chars1[20],s2[20];inti=0,j=0;

printf("请输入字符串1:

");

gets(s1);

printf("请输入字符串2:

");

gets(s2);

while(s1[i]!

='\0')

i++;

s1[i]=s2[j];

do

{i++;

j++;

s1[i]=s2[j];

}

while(s2[j]!

='\0');

printf("连接后:

");

puts(s1);

}

11.#include

#include

voidmain()

{chars1[20],s2[20],s3[40];inti=0,j=0,k=0;

printf("请输入按字母序排列的字符串1:

");

gets(s1);

printf("请输入按字母序排列的字符串2:

");

gets(s2);

while(s1[i]!

='\0'&&s2[j]!

='\0')

{if(s1[i]

{s3[k]=s1[i];

k++;i++;

}

else

{s3[k]=s2[j];

k++;j++;

}

}

while(s1[i]!

='\0')

{s3[k]=s1[i];

k++;i++;

}

while(s2[j]!

='\0')

{s3[k]=s2[j];

k++;j++;

}

s3[k]='\0';

printf("合并后的字符串:

");

puts(s3);

}

12.#include

voidmain()

{inti,j,a[5][5];

for(i=0;i<5;i++)

for(j=4;j>=0;j--)

{if(j>=i)

a[i][j]=1;

else

a[i][j]=a[i][j+1]+1;

}

for(i=0;i<5;i++)

{for(j=0;j<5;j++)

printf("%3d",a[i][j]);

printf("\n");

}

}

13.#include

voidmain()

{inti,j,a[8][8];

for(i=0;i<8;i++)

for(j=0;j<8;j++)

{if(j==i||(i+j)==7)

a[i][j]=1;

else

a[i][j]=0;

}

for(i=0;i<8;i++)

{for(j=0;j<8;j++)

printf("%3d",a[i][j]);

printf("\n");

}

}

14.#include

voidmain()

{inti,j,sum,a[5][3]={20,30,26,30,20,25,25,50,20,46,15,10,35,15,12};

for(i=0;i<5;i++)

{sum=0;

for(j=0;j<3;j++)

sum+=a[i][j];

switch(i)

{case0:

printf("第一个");break;

case1:

printf("第二个");break;

case2:

printf("第三个");break;

case3:

printf("第四个");break;

case4:

printf("第五个");break;

}

printf("企业的总产值是:

%d万元。

\n",sum);

}

for(j=0;j<3;j++)

{sum=0;

for(i=0;i<5;i++)

sum+=a[i][j];

switch(j)

{case0:

printf("A");break;

case1:

printf("B");break;

case2:

printf("C");break;

}

printf("产品的总产值是:

%d万元。

\n",sum);

}

}

15.#include

#defineN5

voidmain()

{inti,j,a[N][N],b[N];

printf("请输入%d个数:

",N);

for(i=0;i

scanf("%d",&b[i]);

for(i=0;i

{for(j=i;j

a[i][j]=b[j-i];

for(j=0;j

a[i][j]=a[j][i];

}

for(i=0;i

{for

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

当前位置:首页 > 考试认证 > 其它考试

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

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