- 一个C语言的源程序(扩展名为.c)在经过编译器编译后,首先生成一个汇编语言程序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序(扩展名为.obj)。目标程序不可以直接运行,它要和库函数或其他目标程序连接成可执行文件(扩展名为.exe)后方可运行
.obj文件不可直接运行
算法的5个特性为:
- 有穷性
- 确定性
- 可行性
- 有零个或多个输入(可以无输入)
- 有1个或多个输出(必须有输出)
逗号运算符
在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。其一般形式为:
表达式1, 表达式2
其求值过程是分别求两个表达式的值,并以表达式2(即最右边的一个表达式)的值作为整个逗号表达式的值。
1 | int x=2; |
逗号仅计算结果,并不具有赋值作用(但是x++有赋值作用)
算术运算符优先级
优先级的次序如下(由高到低):()、++、—、*、/、%、+、-
以上所列的运算符,只有单目运算符正“+”和负“-”的结合性是从右到左,其余运算符的结合性都是从左到右
- %对象必须为整型
运算库函数
- abs:绝对值
- fabs:双字节型绝对值
- pow:x的y次方
- exp:求10的x次方
- sqrt:x的平方根
BCCAA ADBBD DAC
- 数字的默认类型为整型
1 | printf("%lf",1/2); //0.000000 |
c的基本数据类型:单精度型、双精度型、字符型、整型、枚举型
c负整数补码:所得反码还要+1
三、顺序结构
格式字符:
- %i同%d
- %o 八进制
- %g/G 系统决定采用什么格式(f或e)使输出宽度最小
- %p 输出变量地址
%m.ns,输出占m列,但只取字符串中左边n个字符。这n个字符输出在m列的右边,左边补空格
%-m.ns,n个字符输出在m列范围的左边,右边补空格。若n>m,则m自动取n值,即保证n个字符正常输出。
BBABD DACDD CCA
BDCBD DACDB DCB 34页
八进制格式输出开头不带0
逗号优先级低于赋值
四、选择结构
逻辑或运算的短路性
如果||前的表达式为真,则不会进行||后的表达式运算(&&以此类推)
DBADD AAAAA AC
DBADD DACAB AC 54页
五、循环结构
- while((ch=getchar())!=’\n’);符合语法
AAADC DBBCC BCA
AACBC DBBCB BBC 75页
六、字符型数据
转义字符
\f:换页
\ddd: 1~3位八进制数对应字符例如’\123’
\xhh: 1~2位16进制数对应字符例如’\x12’
BAADD DBCB
BACDD DCCB 85页
3忽略
- default后无break也会执行(?)
七、函数
CDDCB DDDAD C
BDDDC DADCD C 102页
- 简单变量作实参时与形参数据的传输方式为单向值传递
- return语句中带有++时,返回之后并且作用之后才会++
八、指针
有
int a,*p1=&a;由于&和运算优先级相同,& p1则从右至左运算,则& *p1等同于&a&a则是等同于 p1等同于a
*的优先级高于+、-,因此*p1=*p1+1是将a+1的值存进p内存储的地址所指向的内容中,也就是相当于a=a+1;但是a的地址是不变的。
具体对指针的一些理解已添加在指针相关复习 | 小董的BLOG (gitee.io)中
DADBB ADBDB BCC
DADDB ACBDB BCC 116页
7忽略(第一次全对捏)
九、数组
CDDBC CBBCD ACAB
CDDBC CBBCD ACAC 146页
十、字符串
1 |
|
AADCC DABBD CA
AADCC CBBBA CB 173页 6、10、12
strcpy会覆盖原来的整个字符串,而strncpy只会覆盖n个字节原来的字符串,剩下的保留
十一、对函数的进一步讨论
传入main的参数
1
main(int argc, char *argv[])
当我们对一个名为test的c文件进行编译时,在终端输入: test ok good后:
- argc值为3,即存入argv的字符串个数
- argv[0]存放
- 对指向函数的指针变量进行加减法无意义
CDCDD BBCB
CDCDC BBCB 184页
十二、用户标识符的作用域和存储类
ACDBA ACCCD C
ACDBB ADCCA D 195页
- 若全局变量和某一函数中局部变量同名,则在函数内全局变量被屏蔽
十三、编译预处理和动态存储分配
AACDC ADAA
DBBBC ACAA
define只作替换!!!!
1 |
|
十四、结构体、共用体和用户自定义型
1 | struct {int a;int b;}a;//合法 |
关于动态链表详见结构体复习 | 小董的BLOG (gitee.io)
AABB× CCBDD BC
ADBBA DCBCD BD 6题看题不仔细捏
十五、位运算
长度不同的数据进行位运算时先将最低位对齐,然后将短的一方扩充
DCDAA BCD
DADAA BCD
看清楚输出的格式声明
240