1.2 有三个数A、B、C,设计算法,求三个数中最大的数并输出。(可用自然语言或流程图表示)。 #include int a,b,c,max; printf(\"please input three numbers:\\n\"); scanf(\"%d%d%d\ max=a; if(b>a) max=b; if(c>max) max=c; printf(\"the answer is %d\\n\ } 1.3 设计算法,求N个整数的平均值。 #include int N,i; float aver,a,s=0; printf(\"please input the amount of the number:\\n\"); scanf(\"%d\ for(i=0;i aver=s/N; printf(\"the average is %f\ } 第二章 1. 填空题⑴换行、回车⑵ 整型 变量_⑶ 整型⑷ _6_⑸2.5 2. 选择题 ⑴_A_⑵_A_⑶A_⑷_B_⑸_D⑹C⑺ C ⑻ D ⑼ C ⑽ D ⑾B⑿ D⒀ B ⒁ D 3. ⑴答案:6,0,6⑵答案:8,10,16⑶答案:3.500000⑷答案:6 ⑸答案:1⑹答案:261⑺答案:16⑻答案:0 4. 编程题 ⑴ 输入长方形的长和宽,输出长方形的周长和面积。 #include void 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 printf(\"please input the char \"); scanf(\"%c\ printf(\"the ASCII is %d\} ⑶ 输入3个整数,计算并输出它们的平均值。 #include int a,b,c; float aver; scanf(“%d%d%d”,&a,&b,&c); aver=float(a+b+c)/3; printf(―%f‖,aver); } ⑷ 已知整型变量a、b、c的值,根据以下算式编写程序求y的值。 y = 3.8×(b+ac) 6a 2 #include printf(\"please input the num of a b c: \"); scanf(\"%d %d %d\ printf(\"the y is %f\} 5.设a和n已定义为整型变量,a=12,求下面表达式运算后a的值。 ⑴ a+=a 24 ⑵ a-=2 10 ⑶ a*=2+3 60 ⑷ a/=a+a 0 ⑸ a%=(n%=2),n的值等于5 0 ⑹ a+=a-=a*=a 0 第三章 一、选择题1_C_2.C_3.C4.D5.D_ 二、填空题1.%f_ 2 、 %s 3 、12,56,789.000000 4、6e,16_ 5、1,1,3___ 三、编程题 1.编写一个程序,从键盘上输入3个数,求其和并输出。 #include int a,b,c,d; printf(\"please input the num of a,b,c:\"); scanf(\"%d%d%d\ d=a+b+c; printf(\"the sum of a,b and c is %d\ } 2.输入一个正整数,分别输出它的八进制和十六进制数形式。 #include int m; printf(\"please input the m:\"); scanf(\"%d\ printf(\"\\n ba jin zhi shu zhi shi : %o\ printf(\"\\n shi liu jin zhi shu zhi shi : %x\} 3.编程把11325秒转换成“小时:分钟:秒”的形式 #include int a=11325; int h,m,s; h=a/3600; m=a%3600/60; s=a%3600%60; printf(\"%d:%d:%d\ } 4.编程序,求a+︱b︱的值,a,b为任意数。本题可调用求绝对值的函数fabs,此函数包含在math.h文件中。 #include double a,b; printf(\"please input the num of a and b:\"); scanf(\"%lf%lf\ printf(\"\\n a+|b|= %lf\ } 5. 编程序,求平面上两点之间的距离。设第1个点的坐标为(x1,y1),第2点的坐标为(x2,y2),则这两个点的距离为:d=(x1x2)2(y1y2)2 #include float x1,y1,x2,y2,d; printf(\"\\n shu ru di 1 ge dian de zuo biao : \"); scanf(\"%f%f\ printf(\"\\n shu ru di 2 ge dian de zuo biao : \"); scanf(\"%f%f\ d=sqrt(pow((x1-x2),2)+pow((y1-y2),2)); printf(\"\\n ju li d wei : %f \} 第四章 一、阅读程序,回答问题 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) <0 (2) !=0 3.答案: (1) max 2.编写一个程序,实现功能是:输入一个实数,按1输出此数的相反数,按2输出此数的平方根,按3输出此数的平方。 #include void main() { double f ; int a ; printf(\"qing shu ru yi ge shu :\") ; scanf(\"%f\ printf(\"\\n qing shu ru 1 huo 2 huo 3\\n\") ; 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\ if (a==1) printf(\"%f\\n\ else if (a==2) printf(\"%f\\n\ else if (a==3) printf(\"%f\\n\ else printf(\"shu ru cuo wu!\") ; } 3.输入字符,输出其类型。ASCII值小于32的为控制字符,在―0‖和―9‖之间的为数字,在―A‖和―Z‖之间为大写字母,在―a‖和―z‖之间为小写字母,其余则为其它字符。 #include char a; scanf(―%c‖,&a); if(a<32&&a>0) printf(―this is a Control Character‖); if(a>=‘0‘&&a<=‘9‘) printf(―this is a number‖); if(a>‘A‘&&a<‘Z‘) printf(―this is a capital letter‖) if(a>‘a‘&&a<‘z‘) printf(―this is a lowercase number‖); else printf(―this is an other character‖); } 4.输入某年某月某日,判断这一天是这一年的第几天。 #include } printf(\"qing shu ru nian, yue, ri:\") ; scanf(\"%d,%d,%d\ 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 ; case 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.\ 第五章 一、单选题1 C2. C 3. D 4. C5. B 6.C7. A8.D 9. C 10 C 二、写程序运行结果 1.答案:1 ,2 ,3 2.答案:52 3.答案:s=6 4.答案:1,-2 5.答案:a=16 y=60 6.答案:6 三、程序填空 1.答案:(1) cx=getchar() (2) front!=‗ ‘ (3) cx 2.答案:(1) s=0 (2) m%n==0 (3) m==s 3.答案:(1) j=1 (2) k<=6 4.答案:(1) 50 (2) n=2 (3) h/2 5.答案:(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;i<10;i++)(2) j%3!=0 3.答案:(1) double k=1,t=1;(2) k=k+1/t; 4.答案:(1) i=2;(2) k--; 5.答案:(1)h=(float)(5-2)/n; (2) a=a+h; 五、编写程序 1.编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年的总年 数,要求每10个闰年放在一行输出。 #include int year, k=0 ; for (year = 2000; year<=3000; year++) {if ((year%4 == 0 && year%100 != 0) || year%400 == 0) { k++; printf(\"%6d\ if (k%10 == 0) printf(\"\\n\"); } } printf(\"\\nrun nian de zong nian shu shi %d\ } 2.若有如下公式: 试根据上述公式编程计算π的近似值(精确到10-6)。 #include while(b>=0.000001) { b=1/(float)(i*i); a+=b; i++;} pi=sqrt(6*a); printf(\"%f\\n\} 3.用0~9之间不同的3个数构成一个3位数,统计输出共有多少种方法? #include if (i==j) continue ; for (k=0;k<10;k++) { if (i==k || j==k ) continue ; n++ ; } } } printf(\"%d\} 4.找出1~99之间的全部同构数。同构数是这样一组数:它们出现在平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是同构数。 #include int i,j,k ; k=10; for (i=1; i<100;i++) { if (i==10) k=100; j = i*i ; if (j%k==i) printf(\"%d\\ } } 5.猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了个。第2天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃了前一天剩下的一半零一个。到第10天再想吃时,只剩下一个桃子了。问第1天共摘多少个桃子?。 #include 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\} 6.打印以下图形 * * * * * * * * * * #include { int i, j ,k; for (i=1; i<=4; i++) { for (j=1;j<=4-i;j++) printf(\" \") ; printf(\"*\") ; for (j=1;j<=i-1;j++) { printf(\" *\") ; } printf(\"\\n\") ; } } 7.百钱百鸡问题。公鸡五元一只,母鸡三元一只,鸡雏一元三只。若用100元买100只鸡,可买公鸡、母鸡和鸡雏各多只? #include 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(\"gong ji mu ji chu ji wei %d, %d, %d.\\n\ } } } } } 8.一个正整数与3的和是5的倍数,与3的差是6的倍数,编写一个程序求符合条件的最小数。 #include int k=1; while( !( ((k+3)%5 == 0) && ((k-3)%6 ==0) ) ) k++ ; printf(\"%d\} 9.从键盘输入20个整型数,统计其中负数个数并求所有正数的平均值。 #include }10.父亲今年30岁,儿子6岁,经过多少年后,父亲的年龄是儿子的两倍? #include while(!(i+k==(j+k)*2)) k++; printf(\"%d\} 第六章 一、选择题 1._C_ 2.C__ 3._D__ 4._C__ 5._C_ 6._B_ 7._D 8. _A_ 二、填空题 1.答案:b!=0 2.答案:15 三、 编程题 1.编写一个求x的y次方的函数。 #include printf(\"please input the two numbers: \\n\"); scanf(\"%d%d\ c=func(a,b); printf(\"the answer is \\n\"); printf(\"%d\\n\} int func(int x,int y) { int i, s=1; for(i=1;i<=y;i++) s=s*x; return(s); } 2.编写函数,要求去掉字符串中所有空格。 # include while(s[i]) {if(s[i]!=' ')s[j++]=s[i]; i++; } s[j]='\\0'; } void main() { char s[80]; gets(s); f(s); puts(s); } 3.编写函数,判断一个字符串是否是回文,如是返回1,否则返回-1(回文是指这个字符串逆置后不变,如aba就是回文。) # include int i,f; f=1; i=0; while(f&&i void main() { char s[80]; gets(s); if(f(s,strlen(s))==1) printf(\"\\n Yes \"); else printf(\"\\n No \"); } 4.编写函数fun求1!+2!+3!+…+n! 的和,在main函数中由键盘输入n值,并输出运算结果。 #include printf(\"please input the number: \\n\"); scanf(\"%d\ c=fun(n); printf(\"the answer is \\n\"); printf(\"%d\\n\} int 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.编写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个整数由键盘输入 #include printf(\"please input the two numbers: \\n\"); scanf(\"%d%d\ c=func(x,y); d=fun(x,y); printf(\"the answer is \\n\"); printf(\"zui da gong yue shu shi %d\\n\ printf(\"zui xiao gong bei shu shi %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. D 2. B 3. D 4. D 5. A 二、阅读程序写出结果 1. 答案:1 2. 答案:12345 3. 答案: t*M 4. 答案:7078 9198 三、程序填空 1. 答案:(1) i—(2) i>=1(3) i 2. 答案:(1) i<=9(2) i<=9(3) i%3==0 四、程序改错 1.答案:(1) int a[3]={0};(2) for(i=1;i<3;i++) a[0]=a[0]+a[i];