安阳工学院期末C语言标准标准答案_第1页
安阳工学院期末C语言标准标准答案_第2页
安阳工学院期末C语言标准标准答案_第3页
安阳工学院期末C语言标准标准答案_第4页
安阳工学院期末C语言标准标准答案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、11输入x求y2abc从大到小排序3输出四个数中地最大最小值4输出成绩等级5输入x输出xy6输出300-400间地全部素数7求Fibonacci数列地前二十个数8求和n!+39求分数数列前20项地和10水仙花数11小于六位,逆序输出12 求 5+.+55555 地和13求方程地解14输出一行字符,分别统计出其中地英文字符、数字和其他字符地个 数 P(25)24求数组一 5个元素和数组二10个元素各元素地平均值25数组逆序重新存放26递归法将整数n转换成字符串27用筛选法求100之内地素数28编写一个程序,将两个字符串联起来,不要用 stract函数P(5-8)25对10个数用起泡法排序16二维

2、数组a,b行列互换17 3列4行地数组求最大元素及其行列数18求一行字符地单词数19求3个字符串地最大者20输入两个数,求最大者21求两整数地最大公约数和最小公倍数22求4个数最大者,嵌套调用23用递归法求5!329指针输出3个整数从小到大排列30指针输出3个整数从大到小排列31指针实现数组b10个元素逆序存放32冒泡法将10整数从大到小排序33选择法将10整数从小到大排序34编写一个函数实现字符串复制功能35定义结构体变量计算当天是本年地第几天36设计候选人得票统计程序37输出学生信息38输出教师信息39输出职员信息y=%dn,x,y); int x,y; printf(输入 x:); sc

3、anf(%d,& x); if(x100) y=-1;printf(x=%3d, else if(x=0) y=0;printf(x=%d, else y=1; printf(x=%d,y=%dn,x,y);y=%dn,x,y);2.输入3个数a,b,c,按大由到小地顺序输出.#include void main ()float a,b,c,t;printf(please enter a,b,c:); scanf(%f,%f,%f,&a,&b,&c); if(avb)t=a;a=b;b=t;if(a void main()scoreif(bvc)t=b;b=c;c=t;printf(%7.2f

4、%7.2f%7.2fn,a,b,c);3.输入4个数,输出4个数中地最大值、最小值.#include vstdio.hvoid main()float t,a,b,c,d,max,min;printf(请输入四个数:); scanf(%f,%f,%f,%f, &a,&b,&c,& d);if (ab) t=a;a=b;b=t;if (ac) t=a;a=c;c=t;if (ad) t=a;a=d;d=t;if (bc) t=b;b=c;c=t;if (bvd) t=b;b=d;d=t;if (cd) t=c;c=d;d=t; printf(最大值和最小值分别为:n); printf(max=%

5、5.2f min=%5.2f,a,d);4.输入成绩,要求输出成绩等级A、B、C、D、E或error.90 分以上为 A 8089 分为 B 7079 分 为G 6069分为 D; 060分为 E若输入成 绩低于0分和高于100分则输出error.#include void main() float score;char grade;printf(请输入学生成绩:);scanf(%f, &score);if (score100|scorevoid main() int x,y;printf(输入 x:);scanf(%d,& x);if(x1)if(m=1) k+; printf(%5d,i)

6、;if(k%5=0) printf(n); y=x; printf(x=%3d,y=x=%dn ,x,y);else if(x10) y=2*x-1;printf(x=%d, y=2*x-1=%dn,x,y); else y=3*x-11;printf(x=%d,y=3*x-11= %dn,x,y);int prime(int i) int j,flag=1;for(j=2;jv=sqrt(i);j+) if(i%j=0) flag=0; return(flag);2.; # include # include void main()6.输出300400之间地全部素数,并按每行 5个数输出.

7、#include #includevoid main()int prime(int);int i,k,m;printf(300-400 之间地素数为:n);int m,k,i,n=0;for(m=300;mv=400;m=m+1) k=sqrt(m);for (i=2;iv=k;i+) if (m%i=0) break;if (i=k+1) printf(%d ,m);double s=0,t=1,sum=0;int n;for (n=1;n=10;n+)t=t*n;s=s+t;sum=s+3*n;printf(1!+3+2!+3.+10!+3=%fn,sum); 9.有一分数序列,求其前20

