c中所有数据类型 取值范围
十进制切换二进制(原码反码补码)
练习
1、指出下列常量的类型和意义(如果有的话):
a) ‘\b’
Backspace,即退格键
字符型常量,‘\’转义字符
b) 1066
long int类型,表示数字1066
整型常量,表示整数1066(10进制)
c) 99.44 、
浮点数99.44
浮点型常量
d) 0XAA
16进制0XAA。表示1010 1010(2进制)或者170(10进制),252(8进制)
整型常量,16进制整数
e) 2.0e30
表示小数2.0^30,即2……(后跟30个0)
科学计数法表示的浮点型常量
“TOM”
字符型常量
Tips:常量的共同点是都不能作为赋值符号的左值(不能被更改)
2.编写一个程序,实现如下功能:用户输入一个 ASCII 码值(如 66),程序输出相应的字符。
#include <stdio.h> int main(void) { int ascii; printf("请输入一个ASCII码值:"); scanf("%d",&ascii); printf("ASCII码值为 %d 对应的字符是 %c\n",ascii,ascii); return 0; }
运行结果:
3.Mr. Bing 写了下面这个程序,请指出你认为不妥的地方:
include “stdio.h” main{ } ( float g; h; float tax, rate; g = e21; tax = rate * g; printf(“%f\n”, tax); )
#include<stdio.h> int main() { float g,h; float tax,rate; g=1e21; tax=rate*g; printf("%f\n",tax); return 0; }
4.一个水分子的质量大约为 3.0*10-23g,1 夸脱水大约有 950g。编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少个水分子。
#include<stdio.h> #include<math.h> int main(void) { float w1,w2; printf("请输入水的夸脱数\n"); scanf("%f",&w1); w2=(w1*950)/(3.0*pow(10,-23));/*用(3.0*1e-23)也可以*/ printf("水分子数量为%e\n",w2); return 0; }
项目运行截图
5、假设 ch为 char 类型变量。使用转义序列、十进制值、八进制字符常量以及十六进制字符常量等方法将其赋值为回车符(使用 ASCII 码)。
转义字符 char ch='\r';
十进制值 char ch='13'
八进制 char ch='\015'
十六进制 char ch='\xd'
6.说说'A'与"A"有什么区别?
一个是char a,一个是char *a
一个是字符,一个是字符串
#include<stdio.h> int main(){ char a1='A'; char *a2="A"; printf("size:a1=%ld a2=%ld\n",sizeof(a1),sizeof(a2)); return 0; }
‘A’ 是字符型常量4字节,a1是字符型变量1字节
“A”是字符串常量,大小为2字节:'A'+'\0'(结束符)
7.有时候我们需要使用 uint32_t 类型变量代替 unsigned int 类型变量的原因是什么?
uint32_t 看起来更明确,u 是 unsigned, int32 是 32 位整型,t 是 type