笔记
1.vi编辑器
1.1进行编辑
touch test.c
vi test.c
或者
vi test.c 如果有test.c就进入进行编辑,如果没有test.c就创建test.c然后进行编辑
1.2
文件的操作
cat test.c 查看test.c文件的内容
head test.c 查看test.c文件内容中的前十行
head -n test.c 查看test.c文件内容中的前n行
tail test.c 查看test.c文件内容中的后十行
tail -n test.c 查看test.c文件内容中的后n行
2.vscode编辑器
使用指令:code 文件夹名称
3.gcc编辑器
3.1简写
gcc test.c 进行编译,此时会生成一个a.out文件
./a.out 执行a.out文件
若想指定生成的文件名可执行
gcc test.c -o test(想指定的名称)
./test 执行test文件
3.2完整流程
1.预处理
gcc -E test.c -o test.i
2.编译
gcc -S test.i -o test.s
3.汇编
gcc -c test.s -o test.o
4.链接
gcc test.o -o test
4.计算机的储存单位
最小单位 bit 位
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
5.计算机数据表示形式
5.1数值型
二进制0 1 八进制0-8 十进制0-9 十六进制0-9 A-F
进制转换
二转十:如1011为1*2^3+0*2^2+1*2^1+1*2^0=11
十转二:如60为32+16+8+4,111100
二转八:三个为一组,如101101为55
八转二:如052为101010
二转十六:四个为一组,如101101100为16C
十六转二:如5A为1011010
5.2非数值型
使用ASCII码
在Ubuntu中使用输入man man查看ASCII码表
如'A' 65
'a' 92
'\0' 0
printf("%d\n",'2'); //50
printf("%d\n",'2' - 48); //2
printf("%d\n",'A' + 32); //a
printf("%d\n",'A' + ' '); //a
printf("%c\n",'50'); //'2'
printf("%c\n",'062'); //'2'
printf("%c\n",'\102'); //'B'
6.词法符号
6.1运算符
算术运算符 逻辑运算符 位运算符 关系运算符 三目运算符 赋值运算符
6.1.1 算术运算符
+ - * / % ++ --
/:整数相除结果为保留整数部分
如7/3=2
int a=7/2;
printf(%d\n",a);//3
若想有小数部分有两种办法
1.
float a=7.0/2
printf(%.1f\n",a);//3.5
2.
float a=(float)7/2
printf(%.1f\n",a);//3.5
%:求余数
如7%2=1
注:只能用于整数运算
++
i++或++i,都表示i=i+1但在赋值中有所区别
int a=6;
int b=++a;
printf("%d %d\n",a,b);//7 7
int a=6;
int b=a++;
printf("%d %d\n",a,b);//7 6
int a=6;
printf("%d\n",++a);//7
printf("%d\n",a);//7
int a=6;
printf("%d\n",a++);//6
printf("%d\n",a);//7
6.2关键字
存储类型:auto static extern register
数据类型:int char float short long double signed unsigned
构造数据类型:struct enum union
分支:if else switch case default for do while go to break continue
其他:void const sizeof volatile return typedef
6.3标识符
在给变量、数组、函数等命名时, 遵循标识符的命名规则:
1)由字母、数字、下划线(_)组成
2)开头不能是数字
3)不能和关键字重名
4)见名知意
题目
1
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 10;
int b = a--;
int c = a + b + 2;
int d = (b--) + (++c);
printf("%d\n",d);
}
[单选题] *
A. d = 31
B. d = 32
C. d = 33
D. d = 34
选择D选项32。首先进入main函数,a初始化为10,然后b=a--,此时由于‘--’在a后面,所以这个时候的先把a=10的值给b,然后a=a-1,a为9。然后进行c=a+b+2这句代码,c就等于9+10+2为21。最后进行d=(b--)+(++c)代码,由于‘--’在b后面,所以在这一句代码里b还是10,而‘++’在c的前面,所以在这一句代码中,c已经完成c=c+1的任务,此时的c为22。所以d=10+22=32。
2
以下代码运行后输出的结果是____
#include <stdio.h>
int main()
{
int k = 011;
printf("%d\n",k++);
return 0;
}
结果是9,首先k=011,前面有个0,说明k是一个八进制的数,011化成十进制就是1*8^1+1*8^0=9,所以k是9。最后输出时,由于是k++,‘++’在后面,所以此时输出的还是原来的k为9。若在此printf下再打一个printf("%d\n",k),此时输出就是10。
3
在C语言中,要求运算符必须是整形的运算符是()。
A./ B.++ C.!= D.%
选D