信管协会技术部
武汉理工大学管理学院2014级c语言考试梳理概览
C语言起源:1972年贝尔实验室许多计算机语言 Basic模仿英语C语言是为编程人员开发的语言
计算机工作的基本原理cpu进行绝大多数计算工作,内存指令->cpu寄存器->cpu计算执行
c语言是高级语言强大 高效 可移植 面向编程人员缺点:(1)给了比较大的自由度,风险也上升,尤其是指针(2)运算符丰富,组合起来难以理解
c是最接近底层的高级语言编程机制:编译器将c源代码编译成机器语言生成目标代码文件,链接器向最终程序加入代码,启动代码(不同操作系统启动代码不同),库函数。。生成可执行文件.exe
C语言标准:c99
一个实例# include //#是一个预处理例子# define AGE “How old are you?”/*宏定义指令 无参宏 有参宏 无参宏 : # define 标识符 字符有参宏 : # define 标识符(参数) 字符表达式*/ int main(void){int a;//a为标识符 int 为关键字之一
printf(AGE);scanf(“%d”,&a); //输出控制 &取地址符return 0;}
printf (“字符串”, 变量列表)printf() :%d %o %x %X %u%f %e %E %c %s
附加格式字符 %5d %05d %+5d %+-5d %.5f %7.1f %#x %#X
scanf(“字符串”,&变量) scanf()注意事项 输入遇到空白字符时停止输入
代码规范性
基本数据类型 和 运算符程序运行离不开数据
2.1基本数据类型现在所学的 基本型 :整型 实型 字符型 (枚举类型 enum)指针类型构造类型:数组array 结构struct 联合 (共用体)union
2.2常量整型常量: 十进制 八进制:012 十六进制:0Xfff 存储方式其实都一样后缀U L UL
实型常量(浮点型):十进制小数0.000000指数形式:3.2e5 1e+012 0e5 -0.45e-4 默认为double 可用后缀F或L进行类型转换
字符常量:‘a’ ‘d’ ‘$’ 空字符:‘\0’ 转义字符 ‘\n’ ‘\t’ ‘\’’ ‘\”’ ‘\ddd’ ‘\xhh’
字符串常量“字符串”分多行输出:printf(“This is the first line\This is the first line\n”);printf(“This is the first line”,“This is the first line\n”);printf(“This is the first line”);printf(“This is the first line”);
符号常量 定义了符号常量之后,与字符串序列等价# define 或类型限定符 const 或 枚举类型 enum
2.3变量变量声明 变量赋值/初始化先定义才能使用一个函数中变量名不能重复,标识符不能重复
2.4指针变量int * p; p 的类型是 int * ,p是一个指向int类型整数的指针指针运算符 * 取值 ;&取地址& * 互为逆运算指针变量初始化才有意义int a;p = &a; p中只能存放同类型变量的地址 这里都为int
2.5运算符与表达式用运算符将若干个式子连接起来构成的式子叫做表达式 求表达式的值在考试中经常见到,直接或者间接的考2.5.1算术运算符和算术表达式+ - (正和负)+5(右往左)优先级比下面几个高+ - (加和减) * / %(左往右)5.0/2==2.500000各个注意事项左右两边类型不一致,自动升级为高等级类型,混合类型中有float 类型,会被升级为double/ 整数相除要注意,会舍去小数部分,或者说是类型相同时,值的类型也相同指针用加 减 的注意事项%注意事项字符型操作数,比如 ‘a’,会将字符型转为整数型,用字符的ASCII码值参加运算‘a’+ 3 == ‘d’
2.5.2赋值运算符和赋值表达式= += -= *= /= %=性质:所有的优先级相同,结合方向为从右至左。优先级低于算术运算符注意优先级所带来的赋值问题 a *= 3+2整体表达式的值是最后一次运算之后的值int a = 9, b = 5; b = (a = 4)/(b = a) 值为1赋值表达式左右类型不一致时