C语言程序设计基础复习.ppt_第1页
C语言程序设计基础复习.ppt_第2页
C语言程序设计基础复习.ppt_第3页
C语言程序设计基础复习.ppt_第4页
C语言程序设计基础复习.ppt_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计复习 目录 基本要求基本内容 1 基本要求 熟练掌握C语言的基本知识具备基本的C程序设计能力 能熟练阅读 理解 编制简短的C程序 2 基本内容 数据的定义运算及流程控制程序结构和函数数据的输入和输出编译预处理常用算法文件操作 2 1数据的定义 数据的定义包括数据类型和存储类别1 基本类型基本类型指整型 实型和字符型 主要是int float char 还有long double unsigned short等 1 常量 熟练掌握整数 实数和字符 串 常量的各种表示形式 及符号常量的定义和使用 整数的十进制 八进制和十六进制的表示形式长整型常量的表示形式实数的浮点表示法和科学计数法字符的转义序列 3 2常量与变量 常量 在程序运行过程中其值不能被改变的量 如0 3 4 6 1 23 a d A 分别为不同类型 常量一般从其书写形式即可判别类型 这种常量称为字面常量或直接常量 例 以下选项中不正确的整型常量是A 0 x1B 01C 20LD 23 87以下选项中不正确的字符常量是A 101 B T C 1 D 2 以下选项中 均是合法的整型常量的选项是A 160B 0 xcdfC 01D 0 x48a 0 xffff01a986 0122e50110 xe06680 x 2 变量 熟练掌握变量的定义和初始化 变量名实际上是一个符号地址 在对程序编译连接时由系统给每一个变量名分配一个内存地址 从变量中取值 实际上是通过变量名找到相应的内存地址 从其存储单元中读取数据 有一个名字 变量名 用合法的标识符表示在内存占据一定的存储单元 在该内存单元中存放变量的值 1 变量名和变量值是不同的 如 x 3 14变量名x变量值3 142 变量名由字母 数字 下划线组成 由字母 下划线开头3 大写字母和小写字母是不同的 一般用小写字母如 sum和SUM是两个变量名4 变量名应 见名知意 如 sum count total5 变量应 先定义 后使用 未定义的不得使用6 每一变量有一确定类型如 int float char7 尽量避免用容易混淆的字符如 o和0 l和1 z和2 注意 2 构造类型 构造类型包括数组和结构1 数组熟练掌握一维和二维数组的定义和初始化熟练掌握一维和二维数组元素的引用熟练掌握一维字符数组和字符串的应用 例 数组定义为inta 2 3 1 2 3 4 5 6 数组元素a 1 1 的值为 5不正确的赋值或赋初值的方式是 A charstr s B charstr 6 s C charstr 10 str S D charstr 5 s 0 表达式strcmp box boss 的值是一个 A 正数B 负数C 0D 不确定的值 例 下列说明不正确的是 A chara 10 china B chara 10 p a p china C char p p china D chara 10 p p a china includeinta 2 2 1 2 5 6 main ints k for s 0 k 0 k 2 k s a k k printf d s for s 0 k 0 k 2 k s a k 1 k printf d s 2 结构 结构类型的定义结构变量的定义和初始化结构变量成员的引用链表 includestructNODE intnum structNODE next main structNODEs 3 10 0 20 0 30 0 p q r intsum1 0 s 0 next s 1 s 1 next s 2 s 2 next s p s q p next r q next sum1 q next num sum2 sum1 r next next num printf d d n sum1 sum2 30 50 3 指针 熟练掌握指针和地址的概念熟练掌握指针变量的定义和初始化熟练掌握通过指针引用指向实体 inta pa pa a 10 pa 例 若变量已正确定义并且指针p已经指向某个变量x 则 p 相当于A p B x C p D x 下列语句定义pf为指向float类型变量f的指针 则是正确的 A floatf pf fB floatf pf fC float pf f fD floatf pf f 4 构造类型和指针类型的混合定义及引用 1 熟练掌握指针 数组和地址间的关系 inta 3 1 3 5 int k a 1 printf d k 5 charstr Hello tworld n printf c str 10 charstr student printf s str 3 d dent 写出下列程序段的输出结果char str one two three four printf s n str 3 1 2 熟练掌握指针数组 our includemain intk charch a 10 s 10 one two three four k 0 while ch getchar n 写出下列程序段的输出结果 程序运行时 输入为1368 threeone 3 掌握结构数组 例 输入某班50位学生的姓名及数学和英语成绩 计算每位学生的平均分并输出平均分最高的学生的姓名及数学 英语成绩 include definesize50structstud charname 10 intmath eng floataver voidmain structstudstu size inti sub 0 floataver m 0 aver e 0 for i 0 istu sub aver sub i printf 平均分最高的是 s 其英语成绩是 d 数学成绩是 d n stu sub name stu sub eng stu sub math 5 变量的存储类别 作用域和生存期 变量的存储类别auto自动型static静态型extern外部参照型全局变量和局部变量作用域生存期 例 C语言中 形参的缺省的存储类别说明是 A autoB registerC staticD extern对于以下函数f 计算f f 2 的值intf intx staticintk 0 x k returnx 3 2 2运算及流程控制 1 基本运算熟练掌握运算符的功能熟练掌握运算符的优先级 结合性和目数掌握隐式类型转换和强制类型转换2 表达式熟练掌握各类表达式的组成规则和计算过程 初等量表达式操作符 一元操作符 逗号操作符 例 若变量已正确定义且k的值是4 计算表达式 j k 后 j和k的值分别是已知字符 a 的ASCII码是97 执行下列语句的输出是printf d c b b 1 4 3 98 a 例 判断i和j至少有一个值为非0的表达式是 A i 0 j 0B i 0 j 0 C i jD i j表达式 x等价于A x 0B x 1C x 0D x 1 例 算术运算符 关系运算符 赋值运算符的运算优先级按从高到低的顺序依次是 A 算术运算 赋值运算 关系运算B 关系运算 算术运算 赋值运算C 算术运算 关系运算 赋值运算D 关系运算 算术运算 赋值运算 例 intk a 1 b 2 k a b 2 3printf d k 3 若x是单精度实型变量 表达式 x 6 5 的值是1 0 3 语句 熟练掌握表达式语句 复合语句 空语句熟练掌握简单控制语句break continue return熟练掌握选择控制语句if switch熟练掌握重复控制语句for while do while 例 结构化程序设计的3种基本逻辑结构为顺序 选择和 A 循环B 转移C 嵌套D 递归计算机会把 和 之间的注释文本打印到屏幕上 写出下列程序段的输出结果 charc k c b k 4 switch c case a k 1 case b k 2 case c k 3 printf d k break 3 2 写出下列程序段的输出结果 intk x for k 0 x 0 k 9 5 10 2 3程序结构和函数 1 程序结构熟练掌握main函数与其他函数之间的关系 包括标准库函数和自定义函数2 函数的定义熟练掌握函数的参数 形参和实参 及参数传递 包括指针作为函数参数 熟练掌握函数的返回值 包括指针作为函数的返回值 例 C语言中 若对函数类型未加显式说明 则函数的隐含说明是int型 includeintz voidp int x inty x 10 y 50 z 1 printf d d d x y z main intx 1 y 5 z 9 p 运行结果 10 50 1 10 5 9 3 函数的调用 函数调用的一般格式熟练掌握通过函数名调用函数掌握函数的嵌套调用和递归调用掌握数组名作为函数参数 例 intf intk return k 0 1 f k 2 2 printf d n f 3 5 例 输入m和n m n 0 后 计算并输出m n 的值 要求将计算阶乘的运算写成函数fact n 函数的返回值为float includefloatfact intk voidmain intm n scanf d d floatfact intk inty 1 i for i 2 i k i y y i returny 数组名作函数参数 1 数组元素作为函数实参要求函数形参是变量 值传递 2 数组名作为函数实参由于数组名是指针常量 相当于指针作为函数参数要求函数形参是指针变量 数组 数组名作实参 在调用函数时实际上是把数组的首地址传给形参 因此实参数组与形参数组共占同一段内存 所以 实参数组和形参数组之间并不存在 值传递 但函数调用过程中 如果形参数组的元素值发生了变化 也将使实参数组的元素值发生同样变化 includemain floatscore 10 aver inti for i 0 i 10 i scanf f floataverage float array floatsum 0 aver inti for i 0 i 10 i sum array i aver sum 10 returnaver score array 1 实参是数组名 2 形参是指针变量可写成数组形式可不指定长度 floatarray 10 floatarray includemain floatscore 20 aver inti for i 0 i 10 i scanf f floataverage float array intn floatsum 0 aver inti for i 0 i n i sum array i aver sum n returnaver 3 若在函数中只处理部分数组元素 用参数指定个数 aver average score 10 aver average score 20 2 4数据的输入和输出 熟练掌握常用的输入输出函数scanf printf puts gets putchar getchar 2 6常用算法 排序问题 排序是数据处理中最常见问题 它是将一组数据按递增或递减的次序排列 例如对一个班的学生考试成绩排序 多个商场的日均销售额排序等 排序的算法有很多种 常用的有选择法 冒泡法 插入法等 不同算法执行的效率不同 由于排序要使用数组 需要消耗较多的内存空间 下面介绍选择法 冒泡法排序 数据的排序就是将一批数据由小到大 升序 或由大到小 降序 进行排列 常用的有选择法 冒泡法 1 选择法排序 算法 升序 设有n个数 存放在数组A 1 A n 中 1 第1遍 从中选出最小的数 与第1个数交换位置 常用算法 数据排序 演示 2 第2遍 除第1个数外 其余n 1个数中选最小的数 与第2个数交换位置 演示 3 依次类推 选择了n 1次后 这个数列已按升序排列 常用算法 数据排序 选择法排序算法的流程图 常用算法 数据排序 for i 0 ia j p j if i p s a i a i a p a p s 交换两个元素printf d a i 选择法排序 升序 的C程序 思考 如果按降序排 程序如何修改 常用算法 数据排序 例 输入10个数据 排升序打印输出main inti j p s a 10 printf ninput10numbers n for i 0 i 10 i scanf d 常用算法 数据排序 2 冒泡法排序 升序 算法 将相邻两个数比较 大数交换到后面 1 第1趟 将每相邻两个数比较 大数交换到后面 经n 1次两两相邻比较后 最大的数已交换到最后一个位置 2 第2趟 将前n 1个数 最大的数已在最后 按上法比较 经n 2次两两相邻比较后得次大的数 3 依次类推 n个数共进行n 1趟比较 在第j趟中要进行n j次两两比较 演示 常用算法 数据排序 冒泡法排序算法的流程图 常用算法 数据排序 main inta 11 用a 1 a 10 a 0 不用 inti j t i j作循环变量 t作两两比较的临时变量 printf input10numbers n for i 1 ia i 1 交换大小 t a i a i a i 1 a i 1 t printf thesortednumbers n for i 1 i 11 i printf d a i 常用算法 数据排序 A 1 A 8 第1遍i 1p 1 排序前 a p a j p 6 j 2 j 3 j 4 j 5 j 6 交换 p 2 p 3 j 7 j 8 实现这一过程的程序 成立

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论