C语言程序设计
( 2008版)
讲 授,韩晓芸
Email,hxylc@fzu.edu.cn
hxy@fjtv.net
福州大学数学与计算机科学学院
C语言程序设计复习
C语言概述
数据类型与表达式
顺序、选择、循环结构设计
数组应用
函数应用
指针应用
结构体、位运算、文件操作
C语言概述
1,程序构成,以函数为基本单位;
2,主函数,main(),程序开始运行位置。
3,调用关系,相互调用、嵌套调用、递归调用。
4,头文件,作用及使用方法 #include
5,注释标志,/* xxx */
6,上机步骤,见下页
C语言概述
C语言上机步骤:
双击桌面 TC图标; Turbo C2.0
打开程序,File-load或者 F3,回车,光标键选择文件,不要输入!
保存程序,File-save或者 F2
运行程序,Run- run或者 ctrl+ F9
C语言概述
6) 重新运行,alt+c→compile → make
7) 进入编辑状态,Alt+ E,F6切换
8) 死循环,Ctrl+Pause →ESC
9) 菜单激活,F10
数据类型与表达式
1,常量表示方法,2.1,?a?,”didi”,
3L,1.2e2,符号常量
2,整数除法,5/2 →1.0*5/2
3,变量名,合法变量名称,保留字不作变量名,其中标准函数名可以做变量名。
数据类型与表达式
4,类型转换,强制转换,自动转换
5,实数运算问题,有效位数,实型的判断,大数和小数(忽略)的运算
6,转义符,计算字符串的长度,\b、
\0 书 P48
数据类型与表达式
7,char和 int,相互转换,ASCII码。
8,表达式,运算顺序,结果,%,/,
&&,||,sizeof(),复合运算等
9,自增 /减,k++,++k
数据类型与表达式
10.=和==的区别,赋值,比较
if(k=3) printf(“hi”);
if(k==3) printf(“hi”);
11.逗号表达式:
x=3,4; x=(3,4);
顺序结构
1,ch=getchar(),获得一个输入的任意字符。
多个要连续输入,且都是有效字符。
2,gets(s1),输入一个字符串数组,回车结束。
puts(s1),输出 s1地址开始的字符串。
3,scanf(),表达式的类型与控制符类型要一致,
简单变量或数组元素要加 &。 %s的输入以 第一个空格 结束,即不能输入空格字符 。
顺序结构
4.printf(),% o,% x,%,2f,% 3d
P81,使用 scanf函数时应注意的问题”
long输入 /出时使用% ld
输出输入控制符和表达式类型要匹配!
5.例题复习,
P83 例 4.11字母大小写转换程序。
选择结构
1,if条件,关系表达式,逻辑表达式,
赋值表达式,简单变量表达式如,k==10 k%2!=0 j=4 k++ n
C语言规定,非 0值 都是真,效果同 1。
注意,||,&&的逻辑运算顺序和结果选择结构
2,if- else结构,if和 else之间只能有一条语句。可以是一条简单语句,也可以是一条复合语句。当 if块中有多条简单语句时 一定要使用 { }复合语句 !
3,else,要和 if配对使用,且 else后不能直接加条件!
选择结构
4,else if结构,否定上层 if条件,且还有条件限制时使用,一般多分支情况使用该结构,而不能简单使用多个 if单独判断!
5,switch结构:
多分支时使用,该结构执行满足的第一个条件分支及其后所有分支的语句!
选择结构
6,break:
可以在 switch中使用,表示不执行后续分支!
可以在循环结构中使用,表示结束本层循环结构。
选择结构典型问题:
奇偶数判断
水仙花数判断
大小写字母转换循环结构
1,for结构,括号中三个部分,;隔开,理解三个部分的执行顺序。确定循环结束后循环变量的值。 for() ; 表示空循环 。适用于 整数型范围,已知循环次数 类处理。
数组的应用,累加,连乘,个数已知型 等。
循环结构
2,while结构,while()前循环变量的初始化,条件非 0执行循环,循环体中破坏语句的书写。
终值已知型,for()型,其他所有类型。
字符数组的应用 ;多循环条件类。
循环结构
3,do-while结构,较少使用,先执行一次再判断,循环条件的表示和结束同 while结构。
4,brak/continue语句,break结束本层循环,
跳到 }后执行; continue结束本次循环,返回循环条件的判断,开始下次循环。
循环结构典型问题:
输出所有水仙花数
累加,连乘
素数的判断
完数的判断
各数位之和
数的反转
数的进制转换数组的应用
1.数组元素,下标从 0开始,先赋值后使用。
2.字符数组,最后一个元素保留给‘ \0’,
初始化可以同一般数组,也可以给定一个字符串常量,,1244”,但字符个数小于数组元素个数。
数组的应用
3,字符数组输出,%c,数组元素,控制输出个数。 %s,数组名,到第一个‘ \0’结束。
4,gets/puts,输入输出字符串函数,
使用数组名,要加头文件 stdio.h。
数组的应用
5,其他字符串函数,strcat(),strcpy(),
strcmp(),strlen(),strlwr(),
strupr()。
6,字符串,处理字符串时,最后要确保字符串结束标志的存在,即‘ \0’。
数组的应用典型问题:
数列,数组最值,排序 (冒泡法、选择法),查找 (顺序,二分),数组 插入 /
删除,矩阵处理 (行列的最值,对角线元素),字符串处理 (复制、比较大小、
删除)
函数的应用
1.函数定义和声明,定义表示要完成什么功能,声明如同变量的声明,形式和定义时一样,形参变量名可以省略。有返回值的函数一定声明类型!
2,函数调用,有返回,无返回值。有返回值时引用类型要和定义的一致!
函数的应用
3,形参 /实参,类型和个数一致,按照位置对应传递,值传递方式!参数为地址或指针时,实际指向同一个地址,修改的值双方有效!
变量地址、数组名、指针
4,变量类型:全局,局部,static,auto,
register,extern。
函数的应用典型问题:
最大公约数,数组排序,数组最值,
判断数 (返回数字 /字母),计算阶乘注意,指针、数组名、变量地址作为参数的函数实现 。
指针应用
1,指针与指针变量:
地址,保存地址的变量;
2,指针变量的类型:
要与指向的变量类型一致!
2,运算,&,*
&k *p *(p+i) *(a+i)
指针应用
4,指针参数,地址、指针、数组名、字符指针,元素首地址等参数;
双方修改对应地址的数据值都有效的!
5,数组指针,指向某个元素的地址,指向数组的指针 p的运算,*p++,(*p)++
*(p+i) *p++ 中 ++优先,*后运算指针应用
6,字符串指针,字符串的末尾要加‘ \0’,
即 *p=‘\0’; p++;
while(*p!=?\0?) { p++;}
while(*p++!=?\0?) { }
while(*(p+i)!=?\0?) { i++;}
7,argc/argv,所有部分的个数,所有部分的字符串形式 。 char *argv[]
指针应用典型问题,
字符串的处理 -大小写转换、统计个数、
复制、比较大小交换两个数的值 -函数,地址,指针数组 -排序、最值、删除、插入结构体应用
1,结构体变量,定义,成员的访问,;
2,结构体指针,定义,成员的访问 -> ;
3,结构体数组与指针,p++;
4,链表处理,插入、删除等;
5,共用体,大小等于最长成员的大小,其值为最后赋值的成员有效。
结构体应用
6,枚举型,序号比较大小;
7,typedef,不能定义新类型,只是已有类型的别名。
位运算
1,二进制运算,0,1
2,运算符,~,&,|,>>,<<。
如,3>>2
5|3
文件操作
1,文件类型指针变量,FILE *fp;
2,函数,fopen(),fclose()。
3,常见用法,打开文件,文件指针,文件指针操作函数考试说明
选择题,表达式的值,++,- -,switch
结构,图形,分支结构,概念。
程序填空题,填写一行。计算表达式,赋初值,判断,循环变量 ++,变量定义,函数声明,整数整除表达式
程序补充,函数体。判断数字,表达式,
分支结构,累加,连乘 …,.
考试说明
注意事项
( 1) { }的配对
( 2) 缺少 ;,,& 等 ;
( 3) 变量初值,sum=0,1;
( 4) =与 ==,比较,赋值 ;
( 5) 类型转换,/运算,double;
( 6) 分号,for()后,while()后,if()后等;
考试说明
编程题,
( 1) 分段计算,if- else嵌套
( 2) 数学公式,分数,double,分子分母的变化规律,数学函数 exp,log,
log10,fabs,abs,sin,cos,
pow,sqrt
考试说明
编程题,
( 3) 函数计算 n!,累加
( 4)已知当前项终值,或者项数确定的累加连乘运算;
( 5) 数组排序
( 6) 数组求最值考试说明
编程题:
( 7) 数组元素的删除,插入
( 8) 数字的判定,素数,水仙花数,完数;
( 9) 数列,杨辉三角,F氏数列;
( 10) 数制转换,2进制,10进制,8进制;
( 11) 矩阵运算,赋值,求最值等;
考试说明
编程题:
( 12) 数组元素个数统计,符合某条件
( 13) 大小写转换,+- 32;
( 14) 字符转换数字,‘ 2’ -------2
考试说明典型题目:
1、分段函数的计算。数学表达式书写
2、将数组 a中所有数字进行大小排序。
3、统计字符数组中大写字母的个数。
4,判断数 n是否为素数。
5、判断数 n是否为水仙花数?
6、计算数 n的所有因子之和。
考试说明典型题目:
7、计算字符串中数字字符的累加和。
8、指针交换两个数的值。地址、指针
9、地址参数得到计算结果。
10、数列的累加和。分子 分母
11、阶乘表达式的累加和(单层循环)
12、数组的查找、插入、删除。
13,标志变量的使用。