测试题:
0. 对于整型变量来说,long int 已经可以存放足够大的整数了,但若有一个更大的整数,应该尝试使用什么类型?
long long int
1. 就我们目前学到的所有数据类型中,C 标准规范存储空间最小的是?
_Bool
2. 我们说 printf() 是一个用于格式化打印的函数,那 sizeof() 是一个函数吗?
不是,是运算符
3. C 语言定义一个字节等于多少比特位?
C 语言并没有具体定义一个字节等于多少比特位
大概意思就是一个字节被定义为连续比特位,具体大小由实现环境决定。不过通常我们约定俗成是一个字节等于八个比特位(1Byte == 8bit)
4. C 标准只规定一个数据类型的具体尺寸(其他数据类型都是规定相对范围),你知道是哪个数据类型如此特殊吗?
整型类型
5. 如有 int i = 123; 请指出下边错误的语句?
A. sizeof i;
B. sizeof 123;
C. sizeof(i);
D. sizeof(123);
E. sizeof int;
F. size of 123;
错误的有 E 和 F|注意,sizeof 运算符后边如果跟的是一个类型,那么需要加小括号:sizeof(int)
6. unsigned int 和 int,哪个可以表示更大的整数?
由于默认 int 是 signed 的,即带符号位的整数(可以表示负数),需要用一半的存储空间来存放负数;而 unsigned int 则是完全用于存放正数,因此 unsigned int 可以表示更大的整数
7. 我们说“程序不会说谎”,言下之意是?
对于我们人类来说,世事无绝对,没有绝对的好人也没有绝对的坏人……计算机可不一样,要么就是“是”,要么就是“否”,绝不会存在模棱两可的情况
动动手:
0. 问题:求 1^2 + 2^3 + 3^4 + 4^5 + 5^6 的值?(1^2 表示 1 的 2 次方)
#include<stdio.h>
#include<math.h>
int main()
{
int i;
i=pow(1,2)+pow(2,3)+pow(3,4)+pow(4,5)+pow(5,6);
printf("%d",i);
return 0;
}
1.舍罕王的失算
相传国际象棋是古代印度舍罕王的宰相达依尔发明的。舍罕见王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8*8共64位的象棋说:“陛下,请您赏赐给我一些麦子吧。就在棋盘的第1格放1粒,第2格放2粒,第3格放4粒,以后每一个都比以前一格增加一倍,依次放完棋盘64格,我就感激不尽了。”舍罕王听了达依尔这个“小小”的要求,想都没想就满口答应下来。
结果在给达依尔麦子时舍罕惊奇地发现要给的麦子比自己想象的要多得多,于是他进行了计算,结果令他大惊失色。请问,舍罕王兑现他的许诺共要多少粒麦子赏赐他的宰相?如果每25000粒麦子重1kg,那么舍罕王应该给予达依尔多少公斤麦子?
#include<stdio.h>
#include<math.h>
int main()
{
unsigned long long sum=0,temp,i,weight;
for(i=0;i<64;i++)
{
temp=pow(2,i);
sum = sum + temp;
printf("%llu\n",sum);
}
weight=sum/25000;
printf("舍罕王应该给予达依尔%llu粒麦子!\n\
如果每25000粒麦子为1kg,那么应该给%llu公斤麦子\n\
",sum,weight);
return 0;
}