|
|
发表于 2023-10-22 20:16:05
|
显示全部楼层
0. 对于整型变量来说,long int 已经可以存放足够大的整数了,但若有一个更大的整数,应该尝试使用什么类型?
答: long long int
1. 就我们目前学到的所有数据类型中,C 标准规范存储空间最小的是?
答: char
2. 我们说 printf() 是一个用于格式化打印的函数,那 sizeof() 是一个函数吗?
答: 是的
3. C 语言定义一个字节等于多少比特位?
答: 8bit
4. C 标准只规定一个数据类型的具体尺寸(其他数据类型都是规定相对范围),你知道是哪个数据类型如此特殊吗?
答: _Bool
5. 如有 int i = 123; 请指出下边错误的语句?
答: E,F
A. sizeof i;
B. sizeof 123;
C. sizeof(i);
D. sizeof(123);
E. sizeof int;
F. size of 123;
6. unsigned int 和 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()
- {
- double res;
- res = pow(1,2)+pow(2,3)+pow(3,4)+pow(4,5)+pow(5,6);
- printf("pow res = %f\n", res);
- return 0;
- }
- 输出结果:
- [jermey@localhost sel6]$ gcc test2.c -o test2 && ./test2
- pow res = 16739.000000
复制代码
1. 舍罕王的失算
答: 小甲鱼的是18446744073709551615, 我的是18446744073709551616, why?
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- double sum;
- double temp;
- double weight;
- int i;
- for (i=0; i < 64; i++)
- {
- temp = pow(2, i);
- sum += temp;
- }
- weight = sum / 25000;
- printf("舍罕王应该给予达依尔%.0f粒麦子!\n", sum);
- printf("如果每25000粒麦子为1kg,那么应该给%.0f公斤麦子!\n", weight);
- return 0;
- }
- 输出结果:
- [jermey@localhost sel6]$ gcc test3.c -lm -o test3 && ./test3
- 舍罕王应该给予达依尔18446744073709551616粒麦子!
- 如果每25000粒麦子为1kg,那么应该给737869762948382公斤麦子!
复制代码
|
|