ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:80.32KB ,
资源ID:10296425      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10296425.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c程序设计复习资料.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c程序设计复习资料.docx

1、c程序设计复习资料1、机器语言:由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。2、汇编语言:汇编语言将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。3、高级语言:高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。高级语言:包括面向过程的高级语言和面向对象的高级语言 。4、C语言的特点:丰富的数据类型、结构化的控制语句、运算符种类丰富、可移植性好。5、C语言三类函数及其采用意义:主函数,用户自定义函数,C语言提供的库函数,意义:函数可以简化了主函数以及实现模块化程

2、序设计。6、程序 = 算法 + 数据结构 + 程序设计方法 + 语言工具和环境7、8、实型常量指数形式:1.210-3 - 1.2e-3例如123.456可以表示为:123.456e0、12.3456e1、1.23456e2、把其中的1.23456e2称为“规范化的指数形式”:即在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。9、所有的实型常量均视为双精度类型。10、字符常量是指用一对单引号括起来的一个字符。如 a , 9 , ! 11、(1) 基本整型 :以int表示。 (2) 短整型:以short int表示,或以short表示。 (3) 长整型:以long

3、 int表示,或以long表示。 取值范围:long=int=shortint型变量的值范围:-3276832767 12、无符号型变量只能存放不带符号的整数,而不能存放负数。一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。13、数据类型转换有两种方式:自动类型转换、强制类型转换。无论是自动类型转换还是强制类型转换,都并没有改变变量本身的数据类型。14、15、表达式运算符运算对象16、单目算术运算符:自增、自减运算符为单目算术运算符,具有右结合性。 作用是使变量的值增1或减1,如: +i,-i (在使用i之前,先使i的值加(减)1) i+,i-(在使用i之后,使i的

4、值加(减)1)17、条件运算符是语言中唯一的一个三目运算符。格式:表达式1?表达式2:表达式3功能:根据表达式1的真假来决定整个条件表达式的取值。18、字符输出函数putchar()(1)参数c可以是字符型变量、整型变量、字符常量或整型常量(要求在0-255范围内)。(2)函数返回值为输出字符的ASCII码值。(3)putchar函数也可以输出转义字符。(4)一个putchar函数只能输出一个字符。19、字符输入函数 getchar() (1)函数返回值为输入字符的ASCII码值。(2)getchar函数的值可以赋给一个字符变量或整型变量,也可以不赋给任何变量。(3)一个getchar函数只能

5、接收一个字符。20、printf(格式控制,输出表列)“格式控制” 包括两种信息: 格式说明:由“%”和格式字符组成。 普通字符:即需要原样输出的字符。原则上,输出表列中变量的个数和类型应与格式控制中指定的数据的个数和类型应一致,且从左到右一一对应。 (1) printf(“%e”,123.456); 输出:1.234560e+002。 (2) int n=10; printf(%d,%o,%xn,n,n,n); printf(%#o,%#xn,n,n); 运行结果:10,12,a 012,0xa(3)float f=123.456; printf(%f %10f %10.2f %.2f %-

6、10.2fn, f,f,f,f,f); 输出结果如下: 123.456001 123.456001 123.46 123.46 123.4621、格式输入函数 scanf() scanf(格式控制,地址表列)“格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。说明: 1、在执行数据输入时,以一个或多个空格、或回车键、或跳格键(Tab)作为分隔符。 2、“&”是地址运算符,作用于变量,其地址在变量定义时由编译程序确定。22、(1)可以指定输入数据所占列数,系统自动按它截取所需数据。 scanf(%3d%3d,&a,&b); 输入: 12

7、3456 系统自动将123赋给a,456赋给b。 (2)此方法也可用于字符型: scanf(“%3c”,&ch); 如果从键盘连续输入3个字符abc,由于ch只能容纳一个字符,系统就把第一个字符a赋给ch。 (3)输入数据时不能规定精度,例如,scanf(%7.2f,&a); 是不合法的,不能企图用这样的scanf函数并输入以下数据而使a的值为12345.67。 (4)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。23、注意:(1)在scanf中应使用变量的地址。(2)选择合适的输入分隔符。(3)可以指定输入数据的宽度,系统自动截取。(4)在

