1、整型常量的不同进制表示
计算机中只能存储二进制数,即0和1,则对应物理硬件上的高、低电平.为了更方便地观察内存中的二进制数情况,除我们正常使用的十进制数外,计算机还提供了十六进制数和八进制数.
首先,在计算机中,1字节为8位,1位即二进制的1位,它存储0或1.int型常量的大小为4字节,即32位。
***二进制、八进制、十进制相互转换
2、练习题
1、程序运行时,整型是以二进制在内存中存储的, 十进制,八进制, 十六进制是为了人类使用在设计的 A正确B错误
答案: A
解释:正确的,这个需要记住,计算机是只能识别0和1的,其他进制的设计是为了方便我们使用而设计。
2、十进制是0-9,八进制是0-8,十六进制是0-9,A-F,请问是否正确 A正确B错误
答案:B
解释八进制是0-7,总计8种变化情况,并不是0-8
3、整型数124对应的十六进制值是Ox7c A正确B错误
答案: A
解释:把一个10转为16进制,只要不断除16即可,124除16,商是7,余数是12,而12就是c,因此是Ox7c
3、scanf函数原理
【例】scanf读取标准输入
#include <stdio.h>
//scanf %d %f发现里边有\n 空格,忽略
//scanf %c不忽略内容
int main()
{
int i=10;
char c;
scanf("%d" ,&i);//注意一定要取地址
printf("%d\n",i);
//fflush(stdin);//清空标准输入缓冲区
scanf(""%c",&c);
printf( "c=%c\n",c);
return 0;
}
4、练习题
1、scanf读取标准输入,%d用来匹配int整型,%f 匹配float类型,%c 匹配字符 A正确B错误
答案: A
解释:正确的,这个需要记住。
2、有如下代码, int i; scanf(“%d",i);想读取一个数据到变量i中,是否正确 A正确B错误
答案: B
解释通过 scanf读取标准输入时,我们需要对变量i进行取地址,代码是scanf("%d",&i),因为scanf函数是把对应的数据放入变量所在的空间中,因此需要对应变量的地址。
3、scanf("%d",&i),当我们输入10回车后, i读取到了10,那么标准缓冲区中已经空了 A正确B错误
答案:B
解释:这时标准缓冲区中并没有空,里边还有n字符
4、int i;char c;float f;scanf("%d %c%f" ,&i,&c,&f);当混合读取时,因为%c不能忽略空格和n,所以需要在期前面加一个空格 A 正确B错误
答案: A
解释:这种操作要记住, 对于做OJ的题目,考研机试非常重要