一、堂前习题
1.由键盘输入三个整数a、b、c,按从小到大的顺序输出这三个数。
输入格式 三个数由逗句分隔
输入样例 65,45,90
输出样例 45,65,90
代码如下(示例):
#include <stdio.h>
int main()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);//注意输入格式
//从一开始我们就打算最后打印字母的顺序是a,b,c,再来进行交换
if(a>b)//如果a大于b,就交换,也就是说最后a小于或等于b
{
t=a;
a=b;
b=t;
}
if(a>c)//如果a大于c,就交换,也就是说最后a小于或等于b和c,
{
t=a;
a=c;
c=t;
}
if(b>c)//如果b大于c,就交换,也就是说最后b小于或等于c
{
t=b;
b=c;
c=t;
}
printf("%d,%d,%d",a,b,c);//三次if之后a,b,c就是从小到大的顺序了
return 0;
}
以上就是这道题目最朴实无华的解法(当然还有其他解法啦):
有一个需要注意的点就是学会找替身,如题目中的变量t,因为我们需要交换变量,当我们在第一个if中将变量b的值赋给a时,a本来的值就被覆盖掉了,但是我们想将a原来的值赋给b,所以需要找一个替身t来储存a的值;
另外就是注意要的是从小到大还是从大到小,这会影响if语句括号中的符号。
2.由键盘输入5个字符,将其中的大写字符变成小写(其它类型的字符不变),最后,按输入顺序输出这5个字符。
输入样例 ApPLe
输出样例 apple
代码如下(示例):
#include <stdio.h>
int main()
{ char a,b,c,d,e;
scanf("%c%c%c%c%c",&a,&b,&c,&d,&e);
if(a<='Z'&&a>='A') a=a+32;
if(b<='Z'&&b>='A') b=b+32;
if(c<='Z'&&c>='A') c=c+32;
if(d<='Z'&&d>='A') d=d+32;
if(e<='Z'&&e>='A') e=e+32;
printf("%c%c%c%c%c",a,b,c,d,e);
return 0;
}
额,就是说如果你还没学循环和字符串的话,就暂时这样子写吧。不过这道题的解法也还是有一定价值的,就是要学会通过改变ASCII码值来改变字符,一些常见的ASCII码值和对应的字符还是要记住的,比如字符0的ASCII码值是48,A的是65,a的是97等等……
3.由键盘输入5个整数,逐个判断它们能否被27整除,能的输出“YES”,不能的输出“NO”(注意,输出时,一个判断结果占一行,5个数的判断共占5行)。
输入格式 用空格分隔
输出格式 一行一个判断
输入样例
8 27 17577 325 54
输出样例
NO
YES
YES
NO
YES
代码如下(示例):
#include <stdio.h>
int main()
{
int a,b,c,d,e;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
if (a%27==0)
printf("YES\n");
else
printf("NO\n");
if (b%27==0)
printf("YES\n");
else
printf("NO\n");
if (c%27==0)
printf("YES\n");
else
printf("NO\n");
if (d%27==0)
printf("YES\n");
else
printf("NO\n");
if (e%27==0)
printf("YES\n");
else
printf("NO\n");
return 0;
}
同上,如果你还没学循环的话,就暂时这样子写……
4.由键盘输入非零整数x,判断该数正负,正数输出positive,负数输出negative,接着判断该数的奇偶性,奇数输出odd,偶数输出even。
输出格式 注意,正负判断结果与奇偶判断结果之间用回车符分隔
输入样例 -43
输出样例
negative
odd
代码如下(示例):
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n>0)
printf("positive\n");
else if(n<0)//用else是不行的,要考虑等于0的情况
printf("negative\n");
if (n%2==0)//问题来了,判断奇数可不可以用n%2 == 1呢,答案是不行的,因为负的奇数结果就等于-1
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,请在空处填上适当的代码,运行通过后并提交。
输入样例 45*2
输出样例 result=90.00
#include <stdio.h>
int main()
{
float a,b,c;
char op;
scanf("%f%c%f",);
switch(op)
{ case '+':______________;
case '-':___________;
case '*':________________;
case '/':____________;
default:printf("error");
__________________;
}
printf("result=______",c);
}
代码如下(示例):
#include <stdio.h>
int main()
{
float a,b,c;
char op;
scanf("%f%c%f",&a,&op,&b);//输入的时候不可以用空格分隔哦,因为空格也是字符,相当于op变成了空格
switch(op)
{ case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':c=a/b;break;
default:printf("error");
break;
}
printf("result=%.2f",c);
}
No have 了~~