C语言程序设计考试辅导_第1页
C语言程序设计考试辅导_第2页
C语言程序设计考试辅导_第3页
C语言程序设计考试辅导_第4页
C语言程序设计考试辅导_第5页
已阅读5页,还剩242页未读 继续免费阅读

下载本文档

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

文档简介

程序设计基础 2011 信息学院 张宝森 考试大纲分析 六、考试形式及试卷结构 序号 项目名称 题数 计分 计划用时(分钟) 一 选择题 15 30 30 二 填空题 10(空) 10 15 三 算法分析题 2 10 15 四 程序填空题 3 20 20 五 程序设计题 3 30 40 合计 100分 120分钟 考试大纲分析 五、考试内容 (一)、 (二)、数据类型、运算符与表达式 (四)、选择结构程序设计 (五)、循环控制结构程序设计 (六)、数组的应用 (七)、函数的应用 (八)、指针的应用 (九)、结构体与共用体结构的应用 (十)、简单位运算的使用 (十一)、文件的基本概念和主要应用 算法 编程 基本 概念 复 习 汇 总 一、 1、 2、算法的基本概念和算法的主要描述方法 3、结构化程序的三种基本结构 4、 1、 ( 1)语言简洁、紧凑 ,使用方便、灵活。 32个 关键字 、 9种控制语句 ,程序形式自由 ( 2)运算符丰富。 34种运算符 ( 3)数据类型丰富 ,具有现代语言的各种数据结构。 ( 4)具有结构化的控制语句 ,是完全 模块化 和 结构化 的语言。 ( 5)语法限制不太严格 ,程序设计自由度大。 ( 6)允许直接访问物理地址 ,能进行位操作 ,能实现汇编语言的大部分功能 ,可直接对硬件进行操作。兼有高级和低级语言的特点 。 ( 7)目标代码质量高 ,程序执行效率高。只比汇编程序生成的目标代码效率低 10 ( 8)程序可移植性好 (与汇编语言比 )。基本上不做修改就能用于各种型号的计算机和各种操作系统。 要弄懂 什么是算法 广义:操作步骤;狭义:求一个数据的方法 模块化:最小程序单位 函数 结构化:顺序、分支、循环 编辑、编译、连接、执行 模块化 和 结构化 模块化 个 。 结构化 函数 )由三种语句结构组成: 顺序语句 分支语句 循环语句 每个 例题 1. 编译程序的作用之一是: (2007) A)将高级语言程序翻译成可执行程序 B)发现源程序中的逻辑错误 C)发现源程序中的语法错误 D)纠正源程序中的语法错误 2. 修改高级语言编写的源程序使用的是( 2007) A)编辑程序 B)解释程序 C)编译程序 D)链接程序 3. 以下关于 ( 2009 ) A) B) C) D) 分号是 4结构化程序由三种基本结构组成,它们是 【 1】 结构、 【 2】 结构、和 【 3】 结构。 ( 2005) 5. 以下不能用于描述算法的是( 2009 ) A) B)传统流程图 C) 自然语言 D) 6. 传统流程图的判断框有 【 1】 个入口, 【 2】 个出口。 (1、 2) 7. 关于注释,不正确的说法是: A) 注释可以放在程序的任何地方 B) * ”和“ */”括住的任意字符列。 C) 程序编译时,注释不参与编译,也不会出现在目标程序中。 D) 当注释由“ /*” 文字组成时,注释内容仅为 8. 标识符 程序中各种对象的名字。 语言规定 标识符 只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 第一个字符 其它字符 字母或下划线 字母、数字和下划线 姓 名 大小写不同是不同的标识符 A和 a, _ a、 对象 )。 合法的用户标识符:按规则且除去关键字的标识符。 关键字 意义 关键字 意义 储类别为自动变量 数类型 止 整数类型 存器类型 符类型 数返回 量 “不变的 ” 类型 整数类型 止循环的当次运行 符号的类型 类型、变量等的字节数 环语句之一,需 储类别为静态的 精度实数类型 构体类型 路分支语句,需 举类型 型别名定义 明函数、变量为外部的 用体类型 精度实数类型 符号类型 环语句之一 空 ” (无)类型 向语句,需要标号配合 可变的 ” 类型 据条件的分支语句 环语句之一 关键字和标识符易于出题 下列四个选项中哪个不是关键字 A) B) C) D) 下列四个选项中哪个是关键字 A) _ B) C) D) 下列四个选项中哪个是正确的标识符 A) B) C) D) 下列四个选项中哪个不是正确的标识符 A) 1 B) _ C) D) _2题 下列四组选项中,均不是 A) B) C) D) F go 下面四组选项中, 均是不合法的用户标识符 的选项是: (都不是合法的标识符 ) A) A B) C) D) _123 1 _A 题 以下说法 正确 的是: A) B) C) D) 以下说法 错误 的是: A) B) C) 任何 D) 习题 1. 】 。 2. 一个 】 。 3. 】 和 【 】 构成。 4. 结构化程序设计主要由 【 】 、【 】 和 【 】 语句结构构成。 函数 主函数 /* */ 顺序语句 分支语句 循环语句 其它知识 表达式 +分号 分号是语句的一部分; 空语句 :单独的分号 是一个合法的函数 ,但是什么也不做。 ) 4. 函数的组成 : 函数体 : 花括号内的部分。若一个函数有多个花括号 ,则最外层的一对花括号为函数体的范围。 x, y) z; (xy) z=x; z=y; z); 函数的首部 函数体 声明语句部分 执行语句部分 例题 1. 函数的组成包括: 【 返回值类型 】 、 【 函数名 】 、 【 函数参数 】【 函数体 】 。 2. 函数体包括: 【 变量等说明语句 】 、 【 可执行语句 】 两部分。 3. 函数原型由 【 函数头 】 和 【 分号 】 组成。 4. 空函数是 【 函数体没有任何语句或只包含空语句 】 那样的函数。 编辑、调试、运行 由 编译 】 和【 链接 】 。 编译的任务是:进行语法检查,无错是生成目标 (件。 链接的任务是:连接系统函数、形成可执行程序 (件。 编辑 编译 链接 算法的基本概念和主要描述方法 一个程序应包括两个方面的内容: 对数据组织的描述: 数据结构 (对操作步骤的描述: 算法 (数据结构 + 算法 = 程序 所谓 “ 算法 ” ,是为解决一个问题而采取的方法和步骤。 1001 方法 1: 0+1,+2, +3, +4,一直加到 100 加 100次 方法 2: (0+100)+(1+99)+(2+98)+(49 +51)+50 = 100 50 + 50 +2+3+ +(100) i,s=0,n; %d”,&n); i=1;i x,y); /* 对被调用函数 */ ) /* 主函数 */ a, b, c; /*定义变量 a、 b、 c */ d, d,&a,&b); /* 输入变量 a和 (a,b); /*调用 将得到的值赋给 c */ dn,c); /* 输出 x, y) /* 求 2个数中较大者 */ z; (xy) z=x; z=y; z); xy ? x : y; 算法的特性 有穷性: 包含有限的操作步骤 确定性: 算法中的每一个步骤都应当是确定的 有零个或多个输入: 输入是指在执行算法时需要从外界取得必要的信息 有一个或多个输出: 算法的目的是为了求解, “ 解 ” 就是输出 有效性: 算法中的每一个步骤都应当能有效地执行,并得到确定的结果 可以用不同的方法表示算法,常用的有: 自然语言 伪代码 传统流程图 结构化流程图 用传统流程图表示算法 A 起止框 判断框 处理框 输入 /输出框 注释框 流向线 连接点 开始 结束 输入 n 计算 股定理 A 真 条件 假 A 1入 2出 将求 n!的算法用传统流程图表示 开 始 输入 n 0 ? i =1 i i = i+1 in ? 输出 束 输出 “ 输入有误 ” N N Y Y 给 i 赋值为 1 计 算 n!的传统流程图 优点: 用流程线指出各框的执行顺序 缺点: 毫不受限制地使流程随意地转向,使流程图变得毫无规律 循环结构不明显。 in i i = i+1 真 假 三种基本结构 顺序结构、选择结构、循环结构 用这三种基本结构作为表示一个良好算法的基本单元。 顺序结构 选择结构 循环结构 表达式 语句 真 假 表达式 语句 真 假 先判断,后执行 可能一次都不执行循环体 先执行,后判断 至少执行一次循环体 总结 (1)只有一个入口; (2)只有一个出口;( 请注意: 一个菱形判断框有两个出口,而 一个选择结构只有一个出口 。不要将菱形框的出口和选(3)结构内的每一部分都有机会被执行到; (4)结构内不存在 “ 死循环 ” (无终止的循环 )。 (1)顺序结构 (2)选择结构 当 A (3)循环结构 判断闰年 4的倍数 整百的倍数中挑出400的倍数 用 n!的算法 流程图阅读 功能? 当 i a,b; a=32767; b=a+1; %d,%dn”,a,b); 浮点型数据 浮点型常量 两种表示形式 都是 小数: 数: 3 、 意 : 字母 e(或 E)之前必须有数字,且 P 1 e 浮点型变量 分类: 浮点型变量分为单精度( 双精度( 长双精度型( 类形式。 类型 位数 数的范围 有效数字 32 10 1038 67 位 64 100308 1516位 128 1004932 1819位 字符型数据 字符常量 用单引号包含的一个字符是字符型常量 (只能包含一个字符 ) a,A, 1 P “ a” O 转义字符 : 以 “ ”开头、后跟专用特殊字符。 n 换行 t 横向跳格 r 回车 反斜杠 到 3位八进制数字 到 2位十六进制数字 字符变量 a, b; 字符例题 例 字符变量赋以整数。 # c1,7; 8; %c %cn”,c1, %d %dn”,c1, y; z; %c %cn”,c1, %d %dn”,c1, 35; 121; %c %cn”,c1, %d %dn”,c1, 例 小写字母的转换 # c1, a; /* A+32 32 */ b; c1=c2= c c , c1, 字符串常量 一对双撇号括起来的字符序列 如: “ do , “ “ a” , “ $又如: do ); 规定:在每一个字符串常量的结尾加一个 “ 字符串结束标志 ” ,以便系统据此判断字符串是否结束。规定以字符 作为字符串结束标志。 字符串存储 字符数组: s20= “do ; 字符指针: p= “do ; 字符串与字符区别 不合法 “” 合法,空字符串,占 1字节 空格字符 “ ” 仅有空格字符的字符串,占 2字节 a字母 “ a”仅有 2字节 非法 “ 含有 占 4字节 习题 下面不正确的字符串常量是 A) B) ”1212” C) “0” D) “ ” 下面四组选项中,均是正确的八进制或十六进制数的选项是: A) B) 0 C) 0010 D) 0 011 0 0 下面四组选项中,均是合法转义字符的选项是: A) B) C) 018 D) 0 017 f 101 n “ 下面四组选项中,均是合法整型常量的选项是: A) 160 B) C) D) 0 01a 986,012 211 0 0668 0x 习题 在 本数据类型除了单精度和双精度类型外,还有 【 。 在 4 】 字节, 8 】 字节。 5、变量的 初值 问题 定义变量时同时赋值。 # ,171; 1=32987,252352L; a,b; d d dn , a1,a2, ldn , f fn , f1, fn , d1, c dn , c1, 不是初值问题 a; a=100; 6、各类数值型数据间的混合运算 隐式转换 (自动转换 ) 整型: 点型: 型 +浮点型 = 强制转换 (类型 ) 表达式 (= 3 (3+2) = (= 、算术运算符、赋值运算符、逗号运算符 及其表达式的运用 的运算符有以下几类: (1)算术运算符 ( + - * / % ) (2)关系运算符 ( ! ) (3)逻辑运算符 ( ! | ) (4)位运算符 ( | ) (5)赋值运算符 ( += -= /= *= %= | ) (自增自减运算符 ) + 6)条件运算符 ( ?: ) (7)逗号运算符 ( ,) (8)求字节数运算符( ) ) (9)强制类型转换运算符( (类型) ) (10)指针运算符 ( * ) (11)分量运算符( - ) (12)下标运算符( ) (13)其他 (如函数调用运算符 () ) 后面讲解 习题 若有代数式 ,则不正确的表达式是: A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3 以下符合 A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e,e+,d+9 D) d=9+e+=d+7 在 求运算数必须是整型的运算符是: A) / B) + C) != D) % 若有代数式 ,则正确的表达式是: A) y,x)+y) B) y,x)+y) C) x,y)+y) D) x,y)+y) 0x 习题 若有定义: a=7; x=2.5,y= 则表达式 x+a%3*(x+y)%2/4的值是: A) B) C) D) 设 n=m; 则以下能实现将 三位进行四舍五入运算的表达式是: A) n=(n*100+ B) m= n*100+0.5,n=m/) n=n*100+ D) n=(n/100+ 若有定义: k=7,x=12;则值为 3的表达式是: A) x%=(k%=5) B) x%=() C) x%= D) (x%=k)-(k%=5) 若有定义: w;x;y z;,则表达式 w*x+ A) B) C) D) 题 %d,%d,%d”,a,b,c); 与 %d,%d,%d”,(a,b,c),b,c);的区别 若 x=5,n=5;,则计算表达式 x+=n+后, x、 10 】 和 【 6 】 。 若 a=6;,则计算表达式 a+=a-=a* 。 若 a; ,则表达式 (a=4*5,a*2),a+6的值是 【 26 】 。 三、简单的 1、表达式语句,空语句,复合语句的应用 2、赋值语句的含义和使用 3、输入 /输出函数的基本格式和使用 全局数据 类型声明 函数声明 源程序文件 1 源程序文件 2 源程序文件 n 预处理命令 函数 n 函数 1 数据声明 函数首部 函数体 数据声明 执行语句 1、表达式语句,空语句,复合语句的应用 表达式语句: 表达式 加 分号 赋值语句: 赋值表达式 ; a=3*2; +i; 函数调用语句:函数( 实参 ) ; A C ); f=x,y)+y); 赋值语句 空语句: 只有一个分号的语句 ; 复合语句:用一对 括起来的语句。 z=x+y; t=z/100; %f”,t); 控制语句(分支、循环) 函数调用语句 表达式语句 空语句 复合语句 类 顺序语句 用作 空语句用作 标号语句 或循环体 ; + t=a; 正确? a 100 例 入三角形的三边长,求三角形面积 假设:三个边长 a, b, 已知面积公式: s=(a+b+c)* s*( c)b ) ( ( s S# a,b,c,s,%f,%f,%f,&a,&b,&c); s=*(a+b+c); s*(; a=% b=% c=% s=%n”,a,b,c,s); n”, 数学函数库 , 因为要用到其中的3、输入 /输出函数的基本格式和使用 字符输入函数 : 格式输入函数 : 字符串输入函数 : 字符输出函数 : 格式输出函数 : 字数穿输出函数 : c=; ; %d%f”,&n,&g); %f%c%d”,&n,&g,&m); /*/ %s%d”,s,&h); /*s80;*/ s=; %d%fn”,n,g); s); 格式化 输入输出 格式控制 %d 以带符号的十进制形式输出整数 %o 以八进制无符号形式输出整数 %x 以十六进制无符号形式输出整数 %u 以无符号十进制形式输出整数 %c 以字符形式输出,只输出一个字符 %s 输出字符串 %f 以小数形式输出单,双精度数,隐含输出六位小数 %小数形式输入双精度数 %e 以指数形式输出实数 %g 选用 %输出无意义的 0 标志 (%与控制符之间 ) 标志 意义 默认 左对齐 右对齐 + 带有正负符号 默认只有负数是带符号 0 填充 0 不填充 空格 有符号数加一个前缀空格 无空格 . # 对于八进制、十六进制格式带有相应的 0, 0x, X. 不带有 . 当用于 e, E,或 强迫使用 十进制小数点。 只有小数时才有 当使用 格式时,将强迫使用 十进制小数点。,且避免使用过多的 0 输入输出 %入宽度为 定输出的数据共占列,其中有位小数。如果数值长度小于,则左端补空格。 a; s100; %20s%d”,s,&a); /*数据分隔还是空格,空格前有多少就算多少,不一定要满足 20个 */ 输入: 56d=%n”,d); 例 键盘输入一个大写字母,要求改用小写字母输出。 # c1,c1=; %c,%dn,c1, c2=2; %c,%dn,c2, 习题 已有如下定义,若要求给 0, 20, ,当从第 1列开始输入数据时,正确的输入方式是 _.(注意: 表示回车, 表示空格 ) a1,a2;c1,%d%c%d%c”,& A) 10A 20B B) 10 A 20 B C) 10 D) 10 B 以下程序输出的结果是: _。 (注意: 表示空格 ) n*15s*”,”; n*,”; A) * * B) * * * *s2= C) * D) * *s2= * 默认右对齐 习题 若 a、 以下语句的功能是 【 交换数据 】 。 a+=b; b=a-=b; 以下程序的输出结果是 :_。 # a=252; a=%o a=%#on,a,a); a=%x a=%#xn,a,a); 有一输入函数 %d”,k);,则不能是 f 】 和 【 & 】 。 a=374 a=0374 a=a=0、选择结构程序设计 1、关系运算、逻辑运算的运用 2、用 3、用 4、选择结构嵌套的应用 1、关系运算、逻辑运算的运用 关系运算符及其优先次序 (大于 ) = (大于或等于 ) = (等于 ) != (不等于 ) 逻辑运算符及其优先次序 ! (逻辑非 ) & (逻辑与 ) | (逻辑或 ) 关系表达式和逻辑表达式的运算结果为 1或 0(真或假 )。 算术表达式和赋值表达式的运算结果为非 0或 0(真或假 )。 优先级: ! */%+- = 0|x=5,其等价的逻辑表达式为: x5|x=5。 对数学式子 |x|& 者 !(x=5 | x=5 的反命题逻辑表达式为: x=0,又要满足 x=0 & 】 。 (!x) 逻辑表达式的“短路”问题 在计算复杂的逻辑关系表达式时,如果前面部分表达式已经能够决定整个表达式的逻辑结果,则后面的表达式不再计算 这就是所谓的“短路”。 如: x=1 | y5 若 ,则 x=1为真,则整个表达式已经为真,不再计算 y5这个表达式了 “或 ”关系 x=1 & y5 若 ,则 x=1为假,则整个表达式不可能为真,不再计算 y5这个表达式了 “与 ”关系 讨厌的用法: x5 & (y=2*x) (x=3) | (y=7) 2、用 分支结构就是选择结构,根据条件的真假,执行程序的不同部分,走不同的线路。 (1) 表达式 ) 语句 (2) 达式 ) 语句 1 语句 2 表达式 语句 真(非 0) 假 ( 0) 条件 语句 1 语句 2 Y N (3)达式 1)语句 1 达式 2)语句 2 达式 m)语句 m 语句 n 例 入两个实数,按代数值由小到大的顺序输出这两个数。 # a,b,t; %f%f”,&a,&b); if(ab) t=a; a=b; b=t; %n”,a,b); # a,b,t; %f%f”,&a,&b); if(a ) a,b,c,t; %f,%f,%f”,&a,&b,&c); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; %n”,a,b,c); 条件运算符 (? :) 表达式 : 表达式?表达式 表达式 语句:表达式?表达式 表达式; 例 别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。 # ) %c,& A& A& ch 本程序实现百分制成绩到 5分制成绩的转换。 n); 请输入百分制成绩: n); %d,& 0) 0: : 恭喜!你的评价是:优秀 ); : 不错!你的评价是:良好 ); : 还行!你的评价是:中等 ); : 好悬!你的评价是:及格 ); : : : : : : 完了!你的评价是:不及格 ); n); 4、选择结构嵌套的应用 定要有 达式 1) 达式 2) 语句 1 语句 2 达式 3) 语句 3 语句 4 语句 1 语句 2 达式 1) 达式 2) 语句 1 达式 3) 语句 3 语句 4 多表达式 多分支 例 算分段函数 (算法 1: 输入 x 若 y=1 否则 y=0 输出 y # x,y; %d”,&x); 程序段 x=%d,y=%dn”,x,y); 程序段 上例中的程序段有四个,请判断哪个是正确的? (程序 A: if(x=0) if(x0) y=1; y=0; y=程序 C: y=if(x!=0) if(x0) y=1; y=0; 程序 D: y=0; if(x=0) if(x0) y=1; y=闰年的 =0&00!=0|00=0 为真时, if(=0) if(00!=0) ; if(00=0) 1; 0; if(00=0) 1; if(=0) if(00!=0) ; 0; if(00=0) 1; if(00!=0) if(=0) ; 0; 0; 一元二次方程 bx+c=0的求解。 真真 假d e l t a = - d e l t 不 等 实 根 输 出 相 等 实 根 输 出 共 轭 复 根计算两个不等实根d e l t a = = 0计 算 两 个相 等 实 根图 求 解 一 元 二 次 方 程 的 流 程 图输 入 方 程 的 参 数 a b cd e l t a = b * b - 4 * a * cd e l t a 0假# ) a,b,c,x1,x2,本程序求解一元二次方程 n); 请输入一元二次方程的三个参数:n); %f%f%f,&a,&b,&c); if(a!=0) b*a*c; if() -b+(2*a); (2*a); 方程的两个不等实根为:n,x1, if(=1)&(x=200)&(x=1)|(x=200)|(x=1)&(x=200)&(x=1)|(x=200)|(x=A)&(A)&(A )ch=y&x!=y); B) if(x=y) x+=y; C) if(x!=y) %d”,&x) %d”,&y); D) if(z=x;x=y;y=z; A) x=10,y=20,z=30 B) x=20,y=30,z=30 C) x=20,y=30,z=10 D) x=20,y=30,z=20 若 w=1,x=2,y=3,z=4,则条件表达式 CA| 0 】 。 条件“ 22&x=a&v&以下程序运行结果是 【 。 x,y; r; %f%f%c”,&x,&y,& +: r=x+y; -: r=*: r=x*y; /: r=x/y; %fn”,r); 编程题 交换并且输出 2或 3个数据(按大小次序)。 分段函数计算 等级分数 闰年判断 倍数(除尽) 条件表达式 自增减运算 五、循环控制结构程序设计 1、 环结构的使用 2、 3、 4、循环嵌套的应用 1、 环结构的使用 一般形式 : 达式 1;表达

温馨提示

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

评论

0/150

提交评论