2013级C复习题(补充31题)答案_第1页
2013级C复习题(补充31题)答案_第2页
2013级C复习题(补充31题)答案_第3页
2013级C复习题(补充31题)答案_第4页
2013级C复习题(补充31题)答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言期末复习题(补充31题)简单程序设计1、给定一圆的半径,写程序计算和打印圆的面积。请使用符号常量表示圆周率和适当的变量表示半径。/*#include#define PI 3.int main()float r,s,l;printf(请输入圆的半径:);scanf(%f,&r);s=PI*r*r;l=2*PI*r;printf(圆的面积s = %fn,s);printf(圆的半径l = %fn,l);return 0;*/2、一公斤大米价格是16.75元,一公斤的糖是15元,写程序让用户输入这些数据,并打印如下:*LIST OF ITEM*ItemPriceRiceRMB16.75Suga

2、rRMB15.00#includeint main()printf(*LIST OF ITEM*n);printf(ItemPricen);printf(RiceRMB16.75n);printf(SugarRMB15.00n);return 0;36、用C赋值语句表示以下计算式并输出计算结果(变量的值可自行输入):Area=pr2+2prhTorque=Side=Energy=massacceleration*height+选择程序设计1、二元x1,x2的一次方程组为:ax1+bx2=mcx1+dx2=n设其有唯一解:x1=x1=且分母ad-cb不为0. 写程序输入常量a,b,c,d,m,n

3、,计算x1,x2. 如果出现ad-cb为0,要有适当的提示信息。#include stdafx.h#includeint _tmain(int argc, _TCHAR* argv)float a,b,c,d,m,n;float x1,x2;printf( 二元x1,x2的一次方程组为:n ax1+bx2=m n cx1+dx2=n n);printf(a = );scanf(%f,&a);printf(b = );scanf(%f,&b);printf(m = );scanf(%f,&m);printf(c = );scanf(%f,&c);printf(d = );scanf(%f,&d)

4、;printf(n = );scanf(%f,&n);if(a*d-c*b=0)printf(Errorn);elsex1=(m*d-b*n)/(a*d-c*b);x2=(n*a-m*c)/(a*d-c*b);printf( x1 = %fn x2 = %fn,x1,x2);return 0;2、给定一组学生分数,介于0100,编程统计打印以下各分数段的学生数:(a)超过80分(b)超过60分(c)超过40分(d)不高于40分(e)6180的(f)4060的要求用最少的if语句。#includeint main()int n,score1000;int i,j;int a,b,c,d,e,f;

5、a=b=c=d=e=f=0;printf(你要输入多少个学生的成绩:);scanf(%d,&n);for(i=0;in;i+)printf(%d号学生的成绩为:,i+1);scanf(%d,&scorei);if(scorei100)printf(你她妈,输错了,重输,艹艹艹艹艹n);i=i-1;continue;for(i=0;i=61&scorei=40&scorei=60)f+;printf(超过80分人数为:%dn,a);printf(超过60分人数为:%dn,a+b);printf(超过40分人数为:%dn,a+b+c);printf(不高于40分人数为:%dn,d);printf(

6、6180的人数为:%dn,e);printf(4060的人数为:%dn,f);return 0;循环程序设计1、编程求m阶乘(用循环实现)。#includeint main()int n,i,s;printf(请输入阶乘n:);scanf(%d,&n);for(i=1,s=1;i=n;i+)s=s*i;printf(阶乘为:%dn,s);23、分别编写求以下式子的程序,精度到0.为止:第2题: cos(x)=#include#include#define PI 3.int factorial(int n)int i,s;for(i=1,s=1;i=1e-6;i=i+2)s=s+t;sign=-

7、sign;t=sign*pow(X,i)/factorial(i);printf(cos(%.2f) = %fn,x,s);return 0;第3题: SUM1+(1/2)2+(1/3)3+(1/4)4+#include#includeint main()float sum,t,n;int i;t=1,sum=0;for(i=2;fabs(t)1e-6;i+)sum=sum+t;n=1.0/i;t=pow(n,i);printf(sum = %fn,sum);return 0;4、用二维表形式输出0到9.9的平方根表:Square Root of X-x0.

8、1.02.03.04.05.06.07.08.09.0-#include#includeint main()/i代表行,j代表列,s代表平方根,a代表被开方数int i,j,a,n;float s;for(n=0;n=9;n+)printf(%7d,n);printf(n);for(i=0;i=9;i+)printf(%3d,i);for(j=0;j=9;j+)a=10*i+j;s=pow(a,0.5);printf(%7.3f,s);printf(n);return 0;5、用for语句打印:(a)12 23 3 34 4 4 45 5 5 5 5(b)* * * * *

