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;

posted @ 2024-07-29 13:33  java帝国  阅读(18)  评论(0)    收藏  举报