c语言考试要点总结.docx

上传人:牧羊曲112 文档编号:3155450 上传时间:2023-03-11 格式:DOCX 页数:52 大小:60.88KB
返回 下载 相关 举报
c语言考试要点总结.docx_第1页
第1页 / 共52页
c语言考试要点总结.docx_第2页
第2页 / 共52页
c语言考试要点总结.docx_第3页
第3页 / 共52页
c语言考试要点总结.docx_第4页
第4页 / 共52页
c语言考试要点总结.docx_第5页
第5页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《c语言考试要点总结.docx》由会员分享,可在线阅读,更多相关《c语言考试要点总结.docx(52页珍藏版)》请在三一办公上搜索。

1、c语言考试要点总结信春哥不挂科 计算机专业C语言程序设计考试要点 第一节 C语言程序设计初步 一、本节要点 (一) 程序设计语言的发展 1、机器语言 2、汇编语言 3、面向过程的语言 4、面向对象的程序设计语言 (二) C程序设计语言的执行过程 1、编辑 2、编译 3、连接 4、执行 (三) 用库函数组装C程序 例1:计算2.1715的正弦值。 #include “math.h” main( ) float a; /*定义a为实型变量*/ a=sin(2.1715); /*调用sin函数*/ printf(“%fn”,a); /*调用printf函数,输出a的值*/ 程序详解: 1、在本例中用

2、到的sin函数称为数学函数,它是为了用户使用方便,由一批厂家开发编写的函数,并不是C语言的一部分。在使用数学函数时,往往要用到函数执行时所需的一些信息,这些信息包含在“math.h”中。因此在程序开头用#include “math.h”将有关的标头文件包括到程序中。 2、一个C语言源程序文件由一个或多个函数组成,C语言的基本组成单位是函数。一个完整的C语言程序有且只有一个称为主函数的main函数,程序总是从main函数开始执行,调用其它函数后再回到main函数,在main函数中结束整个程序的运行。 3、main是函数名称,没有参数可以不写,但圆括号不能省略,main后面有一对花括号,花括号内的

3、部分称为函数体,main函数可以在程序的任意位置。 4、C规定每个语句以分号结束,分号是语句不可缺少的组成部分,每行中可以写多条语句。 5、/*与*/之间为注释信息,对程序运行结果不发生影响,也不被编译,注释说明可以放在语句的任意位置。 6、float a;此语句是把a定义为一个实型变量。 7、C语言本身没有输入、输出语句,本例使用prinft函数输出数据。prinft函数的括号内包括两部分内容:双引号内的部分、双引号外的部分。双引号内的部分是“格式字符串”,用于指定输出双引号外的变量的打印格式。此例中双引号中有一个”%f”,它是输出一个保留小数点后6位数字的格式字符,小数点前的位数不指定。

4、二、经典例题 例2:一个C程序的执行是从_。 本程序的main函数开始,到main函数结束 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 本程序的main函数开始,到本程序文件的最后一个函数结束 本程序文件的第一个函数开始,到本程序main函数结束 例3、以下叙述不正确的是_。 一个C源程序可由一个或多个函数组成 一个C源程序必须包含一个main函数 C程序的基本组成单位是函数 在C程序中,注释说明只能位于一条语句后面 三、强化练习 (一) 选择题 1、以下叙述正确的是_。 在C程序中,main函数必须位于程序的最前面 C程序的每行中只能写一条语句 C语言本身没有输入输出语句 在

5、对一个C程序进行编译的过程中,可发现注释中的拼写错误 勤奋+机遇=成功 1 吉 信春哥不挂科 2、C语言规定:在一个源程序中,main函数的位置_。 必须在最开始 必须在系统调用库函数的后面 可以任意 必须在最后 3、一个C语言程序是由_。 一个主程序和若干子程序组成 函数组成 若干过程组成 若干子程序组成 (二) 填空题: 1、一个C源程序中至少包括一个_。 2、在一个C源程序中,注释部分两侧的分界符分别为_和_。 第二节 数据描述与基本操作 一、本节要点 C的基本数据 常量和符号常量 变量 整型数据 实型数据 字符型数据 字符串常量 算术运算符和算术表达式 关系运算 逻辑运算 赋值运算 条