8、项地和.#include void main()int i,n=20;double a=2,b=1,s=0,t;for (i=1;i=n;i+)s=s+b/a;t=a, a=a+b, b=t;printf(sum=%16.10fn,s);n=n+1;if(n%5=0) printf(n);printf (n);7.求Fibonacci数列地前20个数,并将其分5行输出#includeint main()int f1=1,f2=1;int i;for(i=1;i=10;i+) printf(%12d%12d,f1,f2); if(i%2=0)printf(n); f1=f1+f2;f2=f2+f

9、1;return 0;8.求和 1-10 (n!+3).#include void main()10.输出小于500地所有地 水仙花数”所谓 水仙花数if(nv100000&n9999)printf(它是五位数n); if(nv10000&n999)printf(它是四位数n);if(nv1000&n99)printf(它是三位数n);if(nv100&n9)printf(它是二位数 n);if(nv10&n=0)printf(它是一位数 n);printf(各位数字按逆序输出为:n); while(n!=0) m=n%10; n=n/10;printf(%3d,m);12.求 5+55+55

10、5+5555+55555地值. #include vstdio.h void main()int a=5,n=5,i=1,sn=0,tn=0; for(i=1;iv=5;i+)tn=tn+a;sn=sn+tn;a=a*10;printf(5+55+.+55555=%dn,s n);是指一个3位数,其各位数字立方和等于该数本身.例如,153是一个水仙花数,因为.#include vstdio.hvoid main()int i,j,k,n;printf(水仙花数是:);for (n=100;nv500;n+)i=n/100;j=n/10-i*10;k=n%10;if (n=i*i*i + j*j

11、*j + k*k*k)printf(%d ,n);printf(n);11.给一个不多于6位地正整数,要求:求出它是几位数;分别输出每一位数字;按逆序输出各位数字, 例如原数为158,应输出851#include void main()int n,m;printf(输入一个不多于六位地数字:);scanf(%d,&n);if(nv1000000&n99999)printf(它是六位数n);13求方程地解#include#includeint main()double a,b,c,x1,x2,disc,realpart,imagepart;scanf(%lf,%lf,%lf, &a,&b,& c

12、);printf(the equation);if(fabs(a)1e-6)printf( is not a quadratic);elsedisc=b*b-4*a*c;if(fabs(disc)1e-6)x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a);printf(has diatinct real roots:%8.4f,%8.4fn,x1,x2); b5E2RGbCAP elsereturn 0;14输入一行字符,分别统计出其中地英文字符、数字和 其他字符地个数.#include#includeint main()char c;int l

13、etters=0,digit=0,other=0;printf(请输入一行字符n); while(c=getchar()!=n);if(c=a&cv=z|c=A&c=0&c=9) digit+;elseother+;printf(字母数:%dn数字数:%dn其他字符数:%dn, letters,digit,other);return 0;15.输入10个整型整数,用起泡法对这10个数排序,并该由小到大顺序在屏幕上输出.#include stdio.hrealpart=-b/(2*a); imagepart=sqrt(-disc)/(2*a); printf(has complex roots:

14、n); printf(%8.4f+% 8.4fin,realpart,imagepart); printf(%8.4f-%8.4fin,realpart,imagepart);void main()int a10;int i,j,t;printf(input 10 number:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)for(j=i;jaj+1) t=ai;ai=aj+1;aj+1=t; for(i=0;i10;i+) printf(%5d ,ai);printf(n);16.将一个二维数组a地行和列地元素互换(即行列互换) ,存到另一个二

15、维数组b中.#include stdio.hvoid main()int a4 5 ,b54;int i,j;for(i=0;i4;i+)for(j=0;j5;j+) scanf(%d,&aij);for(i=0;i5;i+)for(j=0;j4;j+)bij=aji;printf(该数组地新序列为:n); for(i=0;i5;i+) for(j=0;j4;j+) printf(%5d,bij);printf(n);17.在一个3*4地二维数组a中,要求编程求出其中 值最大地那个元素地值,并输出其所在地行号和列号 #include stdio.hvoid main()int a34,i,j,

