c语言程序设计第5版课后答案(c语言设计第五版谭浩强答案)

admin 148 0

大家好,关于c语言程序设计第5版课后答案很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于c语言设计第五版谭浩强答案的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

一、求c语言程序设计第三版和c语言程序设计实验与习题指导答案

2.主函数main();主函数main()3.主函数main()4.函数首部;函数体5.{;}

6.顺序结构;选择结构;循环结构7..c;.obj;.exe

1.答:结构化程序设计是指,为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。顺序结构,选择结构,循环结构

2.答:算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:①用自然语言表示算法;②用流程图表示算法;③用伪代码表示算法;④用程序设计语言表示算法。

3.略4.略5.略1.3编程题1.答:

{floata=10,b=20,h=5,s;s=(a+b)*h/2;

{printf("******************************");printf("*helloworld*");printf("******************************");}

3.9;24.65.100;d6.(1)20

4.2,1;互换a,b的值5.6.66.0037.7

10.(1)65(2)65,A(3)3.14,123.46

(4)3.141600e+000,1.234560e+002(5)8765.432100(6)8.765432e+003

11.a=2b=5x=8.8y=76.34c1=65c2=9712.%d/%d;%d/%d=%.2f\n

scanf("%d%d",&x,&y);printf("\t\tx\ty\n");

printf("十进制数\t%d\t%d\n",x,y);printf("八进制数\t%o\t%o\n",x,y);printf("十六进制数\t%X\t%x\n",x,y);}

printf("请输入一个大写英文字母");scanf("%c",&ch);

printf("大写英文字母是%c\n",ch);printf("它的前导字符是%c\n",ch-1);printf("它的后续字符是%c\n",ch+1);}

printf("请输入一个三位整数\n");scanf("%d",&x);a=x/100;

printf("反向输出该整数:%d\n",y);}}

scanf("%d,%lf",&hour,&salaryday);

salary=hour*salaryday-hour*salaryday*0.1;

printf("请输入三个整数\n");scanf("%d%d%d",&a,&b,&c);

printf("交换前a=%d,b=%d,c=%d\n",a,b,c);t=a;a=c;c=b;b=t;

printf("交换后a=%d,b=%d,c=%d\n",a,b,c);}

(2)x>0&&x<=10(3)a==1.5&&b==1.5&&c==1.5

3.(1)0(2)1(3)1(4)0(5)1

4.c=15.-46.17.5,0,38.59.123

10.(cvb=='y'||cvb=='Y')&&(work>=3||college=='y'||college=='Y')&&age<=35

scanf("%lf%lf%lf",&a,&b,&c);

printf("三角形的三边为:%.llf,%.1lf,%.1lf\n",a,b,c);if(a+b>c&&a+c>b&&b+c>a){p=(a+b+c)/2;

area=sqrt(p*(p-a)*(p-b)*(p-c));

printf("三角形的面积为%.2lf\n",area);}else

scanf("%d,%d",&x,&y);if(x*x+y*y>1000)

printf("%d\n",(x*x+y*y)/100);else

#include"stdio.h"#include"math.h"main()

scanf("%lf",&x);if(x<-2)y=x*x-sin(x);elseif(x<=2)y=pow(2,x)+x;elsey=sqrt(x*x+x+1);

printf("x=%.2lfy=%.2lf\n",x,y);}

{longge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;

qian=x%10000/1000;shi=x%100/10;

if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/printf("thisnumberisahuiwen\n");else

printf("thisnumberisnotahuiwen\n");

scanf("%f,%,%f",p,s,w);if(s>3000)d=0.15elseif(s>=2000)d=0.1;elseif(s>=1000)d=0.08;elseif(s>=500)d=0.05;elseif(s>=250)d=0.02;elsed=0f=p*w*s*(1-d);printf("%f",f);}

printf("是否是本公司产品(y/n):");scanf("%c",&x);

if(x=='y'||x=='Y')

{printf("产品使用的年限:");scanf("%d",&year);

elseif(year<8)money=50;elsemoney=100;

printf("产品保修额是:%d\n",money);

printf("不是本公司产品,产品保修额是:%d\n",money);}}

