欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

课本第1到6章习题参考答案Word版

  • 资源ID:86748327       资源大小:117.50KB        全文页数:24页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

课本第1到6章习题参考答案Word版

第1章习题一、选择题1、A 2、D 3、C 4、D 5、B 6、C 7、C 8、B 9、B 10、A二、填空题1、一,函数体2、main(主),main(主)3、编译,目标4、.c,.obj,.exe5、缩进,无影响,/* */三、程序分析题1、* Very good! *2、 a=12,b=5 a=17,b=223、r= 5.50,s=95.033098四、编程题1用printf()函数在屏幕上输出自己的班级、学号、姓名。#include"stdio.h"void main() printf("班级:BX1109n"); printf("学号:111003530901n"); printf("姓名:王孟荣n");2从键盘输入两个整数,计算它们的和、差、积、商,并在屏幕上输出结果。#include<stdio.h>void main()int x,y,a,b,c;float d;printf("Please Input Two Integers:n");scanf("%d%d",&x,&y);a=x+y;b=x-y;c=x*y;d=1.0*x/y;printf("a=%dnb=%dnc=%dnd=%fn",a,b,c,d);第2章习题一、选择题15 BCDCD610 DBBCA二、填空题1单精度浮点型、双精度浮点型、字符型203x%10*10+x/1045.555.7 206sin(sqrt(x*x)/(a*b)7 ,81111011 173 7B93 3103三、程序分析题1 7,8,102 1,33. 5 F4 (int)i=12, 12.505 461579112四、编程题1编写程序,求表达式c=21%9-(float)a+4/b*b的值,假设表达式中a和b的值分别由键盘输入。 #include<stdio.h>void main( ) int a,b; float c; printf("Please input data a,b: "); scanf("%d%d",&a,&b); c=21%9-(float)a+4/b*b; printf("c=%5.2fn", c); 2. 编写程序,从键盘输入两个整数存入变量a和b中,求a2-b2的值并输出。 #include<stdio.h>void main( ) int a,b,c; printf("Please input data a,b: "); scanf("%d%d",&a,&b); c=a*a-b*b; printf("c=%dn", c); 第3章习题一、选择题12345678910DCA、BABBB、CBDD二、填空题1. 有穷性 确定性 可行性2. #3. 从终端(键盘)输入一个字符4. m d5. 97,g6. 123.456000, 123.46, 1237. 格式控制符不正确(输入数据时不能控制列宽和小数位数)8. 63,63,77,3f9. %f%f &x,&y10. <stdio.h> ch ch三、程序分析题1. c=112. a=123 f=4573. x=345 y=3.4600004. a=1,b=3 a=3,b=15. (题目需修改为:从键盘输入一个除a和z以外的小写字母)程序的功能:从键盘输入一个除a和z以外的小写字母,求出该字母对应的大写字母的前趋和后继字母,然后顺序输出此三个大写字母,每个字母所占列宽为3。运行结果: 假如输入:f ' 输出: E F G四、编程题1编写程序,计算的值并输出(保留3位小数),其中a、b的值由键盘输入。#include <stdio.h>#include<math.h>void main( ) float a, b,x; scanf("%f%f", &a, &b); x=(a*a+b*b)/sqrt(3*(a+b); printf("x=%.3fn",x);2编写程序,从键盘输入一个梯形的上底a、下底b和高h,输出梯形的面积s。#include <stdio.h>#include<math.h>void main( ) float a, b,h,s; scanf("%f,%f,%f", &a,&b,&h); s=(a+b)*h/2; printf("梯形面积s=%.2fn",s); 3编写程序,在屏幕上输入你姓名的第一个字母,显示出该字母以及下面的信息: Hello!This is a c program. My name is 第一个字母 #include <stdio.h>void main( ) char name; name=getchar(); putchar(name); printf("nHello!n"); printf("This is a c program.n"); printf("My name is %cn",name); 第4章习题一、选择题12345678910BBCBCA CBACC二、填空题1. ! && |2. 13. a b4. 15. 06. x%4= =0 && x%100!=0G:7. 5 68. A9. x<0 | x>10 && x<5010. -1三、程序分析题1 No2 -23. 5 3 24 #&5 (1)2 (2)3 CC a=2,b=2,c=4四、编程题1. 有一个函数如下: x2-2 (x<5) y= 3x+5 (5x<50) x- (x50) 编写程序,输入x的值,计算相应的y值输出(保留3位小数)。#include<stdio.h>#include<math.h>void main() float x,y; scanf("%f", &x); if(x<5) y=x*x-2; else if(x<50) y=3*x+5; else y=x-sqrt(4*x-1); printf("x=%f, y=%.3fn", x,y);2编写一个程序,根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出它的面积和三角形类型(等边、等腰、直角、一般三角形)。#include<stdio.h>#include<math.h>void main( ) float a, b, c, s, area; scanf("%f,%f,%f", &a,&b,&c); if(a+b>c && b+c>a && a+c>b) s=(a+b+c)/2; area=sqrt(s*(s*(s-a)*(s-b)*(s-c); printf("area=%fn",area); if(a=b && b=c) printf("等边三角形n"); else if(a=b | a=c | b=c) printf("等腰三角形n"); else if(a*a + b*b= c*c)|(a*a + c*c= b*b)|(b*b + c*c = a*a) printf("直角三角形n"); else printf("一般三角形n"); else printf("不能组成三角形n");3设奖金税率r有如下的要求 (n代表奖金) : 0 n<1000 5% 1000n<2000 r=8% 2000n<3000 10% 3000n<6000 15% 6000n用switch多分支选择语句编写程序,输入奖金值,计算并输出相应的税率和实际应得奖金值。#include<stdio.h>void main( ) float n, r, s; int m; printf("请输入奖金值:"); scanf("%f", &n); if(n>=6000) m=6; else m=n/1000; switch(m) case 0: r=0; break; case 1: r=0.05; break; case 2: r=0.08; break; case 3: case 4: case 5: r=0.1; break; case 6: r=0.15; break; s=n-r*n; printf("税率r=%.0f%, 奖金值n=%.2f, 实际应得奖金值s=%.2fn",r*100, n, s);4. 从键盘输入任意4个数a、b、c、d,按照从大到小的顺序排列后重新输出。#include<stdio.h>void main( ) int a, b, c, d,t; scanf("%d,%d,%d,%d", &a,&b,&c,&d); if(a<b)t=a;a=b;b=t; if(a<c)t=a;a=c;c=t; if(a<d)t=a;a=d;d=t; if(b<c)t=b;b=c;c=t; if(b<d)t=b;b=d;d=t; if(c<d)t=c;c=d;d=t; printf("%d %d %d %dn", a,b,c,d);5. 给出一个不超过4位数的正整数,判断它是几位数,并按逆向输出各位数字。例1234,输出为4321。#include<stdio.h>void main( ) int num,i,j,k,m; printf("输入一个少于4位的正整数:"); scanf("%d",&num); if(num>=0 && num<=9999) if(num>1000 && num<=9999) printf("是一个4位数n"); m=num%10; /*求个位上的数字*/ k=num/10%10; /*求十位上的数字*/ j=num/100%10; /*求百位上的数字*/ i=num/1000; /*求千位上的数字*/ printf("逆序数为:%d%d%d%dn",m,k,j,i); else if(num>=100) printf("是一个3位数n");m=num%10; /*求个位上的数字*/k=num/10%10; /*求十位上的数字*/ j=num/100; /*求百位上的数字*/ printf("逆序数为:%d%d%dn",m,k,j); else if(num>=10) printf("是一个2位数n"); m=num%10; /*求个位上的数字*/ k=num/10; /*求十位上的数字*/ printf("逆序数为:%d%dn",m,k); else printf("是一个1位数n"); printf("逆序数为:%dn",num); else printf("是一个无效的数n");第5章习题12345678910BCBCA BDBAB二 填空题1. 循环 switch2. 4,73. 64. # # 5. 0 2 6. 18 7. 1 8. sum=80 9. c=getchar() n:m10. i %13= =0 break三 程序分析题1. output1:21 6 output2: 5 6 output3: 5 7 72. n=73. Max=18 Min=34. 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=95. 0 1 2 3 1 2 3 0 2 3 0 1 3 0 1 2四、编程题1. 从键盘上输入若干字符,以按Enter键结束,统计其中字符A或a的个数。#include "stdio.h"main() char ch; int k=0; while(ch=getchar()!='n') if(ch='A' | ch='a') k=k+1; printf("%dn",k);2. 利用=×的前100项之积计算p的值。 #include <stdio.h>main()double term, result = 1;/*累乘项初值应为1*/int n;for (n=2; n<=100; n = n + 2) term=(double)( n * n)/(n-1)*(n+1);/*计算累乘项*/ result = result * term;printf("result = %fn", 2*result);3. 用1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?每种方案各换多少枚? #include<stdio.h>main()int x,y,z,count=0;for(x=1;x<=29;x+) for(y=1;y<=72;y+) z=100-x-y; if(5*x+2*y+z=150) count+; printf("%d,%d,%dn",x,y,z);printf("count=%dn",count);4. 鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。#include <stdio.h>main()int x, y;for (x=1;x<=97;x+) y=98-x;if(2*x+4*y=386) printf("鸡=%d,兔=%d",x,y); 5. 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。#include <stdio.h>main() int n,i; printf("nplease input a number:n"); scanf("%d",&n); printf("%d=",n); for(i=2;i<=n;i+) while(n!=i) if(n%i=0) printf("%d*",i); n=n/i; else break; printf("%d",n);6. 从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和。例如,输入x为1234,则由1234分离出其千位1、百位2、十位3、个位4,然后计算1+2+3+4=10,并输出10。#include<stdio.h>#include<math.h>main()int i1,i2,i3,i4,k,n;printf("Inputdatais:");scanf("%d",&n);k=fabs(n);/*取绝对值*/i1=k/1000;/*分离出千位*/i2=(k-i1*1000)/100;/*分离出百位*/i3=(k-i1*1000-i2*100)/10; /*分离出十位*/i4=k%10;/*分离出个位*/printf("The sum of the total bit is %dn",i1+i2+i3+i4);7. 打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。#include <stdio.h>void main() int i,j,k,n; printf("parcissus numbers are:n"); for (n=100;n<1000;n+) i=n/100; j=n/10-i*10; k=n%10; if (n=i*i*i+j*j*j+k*k*k) printf("%dn",n); 8. 利用泰勒级数sin(x)计算sin(x) 的值。要求最后一项的绝对值小于10-5,并统计出此时累加了多少项(x由键盘输入)。#include <math.h>#include <stdio.h>main()int n=1,count=1;float x;double sum,term; /*因为位数多,所以定义为双精度 */printf("Input x: ");scanf("%f", &x);sum=x;term=x; /*赋初值*/doterm=-term*x*x/(n+1)*(n+2);sum=sum+term; /*累加 */n=n+2;count+;while(fabs(term)>=1e-5);printf("sin(x)=%.1f,count=%dn",sum,count);9编写一个猜数游戏:任意设置一个整数,请用户从键盘上输入数据猜想设置的数是什么,告诉用户是猜大了还是小了。10次以内猜对,用户获胜;否则,告诉用户设置的数据是什么。#include <stdio.h>void main()int num=123,x,n; printf("hint:0<number<1000n"); /*给出数据范围的提示信息*/ for(n=1;n<=10;n+) printf("guess:"); scanf("%d",&x); if(x=num) printf("Win!n");break; if(x>num) printf("bigger!n"); if(x<num) printf("smaller!n"); if(n=11) printf("Lost!the number is %dn",x);10. 编程输出以下图案。*#include <stdio.h> main() int i,j; for(i=1;i<=4;i+) for (j=20-i;j>=1;j-) printf("%c",' '); for (j=0;j<2*i-1;j+) printf("*"); printf("n"); for (i=3;i>=1;i-) for (j=20-i;j>=1;j-) printf("%c",' '); for (j=0;j<2*i-1;j+) printf("*"); printf("n"); 第6章习题一、选择题12345678910DADBDCBDBD二 填空题1. 02. 14 m310 74. 数据类型 5. strcpy(S2,S1) #include<string.h> 6. 0 3 7. 7,6 8. sum=0 i=j aij 9. 410. Tony三 程序分析题1. max=85 min=5 sum=180 aver=30.002. a=2 b=2 c=2 d=2 e=1 f=2 g=23. j=454. Ti_saCPorm Tss_Pgm5. 1 1 1 5四、编程题1从键盘输入15个整数,存放在数组中,找出其中最小数并指出其所在的位置。#include<stdio.h>#define N 15main()int min,i,j,aN; printf("Enter N integers:n"); for(i=0;i<N;i+)scanf("%d",&ai);min=a0;for(i=1;i<N;i+) if(min>ai) min=ai; j=i; printf("%d,%d",min,j);2将输入的十进制正整数化为十六进制数。#include <stdio.h>main()int i,x,j,a20;printf("请输入一个正整数:");while(1) scanf("%d",&x); if(x<0) printf("数据输入错误,请重新输入一个正整数:"); else break;i=0;while(x)ai=x%16;x=x/16;i+; for(j=i-1;j>=0;j-)if(aj<=9)printf("%d",aj);else if(aj<=15)printf("%c",aj+'A'-10);printf("n");3从键盘输入一行字符,统计其中有多少单词,假设单词之间以逗号分隔。#include <stdio.h> void main() char string81; int i,num=0,word=0; char c; gets(string); for (i=0;(c=stringi)!='0'i+) if(c=',') word=0; else if(word=0) word=1;num+;printf("There are %d words in the line.n",num);4从键盘输入一字符串,放在字符数组a中,将字符数组a中下标值为偶数的元素按从小到大排序。#include<stdio.h>#include<string.h>void main() char a80,t,m; int i,j,k; printf("请输入一字符串:"); gets(a); k=strlen(a); for(i=0;i<=k-2;i+=2) m=i; for(j=i+2;j<=k; j+=2 )if(am>aj) m=j;if(m!=i) t=ai;ai=am;am=t; puts(a); printf("n"); 5编写程序输出以下杨辉三角形(要求输出10行)。1 1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 #include<stdio.h>#include<string.h>void main() int i,j,a1010; for(i=0;i<10;i+) ai0=aii=1; for(j=1;j<i;j+) aij=ai-1j-1+ai-1j; for(i=0;i<10;i+) for(j=0;j<=i;j+)printf("%6d",aij); printf("n"); 6编程将s数组中的字符串的正序和反序进行连接,形成一个新串放在t数组中。例如,当s数组中字符串为"ABCD" 时,则t数组中的内容应为:"ABCDDCBA"。#include<stdio.h>#include<string.h>main() char s100, t100; int i,d;printf("Please enter string S:"); scanf("%s",s); d=strlen(s); for(i=0;i<d;i+) ti=si; for(i=0;i<d;i+) td+i=sd-1-i; t2*d='0' printf("The result is: %sn",t);7某公司在传输数据过程中为了安全要对数据进行加密,若传递的是四位的整数,对其进行加密的规则为:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。如:输入数字7659,则加密后的数字为4012#include<stdio.h>main() int a,i,aa4,t;printf("输入一个需加密的四位数整数:");scanf("%d",&a);aa0=a%10;aa1=a%100/10;aa2=a%1000/100;aa3=a/1000;for(i=0;i<=3;i+)aai+=5;aai%=10;for(i=0;i<=3/2;i+)t=aai;aai=aa3-i;aa3-i=t;printf("加密后的数字为:");for(i=3;i>=0;i-)printf("%d",aai);printf("n");8编写程序查找数值18在以下二维数组中第一次出现的位置。 3 4 5 188 12 16 5443 34 18 7#include <stdio.h>main() int i,j,a34=3,4,5,18, 8,12,16,54, 43,34,18,7; for(i=0;i<3;i+) for(j=0;j<4;j+) if(aij=18) break;if(j>4)break; printf("数值18第一次出现的位置在%d行,第%d列n",i+1,j+1);9设有4行4列的数组a,其元素aij=3*i+2*j-6。编写程序,实现如下功能:(1) 求第二行4元素的累加和;(2) 求第四列4元素的平均值;(3) 求主对角线4元素中负数的个数。#include <stdio.h>void main() int a44,i,j,s=0,m=0;float n=0;for(i=0;i<4;i+)for(j=0;j<4;j+)aij=3*i+2*j-6;printf("原始数组为:n");for(i=0;i<4;i+) for(j=0;j<4;j+)printf("%3d",aij);printf("n");for(j=0;j<4;j+)s+=a1j;printf("第二行4元素累加和为:%dn",s);for(j=0;j<4;j+)n+=aj3;printf("第四列4元素平均值为:%.2fn",n/4.0);for(i=0;i<4;i+)if(aii<0)m+;printf("主对角线4元素中负数的个数为:%dn",m);10约瑟夫环问题:编号为1,2,3,.,n的n个人按顺时针方向围坐一圈,每人持有一个正整数密码。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针报数,报到m时停止,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计程序求出出列顺序。分析:设整型数组a中保存n个人的密码,对应的人出列后,数组元素置0作为标志。顺时针确定下一个人的方法,可将下标加1,再对n求余。#include <stdio.h>#define N 100main() int a100; int i,j,m,n,k=0; printf("输入人数n和任选的一个正整数m:"); scanf("%d%d",&n,&m); printf("输入n个人的密码: "); for (i=0;i<n;i+) scanf("%d",&ai); printf("n出列顺序为: "); for(i=0;i<n;i+) j=1; while(j<m) while(ak=0) /*跳过已出列的人*/ k=(k+1)%n; j+; k=(k+1)%n; while(ak=0) /*跳过已出列的人*/ k=(k+1)%n; printf("%d ",k+1); m=ak; ak=0; (注:可编辑下载,若有不当之处,请指正,谢谢!)

注意事项

本文(课本第1到6章习题参考答案Word版)为本站会员(痛***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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