C语言基础实训

  • 格式:doc
  • 大小:196.50 KB
  • 文档页数:59

C语言基础实训[练习1.1] 已知圆柱体的底半径radius=1.5,高high=2.0,求其体积。

#include<stdio.h>void main(){float radius,high,vol,pi=3.1415926;printf("Please input radius&high:");scanf("%f%f",&radius,&high);vol=pi*radius*radius*high;printf("radius=%7.2f,high=%7.2f,vol=%7.2f\n",radius,high,vol);}[练习1.2] 输入三个数,输出其最小值。

#include<stdio.h>void main(){int a,b,c,d,min;printf("Please input three number:");scanf("%d%d%d",&a,&b,&c);if(a>b)d=b;elsed=a;if(c>d)min=d;elsemin=c;printf("the min number is:min=%d\n",min);}[练习1.3] 输入两个整数,若他们的平方和大于100,则输出该平方和的百位数以上(包括百位数字)的各个位数字,否则输出两个整数的平方和。

#include<stdio.h>void main(){int a,b,SOS;printf("Please input two number:");scanf("%d%d",&a,&b);SOS=a*a+b*b;if(SOS>=100){SOS=SOS/100;printf("%d",SOS);}else{printf("%d",SOS);}}[练习1.4]输入一个十进制整数,打印输出对应的八进制数和十六进制数。

调试要求:输入不同的多个数据,查看输出结果是否正确。

例如分别输入75,366,188,56789等数据。

#include<stdio.h>void main(){while(1){int a;scanf("%d",&a);printf("%x,%o",a,a);}}结构化程序设计【练习题2.1】编程求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

在程序中调用scanf()函数通过键盘输入半径,圆柱高,输出计算结果,输出要求有文字说明,答案精确到小数点后两位。

已知圆周长、圆面积、圆球表面积、圆球体积、圆柱体积计算公式为: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,column3)提示输入"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)打印两位精度的结果circle,area,surface,globe,column#include<stdio.h>void main(){float r,h,circle,area,surface,globe,column,PI=3.1415926;printf("Please enter r,h:");scanf("%f%f",&r,&h);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,column=%7.2f",circle,area,surface,g lobe,column);}【练习题2.2】输入一个华氏温度f,要求输出摄氏温度c。

公式为c=5/9(f-32),输出要求有文字说明,输出2位小数。

提示:1)定义实型变量c,f2)提示输入"Please enter f:"3)读入f4)根据公式计算c打印两位精度的结果。

#include<stdio.h>void main(){float c,f;printf("Please enter f:");scanf("%f",&f);c=((f-32)*5)/9;printf("Celsius is:%7.2f",c);}【练习题2.3】输入一个数,求该数个位,十位,百位上的数之和。

提示: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(百位)#include<stdio.h>void main(){int i,a,b,c,sum;printf("Please enter a three-digit number: ");scanf("%d",&i);a=i%10;b=i/10%10;c=i/100;sum=a+b+c;printf("the sum is :%d",sum);}【练习题2.4】函数F(X)=3*x^3+2*x^2+x+1,输入x,求函数的值。

#include<stdio.h>void main(){int x,F;printf("Please input a number:");scanf("%d",&x);F=3*x*x*x+2*x*x+x+1;printf("F=%d",F);}【练习题3.1】有3个整数a、b、c,由键盘输入,输出其中最大的数。

#include<stdio.h>void main(){int a,b,c,d,max;printf("Please input three number:");scanf("%d%d%d",&a,&b,&c);if(a>b)d=a;elsed=b;if(c>d)max=c;elsemax=d;printf("the most max number is %d",max);}【练习题3.2】有一函数:x (x<1)y= 2x-1 (1<=x,10 )3x-11 (x>=10 )写一程序,输入x,输出y值。

#include<stdio.h>void main(){int x,y;printf("Please input a number:");scanf("%d",&x);if(x<1)y=x;else if(1<=x<10)y=2*x-1;else if(x>=10)y=3*x-11;printf("the anwser is %d",y);}【练习题3.3】给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。

分析:1.判断输入的数是几位数就是用这个数和9999,999,99,9进行比较;2.分别打印出每个数字则利用两个整数相除的结果仍为整数进行计算;3.反序数字,实际上就是将求得的每个数字对应的变量按照不同顺序输出。

题目中说输入的数不多余5位,就表示可以输入少于5位的数,这样存在一个问题,如果是1234,是否将求得的万位数0也输出出来,变成01234,这个问题在考虑输出时不可避免,因为计算时是要首先计算万位数字的。

由于通常不输出,也就是有几位数就输出几位数字。

那么我们将1234就表示为1234。

#include<stdio.h>void main(){int i,a,b,c,d,e;printf("Please enter a five-digit positive nitegers:");scanf("%d",&i);if(i>99999)printf("input errors !");else if(i>9999&&i<=99999){printf("this is a five-digit number.\n");a=i/10000;//wan wei shub=i/1000%10;//qian wei shuc=i/100%10;//bai wei shud=i/10%10;e=i%10;printf("%d%d%d%d%d",e,d,c,b,a);}else if(i>999&&i<=9999){printf("this is a four-digit number.\n");b=i/1000%10;//qian wei shuc=i/100%10;//bai wei shud=i/10%10;e=i%10;printf("%d%d%d%d",e,d,c,b);}else if(i>99&&i<=999){printf("this is a three-digit number.\n");c=i/100%10;//bai wei shud=i/10%10;e=i%10;printf("%d%d%d",e,d,c);}else if(i>9&&i<=99){printf("this is a two-digit number.\n");d=i/10;e=i%10;printf("%d%d",e,d);}else if(i>0&&i<=9){printf("this is a single digit.\n");printf("%d",i);}}【练习题3.4】企业发放的奖金根据利润提成。