printf("请输入取款额(≤2000):");scanf("%d",&money);

if(money>2000)printf("请输入取款额数≤2000!\n");elseif(money%50==0){num1=money/100;num2=(money-num1*100)/50;printf("需支付100元:%d张\n",num1);printf("需支付50元:%d张\n",num2);}elseprintf("输入钱数必须是50的倍数!\n");}

3.(1)i<10或i<=9(2)j%3!=0

4.(1)flag*(float)k/(k+1)或1.0*flag*k/(k+1)(2)flag=-flag5.(1)max=x

(2)x!=-1(3)scanf("%d",&x)

}while(1.0/p>1e-6);printf("%lf",s);}

scanf("%d,%d",&m,&n)if(m<n)

{t=mm=nn=t}a=m;b=n;t=m%nwhile(t)

{m=nn=tt=m%n;}printf("%d",n);}

scanf("%d,%d",&x,&y)for(y>0y--)s*=x

printf("%d,%d,%d\n",s%10,s/10%10,s/100%10);}

for(x=1x<20x++)for(y=1y<33y++){z=100-x-y

if((z%3)==0&&(5*x+3*y+z/3)==100)printf("x=%d,y=%d,z=%d\n",x,y,z)}}

{for(k=1;k<=4-j;k++)printf("");printf("****")printf("\n")}}

{for(k=1;k<=4-j;k++)printf("");for(k=1k<=2*j-1k++)printf("*")printf("\n")}}

程序分析:利用for循环控制在100~999之间,对每个数分解出个位、十位、百位。

#include<stdio.h>main(){inti,j,k,n;printf("waterflower'numberis:");for(n=100;n<1000;n++){i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10;/*分解出个位*/if(n==i*i*i+j*j*j+k*k*k){printf("%-5d",n);}}printf("\n");}

#include<stdio.h>main(){intx;for(x=1000;x>=3;x--)if(x%3==1&&x%5==2&&x%7==3){

printf("该校的学生人数是:%d人\n",x);break;}}

#include<stdio.h>main(){intx=12,i=1;while(1)

{if((x+20+i)==2*(x+i))break;i++;}printf("小明母亲在%d年后比小明的年龄大一倍\n",i);printf("那时小明年龄是:%d岁,小明母亲年龄是:%d岁\n",x+i,x+20+i);}

#include"stdio.h"#include"math.h"

#defineF(a)a*a+sqrt(3*a*a+2*a+1)main()

f=4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x)printf("%f\n",f);}

1.(1)2345(2)10010(3)QuickC

(4)1000001000001000001000001(5)Language

(6)LanguageProgramming2.(1)j+=2(2)a[i]>a[j]3.(1)i=1(2)x[i-1]

