C语言 基础题

测试大小端:
int checkSystem()
{
    union check
    {
        int i;
        char ch;
    }c;
    c.i = 1;  // 0x00 00 00 01  大端:(低地址到高地址)0x00 0x00 0x00 0x01
    return (c.ch == 1);      // 小端:(低地址到搞地质)0x01 0x00 0x00 0x00
}
返回1:小端模式;返回0:大端模式
大端:高字节排放在内存的低地止端(TCP/IP各层协议(网络字节序))
小端:低字节排放在内存的低地址端
0x12345678:从高位到地位的字节一次是:0x12,0x34,0x56,0x78 【靠左边是高位,靠右边是低位
大端:低地址存放高位            小端:低地址存放低位
栈底(高地址)
--------------            ----------------
buf[3] = 0x78                  buf[0] = 0x12
buf[2] = 0x56                  buf[1] = 0x34
buf[1] = 0x34                  buf[2] = 0x56
buf[0] = 0x12                  buf[3] = 0x78
--------------            ----------------

栈顶(低地址)

判断闰年
if(!(year % 4) || (year % 100 == 0 && year % 400 == 0))
100以内所有整数之和
int i,sum=0;
    i=1;
    while(i <= 100)  //循环条件应该是什么呢?
    {
        sum=sum+i;
        i++;         //这里是不是应该改变循环变量的值
    }
取三位数的各个位数
//获取三位数字num百位上的数字
hd =num / 100;
//获取三位数字num十位上的数字
td =num % 100 / 10;
//获取三位数字num个位上的数字
sd = num % 10;
水仙花数
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 ,如:153就是一个水仙花数,153=1*1*1+5*5*5+3*3*3。
//获取三位数字num百位上的数字
hd =num / 100;
//获取三位数字num十位上的数字
td =num % 100 / 10;
//获取三位数字num个位上的数字
sd = num % 10;
//水仙花数的条件是什么?
if(num == hd *hd *hd +td *td *td +sd *sd *sd)
{
   printf("水仙花数字:%d\n", num);   
}
找素数
找出0-50之间的所有素数,所谓素数就是只能被1和它本身整除的数字,比如:7,13,23等
 int m, n;
    for(m=2; m<=50; m++)
    {
        for(n=2; n<m; n++)
        {
            if(m%n == 0)       //什么条件下跳出当前循环
              break;                 //这里应该退出当前循环了
        }   
        if(m == n)   //n循环结束后,如果m=n的话就输出m
            printf("%d  ", m);
    }
万能求天数
#include <stdio.h>
int main() 

int y,m,d,D;
printf("输入日期(空格隔开):");
scanf("%d%d%d",&y,&m,&d);
D=d+(m-1)*30+(m/2)-(y%4==0||y%400==0?1:2);
printf("%d年%d月%d日是该年的第%d天",y,m,d,D);
return 0;
}
计算n阶
#include <stdio.h>
int factorial(int n){//定义函数
     int result;
     if(n < 0)
     {
          printf("输入错误!\r\n");
          return 0;
      }
      else if(n == 0 || n == 1)
     {
          return 1;
     }
     else
     {
          result = factorial(n-1)*n;//调用自身
      }
      return result;
}
int main(){
     int n = 5;
     printf("%d的阶乘=%d\r\n",n,factorial(n));
     return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值