12.29作业

练习1:输入一个数,判断是否是水仙花

水仙花: 是三位数 ,各个位的立方和等于本身

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int a,b;
    printf("please enter a number:");
    scanf("%d",&a);//输入一个数
    b=(a/100)*(a/100)*(a/100)+(a%100/10)*(a%100/10)*(a%100/10)+(a%100%10)*(a%100%10)*(a%100%10);
    if(a/100!=0&&a/1000==0&&a==b)//判断是否是三位数且各个位的立方和等于本身
    {
        printf("%d is daffodil\n",a);
    }
    else 
    {
        printf("%d is not daffodil\n",a);
    }
    return 0;
}

测试结果:

练习2:输入三角形的三条边,判断是什么三角形? 等腰\直角\等边\普通三角形

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int a,b,c;
    printf("please input length:");
    scanf("%d %d %d",&a,&b,&c);//输入三条边长
    if(((a+b>c&&(a<b+c||b<a+c))&&(a+c>b&&(a<b+c||c<a+b))&&(b+c>a&&(b<a+c||c<a+b)))&&(a!=0&&b!=0&&c!=0))//判断是否为三角形
    {
        if(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)//判断是否为直角三角形
        {
            printf("Right triangle\n");
        }
        else if((a==b||b==c||a==c)&&!(a==b&&a==c))//判断是否为等腰三角形
        {
            printf("isosceles triangle\n");
        }
        else if(a==b&&a==c)//判断是否为等边三角形
        {
            printf("equilateral triangle\n");
        }
        else 
        {
            printf("triangle\n");
        }
    }
    else
    {
        printf("ERROR\n");
    }
    return 0;
}
测试结果:

练习3:输入一个成绩,判断学生成绩等级?

90--100 A

 80--89 B

70--79 C

0---60 D

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int score;
    printf("please input a score:");
    scanf("%d",&score);//输入成绩
    if(score>=0&&score<=100)//判断是否在0-100之间
    {
    switch(score/10)
    {
    case 9:case 10:printf("A\n");break;//90-100为A
    case 8:printf("B\n");break;//80-89为B
    case 7:printf("C\n");break;//70-79为C
    default :printf("D\n");break;//0-69为D
    }
    }
    else
    {
        printf("ERROR\n");//不在0-100之间输出错误
    }
    return 0;
}
 

测试结果:

练习4:输入两个数,实现从小到大排序

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int a,b;
    printf("please input a&b:");
    scanf("%d %d",&a,&b);//输入两个数
    if(a>=b)
    {
        printf("%d %d\n",b,a);
    }
    else
    {
        printf("%d %d\n",a,b);
    }
    return 0;
}
测试结果:

练习5:设有以下语句:int a=3,b=6,c; c=a^b<<2; 则c的二进制值是 。

A、00011011   B、00010100    C、00011100    D、00011000

由优先级,先左移后异或

b为:00000110

b<<2=00011000

a为:00000011

a^b<<2=00011011

练习6:解读程序

void main()

{

int a=180;

char c;

c=(char)++a;//先累加,后运算,a=181,char类型的范围为-128—127之间,由于数据溢出,当数值大于127时,会从-128开始循环,故c=-75

printf("c=%d a=%d\n",c,a);//c=-75,a=181

char d=4;

short e;

e=(++d)++;//++d此时d的值5;(++d)++表示5++,格式错误,自增运算符之前只能是变量,不能为常量

printf("d=%d e=%d\n",d,e);

}

练习7:

程序共循环四次

当i=0时,i%2=0—>case 0—>a[0]=2—>2%2=0—>case 0—>a[0]=3

当i=1时,i%2=1—>case 1—>a[1]=0

当i=2时,i%2=0—>case 0—>a[2]=5—>5%2=1—>case 1—>a[2]=4

当i=3时,i%2=1—>case 1—>a[3]=0

输出结果为3040,故选C

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值