{inta[N]={1,2,3,4,5,6,7,8,9,10,osum=0,qsum=0,j;for(j=0;j<10;j++)

printf("osum=%d,qsum=%d\n",osum,qsum);}

{inta[N]={10,20,30,40,50,60,70,80,90},j,k,x;scanf("%d",&x);for(j=0;j<N;j++)

if(x<a[j])break;if(j==N)a[N-1]=x;else

{for(k=N-1;k>j;k--)a[k]=a[k-1];a[j]=x;}

{inta[M][M]={{1,2,3},{2,4,5},{3,5,6}},j,k,flag=1;;for(j=0;j<M;j++)

for(k=0;k<M;k++)if(a[j][k]!=a[k][j]){flag=0;break;}if(flag)printf("ok");elseprintf("NO");}

#include"stdio.h"#include"string.h"main()

{charc1[10],c2[10],j;gets(c1);gets(c2);

for(j=0;(c1[j]==c2[j])&&c1[j]&&c2[j];j++);if(c1[j]>c2[j])printf("%d\n",1);if(c1[j]<c2[j])printf("%d\n",-1);if(c1[j]==c2[j])printf("%d\n",0);}

#include"stdio.h"#include"string.h"#defineM3#defineN80main()

{chara[M][N],j,k,n[5]={0};for(j=0;j<M;j++)gets(a[j]);

if(a[j][k]>='A'&&a[j][k]<='Z')n[0]++;

elseif(a[j][k]>='a'&&a[j][k]<='z')n[1]++;elseif(a[j][k]>='0'&&a[j][k]<='9')n[2]++;elseif(a[j][k]=='')n[3]++;elsen[4]++;

for(j=0;j<5;j++)printf("%4d",n[j]);}

1.(1)2,1(2)10#30#(3)FOUR,P(4)60

{intn1,n2,n3,t;int*p1,*p2,*p3;

printf("pleaseinput3number:n1,n2,n3:");scanf("%d,%d,%d",&n1,&n2,&n3);p1=&n1;

if(*p1>*p2){t=*p1;*p1=*p2;*p2=t;}

if(*p1>*p3){t=*p1;*p1=*p3;*p3=t;}if(*p2>*p3){t=*p2;*p2=*p3;*p3=t;}

printf("thesortednumbersare:%d,%d,%d\n",n1,n2,n3);}

#include"stdio.h"#defineN3main()

{inta[N],*p=a;for(;p-a<N;p++)scanf("%d",p);p=a+N-1;

for(;p-a>=0;p--)printf("%d",*p);}

intj,minl=0,maxl=0;for(j=0;j<10;j++)

scanf("%d",a+j);for(j=0;j<10;j++)

{if(a[maxl]<*(a+j))maxl=j;if(a[minl]>*(a+j))minl=j;}

j=a[0];a[0]=a[minl];a[minl]=j;j=a[9];a[9]=a[maxl];a[maxl]=j;for(j=0;j<10;j++)printf("%d",*(a+j));}

输入阵列如下:123456789101112输出阵列如下:

{inta[M][N]={1,2,3,4,5,6,7,8,9,10,11,12},k,j,*p=&a[0][0],t;for(k=0,j=M*N-1;k<j;k++,j--)

{t=*(p+k);*(p+k)=*(p+j);*(p+j)=t;}for(k=0k<Mk++){for(j=0j<Nj++)

printf("%4d",a[k][j]);printf("\n");

printf("pleaseinputastring:\n");scanf("%s",str);len=0;

printf("thestringhas%dcharacters.\n",len);}

#include"string.h"#include"stdio.h"main(){

char*str1[5],ch[5][20],k,t,j,*c;voidsort(char**);for(k=0;k<5;k++){str1[k]=ch[k];gets(str1[k]);}for(k=0;k<7;k++)

for(j=k+1;j<5;j++)if(strcmp(*(str1+t),*(str1+j))>0)t=j;c=*(str1+t);

*(str1+t)=*(str1+k)*(str1+k)=c}

for(k=0;k<5;k++)puts(str1[k]);}

1.1202.x3.3,2,2,34.fac/i5.8,176.97.1.0/(i*i)8.

fun-in:30,20,10fun-end:1015,35,105010,20,309.01234510.9363611.(1)r+b[k](2)*x

14.(1)*x(2)t15.(1)'\0'(2)n++16.024

while((ch=getchar())!='\n')

{if(ch>='a'&&ch<='z')ch=ch-32;putchar(ch);}}