6、件运算: 逗号运算 强制类型转换 printf函数 scanf函数 getchar、putchar函数 二、要点解析与经典例题 (一) C的基本数据类型 整型 基本类型 字符型 实型 单精度型 枚举类型 双精度型 数据类型 构造类型 指针类型 空类型 (二) 常量和符号常量 1、常量定义:在程序运行过程中,其值不能被改变的量称为常量。常量常区分不同的类型,如12、0、-3为整型常量,a、D为字符常量。 2、符号常量:用一个标识符代表一个常量的,称为符号常量,即标识符形式的常量。常量不同于变量,它的值在作用域内不能改变,也不能再被赋值。 例1:已知商品的单价及数量求商品的总价值。 #define

7、 PRICE 30 main( ) int num,total; num=10; total=num*PRICE; printf(“total=%d”,total); (三) 变量 1、变量定义:其值可以改变的量称为变量。 2、标识符的命名规范 和其它高级语言一样,用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符,语言中的标识符命名规范为: 变量名只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 C语言中标识符的长度无统一规定,随系统而不同。许多系统取个字符,假如程序中出现的变量名长度大于8个字符,则只有前面个字符有效,后面的不被识别。

8、语言有32个关键字它们已有专门含义,不应用采用与它们同名的变量名。 C语言将大写字母和小写字母认为是两个不同字。 例2:在下列符号中,可以选用哪些作变量名?哪些不可以? a3B 3aB +a -b *x $ _b5_ if next_ day e_2 OK? Integer MAXNUMBER i*j 勤奋+机遇=成功 2 吉 信春哥不挂科 (四) 整型数据 1、整型常量 整型常量即整常数。C语言整常数可用以下三种表示形式。 十进制表示。如231、-56.478 八进制表示。以0开头的数是八进制数。如0123即8=1*82+2*81+3*80=64+16+3=83。 十六进制表示。以0x开头的

9、数是16进制。如0x123即21016=1*16+2*16+3*16=256+32+3=291。 2、整型变量 整型变量分为:基本型、短整型、长整型、和无符号型四种。 基本型,以int表示 短整型,以short int表示或以short表示 长整型,以long int表示,或以long表示 无符号型,存储单元中全部二进制位(bit)用作存放数本身,而不包括符号。无符号型中又分为无符号整型、无符号短整型和无符号长整型,分别以unsigned int 、unsigned short 和unsigned long表示。 3、整型数据的取值范围 C标准没有具体规定各类型所占内存字节数,各种机器处理上有

10、所不同,以IBM PC为例,数的范围如表2.1所示。表2.1 所占位数 数的范围 Int 16 -3276832767 即-215 shortint 16 -3276832767 即-215 Longint 32 -21474836482147483647 即-231 Unsignedint 16 065535 即0 Unsigned short 16 065535 即0 unsigned long 32 04294967295 即0 4、整型常量的分类 一个整常量,如果其值在-3276832767范围内,认为它是int型,它可以赋值给int型和long int型变量。 一个整常量,如果其值超

11、过了上述范围,而在-21474836482147483647范围内,则认为它是long int型,可以将它赋值给一个long int型变量。 常量中无unsigned型。但一个非负值的整常量可以赋值给unsigned型整变量,只要它的范围不超过变量的取值范围即可。例如:将50000赋给一个unsigned int型变量是可以的,而将70000赋给它是不行的。 在一个整常量后面加一个字母l或L,则认为是long int型常量。 (五) 实型数据 1、实型常量 实数在C语言中又称为浮点数。实数有两种表示形式: 十进制形式。它由数字和小数点组成。例如:0.123、.123、123.0、0.0都是十进

