SCAUoj实验4_选择结构_堂前习题

本文提供了五个C语言编程题目,包括按顺序输出三个整数、将大写字母转为小写、判断整数能否被27整除、确定整数正负与奇偶性,以及实现带两位小数的简单运算器。每个题目都给出了示例代码,强调了关键的编程技巧,如变量交换、ASCII码操作和条件判断等。
摘要由CSDN通过智能技术生成

一、堂前习题

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 了~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值