doubleexpp(intn){intk,fac=1;doublesum=1;

voidfun(inta,intb,int*c,int*d);scanf("%d%d",&a,&b);fun(a,b,&c,&d);

voidfun(inta,intb,int*c,int*d){if(b)

main(intargc,char*argv[]){intk;

printf("argc=%d\n",argc);for(k=1;k<argc;k++)printf("%s\n",argv[k]);}

1.所有结构体成员所占存储空间的总和2.与占用存储空间最大的那个成员相等

3.(1)structsatype(2)3(3)sa.a(4)9(5)psa=&sa4.805.structnode6.0

charname[20];charsex;floatscore;};main()

{structstudents[20],temp;intj,k,man=0,woman=0;

floatsumman=0,sumwoman=0,aveman,avewoman;for(k=0;k<20;k++)

{scanf("%ld%s%c%f",&s[k].num,s[k].name,&s[k].sex,&s[k].score);if(s[k].sex=='m')

{summan+=s[k].score;man++;}else

{sumwoman+=s[k].score;woman++}}

printf("%d\t%f\t%d\t%f\n",man,aveman,woman,avewoman);for(k=0;k<19;k++)

if(s[j].score<s[j+1].score)

{temp=s[j];s[j]=s[j+1];s[j+1]=temp;}printf("thesortednumbers:\n");for(k=0;k<20;k++)

printf("%ld\t%s\t%c\t%5.1f\n",s[k].num,s[k].name,s[k].sex,s[k].score);}

1.rewind(文件指针)2."d1.dat","rb"3.stdin

4.文本文件;二进制文件5.(1)"w"

C语言程序设计实验与习题指导课后程序设计答案

#include<stdio.h>intmain(void){intcelsius,fahr;fahr=150;celsius=5*fahr/9-5*32/9;printf("fahr=%d,celsius=%d\n",fahr,celsius);return0;}

#include<stdio.h>intmain(void){intcelsius,fahr;celsius=26;fahr=9*celsius/5+32;printf("celsius=%d,fahr=%d\n",celsius,fahr);return0;}

#include<stdio.h>intmain(void){intaverage,math,eng,comp;math=87;eng=72;comp=93;average=(math+eng+comp)/3;printf("math=%d,eng=%d,comp=%d,average=%d\n",math,eng,comp,average);return0;}

#include<stdio.h>intmain(void){intn,a,b,c;n=152

printf("整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",n,c,b,a);return0;

#include<stdio.h>#include<math.h>intmain(void){intcelsius,fahr;printf("Entercelsius:");scanf("%d",&celsius);fahr=9*celsius/5+32;printf("fahr%d\n",fahr);return0;}

#include<stdio.h>#include<math.h>intmain(void){intmoney,year;doublerate,interest;printf("Entermoney,year,rate:");scanf("%d%d%lf",&money,&year,&rate);interest=money*pow(1+rate,year)-money;printf("interest=%.2f\n",interest);return0;}

#include<stdio.h>#include<math.h>intmain(void){doublex,y;printf("Enterx:");scanf("%lf",&x);

if(x<0){y=pow(x+1,2)+2*x+1/x;}else{y=sqrt(x);}

printf("y=f(%f)=%.2f\n",x,y);return0;

#include<stdio.h>intmain(void){intx,y;printf("Enternum1:");scanf("%d",&x);printf("Enternum2:");scanf("%d",&y);printf("%d+%d=%d\n",x,y,x+y);printf("%d-%d=%d\n",x,y,x-y);printf("%d*%d=%d\n",x,y,x*y);printf("%d/%d=%d\n",x,y,x/y);printf("%d%%%d=%d\n",x,y,x%y);return0;}

#include<stdio.h>intmain(void){inti,n,product;printf("Entern:");scanf("%d",&n);product=1;for(i=1;i<=n;i++){product=product*i;}printf("product=%d\n",product);return0;}

二、C语言程序设计教程(第二版) 周宇 课后答案

二、 1. I love China! printf("we are students.\n") 2. 6项目实训题参考答案 1.编写一个C程序,输出以下信息:******************** I am a student!******************** main(){ printf("********************\n"); printf(" I am a student!\n"); printf("********************\n");} 2222....已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。解: main(){ int a,b,c,v; a=10; b=20; c=15; v=a*b*c; printf("v=%d",v);}本程序运行结果为: v=3000第第第第2章章章章编制编制编制编制C程序的基础知识程序的基础知识程序的基础知识程序的基础知识一选择题 C B A B A C C二操作题 2 21. 3,2,-8,2 3.000000,2.500000,-8.000000 2. ABC DE FGH why is 21+35 equal 52 3. 3 1 4 3 2 3 1 2 4. aa bb cc abc A N项目实训题 1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。#define M 5 main(){ int n,c; n=2; c=M*n; printf("%d\n",c);} 2.编程求下面算术表达式的值。(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。(1)main(){ int a=7; float x=2.5,y=4.7; printf("%f\n",x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3; float x=3.5,y=2.5; printf("%f\n",(float)(a+b)/2+(int)x%(int)y);第三章第三章第三章第三章顺序结构程序设计顺序结构程序设计顺序结构程序设计顺序结构程序设计一选择题 A C D C C二操作题 1. x=3,a=2,b=3 2. z=12.700000 3. 1 2 1 a 2 1 2三三三三....编程题编程题编程题编程题编程题 1.某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。编写一个程序从键盘输入劳动时间和每小时工资,打印出应发工资。解:#include<stdio.h> main(){ float sj,gz,yfgz; printf("time,salary:"); scanf("%f,%f",&sj,&gz); yfgz=sj*gz*0.9; printf("total salary:%f\n",yfgz);}本程序运行结果为: time,salary:4,3<CR> total salary:10.800000 2.编写一个程序求出任意一个输入字符的ASCII码解:#include<stdio.h> main(){ char c; printf("Input a string:"); scanf("%c",&c); printf("%c ASCII is%d\n",c,c);}本程序运行结果为: Input a string:a<CR> a ASCII is 97 3、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付第四章第四章第四章第四章选择结构程序设计选择结构程序设计选择结构程序设计选择结构程序设计一、略二、B B A B C B A三、1. 1 0 2. 2 3 2 2 3. 10 20 0 4. ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’ ch>=’0’&&ch<=’9’ ch==’’ 5.-1四、上机操作 1.从键盘输入一个英文字母,如果是大写字母,则将它变为小写字母输出;如果是小写字母,则将其变为大写字母输出。#include<stdio.h> main(){char ch; ch=getchar(); if(ch>='A'&&ch<='Z') ch+=32; else if(ch>='a'&&ch<='z') ch-=32; putchar(ch); putchar('\n');} 2.根据输入的x值依据下列表达式,计算y的值。 2x(x>-1) y= 3(x=-1) 4+x(x<-1)解: main(){ float x,y; scanf("%f",&x); if(x>-1) y=2*x; else if(x==1) y=3; else y=4+x; printf("y=%f",y);}本程序运行结果为:-2<CR> y=2.000000 3.编写程序,输入一个整数,判断它是奇数还是偶数,若是奇数,输出“Is Odd“;若是偶数,输出“Is Even“。 main(){ int x; scanf("%d",&x); if(x%2==0) printf("Is Even\n"); else printf("Is Odd\n");} 4.设计应用程序,求二次方程ax2+bx+c=0的解。#include<math.h> main(){ float a,b,c,disc,x1,x2,p,q; scanf("%f,%f,%f",&a,&b,&c); if(fabs(a)<=1e-6) printf(" The equation is not a quadratic\n"); else{ disc=b*b-4*a*c; if(fabs(disc)< 1e-6) printf("x1=x2=%8.4f\n",-b/(2*a)); else if(disc>1e-6){x1=(-b+sqrt(disc)/(2*a)); x2=(-b-sqrt(disc)/(2*a)); printf("x1=%8.4f,x2=%8.4f\n",x1,x2);} else{ p=-b/(2*a); q=sqrt(-disc/(2*a)); printf("%8.4f+%x8.4fi\n",p,q); printf("%8.4f-%8.4fi\n",p,q);}}} 5555....按托运规则,行李不超过50公斤时,运费为0.15元/公斤,如超过50公斤,超过部分的运费为0.22元/公斤,现有行李w公斤,编写一个程序计算运费。解:#include<stdio.h> main(){ float w,f,x; printf("weight:"); scanf("%f",&w); if(w<=50) x=0.15*w; else x=0.15*50+0.22*(w-50); printf("money:%6.2f yuan\n",x);}本程序运行结果为: weight:20<CR> money:3.00 yuan weight:60<CR> money:9.70 yuan 6.某商场给与顾客购物的折扣率如下:购物金额<200元不打折 500元>购物金额>=200元 9折 1000元>购物金额>=500元 8折购物金额>=1000元 7.5折输入一个购物金额,输出打折率、购物实际付款金额。#include<stdio.h> main(){ float x,y,realx; scanf("%f",&x); if(x<=0){ printf("Error! You input a worry number!\n"); y=0;} else{ if(x<200) y=1.0; else if(x<500) y=0.9; else if(x<1000) y=0.8; else y=0.75;} if(y!=0){realx=x*y; printf("y=%f, the realx=%5.2f\n", y,realx);}}第五章第五章第五章第五章循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计一、选择题 C C A A D D第六章第六章第六章第六章数组数组数组数组、选择题 D A D A A C C A D二、程序阅读题 13 13 13 13 13 13第七章第七章第七章第七章函数函数函数函数一、选择题 B D C B B D A A D第第第第8888章章章章指针指针指针指针一、选择题 D A C C(D) D C D二、填空题 1. m 2.指针数组名 3. ABCDCD 4.49 5. 25

三、求C语言程序设计习题集与上机指导-第三版 (及答案)...

C语言程序设计第三版谭浩强课后习题答案完整版

1.5请参照本章例题,编写一个C程序,输出以下信息:

{printf(“**************************”);

printf(“**************************”);

1.6编写一个程序,输入a、b、c三个值,输出其中最大值。

printf(“请输入三个数a,b,c:\n”);

printf(“最大数为:“%d”,max);

{char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;

printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c%c”,c4,c5);

3.7要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

{ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;

printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);

(2)(float)(a+b)/2+(int)x%(int)y

printf(“%d,%d,%d,%d”,i,j,m,n);

3.12写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。

(1)a+=a(2) a-=2(3) a*=2+3(4)a/=a+a

(1) 24(2) 10(3) 60(4) 0(5) 0(6) 0

4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。

x=1.200000,y=2.400000,z=-3.600000

x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40

printf("a=%2d b=%2d c=%2d\n",a,b,c);

printf("x=%f,y=%f,z=%f\n",x,y,z);

printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);

printf("u=%6ld n=%9ld\n",u,n);

printf("%s%s%d%s\n","c1=’a’","or",c1,"(ASCII)");

printf("%s%s%d%s\n","c2=’a’","or",c2,"(ASCII)");

4.7用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入?

int a,b;float x,y;char c1c2;

scanf("a=%d_b=%d",&a,&b);

scanf("_x=%f_y=%e",&x,&y);

scanf("_c1=%c_c2=%c",&c1,&c2);

4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。

printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb);

