《C语言程序设计教程第三版.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程第三版.docx(63页珍藏版)》请在第一文库网上搜索。
1、15请参照本章例题,编写一个C程序,输出以下信息:VeryGood!解:mian()pritf(*55).PrintfC4Xnn);Printf(VeryGood!n,);Printfpritf(4*5)1.6编写一个程序,输入a、b、C三个值,输出其中最大值。解:mian()inta,b,c,max;Printf(“请输入三个数a,b,cn);SCanf(d,%d,%d”,&a,&b,&c);max=a;if(mab)max=b;if(maxc)max=c;Printf(最大数为:%d,max);第三章3.6 写出以下程序运行的结果。main()chard=ac2=,b,c3=,cc4=,1
2、0,c5=,116,;printf(tia%cb%ctc%ctabcn,c1,c2,c3);printf(44tb%c%c,c4,c5);解:aaubbuuuCC1JU1J1J1JUabcAuN3.7 要将“China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母字后面第4个字母是E.E代替代Z因此,China”应译为GImreZ请编一程序,用赋初值的方法使用C2、C3、c4、初五个变量的值分别为,C、W、甲、什、经过运算,使c1、C2、C3、C4、c5分别变为G、I、m、T、e,并输出。解:#inc1udemain()charc1=,C,c2=,h,c3=,i,
3、c4=,n,c5=,a,;d+=4;c2+=4;c3+=4;c4+=4;c5+=4;Printf(密码是c%c%c%c%cn”,c1,c2,c3,c4,c5);运行结果:密码是G1mre3.9求下面算术表达式的值。(1) x+a%3*(int)(x+y)%24设x=2.5,a=7,y=4.7(2) (f1oat)(a+b)2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5(1) 2.5(2) 3.53.10写出程序运行的结果。main()inti,j,m,n;i=8;j=10;m=+i;n=j+;printf(*%d,%d,%d,%d,i,j,m,n);解:9,11,9,1
4、03.12写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。(1)a+=a(2)a-=2(3)a*=2+3(4)a=a+a(5) a%=(n%=2),n的值等于5(6) a+=a-=a*=a解:(1)24(2)1060(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,d=,a,c2=b0想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。a=3b=4C=5x=1.200000,y=2.400000,z=-3.600000x+y=_3.600y+z=-1.20z+x=-2.4
5、0c1=zax_or_97(ASCII)c2=b_or_98(ASCII)main()inta=3,b=4,c=5;1ongintu=51274,n=128765;f1oatx=1.2,y=2.4,z=3.6;chard=,a,c2=,b;printf(a=%2db=%2dc=%2dn,a,b1c);printf(x=%f,y=%f,z=%fn,x,y,z);printf(*,x+y=%5.2fy+z=%5.2fz+x=%5.2fn,x+y,y+z,z+x);printf(u=%61dn=%91dn,u,n);printf(%s%s%d%sn,d=,a,o,d,(ASCII);printf(%
6、s%s%d%sn,c2=,a,or,c2,(ASCII);4.7用SCanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,问在键盘上如何输入?main()(inta,b;f1oatx,y;charc1c2;scant(a=%d_b=%d,&a,&b);scant(_x=%f_y=%e,&x,&y);scant(,-c1=%c-c2=%ch,&c1,&c2):a=3_b=7_x=8.5_y=71.82_c1=A_c2=a4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用SCanf输入数据,输出计算结果,输出时要求文
7、字说明,取小数点后两位数字。请编程序。main()f1oatr,h,C1,Sa,Sb,Va,Vb;SCanf(”f,%f”,&r,&h);C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r3;Vb=Sa*h;printf(C1=%.2fn,C1);printf(Sa=%.2fnSb=%.2fnVa=%.2fnVb=%.2n,Sa,Sb,Va,Vb);4.9输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)9输出要求有文字说明,取位2小数。main()f1oatF,c;SCanf(%f,&F);c=5*(F-32)9;printf(,c=%.
8、2f,c);4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量c1、C2应定义为字符型或整形?抑二者皆可?(2)要求输出CI和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:chard,c2:与intd,c2:是否无条件的等价?#inc1udestdio.hmain()chard,c2;d=getchar();c2=getchar();putchar(d)QUtChar(n);PUtChar(C2)jputchar(,n,);inc1
9、ude,stdio.hwmain()chard,c2;d=getchar();c2=getchar();printf(c1=%dc2=%dn,d,c2);printf(c1=%cc2=%cn,d,c2);第五章5.1 什么是算术运算?什么是关系运算?什么是逻辑运算?解:略。5.2 C语言中如何表示“真”和“假”系统如何判断一个量的“真”和“假”?解:设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以O表示。但是判断一个逻辑量的值时,以。代表“真”,以非。代表“假例如3&5的值为“真”,系统给出3&5的值为1o5.3 写出下面各逻辑表达式的值。设a=3,b=4,C=5。(1
10、) a+bc&b=c(2) a|b+c&b-c(3) !(ab)&!c|1(4) !(x=a)&(y=b)&0(5) !(a+b)+c-1&b+c/2解:(DO11。(5) 15.4 有3个整数a、b、c,由犍盘输入,输出其中最大的数.解:方法一#inc1udemain()inta,b,c;Printf(“请输入3个整数:);scanf(%d,%d,%d,&a,&b,&c);if(ab)if(bc)printf(max=%dn,c);e1seprintf(max=%dn,b);e1seif(ac)printf(max=%dn,c);e1sepritf(ma=%dn,a);方法二:使用条件表达式
11、,可以使程序更加简明、清晰。程序如下:#inc1udemain()inta,b,c,temp,max;Printf(”请输入3个整数:);scanf(%d,%d,%d,&a,&b,&c);temp=(ab)?a:b;max=(tempc)?temp:c;Printf(3个整数的最大数是dr,max);5.5 有一函数:写一程序,输入X值,输出y值。解:#inc1udemain()itx,y;Printf(输入x:);scanfC%d,&x);y=;printf(x=%3d,y=x=%dn,x,y);)e1seif(x10)y=2*x-1;printf(,x=%3d,y=2*x-1=%dn,x,
12、y);e1sey=3*x-11;printf(x=%3d,y=3*x-11=%dn,x,y);5.6 给一个百分制成绩,要求输出等级分、B、C、D、E090分以上为A180-90分为BI7079分为C,60分以下为D解:程序如下:#inc1udemain()f1oatscore;chargrade;case2:Printf(”请输入学生成绩:);scanf(%f,&score);whi1e(score100(score0)printfCn输入有误,请重新输入:);scanf(%f,&score);switch(int)(score10)case9:grade=A;break;case8:gra
13、de=,B,jbreak;case7:grade=C,jbreak;case6:grade=,D,jbreak;case5:case4:case3:caseO:grade=E,;Printf(成绩是5.1f,相应的等级是c。n,score,grade);说明:对输入的数据进行检查,如小于0或大于100,要求重新输入。(int)(score10)的作用是将(score/10)的值进行强制类型转换,得到一个整型值。5.7给定一个不多于5位的正整数,要求:求它是几位数;分别打印出每一位数字;按逆序打印出各位数字。例如原数为321,应输出123。解:#inc1udemain()1ongintnum;intindiv,ten,hundred,thousand,tenjhousand,p1ace;Printf(请输入一个整数(0-99999):m);scanf(,%1dum);if(num9999)p1ace=5;e1seif(num999)p1ace=4;e1seif(num99)p1ace=3;e1seif(num9)p1ace=2;e1sep1ace=1;printf(p1ace=%dn,p1ace);ten_thousand=n