大一C语言考试上_第1页
大一C语言考试上_第2页
大一C语言考试上_第3页
免费预览已结束,剩余22页可下载查看

下载本文档

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

文档简介

1、1(x 0 或 x 100)1.有一个函数y0 (x 0),写一段程序,输入x的值,输出y的值1(0 x 100)#in clude<stdio.h>int mai n()int x,y;scan f("%d", &x); if(x>100|x<0) y=-1;else if(x=0) y=0;elsey=1;prin tf("%dn",y); return 0;2. 输入3个实数a,b,c输出其中最小的数。#in clude<stdio.h>int mai n()int a,mi n=32767, n=3;w

2、hile( n-)scan f("%d", &a);if(a<mi n)mi n=a;prin tf("%dn",mi n);return 0;3. 输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。#in clude<stdio.h>#in clude<math.h>int mai n()int a,b,c,s,d;scan f("%d%d%d", &a,&b,&c);if(a+b>c&&a+c>b&&

3、b+c>a)d=(a+b+c)/2; s=sqrt(d*(d-a)*(d-b)*(d-c);prin tf("%dn",s);elseprintf(”三边构不成三角形n");4. 输入4个整数,输出4个数中的最大值、最小值。#in clude<stdio.h>int mai n()int a,max=-32768,m in=32767, n=4;while( n-)scan f("%d", &a);if(a>max)max=a;if(a<mi n)mi n=a;prin tf("%d %dn&qu

4、ot;,max,mi n);return 0;5. 要求按照成绩的等级输出百分制分数段,A等为90分以上,B等为8089,C等为7079,D等为6069,E等为60分以下。成绩的等级由键盘输入,若输入的等级非A、B、C、D、E 字符,输出” enter data error。”#in clude<stdio.h>int mai n()char a;a=getchar();if(a='A')printf("90 分以上 n");else if(a='B')prin tf("8089n");else if(a=&#

5、39;C')prin tf("7079n");else if(a='D')prin tf("6069n");else if(a='E')printf("60 分以下 n");elseprin tf("e nter data error' n");return 0;6. 有一个函数:x(x 1)y 3x 11 (x 10),写一段程序,输入x的值,输出y的值2x 1 (1 x 10或 x 10)#in clude<stdio.h>int mai n()int

6、 x,y;scan f("%d",& x);if(x<1)y=x;prin tf("%dn",y);else if(x=10)y=3*x-11;prin tf("%dn",y);elsey=2*x-1;prin tf("%dn",y);return 0;7. 输入成绩,要求输出成绩等级A、B、C、D、E或error。90分以上为 A'8089分为 B'7079分为C' 6069分为D 060分为E'若输入成绩低于0分和高于100分则输出 error。#in clude&

7、lt;stdio.h>int mai n()int a;scan f("%d",&a);if(a>100)prin tf("error n");elseif(a>90)prin tf("A n");else if(a>80)prin tf("Bn");else if(a>70)prin tf("Cn");else if(a>60)prin tf("Dn");elseprin tf("En");return 0;8

8、. 求一元二次方程ax2+bx+c=0的解。(考虑b2-4ac三种情况)#in clude<stdio.h>#in clude<math.h>int mai n()double a,b,c,d,e,x1,x2,i;scan f("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;e=-b/(2*a);if(d>1e-6)x1=e+sqrt(d)/(2*a);x2=e-sqrt(d)/(2*a);prin tf("%.2lf %.2lf",x1,x2);else if(d=1e-6)x1

9、=x2=e;prin tf("%.2lf %.2lf",x1,x2);elseprin tf("%.2lf+%.2lfi %.2lf-%.2lfin",e,sqrt(-d)/(2*a),e,sqrt(-d)/(2*a);return 0;9. 输入某年某月某日,判断这一天是这一年的第几天?(注意是否为闰年)#in clude<stdio.h>int mai n()int i,n=0,year,math,day,s12=31,28,31,30,31,30,31,31,30,31,30,31;scan f("%d%d%d",

10、&year,&math, &day);if(year%4=0&&year%100!=0 )| (year%400=0)s1=29;for(i=0;i<math-1;i+)n=n+si;n=n+day;prin tf("%dn", n);return 0;10. 公司规定,男职工到60岁退休,女职工到55岁退休。编写一个程序,输入职工的性别 和年龄,判断出该职工是 已退休”还是 在职”(输入时,用一个小写英文字母来表示性别,'r表示男性,表示女性) #in clude<stdio.h>int mai n()ch

11、ar a;int b;a=getchar();scan f("%d",&b);if(a='m')if(b>=60)printf(” 已退休 n");elseprintf("在职 n");else if(a='f)if(b>=55) printf("已退休 n");elseprintf("在职 n");return 0;11. 输入一个数,判断该数是否为素数。#in clude<stdio.h>int mai n()int a,b;scan f(&qu

12、ot;%d",&a);for(b=2;b<a;b+)if(a%b=0)break;if(b<a) prin tf("%d is not a prime nu mber.n",a);else prin tf("%d is a prime nu mber.n",a);return 0;12. 编程实现求解s=1*2+2*3+3*4+20*21,并输出结果。#in clude<stdio.h>int mai n()int a,s=0;for(a=1;a<=20;a+)s=s+a*(a+1);prin tf(&qu

13、ot;%dn",s);return 0;13求Fibonacci数列的前20个数,并按每行5个数输出#in clude<stdio.h>int mai n()int f1=1,f2=1,a,f3;prin tf("%d %d ",f1,f2);for(a=3;a<=20;a+)f3=f1+f2;prin tf("%d ",f3);if(a%5=0)prin tf("n");f仁 f2;f2=f3;return 0;14.求 1+3!+5!+.+19!的和。#in clude<stdio.h>in

14、t mai n()double s,c=0;int a,b;for(a=1;a<=19;a+=2)s=1;for(b=1;b<=a;b+)s=s*b;c=c+s;prin tf("%lfn",c);return 0;15. 有一分数序列I,-,3,5,-8,!3丄,求其前30项的和2 3 5 8 13 21#in clude<stdio.h>int mai n()int i;double a=1,b=2,s=0,t;for(i=1;i<=30;i+)s=s+a/b;t=b;b=a+b;a=t;prin tf("%lfn",s

15、); return 0;16. 编写一个程序,计算1+3+3 2+33310的值并输出。#in clude<stdio.h>#in clude<math.h>int mai n()int a=0,i;for(i=0;i<=10;i+)a=a+pow(3,i);prin tf("%dn",a);return 0;17. 从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和。例如,输入x为1234, 则其千位为1、百位为2、十位为3、个位为4,然后计算1+2+3+4=10,输出10。(要求使 用循环实现)#in clude<stdio.

16、h>int mai n()int m, n,s=0;scan f("%d",&m);while(m!=0)n=m%10;m=m/10;s=s+n;prin tf("%dn",s);return 0;18. 输入一个八进制数,并将其转换为十进制。(要求使用循环实现)#in clude<stdio.h>#in clude<math.h>int mai n()int a,b=O,m=O;scan f("%d",&a);while(a!=O)m=m+(a%10)*(i nt)pow(8,b);b+

17、;a=a/10;prin tf("%dn",m);return 0;19. 输入两个正整数m和n,求其最大公约数和最小公倍数。#in clude<stdio.h>int mai n()int a,b,c,d,p;scan f("%d%d",&a,&b);if(a<b)c=a;a=b;b=c;p=a*b;while(b!=0)d=a%b;a=b;b=d;prin tf("%d %dn",a,p/a);return 0;20. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下落地时,共经过

18、多少米?第10次反弹多高?#in clude<stdio.h>int mai n()int i;float h=50,a=100;for(i=2;i<=10;i+)a=a+2*h;h=h/2;prin tf("%f %fn",a,h);return 0;21. 输出倒三角形式的9*9 口诀表,要求用循环实现。9*仁99*2=189*3=279*4=36 9*9=818*仁88*2=168*3=248*4=328*8=61*1=1#in clude<stdio.h>int mai n()int a,b,s;for(a=9;a>0;a-)fo

19、r(b=1;b<=a;b+)s=a*b;prin tf("%d*%d=%d ",a,b,s);prin tf("n");,求它在第 10次printf函数输出)22. 输出菱形图案。(要求使用双循环实现,不能利用字符数组或简单的#in clude<stdio.h> int mai n()int a,b,c;for(a=1;a<=5;a+)for(b=1;b<=5-a;b+)printf(” ");for(c=1;c<=2*a-1;c+)prin tf("*");prin tf("

20、n ”);for(a=1;a<=4;a+)for(b=1;b<=a;b+)printf("");for(c=1;c<=9-2*a;c+)prin tf("*");prin tf("n ”);return 0;o例如6的因子为1,2,3,而并按下面的格式输出其因子:23. 一个数如果恰好等于它的因子之和,这个数就称为完数”6=1+2+3 ,因此6是完数。编写程序找出500以内的所有完数,6 its factors are 1,2,3 #in clude<stdio.h> int mai n()int a,b,c;fo

21、r(a=2;a<500;a+)b=0; for(c=1;c<a;c+)if(a%c)=0)b+=c; if(b=a)prin tf("%d,its factors are ",a); for(c=1;c<a;c+) if(a%c=O)pri ntf("%d ",c); prin tf("n");return 0;24编程输出如下形式的九九乘法表12345678912436981624324048566491827364554637281#in clude<stdio.h>int mai n()int a,

22、b,s;for(a=1;a<=9;a+)for(b=1;b<=a;b+)s=a*b;prin tf("%d ",s);prin tf("n");25. 一个偶数总能表示为两个素数之和。要求:输入一个偶数,将其表示成两个素数之和, 直到输入的数为0。#in clude<stdio.h>int mai n()int i,j, n,k;printf("请输入一个偶数n");scan f("%d",&n);if(n !=0)for(i=2;i<=n/2;i+) for(j=2;j<

23、;i;j+)if(i%j=0)break;if(j=i)for(k=2;k< n-i;k+)if(n-i)%k=O)break;if(k=( n_i)prin tf("%d %dn",i,k);return 0;26. 输入10个整型整数,用起泡法对这10个数排序,并该由小到大顺序在屏幕上输出#in clude<stdio.h>int mai n()int a,b,c,s10;for(a=0;a<10;a+)scan f("%d", &sa);prin tf("n");for(b=0;b<9;b+

24、)for(a=0;a<9_b;a+)if(sa>sa+1)c=sa;sa=sa+1;sa+1=c;for(a=0;a<10;a+)prin tf("%d ”,sa);prin tf("n");return 0;27. 输入10个整型整数,用选择法对这10个数排序,并该由大到小顺序在屏幕上输出。#in clude<stdio.h>int mai n()int a10,i,j,t,mi n;for(i=0;i<10;i+)scan f("%d", &ai);for(i=0;i<10;i+)min=i

25、;for(j=i+1;j<=10;j+)if(ami n>aj) mi n=j;t=ai;ai=ami n;ami n=t;for(i=0;i<10;i+)prin tf("%d ”,ai);prin tf("n");return 0;28. 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。(同 一数组中完成)int i;char a5;scan f("%s",a);for(i=4;i>=0;i-)prin tf("%c",ai);prin tf(&quo

26、t;n");return 0;29. 给一个不多于6位的正整数,要求:求出它是几位数;分别输出每一位数字;按 逆序输出各位数字,例如原数为158,应输出851。(利用数组知识)#in clude<stdio.h>#in clude<stri ng.h>int mai n()int m,i,j;char a50;scan f("%s",a);m=strle n( a);prin tf("%dn",m);for(i=0;i<m;i+)prin tf("%c ”,ai);prin tf("n"

27、;);for(j=m_1;j>=0;j_)prin tf("%c",aj);prin tf("n");return 0;30. 用筛选法求100之内的素数。(利用数组知识) #in clude<stdio.h>#in clude<math.h>int mai n()int a101,i,j, n;for(i=0;i<100;i+)ai=i;a0=1;for(i=2;i<sqrt(100);i+)for(j=i+1;j<=100;j+)if(ai!=0&&aj!=0)if(aj%ai=0)aj

28、=0;for(i=2 ,n=0;i<100;i+)if(ai!=0)prin tf("%d ”,ai);prin tf("n");return 0;31. 编程实现:输入任意一个不超过5位的十进制整数,取出该数中的所有奇数数字,按原 来的顺序组成一个新的数。#in clude<stdio.h>int i,b;char a10;gets(a);b=strle n( a);for(i=0;i<b;i+)if(i nt)ai%2!=0)prin tf("%c",ai);puts(”);(在32. 有一个已升序排列的数组,要求输

29、入一个数后,按原来排序的规律将它插入数组中 同一数组中实现)#in clude<stdio.h>int mai n()int i,j,s;char a10=1,2,4,9,32,41,64,88,91,98;scan f("%d", &s);for(i=0;i<10;i+)if(s>ai)prin tf("%d ”,ai);else break;prin tf("%d ",s);for(j=i;j+)prin tf("%d ",aj); if(aj=a9) break;prin tf(&quo

30、t;n");return 0;33. 将一个二维数组a的行和列的元素互换(即行列互换),存到另一个二维数组b中。#in clude<stdio.h>int mai n()int i,j,a23=1,2,3,4,5,6,b32;for(i=0;i<2;i+)for(j=0;j<3;j+)prin tf("%5d",aij);bji=aij;prin tf("n");for(i=0;i<3;i+)for(j=0;j<2;j+)prin tf("%5d",bij);prin tf("n

31、");return 0;34.在一个3*4的二维数组a中,要求编程求出其中值最大的那个元素的值,并输出其所 在的行号和列号。int i,j,a=0,b=0,s34=1,2,3,4,5,6,7,8,9,10,11,12,max;max=sOO;for(i=0;i<3;i+)for(j=0;j<4;j+)if(sij>max)max=sij;a=i;b=j;prin tf("%d %d %dn", max,a,j);return 0;35.找出一个2维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小#in clude<stdio.h&g

32、t;int mai n()int a34=1,13,9,10,3,2,7,6,4,11,8,15,i,j,max,k,b,c;for(i=0;i<3;i+)max=aiO;for(j=0;j<4;j+)if(max<aij)max=aij;b=j;c=1;for(k=0;k<3;k+)if(akb<max) c=O;break;if(c=1)printf(” 鞍点为:dn",aij-1);break;36.输入一行字符,分别统计出其中的英文字符、数字和其他字符的个数#in clude<stdio.h>int mai n()char d;int

33、 a=0,b=0,c=0;while(d=getchar()!='n')if(d>='a'&&d<='z'|d>='A '&&d<='Z')a+;else if(d>=' O'&&d<='9')b+;elsec+;prin tf("%d %d %dn",a,b,c);return 0;37将输入的字符串逆序排列,如输入 ABCD,输出DCBA #in clude<stdio.

34、h>#in clude<stri ng.h>int mai n()int b,i;char a100;gets(a);b=strle n( a);for(i=b-1;i>=0;i-)prin tf("%c",ai);prin tf("n");return 0;38.有3个字符串,要求找出其中最大者#in clude<stdio.h>#in clude<stri ng.h>int mai n()int t;char a50,b50,c50,d50;gets(a);gets(b);gets(c);t=strcm

35、p(a,b);if(t=1)strcpy(d,a);elsestrcpy(d,b);t=strcmp(d,c);if(t=1)prin tf("%sn",d);elseprin tf("%sn",c);return 0;39.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开#in clude<stdio.h>int mai n()char a;int b=1;a=getchar();while(a=getchar()!='n')if(a='')b+;prin tf("%dn",b);

36、return 0;40.编一个程序,将两个字符串连接起来,不要用 strcat函数。#in clude<stdio.h>#in clude<stri ng.h>int mai n()char a100,b100;gets(a);gets(b);prin tf("%s%sn",a,b);return 0;41.有一篇文章,共有4行文章,每行有20个字符。要求分别统计出其中英文大写字符、小写字母、数字、空格以及其他字符的个数。#in clude<stdio.h>int mai n()int x,s,k,other,i,j,d=0;char a20;for(i=0;i<4;i+)gets(a);d=x=s=k=other=0;j=0;while(aj!='0')if(aj>='A'&&aj<='Z')d+;else if(aj>='

温馨提示

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

评论

0/150

提交评论