4.9输入一个华氏温度,要求输出摄氏温度。公式为

输出要求有文字说明,取位2小数。

4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整形?抑二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:

putchar(c1);putchar(’\n’);putchar(c2);putchar(’\n’);

file:///C|/Documents and Settings/Administrator/桌面/C语言程序设计第三版谭浩强课后习题答案完整版.txt(第 1/19页)[2010-5-10 9:14:34]

file:///C|/Documents and Settings/Administrator/桌面/C语言程序设计第三版谭浩强课后习题答案完整版.txt

1.5请参照本章例题,编写一个C程序,输出以下信息:

{printf(“**************************”);

printf(“**************************”);

1.6编写一个程序,输入a、b、c三个值,输出其中最大值。

printf(“请输入三个数a,b,c:\n”);

printf(“最大数为:“%d”,max);

{char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;

printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c%c”,c4,c5);

3.7要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

{ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;

printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);

(2)(float)(a+b)/2+(int)x%(int)y

printf(“%d,%d,%d,%d”,i,j,m,n);

3.12写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。

(1)a+=a(2) a-=2(3) a*=2+3(4)a/=a+a

(1) 24(2) 10(3) 60(4) 0(5) 0(6) 0

4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。

x=1.200000,y=2.400000,z=-3.600000

x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40

printf("a=%2d b=%2d c=%2d\n",a,b,c);

printf("x=%f,y=%f,z=%f\n",x,y,z);

printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);