8、用“%c”输入字符时,空格和“转义字符”都作为有效字 符输入,不需要用空格作间隔。(5)输入数据时不能规定精度。(6)在输入数据时,遇到以下情况该数据认为结束:遇空格、回车、跳格键(Tab)、遇宽度结束、遇非法输入。24、表达式语句。表达式语句由表达式加上分号组成。格式:表达式;功能:计算表达式的值。说明:C语言中的任何一个表达式都可以构成语句。注意:如果没有分号,如“x=y+z”只是一个表达式,而不是一条语句。25、函数调用语句。此类语句由函数调用加上分号构成。格式:函数名(实参列表);功能:调用函数,以完成函数所规定的功能。例如:printf(“C Program”);26、控制语句。控制

9、语句用于控制程序的流程,以实现程序的各种结构方式。27、空语句。空语句仅由一个分号组成。 格式: ; 功能:不执行任何操作。28、编程风格:正确性、可靠性、规范化、可读性、灵活性:29、if语句格式一:if (表达式) 语句功能:如果表达式为真,则执行其后的语句,否则不执行语句。30、格式2:if (表达式) 语句1 else 语句2功能:如果表达式为真,则执行语句1;否则执行语句2。31、格式3:if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else if (表达式n) 语句n else 语句n +132、if关键字之后均为表达式。该

10、表达式可以是逻辑表达式、关系表达式以及其它表达式。只要表达式运算的结果为非0,就按“真”处理,执行相应的语句;否则按“假”处理,执行相应的语句。在if语句中的条件判断表达式必须用圆括号括起来,每个语句之后必须加分号。在if语句的第二、三种形式中,else子句不能作为语句单独使用,必须是if语句的一部分,应与if配对使用。在if语句的三种形式中,所有的语句应为单个语句,如果想在满足条件时执行一组(多个)语句,则必须把这一组语句用“”括起来组成一个复合语句。但是在“”之后不能加分号。在if语句的表达式中,一定要避免判断实数与零值的等值比较。 虽然在C里面,常量NULL、零值都是false,非零值都

11、是true,但是为了使得程序清晰易读,建议在表达式中不要使用“if (a)”这样的语句。33、if语句的嵌套:格式:if (表达式) if语句或者:if (表达式) if语句 else if语句注意:正确书写格式。一般按层次缩进书写,以便掌握配对关系.在多重嵌套时,else总是与在它之前出现的、尚未匹配的且离它最近的if匹配。 如果if与else数目不相等,最好用花括号确定配对关系。形成多重嵌套实质上是为了进行多分支选择,这种问题一般可以使用if语句的第三种形式,即“if-else-if”语句,或者将要介绍的switch语句完成。因此,在一般情况下,较少使用if语句的嵌套结构,以使程序更便于阅

