收藏 分享(赏)

C语言基础实训.doc

上传人:scg750829 文档编号:9208674 上传时间:2019-07-29 格式:DOC 页数:59 大小:196.50KB
下载 相关 举报
C语言基础实训.doc_第1页
第1页 / 共59页
C语言基础实训.doc_第2页
第2页 / 共59页
C语言基础实训.doc_第3页
第3页 / 共59页
C语言基础实训.doc_第4页
第4页 / 共59页
C语言基础实训.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、C 语言基础实训练习 1.1 已知圆柱体的底半径 radius=1.5,高 high=2.0,求其体积。#includevoid main()float radius,high,vol,pi=3.1415926;printf(“Please input radiusscanf(“%f%f“,vol=pi*radius*radius*high;printf(“radius=%7.2f,high=%7.2f,vol=%7.2fn“,radius,high,vol);练习 1.2 输入三个数,输出其最小值。#includevoid main()int a,b,c,d,min;printf(“Plea

2、se input three number:“);scanf(“%d%d%d“,if(ab)d=b;elsed=a;if(cd)min=d;elsemin=c;printf(“the min number is:min=%dn“,min);练习 1.3 输入两个整数,若他们的平方和大于 100,则输出该平方和的百位数以上(包括百位数字)的各个位数字,否则输出两个整数的平方和。#includevoid main()int a,b,SOS;printf(“Please input two number:“);scanf(“%d%d“,SOS=a*a+b*b;if(SOS=100)SOS=SOS/1

3、00;printf(“%d“,SOS);elseprintf(“%d“,SOS);练习 1.4输入一个十进制整数,打印输出对应的八进制数和十六进制数。调试要求:输入不同的多个数据,查看输出结果是否正确。例如分别输入 75,366,188,56789 等数据。#includevoid main()while(1)int a;scanf(“%d“,printf(“%x,%o“,a,a);结构化程序设计【练习题 2.1】 编程求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。在程序中调用 scanf()函数通过键盘输入半径,圆柱高,输出计算结果,输出要求有文字说明,答案精确到小数点后两位。已知圆周长

4、、圆面积、圆球表面积、圆球体积、圆柱体积计算公式为:circle=2* PI *r, area= PI *r*r,surface=4* PI *r*r,globe=PI *r*r*r*4/3 ,column=area*h算法提示:1)定义符号常量 PI2)定义实变量 r,h,circle,area,surface,globe,column 3)提示输入“Please enter r,h:“4)读入 r,h5)根据公式计算 circle=2* PI *r,area= PI *r*r,surface=4* PI *r*r,globe=PI *r*r*r*4/3,column=area*h6)打印两

5、位精度的结果 circle,area,surface,globe,column#includevoid main()float r,h,circle,area,surface,globe,column,PI=3.1415926;printf(“Please enter r,h:“);scanf(“%f%f“,circle=2* PI *r;area= PI *r*r;surface=4* PI *r*r;globe=PI *r*r*r*4/3;column=area*h;printf(“circle=%7.2f,area=%7.2f,surface=%7.2f,globe=%7.2f,colu

6、mn=%7.2f“,circle,area,surface,globe,column);【练习题 2.2】输入一个华氏温度 f,要求输出摄氏温度 c。公式为 c=5/9(f-32),输出要求有文字说明,输出 2 位小数。提示:1) 定义实型变量 c,f2) 提示输入“Please enter f:“3) 读入 f4) 根据公式计算 c打印两位精度的结果。#includevoid main()float c,f;printf(“Please enter f:“);scanf(“%f“,c=(f-32)*5)/9;printf(“Celsius is:%7.2f“,c);【练习题 2.3】输入一个

7、数,求该数个位,十位,百位上的数之和。提示:1)% 求模(求余)运算,两整数相除,求余数2)/ 除法运算,整数相除,结果为整数,实数相除,结果为 double 型数举例:1231)123%10 123 除以 10 的余数为 3(个位) ;2)123/10 123 除以 10 商为 12;3)123/10%10 12 除以 10 的余数为 2(十位) ;4)123/100 123 除以 100 商为 1(百位)#includevoid main()int i,a,b,c,sum;printf(“Please enter a three-digit number: “);scanf(“%d“,a=

8、i%10;b=i/10%10;c=i/100;sum=a+b+c;printf(“the sum is :%d“,sum);【练习题 2.4】函数 F(X)=3*x3+2*x2+x+1 ,输入 x,求函数的值。#includevoid main()int x,F;printf(“Please input a number:“);scanf(“%d“,F=3*x*x*x+2*x*x+x+1;printf(“F=%d“,F);【练习题 3.1】 有 3 个整数 a、b、c,由键盘输入,输出其中最大的数。#includevoid main()int a,b,c,d,max;printf(“Pleas