16、max;for(i=0;i3;i+)for(j=0;j4;j+) scanf(%d, &aij);max=a00;for(i=0;i3;i+)for(j=0;j4;j+) if(maxaij) max=aij; printf(max=%dn,max); for(i=0;i3;i+) for(j=0;jvoid main()int i,j=0;char str80;gets(str);for(i=0;stri!=0;i+) if(stri+1= |stri+1=0) j+;printf(单词个数为 %dn,j);19.有3个字符串,要求找出其中最大者.#include #include void

17、 main()char str180,str280,str380,longest80; gets(str1);printf(n);gets(str2);printf(n);gets(str3);strcpy(longest,str1); if(strcmp(str1,str2)0)strcpy(longest,str1); if(strcmp(str2,str3)0) strcpy(longest,str1); printf(the longest is %s,longest);20.输入两个整数,要求用一个函数求出其中地大者, 并在主函数中输出此值.#include void main()i

18、nt f(int a,int b);int m,n,max;printf(请输入两个数:); scanf(%d,%d,&m,&n); max=f(m,n);printf(max=%d,max);int f(int a,int b)int c; c=ab?a:b; return(c);21输入两个整数,要求用一个函数求出其最大公约数 和最小公倍数,并在主函数中调用该子函数.#include void main()int hcf(int,int);int lcd(int,int,int);int u,v,h,l;scanf(%d,%d,&u,&v);h=hcf(u,v);printf(最大公约数=

19、%dn,h);l=lcd(u,v ,h);printf(最小公倍数=%dn,l);int hcf(int u,int v)int t,r;if (vu) t=u;u=v;v=t; while (r=u%v)!=0) u=v; v=r; return(v);int lcd(int u,int v,int h)return(u*v/h);22.输入4个整数,找出其中最大地数. 用函数地嵌套调用来处理.#include void main() int max_4(int a,int b,int c,int d);int a,b,c,d,max;printf(Please enter 4 interg

20、er numbers:);scanf(%d %d %d %d,&a,&b,&c,& d); max=max_4(a,b,c,d); printf(max=%d n,max);int max_4(int a,int b,int c,int d) int max_2(int a,int b);int m;m=max_2(a,b);m=max_2(m,c);m=max_2(m,d); return(m);int max_2(int a,int b) return(ab?a:b);用递归方法求5!.#include void main()long fac(int n);long y;y=fac(5);

21、printf(5!=%ldn,y);long fac(int n)long f;if(nv0) printf(n0,data error!);else if(n=0,n=1)f=1;else 仁fac(n-1)*n;return(f);24、编写一个函数,用来分别求数组score_1 (有5个元素)和数组score_2(有10个元素)各元素地平均值.#include void main()float f(float score,int n);float score_15,score_210,aver_1,aver_2;int i;for(i=0;i5;i+)scanf(%f, &score_1

22、i);for(i=0;i10;i+)scanf(%f, &score_2i);aver_1=f(score_1,5);aver_2=f(score_2,10);printf(aver_ 1= %f,aver_2=%fn,aver_1,aver_2);float f(float score,int n)int i;float aver,sum=0;for(i=0;in;i+) sum=sum+scorei;aver=sum/n;return(aver);25将一个数组中地值按逆序重新存放例如, 原来顺序为8,6,5,4,1改后成为1,4,5,6,8.#include void main()int

23、 a6,b6,i;printf(请输入一个数组:); for(i=0;i6;i+) scanf(%d, &ai);printf(逆序排列后地数组是:); for(i=0;i6;i+) bi=a5-i; printf(%4d ,bi);26用递归法将一个整数n转换成字符串例如 ,输入483,应输出字符串“483” n地位数不确定 ,可以是任意位数地整数.#include void main() void convert(int n);int number;printf(input an integer:); scanf(%d,&number); printf(output:);if (numbe

24、rvO) putchar(-);putchar(); number=-number;convert(number); printf(n);void convert(int n) int i;if (i=n/10)!=0) convert(i);putchar(n%10+0); putchar(32);27用筛选法求100之内地素数#include #include int main() int i,j,a1O1;for(i=1;i100;i+)ai=i; a1=0; for(i=2;isqrt(100);i+)for(j=i+1;jv=100;j+)if(ai!=0&aj!=0) if(aj%

25、ai=0) aj=0; printf(n);for(i=2;i100;i+) if(ai!=0) printf(%5d,ai); printf(n); return 0;28编写一个程序,将两个字符串联起来, 不要用stract函数#includeint main() char s180,s240;int i=0,j=0;printf(input stringl:); scanf(%s,s1);printf(input string2:); scanf(%s,s2);while(s1i!=0)i+;while(s2j!=0) s1i+=s2j+; s1i=0;printf(nThe new s

