- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信管协会技术部
武汉理工大学管理学院2014级c语言考试梳理
概览
C语言起源:1972年贝尔实验室
许多计算机语言 Basic模仿英语
C语言是为编程人员开发的语言
计算机工作的基本原理
cpu进行绝大多数计算工作,
内存指令-cpu寄存器-cpu计算执行
c语言是高级语言
强大 高效 可移植 面向编程人员
缺点:
(1)给了比较大的自由度,风险也上升,尤其是指针
(2)运算符丰富,组合起来难以理解
c是最接近底层的高级语言
编程机制:编译器将c源代码编译成机器语言生成目标代码文件,
链接器向最终程序加入代码,启动代码(不同操作系统启动代码不同),库函数。。
生成可执行文件.exe
C语言标准:c99
一个实例
# include stdio.h //#是一个预处理例子
# 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
赋值表达式左右类型不一致时的类型转换规则:
文档评论(0)