9、e input three number:“);scanf(“%d%d%d“,if(ab)d=a;elsed=b;if(cd)max=c;elsemax=d;printf(“the most max number is %d“,max);【练习题 3.2】有一函数:x (x=10 )写一程序,输入 x,输出 y 值。#includevoid main()int x,y;printf(“Please input a number:“);scanf(“%d“,if(x=10)y=3*x-11;printf(“the anwser is %d“,y);【练习题 3.3】 给一个不多于 5 位的正整数

10、,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字,例如原数为 321,应输出 123。分析:1判断输入的数是几位数就是用这个数和 9999,999,99,9 进行比较;2分别打印出每个数字则利用两个整数相除的结果仍为整数进行计算;3反序数字,实际上就是将求得的每个数字对应的变量按照不同顺序输出。题目中说输入的数不多余 5 位,就表示可以输入少于 5 位的数,这样存在一个问题,如果是 1234,是否将求得的万位数 0 也输出出来,变成 01234,这个问题在考虑输出时不可避免,因为计算时是要首先计算万位数字的。由于通常不输出,也就是有几位数就输出几位数字。那么我们将 1234

11、就表示为 1234。#includevoid main()int i,a,b,c,d,e;printf(“Please enter a five-digit positive nitegers:“);scanf(“%d“,if(i99999)printf(“input errors !“);else if(i9999int i,m;int t;t0=100000*0.1;t1=100000*0.075+t0;t2=200000*0.05+t1;t3=200000*0.03+t2;t4=400000*0.015+t3;printf(“Please enter i:“);scanf(“%d“,if

12、(i=10)t=10;switch(t)case 0:m=i*0.1;break;case 1:m=t0+(i-100000)*0.075;break;case 2:case 3:m=t1+(i-200000)*0.05;break;case 4:case 5:m=t2+(i-400000)*0.03;break;case 6:case 7:case 8:case 9:m=t3+(i-600000)*0.015;break;case 10:m=t4+(i-1000000)*0.01;printf(“The bonus amount is: %d n“,m);【练习题 3.5】从键盘任意输入成绩

13、在 0100 的分数,要求分别用 if 语句和 switch 语句实现五级制的评定,评定条件如右图:要求: 分别用 if 语句和 switch 语句实现。 输入一个负分数以及超过 100 分以上,不应该得到成绩,需要给出错误提示; 程序运行时,需要必要的提示语句。#include void main()int s;printf(“Please enter score :“);scanf(“%d“,if(s100)printf(“Error scoren“);else if(s=90)printf(“ 优“);else if(s=80float A;char c;printf(“Please e

14、nter what you want to solve computing :n“);scanf(“%d%c%d“,switch(c)case +:A=a+b;break;case -:A=a-b;break;case *:A=a*b;break;case /:A=a/b;break;case %:A=a%b;break;default:printf(“errorn“);printf(“%fn“,A);【习题 4.1】求 1 至 100 的和加 1 至 50 的平方的和加 1 至 10 的倒数的和。#includevoid main()int x=1,z=1,y=1,sum=0;while(x

15、void main()int i=100,a,b,c;while(i=99while(ivoid main()int i=1;float h=100,sum=0;while(ivoid main()int i=0,sum=0;while(ivoid main()int i=0,sum=0;doif(i%2=1)sum=sum+i;i=i+1;while(ivoid main()int i,sum=0;for(i=1;ivoid main()int x,y,z;for(x=1;xvoid main()int i,a;double x=0,y=1,z=1;printf(“ Please input

16、 a number n:“);scanf(“%d“,for(i=1;ivoid main()float x,n,s=0,a;int i=1;printf(“Please input x,n:n“);scanf(“%f %f“,while(ivoid main()int i=0;float x,y,z;for(x=1;x#includeint fun(int m,int score ,int below )int i;double avg,sum=0;for(i=0;i#includemain() char a100,t; int i,j,l;printf(“please enter a str

17、ing:n“);gets(a);l=strlen(a);for(i=0;i=ai+1) ai+1=aj;aj=t;if(jvoid main()int a100,i,l,x,count;printf(“Please enter the length of the array:“);scanf(“%d“,printf(“Please enter a set of integer array:“);for(i=0;ivoid main()int a100,l,i,x,t,flag;printf(“请输入数组长度:“);scanf(“%d“,printf(“请按从小到大的顺序输入一个整数数组:“);

18、for(i=0;ix)flag=1;for(i=l;i-1t;i-)ai=ai-1;at+1=x;for(i=0;i#includevoid main()int i,j,a100;for(i=0;isqrt(ai)printf(“%dn“,ai);6. 已知一个数组 a 中包括 10 个整数元素,从 a 中第二个元素起,分别将后项减前项之差存入数组 b,并按每行 3 个元素输出数组 b。#include#define MAX 100void main()int aMAX;int bMAX;int i,j=0;for(i=0;i#define MAX 100void main() int i;v

19、oid fun(int i);fun(i);void fun(int i)char a34=w,w,w,w,s,s,s,s,H,H,H,H;int j;for(i=0;i#include#include#define MAX 100void main()float aMAXMAX,s,n,t=0;int i,j;printf(“你输入的是数组 n 为:“);scanf(“%f“,for( i=0;i#include#include#define MAX 100void main()int m,n,i,j,min;int ttMAXMAX,ppMAX;printf(“二维数组的行和列为:“);s

20、canf(“%d%d“,for(i=0;ittij)min=ttij;ppj=min;printf(“%dn“,ppj); 10. 请编写程序,实现 B=A+A,即把矩阵 A 加上 A 的转置,存放在矩阵 B 中。计算结果在 main 函数中输出。例如,输入下面的矩阵: 其转置矩阵为:|1 2 3| |1 4 7|4 5 6| |2 5 8|7 8 9| |3 6 9|程序输出:|2 6 10|6 10 14|10 14 18|#include#include#include#define MAX 100void main()int bMAXMAX,aMAXMAX,cMAXMAX,n,m,t=

21、0;printf(“请输入数组的行和列:n“);scanf(“%d%d“,printf(“请输入矩阵:n“);for(int i=0;i#include#include#define MAX 100int main()char aMAX;int k,n;while (gets(a) printf(“请输入删除字符串从下标几开始到几个字符:n“);scanf(“%d%d“,for(int i=0;i#include#include#define MAX 100void main()char aMAX,bMAX;printf(“请输入字符串:“);gets(a);int n=strlen(a);f

22、or(int i=0;i64)/*函数体在使用后,所以使用前需先声明*/char sSIZE;printf(“Please input a string :n“);scanf(“%s“,s);fun(s);printf(“The string after fun is :n%s“,s);void fun(char sSIZE)int i,len;char c=s0;/*先单独存储第一个字符以便后面用来赋值,否则将会被覆盖*/len=strlen(s);for(i=1;i#includevoid main()char a100;int i,len,t;printf(“Please enter a

23、 string:“);gets(a);len=strlen(a);for(i=0;i#includevoid main()char s1100,s2100;int k;int i,l,j;for(k=0;k=0 int i,j,k,len1,len2,len3,t;printf(“Please enter a string a:“);gets(a);len1=strlen(a);for(i=0;i#include#define N 100main()void fun(char a,char b,char c);char aN,bN,cN;printf(“Please enter a strin

24、g a:“);gets(a);printf(“Please enter a string b:“);gets(b);fun(a,b,c);printf(“%sn“,c);void fun(char a,char b,char c)int i,j,k;for(i=0,j=0,k=0;ai!=0k+)if(ai#includemain()char a100;int i,l,flag=0;printf(“please input a string:“);gets(a);l=strlen(a);for(i=0;i#define pi 3.14159double S(double r)return pi

25、*r*r;void main()double r,s;scanf(“%lf“,s=S(r);printf(“%lfn“,s);2. 请编写函数 fun,它的功能是计算下列级数的和,和值由函数值返回。S1xx2/2!x3/3! xn/n!例如,当 n10,x0.3 时,函数值为 1.349859。可用系统库函数 pow(x,i)(表示求 x 的 i次方)求 X 的幂。注意:主函数的代码如下,请勿改动主函数 main 的任何内容。#include#includedouble fun(double x, int n);void main()int n;double x;scanf(“%d,%lf:“

26、, printf(“函数值为:%fn“,fun(x,n);#include#includefloat fun(int n,float x)float s=1,k=1;int i;for(i=1;i#includedouble a100100;int n,m;double min(double *s)double x=0;int i,j;x=s11;for(i=1;ix)x=sij;return x;void main()int i,j;scanf(“%d %d“,for(i=1;i#includedouble a100100;int n,m;double min(double s100)dou

27、ble x=0;int i,j;x=s11;for(i=1;idouble fun(double n,double x )int i;int s;double s1;for(i=1;i=5)s=s+1;s1=s;for(i=1;i#includechar a100,b100;char fun(int len,char *s)int i;for(i=0;i#includevoid scopy(char b,char a)int i;for(i=0;ai!=0;i+)bi=ai;bi=0;void main()char a100,b100;gets(a);scopy(b,a);puts(a);8.

28、 编程将字符串前后倒置。注意:以后不再提示编写函数来实现功能,应养成习惯,利用函数来提高程序的通用性。#include#includevoid srev(char a)char t;int n,i,j;n=strlen(a);i=0;j=n-1;while(i#includeint fun(char a)int i,j,n;n=strlen(a);i=0;j=n-1;while(i=j)return(1);else return(0);void main()char s100;gets(s);if(fun!=0)printf(“yes.n“);else printf(“no.n“);10. 设计一个子函数,用以判断一个整数是否为素数,如果是,则返回 1;否则返回 0,并利用此函数,找出 100200 之间的所有素数。#include#includeint fun(int);void mian()int m;printf(“the prime numebr is:n“);for(m=100;m=200;m+)if(fun(m)printf(“%d“,m);printf(“n“);int fun(int x)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报