printf("u=%6ld n=%9ld\n",u,n);

printf("%s%s%d%s\n","c1=’a’","or",c1,"(ASCII)");

printf("%s%s%d%s\n","c2=’a’","or",c2,"(ASCII)");

4.7用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入?

int a,b;float x,y;char c1c2;

scanf("a=%d_b=%d",&a,&b);

scanf("_x=%f_y=%e",&x,&y);

scanf("_c1=%c_c2=%c",&c1,&c2);

4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。

printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb);

4.9输入一个华氏温度,要求输出摄氏温度。公式为

输出要求有文字说明,取位2小数。

4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整形?抑二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:

putchar(c1);putchar(’\n’);putchar(c2);putchar(’\n’);

{ case 5: printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);

printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);

case 4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);

printf("%d%d%d%d\n",indiv,ten,hundred,thousand);

case 3: printf("%d,%d,%d",hundred,ten,indiv);

printf("%d%d%d\n",indiv,ten,hundred);

case 2: printf("%d,%d",ten,indiv);

printf("%d%d\n",indiv,ten);

5.8企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元(100000<I≤200000)时,其中10万元按10%提成,高于10万元的部分,可提成7.5%;200000<I≤400000时,其中20万元仍按上述办法提成(下同),高于20万元的部分按5%提成;400000<I≤600000时,高于40万元的部分按3%提成;600000〈I≤1000000时,高于60万的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。