9、 * * * * * * * * * *(a)#includeint main()int a,b;int n;for(a=0;a=4;a+)for(b=0;b=a;b+)printf(%3d,a+1);printf(n);return 0;(b)#includeint main()int a,b,c;int n;for(a=4;a=0;a-)for(c=0;c4-a;c+)printf( );for(b=0;b=a;b+)printf( *);printf(n);return 0;6、打印如下的y=exp(-x)的函数值对照表,x从0.0增到10.0,步长0.1:Table for Y=EXP

10、(-X)-x0.01.02.03.04.05.06.07.08.09.0-#include#includeint main()/i代表行,j代表列,s代表平方根,a代表被开方数float x,n,i,j;printf(x );for(n=0.1;n1;n=n+0.1)printf(%-8.2f,n);printf(n);for(i=0;i=9;i=i+1)printf(%3.1f,i);for(j=0.1;j1;j=j+0.1)x=i+j;printf(%8.4f,exp(-x);printf(n);return 0;7、 有苹果若干,按以

11、下方法分给五个大人和一位小孩.先由第一人将苹果均分为5堆,多余的一个给小孩,自己取其中的一堆.第二人又将剩下的苹果均分为5堆,多余一个给小孩,自己取其中的一堆.第三、四、五人同样均分,多余一个给小孩,每人各取其中一堆。问原先最少有多少苹果?五个大人各得多少苹果? #include stdafx.hint main()/n代表所有的苹果int a5,i,n,m,j;for(m=1000;m10000;m+)n=m;for(i=0;i5;i+)if(n%5=1)ai=(n-1)/5;n=ai*4;elsebreak;if(i=5)break;printf(原先最少%d个苹果n,m);for(i=0

12、;i5;i+)printf(大人%d分得%3d个苹果n,i+1,ai);return 0;8、计算机辅助教育:帮助小学生学习加法,用rand函数产生一对1位数的整数,如下形式显示:How much is 5 plus 4?学生输入答案,程序判断答案正误,若正确则打印“GOOD”,再出下一题;若不正确,打印“No.Try Agin.”,让学生再给答案,直到答案正确。写出程序。#include#include#includeint main()int a,b,c,n;srand(time(NULL);flag:a=rand()%10;b=rand()%10;c=a+b;printf(How muc

13、h is %d plus %d? ,a,b);scanf(%d,&n);if(n=c)printf(GOODn);elseprintf(No.Try Agin.n);goto flag;return 0;9、新完全平方数: 在三位整数(100999)中寻找符合条件的整数并依次从小到大存入数组中,条件为它既是一个整数的平方数,又有两位数字相同,例如:144、676等。要求输出所有满足该条件的三位数整数,并输出满足该条件的整数的个数。#includeint main()/a代表百位数,b代表十位数,c代表个位数int i,n,s;int a,b,c;for(i=10;i=100&s=1000&(a

14、=b|a=c|b=c)printf(%dn,s);return 0;一、二维维数组1、 用rand函数模拟投一对骰子,从数学意义上讲,因每骰子投出的值在16,所投出的两个值之和为2和12的频率最小,两个值之和为7的频率最大。试投5000次,分别计算两个值之和为2、7、12的频率。#include#include#includeint main()int a3,i,t1,t2,n;float p3;for(i=0;i3;i+)ai=0;srand(time(0);for(i=0;i=5000;i+)t1=rand()%6+1;t2=rand()%6+1;if(t1+t2=2)a0+;if(t1+

15、t2=7)a1+;if(t1+t2=12)a2+;for(i=0;i3;i+)pi=ai*1.0/5000;printf(两个值之和为2频率为:%fn,p0);printf(两个值之和为7频率为:%fn,p1);printf(两个值之和为12频率为:%fn,p2);return 0;2、合并两个有序数组成为一个有序数组。int main()/i用来计数a,j用来计数bint a100,b100,c100,n,m;int i,j,t;i=0,j=0;printf(输入数组a个数n = );scanf(%d,&n);printf(请输入%d个数的数组a:,n);for(i=0;in;i+)scan

