练习:
1)建立test1、test2文件夹
2)在test1文件夹中建立1.txt文件,在1.txt中写上50行“hello farsight!”,
复制1.txt成为2.txt,并把2.txt中所有的“farsight”改成“world”
3)移动test1文件夹到test2文件夹下
4)删除test1
C基础:
1.计算机的数据表示:
1)数值型数据:二进制、十进制、十六进制、八进制
基数:2、10、16、8
位权:
十进制: 0-9
二进制:0,1
八进制:0-7
十六进制:0-9 a-f
进制的转换:2048 1024 512 256 128 64 32 16 8 4 2 1
十进制-二进制:123,除2倒取余或8421
123 = 64+59
= 64+32+27
= 64+32+16+11
= 64+32+16+8+2+1
= 1 1 1 1 0 1 1
二进制-十进制:
0b11011 = 1*2^4+1*2^3+0*2^2+1*2^1+1*2^0=16+8+2+1=27
八进制-二进制:三位二进制表示一位8进制 (三位二进制数能表示八进制的任何位权)
234 = 010 011 100
二进制-八进制:
11011 = 011 011 = 33(三位一组,不足三位的补0)
十六进制-二进制:四位二进制表示一位16进制
0xab = 1010 1011
二进制-十六进制:
11011 = 0001 1011 = 0x1b(四位一组,不足四位的补0)
练习:
1)十进制转换为二进制
89 67 389 890
2)将八进制转化为二进制
67 45
3)将十六进制转化为二进制
af fa5 aa10
4)将二进制分别转换为十进制、
八进制、十六进制
0001 0011 1111 1011
0001 0101 1100 0100
1010 1011 0101
2)非数值型数据:
ASCII值 man ascii
‘\0’ – 0
‘\n’ – 10
‘space’ – 32
‘0’ – 48
‘9’ – 57
‘A’ – 65
‘Z’ – 90
‘a’ – 97
‘z’ – 122
‘A’ = ‘a’ - 32/’ ’
‘a’ = ‘A’ + 32/’ ’
2.常量:在程序运行期间其数值不发生变化的数据。
1)整型常量:进制数 2,8,10,16
2)浮点型常量:小数 1.23
3)指数常量:110^2 --> 1e+2 210^5 --> 2e+5
4)字符常量:用单引号引起来的一个字符
char ch = ‘A’;
5)字符串常量:用双引号引起来的一串字符
char str[] = “hello”
6)标识常量:宏定义
#define 宏名 表达式
typedef :数据类型重命名
注意:只是单纯的替换
宏名可以在其他宏中使用
宏名一般用大写
3.格式输出函数:
int printf(const char *format, …);
功能:按照指定的格式输出
参数:格式输出符,
返回值:输出字符的个数
%d -- int、short(整数(int \short))
%ld -- long(长整数(long))
%c -- char(字符型)
%f -- float(浮点型(小数))
%lf -- double(浮点型(精度要高))
%s -- 字符串("hello")
%p -- 地址(内存的地址)
%#x -- 十六进制0x
%#o -- 八进制
%[0+/-m.n]:按指定格式限制输出内容
.n :保留小数点后n位
m :限定位宽为m
如果m大于实际位宽,按m位宽输出
如果m小于实际位宽,按实际位宽输出
-:表示左对齐,默认为右对齐右边补空格
+:输出数据的正负号左边补空格
0:在输出数据的前面补0
变量:在程序运行期间其数值发生变化的数据。
分类: 局部变量:内部变量,是在程序的内部,作用域仅限于函数中
全局变量:外部变量,作用域为整个程序.
关键字:
a.存储类型: auto(自动型) register(寄存器类型) extern(外部引用) static(静态型)
C语言内存划分:
1、静态区
代码区:只读(常量)
数据区:
全局变量、局部静态变量(初始化)
BSS区:
全局变量、局部静态变量(未初始化)
2、非静态区
栈区(临时变量、函数参数、函数返回地址等)
堆区(程序员手动开辟空间,使用函数malloc等,需要手动释放。)
b.数据类型: int(整型) short(短整型) long(长整型)char(字符类型)float(单精度浮点)double(双精度浮点)
unsigned(无符号) signed(有符号)
定义变量格式:(有无符号)存储类型 数据类型 变量名;
(auto)int a;
int a; – (signed) int a;有符号
unsigned int a; 无符号
c.杂项:const(常量化) sizeof(计算数据所占空间大小)typedef
(重命名) void(参数、函数的返回值) volatile(防止被编译器优化)
标识符:
1)标识符由一个或多个字母、数字或下划线组成
2)标识符的第一个字符必须是字母或下划线
3)标识符不能与任何关键字相同
格式输入函数
int scanf(const char *format, …);
功能:按照指定的格式进行输入
参数:格式输入符,地址列表
返回值:成功输入字符的个数
练习1:从终端输入字符实现大小写的转换(大写转小写)
练习2:输入一个华氏温度,要求输出摄氏温度,公式为C=5/9*(F-32),输出取两位小数。
垃圾字符的回收:
1)scanf("%c %c %c", &ch1, &ch2, &ch3);
回收一个或多个空格、tab、回车\n
2)scanf("%c%*c%c%*c%c", &ch1, &ch2, &ch3);
回收一个空格、tab、回车\n
3)getchar()从终端输入
回收一个字符
scanf遇到空格、tab、enter结束
练习:求a
运行结果:
a=9
a=++sql(k+1)=++k+1*k+1=9
(不加括号进行运算)
练习2:
该程序的输出结果是14