解:计算利润时,要特别注意不同利润的不同提成比例。例如,利润为15万元,其中有10万元按10%的比例提成,另外5万元则按7.5%提成。

float bonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1;/*利润为10万元时的奖金*/

bon2=bon1+100000*0.075;/*利润为20万元时的奖金*/

bon4=bon2+200000*0.05;/*利润为40万元时的奖金*/

bon6=bon4+200000*0.03;/*利润为60万元时的奖金*/

bon10=bon6+400000*0.015;/*利润为100万元时的奖金*/

bonus=i*0.1;/*利润在10万元以内按0.1提成奖金*/

bonus=bon1+(i-100000)*0.075;/*利润在10万至20万元时的奖金*/

bonus=bon2+(i-200000)*0.05;/*利润在20万至40万元时的奖金*/

bonus=bon4+(i-400000)*0.03;/*利润在40万至60万元时的奖金*/

bonus=bon6+(i-600000)*0.015;/*利润在60万至100万元时的奖金*/

bonus=bon10+(i-1000000)*0.01;/*利润在100万元以上时的奖金*/

printf(”奖金是%10.2f\n",bonus);

此题的关键在于正确写出每一区间的奖金计算公式。例如利润在10万元至20万时,奖金应由两部分组成:①利润为10万元时应得的奖金。即100000ⅹ0.1;②10万元以上部分应得的奖金。即(num-100000)ⅹ0.075。同理,20万~40万这个区间的奖金也应由两部分组成:①利润为20万元时应得的奖金,即100000ⅹ0.1ⅹ10万ⅹ0.075;②20万元以上部分应得的奖金,即(num-200000)ⅹ0.05。程序中先把10万、20万、40万、60万、100万各关键点的奖金计算出来,即bon1、bon2、bon4、bon6、hon10;然后再加上各区间附加部分的奖金。

输入利润i,确定相应的提成等级branch

float bonus, bon1, bon2, bon4, bon6, bon10;

case 1: bonus=bon1+(i-100000)*0.075;break;

case 3: bonus=bon2+(i-200000)*0.05; break;

case 5: bonus=bon4+(i-400000)*0.03;break;

case 9: bonus=bon6+(i-600000)*0.015;break;

case 10: bonus=bon10+(i-1000000)*0.01;

5.9输入4个整数,要求按由大到小的顺序输出。

解:此题采用依次比较的方法排出其大小顺序。在学习了循环和数组以后,可以有更多的排序方法。

scanf("%d,%d,%d,%d",&a,&b,&c,&d);

printf("\n a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

printf("排序结果如下:\n");

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!