c程序设计(第四版)谭浩强 复习资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 4 页 共 17 页
格式: ; 功能:不执行任何操作。 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 +1 32、if 关键字之后均为表达式。该表达式可以是逻辑表达式、关系表达式以及其它表达式。 只要表达式运算的结果为非 0,就按“真”处理,执行相应的语句;否则按“假”处理,执 行相应的语句。 在 if 语句中的条件判断表达式必须用圆括号括起来,每个语句之后必须加分号。 在 if 语句的第二、三种形式中,else 子句不能作为语句单独使用,必须是 if 语句的一部分, 应与 if 配对使用。 在 if 语句的三种形式中,所有的语句应为单个语句,如果想在满足条件时执行一组(多个) 语句,则必须把这一组语句用“{}”括起来组成一个复合语句。但是在“}”之后不能加分 号。 在 if 语句的表达式中,一定要避免判断实数与零值的等值比较。 虽然在 C 里面, 常量 NULL、 零值都是 false, 非零值都是 true, 但是为了使得程序清晰易读, 建议在表达式中不要使用“if (a)”这样的语句。 33、if 语句的嵌套: 格式:if (表达式) if 语句 或者:if (表达式) if 语句 else if 语句 注意: 正确书写格式。一般按层次缩进书写,以便掌握配对关系. 在多重嵌套时,else 总是与在它之前出现的、尚未匹配的且离它最近的 if 匹配。 如果 if 与 else 数目不相等,最好用花括号确定配对关系。
第 3 页 共 17 页
printf("%#o,%#x\n",n,n); 运行结果:10,12,a 012,0xa (3)float f=123.456; printf("%f %10f %10.2f %.2f %-10.2f\n", f,f,f,f,f); 输出结果如下: 123.456001 123.456001 123.46 123.46 123.46 21、格式输入函数 scanf() scanf(格式控制,地址表列) “格式控制”的含义同 printf 函数; “地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。 说明: 1、在执行数据输入时,以一个或多个空格、或回车键、或跳格键(Tab)作为分隔符。 2、 “&”是地址运算符,作用于变量,其地址在变量定义时由编译程序确定。 22、 (1)可以指定输入数据所占列数,系统自动按它截取所需数据。 scanf("%3d%3d",&a,&b); 输入: 123456 系统自动将 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)在用“%c”输入字符时,空格和“转义字符”都作为有效字 符输入, 不需要用空格 作间隔。 (5)输入数据时不能规定精度。 (6)在输入数据时,遇到以下情况该数据认为结束:遇空格、回车、跳格键(Tab) 、遇宽 度结束、遇非法输入。 24、表达式语句。表达式语句由表达式加上分号组成。 格式:表达式;功能:计算表达式的值。 说明:C 语言中的任何一个表达式都可以构成语句。 注意:如果没有分号,如“x=y+z”只是一个表达式,而不是一条语句。 25、函数调用语句。此类语句由函数调用加上分号构成。 格式:函数名[(实参列表)]; 功能:调用函数,以完成函数所规定的功能。 例如:printf(“C Program”); 26、控制语句。控制语句用于控制程序的流程,以实现程序的各种结构方式。 27、空语句。空语句仅由一个分号组成。
第 1 页 共 17 页
1、机器语言: 由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。 2、汇编语言: 汇编语言将机器指令映射为一些可以被人读懂的助记符,如 ADD、SUB 等。 3、高级语言: 高级语言屏蔽了机器的细节, 提高了语言的抽象层次, 程序中可以采用具有一定涵义的数据 命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。 高级语言:包括面向过程的高级语言和面向对象的高级语言 。 4、C 语言的特点: 丰富的数据类型、结构化的控制语句、运算符种类丰富、可移植性好。 5、C 语言三类函数及其采用意义: 主函数,用户自定义函数,C 语言提供的库函数,意义:函数可以简化了主函数以及实现模 块化程序设计。 6、程序 = 算法 + 数据结构 + 程序设计方法 + 语言工具和环境 7、
15、表达式=运算符+运算对象 16、单目算术运算符:自增、自减运算符为单目算术运算符,具有右结合性。 作用是使变量的值增 1 或减 1,如: ++i,--i (在使用 i 之前,先使 i 的值加(减)1) i++,i-(在使用 i 之后,使 i 的值加(减)1) 17、条件运算符是C语言中唯一的一个三目运算符。 格式:表达式 1?表达式 2:表达式 3 功能:根据表达式 1 的真假来决定整个条件表达式的取值。 18、字符输出函数 putchar() (1)参数 c 可以是字符型变量、整型变量、字符常量或整型常量(要求在 0-255 范围内) 。 (2)函数返回值为输出字符的 ASCII 码值。 (3)putchar 函数也可以输出转义字符。 (4)一个 putchar 函数只能输出一个字符。 19、字符输入函数 getchar() (1)函数返回值为输入字符的 ASCII 码值。 (2)getchar 函数的值可以赋给一个字符变量或整型变量,也可以不赋给任何变量。 (3)一个 getchar 函数只能接收一个字符。 20、printf(格式控制,输出表列) “格式控制” 包括两种信息: ① 格式说明:由“%”和格式字符组成。② 普通字符:即需要原样输出的字符。 原则上, 输出表列中变量的个数和类型应与格式控制中指定的数据的个数和类型应一致, 且 从左到右一一对应。 (1) printf(“%e”,123.456); 输出:1.234560e+002。 (2) int n=10; printf("%d,%o,%x\n",n,n,n);
ቤተ መጻሕፍቲ ባይዱ
第 5 页 共 17 页
形成多重嵌套实质上是为了进行多分支选择,这种问题一般可以使用 if 语句的第三种形式, 即“if-else-if”语句,或者将要介绍的 switch 语句完成。因此,在一般情况下,较少使用 if 语句的嵌套结构,以使程序更便于阅读理解。 34、选择结构——switch 语句 格式:switch (表达式) { case 常量表达式 1:语句 1 case 常量表达式 2:语句 2 case 常量表达式 n:语句 n default: 语句 n+1 } 功能:计算表达式的值,并逐个与其后的常量表达式进行比较,当表达式的值与某个常量表 达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有 case 后的语 句。如表达式的值与所有 case 后的常量表达式均不相同时,则执行 default 后的语句。 说明: “case 常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行, 但不能在执行完该标号的语句后自动跳出整个 switch 语句。为了避免上述情况,C 提供了 break 语句。 在 case 后的各个常量表达式的值不能相同,否则会出现错误。 在 case 后,允许有多个语句,可以不用{}括起来。 各个 case 和 default 子句的先后顺序可以变动,不影响程序的执行结果。 default 子句可以省略不用,此时当表达式的值与所有 case 后的常量表达式的值不同时,退 出 switch 语句,继续执行后续程序。 switch 后面括号中的表达式只能是整型、字符型、枚举类型,case 后的常量表达式的类型必 须与之匹配。 各个 case 之后是常量表达式,一定不要试图使用条件表达式或者逻辑表达式。 多个 case 可以共用一组执行语句。 35、循环结构——while 语句 格式:while (表达式) 语句 功能:计算表达式的值,当值为真时,执行循环体。 说明:(1)while 语句中的表达式一般是关系表达式或者逻辑表达式,只要值为真就可以 继续执行循环体。 (2)如果循环体包含一个以上的语句,必须用{}括起来构成复合语句。 36、do-while 语句 格式:do { 语句 }while(表达式); 功能:先执行一次循环体,再判别表达式的值,如果为真则继续执行循环,否则终止循环。 说明: (1)do-while 语句的表达式后必须加分号。 (2)如果循环体由多个语句组成,也必须由{}括起来,组成一个复合语句。 37、for 语句 格式:
第 2 页 共 17 页
14、
% 基本算术运算符 , ,* ,/ , 算术运算符 增1减1运算符 , 关系运算符, , , , ,! 逻辑运算符!,&&, || 基本赋值运算符 赋值运算符复合算术赋值运算符 , , * ,/ , % 基本运算符 逗号运算符, 条件运算符 ?: C语言运算符 数据长度运算符sizeof &, |, ^ 位逻辑运算符~ , 位运算符位移位运算符, 复合位赋值运算符& , |, ^ , , 强制运算符() 下标运算符[] 专用运算符 成员运算符 ,. 指针运算符&,*,,
基本整型int 整型 短整型short 长整型long 实型(浮点型) 单精度型 float 基本类型 双精度型double 指针类型 C语言的数据类型 空类型(void ) 字符型char 枚举型enum 数组型 构造类型 结构体型struct 共用体型union
8、实型常量指数形式:1.2×10-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 int 表示,或以 long 表示。 取值范围:long>=int>=short int 型变量的值范围:-32768~32767 12、无符号型变量只能存放不带符号的整数, 而不能存放负数。 一个无符号整型变量中可以 存放的正数的范围比一般整型变量中正数的范围扩大一倍。 13、数据类型转换有两种方式:自动类型转换、强制类型转换。 无论是自动类型转换还是强制类型转换,都并没有改变变量本身的数据类型。