目录:
一、 注释
1 解释代码的意义,注意只是给程序员看的,不会编译。
2 通常使用”//”标识一行内容的注释
3 使用”/*…*/”注释多行
4 还可以用来调错,替换法或排除法
二、数据类型
1 分类:基本数据类型、引用数据类型
2 在C语言中,基本数据类型有四种:char、int、float、double
3 字符型char,底层存储的是整数,是字符表ASCII里面的编码。
常见字符编码:'A' = 65 、'a' = 97 、'0' = 48
4 char代表一个字符,用两个 '' 括起来,占位8位(二进制)内存,8位的 二进制数占用1个字节空间。中文占用2个字节
位bit:描述二进制的位数
字节byte:描述占用存储空间的大小
1KB千字节 = 1024B字节
1MB兆字节 = 1024KB
1GB吉字节 = 1024MB
1TB = 1024GB
1PB = 1024TB
输出函数printf输出char类型变量内容,所使用占位符为%f输出数据。
练习:
1 定义一个字符变量ch='A',使变量ch+4,输出结果%d,%c
2 定义一个字符变量ch='a',使变量ch+4,输出结果%d,%c
3 字符类型'5','6',有没有办法转换成相应的数值类型?
4 字符类型'f',有没有办法转换成'F'?
代码:
1 #include <stdio.h> 2 3 //定义一个字符变量ch='A',使变量ch+4,输出结果%d,%c 4 void test1() 5 { 6 char ch = 'A'; 7 char res; 8 res = ch + 4; 9 printf("char:%c\n",res); 10 printf("char:%d\n",res); 11 } 12 13 //定义一个字符变量ch='a',使变量ch+4,输出结果%d,%c 14 void test2() 15 { 16 char ch = 'a'; 17 char res; 18 res = ch + 4; 19 printf("char:%c\n",res); 20 printf("char:%d\n",res); 21 } 22 23 //字符类型'5','6',有没有办法转换成相应的数值类型? 24 void test3() 25 { 26 char a = '5'; 27 char b = '0'; 28 int num = a - b; 29 printf("'5'->'%c'\n",a); 30 printf("'5'->%d\n",num); 31 } 32 33 //字符类型'f',有没有办法转换成'F'? 34 void test4() 35 { 36 printf("请输入一个字符:"); 37 char ch; 38 //输入函数 对应数据类型占位符 39 scanf("%c",&ch); 40 char res = ch - ('a' - 'A'); 41 printf("%c->'%c'\n",ch,res); 42 } 43 44 //将26个小写字母转换为对应的大写字母。 45 46 //转义符'\' 47 void test5() 48 { 49 char ch = '\"'; 50 printf("ch:%c\n",ch); 51 printf(" a\n"); 52 printf(" a\n"); 53 } 54 55 //数据溢出 56 void test6() 57 { 58 //无符号取值范围0~255 59 //有符号(默认)范围-127~128 60 char ch = 127; 61 //如果是最大值溢出从最小值开始算 62 char ch2 = 127 + 1; 63 //如果是最小值溢出从最大值开始算 64 char ch3 = ch2 - 1; 65 printf("ch2:%d\n",ch2); 66 printf("ch3:%d\n",ch3); 67 } 68 int main() 69 { 70 //test1(); 71 //test2(); 72 //test3(); 73 //test4(); 74 //test5(); 75 test6(); 76 return 0; 77 }
三、 输入函数scanf键盘->程序
1 通过键盘向程序传输数据,等待用户输入,直到用户输入完毕回车。
Ctrl+c 强制停止程序运行
2 语法scanf("%c",&ch);
参数1 对应数据类型占位符
参数2 取变量地址,将键盘输入的数据存在相应地址中
练习:将26个小写字母转换为对应的大写字母。
四、转义符\
在做字符类型数据处理时,一些特殊的符号,需要转义处理,(特殊符号:与系统定义的语法符合冲突),转义处理,就会用到\,这就是转义符 。
常用的转义符处理:
\n 换行字符
\r 回车字符
\t 制表符tab,一个制表符等于8个空格字符
\\ 反斜杠
\' 单引号字符
\" 双引号字符
五、char数据范围
unsiged(无符号)char 8位 1字节 0~255
有符号char 8位 1字节 -128~127,默认是有符号的
溢出:超出最大值,从最小开始算
超出最小值,从最大开始算
六、int整形
1 int代表16位或32位二进制数,short/long修饰
short(int)16位,
long(int)32位
signed int第一位就是符号位,long long long int代表64位整数。推荐int类型描述整数。
2 在c语言中,整数有二进制、八进制、十进制、十六进制。
3 二进制数,以值0标识开始,到1结束,当为2时会向前进一位。
十进制数,以值0标识开始,到9结束,当为10时会向前进一位。
八进制数,以值0标识开始,到7结束,当为8时会向前进一位。
十六进制数,以值0标识开始,到15结束,当为16时会向前进一位。
10 A 11 B 12 C 13 D 14 E 15 F
4 取值范围
short 16位 2字节 有符号 -32768~32767
unsigned short 16位 2字节 无符号 0~65535
long 32位 4字节 有符号 -2^31~2^31-1
unsigned long 32位 4字节 无符号 0~2^31-1
练习:
1从键盘输入两个数,求出和、差、积、商。
2 从键盘上输入工资,输入税点,求税值。
代码:
1 #include <stdio.h> 2 3 //从键盘输入两个数,求出和、差、积、商。 4 void test1(fuhao) 5 { 6 int num1; 7 int num2; 8 int he = 0,cha = 0,ji = 0,shang = 0; 9 printf("请输入两个整数(以空格隔开):\n"); 10 scanf("%d %d",&num1,&num2); 11 he = num1 + num2; 12 cha = num1 - num2; 13 ji = num1 * num2; 14 shang = num1 / num2; 15 printf("%d+%d=%d\n",num1,num2,he); 16 printf("%d-%d=%d\n",num1,num2,cha); 17 printf("%d*%d=%d\n",num1,num2,ji); 18 printf("%d/%d=%d\n",num1,num2,shang); 19 } 20 21 //从键盘上输入工资,输入税点,求税值。 22 void test2() 23 { 24 float salary; 25 float tax; 26 printf("请输入工资和税点(以空格隔开):\n"); 27 scanf("%f %f",&salary,&tax); 28 float shuizhi = salary * tax; 29 printf("所交税值:%.2f\n",shuizhi); 30 } 31 int main() 32 { 33 test1(); 34 //test2(); 35 return 0; 36 }
七、float与double
1 有整形和小数两个部分组成
2 c中,浮点型包括float、double、long double。
float 32位 4字节 2^32
double 64位 8字节 2^64
long double 96位 12 字节 2^96
3 输出结果中,使用占位符
%f float
%lf double
%g(科学计数法)
练习:
1 从键盘上输入圆的半径,pi的值3.14,求圆的周长和面积。
2 从键盘上输入矩形的长和宽,求矩形的周长和面积。
1 #include <stdio.h> 2 3 //从键盘上输入圆的半径,pi的值3.14,求圆的周长和面积。 4 void test1() 5 { 6 float r; 7 float pi = 3.14; 8 printf("请输入圆的半径:\n"); 9 scanf("%f",&r); 10 float mianji = pi * r * r; 11 float zhouchang = 2 * pi * r; 12 printf("圆的面积是:%f,周长是:%f\n",mianji,zhouchang); 13 } 14 15 //从键盘上输入矩形的长和宽,求矩形的周长和面积。 16 void test2() 17 { 18 float chang; 19 float kuan; 20 printf("请输入矩形的长:\n"); 21 scanf("%f",&chang); 22 printf("请输入矩形的宽:\n"); 23 scanf("%f",&kuan); 24 float mianji = chang * kuan; 25 float zhouchang = 2 * (chang + kuan); 26 printf("矩形长是:%f,宽是:%f,的面积是:%.2f,周长是:%.2f\n",chang,kuan,mianji,zhouchang); 27 } 28 int main() 29 { 30 //test1(); 31 test2(); 32 return 0; 33 }
八、进制转换
自动转换:%d十进制、%o八进制、%x十六进制
1 #include <stdio.h> 2 3 int main() 4 { 5 int i = 11;//十进制 1*10+1*1=11 6 int i2 = 011;//0代表是八进制 1*8+1*1=9 7 int i3 = 0x11;//0x代表是十六进制 1*16+1*1=17 8 //转换自动转换 %o八进制 %x十六进制 9 printf("i其本身十进制:%d,转换八进制为:%o,转换十六制为:%x\n",i,i,i); 10 printf("i2转换十进制为:%d,转换十六制为:%x,其本身八进制:%o\n",i2,i2,i2); 11 printf("i3转换十进制为:%d,转换八进制为:%o,其本身十六进制:%x\n",i3,i3,i3); 12 return 0; 13 }