c语言程序实验四,C语言程序设计实验手册--实验四

实验四  选择结构程序设计

1、运行

#include

int i=0, j=1, k=2, l=0;

void main()

{

l=(++i || --j && ++k);

printf("%d %d %d %d\n",i,j,k,l);

}

运行后截图:

0818b9ca8b590ca3270a3433284dd417.png

2、运行

#include

void main()

{

int a=0, b=2, c=1, d;

d= a++ || ++b && ++c;

printf("%d %d %d %d \n",a,b,c,d);

}

运行后截图

0818b9ca8b590ca3270a3433284dd417.png

3、有一函数:y=x   (x<1)

y=2x+1(1<= x <10)

y=3x-8 (x>=10)

用scanf函数输入x的值,求y的值。运行程序,输入x的值。检查输入y的值是否正确。

测试数据:输入x:0、1、8、10、11

y预期输出:0、3、17、22、15。

#include

void main()

{

int x,y;

printf("请输出x的值: ");

scanf("%d",&x);

if(x<1)

y=x;

else if(x<10)

y=2*x+1;

else

y=3*x-8;

printf("y的值为:%d\n",y);

}

4、给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,80-89为B,70-79为为C,60-69为D,60分以下为E。当输入数据大于100或小于0时,显示“输入数据错”。要求分别用if语句和switch语句实现。(此处将0分和100分视为错误数据)

测试输入数据:90、81、70、60、50、0、120、95、85、75、65、30

预期输出数据:A、B、C、D、E、输入数据错、输入数据错、A、B、C、D、E。

if语句实现代码:

#include

void main()

{

int score;

printf("请输入成绩(0-100):");

scanf("%d",&score);

if(score<=0)

printf("输入数据错误\n");

else if(score<60)

{

putchar('E');

putchar('\n');

}

else if(score<70)

printf("D\n");

else if(score<80)

printf("C\n");

else if(score<90)

printf("B\n");

else if(score<100)

printf("A\n");

else

printf("输入数据错误\n");

}

switch语句实现代码:

#include

void main()

{

int score, c;

printf("请输入成绩(0-100):");

scanf("%d",&score);

if(score<=0 || score>=100)

printf("输入数据错误。\n");

else

{

c=score/10;

switch(c)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:putchar('E');break;

case 6:putchar('D');break;

case 7:putchar('C');break;

case 8:putchar('B');break;

case 9:

case 10:putchar('A');break;

default:printf("输入数据错误\n");break;

}

}

}

5、给出一个不多于5位的正整数,要求:(1)求出它是几位数;(2)分别打印出每一位数字;(3)按逆序打印出各位数字,例如原数为321,应输出123。

测试输入数据:要处理正整数为1位、2位、3位、4位、5位的情况,以及不合法的输入,如负数、超过5位的数的情况。

测试输入数据:1、89、789、6789、12345、-345、345678

预期输出数据:1、98、987、9876、54321、输入数据为负、输入数据超过5位!

代码如下:

#include

void main()

{

int data;

int a=0,b=0,c=0,d=0,e=0;

printf(" 请输入你要测试的数据: ");

scanf("%d" , &data);

a = data / 10000;

b = data %10000 / 1000;

c = data %1000 / 100;

d = data %100 / 10;

e = data %10;

if(data<0)

printf("输入数据为负!\n");

else if( a > 9 )

printf(" 输入数据超过5位!\n");

else if(a>0)

{

printf("该数字是5位数字!\n");

printf("从左至右,第一位为:%d\n",a);

printf("从左至右,第二位为:%d\n",b);

printf("从左至右,第三位为:%d\n",c);

printf("从左至右,第四位为:%d\n",d);

printf("从左至右,第五位为:%d\n",e);

printf("逆序数字为:%d\n",e*10000+d*1000+c*100+b*10+a);

}

else if(a==0 && b>0)

{

printf("该数字是4位数字!\n");

printf("从左至右,第一位为:%d\n",b);

printf("从左至右,第二位为:%d\n",c);

printf("从左至右,第三位为:%d\n",d);

printf("从左至右,第四位为:%d\n",e);

printf("逆序数字为:%d\n",e*1000+d*100+c*10+b);

}

else if(a==0 && b==0 && c>0)

{

printf("该数字是3位数字!\n");

printf("从左至右,第一位为:%d\n",c);

printf("从左至右,第二位为:%d\n",d);

printf("从左至右,第三位为:%d\n",e);

printf("逆序数字为:%d\n",e*100+d*10+c);

}

else if(a==0 && b==0 && c==0 && d>0)

{

printf("该数字是2位数字!\n");

printf("从左至右,第一位为:%d\n",d);

printf("从左至右,第二位为:%d\n",e);

printf("逆序数字为:%d\n",e*10+d);

}

else if(a==0 && b==0 && c==0 && d==0 && e>=0)

{

printf("该数字是1位数字!\n");

printf("逆序数字为:%d\n",e);

}

}

【注】这个程序过程可能有点复杂,还有其他简单的程序。

6、输入4个整数,要求按由小到大顺序输出。

测试输入数据:(1)2 1 3  4     (2) 3 2 1 4     (3)  4 3 2 1    (4) 1 2 3 4

预期输出数据:1 2 3 4

代码如下:

#include

void main()

{

int a,b,c,d,t;

printf("请输入4个整数:");

scanf("%d %d %d %d",&a,&b,&c,&d);

if(a>b)

{

t=a;

a=b;

b=t;

}

if(c>d)

{

t=c;

c=d;

d=t;

}

if(a>c)

{

t=a;

a=c;

c=t;

}

if(b>d)

{

t=b;

b=d;

d=t;

}

if(b>c)

{

t=b;

b=c;

c=t;

}

printf("从小到大顺序为:%d %d %d %d\n",a,b,c,d);

} 【注】还有很多种其他算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值