1、最新哈工程C语言教材课后答案第一章1.2 有三个数A、B、C,设计算法,求三个数中最大的数并输出。(可用自然语言或流程图表示)。#includevoid main() int a,b,c,max; printf(please input three numbers:n); scanf(%d%d%d,&a,&b,&c); max=a; if(ba) max=b; if(cmax) max=c; printf(the answer is %dn,max); 1.3 设计算法,求N个整数的平均值。#includevoid main() int N,i; float aver,a,s=0; print
2、f(please input the amount of the number:n); scanf(%d,&N); for(i=0;iN;i+) printf(please input the numbern); scanf(%f,&a); s=s+a; aver=s/N; printf(the average is %f,aver); 第二章1. 填空题换行、回车 整型 变量_ 整型 _6_2.5 2. 选择题_A_A_A_B_DC C D C D B D B D3. 答案:6,0,6答案:8,10,16答案:3.500000答案:6答案:1答案:261答案:16答案:04. 编程题 输入长
3、方形的长和宽,输出长方形的周长和面积。#includevoid main()int a,b,l,s;scanf(“%d%d”,&a,&b);l=(a+b)*2;s=a*b;printf(“%d,%d”,l,s); 输入一个字符,输出其ASCII代码。#include void main() char a;printf(please input the char );scanf(%c,&a);printf(the ASCII is %d,a); 输入3个整数,计算并输出它们的平均值。#includevoid main()int a,b,c;float aver;scanf(“%d%d%d”,&a
4、,&b,&c);aver=float(a+b+c)/3;printf(“%f”,aver); 已知整型变量a、b、c的值,根据以下算式编写程序求y的值。#include #include void main() int a,b,c;printf(please input the num of a b c: );scanf(%d %d %d,&a,&b,%c);printf(the y is %f,(3.8*(pow(b,2)+a*c)/(6*a);5.设a和n已定义为整型变量,a=12,求下面表达式运算后a的值。 a+=a 24 a-=2 10 a*=2+3 60 a/=a+a 0 a%=(n
5、%=2),n的值等于5 0 a+=a-=a*=a 0第三章 1、选择题1_C_2C_3.C4D5D_二、填空题1%f_ 2 、 %s 3 、12,56,789.000000 4、6e,16_ 5、1,1,3_三、编程题1编写一个程序,从键盘上输入3个数,求其和并输出。#include void main() int a,b,c,d; printf(please input the num of a,b,c:); scanf(%d%d%d,&a,&b,&c); d=a+b+c; printf(the sum of a,b and c is %d,d); 2输入一个正整数,分别输出它的八进制和十六
6、进制数形式。#include void main() int m; printf(please input the m:); scanf(%d,&m); printf(n ba jin zhi shu zhi shi : %o,m); printf(n shi liu jin zhi shu zhi shi : %x,m);3编程把11325秒转换成“小时:分钟:秒”的形式#include void main() int a=11325; int h,m,s; h=a/3600; m=a%3600/60; s=a%3600%60; printf(%d:%d:%d,h,m,s); 4编程序,求a
7、+b的值,a,b为任意数。本题可调用求绝对值的函数fabs,此函数包含在math.h文件中。#include #include void main() double a,b; printf(please input the num of a and b:); scanf(%lf%lf,&a,&b); printf(n a+|b|= %lf,a+fabs(b); 5 编程序,求平面上两点之间的距离。设第1个点的坐标为(x1,y1),第2点的坐标为(x2,y2),则这两个点的距离为:d=#include #include void main() float x1,y1,x2,y2,d; print
8、f(n shu ru di 1 ge dian de zuo biao : ); scanf(%f%f,&x1,&y1); printf(n shu ru di 2 ge dian de zuo biao : ); scanf(%f%f,&x2,&y2); d=sqrt(pow(x1-x2),2)+pow(y1-y2),2); printf(n ju li d wei : %f ,d);第四章一、阅读程序,回答问题1答案:1 2答案:6 3、 B 4答案:6.000000 5答案:8 6答案:2 7答案:k=11二、填空 1答案:a=b或b=a或!(a!=b)或a=b或b=a 2答案: (1)
9、 0 (2) !=0 3答案: (1) maxy(2) maxz 4答案:(1) m%2=1 (2) m%2=0三、编程1输入一个整数,判断其为奇数还是偶数。#includevoid main() int a ; printf(Please input an integer:) ; scanf(%d,&a) ; if (a%2=0) printf(ni shu ru de shu %d shi ou shu . n,a) ; else printf(ni shu ru de shu %d shi ji shu . n,a) ;2编写一个程序,实现功能是:输入一个实数,按1输出此数的相反数,按2
10、输出此数的平方根,按3输出此数的平方。#include#includevoid main() double f ; int a ; printf(qing shu ru yi ge shu :) ; scanf(%f,&f) ; printf(n qing shu ru 1 huo 2 huo 3n) ;printf(n an 1 shu chu xiang fan shu ) ;printf(n an 2 shu chu ping fang gen ) ;printf(n an 3 shu chu ping fang ) ; scanf(%d,&a) ; if (a=1) printf(%f
11、n,-f); else if (a=2) printf(%fn,sqrt(f); else if (a=3) printf(%fn,f*f) ; else printf(shu ru cuo wu!) ;3输入字符,输出其类型。ASCII值小于32的为控制字符,在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其它字符。#includevoid main()char a;scanf(“%c”,&a);if(a0)printf(“this is a Control Character”);if(a=0&aA&aa&az) printf(“thi
12、s is a lowercase number”); else printf(“this is an other character”);4输入某年某月某日,判断这一天是这一年的第几天。#includevoid main() int a,b,c,k,s=0; printf(qing shu ru nian, yue, ri:) ; scanf(%d,%d,%d,&a,&b,&c); if (a%4 = 0 & a%100 != 0) | a%400 = 0) k = 29 ; else k = 28 ; switch(b) case 12: s+=30 ; case 11: s+=31 ; c
13、ase 10: s+=30 ; case 9 : s+=31 ; case 8 : s+=31 ; case 7 : s+=30 ; case 6 : s+=31 ; case 5 : s+=30 ; case 4 : s+=31 ; case 3 : s+=k ; case 2 : s+=31 ; case 1 : s+=c ; printf(ni shu ru de shu shi zhe nian de di %d tian.,s) ;第五章一、单选题1 C2 C3D4 C5B6C7 A8D 9 C10 C 二、写程序运行结果1答案:1 ,2 ,3 2答案:52 3答案:s=6 4答案:
14、1,-25答案:a=16 y=60 6答案:6三、程序填空1答案:(1) cx=getchar() (2) front!= (3) cx2答案:(1) s=0 (2) m%n=0 (3) m=s3.答案:(1) j=1 (2) k=64答案:(1) 50 (2) n=2 (3) h/25答案:(1) a (2) i=n (3) t*10四、程序改错1答案:(1) int n,k=0; (2) k=k*10+n%10;2答案:(1) for(i=0;i10;i+)(2) j%3!=03答案:(1) double k=1,t=1;(2) k=k+1/t;4答案:(1) i=2;(2) k-;5答案
15、:(1)h=(float)(5-2)/n; (2) a=a+h;五、编写程序1编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。#includevoid main()int year, k=0 ;for (year = 2000; year=3000; year+) if (year%4 = 0 & year%100 != 0) | year%400 = 0) k+; printf(%6d,year) ; if (k%10 = 0) printf(n); printf(nrun nian de zong nian shu shi %d,k
16、) ; 2若有如下公式: 试根据上述公式编程计算的近似值(精确到10-6)。#include #include void main()float pi,a,b;int i=1;a=0;b=1;while(b=0.000001) b=1/(float)(i*i);a+=b;i+;pi=sqrt(6*a);printf(%fn,pi);3用09之间不同的3个数构成一个3位数,统计输出共有多少种方法?#includevoid main() int i=0, j=0, k=0,n=0; for (i =1; i 10; i+) for(j=0;j10;j+) if (i=j) continue ; f
17、or (k=0;k10;k+) if (i=k | j=k ) continue ; n+ ; printf(%d,n) ;4找出199之间的全部同构数。同构数是这样一组数:它们出现在平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是同构数。#includevoid main() int i,j,k ; k=10; for (i=1; i100;i+) if (i=10) k=100; j = i*i ; if (j%k=i) printf(%dt,i) ; 5猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了个。第2天又将剩下的桃子吃掉一半,又多吃
18、了一个。以后每天都吃了前一天剩下的一半零一个。到第10天再想吃时,只剩下一个桃子了。问第1天共摘多少个桃子?。#includevoid main() int day, x ; x = 1; for (day = 1; day =9; day+) x = (x + 1)*2 ; printf(di yi tian hou zi zhai le %d ge tao zi,x) ;6打印以下图形* * * * * * * * *#includevoid main() int i, j ,k; for (i=1; i=4; i+) for (j=1;j=4-i;j+) printf( ) ; prin
19、tf(*) ; for (j=1;j=i-1;j+) printf( *) ; printf(n) ; 7百钱百鸡问题。公鸡五元一只,母鸡三元一只,鸡雏一元三只。若用100元买100只鸡,可买公鸡、母鸡和鸡雏各多只?#includevoid main() int i , j , k ; for (i = 0; i = 100/5; i+) for (j = 0; j = 100/3; j+) for (k = 0; k = 100; k+) if (k%3 != 0) continue ; if (5*i + j*3 + k/3 = 100) & (i + j + k =100) printf
20、(gong ji mu ji chu ji wei %d, %d, %d.n,i,j,k) ; 8一个正整数与3的和是5的倍数,与3的差是6的倍数,编写一个程序求符合条件的最小数。#includevoid main() int k=1; while( !( (k+3)%5 = 0) & (k-3)%6 =0) ) ) k+ ; printf(%d,k) ;9从键盘输入20个整型数,统计其中负数个数并求所有正数的平均值。#includevoid main() int a, i , j =0, k=0 ; float s = 0 ; printf(qing shu ru 20 ge shu: )
21、; for (i = 1; i = 20; i+) scanf(%d,&a) ; if(a 0) j+ ; s+=a ; s = s/(float)j ; printf(fu shu de ge shu shi %d.n,k) ; printf(zhe shu de ping jun zhi shi %f.n,s) ;10父亲今年30岁,儿子6岁,经过多少年后,父亲的年龄是儿子的两倍?#includevoid main()int i,j,k; i=30; j=6; k=0; while(!(i+k=(j+k)*2) k+; printf(%d,k) ;第六章一、选择题1_C_ 2C_ 3_D_
22、 4_C_ 5_C_ 6_B_ 7_D 8. _A_二、填空题 1答案:b!=0 2.答案:15三、 编程题1编写一个求x的y次方的函数。#includeint func(int x,int y);void main()int a,b,c; printf(please input the two numbers: n); scanf(%d%d,&a,&b); c=func(a,b); printf(the answer is n); printf(%dn,c);int func(int x,int y) int i, s=1; for(i=1;i=y;i+) s=s*x; return(s);
23、2编写函数,要求去掉字符串中所有空格。# include # include void f(char s)int i,j;i=j=0; while(si) if(si!= )sj+=si; i+; sj=0;void main() char s80;gets(s); f(s);puts(s);3编写函数,判断一个字符串是否是回文,如是返回1,否则返回-1(回文是指这个字符串逆置后不变,如aba就是回文。)# include # include int f(char s,int n) int i,f; f=1; i=0; while(f&in-i-1) if(si!=sn-i-1) f=-1;
24、break; i+; return f;void main() char s80; gets(s); if(f(s,strlen(s)=1) printf(n Yes ); else printf(n No );4编写函数fun求1!+2!+3!+n! 的和,在main函数中由键盘输入n值,并输出运算结果。#includeint fun(int n);void main()int n,c; printf(please input the number: n); scanf(%d,&n); c=fun(n); printf(the answer is n); printf(%dn,c);int
25、fun(int n)int i,a,s; s=1; a=0; for(i=1;i=n;i+) s=s*i; a=a+s; return(a);5编写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个整数由键盘输入#includeint func(int x,int y);int fun(int x,int y);void main()int x,y,c,d; printf(please input the two numbers: n); scanf(%d%d,&x,&y); c=func(x,y); d=fun(x,y); printf(the answer is n); printf(zui da gong yue shu shi %dn,c); printf(zui xiao gong bei shu shi %d,d);int func(int x,int y) int t; t=x%y; while(t) x=y; y=t; t=x%y; return(y); int fun(int x,int y) return (x*y/func(x,y);第七章1、选择题 1. D 2. B 3. D 4. D 5. A 二、阅读程序写出结果1. 答案:1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1