12、制数形式。 指数形式。如123.56e4或123.56E4都代表123.56*104。但字母e之前必须有数字,e后面指数必须为整数。例如:e3、2.1e3.5、.e3、e等都不是合法的指数形式。 例3:下面四个选项中,均是不合法的浮点数的选项是_。 160. 0.12 e3 123 2e4.2 .e5 -.18 123e4 0.0 -.e3 .234 1e3 2、实型变量 C实型变量分为单精度和双精度两类。 在一般系统中,一个单精度型数据在内存中占4个字节,一个double型数据占8个字节。单精度实数提供7位有效数字,数值的范围随机器系统而异。在IBM PC中,单精度实数的范围约为10-381

13、038,双精度实数的范围约为10-30810308。 例4: main( ) float a; a=111111.666666; printf(“%f”,a); 勤奋+机遇=成功 3 吉 信春哥不挂科 (六) 字符型数据 1、字符常量: 普通形式的字符常量:用引号括起来的一个字符,如a、D、$、?等都是字符常量。 转义符:以“”开头的字符序列。 常用的以“”开头的特殊字符见表2.2 表2.2 字符形式 功能 n 换行 t 横向跳格 v 竖向跳格 b 退格 r 回车 f 走纸换页 反斜杠字符 单引号字符 ddd 1到3位8进进制所代表的字符 xhh 1到2位16进制数所代表的字符 例5:若有说明

14、语句:char c=729;则变量c_。 包含1个字符 包含2个字符 包含3个字符 说明不合法 2、字符变量 字符变量是用来存放字符常量。注意只能存放一个字符。 3、字符数据在内存中的存储形式 将一个字符常量存放到一个字符变量中,实际上并不是把该字符本身存放到内存单元中去,而是将该字符的相应的ASCII码值存放到存储单元中去。 例6:将小写字母a转换成大写字母A main( ) char c1; c1=a; c1=c1-32; printf(“%c”,c1); (七) 字符串常量 字符串常量是用一对双引号括起来的零个或多个字符序列。C规定以字符0作为字符串结束标志。所以字符串”a”实际上包含2

15、个字符:a、0。 例7:下面不正确的字符串常量是_。 abc ”1212” ”0” ” ” (八) 算术运算符和算术表达式 1、基本算术运算符 C语言中有5个基本算术运算符, 例8:在C语言中,要求运算数必须是整型的运算符是_。 / + != % 例9:写出下列程序的输出结果 main( ) printf(“%d,%dn”,5/3,5%3); printf(“%d,%dn”,-5/-3,-5%-3); printf(“%d,%dn”,-5/3,-5%3); 勤奋+机遇=成功 4 吉 信春哥不挂科 printf(“%d,%dn”,5/-3,5%-3); 例10:若x和n均是int型变量,且x和n

16、的初值均为5,则计算表达式后x的值为_,n的值为_。 x+=n+ 例11: main( ) int x,y,m,n; x=2;y=2 m=x+*5; n=+y*5; printf(“%d,%d,%d,%d”,x,y,m,n); (九) 关系运算 1、C语言提供的关系运算符有: = 小于) = =是 != 2、优先级别:关系运算符的优先级别低于纯算术类,高于值类。后两个的优先级小于前四个。如表达式a+bc+d完全等价于表达式(a+b)(c+d)。 3、运算量:关系运算符是双元运算符,整型、实型、字符都可以参与运算。 4、左右结合性:从左向右的结合方向 5、关于关系运算符的进一步说明: 关系表达式

