C语言程序设计实验(5-7)

实验4

1. 以下几段源程序有错,请调试修改正确。

① /*源程序实现的功能:输入两个实数,按从小到大的顺序输出*/

main()

{ float a,b,t;

scanf(“%f,%f”,&a,&b); if (a>b)

t=a;a=b;b=t

printf(“%5.2f,%5.2f”,a,b); }

#include int main(){ float a,b,t;

scanf(\ if (a>b){

t=a;a=b;b=t;}

printf(\ }

② 该源程序实现的功能是:有如下函数关系:

? x (x>0) y= ? 2 (x=0) ? 3x (x<0) 根据输入的x值,求出y的值。 main( ){ int x,y;

printf(“Enter x:”);

scanf(“%d”,&x);

if x>0 y=x; else if(x=0) y=2; else y=3*x; printf(“x=%d y=%d\\n”,x,y); }

#include int main(){ int x,y; printf(\ scanf(\ if(x>0) y=x; else if(x==0)

y=2; else y=3*x;

printf(\ y=%d\\n\

#include int main(){ int x,y; scanf(\ if(x<1) y=x; else if(x<10) y=2*x-1; else y=3*x-11; printf(\}

某物品原有价值为p, 由于使用使其价值降低,价值的折扣率根据时间t(月数)确定如下:

t<3, 无折扣 3<=t<6, 2%折扣 6<=t<12, 5%折扣 12==21, 10%折扣

编程实现:根据输入的时间和原有价值计算物品的现有价值。 #include int main(){ int p,t; float y; printf(\输入原有价值和使用时间:\ scanf(\ if(t<3) y=p; else if(t<6) y=0.98*p; else if(t<12) y=0.95*p; else if(t<21) y=0.92*p; else y=0.9*p; printf(\现有价值为:%.2f\}

4. 给一个不多于5位的正整数,要求:

①求出它是几位数; ②分别打出每一位数字;

③按逆序打出各位数字,例如原数为321,应输出123 #include int main(){ int num,a,ge,shi,bai,qian,wan; printf(\ scanf(\ if(num>9999) a=5; else if(num>999) a=4; else if(num>99) a=3; else if(num>9) a=2; else a=1; wan=num/10000; qian=num/1000; bai=num/100; shi=num/10; ge=num; switch(a){ case 5:{ printf(\位数\ printf(\ printf(\倒序为:%d%d%d%d%d\ break; } case 4:{ printf(\位数\ printf(\ printf(\倒序为:%d%d%d%d\ break; } case 3:{ printf(\位数\ printf(\ printf(\倒序为:%d%d%d\ break; } case 2:{ printf(\位数\ printf(\ printf(\倒序为:%d%d\ break;

}

case 1:{ printf(\位数\ printf(\ printf(\倒序为:%d%d%d%d%d\ break;}}}

实验5

1. 以下程序的功能是实现从键盘输入一组字符,统计出大写字母的个数m和小写字母的

个数n,并输出m、n中的较大者。程序中有错,请调试修改正确。 main ( )

{ int m , n ; char c ;

while ( (c=getchar()) != '\\n' );

{ if ( c>= 'A'&&c<= 'Z' ) m++ ;

if ( c>= 'a'&& c<='z' ) n++ ;

}

printf (\}

#include int main ()

{ int m=0 , n=0 ; char c ;

while ( (c=getchar()) != '\\n' )

{ if ( c>= 'A'&&c<= 'Z' ) m++ ; if ( c>= 'a'&& c<='z' ) n++ ; }

printf (\

2. 以下程序可以实现从键盘输入一串数字,然后以相反的顺序将它们输出,如输入:1234,

输出4321,请填空。 main()

{ int number, right ;

printf(\ you number:\\n \scanf(\ do

{ right= ① ; ①→ number printf(\ ; number= ② ; ②→number/10 }

while ( number!=0 );

联系客服:779662525#qq.com(#替换为@)