超详细最全C语言个人笔记【第二章节-找的一些题目】

(基本数据类型)
【1】每一种数据类型都是有一定的表达范围的,编程实现一种算法,在不假定数据类型长度的条件下,算出当前系统的整型 int 所能表达的最大值。

要求:
不能使用系统宏定义 INT_MAX。

基本数据类型、基本算数运算)
【2】编写一个程序,计算N升纯净水所包含的分子个数,结果用科学计数法表示。

(字符与字符串)
【3】简述 ‘a’ 与 “a” 的异同。

(破除思维定式)
【4】编写一个程序,计算 1+2+3+4+…+n 的值。

(基本输入输出、基本算术运算)
【5】编写一个程序,将用户输入的天数转化为等价的星期数和天数。
例如:

输入:18
输出:2星期零4天

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int day;
    printf("请输入天数: ");
    scanf("%d",&day);
    printf("%d星期零%d天\n",day/7,day%7);
    return 0;
}




【7】编写一个程序,用户输入华氏温度F,程序输出摄氏温度C,结果保留2位小数。

> 提示:
> 华氏温度F转化为摄氏温度C的公式为: C = 5×(F - 32)÷ 9




(位运算)
【8】现有一个嵌入式设备终端传输过来的数据包是一个32位无符号的整型数,这个数据包里面各位含义如下:

  • 00-07位:表示温度数据
  • 08-15位:表示湿度数据
  • 16-19位:表示4扇门状态(门的编号0-3)
  • 20-23位:表示四盏灯的状态(灯编号0-3)
  • 24-31位:预留备用

下面是最近一段时间接受的数据包:

0x12344520, 0xff004B1C,0x00553C1E
#include <stdio.h>

int main(int argc, char const *argv[])
{
    unsigned int DOOR0 = 0x00010000;
    unsigned int DOOR1 = 0x00020000;
    unsigned int DOOR2 = 0x00040000;
    unsigned int DOOR3 = 0x00080000;

    unsigned int LIGHT0 = 0x00100000;
    unsigned int LIGHT1 = 0x00200000;
    unsigned int LIGHT2 = 0x00400000;
    unsigned int LIGHT3 = 0x00800000;

    unsigned int data;
    printf("input data: ");
    scanf("%x",&data);
    printf("温度: %d℃\n",data & 0xff);
    printf("湿度: %dRH\n",(data>>8)&0xff);

    printf("门0 : %s\n",(DOOR0 & data) ? "开" : "关");
    printf("门1 : %s\n",(DOOR1 & data) ? "开" : "关");
    printf("门2 : %s\n",(DOOR2 & data) ? "开" : "关");
    printf("门3 : %s\n",(DOOR3 & data) ? "开" : "关");

    printf("灯0 : %s\n",(LIGHT0 & data) ? "开" : "关");
    printf("灯1 : %s\n",(LIGHT1 & data) ? "开" : "关");
    printf("灯2 : %s\n",(LIGHT2 & data) ? "开" : "关");
    printf("灯3 : %s\n",(LIGHT3 & data) ? "开" : "关");

    return 0;
}

请编写一个程序接收这3个数据包,并解析出对应的数据【温度,湿度,门0-3,灯0-3】(门和灯的状态0-关,1-开)。

(循环控制)
【9】编写一个程序,输出26个小写字母。

(循环控制)
【10】编写一个程序,在用户输入某个大写字母后,产生一个金字塔图案。
例如输入字母E,则产生如下图案:

    A
   ABA
  ABCBA
 ABCDCBA
ABCDEDCBA

(循环控制、多路分支)
【11】编写一个程序,接收用户的输入信息,当用户输入完成后(#代表输入完成),自动统计用户输入的空格数、大小写字母数和其他字符数。

(分支控制、循环控制)
【12】编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数。

提示:
素数指只能被1和自身整除的大于等于2的整数,例如2、3、5、7、11……

(分支控制、循环控制)
【13】1976年的一天,《华盛顿邮报》于头版头条刊登了一条数学新闻,文中叙述了这样一则故事:70年代中期,美国个所名牌大学校园内,人们都像发疯一般,日以继夜废寝忘食地玩弄一种数学游戏,这个游戏十分简单,任意写出一个(非零)自然数N,并且按照以下规律进行变换:

  • 如果是个奇数,则下一步变成 3N+1
  • 如果是个偶数,则下一步变成 N/2

一时间学生、教师、研究员、教授,甚至是一等一的数学大拿、天才都纷纷加入这个看似简单的数学游戏,人们取了各种各样的数字N去检验这个算法,最终都无一例外地坠入自然数序列4-2-1,于是就自然萌生出这样的猜想:对于任意非零自然数N,经上述变换最终都将落入4-2-1序列的宿命。这就是著名的角谷猜想,或称冰雹猜想。

冰雹猜想最大的魅力,在于其不可预知性,数字N的转化过程变幻莫测,有些平缓温和,有些剧烈沉浮,但却都无一例外地会坠入4-2-1的谷底,这好比是一个数学黑洞,将所有的自然数牢牢吸住。有人把冰雹路径比喻一个参天大树,下面的树根是连理枝4-2-1,而上面的枝枝叶叶则构成了一个奥妙的通路,把一切(非零)自然数统统都覆盖了,这个小学生都看得懂的问题,迄今为止却没有任何数学手段和超级计算机可以证明。

冰雹猜想跟蝴蝶效应恰好相悖,蝴蝶效应蕴含的原理是:初始值的极小误差,会造成结果的巨大不同,而冰雹猜想恰好相反:无论刚开始存在多大的误差,最后都会自行修复,直到坠入谷底。

使用你所学习的C语言知识,编程实现冰雹猜想的算法,并测算各个自然数到达4-2-1谷底所经过的变换次数吧。

上面题目大家可以留言一起讨论~

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值