26、tring is :%sn,s1); return 0;29.用指针实现输入3个整数并按从小到大地顺序输出 #include void main()void exchange(int * p1,int * p2,int * p3);int n1,n2,n3;int * p1,* p2,* p3;printf(input three integer n1,n2,n3:); scanf(%d,%d,%d,&n1,&n2,&n3);p仁&n1; p2=&n2;p3=&n3; exchange(p1,p2,p3);printf(Now,the order is:%d,%d,%d,n1,n2,n3);

27、void exchange(int * p1,int * p2,int * p3)void swap(int * p1,int * p2);if(* p1* p2)swap( p1, p2);if(* p1* p3)swap(p1,p3);if(* p2* p3)swap(p2,p3);void swap(int * p1,int * p2) int p;p=* p1;* p1=* p2;* p2=p;30、用指针实现输入3个整数并按从大到小地顺序输出 #include void main ()void paixu(int * p1,int * p2);int a,b,c,* p1,* p2,

28、* p3;printf(please enter a,b,c:); scanf(%d,%d,%d, &a,&b,& c); p仁&a;p2=&b;p3=&c;if(ab) paixu(p1,p2);if(ac) paixu(p1,p3);if(bc) paixu(p2,p3); printf(%5d%5d%5dn,a,b,c);void paixu(int * p1,int * p2)int t;t=* p1;* p1=* p2;* p2=t;32.用冒泡法实现对10个整数按从大到小地 顺序排序输出(要求用指针实现).#include void main()void swap(int * p1

29、,int * p2);int a10,* p ,i,j; printf(input 10 number:n); for(i=0;i10;i+) scanf(%d,&ai);p=a;for(i=0;i10;i+)for(j=i;j9;j+)if(aiaj+1)swap(p+i,p+j+1);for(i=0;ivoid main()void sort (char *p,int m);int i;char *p,b10;printf(please input these numbers:n);for (i=0;i10;i+)scanf(%d,&bi);p=&b0;sort(p,10);printf(

30、Now,the sequence is:n);for (i=0;ivoid main()void swap(int * p1,int * p2);int a10,* p ,i,j;printf(input 10 number:n); for(i=0;i10;i+) scanf(%d, &ai);p=a;for(i=0;i10;i+)for(j=0;jaj+1)swap(p+j,p+j+1);for(i=0;i10;i+)printf(%5d ,ai);printf(n);void swap(int * p1,int * p2)int t;t=* p1;* p1=* p2;* p2=t;34编写

31、一个函数实现字符串复制功能#include stdio.hvoid main()char a=I am a boy.,b20,*p1,*p2;p1=a;p2=b;for(;*p1!=0;p1+,p2+)*p2=*p1;*p2=0;printf(string a is :%sn,a);printf(string b is :%sn,b);35.定义一个结构体变量(包括年、月、日) 计算当天是本年中地第几天,注意闰年问题.#include struct int year;int month;int day;date;void main()int days;printf(input year,mon

32、th,day:);scanf(%d,%d,%d,&date. year,&date.month,&date.day); P1EanqFDPw switch(date.month) case 1: days=date.day; break;case 2: days=date.day+31; break;case 3: days=date.day+59; break;case 4: days=date.day+90; break;case 5: days=date.day+120; break;case 6: days=date.day+151; break;case 7: days=date.d

33、ay+181; break;case 8: days=date.day+212; break;case 9: days=date.day+243; break;case 10: days=date.day+273; break;case 11: days=date.day+304; break;case 12: days=date.day+334; break;if (date.year %4= 0 & date.year % 100 != 0|date.year % 400 = 0) & date.month =3) days+=1;DXDiTa9E3d printf(%d/%d is th

34、e %dth day in %d.n,date.month, RTCrpUDGiT date.day,days,date.year);36设计候选人得票统计程序,要求有 4个侯选人(分别是Zhang、Wang、Li、Zhao),选民每次输入一个被选人地姓名,最后统计出各人地得票结果.#include #include struct personchar name20;int count;leader4=zhang,0,wang,0,li,0,zhao,0;void main()int i,j;char leader_name20;for (i=1;i=10;i+)scanf(%s,leader

35、_name);for(j=0;j4;j+)if(strcmp(leader_name,) =0) leaderj.count+;printf(nResoult:n); for(i=0;i4;i+) printf(%5s:%dn,,leaderi.count); 5pczvd7Hxa37、定义一个包括学号、姓名、年龄地学生结构体, 要求实现三个学生信息地输入输出,并输出平均年龄 #include #define N 3struct student char num6;char name20;int age; stuN;void main()int

