SCAU高级语言程序设计--实验4 选择结构(1)
一、堂上限时习题
1、数的排序
题目:由键盘输入三个整数a、b、c,按从小到大的顺序输出这三个数。
思路:两个两个数一一对比。
#include<stdio.h>
int main (){
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b){
t = a;
a = b;
b = t;
}
if(a>c){
t = a;
a = c;
c = t;
}
if(b>c){
t = b;
b = c;
c = t;
}
printf("%d,%d,%d",a,b,c);
return 0;
}
2.字符变换
题目:由键盘输入5个字符,将其中的大写字符变成小写(其它类型的字符不变),最后,按输入顺序输出这5个字符。
思路:输入每一个字符到数组。判断每一个字符是否为大写字母,是的话就转换,不是的话什么也不用做。最后循环输出。
#include<stdio.h>
int main (){
char a[5];
int i;
for(i=0;i<5;i++){//循环输入5个字符
scanf("%c",&a[i]);//输入一个字符
if(a[i]>='A'&&a[i]<='Z'){//判断是否为大写字母
a[i] += 'a'-'A';//可以查看ASCII码,'a'与'A'的之间的值
}
}
//打印字符
for(i=0;i<5;i++){
printf("%c",a[i]);
}
return 0;
}
3.数的整除
题目:由键盘输入5个整数,逐个判断它们能否被27整除,能的输出“YES”,不能的输出“NO”(注意,输出时,一个判断结果占一行,5个数的判断共占5行)。
#include<stdio.h>
int main (){
int i,a[5];
for(i=0;i<5;i++){
scanf("%d",&a[i]);
if(a[i]%27==0)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
注意:scanf()函数输入时候空格问题。输入的时候,空格也会被当做输入,所以若不用数组的话,应该scanf("%d %d %d %d %d",&a1,&a2,&a3,&a4,&a5);。(可参考P121页字符型数据输入和输出)
4.正负奇偶判断
题目:由键盘输入非零整数x,判断该数正负,正数输出positive,负数输出negative,接着判断该数的奇偶性,奇数输出odd,偶数输出even。
#include<stdio.h>
int main (){
int n;
scanf("%d",&n);
//判断正负数
if(n<0)
printf("negative\n");
else
printf("positve\n");
//判断奇偶性
if(n%2==0)
printf("even\n");
else
printf("odd\n");
return 0;
}
5、简单计算器
题目:下面程序是实现一个简单的运算器(保留两位小数点),如果由键盘输入10+50,计算机可以输出结果60.00;如果输入8*6,计算机输出48.00;如果输入20/4,计算机输出5.00;如果输入8-6,计算机输出2.00,请在空处填上适当的代码,运行通过后并提交。
思路:主要学会运用switch,其中注意有无break的区别。有break直接跳出,没有break继续执行下面语句。(可参考P53-55)
#include<stdio.h>
int main (){
float a,b,r;
char op;
scanf("%f%c%f",&a,&op,&b);
switch(op){
case '+':
r = a+b;
break;
case '-':
r = a-b;
break;
case '*':
r = a*b;
break;
case '/':
r = a/b;
break;
default:
printf("error");
break;
}
printf("result=%.2f",r);
return 0;
}