C语言程序设计考试辅导(1).ppt
《C语言程序设计考试辅导(1).ppt》由会员分享,可在线阅读,更多相关《C语言程序设计考试辅导(1).ppt(247页珍藏版)》请在三一办公上搜索。
1、程序设计基础,C语言程序设计考试辅导2011信息学院 张宝森,考试大纲分析,六、考试形式及试卷结构,考试大纲分析,五、考试内容(一)、C语言概述与基本概念(二)、数据类型、运算符与表达式(四)、选择结构程序设计(五)、循环控制结构程序设计(六)、数组的应用(七)、函数的应用(八)、指针的应用(九)、结构体与共用体结构的应用(十)、简单位运算的使用(十一)、文件的基本概念和主要应用,算法编程,基本概念,复 习 汇 总,一、C语言概述与基本概念,1、C语言的主要特点2、算法的基本概念和算法的主要描述方法3、结构化程序的三种基本结构4、C语言程序的主要调试及运行步骤,1、C语言的主要特点,(1)语言
2、简洁、紧凑,使用方便、灵活。32个关键字、9种控制语句,程序形式自由(2)运算符丰富。34种运算符(3)数据类型丰富,具有现代语言的各种数据结构。(4)具有结构化的控制语句,是完全模块化和结构化的语言。(5)语法限制不太严格,程序设计自由度大。(6)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作。兼有高级和低级语言的特点。(7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10-20%。(8)程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。,要弄懂,什么是算法广义:操作步骤;狭义:求一个数据的方法C语
3、言程序组成模块化:最小程序单位函数结构化:顺序、分支、循环编辑、编译、连接、执行,模块化和结构化,模块化C程序由函数组成。每个C程序必须有一个主函数main()。结构化C程序(函数)由三种语句结构组成:顺序语句 分支语句 循环语句每个C语句以分号结束。,例题,1.编译程序的作用之一是:(2007)A)将高级语言程序翻译成可执行程序B)发现源程序中的逻辑错误C)发现源程序中的语法错误D)纠正源程序中的语法错误2.修改高级语言编写的源程序使用的是(2007)A)编辑程序 B)解释程序 C)编译程序 D)链接程序3.以下关于C程序组成特点的叙述中错误的是(2009)A)C程序的基本组成单位是函数B)
4、C语言不允许在函数中定义函数C)C语言不允许在一行内写多条语句D)分号是C语句的组成部分4结构化程序由三种基本结构组成,它们是【1】结构、【2】结构、和【3】结构。(2005),5.以下不能用于描述算法的是(2009)A)N-S图 B)传统流程图 C)自然语言 D)E-R图6.传统流程图的判断框有【1】个入口,【2】个出口。(1、2)7.关于注释,不正确的说法是:A)注释可以放在程序的任何地方B)C语言的注释是用“/*”和“*/”括住的任意字符列。C)程序编译时,注释不参与编译,也不会出现在目标程序中。D)当注释由“/*text/*sending*/”文字组成时,注释内容仅为sending8.
5、,标识符,程序中各种对象的名字。语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。,大小写不同是不同的标识符,A和a,_ A和_a、ab和AB是不同的标识符(对象)。合法的用户标识符:按规则且除去关键字的标识符。,main主函数不是关键字,关键字和标识符易于出题,下列四个选项中哪个不是关键字 A)while B)switch C)Return D)goto 下列四个选项中哪个是关键字 A)_while B)switch1 C)Return D)goto 下列四个选项中哪个是正确的标识符 A)while B)switch C)Return D)goto 下列四个
6、选项中哪个不是正确的标识符 A)1while B)_switch C)Return D)_2goto,习题,下列四组选项中,均不是C语言关键字的是:A)define B)getc C)include D)while IF char scanf go type printf case pow下面四组选项中,均是不合法的用户标识符的选项是:(都不是合法的标识符)A)A B)float C)b-a D)_123 P_0 1a0 goto temp do _A int INT,例题,以下说法正确的是:A)C程序由define和主函数组成 B)C程序由include和主函数组成 C)C程序只由主函数组成
7、 D)C程序由主函数和其他函数组成以下说法错误的是:A)C程序可以包含多个函数。B)C程序由include命令和主函数组成。C)任何C程序都有一个主函数。D)C程序由主函数和其他函数组成。,习题,1.C源程序的基本单位是【】。2.一个C源程序至少包含一个【】。3.C源程序的注释由【】和【】构成。4.结构化程序设计主要由【】、【】和【】语句结构构成。,函数,主函数,/*,*/,顺序语句,分支语句,循环语句,其它知识,1.语句:表达式+分号 分号是语句的一部分;空语句:单独的分号2.函数原型 int max(int,int);3.空函数:是一个合法的函数,但是什么也不做。void dump()4.
8、函数的组成:函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。,例题,函数的组成包括:【返回值类型】、【函数名】、【函数参数】【函数体】。函数体包括:【变量等说明语句】、【可执行语句】两部分。函数原型由【函数头】和【分号】组成。空函数是【函数体没有任何语句或只包含空语句】那样的函数。,编辑、调试、运行 由C源程序建立可执行程序要经过的步骤是【编译】和【链接】。编译的任务是:进行语法检查,无错是生成目标(.obj)文件。链接的任务是:连接系统函数、形成可执行程序(.exe)文件。,算法的基本概念和主要描述方法,一个程序应包括两个方面的内容:对数据组织的描述:数据
9、结构(data structure)对操作步骤的描述:算法(algorithm)数据结构+算法=程序所谓“算法”,是为解决一个问题而采取的方法和步骤。,例:求,方法1:0+1,+2,+3,+4,一直加到100 加100次方法2:(0+100)+(1+99)+(2+98)+(49+51)+50=10050+50,求1+2+3+(100),int i,s=0,n;scanf(“%d”,s=100*50+50;,通用方法。,由人们事先推导公式。,计算机算法可分为两大类别:数值算法:求数值解,例如求方程的根、求函数的定积分等。非数值算法:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事
10、管理、行车调度管理等。,求135n(即n!),定义变量s、i、n。S1:输入nS2:s=1S3:对于i从1-n s=s*iS4:输出s,void main()int s、i、n;scanf(“%d”,例1.3 求2个数中较大者。,#include int max(int x,int y);/*对被调用函数max的声明*/void main()/*主函数*/int a,b,c;/*定义变量a、b、c*/scanf(d,d,/*输出c的值*/,int max(int x,int y)/*求2个数中较大者*/int z;if(xy)z=x;else z=y;return(z);,return xy?
11、x:y;,算法的特性,有穷性:包含有限的操作步骤确定性:算法中的每一个步骤都应当是确定的 有零个或多个输入:输入是指在执行算法时需要从外界取得必要的信息 有一个或多个输出:算法的目的是为了求解,“解”就是输出 有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果 可以用不同的方法表示算法,常用的有:自然语言伪代码传统流程图结构化流程图,用传统流程图表示算法,1入2出,将求n!的算法用传统流程图表示,优点:用流程线指出各框的执行顺序缺点:毫不受限制地使流程随意地转向,使流程图变得毫无规律循环结构不明显。,三种基本结构,Bohra和Jacopini提出了以下三种基本结构:顺序结构、选择结
12、构、循环结构用这三种基本结构作为表示一个良好算法的基本单元。,顺序结构,选择结构,循环结构,先判断,后执行可能一次都不执行循环体,先执行,后判断至少执行一次循环体,总结,(1)只有一个入口;(2)只有一个出口;(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。)(3)结构内的每一部分都有机会被执行到;(4)结构内不存在“死循环”(无终止的循环)。,N-S流程图,(1)顺序结构,(2)选择结构,(3)循环结构,NS流程图举例,判断闰年,4的倍数,整百的倍数中挑出400的倍数,用N-S图表示求n!的算法,流程图阅读,功能?,如何阅读程序?,当i
13、=sqrt(n),void main()int n,i,w,r;scanf(“%d”,画出程序中的变量模拟运行,逐条执行,逐一填写变量的值输入不同数据,反复运行,模块设计的方法,模块化设计的思想实际上是一种“分而治之”的思想,把一个大任务分为若干个子任务,每一个子任务就相对简单了。在拿到一个程序模块以后,根据程序模块的功能将它划分为若干个子模块,如果这些子模块的规模还嫌大,还再可以划分为更小的模块。这个过程采用自顶向下方法来实现。子模块一般不超过50行划分子模块时应注意模块的独立性,即:使一个模块完成一项功能,耦合性愈少愈好。,(二)、数据类型、运算符与表达式,1、十进制与十六进制及八进制数之
14、间的数制转换2、变量和常量的定义与使用3、数据类型(基本类型,构造类型,指针类型,空类型)的概念及定义4、整型、实型、字符型数据的定义、存储、表示范围及运用5、变量赋初值6、不同类型数据间的转换与运算7、算术运算符、赋值运算符、逗号运算符及其表达式的运用,1、十进制与十六进制、八进制数之间的数制转换,转换的基础二进制,八进制数不会出现大于7的数字,1、十进制与十六进制及八进制数之间的数制转换,10进制转X进制原则:10进制数A,欲转成X进制,A除以X的商B和余数R,取余数R,在用B除以X,再取余,直至商为0,所得余数序列的反序,则为X进制数。例如,求117的二进制数:,反序后1110101结果
15、,二进制与八进制、十六进制转换,28:右起3位一段 1110101 1 6 5八进制任何位不会超过782:一位扩展3位 1 6 5 001110101,216:右起4位一段十六进制任何位不会超过f162:一位扩展4位,C语言的数制,书写方法:默认10进制8进制:以数字0开头:027516进制:以0 x开头:0 x3a5b如:int x=0123;int y=0 xa72f;unsigned long b=0123+0 x3ab5;输入方法:(需要格式控制符的配合)同上,也可不加引导头如:int a,b,c;scanf(“%d%o%x”,10、2、8、16进制数对照表,例题,下列4个数中哪个最大
16、?A)151 B)(172)8 C)(1101110)2 D)(1a2)16 按八进制输入数据的方法是:A)scanf(“%0 x”,2、变量和常量的定义与使用,(1)常量和符号常量在程序运行过程中,其值不能被改变的量称为常量常量区分为不同的类型:符号常量宏#define PRICE 30常量 const double PI 3.1415926(2)变量所有用到的变量都必须在程序中定义 变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值,类型 标识符,整型常量 100,125,0(默认int),-100L实型常量 3.14,0.125(默认double),-3.789f
17、字符型常量 a,b,2 不合法字符串型常量“a”,“ab”,”1232”“”空串,3、数据类型的概念及定义,数据类型的分类,整型变量的分类,4、整型、实型、字符型数据的定义、存储、表示范围及运用,类型 类型说明符 长度 数的范围 基本型 int 2/4字节-3276832767 短整型 short 2字节-215215-1 长整型 long 4字节-231231-1 无符号整型 unsigned 2字节 065535 无符号短整型 unsigned short 2字节 065535 无符号长整型 unsigned long 4字节 0(232-1),例3.3 整型数据的溢出,#include
18、void main()int a,b;a=32767;b=a+1;printf(“%d,%dn”,a,b);,浮点型数据,浮点型常量两种表示形式都是double型的,小数:0.123、123.456指数:3e-3、0.3e3、.3e-6,注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数。,P 1e3、1.8e-3、-123e-6、-.1e-3O e3、2.1e3.5、.e3、e,浮点型变量,分类:浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。float f1;double f2;long double f3;,字符型数
19、据,字符常量用单引号包含的一个字符是字符型常量(只能包含一个字符)a,A,1 P abc、“a”O 转义字符:以“”开头、后跟专用特殊字符。n 换行 t 横向跳格 r 回车 反斜杠 ddd ddd表示1到3位八进制数字 xhh hh表示1到2位十六进制数字字符变量 char a,b;,字符例题,例3.6 向字符变量赋以整数。#include void main()char c1,c2;c1=97;c2=98;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);c1=y;c2=z;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,
20、c2);,c1=-35;c2=-121;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);,例3.7 大小写字母的转换,#include void main()char c1,c2;c1=a;/*A+32 ch+=32*/c2=b;c1=c1-32;c2=c2-32;printf(“c c,c1,c2);,字符串常量,一对双撇号括起来的字符序列 如:“How do you do.”,“CHINA”,“a”,“$123.45”又如:printf(“How do you do.”);规定:在每一个字符串常量的结尾加一个“字符串结束标志”,以便系统据此判断字符串
21、是否结束。规定以字符作为字符串结束标志。字符串存储字符数组:char s20=“How do you do.”;字符指针:char*p=“How do you do.”;字符串与字符区别 不合法“”合法,空字符串,占1字节 空格字符“”仅有空格字符的字符串,占2字节 a字母a字符“a”仅有a字符的字符串,占2字节 abc非法“abc”含有abc三个字符的字符串,占4字节,习题,下面不正确的字符串常量是 A)abc B)”1212”C)“0”D)“”下面四组选项中,均是正确的八进制或十六进制数的选项是:A)-10 B)0abcd C)0010 D)0a12 0 x8f-017-0 x11-0 x
22、123-011 0 xc 0 xf1-0 xa下面四组选项中,均是合法转义字符的选项是:A)B)C)018 D)0 017 f 101 n“xab x1f下面四组选项中,均是合法整型常量的选项是:A)160 B)-0 xcdf C)-01 D)-0 x48a-0 xffff 01a 986,012 2e5 011 0 xe 0668 0 x,习题,在C语言中,基本数据类型除了单精度和双精度类型外,还有【int】【long】【char】。在C语言中,float型变量在内存占【4】字节,double型变量在内存占【8】字节。,5、变量的初值问题,定义变量时同时赋值。#include void ma
23、in()int a1=5,a2=0 x1fd,a3=0171;long L1=32987,L2=5252352L;float f1=123.345,f2=3.25e-3;double d1=6.25e3,d2=0.00005;char c1=a,c2=b;printf(“d d dn,a1,a2,a3);printf(“ld ldn,L1,L2);printf(“f fn,f1,f2);printf(“lf fn,d1,d2);printf(“c dn,c1,c2);,不是初值问题int a;a=100;,6、各类数值型数据间的混合运算,隐式转换(自动转换)整型:char=int int与sh
24、ort=int int、char、short与long=long浮点型:float=double float 与 double=double整型+浮点型=double强制转换(类型)表达式(int)3.999=3(float)(3+2)=5.0(double)(int)5.28+(char)3.6)=8.0,7、算术运算符、赋值运算符、逗号运算符及其表达式的运用,的运算符有以下几类:(1)算术运算符(+-*/%)(2)关系运算符(!)(3)逻辑运算符(!|)(4)位运算符(|)(5)赋值运算符(+=-=/=*=%=|)(自增自减运算符)+-(6)条件运算符(?:)(7)逗号运算符(,)(8)求
25、字节数运算符(sizeof())(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以下符合C语言语法的赋值表达式是: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在C语言中,要求运算数必须是整型的运算符是:A)/B)+C)!=D)%若有代数式,则正确的表达式是:A)sqrt(fabs(pow(y,x)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 考试 辅导
链接地址:https://www.31ppt.com/p-2644682.html