12、读理解。34、选择结构switch语句格式:switch (表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default: 语句n+1 功能:计算表达式的值,并逐个与其后的常量表达式进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。说明:“case 常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch语句。为了避

13、免上述情况,C提供了break语句。在case后的各个常量表达式的值不能相同,否则会出现错误。在case后,允许有多个语句,可以不用括起来。各个case和default子句的先后顺序可以变动,不影响程序的执行结果。default子句可以省略不用,此时当表达式的值与所有case后的常量表达式的值不同时,退出switch语句,继续执行后续程序。switch后面括号中的表达式只能是整型、字符型、枚举类型,case后的常量表达式的类型必须与之匹配。各个case之后是常量表达式,一定不要试图使用条件表达式或者逻辑表达式。多个case可以共用一组执行语句。35、循环结构while语句 格式:while (

14、表达式) 语句 功能:计算表达式的值,当值为真时,执行循环体。 说明:(1)while语句中的表达式一般是关系表达式或者逻辑表达式,只要值为真就可以继续执行循环体。(2)如果循环体包含一个以上的语句,必须用括起来构成复合语句。36、do-while语句 格式:do 语句 while(表达式);功能:先执行一次循环体,再判别表达式的值,如果为真则继续执行循环,否则终止循环。说明:(1)do-while语句的表达式后必须加分号。(2)如果循环体由多个语句组成,也必须由括起来,组成一个复合语句。37、for语句格式:for (表达式1;表达式2;表达式3) 语句功能:(1)首先计算表达式1的值;(2

15、)再计算表达式2的值,若值为真,则执行一次循环体,否则跳出循环;(3)计算表达式3的值,转回第(2)步重复执行。38、for语句最易理解的如下形式:for(循环变量赋初值;循环条件;循环变量增值) 语句 39、说明:for语句的各个表达式均可省略,但是分号不可缺少。如果循环变量已经在for语句前赋初始值,那么表达式1可以省略。如果省略表达式2,一般在循环体中加入break语句来退出循环。若省略表达式3,应在循环体中修改循环变量,保证循环能结束。可以同时省略三个表达式中的任意2个。三个表达式可以全部省略。 循环体可以是空语句。表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其

16、它表达式。 表达式2一般是关系表达式或者逻辑表达式,但也可以是数值表达式或者字符表达式,只要其值为非零,就可以执行循环。表达式3一般是改变循环变量的赋值表达式,但也可以是与循环变量无关的其它表达式。表达式1和表达式3都可以是逗号表达式。40、 break语句格式:break;功能:用于跳出switch结构,和从循环体内中途跳出循环体,即提前结束循环,执行循环下面的语句。说明:(1)在循环语句中,break语句一般与if语句一起使用。(2)break语句不能用于循环语句和switch语句之外的其它任何语句之中。41、 continue语句格式:continue;功能:跳过循环体中剩余的语句而强制

17、执行下一次循环,即结束本次循环,跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。说明:continue语句只能用在循环语句中,且一般都是与if语句一起使用。42、continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行。break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。43、循环结构百钱买百鸡问题 “百钱买百鸡”是我国古代的著名数学题。问题是这样描述的:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只?方法一:#includevoid

18、main() int i,j,k; for (i=0;i=33;i+) for (j=0;j=50;j+) for (k=0;k=300;k+) if (3*i+2*j+k/3=100 & i+j+k=100 & k%3=0) printf(公鸡%d只,母鸡%d只,小鸡%d只。n,i,j,k);方法二:#includevoid main() int i,j,k; for (i=0;i=33;i+) for (j=0;j=50;j+) k=100-i-j; if (3*i+2*j+k/3=100 & k%3=0) printf(公鸡%d只,母鸡%d只,小鸡%d只。n,i,j,k); 方法三:#i

19、ncludevoid main() int i,j,k; for (i=0;i=33;i+) for (j=0;j=(100-3*i)/2;j+) k=100-i-j; if (3*i+2*j+k/3=100 & k%3=0) printf(公鸡%d只,母鸡%d只,小鸡%d只。n,i,j,k); 44、例 输出下列图形:11 21 2 31 2 3 41 2 3 4 51 2 3 4 5 61 2 3 4 5 6 71 2 3 4 5 6 7 81 2 3 4 5 6 7 8 9#include void main() int m,n; for (n=1;n=9;n+) for(m=1;m=n

20、;m+) printf(%4d,m); printf(n); 45、数组是有序数据的集合。 数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素。46、一维数组的定义 类型 数组名常量表达式;如: float a10; (a0a9称为数组元素) 常量表达式中可以包括常量和符号常量,不能包含变量。47、一维数组元素的引用数组必须先定义,然后使用。C语言规定只能逐个引用数组元素而不能一次引用整个数组。数组元素的表示形式: 数组名下标例如: a0 = a5 + a2*3;48、int a10=0,1,2,3,4; 等价于:int a10=0,1,2,3,4,0,0

21、,0,0,0; int a5 = 1,2,3,4,5 ; 可以写成 int a = 1,2,3,4,5 ;49、例 用冒泡法对6个数排序(由小到大)。 #include #define N 6 void main() int aN; int i,j,t; printf(input numbers:n); for(i=0;iN;i+) scanf(%d,&ai); printf(the unsorted numbers:n); for(i=0;iN;i+) printf(%d ,ai); printf(n); /核心代码部分:开始冒泡排序 for(i=1;i=N-1;i+) for(j=1;ja

22、j) t=aj-1; aj-1=aj; aj=t; printf(the sorted numbers:n); for(i=0;iN;i+) printf(%d ,ai); 50、二维数组的定义 类型 数组名常量表达式1常量表达式2; 常量表达式1声明二维数组的行数 常量表达式2声明二位数组的列数; 例如: float b34 ; /a为34(3行4列)的数组。 不能写成: float b3,4;51、二维数组的引用二维数组的元素的表示形式为: 数组名下标下标在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。常出现的错误是: int a34; /a为34的数组 a34=3; /引用

