根据老师的要求,我把上次测试的答案汇总了下,将程序写的得到满分的答案给挑了出来,希望大家不要追究版权问题,若有问题,我们私下武力解决问题。
第一题:从键盘输入一个大写字母,要求改用小写字母输出。(这道题老师课堂上讲过,大家都应该没有问题)
#include<stdio.h> int main() { char c; printf("请输入一个大写字母:"); c = getchar(); if(c>='A' && c<='Z'){ c = c + 32; printf("转换后的小写字母为:%c\n",c); } }
第二题: 求ax2+bx+c=0方程的解(第二题班里没有满分,只有四个5分)
#include<stdio.h> #include <math.h> int main(){ int a,b,c,i; float x1,x2,p,q; printf("请输入a,b,c 的值:"); scanf("%d%d%d",&a,&b,&c); if(a==0) printf("非二元一次方程。\n"); else if(b*b-4*a*c==0) printf("有两个相等的实数根%f\n",-1*b/2.0*a); else if(b*b-4*a*c>0){ x1=-1*b+sqrt(b*b-4*a*c)/2.0*a; x2=-1*b-sqrt(b*b-4*a*c)/2.0*a; printf("有两个实数根x1=%f x2=%f\n",x1,x2); } else if(b*b-4*a*c<0){ p=-1*b/2*a; q=sqrt(-1*(b*b-4*a*c)); printf("两个复跟:%f+%fi %f-%fi\n",p,q,p,q); } return 0; }
第三题: 任给三角形的三边,判断该三角形是等边、等腰、直角或一般三角形。
#include<stdio.h> #include <math.h> int main() { float a,b,c,; printf("请输入三角形三边的长:\n"); scanf("%f%f%f",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) { if(a==b && b==c) printf("该三角形为等边三角形!\n"); else { if((a==b && b!=c)||(b==c && b!=a)||(a==c && c!=a)) 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"); } return 0; }
第四题:写程序,判断某一年是否闰年
#include<stdio.h> int main(){ int year,leap; printf("随便输入一个年份呗: "); scanf("%d",&year); if(year%4==0){ if(year%100==0){ if(year%400==0){ leap=1; } else{ leap=0; } } else{ leap=1; } } else leap=0; if(leap){ printf("呦!难得一见的闰年\n"); } else{ printf("亲它并不是闰年\n"); } return 0; }
第六题:打印乘法99表
#include<stdio.h> int main() { int i,j,k; printf("\n\n九九乘法表:\n\n\n"); for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { k=i*j; printf("%dX%d=%-3d ",j,i,k); } printf("\n"); } getchar(); getchar(); }
第七题:.斐波那契数列的前几项是:1、1、2、3、5、 8、13、21、34……编写程序输出该数列的前13项。(每行输出5个数)
#include<stdio.h> int main() { int a,b,c,i; a = 1; b = 1; printf("%7d %7d ",a,b); for(i=3;i<=13;i++){ c = a + b; printf("%7d ",c); if(i%5==0) printf("\n"); a = b; b = c; } printf("\n") ; }
第八题:计算表达式的值,直到某一项的值小于10-3为止。(第八题大家做了的很少)
#include<stdio.h> int main() { int i; double sum=0,item=0.5; for(i=1;item>0.001;i++) { item=1.0/(i*(i+1)); sum=sum+item; } printf("%1f\n",sum); return 0; }
第九题:编程序,求一批非零整数中的偶数、奇数的平均值。用零作为终止标记。(这道题班里做对的也不多)
void f9() { int n; int jishusum=0; int oushusum=0; int jishucount=0; int oushucount=0; printf("请输入若干个非零整数(以零为终止标记):"); scanf("%d",&n); while(n) { if(n%2){ jishusum+=n;jishucount++; } else{ oushusum+=n;oushucount++; } scanf("%d",&n); } printf("奇数平均值:%f\n",1.0*jishusum/jishucount); printf("偶数平均值:%f\n",1.0*oushusum/oushucount); }
第十题:任意十个数,打印它们中的最大数与最小数。
#include<stdio.h> int main() { int i = 0,a[10]; int max = 0,min = 0,sum = 0; printf("请输入你要计算的十个数: "); float pj = 0;; for(i = 0;i < 10;i ++) scanf("%d",a+i); max = min = a[0]; for(i = 1;i < 10;i ++) if(max < a[i]) max = a[i]; for(i = 1;i < 10;i ++) if(min > a[i]) min = a[i]; for(i = 0;i < 10;i ++) sum += a[i]; pj = sum / 10.0; printf("最大值%d\t最小值%d\t\n",max,min,pj); }
第十一题:找出10~1200之间各位数字之和能被5整除的所有数。
#include<stdio.h> int main() { int i,j,num,sum; int iBegin=10; int iEnd=1200; for(i=iBegin,j=0;i<=iEnd;i++) { num=i; sum=0; do { sum+=(num%10); }while((num/=10)>0); if(sum%5==0) { j++; printf("%d%c",i,(j%10==0)?'\n':' '); } } }
第十二题:简单图案打印(矩形)
#include<stdio.h> int main() { int i; for(i=1;i<=5;i++){ printf("* * * * *\n"); } }
第十三题:简单图案打印(平行四边形)
#include<stdio.h> int main() { int i,j; for(i=0;i<5;i++){ for(j=0;j<i+5;j++) printf(" "); for(j=0;j<5;j++) printf("*"); printf("\n"); } }
第十四题:简单图案打印(等腰三角形)
#include<stdio.h> int main() { int i,j; for(i=0;i<5;i++){ for(j=0;j<5-i;j++) printf(" "); for(j=0;j<2*i+1;j++) printf("*"); printf("\n"); } return 0; }
第十五题: 计算和统计旅客运费程序.
#include<stdio.h> int main() { int num=0,total=0; float w,f,t=0; printf("请输入该名旅客行李的重量:"); scanf("%f",&w); while(num<=100&&w>0){ if(w<=50) f=w*1.5; else f=1.5*50+2.8*(w-50); num++; total+=f; printf("旅客编号为:%d,应付金额为:%.2f元,行李重量为:%.2fkg\n",num,f,w); printf("总收入为:%d元\n",total); printf("请输入该名旅客行李的重量:"); scanf("%f",&w); } printf("t=%.2f,num=%d\n",t,num); return 0; }
若是有错误,希望大家能够及时的指出。谢谢!