全国计算机二级C语言程序设计.ppt

上传人:xt****7 文档编号:5210188 上传时间:2020-01-23 格式:PPT 页数:79 大小:2.49MB
返回 下载 相关 举报
全国计算机二级C语言程序设计.ppt_第1页
第1页 / 共79页
全国计算机二级C语言程序设计.ppt_第2页
第2页 / 共79页
全国计算机二级C语言程序设计.ppt_第3页
第3页 / 共79页
点击查看更多>>
资源描述
全国计算机二级C语言程序设计 考点复习 全国计算机二级考试考试方式 1 笔试 90分钟 满分100分 其中含公共基础知识部分的30分 选择10题20分 填空5题10分 2 上机 90分钟 满分100分3 上机操作包括 1 填空 30分 3处填空 2 改错 30分 2 3处改错 3 编程 40分 一个自定义函数体 第1章C语言程序设计基本概念 一 C语言程序的结构1 程序的构成 main函数和其他函数 2 头文件 数据说明 函数的开始和结束标志以及程序中的注释 3 源程序的书写格式 4 C语言的风格 大纲要求重点 考点点拨 重点记忆程序的构成和书写程序是可以连续执行的指令的集合 目前当用的程序程序语言主要是 高级语言 如VisualBasic C Java和C 其中C语言具有高级语言和低级语言的双重优点 C语言程序由函数构成 一个C语言源程序有且仅有一个main函数和零个或多个其他函数 无论main函数的位置如何 它是程序执行的入口和出口中 C语言程序书写自由 一行内可以写一条或多条语句 一条语句也可以写在多行 C语言的注释有两种形式 分别为行尾注释 和块式注释 注释只是给人看 对编译和运行不起作用 真题举例 11 以下叙述正确的是 2010 3 A C语言程序是由过程和函数组成的B C语言函数可以嵌套调用 例如 fun fun x C C语言函数不可以单独编译D C语言中除了main函数 其他函数不可以作为单独文件形式存在 B 考点点拨 C程序的编译连接和后缀C源程序文件 后缀为 c 必须翻译为二进制目标文件 后缀为 obj 此过程称为 编译 负责此工作的程序称为 编译器 或 编译程序 然后由连接程序把该二进制文件与C语言的各种库函数连接起来 生成可执行文件 后缀为 exe 此过程称为 连接 最后执行该可执行文件 实现程序功能 真题举例 13 以下叙述中错误的是 2010 9 A C程序在运行过程中所有计算都以二进制方式进行B C程序在运行过程中所有计算都以十进制方式进行C 所有C程序都需要编译链接无误后才能运行D C程序中整型变量只能存放整数 实型变量只能存放浮点数 B 考点点拨 算法的五个特性算法是为解决某个特定问题而采取的确定且有限的步骤 算法的五个特性是 有穷性 确定性 有效性 零个或多个输入 一个或多个输出 算法的表示方法有自然语言 流程图 伪代码和程序设计语言 真题举例 13 以下关于算法叙述错误的是 2012 3 A 算法可以用伪代码 流程图等多种形式来描述B 一个正确的算法必须有输入C 一个正确的算法必须有输出D 用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码 B 考点点拨 记住程序设计的任务程序设计指设计 编程 调试程序的方法和过程 程序设计通常分为问题建模 算法设计 编写代码和编译调试四个阶段 真题举例 11 针对简单程序设计 以下叙述的实施步骤正确的是 2012 3 A 确定算法和数据结构 编码 调试 整理文档B 编码 确定算法和数据结构 调试 整理文档C 整理文档 确定算法和数据结构 编码 调试D 确定算法和数据结构 调试 编码 整理文档 A 考点点拨 记忆结构化程序的三种结构组成结构化程序设计通常采用自顶向下 逐步细化 模块化设计 结构化编码的方法 结构化程序由三种基本结构组成 顺序结构 选择结构 循环结构 真题举例 11 以下关于结构化程序设计的叙述中正确的是 2010 9 A 一个结构化程序必须同时由顺序 分支 循环三种结构组成B 结构化程序使用goto语句会很便捷C 在C语言中 程序的模块化是利用函数实现的D 由三种基本结构构成的程序只能解决小规模的问题 C 第2章数据类型 运算符和表达式 二 数据类型及其运算1 C的数据类型 基本类型 构造类型 指针类型 无值类型 及其定义方法 2 C运算符的种类 运算优先级和结合性 3 不同类型数据间的转换与运算 4 C表达式类型 赋值表达式 算术表达式 关系表达式 逻辑表达式 条件表达式 逗号表达式 和求值规则 大纲要求重点 考点点拨 标识符的命名规则标识符的命名规则有 1 由字母 数字 下划线三类字符组成 2 必须以字母或下划线打头 3 区分大小写 4 不能和关键字相同 5 尽量见名知义 真题举例 13 以下C语言用户标示符中 不合法的是 2010 3 A 1B AaBcC a bD a b D 考点点拨 记十进制 八进制 十六进制整型常量的表示C语言中整型常量的表示方法有 十进制 以非零数字打头 八进制 以数字0打头后跟八进制数符 十六进制 以0X或0 x打头后跟十六进制数符 C语言中整型数据有三大类 短整型 short 2B 基本整型 int 4B 长整型 long 4B 此为有符号类型 可表示正 负数 在三个关键字前加上unsigned则为无符号类型 所占字节数不变 但只能表示正数 整型数据在内存中以二进制补码存放 若超出其表示范围 会产生溢出 考点点拨 记实型常量的表示实型常量的表示方法有两种 小数形式和指数形式 实型数据主要使用两种类型 单精度 float 4B 双精度 double 8B 注意不同类型的有效数字位数区别 实型数据在内存中以指数形式存放 实型常量默认为double型 可以在常量后加f或F将其按float型处理 考点点拨 记字符常量及转义字符常量的定义普通字符常量是用一对单引号括起来的一个字符表示的常量 字符常量的值是该字符的ASCII码值 如 A 的值是65 0 字符的值是48等 在内存中占1B空间 转义字符常量指在单引号内由反斜线打头 后跟特定字符表示的常量 需要记的转义字符有三类 1 控制字符 n r b t 2 特殊字符 3 转义进制 bbb 1 3位八进制数符 xhh 1 2位十六进制数符 字符串常量是用一对双引号括起来的零个或多个字符序列 其中包含的字符可以是普通字符或转义字符 系统自动在字符串末尾增加一个不可显示字符 0 空字符 作为字符串结束标记 字符串所占的内存空间为所含字符数 1 真题举例 15 以下选项中能表示合法常量的是 2010 9 A 整数 1 200B 实数 1 5E2 0C 字符斜杠 D 字符串 007 13 以下选项中不能用作C程序合法常量的是 2011 3 A 1 234B 123 C 123D x7G 14 以下选项中可用作C程序合法实数的是A 2011 3 A 1e0B 3 0e0 2C E9D 9 12E D A A 考点点拨 记字符数据的运算方法C语言规定 将所有的字符型数据都作为整型来处理 因此 字符常量和转义字符常量可以参与任何整数运算 如 A 32得 a 5 0 得5 常考英文字母大 小写之间的转换 数字字符与整数值之间的相互转换 字符数据还可以进行关系运算和逻辑运算 真题举例 21 以下不能输出字符 A 的语句是 注 字符A的ASCIl码值为65 字符a的ASCIl码值为97 2011 9 A printf c n a 32 B printf d n A C printf c n 65 D print f c n B 1 B 考点点拨 记字符变量的定义及赋值C语言中用关键字char定义字符型变量 在内存中分配1B空间 用来存放字符常量的ASCII码值 该值可以作为整型数据来参与运算 真题举例 22 有以下定义语句 编译时会出现编译错误的是 2009 9 A chara a B chara n C chara aa D chara x2d C 考点点拨 运算符的分类 常用运算符的优先级和结合性运算符按功能分有13类 P56 按所需操作数目分可分为 单目运算符 右结合 优先级2 双目运算符 除赋值为右结合外 其余为左结合 三目运算符 条件运算符 右结合 各运算符的优先级和结合性见教材P378 考点点拨 系统自动转换成同一类型的方向和结果的类型不同数据类型混合运算时系统自动转换的规则见下图 其中水平箭头为必然转换 垂直箭头为从低向高方向转换 运算结果类型为转换后的类型 真题举例 14 若有定义语句 inta 10 doubleb 3 14 则表达式 A a b值的类型是 2011 9 A charB intC doubleD float C 考点点拨 重点记算术运算符各自的运算特点基本算术运算符 均为双目运算符 其中 求余数 运算符要求两侧的操作数必须为整型 除 运算符两侧若均为整数 则结果为除以后的整数部分 否则为实型 真题举例 14 有以下定义 inta longb doublex y 则以下选项中正确的表达式是 2010 9 A a int x y B a x y C a y bD y x y x A 考点点拨 重点记赋值表达式及复合赋值表达式的特点赋值表达式左侧必须是简单变量 不能是常量或表达式 包括赋值表达式 右边可以是常量 变量或表达式 包括赋值表达式 赋值运算符及复合赋值运算符右结合 优先级倒数第二级 当赋值表达式右边表达式值的类型与左边变量的类型不一致时 系统会自动将该值转换成左边变量的类型后再赋值 转换规则则教材P62 真题举例 16 表达式a a a 9的值是 2010 9 A 9B 9C 18D 0 15 若有定义语句 inta 3 b 2 c 1 以下选项中错误的赋值表达式是 2011 3 A a b 4 3 B a b c 1 C a b 4 c D a 1 b c 4 15 若有定义语句 intx 12 y 8 z 在其后执行语句z 0 9 x y 则z的值为 2011 9 A 1 9B 1C 2D 2 4 D A B 考点点拨 理解前置运算和后置运算的不同意义自增 自减 均为单目运算符 右结合 操作数可以是整型变量或实型变量 但不能是常量或表达式 前置运算 如 i 是先增减后运算 后置运算 如i i 是先运算后增减 真题举例 18 有以下程序main intx 011 printf d n x 程序运行后的输出结果是 2011 3 A 12B 11C 10D 9 C 考点点拨 记逗号运算符的优先级 结合性及求值规则逗号表达式是用逗号运算符 将两个或两个以上的表达式顺序连接起来的表达式 左结合 逗号运算符优先级最低 从左到右顺序求解各表达式 也称为顺序求值表达式 结果为最右边表达式的值 注意区分逗号分隔符和逗号运算符 真题举例 6 执行以下程序后的输出结果是 2007 4 main inta 10 a 3 5 a 4 printf a d n a a 14 考点点拨 理解强制类型转换 自动类型转换 1 强制类型转换 格式为 类型 表达式 将表达式值的类型强制转换成指定的类型 对表达式中原有变量的类型无影响 2 自动类型转换 a 赋值运算中的自动转换 b 混合运算中的自动转换 真题举例 14 表达式 int double 9 2 9 2的值是 2009 9 A 0B 3C 4D 5 B 考点点拨 掌握关系运算符及表达式的求值关系运算符有 区分关系等 和赋值等 关系表达式用于判断两个对象之间的关系 其操作数可以是C语言中任何合法的表达式 关系表达式的值为逻辑值 关系成立为真 用整数1表示 关系不成立为假 用整数0表示 该值可以继续参加其他表达式运算 注意 关系表达式不能直接判断三个以上对象的关系 真题举例 8 在C语言中 当表达式值为0时表示逻辑值 假 当表达式值为 8 时表示逻辑值 真 2010 9 非0 考点点拨 掌握逻辑运算符及表达式的求值逻辑运算符有 按优先级从高到低排列 逻辑运算符常结合关系表达式判断多个对象之间的复杂关系 逻辑表达式的值为逻辑值 参与逻辑运算的操作数可以是任意合法的常量 变量或表达式 均以 非零为真 零为假 判断其逻辑值 注意逻辑表达式求值时的 短路特性 真题举例 17 若a是数值类型 则逻辑表达式 a 1 a 1 的值是 2010 3 A 1B 0C 2D 不知道a的值 不能确定 17 若有定义语句 intk1 10 k2 20 执行表达式 k1 k1 k2 k2 k2 k1 后 k1和k2的值分别为 2011 9 A 0和1B 0和20C 10和1D 10和20 A B 考点点拨 理解条件表达式的求值方法条件运算符 是C语言里唯一的三目运算符 优先级倒数第三 右结合 其一般形式是 表达式1 表达式2 表达式3 先求解表达式1 取其逻辑值 若为真 求解表达2作为整个表达式的值 若为假 求解表达式3的值作为整个表达式的值 各表达式可以为任意类型的合法表达式 真题举例 19 有如下嵌套的if语句if a b if a c k a elsek c elseif b c k b elsek c 以下选项中与上述if语句等价的语句是 2010 3 A k a b a b k b c b c B k a b b c a b b c b c C k a b a c a c b c b c D k a b a b k a c a c C 考点点拨 理解位运算符及其求值规则和优先级顺序位运算符有 同优先级 按优先级从高到低排列 位运算的操作数必须是整型或字符型 计算时先将操作数转换成二进制 然后再低位对齐按运算规则进行计算 真题举例 39 有以下程序 includemain inta 2 b 2 c 2 printf d n a b 程序运行后的结果是 2010 3 A 0B 1C 2D 3 C 第3章顺序结构 三 基本语句1 表达式语句 空语句 复合语句 2 输入输出函数的调用 正确输入数据并正确设计输出格式 大纲要求重点 考点点拨 理解C语句的概念及分类见教材P57 图3 14可知 C语句是函数体里的基本构成单位 语句的作用是向计算机系统发出操作指令 要求执行相应的操作 一个C语句经过编译后产生若干条机器指令 C语句可以分成5大类 1 控制语句 2 函数调用语句 3 表达式语句 4 空语句 5 复合语句 考点点拨 掌握字符数据的输入输出函数的用法putchar函数用于向显示器输出一个字符 一般格式是 putchar c 其中c可以是字符型或整型常量 变量或表达式 结果是向显示器输出其值对应的ASCII码字符 getchar函数用于从键盘输入缓冲区读取一个字符 一般格式是 getchar 一般用法 ch getchar 将从键盘输入的一个字符值赋给变量ch 从键盘输入的空格 回车等控制字符也作为有效字符读取 真题举例 10 下列程序运行时 若输入1abcedf2df输出结果为 includemain chara 0 ch while ch getchar n if a 2 0 1AbCdEf2dF 考点点拨 掌握格式化输出 输入函数的用法及注意事项printf 格式控制字符串 输出表列 scanf 格式控制字符串 输入地址表列 格式控制字符串 中允许有两类字符 普通字符 在printf函数中会原样输出 在scanf函数中要求原样输入 格式字符 由 格式字符 用于指定输出 输入项的格式 常用格式字符有 教材P74 表3 6 表3 7 P76 表3 8 表3 9 整数类型十进制有符号类型 d md md ld mld mld十进制无符号类型 u八进制无符号类型 o十六进制无符号类型 x X实数类型小数格式 f nf m nf m nf指数格式 e E简洁格式 g G 根据输出数据大小自动选择小数或指数格式 且不输出无意义的零 字符类型字符格式 c mc字符串格式 s ns m ns 考点点拨 掌握格式化输出 输入函数的用法及注意事项printf函数中的 输出表列 可以没有 若有 可以是常量 变量或表达式 将其值按对应的格式输出 若有多项 以逗号分开 其他说明见教材P75 scanf函数中的 地址表列 必须为变量的地址 多个地址之间以逗号分开 注意的问题见教材P76 77 真题举例 15 程序段 intx 12 doubley 3 141593 printf d 8 6f x y 的输出结果是 2009 3 A 123 141593B 123 141593C 12 3 141593D 123 1415930 16 若有定义语句 doublex y px py 执行了px C A 第4章选择结构 四 选择结构程序设计1 用if语句实现选择结构 2 用switch语句实现多分支选择结构 3 选择结构的嵌套 大纲要求重点 考点点拨 掌握三种if语句的执行过程if语句的功能是判断所给的条件 选择执行其中一个操作 if语句的一般形式if 表达式 语句1 else语句2 常用三种形式是单分支 双分支和多分支 祥见教材P89 表达式可以是任意类型的表达式 取其值的逻辑值 非零为真 零为假 if或else只能控制其后的一条语句 该语句可以是五大类语句中的任意一种 真题举例 18 有以下程序 includemain inta 1 b 0 if a b elseif a 0 if a b 2 elseb 3 printf d n b 程序运行后的输出结果是 2010 9 A 0B 1C 2D 3 18 有以下程序 includemain intx scanf d 程序运行时 输入的值在哪个范围才会有输出结果 2009 3 A 不等于10的整数B 大于3且不等10的整数C 大于3或等于10的整数D 小于3的整数 C A 考点点拨 掌握嵌套if语句的执行 及else与if的配对嵌套if指一般格式中if或else的控制语句又是if语句 注意if可以单独使用 而else必须和if配对使用 且else总是和它上面的最近的未曾配对的if进行配对 从而在配对的if后的条件为假时执行该else之后的语句 真题举例 27 有以下程序 includemain intx 1 y 0 if x y elseif x 0 if x y 2 elsey 3 printf d n y 程序运行后的输出结果是 2011 3 A 3B 2C 1D 0 D 考点点拨 switch语句的格式及其执行 跳转的过程switch语句又称开关语句 一般用于实现多分支选择 switch语句的一般形式及执行见教材P103 注意 switch后的表达式值的类型一般为整型或字符型case子句后的常量必须为简单的整型或字符型常量当执行完一个分支的执行语句后没有遇到break 将继续执行下一分支的执行语句switch语句可以嵌套 break在switch中的作用是跳出所在的switch语句 真题举例 18 以下选项中与if a 1 a b elsea 语句功能不同的switch语句是 2010 3 A switch a B switch a 1 case1 a b break case0 a b break default a case1 a C switch a D switch a 1 default a break case1 a b break case1 a b case0 a B 第5章循环结构 五 循环结构程序设计1 for循环结构 2 while和do while循环结构 3 continue语句和break语句 4 循环的嵌套 大纲要求重点 考点点拨 理解while循环的执行过程及应用while语句构成的循环称为 当型 循环 其一般形式是 while 表达式 语句表达式可以是C语言中任意类型的合法表达式 取其值的逻辑值 语句也可以是五大类语句任意之一 但只能控制其后的一条语句 循环体有可能一次也不执行 真题举例 20 有以下程序 includemain inta 1 b 2 while amain while getchar n 以下叙述中正确的是 2011 3 A 此while语句将无限循环B getchar 不可以出现在while语句的条件表达式中C 当执行此while语句时 只有按回车键程序才能继续执行D 当执行此while语句时 按任意键程序就能继续执行 B C 考点点拨 理解do while循环的执行过程及应用do while语句构成的循环称为 直到型 循环 其一般形式是 do语句while 表达式 其特点是先执行循环体再判断循环条件 循环体至少执行一次 注意while之后的分号不能少 真题举例 9 以下程序运行后的输出结果是 9 includemain inta 1 b 7 do b b 2 a b while b 1 printf d n a 5 考点点拨 理解for循环的执行过程及应用for语句的一般形式是 for 表达式1 表达式2 表达式3 语句for中的三个表达式可以是任意合法的C语言表达式 表达式1在进入循环的进修执行一次 一般是给循环变量赋初值 表达式2取其逻辑值作为循环条件 表达式3在执行循环体后才执行 一般是使循环条件趋于假的运算 三个表达式均可以省略 但分号不能省 真题举例 21 有以下程序 includesmain inta 1 b 2 for a 8 a b a a 2 printf d d n a b 程序运行后的输出结果是 2010 3 A 9 18B 8 11C 7 11D 10 14 D 考点点拨 理解循环嵌套的几种形式及执行过程循环体内又完整地包含了另一个循环 称循环嵌套 前三种循环语句可以相互嵌套 可多层嵌套 嵌套循环在执行时外循环执行一次内循环要执行一遍 书写上一般采用缩进形式 使程序层次分明 可读性强 真题举例 20 以下程序段中的变量已正确定义for i 0 i 4 i i for k l k 3 k printf 程序段的输出结果是 2009 3 A B C D D 考点点拨 掌握break和continue语句在循环体中的应用break语句的作用是退出所在的循环体 在循环体中使用可增加循环的出口 使循环更灵活 break只能用于switch或循环语句中 continue语句的作用是结束本层本次的循环 转去执行下一次的循环处理 continue语句只能用于循环体中 第6章数组 六 数组的定义和引用1 一维数组和二维数组的定义 初始化和数组元素的引用 2 字符串与字符数组 大纲要求重点 考点点拨 掌握一维数组的定义方式及初始化的定义形式一维数组的定义方式 数据类型数组名 常量表达式 常量表达式规定了数组元素的个数 或长度 整个数组所占字节数 类型长度 数组长度 常量表达式中可以包括整型常量和符号常量 在给全部元素赋初值时可以省略定义时的数组长度说明 一维数组初始化的一般形式 数据类型数组名 常量表达式 值0 值1 值2 初值的个数不能超过数组的长度 可以只给部分元素赋初值 未赋初值元素默认值为0 真题举例 28 若要定义一个具有5个元素的整型数组 以下错误的定义语句是 2010 9 A inta 5 0 B intb 0 0 0 0 0 C intc 2 3 D inti 5 d i D 考点点拨 掌握一维数组元素的引用形式一维数组元素的引用形式 数组名 下标表达式 下标表达式可以是整型的常量 变量或表达式 数组名代表数组内存空间的起始地址 不能企图用数组名引用全部数组元素 C语言规定 数组的下标从0开始 因其下标的有效范围为0 长度 1 C系统不会对数组的下标进行越界检查 在程序中一般用单重for循环控制元素下标引用所有元素 真题举例 29 有以下程序 includemain inta 5 1 2 3 4 5 b 5 0 2 1 3 0 i s 0 for i 0 i 5 i s s a b i printf d n s 程序运行后的输出结果是 2010 3 A 6B 10C 11D 15 C 考点点拨 掌握二维数组的定义方式及初始化的定义形式二维数组的定义方式 数据类型数组名 常量表达式1 常量表达式2 二维数组一般用于存储矩阵 常量表达式1为矩阵行数 常量表达式2为矩阵列数 二维数组元素在内存中是按行存放的 各元素在内存中所占的字节数 行数 列数 类型长度二维数组初始化的方法有 按行赋初值按元素排列顺序赋初值部分元素赋值全部元素赋值可省略常量表达式1的说明 省略的长度由初始值个数确定 真题举例 26 以下定义数组的语句中错误的是 2011 9 A intnum 1 2 3 4 5 6 B intnum 3 1 2 3 4 5 6 C intnum 2 4 1 2 3 4 5 6 D intnum 4 1 2 3 4 5 6 C 考点点拨 掌握二维数组元素的引用形式二维数组元素的引用形式 数组名 下标表达式1 下标表达式2 各维下标均从0开始 且为整数类型 不得越界 在程序中一般用双重for循环控制两维下标访问元素 若外循环控制行下标 内循环控制列下标则按行序访问元素 若外循环控制列下标 内循环控制行下标则按列序访问元素 真题举例 11 有以下程序 includemain inta 3 3 1 2 3 4 5 6 7 8 9 intb 3 0 i for i 0 i 3 i b i a i 2 a 2 i for i 0 i 3 i printf d b i printf n 程序运行后的结果是 2010 3 101418 考点点拨 掌握字符数组的定义及初始化形式在C语言中只有字符变量 没有字符串变量 通常用字符数组来存储字符串 一维数组存储一个字符串 二维数组中的一行存储一个字符串 字符数组的定义 chars1 80 s2 5 80 字符数组的存储同数值数组 区别在于每个元素都是一个字符变量 只分配一个字节存储空间 可以存储一个字符的ASCII码值 字符数组的初始化有两种形式 逐个字符赋初值 如 chars1 80 a b c d e 未赋初值元素默认 0 值用字符串赋初值 如 chars1 80 abcde s2 abcde 数组s1占80B 数组s2占6B 注意系统自动在字符串末尾加结束标记 0 二维字符数组赋初值 charss 4 80 abc abcde xyz 1234 一个字符串占一行 二维数组的定义中第一维大小决定了字符串的个数 第二维大小决定了各字符串的最大长度 真题举例 23 有以下程序 include includemain charx STRING x 0 0 x 1 0 x 2 0 printf d d n sizeof x strlen x 程序运行后的输出结果是 2010 9 A 61B 70C 63D 71 B 考点点拨 掌握字符数组 字符串 的输入输出方法字符数组 字符串 的输入 输出一般有以下三种方法 c字符格式 在printf或scanf函数中使用 其I O对象是单个元素 一般结合循环使用 s字符串格式 在printf或scanf函数中使用 其I O对象是数组名所代表的地址 一维数组名字代表它的存储空间的首地址 二维数组名带第一维下标代表所在行的首地址 可以整体输入 输出字符串 在scanf函数中接收以空格或回车结束的字符串 字符串处理函数gets或puts gets接收以回车结束的字符串 puts输出一个以 0 结束的字符串 且回车换行 其参数均为字符数组的名字 真题举例 34 有以下程序 二维字符数组 includemain charch 3 5 AAAA BBB CC printf s n ch 1 程序运行后的输出结果是 2011 9 A AAAAB CCC BBBCCD BBB D 考点点拨 掌握各常用的字符串处理函数的应用常用的字符串处理函数有 需包含string h头文件 教材P162 164 strcpy s1 s2 字符串拷贝函数 将s2中的内容复制到字符数组s1中去strncpy s1 s2 n 拷贝子串函数 将s2中的前n个字符拷贝到s1中strcat s1 s2 字符串连接函数 将s2连接在s1的末尾strcmp s1 s2 字符串比较函数 从左到右逐个字符比较两个字符串的大小strlen str 求字符函数串长度 求字符数组str中第一个 0 字符之前的字符个数 真题举例 31 下列选项中 能够满足 若字符串s1等于字符串s2 则执行ST 要求的是 2010 9 A if strcmp s2 s1 0 ST B if sl s2 ST C if strcpy sl s2 1 ST D if sl s2 0 ST A 第7章函数 七 函数1 库函数的正确调用 2 函数的定义方法 3 函数的类型和返回值 4 形式参数与实在参数 参数值传递 5 函数的正确调用 嵌套调用 递归调用 6 局部变量和全局变量 7 变量的存储类别 自动 静态 寄存器 外部 变量的作用域和生存期 大纲要求重点 考点点拨 理解函数在C语言中的功能 掌握如何调用库函数一个C程序有且仅有一个main函数 和若干个其他函数构成 主函数可以调用其他函数 其他函数可以相互调用 这些函数可以是库函数 也可以是用户自定义函数 函数之间可以相互调用 但各函数必须是相互独立的 一个函数并不属于其他函数 其他函数不能调用main函数 C系统提供了丰富的库函数 编程时可直接调用 使用库函数应注意 教材P384 389 1 函数功能2 函数参数的数目和顺序 及各参数意义和类型3 函数返回值意义和类型4 需要使用的包含文件 考点点拨 掌握函数定义的一般形式及注意事项函数定义的一般形式 返回值类型函数名 类型1形参1 类型2形参2 说明部分执行部分 函数名和形参名必须是合法的标识符函数可以没有返回值 可以定义为void类型 返回值若省略不写则默认为int型函数可以没有参数 即为无参函数函数可以没有函数体 即为空函数不能在函数体中定义另外一个函数 各函数之间是相互独立的 考点点拨 掌握函数声明的方法和声明时应该注意的问题在C语言中 用户自定义函数必须 先定义 后使用 如果调用在前定义在后 就必须在调用之前对函数进行声明 将该函数的有关信息通知编译器 函数声明的形式如下 返回值类型函数名 类型1 类型2 返回值类型函数名 类型1形参1 类型2形参2 函数定义在前 调用在后则不必对自定义函数进行声明 真题举例 12 请将以下程序中的函数声明语句补充完整 includeint 12 main intx y p scanf d d max inta intb 考点点拨 掌握形参和实参的概念及作用定义函数时 函数名后的参数称为形参 调用函数时 函数名后的参数称为实参 当在一个函数中调用另一个函数时 前者称主调函数 后者称被调函数 主调函数通过实参向被调函数的形参传递数据 说明 实参可以是常量 变量 表达式或函数 形参只能是变量实参和形参的类型一致或赋值兼容 个数必须相同 按顺序一一对应当函数被调用时 形参才分配内存空间 调用结束时 形参所占内存空间被释放实参对形参的数据传递是单向值传递 且在内存中 形参与实参占用的是不同的内存单元 因此形参的改变并不影响实参 真题举例 24 有以下程序 includevoidfun intp intd 2 p d printf d p main inta 1 fun a printf d n a 程序运行后的输出结果是 2009 9 A 32B 12C 21D 22 C 考点点拨 理解在函数调用时return语句的作用被调函数可以用return语句将函数值传递给主调函数 return语句形式 return表达式 或return 表达式 说明 当函数执行到return语句时 返回到它的主调函数的调用位置 并带回返回值 return后的表达式可以是常量 变量或表达式表达的类型若和函数定义中的返回值类型不相同 则系统自动转换为定义的类型 若无法转换 则赋值不兼容 若函数定义为void类型 则不能用return带回返回值 函数最后一个 起返回作用 函数中可以有多条return语句 但只执行其中一条 或都不执行 真题举例 24 以下关于return语句的叙述中正确的是 2010 3 A 一个自定义函数中必须有一条return语句B 一个自定义函数中可以根据不同情况设置多条return语句C 定义成void类型的函数中可以有带返回值的return语句D 没有return语句的自定义函数在执行结束时不能返回到调用处 B 考点点拨 掌握函数调用的基本形式及其语法要求函数调用的形式如下 函数名 实参表 说明 调用函数时 函数名必须与被调用的函数名完全相同 函数调用可以出现在允许表达式出现的任何地方函数调用可以作为一条独立的语句 此时最后的分号不能少 考点点拨 掌握函数嵌套调用与递归调用的方法及注意事项在被调用的函数中又调用另外一个函数 称 嵌套调用 函数直接或间接地调用自身 称 递归调用 可以将递归调用看做是嵌套调用的特殊形式采用递归方法求解一个问题时 该问题必须满足以下条件 可以把要求解的问题转化为新的问题 而且新问题的解法与原问题相同必须有一个明确的结束递归的条件函数递归调用时 系统利用堆栈将当前函数中的变量和形参暂时保存起来 再为新一轮函数调用中的形参和变量分配内存空间 嵌套或递归调用的返回原则是 先调用 后返回 真题举例 24 有以下程序 includeintf intx main intn 1 m m f f f n printf d n m intf intx returnx 2 程序运行后的输出结果是 2010 9 A 1B 2C 4D 8 35 有以下程序 includevoidfun intx if x 2 1 fun x 2 printf d x main fun 7 printf n 程序运行后的输出结果是 2010 9 A 137B 731C 73D 37 D D 考点点拨 掌握局部变量和全局变量的作用范围及特点在函数体内部或复合语句内部定义的变量称局部变量 其作用范围只在定义它的函数体或复合语句中 说明 形参也属于局部变量 作用域仅限于它所在的函数体 不同函数之间可以使用同名的局部变量 因其占用的内存空间不同 所以互不影响 在函数体外部定义的变量称为全局变量 其作用范围是从定义位置到源文件结束 说明 全局变量在整个程序执行期间占用固定的存储空间当全局变量和局部变量同名时 在局部变量的作用范围内同名的全局变量不起作用 考点点拨 掌握变量四种存储类型的声明和应用从变量生存期的角度 可以将变量分为静态存储和动态存储 静态存储是指在程序运行期间给变量分配固定的内存空间 动态存储是指在程序运行期间根据需要动态地进行内存空间分配 变量在程序运行过程中可以使用的存储位置有 动态存储区 静态存储区 CPU寄存器存储区 变量的存储类型指定变量的存储位置 共有四种存储类型 auto 自动型 在函数体内部使用 为该类型的变量分配在动态存储区 其特点是进入其作用范围时分配存储空间 退出其作用范围时释放为其分配的存储空间 在函数体内部未指定变量存储类型时默认为auto型 该类型变量若赋初值 则每次使用时重新赋初值 若不赋初值 则为随机值 static 静态型 可以在函数体内部或外部使用 为该类型的变量分配在静态存储区 其特点是在整个程序运行期间占用固定的存储空间 若赋初值则只在第一次使用的时候赋初值一次 若不赋初值 则默认为0 在函数内部定义称静态局部变量 其生存期全局 作用域局部 该类型变量具有继承性 即多次使用时后一次继承前一次使用的结果值 在函数外部定义称静态全局变量 其特点同全局变量 区别在于仅限本文件使用 考点点拨 掌握变量四种存储类型的声明和应用register 寄存器型 其特点同auto型变量 区别是在CPU寄存器中分配存储空间 仅限数据类型为整型 字符型或指针类型且使用频繁的变量extern 外部型 引用性声明 此种类型只针对全局变量且不分配存储空间 作用是扩展已经在其他位置定义过的全局变量的作用范围到声明位置 真题举例 36 有以下程序 includeintfun staticintx 1 x 1 returnx main inti s 1 for i 1 i 5 i s fun printf d n s 程序运行后的输出结果是 2010 9 A 11B 21C 6D 120 B 第8章编译预处理 八 编译预处理1 宏定义和调用 不带参数的宏 带参数的宏 2 文件包含 处理 大纲要求重点 考点点拨 掌握不带参数宏的替换形式和特点不带参数宏的定义形式 define宏名宏体说明 宏名为合法标识符 为和普通变量区分 常用大写字母表示 在定义新宏时 可以引用已经定义过的宏 替换时层层替换 在字符串中若有与宏名相同的内容 不进行替换 宏替换时 只是将宏体简单替换掉宏名 不得随意增 减任何内容 宏计算的原则是 先替换 再计算 考点点拨 掌握带参数宏定义的替换形式及特点带参数宏的定义形式 define宏名 参数表 宏体说明 宏名与参数表的 之间不能有空格宏的参数表无类型 多个参数之间以逗号分隔引用带参宏时 实参可以是常量 变量或表达式 都以原样替换宏体中对应的形参 宏体中的其他内容原样书写 最后再计算替换后的表达式 千万不能将实参表达式计算后再替换 真题举例 35 以下程序 include defineSUB a a a main inta 2 b 3 c 5 d d SUB a b c printf d n d 程序运行后的结果是 2010 3 A 0B 12C 20D 10 C 35 有以下程序 include definef x x x xmain inta 3 s t s f a 1 t f a 1 printf d d n s t 程序运行后的输出结果是 2009 3 A 10 64B 10 10C 64 10D 64 64 A 考点点拨 理解文件包含的作用 形式及特点文件包含是指在一个文件中包含另一个文件的全部内容 文件包含有两种形式 include 在系统所在的标准目录中查找要包含的文件 include 文件名 在用户当前目录中查找要包含的文件 若没有再到标准目录中查找 第9章指针 九 指针1 地址与指针变量的概念 地址运算符与间址运算符 2 一维 二维数组和字符串的地址以及指向变量 数组 字符串 函数 结构体的指针变量的定义 通过指针引用以上各类型数据 3 用指针作函数参数 4 返回地址值的函数 5 指针数组 指向指针的指针 大纲要求重点 考点点拨 理解变量的地址和指针的概念 掌握指针变量的定义和赋值地址是内存空间某一字节的编号 变量的地址是指给变量在内存中分配的空间的起始地址编号 指针变量是专门存放变量地址的一种特殊变量 C语言允许可以用变量名直接访问所分配的内存空间 也可以通过指针变量间接访问所指向变量的内存空间 指针变量的定义形式 类型名 指针名1 指针名2 其中 1 类型名是指针变量可以指向的目标变量的类型 2 定义形式中的 仅为说明符 指针变量是其后的标识符 3 不管指针变量指向何种类型的变量 均给其分配一个存放地址的空间 一般为4B 指针变量只能存放地址 不能存放其他数据 如inti int p 让指针变量指向地址编号为0的单元 该单元不存放任何有意义的数据 考点点拨 掌握如何通过指针变量间接访问所指地址空间指针变量在运算时常用两个运算符 则 p i p i 真题举例 25 以下程序段完全正确的是 2010 9 A int p scanf d C c 考点点拨 掌握指针变量作函数参数传递和返回值的意义指针可以作为函数的形参 这样 函数调用时实际是将实参的地址传递给形参 即形参指针变量指向实参 这种传递方式叫地址值传递 地址值传递方式的特点是可以通过对形参指针变量的间接访问引用 改变实参变量的值 这样调用函数可以实现不用return而得到多个函数处理结果 在程序中广泛使用 真题举例 26 有以下程序 includevoidfun char c intd c c 1 d d 1 printf c c c d main charb a a A fun 程序运行后的输出结果是 2010 3 A b B b AB b B B AC a B B aD a B a B A 考点点拨 掌握指向一维数组 二维数组和字符数组的指针的应用一维数组的名字即是数组存储空间的首地址 或首元素地址 常量 可以用指针指向一维数组 如有inta 10 p p a 则a i a i p i p i 考点点拨 掌握数组的指针作函数参数特点和应用数组作函数参数有以下情况 数组元素作函数参数 同普通变量作函数参数 此时形参为普通变量 是单向普通值传递 最多由return带回一个返回值 一维数组名作函数参数 传递的是一维数组的首地址 此时形参为一级指针变量或同类型的一维数组 可以在被调函数中通过形参变量或数组名间接访问 改变所有的实参数组元素值 二维数组名作函数参数 传递的是二维数组的首行地址 此时形参为二级行指针变量或同类型二维数组 真题举例 23 下列语句中 正确的是 2010 3 A char s s Olympic B chars 7 s Olympic C char s s Olympic D chars 7 s Olympic 27 若有定义int pt 3 则下列说法正确的是 2010 3 A 定义了基类型为int的三个指针变量B 定义了基类型为int的具有三个元素的指针数组pt C 定义了一个名为 pt 具有三个元素的整型数组D 定义了一个名为pt的指针变量 它可以指向每行有三个整数元素的二维数组 28 设有定义doublea 10 s a 一下能够代表数组元素a 3 的是 2010 3 A s 3 B s 3 C s 3 D s 3 A D B 考点点拨 掌握指针数组的定义及其应用指针数组即数组中的每个元素均为指针的数组 其定义形式如下 类型名 数组名 数组长度 通常用指针数组处理二维数组或字符串数组 真题举例 26 有定义语句 int p 4 以下选项中与此语句等价的是 2010 9 A intp 4 B int p C int p 4 D int p 4 C 考点点拨 掌握命令行参数的个数 类型及意义主函数带参数称为命令行参数 因为没有函数能调用main函数 所以要从操作系统的命令行给其传参数 main函数带参数的形式 voidmain intargc char argv 其中 argc接收命令行中参数的个数 包括命令名 即可执行文件名 本身argv接收命令行中各参数字符串的首行地址 argv argv两个参数的名字可以变 但类型不能变 考点点拨 掌握指向函数的指针的定义及应用函数的指针及函数的入口地址 用函数名表示 指向函数的指针定义形式 返回值类型 指针变量名 参数类型1 参数类型2 只要函数的类型 参数个数和类型与指针变量定义中一致 就可以将函数的入口地址赋给该指针变量 如下 指针变量名 函数名 此时 可以通过指针变量间接调用所指向的函数 指针变量名 实参列表 指针变量名 实参列表 真题举例 33 设有以下函数 voidfun intn char s 则下面对函数指针的定义和赋值均正确的是 2009 9 A void pf pf fun B void pf pf fun C void pf pf fun D void pf int char pf A 考点点拨 掌握返回指针值的函数头定义形式及返回值表示返回指针值函数的函数头定义形式是 类型 函数名 形参列表 在这样的函数体中 用return带回的是一个和函数头上指定类型相同的指针 考点点拨 理解二级指针的定义 意义及使用一级指针变量存放普通变量的地址 二级指针变量存放一级指针变量的地址 以此类推 二级指针变量即为指向指针的指针 其定义形式如下 数据类型 指针变量名 若有inti p q p 则i p q i p q 考点点拨 理解malloc函数和free函数的作用库函数malloc是在程序运行过程中向内存申请存储空间 其调用形式是malloc size 其中 size必须是一个正整数 申请成功 函数的返回值是申请到存储空间的首地址 一般先强制类型转换后用程序中的某个指针变量接收 如 int p p int malloc sizeof int 10 由malloc函数申请到的存储空间不会因为函数执行结束而释放 若确定不用 可以使用free函数来释放 如free p 使用这两个库函数需要包含头文件 stdlib h或malloc h 真题举例 37 有以下程序 inctude includemain int a b c a b c int malloc sizeof int a 1 b 2 c 3 a b printf d d d n a b c 程序运行后的输出结果是 2010 9 A 3 3 3B 2 2 3C 1 2 3D 1 1 3 A 第10章结构体和共用体 十 结构体 即 结构 与共同体 即 联合 1 用typedef说明一个新类型 2 结构体和共用体类型数据的定义和成员的引用 3 通过结构体构成链表 单向链表的建立 结点数据的输出 删除与插入 大纲要求重点 考点点拨 理解结构体类型的声明及变量的定义声明结构体类型用关键字struct 形式如下 struct 结构体名 成员列表 其中 结构体名 是合法标识符 可以省略 成员列表 定义该类型中各成员的类型和名字 结构体类型定义只描述结构中各成员的组织形式 各成员并不占用内存空间 可以嵌套定义结构体类型 新定义的结构体类型为 struct结构体名 用已经定义的结构体类型定义变量 其形式为 struct结构体名变量名列表 也可以定义类型的同时定义变量或定义无名结构体变量 系统会在编译时为结构体变量分配内存空间 其字节数 类型中各成员所占字节数的总和 真题举例 36 下面结构体的定义语句中 错误的是 2009 9 A structord intx inty intz structorda B structord intx inty intz structorda C structord intx inty intz n D struct intx inty intz a B 考点点拨 掌握结构体变量的赋值和引用可以在定义结构体变量时按成员顺序给其赋初值 如 struct结构体名变量名 初值1 初值2 除了同类型结构体变量可以整体赋值外 其余只能通过成员运算符 逐个引用其成员 其形式为 结构体变量名 成员名结构体类型也可以定义数组或指针 如 structstudentstu stud 3 p p 因此 也可以通过结构体指针引用其指向变量的成员 stu age p age p age 真题举例 37 设有以下程序段structMP3 charname 20 charcolor floatprice std ptr ptr 若要引用结构体变量std中的color成员 写法错误的是 2012 3 A std colorB ptr colorC std colorD ptr color C 考点点拨 理解链表的结构特点及链表的建立 输出 插入 删除链表是一种动态存储结构 其基本构成单位称结点 其特点是通过结点中的指针来体现结点间的先后关系 结点中一般包含两部分数据 数据域和指针域 因其类型不同 所以用结构体类型组织 一般形式如下 structNODE intdata structNODE next 其中 数据域或指针域根据需要可以是多项成员 在单向链表中 指针成员next通常用来存放下一个结点的地址 链表的处理在机试题中有所涉及 近几次笔试题中没有考 考点点拨 了解共用体类型和变量的定义及引用方法共用体类型用关键字union定义 其形式同结构体类型共用体变量的定义和引用同结构体变量 区别在于 共用体变量分配的字节数 各成员所占字节数的最大值共用体变量不能在定义的时候赋初值共用体变量中各成员不能同时存在 某一时刻只能有一个成员起作用且是最后一次赋值的成员 考点点拨 了解typedef声明新类型的方法typedef声明新类型的形式如下 typedef类型名标识符其中 类型名是一种已经存在的类型 标识符是用户定义用作新类型的名称 定义后 使用新的 标识符 等价于原类型名 真题举例 39 若有以下语句typedefstructS intg charh T 以下叙述中正确的是 2010 9 A 可用S定义结构体变量B 可用T定义
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!