C语言专升本辅导(整理).ppt
《C语言专升本辅导(整理).ppt》由会员分享,可在线阅读,更多相关《C语言专升本辅导(整理).ppt(229页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1. 对 C 语言的语法、语义有较好的理解。2. 能熟练地阅读 C 源程序,并具有初步分析程序的能力。 3. 初步掌握结构化程序设计的方法和技巧,能从分析问题入手,设计可行的算法,进而用 C 语言编写结构良好的面向过程的程序。 4. 通过上机实验,掌握程序的调试和测试方法。考考 试试 要要 求求考题类型考题类型 选择题(概念、语法等): 60% 程序阅读题: 20% 程序设计题(或程序填空): 20% 程序设计基础,张杰敏编,高等教育出版社出版 C 语言程序设计,谭浩强编,清华大学出版社出版参考用书参考用书第一章 C语言概述C语言发展历史与特点(了解)C程序格式和结构特点(掌握)TC 环境下
2、C 程序的上机步骤(掌握)结构特点v函数与主函数l程序由一个或多个函数组成l必须有且只能有一个主函数main()l程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。v程序语句lC程序由语句组成l用“;”作为语句终止符v注释l/* */为注释,不能嵌套l不产生编译代码例: /*This is the main /* of example1.1*/ */ 非法v编译预处理命令编辑链接编译执行C程序的上机步骤程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe第二章 算法 算法的概念(理解) 算法的表示方法
3、(了解) 组成结构化程序的三种基本结构(理解) 结构化程序设计的过程(了解)算法操作步骤解决解决:做什么?怎么做?算法的特点+ 有穷性+ 确定性+ 可行性/有效性+ 有零个或多个输入+ 有一个或多个输出有限的操作步骤且每一步均应在合理的时间内完成,无“死循环”每一步骤通过已经实现的基本运算执行后,在有限次内得到有效的效果,无“死语句”每一条指令必须有确定的含义,无“二义性”有多种输入途径可供输入数据,以进行数据处理有多种输出途径可将运行结果输出算法的表示方法 自然语言 流程图 N-S流程图 伪代码 计算机程序语言第三章 数据类型、运算符与表达式 C 语言中数据类型的分类(了解) 整型、实型、字
4、符型、字符串常量的表示方法(掌握) 符号常量的定义和使用(掌握) 变量的定义、初始化(掌握) 算术、赋值、复合赋值、自增、自减、逗号运算符及表达式(掌握) 各类数值型数据间的混合运算(掌握)预备知识计算机中数的表示及进制转换v各种进制之间的转换l 二进制、八进制、十六进制转换成十进制字节和位v内存以字节为单元组成v每个字节有一个地址v一个字节一般由8个二进制位组成v每个二进位的值是0或1数值的表示方法原码、反码和补码v原码:最高位为符号位,其余各位为数值本身的绝对值v反码:l 正数:反码与原码相同l 负数:符号位为1,其余位对原码取反v补码:l 正数:原码、反码、补码相同l 负数:最高位为1,
5、其余位为原码取反,再对整个数加1基本数据类型 常量与变量标识符v定义:用来标识变量名、常量名、函数名、数组名、类型名和文件名等的字符序列v组成:l只能由字母、数字、下划线组成,且第一个字符必须是字母或下划线l大小写敏感l不能使用关键字v长度:TC-最长32个字符;MS C-最长8个字符&字符常量v定义:用单引号括起来的单个普通字符或转义字符. v字符常量的值:该字符的ASCII码值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符v转义字符:反斜线后面跟一个字符或一个代码值表
6、示例 转义字符举例main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);如 A65, a97, 048 , n10&整型变量v占字节数随机器不同而不同,一般占一个机器字vshortintlongv可用sizeof(类型标识符)测量&实型变量vfloat:占4字节,提供7位有效数字vdouble:占8字节,提供16位有效数字&字符型变量v字符变量存放字符ASCII码vchar与int数据间可进行算术运算例 float a;a=111111.111; /* a=1111
7、11.1*/double b;b=111111.111; /* b=111111.111*/例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */没有字符串变量,用字符数组存放doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换显式转换(强制转换)v一般形式:(类型名)(表达式)例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 v说明:强制转换得到所需类型的中间变量,原变量类型不变 例 main() float x; int i
8、; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生学习运算符应注意:v运算符功能v与运算量关系l要求运算量个数l要求运算量类型v运算符优先级别v结合方向v结果的类型l短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符第四章 数据输入与输出 赋值语句及使用(掌握) 字符输入输出( getchar函数和putchar函数)(了解) 格式输入输出( scanf函数和printf函数)(掌握)dx,Xoucse,E
9、fg%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身int a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;pr
10、intf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%l说明u格式字符要用小写u格式字符与输出项个数应相同,按先后顺序一一对应u输出转换:格式字符与输出项类型不一致,自动按指定格式输出例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);输出结果: 3 4 a=3, b=4例 main() unsigned int u=65535; printf(”u=%dn,u); 输出结果:u=-1例 int a=3,b=4; printf(“%d
11、 %dn”,a,b); printf(“a=%d , b=%dn”,a,b); v附加格式说明符(修饰符)例 scanf(“%3d%*4d%f”,&k,&f); 输入 12345678765.43 则123k, 8765.43f例 scanf(“%2d%*3d%2d”,&a,&b); 输入 1234567 则12a, 67b例 scanf(“%3c%2c”,&c1,&c2); 输入 abcde 则ac1, d c2v附加格式说明符(修饰符)例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 则1999yy, 10 mm, 15 dd例 scanf(“%d
12、:%d:%d”,&h,&m,&s); 输入 12:30:45 则12 h, 30 m, 45 sv输入分隔符的指定l一般以空格、TAB或回车键作为分隔符l其它字符做分隔符:格式串中两个格式符间字符例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=291例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 a=12,b=24,c=36 例 scanf(“%d,%d”,&a,&b) 输入 3,4 则3a, 4 bv说明:l用“%c”格式符时,
13、空格和转义字符作为有效字符输入l输入数据时,遇以下情况认为该数据结束:u遇空格、TAB、或回车u遇宽度结束u遇非法输入l输入函数留下的“垃圾”:例 int x; char ch; scanf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%dn”,x,ch);执行:123输出:x=123,ch=10例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%dn”,x,ch);执行:123输出:x=123,ch=10例 int x; char ch; scanf(“%d”,&x); s
14、canf(“ %c”,&ch);或 scanf(“%*c%c”,&ch); 如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入abc 则ac1, c2, b c3如 scanf(“%d%c%f”,&a,&b,&c); 若输入1234a123o.26 则 1234 a, a b, 123 c第五/六章 C程序流程设计第五章第五章 选择结构选择结构 关系、逻辑运算符及表达式(掌握) if 语句的三种形式(掌握) switch 语句及 break 语句的使用 (掌握) 要求要求能编写含有 if 语句嵌套结构的程序第六章第六章 循环结构循环结构 while 语句及应用(掌握) do-
15、while 语句及应用(掌握) for 语句及应用(掌握) break 语句在循环中的作用(掌握) continue 语句在循环中的作用(了解) 要求要求能编写含有二重循环结构的程序。C语句分类if( )else switchfor( )while( )dowhile( )continuebreakgotoreturn分支循环辅助控制程序控制语句(9种):v复合语句:用 括起来的一组语句l一般形式: 数据说明部分; 执行语句部分; l说明:u“”后不加分号u语法上和单一语句相同u复合语句可嵌套v说明:lfor语句中expr1, expr2 ,expr3 类型任意,都可省略,但分号;不可省l无限
16、循环: for(;)lfor语句可以转换成while结构expr1;while(expr2)循环体语句;expr3;例 用for循环求 1001nn#include main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum);例:#include main( ) int i=0; for(i=0;i10;i+) putchar(a+i); 结果:abcdefghij例:#include main( ) int i=0; for(;i10;i+) putchar(a+i); 例:#include main( ) int i=0; fo
17、r(;i10;) putchar(a+(i+); 例:#include main( ) int i=0; for(;i10;putchar(a+i),i+) ; 第七章 数组 一维数组的定义、初始化及元素引用(掌握) 二维数组的定义、初始化及元素引用(掌握) 字符数组的定义及使用(掌握) 字符串处理函数(了解)一维数组的引用v数组必须先定义,后使用v只能逐个引用数组元素,不能一次引用整个数组v数组元素表示形式: 数组名下标其中:下标可以是常量或整型表达式例 int i=15; int datai; (不能用变量定义数组维数)例 int a10; printf(“%d”,a); ()必须 for
18、(j=0;j10;j+) printf(“%dt”,aj); ()例 int data5; data5=10; /C语言对数组不作越界检查,使用时要 注意一维数组的初始化v初始化方式 在定义数组时,为数组元素赋初值(在编译阶段使之得到初值) int a5=1,2,3,4,5;等价于:a0=1; a1=2; a2=3; a3=4; a4=5;v说明:l数组不初始化,其元素值为随机数l对static数组元素不赋初值,系统会自动赋以0值l当全部数组元素赋初值时,可不指定数组长度如 int a5=6,2,3; (不用static初值也可为0) 等价于: a0=6; a1=2;a2=3; a3=0; a
19、4=0;如 int a3=6,2,3,5,1; ()static int a5;等价于:a0=0; a1=0; a2=0; a3=0; a4=0;l只给部分数组元素赋初值 int a=1,2,3,4,5,6;编译系统根据初值个数确定数组维数)3()2(12) 1(1121nFFFnFnFnnn二维数组元素的引用形式: 数组名下标下标二维数组元素的初始化l分行初始化: 例 int a23=1,2,3,4,5,6;a00 a01 a02 a10 a11 a12123456全部初始化l按元素排列顺序初始化 例 int a3=1,2,3,4,5;a00 a01 a02 a10 a11 a1212345
20、0第一维长度省略初始化 例 int a3=1,4,5;a00 a01 a02 a10 a11 a12100450第一维长度省略初始化 例 int a23=1,2,4;a00 a01 a02 a10 a11 a12120400部分初始化 例 int a23=1,2,3,4,5,6;a00 a01 a02 a10 a11 a12123456全部初始化 例 int a23=1,2,4;a00 a01 a02 a10 a11 a12124000部分初始化字符数组和字符串字符数组v定义 v字符数组的初始化l逐个字符赋值l用字符串常量v字符数组的引用例 char c10, ch34; 例 char ch5
21、=H,e,l,l,o;ch0Hello逐个字符赋值ch1ch2ch3ch4 例 char ch5=B,o,y;ch0Boy00逐个字符赋值ch1ch2ch3ch4 例 char ch5=“Boy”;ch0Boy00用字符串常量ch1ch2ch3ch4 例 char ch6=“Hello”; char ch6=“Hello”; char ch=“Hello”;用字符串常量ch0Helloch1ch2ch3ch40ch5 例 char diamond5=., .,*,.,*,.,*, *, ., ., . ,*,.,*, .,*,., .,*;二维字符数组初始化.*00.*.*0*.*.*.*0.
22、*00diamond0diamond1diamond2diamond3diamond4 例 char fruit7=“Apple”,”Orange”, ”Grape”,”Pear”,”Peach”;二维字符数组初始化fruit0fruit1fruit2fruit3fruit4Apple00Orange0Grape00Pear000Peach00v字符串的输入输出l逐个字符I/O: %cl整个字符串I/O: %s例 用%c main() char str5; int i; for(i=0;i5;i+) scanf(“%c”, &stri); for(i=0;i5;i+) printf(“%c”,
23、 stri);例 用%s main() char str5; scanf(“%s”, str); printf(“%s”, str);用字符数组名,不要加&输入串长度y?x:y; return(z); 例 有参函数(现代风格) int max(int x, y) int z; z=xy?x:y; return(z); 例 无参函数 printstar( ) printf(“*n”); 或 printstar(void ) printf(“*n”); 函数的返回值返回语句v形式: return(表达式); 或 return 表达式; 或 return;v功能:使程序控制从被调用函数返回到调用函数
24、中,同时把返值带给调用函数v说明:l函数中可有多个return语句l若无return语句,遇时,自动返回调用函数l若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换-函数调用转换lvoid型函数例 无返回值函数 void swap(int x,int y ) int temp; temp=x; x=y; y=temp; main() float a,b; int c; scanf(%f,%f,&a,&b); c=max(a,b); printf(Max is %dn,c);max(float x, float y) float z; z=xy?x:y; return(z)
25、;函数的调用调用形式 函数名(实参表);说明:l实参与形参个数相等,类型一致,按顺序一一对应l实参表求值顺序,因系统而定(Turbo C 自右向左)例 函数说明举例main() float a,b; int c; scanf(%f,%f,&a,&b); c=max(a,b); printf(Max is %dn,c);max(float x, float y) float z; z=xy?x:y; return(z);int型函数可不作函数说明(Borland C+不行)/*ch7_5.c*/float add(float x, float y) float z; z=x+y; return(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 辅导 整理
限制150内