c语言上机实验题 联系客服

发布时间 : 星期六 文章c语言上机实验题更新完毕开始阅读e60d91fe172ded630b1cb6da

1.下列程序中,要求main函数实现如下功能:从键盘上输入三个正整数,求出它们中的最大值。请完善程序,并在程序最后用注释的方式给出你的测试数据及在这组测试数据下的运行结果。

#include void main()

{ int a,b,c,max;

printf(\ scanf(\ if(a>b) max=a; else

max=b

if(c>max)

max=c;

printf(\ %d\} /*1,2,5 max of the three numbers is 5*/

2.请编程序,对从键盘上输入的x值,根据以下函数关系计算出相应的y值(设x,y均为整型量)。

x x<0 0<=x<10 10<=x<20 20<=x<40

#include main() {

int x,y;

scanf(\ if(x<0) y=0; else if(x>=0&&x<=10) y=x; else if(x>=10&&x<=20) y=10; else y=-5*x+20; printf(\}

y 0 x 10 -5x+20 3. 写程序计算下列各表达式的值: 1)1?2

3?4/513?(2.24?0.242)22)

3.683)2?13?e2

#include #include main() { float a,b,c;

a=2.0/(4.0/5+3)+1;

b=sqrt((13-pow(2.24-pow(0.24,2),2))/3.68); c=2*3.14159*sqrt(13+exp(2)); printf(\}

4.写程序计算5x2+2x+6的两个实根。考虑用合适的方式输出。 (提示:可先计算出判别式b2-4ac的值)

#include #include main()

{ float a,b,c,x1,x2,p,q,disc; printf(\

scanf(\ disc=b*b-4*a*c; if(disc>=0) {

p=-b/(2*a);

q=sqrt(disc)/(2*a); x1=p+q; x2=p-q;

printf(\ } else

printf(\}

5.从键盘上任意输出一个年份year,判别该年是否为闰年,如是输出“yes”,否则输出“no”。提示:如果变量year的值是闰年年份,那么这个值应该是4的部数但又不是100的倍数,或者它是400的倍数。

#include void main() {

int year;

scanf(\

if(year%4==0&&year0!=0||year@0==0) printf(\else

printf(\}

6.从键盘上输入float型数,判断这三个数能否构成三角形,若能则求该三角形面积,否则输出不能构成三角形的信息。

#include #include void main()

{ float a,b,c,p,area;

printf(\ scanf(\if(a+b>c&&a+c>b&&b+c>a) {

p=(a+b+c)/2.0;

area=sqrt(p*(p-a)*(p-b)*(p-c)); printf(\ } else

printf(\}

7.下列程序想求出满足如下条件的三位数n:(1)n除以11(整数相除)所得到的商等于n的各位数字的平方和;(2)n中至少有二位数字相同。如:131除以11的商为11,131各位数字的平方和为11,131中有二位数字相同,故131是所要求出的三位数中的一个;又如550,也是满足条件的三位数。源程序中有些错误,请你改正并最终使程序得到如下的运行结果:131 550 900

【含有错误的源程序】

#include void main() #include\{ int n , a , b , c; void main() for(n=1; n<1000; n++) { int a,b,c,n; { a=n/100; for(n=100;n<1000;n++) b=n/10; { a=n/100; c=n/10; b=n/10; c=n; if(n/11=a*a+b*b+c*c||(a==b+a==c+b==c)>=2 if(n/11==a*a+b*b+c*c&&(a==b||a==c||b) ==c))/*或 printf(\n/11==a*a+b*b+c*c&&(a==b)+(a==c)+(b== } c)>=1 */ } printf(\ }

8. 请编程序,实现从键盘上输入任意一个整数n,求出n的各位数字之和。例如,当n为263时,各位数字之和为11。下面是一个可以实现逐位数字累加功能的程序段,试理解后应用到自己的程序中。

#include\void main() { int n,k;

scanf(\k=0 ;

do{k+=n; n/=10; }while (n); printf(\getch(); }

9.试找出符合下列条件的正整数:(1)该数是一个三位数;(2)该数是37的倍数;(3)该数循环左移后得到的另两个数也是37的倍数。例如148是37的倍数,481和814也是37的倍数。

#include\void main() { int n,a,b;

for(n=100;n<1000;n++) if(n7==0) { a=n/10+n*100; b=n/100+n0*10; if(a7==0&&b7==0) printf(\