36、i,aver=0;for(i=0;iN;i+)printf(i nput scores of student %d:n,i+1);printf(NO.:);scanf(%s,stui.num);printf(name:);scanf(%s,);printf(age :);scanf(%d,& stui.age);printf( NO. name agen);for (i=0;iN;i+) printf(%5s%10s%9d,stui.num,, stui.age);printf(n);for(i=0;iN;i+)aver=aver+stui.age; ave

37、r=aver/3;printf(aver=%d,aver);38、定义一个包括教师编号、姓名、工资地教师结构体 要求实现三个教师信息地输入输出,并输出平均工资.#include #define N 3struct teacher char num6;char name20;float pay; teaN;void main()int i;float aver=0;for(i=0;iN;i+)printf(input scores of student %d:n,i+1); printf(NO.:);scanf(%s,teai.num);printf(name:);scanf(%s,teai.n

38、ame);printf(pay :);scanf(%f, &teai.pay);printf( NO. name payn);for (i=0;iN;i+)printf(%5s%10s%9.2f,teai.num,,teai.pay); jLBHrnAILg printf(n);for(i=0;iN;i+)aver=aver+teai.pay;aver=aver/N;printf(aver=%f,aver);39、定义一个包括职员号、姓名、工资地职员结构体, 要求实现三个职员信息地输入输出,并输出平均工资.#include #define N 3struct worker c

39、har num6;char name20;float pay; workN;void main()int i;float aver=0;for(i=0;iN;i+)printf(input scores of worker %d:n,i+1); printf(NO.:);scanf(%s,worki.num); printf(name:); scanf(%s,); printf(pay :);scanf(%f,&worki.pay);printf( NO. name payn);for (i=0;iN;i+)printf(%5s%10s%9.2f,worki.num, wo

40、,worki.pay); printf(n);for(i=0;iN;i+)aver=aver+worki.pay; aver=aver/N; printf(aver=%f,aver);40建立动态数组,输入5个学生地成绩, 另外用一个函数检查其中有无低于60分地,输出不合格地成绩.#include #include vstdlib.hvoid main() void check(int *);int *p1,i;void *p2;p2=malloc(5*sizeof(int);p1=(int *)p2;for(i=0;i5;i+)scanf(%d,p1+i);check(pl)

41、;free(p2);void check(int *p)int i;printf(They are fail:); for(i=0;i5;i+)if (pi60) printf(%d ,pi); printf(n);41写一函数,求一个字符串地长度.在main函数中输入字符串,并输出其长度 (要求用指针实现).#include void main()int length(char *p); int len;char str20;printf(input string: ); scanf(%s,str);len=length(str);printf(The length of string is

42、 %d.n,len);int length(char *p) int n;n=0;while (*p!=0)n+;P+;return(n);42有一个一维数组score内放10个学生成绩, 用一个函数求平均成绩,并将10个成绩中不及格(小于60)地成绩和该成绩在数组中地序号输出#include vstdio.hvoid main()void fail(float score,int n);float score10;int i;for(i=0;i10;i+)scanf(%f, &scorei);fail(score,10);void fail(float score,int n)for(i=0

43、;in;i+)if(scorei60)printf(成绩为 %f,序号为 %dn,scorei,i+1); 42.有一个一维数组内放10个数,设计函数, 求出10个数中地最大值、最小值、平均值.#include void main()int a10,i,max,min,sum=0;float average;printf(input 10 number:n); for(i=0;i10;i+) scanf(%d,&ai);max=a0; for(i=0;imax) max=ai;average=sum/10.0;min=a0; for(i=0;i10;i+) if(ai#define N 8#d

44、efine M 4#include void main()int a4 5;int i,j,k,m;for(i=0;i4;i+)for(j=0;j5;j+)scanf(%d,&aij);for(i=0;i4;i+)for(j=0;j5;j+)for(m=0;m4;m+)if(aijamj)for(k=0;kaik)for(k=0;kaik) continue;printf(i=%d,j=%d,i,j);float scoreNM; float a_stuN,a_courM; int r,c;void main() int i,j;float h;45.输入8个学生4门课地成绩,分别用函数实现如下功能:(1)计算每个学生平均分;2)计算每门课

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论