23、a34超过了数组的范围52、二维数组的初始化二维数组初始化:(1) 分行给二维数组赋初值。如 int a34 = 1,2,3,4 , 5,6,7,8 , 9,10,11,12 ;(2) 将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。如: int a34=1,2,3,4,5,6,7,8,9,10,11,12;(3) 可以对部分元素赋初值。 int a34 = 1 , 5 , 9 ; 可以只对某几行元素赋初值: int a34 = 1 , 5,6 ;(4) 如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。如:int a34=1

24、,2,3,4,5,6,7,8,9,10,11,12; 等价于:int a 4=1,2,3,4,5,6,7,8,9,10,11,12;(5)有的编译系统,如VC6.0中,初始化数组时不能出现空的花括号,如 int a34=1,2,3,4;53、字符数组用来存放字符数据的数组是字符数组。54、一维字符数组的定义格式:char 字符数组名常量表达式功能:定义一维字符数组【例如】char a4, str5;【说明】(1)字符型数据在内存中存放的是ASCII码,每个字符占一个字节的存储空间。(2)C语言允许使用整型数组来存放字符型数据。如int a5;a0=a;scanf(”%c”,&a1);55、C语

25、言中,字符串作为一维字符数组存放在内存中。如字符串“C Language”,包含字符个数为10,但在内存中占11个字节,最后一个字节存放空字符0。说明: 字符串最后的空字符0称为字符串结束标志,其ASCII码为0,由系统自动加上。程序中主要依靠检测0的位置来判定字符串是否结束,而非根据数组的长度来判断。【说明】字符串输出时不包括结束符056、字符数组的初始化(1)逐个字符初始化字符数组。如char str4=A,B,C,0; char str4=65,66,67,0;char str =A,B,C,0;char str4=A,B,C;(2)用字符串常量初始化字符数组。如 char str4=“

26、ABC”; char str4=“ABC”; char str =“ABC”;【说明】 字符串对应的字符数组必然以0结尾,但字符数组也可不含0字符,也可以包含多个空字符0,甚至0后可以有非空字符。如 char a3= A,B,C; char str6=A,B,0,C00;【注意】 以字符串常量初始化字符数组时,字符数组的长度要比字符串有效长度大1。57、二维字符数组可以看作一个特殊的一维数组,该一维数组的每个元素都是一个一维字符数组。每个一维字符数组可以存放一个字符串,因此,一个N行M列的二维字符数组就可以用来存放N个字符串,且每个字符串的最大有效长度为M1。58、字符数组的输入输出字符数组的

27、输入输出可以有两种方法:逐个字符输入输出。用 “%c”输入或输出一个字符。即在scanf和printf函数中用格式符“%c”进行输入或输出。例如:char str5; int i; for(i=0;i=0;i-)printf(“%c”,stri);(2) 将整个字符串一次输入或输出。用“%s” 输出字符串。例如: char c =china; printf(“%s,c);在内存中数组c的状态如图所示。请注意:(1) 输出字符不包括结束符0。(2) 用“%s”格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。写成下面这样是不对的: printf(%s,c0);(3)

28、如果数组长度大于字符串实际长度,也只输出到遇 0结束。如: char c10=china; printf(%s,c); 输出“china”(4)可以用scanf函数输入一个字符串。例如: char c6; scanf(%s,c); 输入:china如果利用一个scanf函数输入多个字符串,则以空格分隔。例如: char strl5,str25,str35; scanf(%s%s%s,str1,str2,str3);59、字符串处理函数下面介绍几种常用的函数。1. puts(字符数组)其作用是:将一个字符串(以0结束的字符序列)输出到终端。用puts函数输出的字符串中可以包含转义字符。使用puts函数或以字符串整体进行输出时,系统一旦遇到0便停止输出,而且只有遇到0才停止输出。使用puts(str);或printf(“%s”,str);输出字符数组str时,str中一定要有0。2. gets(字符数组) 其作用是:从键盘输入一个字符串(该字符串中可以包含空

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1