16、f(%d,&ai);printf(输入数组b个数m = );scanf(%d,&m);printf(请输入%d个数的数组b:,m);for(i=0;im;i+)scanf(%d,&bi);for(j=0;jn-1;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;printf(数组a为:n);for(i=0;in;i+)printf(%d ,ai);printf(n);for(j=0;jm-1;j+)for(i=0;ibi+1)t=bi;bi=bi+1;bi+1=t;printf(数组b为:n);for(i=0;im;i+)printf(%d ,bi);printf(n

17、);for(i=0;in;i+)ci=ai;for(i=n,j=0;im+n,jm;i+,j+)ci=bj;for(j=0;jn+m-1;j+)for(i=0;ici+1)t=ci;ci=ci+1;ci+1=t;printf(有序数组为:n);for(i=0;im+n;i+)for(j=0;ji;j+) if(cj=ci)break;if(j=i)printf(%d ,ci);printf(n);return 0;3、编写一个程序,将用户输入的十进制正整数转换成任意K进制(K取值216)的数(将结果存储在一维数组中,最后显示结果) #includeint main()int a,b;int a

18、rr100;int i,j,n,t;for(i=0;i+)printf(请输入一个十进制整数:);scanf(%d,&a);if(a=-1)printf(-n);break;printf(请输入要转化成的进制:);scanf(%d,&b);for(j=0;a!=0;j+)arrj=a%b;a=a/b;printf(转化的结果为:);for(n=j-1;n=0;n-)if(arr100=10)switch(arr100)case 10:printf(a);break;case 11:printf(b);break;case 12:printf(c);break;case 13:printf(d)

19、;break;case 14:printf(e);break;case 15:printf(f);break;elseprintf(%d,arrn);printf(n);printf(-n);return 0;4、 输出数组中的元素(重复的元素只输出一次):例如数组int a=1,1,2,3,26,3,4,5,8,7,7,4; 则应输出 1 2 3 26 4 5 8 7#includeint main()int i,j;int a12;printf(请输入一组数 : n);for(i=0;i12;i+)scanf(%d,&ai);for(i=0;i12;i+)for(j=0;jn+26)pri

20、ntf(%c,chi);printf(n);return 0;6、对N个元素的数组排序: (1)用冒泡排序法(2)用选择排序法#includeint main()int a10;int i,j,t;printf(请输入10个数:n);for (i= 0;i10;i+)scanf(%d,&ai);for (i=0;i9;i+)for (j=i+1;j10;j+)if (aiaj)t=ai;ai=aj;aj=t;for(i=0;i10;i+)printf(%4d,ai);return 0;7、随机产生一个4*5的矩阵。#include stdafx.h#include#includeint _tm

21、ain(int argc, _TCHAR* argv)int i,j;int a45;srand(time(0);for(i=0;i4;i+)for(j=0;j5;j+)aij=rand()/10;printf(%6d,aij);printf(n);return 0;函 数1、写函数判定整数是否素数,是则返回1,否则返回0#include#includeint prime(int x)int i;for(i=2;ipow(x,0.5);i+)if(x%i=0)return 0;return 1;int main()int x;scanf(%d,&x);printf(%d,prime(x);re

22、turn 0;2、写一个函数求n个数的最大值、最小值和平均值。#includeint max(int a,int n)int max=a0;int i;for(i=0;i=max)max=ai;return max;int min(int a,int n)int min=a0;int i;for(i=0;in;i+)if(ai=min)min=ai;return min;float average(int a,int n)int i;float s=0;for(i=0;in;i+)s=s+ai;s=s/n;return s;int main()/x代表最大值,y代表最小值,aver代表品均值i

23、nt a100;int n,i;int x,y;float aver;printf(你要输入几个数:);scanf(%d,&n);printf(请输入%d个数:n,n);for(i=0;in;i+)scanf(%d,&ai);x=max(a,n);y=min(a,n);aver=average(a,n);printf(max = %dn,x);printf(min = %dn,y);printf(average = %fn,aver);return 0;3、 利用递归函数调用形式,将用户输入的字符串,以相反的顺序打印出来。方法1、#include#includevoid reverse(cha

24、r a,int n)if(n=0)return ;reverse(a+1,n-1);putchar(*a);int main()char arr100;printf(Enter a string:n);gets(arr);printf(After being reversedn);reverse(arr,strlen(arr);printf(n);return 0;方法2、void reverse()char ch;ch=getchar();if(ch=n)printf(After being reversedn);return ;reverse();putchar(ch);int main(

25、)printf(Enter a string:n);reverse();printf(n);return 0;4、 利用递归求一个整数的各位数字之和。#include int sum(int n)if(n=0)return 0;elsereturn n%10+sum(n/10);void main()int n;scanf(%d,&n);printf(%dn,sum(n);5、编程模拟实现比较两个字符串大小的函数strcmp()。已知strcmp函数的原型如下:int strcmp(char *p1, char *p2) ,设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,返回值为0;若s1s2,则返回值是一个正整数;若s1s2,则返回值是一个负整数。#includeint company(

温馨提示

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

评论

0/150

提交评论