17、的值是整型数0或1,故也可以将其看成一种整型表达式。例如: int i=1,j=7,a; a=i+(j%4!=0); a的值为2。 要说明x在区间a,b中,普通数学中使用表达式axb。但C语言中应写成a=x&x278在数学上是不允许的,而在C中是允许的。按自左至右求解。 字符数据的比较按其ASCII码值进行。 (十) 逻辑运算 1、C语言提供的逻辑运算符: & | ! 2、优先级别:&与|的优先级别低于关系运算符,高于条件运算符,&的优先级别高于|,!的优先级别与自加运算符、自减运算符同级。 3、运算量:&和|是双元运算符,!是单元运算符。 例12:已知x=43,ch=A,y=0;则表达的值是

18、_。 0 语法错 1 “真” 4、左右结合性:&和|运算符的结合方向为自左至右,!的结合方向为自右至左。 5、关于逻辑运算符的进一步说明: 在一个&表达式中,若&的一端为0,则不必再计算另一端,该表达式的值肯定为0。 在一个|表达式中,若|的一端为1,则不必再计算另一端,该表达式的值肯定为1。 例13:写出下面程序的输出结果。 main( ) int x,y,z; x=y=z=0; +x&+y|+z; printf(“%d,%d,%d”,x,y,z); x=y=z=0; +x|+y&+z; printf(“%d,%d,%d”,x,y,z); (十一) 赋值运算 1、基本的赋值运算符: = 勤奋

19、+机遇=成功 5 吉 信春哥不挂科 2、自反算术赋值运算符 C语言中有5个基本自反算术赋值运算符, = = = = = 3、优先级别:赋值运算符与自反算术赋值运算符属于同等级别,低于条件运算符,高于逗号运算符。如对于表达式x%=y+3完全等价于x%=(y+3)。 例14:若有以下定义,则能使值为3的表达式是_。 Int k=7,x=12; x%=(k%5) x%=(k-k%5) x%=k-k%5 (x%=k)-(k%=5) 4、运算量:双元运算量,赋值运算符与自反算术赋值运算的第一个量必须为变量,且=前后必须为整型数据。如对于表达式a*3+=2是错误的。因为此表达式完全等价于(a*3)=(a*

20、3)+2。 5、左右结合性:自右至左参与运算。 例15:若a是int型变量,且a的初值为6,则计算表达式后a的值为_。 a+=a-=a*a (十二) 条件运算: 1、条件运算符的基本形式及功能: 条件运算是一种在两个表达式的值中选择一个的操作。它的一般形式为: e1?e2:e3 它的操作过程为,若e1为真,则表达式的值为e2,若为假表达式的值为e3。 2、优先级别:低于逻辑运算,高于赋值运算。 3、运算量:三元运算量,e1一般为算术表达式,e2、e3可以是任意类型的表达式,条件表达式的值的类型为e2与e3二者中类型较高的。 4、左右结合性:自右至左运算。 例16:以下程序的运行结果是_。 ma

