0329_C基础3

1.练习1

输入一个数,判断是否是水仙花

条件:

1.是三位数 100--999

2.水仙花:各个位数字立方和等于本身

eg:153 --->1*1*1+5*5*5+3*3*3==153

程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
    unsigned int a=0;
    printf("请输入一个在100和999之间得数\n");
    if (scanf("%u",&a)!=1)
    {
        //清理缓存区内容,防止后续的scanf()调用受影响
        int gg;
        while((gg=getchar())!='\n'&&gg!=EOF){}
        printf("错误:非法输入,请重新输入一个整数\n");
        //重新输入
        scanf("%u",&a);
    }
    unsigned int n=0;
    for(int i=1;i<=3;i++)
    {
        if(a<100||a>999)
        {
            printf("输入不在范围内,请重新输入:");
            scanf("%u",&a);
            n=n+1;
        }
    }
    if(n>2)
    {
        printf("输入三次错误,强制退出\n"); 
        exit(EXIT_SUCCESS);
    }
    int c=a/100;
    int d=a/10%10;
    int e=a%10;
    if(a!=c*c*c+d*d*d+e*e*e)
        printf("不是水仙花\n");
    else
        printf("是水仙花\n");
    return 0;

 

2.练习2

对于整数A=0x12345678,画出little endian和big ending系统如何存储

3.练习3

如何判断一个数是unsigned格式

1.如果这个数据是负数,则不是unsigned格式

2.如果这个数大于0,对其按位取反,若仍>0,则为unsigned格式

4.练习4

下面代码执行后,a\b\c的结果是?

int a=5,b=7,c;

c=a+++b;

如果为c=a+ ++b

a=5 b=8 c=13

如果为c=a++ +b

a=6 b=7 c=12

5.练习5

代码如下

void main()

{

int c=9,d=0;

c=c++%5;

d=c;

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

}

d=4

6.练习6

用预处理指令#define声明一个常数,用于表明1年有多少秒?(不需要考虑润年)

#define years 31536000

7.练习7

给定一个整数,判断它是否被3、5、7整除,并输出一下信息 

1.能同时被3,5,7整除(直接输出3 5 7,每个数字之间一个空格)

2.只能内其中两个整数整除(输出两个数,小的在前,大的在后,例如3 5 或者 3 7 或者5 7,中间使用空格隔开)

3. 只能被其中一个整数整除(输出这个除数)

4.不能被任何数整除,输出小写字母n

案例如下:

输入:105

输出:3 5 7

程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
    unsigned int a;
    printf("请输入一个数\n");
    scanf("%u",&a);
    if(a%3==0&&a%5==0&&a%7==0)
    {
        printf("%d %d %d\n",3,5,7);
    }
    else if(a%3==0&&a%5==0&&a%7!=0)
    {
        printf("%d %d\n",3,5);
    }
    else if(a%3==0&&a%5!=0&&a%7==0)
    {
        printf("%d %d\n",3,7);
    }
    else if(a%3!=0&&a%5==0&&a%7==0)
    {
        printf("%d %d\n",5,7);
    }

    else if(a%3==0&&a%5!=0&&a%7!=0)
    {
        printf("%d\n",3);
    }
    else if(a%3!=0&&a%5!=0&&a%7==0)
    {
        printf("%d\n",3);
    }
    else if(a%3!=0&&a%5==0&&a%7!=0)
    {
        printf("%d\n",5);
    }
    else
    {
        printf("n");
    }
    return 0;
}

8.练习8

输出:b, c, d:10, 12, 120

9.思维导图

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值