4.C语言编程预备计算机知识(二)
C语言编程预备计算机知识(二)
11.代码规范化
林锐:《高质量c/c++编程》
12.什么是字节
字节就是存储数据的单位,并且是硬件所能访问的最小单位。地址总线只能控制到字节。
1B = 8 b
1K = 1024B
1M = 1024K
1G = 1024M
实例:在日常生活中,我们买320G的硬盘,实际容量要小,主要原因实际中相邻单位之间的换算是1000而不是1024.
13.不同类型数据之间相互赋值的问题(弄清楚补码的问题)
int i = 45;
long j = 102345;
i = j;
printf("%ld %d\n", i, j);
float x = 6.6;
double y = 8.8;
printf("%f %lf\n", x, y);
int i = ;
暂不考虑
14.什么是ASCII码(非常重要)
字符变量在程序中的使用:
#include <stdio.h>
int main(void)
{
//ASCII问题
char ch = 'A';//ok
// char ch = "AB";//error 因为"AB"是字符串,而我们不能把字符串赋给单词字符变量
// ch = "A";//"A"等价于A和\n
// ch = 'AB'; //error
// char ch = 'B';//error, 因为ch变量已经定义了,这样会导致变量名被重复使用。
ch = 'C';//ch字符变量,可以被重新赋值。
printf("%c\n", ch);
return 0;
}
ASCII码在程序中的使用:
ASCII码不是一个值,而是一种规定;
ASCII规定了不同的字符是使用哪个整数值去表示,它规定了'A'-- 65、 'B' -- 66、'a' -- 97、 ‘b' -- 98、 '0' -- 48

c语言采用的是ASCII码。
15.字符的存储[字符本质上与整数的存储方式相同]
基本的输入输出函数的用法;
printf() 和 scanf()(在java中已经没有了)
printf() 将变量的内容输出到显示器上
四种用法;
printf("字符串\n");//\n转义字符表示换行
printf("输出控制符", 输出参数);//输出控制符,决定二进制数以什么样的格式输出
printf("输出控制符1 输出控制符2", 输出参数1, 输出参数2);//输出控制符和输出参数要一一对应。
printf("输出控制符 非输出控制符", 输出参数);//输出控制符包含:%d %ld %f %lf %c %x(%X)
#include <stdio.h>
int main(void)
{
//printf()函数的使用
printf("Hello visual studio!\n");
//printf("输出控制符", 输出参数);
int i = 10;
printf("%d\n", i);//%d十进制
printf("%o\n", i);//%o八进制
printf("%X\n", i);//%X十六进制
//printf("输出控制符1 输出控制符2", 输出参数1, 输出参数2);
int j = 3;
int k = 5;
printf("%d %d\n", j, k);//输出控制符和输出参数的个数要一一对应。
//printf("输出控制符 非输出控制符", 输出参数);
printf("%d,%d\n",j ,k);
//输出控制符%x,%X,%#X的使用
int m = 47;
printf("%x\n", m);//2f
printf("%X\n", m);//2F
printf("%#x\n", m);//0x2f
printf("%#X\n", m);//0X2F
return 0;
}
为什么需要输出控制符
1)0、1组成的代码可以表示数据也可以表示指令
2)如果0、1组成的代码表示的是数据的话,同样的0、1代码组合以不同的输出格式输出就会有不同的输出结果。
scanf() :通过键盘将数据输入到变量中
用法一:scanf("输入控制符",输入参数);将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。
用法二:scanf("非输入控制符 输入控制符",输入参数):将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。非输入控制符要原样输入。
#include <stdio.h>
int main(void)
{
//scanf()函数的使用,不含有非输入控制符
//int i;
//scanf_s("%d", &i);//&i表示i的地址,&是一个取地址符
//printf("i = %d\n", i);
// scanf()函数的使用,含有非输入控制符
int j;
scanf_s("m%d", &j);//输入m123
printf("j = %d", j);
return 0;
}
用法三:scanf(" 输入控制符1 输入控制符2 输入控制符3",输入参数参数1, 输入参数2, 输入参数3)
#include <stdio.h>
int main(void)
{
//scanf()函数的使用,不含有非输入控制符
//int i;
//scanf_s("%d", &i);//&i表示i的地址,&是一个取地址符
//printf("i = %d\n", i);
// scanf()函数的使用,含有非输入控制符
//int j;
//scanf_s("m%d", &j);//输入m123
//printf("j = %d", j);
//return 0;
// scanf()函数的使用,对多个变量键盘赋值
int a, b, c;
scanf_s("%d,%d,%d",&a, &b, &c);
printf("a = %d, b = %d, c = %d",a ,b ,c);
}
如何使用scanf()编写出高质量的代码:
1)使用scanf之前最好先使用printf提示用户以什么样的方式来输入
2)sanf中尽量不要使用非输入控制符,尤其是使用\n。
3)应该编写代码对用户的非法输入做适当的处理。while((ch = getchar()) != '\n') continue;

浙公网安备 33010602011771号