21、in int k=4,a=3,b=2,c=1; printf(“%d”,ka?k:cm,勤奋+机遇=成功 7 吉 信春哥不挂科 则自动取n值,即保证n个字符正常输出。 f格式:用来输出实数,以小数形式输出。有以下几种用法: %f:不指定宽度,整数部分全部输出并输出6位小数。 %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。 %-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。 e格式:以指数形式输出实数。可用以下形式: %e:数字部分输出6位小数,指数部分占5位或4位。 %m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的

22、小数位数,m表示整个输出数据所占的宽度。 g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。 4、关于printf函数的进一步说明: 如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如: printf(“%f%”,1.0/3); 输出0.333333%。 (十六) scanf函数 scanf函数可以用来输入任何类型的多个数据。 1、scanf函数的一般格式 scanf(格式控制,地址表列) “格式控制”的含义同printf函数。普通字符即需要原样输入的字符。 地址表列是指由若干个地址组成的表列,它们之间用“,”隔开。 2、格式控制的完整格式: % * m l

23、或h 格式字符 格式字符与printf函数中的使用方式相同,以%d、%o、%x、%c、%s、%f、%e,无%u格式、%g格式。 可以指定输入数据所占列宽,系统自动按它截取所需数据。如: scanf(“%3d%3d”,&a,&b); 输入:123456 系统自动将123赋给a,456赋给b。 %后的“*”附加说明符,用来表示跳过它相应的数据。例如: scanf(“%2d%*3d%2d”,&a,&b); 如果输入如下信息:1234567。将12赋给a,67赋给b。第二个数据”345”被跳过不赋给任何变量。 输入数据时不能规定精度,例如: scanf(“%7.2f”,&a); 是不合法的,不能企图输

24、入:12345.67而使a的值为12345.67。 3、输入数据流分隔 根据格式字符的含义从输入流中取得数据,当输入流中数据类型与格式字符要求不符时,就认为这一项结束。如: scanf(“%d%c%f”,&a,&b,&c); 如果输入如下信息: 1234r1234.567 则scanf函数在接收数据时发现”r”类型不匹配,于是把”1234”转换成整型赋值给a,把”r”赋给变量b,最后把”1234.567”转换成实型数据赋给c。 根据格式项中指定的域宽分隔出数据项。如语句:scanf(“%2d%3f%4f”,&a,&b,&c); 如果输入如下信息: 123456789012345 则scanf函

25、数在接收数据时根据域宽把12赋值给a,345赋值给b,6789赋值给c。 隐示分隔符。空格、跳格符、换行符都是C语言认定的数据分隔符。 显示分隔符。在scanf函数的两个格式说明项间有一个或多个普通字符,那么在输入数据时,在两个数据之间也必须以这一个或多个字符分隔。如语句: scanf(“a=%d,b=%f,c=%f”,&a,&b,&c); 则输入数据应该为: a=1234,b=67.8,c=98.123 4、关于scanf函数的进一步说明: scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。例如,如果a、b勤奋+机遇=成功 8 吉 信春哥不挂科 为整型变量,则 scanf(“

26、%d,%d”,a,b); 是不对的,应将”a,b”改为”&a,&b”。 如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。例如: scanf(“%d,%d”,&a,&b); 输入时应输入:3,4。3与4之间的逗号应与scanf函数中的“格式控制”中的逗号相对应,输入其它符号是不对的。 在用“%c”格式输入字符时,空格字符和转义字符都作为有效字符输入。 scanf(“%c%c%c”,&c1,&c2,&c3); 如输入:a b c 。字符a赋给c1,字符 赋给c2,字符b 赋给c3。 5、scanf的停止与返回 格式参数中的格式项用法-正常结束。 发

27、生格式项与输入域不匹配时-不正常退出: (十七) getchar、putchar函数 1、getchar函数 getchar函数是从终端输入一个字符。getchar函数没有参数,其一般形式为:getchar( )。 2、putchar函数 putchar函数的作用是向终端输出一个字符。 三、强化练习 1、下面四个选项中,均是不合法的用户标识符的选项是_。 A P_0 do float la0 _a b-a goto int _123 temp INT 2、若x,i,j和k都是int型变量,则计算下面表达式后,x的值为_。x=(i=4,j=16,k=32) 4 16 32 52 3、以下不正确的

28、叙述是_。 在C程序中,逗号运算符的优先级最低。 在C程序中,APH和aph是两个不同的变量 若a和b类型相同,在计算机了赋值表达式a=b后,b的值不变。 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数据。 第三节 C程序的流程设计 一、本节要点 算法 1算法的概念 2算法的性质 选择型程序设计 1、if 语句的形式 2、if 的嵌套 3、switch结构 循环型程序设计 1、while语句 2、do-while语句 3、for语句 4、break与continue 5、循环的嵌套 二、要点解析与经典例题 算法 1、算法的概念 为解决某一个问题而采取的方法和步骤,

29、就称为算法。 2、算法的性质 有穷性:一个算法应包含有限的操作步骤 一个初始:此动作序列只有一个初始动作 确定性:算法中的每一个步骤都应当是确定性的,仅有一个后继动作。 有一个或多个输出:序列终止表示问题得到解答或问题没有解答,没有输出的算法是没有意义的。 选择型程序设计 1、if语句的形式 if 语句 if 语句1 else 语句 2 勤奋+机遇=成功 9 吉 信春哥不挂科 注意: if语句中的条件表达式一般为逻辑表达式或关系表达式,但也可以是任意的数值类型例如下列语句也是合法的。 if(a) printf(“%d” ,a); 在if语句中,分号是语句的结束标志。 在if和else后面可以只

30、含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号将几个语句括起来成为一个复合语句。 例1:以下不正确的if语句形式是。 A)if(xy&x!=y); B)if(x=y) x+=y; C)if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y); D)if(xy) z=x;x=y;y=z; 例3、以下不正确的语句是 A)if(xy); B)if(x=y)&(x!=0) x+=y; C)if(x!=y) scanf(“%d”,&x); D)if(xy)x+;y+; 2、if 的嵌套 if if 语句1 else 语句2 else if 语句3 else 语句4

