程序设计基础c语言程序结构教材习题答案科学出版社

上传人:无*** 文档编号:61395887 上传时间:2022-03-11 格式:DOC 页数:27 大小:86KB
返回 下载 相关 举报
程序设计基础c语言程序结构教材习题答案科学出版社_第1页
第1页 / 共27页
程序设计基础c语言程序结构教材习题答案科学出版社_第2页
第2页 / 共27页
程序设计基础c语言程序结构教材习题答案科学出版社_第3页
第3页 / 共27页
点击查看更多>>
资源描述
程序设计基础-C语言(科学出版社教材)第三章-程序结构教材习题答案1.0编写程序使整形变量:a=3,b=4,c=5,p=0xfffe,q=0xffff; 浮点型变量:x=1.2,y=2.4,z=3.6;无符号型变量:u=5127486,n=128765,字符型变量:c仁;c2=#in elude void mai n()int a,b,c,p,q;float x,y,z;un sig ned int u,n;char c1,c2;a=3;b=4;c=5;p=0xfffe;q=0xffff;x=1.2;y=2.4;z=-3.6;u=5127486; n=128765;c1=a:c2=b:prin tf(a=%d b=%d c=%dn,a,b,c);prin tf(p=%#x q=%#xn,p,q);prin tf(x=%f,y=%f,z=%fn,x,y,z);prin tf(x+y=%.2f y+z=%.2f x+z=%.2fn,x+y,y+z,x+z);prin tf(u=%8u n=%8un,u, n);prin tf(c1=%c or %dn,c1,c1);prin tf(c2=%c or %dn,c2,c2);2.0读入三个双精度数,求出它们的平均值并保留此平均值小数 点后二位,最后输出结果。#in clude void mai n()double a,b,c,d;printf(请输入三个双精度数:);sca nf(%lf,%lf,%lf, &a,&b, &c);d=(a+b+c)/3;prin tf(d=%.2lf,d );3.0编写一个程序,要求输入三个整数值a,b,c,把c中的值赋给b,把b中的值赋给a,把a中的值赋给c,最后输出a,b,c.#in elude void mai n()int a,b,c,t;printf(输入三个整数值:);sca nf(%d,%d,%d, &a,&b,&c);t=a;a=b;b=c;c=t;prin tf(a=%d,b=%d,c=%dn,a,b,c);4.0编写一个程序,要求输入一个华氏温度,输出对于的摄氏温度。华氏温度与摄氏温度转换公式为:c=5/9*(F-32).结果保留二位小数。#i nclude void mai n()float F;第4页float C;printf(请输入一个华氏温度 F=);sea nf(%f,&F);C=5.0/9.0*(F-32.0);printf(对应的摄氏温度C=%.2fn,C);5.0编写一个程序,要求输入一个三位数,正确的分量出它的个位,十位,百位,并在屏幕显示出来#in elude void mai n()int a,a100,a10,a1;printf(请输入一个三位整数:);sea nf(%d, &a);if(100=a & a=999)a100=a/100;a=a%100;a10=a/10;printf(百位数是 d,十位数是 d,个位数是 dn,a100,a10,a1);else printf(输入的数据不是一个3位整数! n);6. 0编写一个程序,输入一个整数,输出它是奇数还是偶数#in elude void mai n()int a,b;printf(请输入一个整数:);sca nf(%d, &a);b=a%2;if(b=0)printf(偶数 a=%dn,a);elseprintf(奇数 a=%dn,a);x(x 1)7 .0 y = 2x - 1(1 := x : 10) 编写程序,输入 x,对应输出Y值。3x -11(x *10)I#in elude void mai n()int x,y;printf(输入 x 值:);sca nf(%d, &x);if (x1) y=x;else if (1=x & x10)y=2*x-1;elsey=3*x-11;prin tf(%dn,y);8.0编写一个程序,要求由键盘输入3个数,判断它们是否能构 成三角形的三边。若能,请判断构成的是等腰,等边还是普通三 角形。#in elude #in elude void mai n()un sig ned int i_a,i_b,i_c;float f_s;printf(请输入3个数作为三角形的三条边,中间用空格隔开:);sca nf(%u %u %u,&i_a,&i_b,&i_c);if(i_a+i_b)i_c & (i_a+i_c)i_b & (i_c+i_b)i_a)f_s=(float)(i_a+i_b+i_c)/2;f_s=sqrt(f_s*(f_s-i_a)*(f_s-i_b)*(f_s-i_c);printf(该3个数可构成一个三角形,其面积是%.2fn,f_s); if(i_a=i_b)&(i_a=i_c) printf(该三角形是等边三角形n);else if(i_a=i_b) | (i_a=i_c) | (i_b=i_c)prin tf(该三角形是等腰三角形n);第9页 else prin tf(该三角形是一般三角形n);elseprintf(该3个数不能构成一个三角形n);9.0编写程序,输入某年某月,求该月有多少天。#i nclude void mai n()un sig ned int i_Year,i_M on th;char i_Days;printf(请输入年月,中间用空格隔开:);sca nf(%u %u,&i_Year,&i_Mo nth); if(1=i_Mo nth & i_Mo nth%dH云=ilYeaLMOnfhLDays= printf(月只能是112,输入错误,无法计算);10.0编写程序,对给定的一个百分制成绩,输出对于的五分制成绩,设90分以上为A,80到89分为B,70到79分为C,60到69为D,60分以下为E,用IF和switch语句分部实现。#in elude void mai n()int i_a; 成绩int i_grade;成绩等级printf(请输入成绩:);sea nf(%d,&i_a);printf(用if语句判断的等级是:);if (i_a=90) prin tf(A);else第14页if(80=i_a & i_a=89) prin tf(B);elseif(70=i_a & i_a=79) prin tf(C);elseif(60=i_a & i_a=69) prin tf(D);else prin tf(E);prin tf(n);printf(用switch语句判断的等级是:);i_grade=i_a/10;第11页switch(i_a/10) case 10:;case 9:pri ntf(A);break;case 8:pri ntf(B);break;case 7:pri ntf(C);break;case 6: pri ntf(D);break;default:pri ntf(E);prin tf(n);11循环输入若干个数据,以-1表示输入结束,计算输入的这些 数据平均值。#in clude void mai n()int a;/记录当前输入的数int num;/记录当前输入的数据个数int sum;/记录当前所有数据的和float average;/记录平均值赋初值sum=0;num=0;/输入开始-1,则说明该printf(输入一组整型数据,如果输入的数据是 组数据输入完成,下面开始输入n);sea nf(%d, &a);while(a!=-1) nu m+;sum=sum+a;sca nf(%d, &a);/输入结束/计算和输出if(num=0) printf(没有输入数据,无平均数!);第19页else average=(float)sum/(float)num; 强制 int 转换为 float, 然后计算,如果不要强制转换,即 average=sum/num,你可试 一试,看结果有什么不同printf(输入了 d 个数据,其平均数是: .2fn”,num,average);12编程计算1+2+3+4+n的值超过500的第一个和值为多 少;n的值为多少。#in clude void mai n()int i_n;int i_sum;/ 记录和口/每行最多输出10个水仙花数i_sum=0;i_n=0; i_n+;i_sum=i_sum+i_n;printf(1+2+3+4+.+n的值超过 500 的第 1 个和值=%d ,n=%dn,i_sum,i_n);13计算出公式1 ! +2 ! +3 ! +10 !的值#in elude void mai n()int i_a,i_b;int i_sum; 记录和口int ic;记录某个数的阶乘i_sum=0;for(i_a=1;i_a=10;i_a+)/计算某个数i_a的阶乘i_jc=1;for(i_b=1;i_b=i_a;i_b+)i_jc=i_j c*i_b;第21页/阶乘计算完毕i_sum=i_sum+i_jc; 计算禾口prin tf(1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=%d,i_sum);14输出所有的水仙花数,所谓的水仙花数,是指一个三位数,其各位数字的立方和等于它本身。列如153是一个水仙花数,因为 153=1八3+5八3+3八3.解法一#in elude void mai n()int i_100,i_10,i_1;记录3位数的各位数字int i_num;/记录水仙花数的个数/每行最多输出10个水仙花数i_num=0;for(i_100=1;i_100v=9;i_100+)for(i_10=0;i_10=9;i_10+)if(i 100*100+i 10*10+i 1)=(i 100*i 100*i 100+i 10*i 10*i 10+i_1*i_1*i_1)此时形成了一个水仙花数prin tf(%d ,i_100*100+i_10*10+i_1);i_nu m+;if(i_num % 10)=0) /已输出了 10个倍数的水仙花数,下一个另起一 行prin tf(n);printf(n共有%d个水仙花数,i_num);15利用循环,在屏幕上输出如下图案#in elude void mai n()int i_Rows;输出上三角*的行数int i_Row;当前输出的第几行int i_Blanks;第i_Row行需输出的空格数int i_Blank;第i_Row行当前输出的第几个空格int i_Starts;第i_Row行需输出的*个数int i_Start;第i_Row行当前输出的第几个*printf(请输入上三角的行数:);sca nf(%d,&i_Rows);/输出上三角for(i_Row=1;i_Row=i_Rows;i_Row+) i_Blanks=i_Rows-i_Row;计算第i_Row需输出的空格数 i_Starts=(i_Row-1)*2+1; 计算第 i_Row 需输出的 *数/输出第i_Row的空格for(i_Bla nk=1;i_Bla nk=i_Bla nks;i_Bla nk+) prin tf(%c,);空格输出完毕/输出第i_Row的*for(i_Start=1;i_Start=i_Starts;i_Start+) prin tf(%c,*);/*输出完毕printf(n); 一行输出完毕,换行/上三角输出完毕/输出下三角i_Rows=i_Rows-1;下三角比上三角少一行 for(i_Row=1;i_Row=i_Rows;i_Row+)i_Blanks=i_Row;计算第i_Row需输出的空格数i_Starts=(i_Rows-i_Row)*2+1; 计算第 i_Row 需输出的 * 数/输出第i_Row的空格for(i_Bla nk=1;i_Bla nk=i_Bla nks;i_Bla nk+) prin tf(%c,);/空格输出完毕/输出第i_Row的*for(i_Start=1;i_Start=i_Starts;i_Start+) prin tf(%c,*);/*输出完毕printf(n); 一行输出完毕,换行下三角输出完毕16输入二个整数M,N,计算它们的最大公约数和最小公倍数。#i nclude void mai n()/统计任意位数的水仙花数int i_m,i_n;两个数据int i_max;最大公约数int i_min;最小公倍数printf(请输入两个数据,用逗号分隔:);sca nf(%d,%d,&i_m, & i_n);/求最大公约数i_max=i_m;if(i_mi_n)i_max=i_n;elsei_max=i_m;while(i_m % i_max)!=0 | (i_n % i_max)!=0) i_max-;/最大公约数求解完毕/求最小公倍数if(i_mi_n)i_mi n=i_m;elsei_mi n=i_n;while(i_min % i_m)!=O | (i_min % i_n)!=O) i_mi n+;/最小公倍数求解完毕printf(最大公约数=%d,最小公倍数=%d,i_max,i_min);第27页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!