C语言程序设计实验手册--实验四
2012-11-11 22:43
399 查看
实验四 选择结构程序设计
1、运行
#include <stdio.h>
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);
}
运行后截图:
2、运行
#include <stdio.h> void main() { int a=0, b=2, c=1, d; d= a++ || ++b && ++c; printf("%d %d %d %d \n",a,b,c,d); }
运行后截图
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 <stdio.h> 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); }
测试输入数据:90、81、70、60、50、0、120、95、85、75、65、30
预期输出数据:A、B、C、D、E、输入数据错、输入数据错、A、B、C、D、E。
if语句实现代码:
#include <stdio.h> 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 <stdio.h> 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 <stdio.h> 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 <stdio.h> 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); }
【注】还有很多种其他算法。
相关文章推荐
- C语言程序设计实验手册--实验三
- C语言程序设计实验手册--实验三
- C语言程序设计实验手册--实验四
- C语言程序设计实验手册--实验一
- C语言程序设计实验手册--实验一
- C语言程序设计实验手册--实验二
- C语言程序设计实验手册--实验二
- [实验手册]MPLS/***分解:防止PE-CE的路由环路
- 新版Cisco CCNP BSCI3.0 网络学院实验手册下载
- linux2.6移植+根文件系统实验手册
- CCNA网络技术实验手册:交换机密码恢复
- MDT2010实验部署手册(一)
- ISA Server2004企业版中文实验手册
- 由实验手册3.1对数据存储方式进行的探究
- Appv4.6转换appv5.0实验手册(一)
- 【原创】科研训练指导手册(DE2-115_labs_vhdl)-PART5--实验四
- 网络工程师交换试验手册之十七:NAT转换实验
- [实验手册]通过6to4隧道连接IPv6网络
- 成都国嵌-嵌入式linux必修实验手册…