31、 3、switch结构 switch语句是多分支选择语句,其形式如下: switch(表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 default:语句n+1 注意: 1、switch后面括弧内的“表达式”,可以是整型表达式或字符型表达式,也可以枚举型数据 2、当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。 3、每一个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象。 4、每个case的出现次序不影响执行结果。 5、执行完

32、一个case后面的语句后,流程控制转移到下一个case继续执行,直到遇到break语句或执行完为止。 例4:编写程序给出一百制成绩,要求输出成绩等级A、B、C、D、E,90分以上为A,80-89分为B,70-79为C,60-69为D,60分以下为E。 循环型程序设计 1、while语句 while语句用来实现”当型”循环结构,其一般形式如下: while(条件表达式) 循环体语句 例5:设有程序段: int k=10; 勤奋+机遇=成功 10 吉 信春哥不挂科 while(k=0) k=k-1; 循环体执行次。 2、do-while语句 do-while语句的特点是先执行循环体,然后判断循环条

33、件是否成立,其一般形式为: do 循环体语句 while(条件表达式); 例6、若有如下语句 int x=3; do printf(“%dn”,x-=2); while(-x); 则上面程序段输出结果是。 例7、以下程序段循环执行几次。 x=-1; do x=x*x; while(!x); 例8、下面程序的运行结果是 main( ) int y=10; doy-; while(-y); printf(“%dn”,y-); 3、for语句 C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句,其一

34、般形式为: for(表达式1;表达式2;表达式2) 语句 说明: for语句一般形式中的“表达式1”可以省略,此时应for语句之前给循环变量赋初值。注意省略表达式1时,其后的分号不能省略。 如果表达式2省略,即不判断循环条件,循环无终止地进行下去。 表达式3也可以省略,但此时程序设计者应另外设法保证循环正常结束。 可以省略表达式1和表达式3,只有表达式2,即只给循环条件,在这种情况下,完全等同于while语句。 3个表达式都可省略,如:for( ; ; ) 语句,相当于while(1) 语句,即不设初值,不判断条件,循环变量不增值。无终止地执行循环体。 表达式1可以是设置循环变量初值的赋值表达

35、式,也可以是与循环变量无关的其他表达式。for(sum=0;i+y;x=i+) i=x; B)for(;x+=i) C)while(1)x+; D)for(i=10;i-) sum+=i; 例11、执行语句for( i=1 ; i+4 ; ); 后变量i的值是 例12、下面程序段的功能是计算1000!的末尾含有多少个零。请填空。 for(k=0,i=5;i=1000;i+=5) m=i; while( ) k+;m=m/5; 勤奋+机遇=成功 11 吉 信春哥不挂科 4、break与continue 在break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句。实际上,break语句还可以用来从循环体内跳出循环体,即提高结束循环,接着执行循环下面的语句。break语句的一般形式为:break; continue语句只结束本次循环,而不是终止整个循环的执行。conti

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号