C程序分析报告课程总结.docx
《C程序分析报告课程总结.docx》由会员分享,可在线阅读,更多相关《C程序分析报告课程总结.docx(16页珍藏版)》请在冰豆网上搜索。
C程序分析报告课程总结
本课程总结
第一章引言
目的:
初步了解语言程序,学会使用语言环境编辑运行程序。
要求:
掌握程序设计语言、程序、算法的概念,了解算法的特点,熟悉算法的设计步骤,掌握用流程图表达算法的方法。
了解语言程序的结构特点,掌握在集成环境下编辑、运行简单语言程序的方法。
教学重点:
语言程序的结构特点;在集成环境下运行程序
教学难点:
算法设计和算法描述。
算法:
算法:
就是解决问题的方法。
计算机算法可分为两类别:
数值运算算法
—求数值解,用在科学计算。
非数值运算算法
—求非数值解,用在事物处理。
数值运算算法
例如:
已知三角形的底等,高等,求三角形的面积。
则
数值运算算法为:
、的值等于
、的值等于
、*计算面积
非数值运算算法
例如从湛江乘火车去北京开会,其算法为:
、买火车票
、按时到车站
、登上火车
、到北京站后乘电车到会场
、参加会议
语言的特点:
语言的基本结构
()函数是组成程序的基本单位,一个的源程序有且只有一个函数,但可以有若干个其它的函数。
()一个函数由两个部分组成:
函数的首部:
函数的第一行,包括函数名、函数类型、函数参数(形参)名、参数类型等。
函数体:
由声明和执行两部分组成。
()一个程序总是从函数开始执行的,不管函数在整个程序中的位置如何。
()程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
()每个语句和数据定义的最后必须有一个分号。
()语言本身没有输入输出语句,输入和输出的操作是由库函数和等函数来完成的。
()可用*……*或……对程序中的任何部分作注释,以增加程序的可读性。
标识符与关键字:
标识符用来表示函数、类型、变量的名称,使字母、下划线和数字的排列,必须用字母、下划线开头;关键字不能作为变量或函数名来使用。
语言程序的开发环境:
、
第二章语言的基础知识
目的:
通过对本章的学习,要求掌握语言的基本要素:
字符集、标示符、关键字;语言的基本数据类型。
要求:
掌握数据类型、常量、变量的概念及变量的定义和使用方法;
教学重点:
基本数据类型的表示方法,常量、变量的使用方法;
基本数据的三种类型及表示形式:
整型(十、八以数字开头、十六进制—以开头)
实型(十进制制、指数形式之前必须有数字,之后指数必须为整数)
字符型:
(注意常见的转义字符)
转义字符 转义字符的意义
\ 回车换行
\ 横向跳到下一制表位置
\ 竖向跳格
\ 退格
\回车
\ 走纸换页
\\ 反斜线符“\”
\‘ 单引号符
\”双引号
\ 鸣铃
\ ~位八进制数所代表的字符
\ ~位十六进制数所代表的字符
常量和变量:
变量类型与变量的定义
运算符:
符号、优先级别、结合方向;尤其注意前增、前减、后增、后减和条件运算
表达式:
表达式的值及类型(注意类型的强制转换)
第三章简单语句与顺序结构程序设计
目的:
通过本讲学习,达到进行顺序结构程序设计的目的。
要求:
了解程序的三种控制结构及其特点,能对任何一种结构绘制流程图;
掌握基本输出输入函数的基本格式及其主要用法;能够设计顺序结构程序。
教学重点:
()和()函数的基本格式及其主要用法。
、语言的基本语句
、字符输入、输出:
()
()
、格式输入输出:
(“”)
(“”)
重点:
格式字符及其含义
格式符
意义
以十进制形式输出带符号整数
以八进制形式输出无符号整数
以十六进制形式输出无符号整数
以十进制形式输出无符号整数
以小数形式输出单、双精度实数
以指数形式输出单、双精度实数
以或中较短的宽度输出单、双精度实数
输出单个字符
输出字符串
实例:
1:
("",,);
输入序列:
[]
结果:
,
2:
("",,,);
输入序列:
[]
结果:
,,
3:
("");
输入序列一:
[]
输入序列二:
[][]
输入序列三:
[]
[]
第四章选择结构程序设计
目的:
通过本讲学习,达到能够使用语句和语句进行程序设计的目的。
要求:
掌握语句三种形式()和执行过程,掌握语句嵌套概念;掌握条件运算;掌握多路分支语句的格式和执行过程。
教学重点:
语句和语句的格式和执行过程。
关系运算和关系表达式:
>、<、>、<、、
逻辑运算和逻辑表达式:
、、!
注意:
在多个运算符相连的表达式中,计算从左至右进行时,若遇到运算符左边的操作数为,则停止运算;在多个运算符相连的表达式中,计算从左至右进行时,若遇到运算符左边的操作数为,则停止运算。
条件语句的三种格式:
一、单支选择:
;
();
二、二支选择:
;
(>);
;
三、多支选择:
;
(>)
(>);
;
(>);
;
条件语句注意的问题:
1、()后面一般不跟“;”号。
如:
(>);;条件不影响后面语句。
2、与的配对
3、比较两个变量是否相等,必须用“”两个等号。
如:
();
4、()语句括号内的值为,表示条件不成立。
非表示条件成立。
分情况语句()语句和语句的使用
条件语句的应用例题:
、将字母换成小写。
()
{;
(“”);
(‘’<<’’);
(“”);}
2.给出一个位的正整数。
按反序打印每位数。
例如:
,应输出。
()
{;
(“”);
;
;
;
(“\”);
}
.语句的例子
例:
""
()
{[]"";
;
("\");
(;([])'\')
{()
{''('');;
'':
;
('*');
''('');}
('');}}
答案:
*
例:
""
()
{;
((())'\')
('')
{:
();
();
();
();
}
("\");}
若输入为,则输出是:
。
例:
()=?
()
{ ;
()
{ :
;
:
;
:
;
:
;
}
;
}
第五章循环结构程序设计
目的:
通过本讲学习,达到使用循环控制语句编写循环控制程序的目的。
要求:
掌握、、三种循环结构格式以及执行流程;掌握三种循环结构的区别。
重点:
、、三种循环的结构格式以及执行流程、语句和语句的功能及应用。
主要掌握循环三个变量:
循环从哪开始初始值
到哪结束终止值
步长多少。
(;<)(“”[]);
循环语句注意的问题:
1、()后面一般不跟“;”号。
如:
(;<);(“”[]);
管不了不后面的(“”[]);
语句。
2、()语句的步长变量必须在循环体内改变。
例:
;
(<)
{(“”);
;}
否则死循环。
3、()语句括号内的值为,表示条件不成立。
非表示条件成立。
例:
;
()
(<)
{
......
}
假若内循环体内不存在中止循环的控制语句,则内循环体执行的总次数为。
....
循环的应用例题:
一、一重循环的应用:
、输入个数据到数组[].
()
{[];
(<)
(“”[]);
}
、已知有十个学生的成绩,
求最高分和最低分,所在的下标。
()
{,;
[]{};
[];;
(<)
(<[]){[];;}
[];
(<)
(>[]){[];;}
(“\”);
}
二重循环的应用:
、打印图形
例题:
打印下面图案:
*******
*******
*******
*******
总共打印行,每行打印个星号。
分析:
要求打行.
每行打若干”*”
换行.
()
{;
(<)
{(<)
(“*”);
(“\”);}
}
、将数组
[]{};从小到大排序
()
{;
[]{};
(<)
(<)
([]>[])
{[][][][];}
(<)
(“,”[]);
}
第六章函数与编译预处理(函数基础)
目的:
通过本讲学习,达到能够设计和使用自定义函数进行编程的目的。
要求:
掌握自定义函数的一般结构及函数的定义方法;掌握形参、实参、函数原型等重要概念;掌握函数声明、函数调用的一般方法。
了解局部变量、全局变量和变量的存储类型的概念;熟悉型和型局部变量的特点和用法。
重点:
函数的定义、声明及调用方法(嵌套、递归调用)
子程序的作用:
1.完成主程序里的一块功能.
2.简化主程序.
3.主程序里的任一块功能可以单独的编成子程序.
函数小结:
.子程序一般有参数(有类型):
调用的实参和定义的形参必须数量、类型、顺序一致。
.子程序的名字是除了以外.
()叫主程序,是唯一的.
4.子程序可以多个.
5.子程序一般有语句.
6.函数声明的基本要求
函数举例:
求最大值
();
{;
>;
;}
()
{;
(“”);
();调用子程序
(“”);
}
、求出—内所有的素数,并按个一排打印出来。
()
{;
(<)
()
{;}
;
;
}
()
{;
(<)
{
(())
{()
(“\”);
(“”);
;}
}}
4、用函数递归实现求!
。
<>
()
{;
();
*();
;}
()
{;
;
(“”);
();
(“\”);}
、教材第页例
第页例
变量作用域与存储方式:
注意:
局部变量、全局变量的概念及特点
动态存储于静态存储比昂两的不同。
例:
写出程序运行结果
()
{ ;
;
;
;
();
}
()
{ ;
;
(<)
{ (",",());}
}
,,,,
预编译处理:
、宏定义:
无参数的宏定义、带参数的宏定义方法和注意事项
、文件包含
第七章数组(一维数组和二维数组)
目的:
通过本讲介绍,达到使用数组进行基本编程的目的。
要求:
掌握一维数组和二维数组的定义和初始化及引用;掌握一维数组的编程应用和二维数组的简单编程应用;了解数组作为函数参数的使用。
重点:
一维数组和二维数组的定义、初始化及其数组元素的引用方法。
数组的概念
•数组:
具有相同类型的数据组成的序列,是有序集合
数组定义形式:
数据类型数组名[常量表达式]
◆数据类型:
数组的基本类型
有整型、实型、字符型等。
[][][]
●数组名对数组的标识,遵循语言标识符规则
●常量表达式是数组元素的个数,即数组长度。
[]它必须是常量。
下标:
元素在数组的位置.
下标的上界:
下界:
数组的成员称为数组元素。
数组的基本应用:
(必须掌握)
.对一组数,求累加数,平均数。
.对一组数,求最大值或最小值和下标。
.将最小(大值)调到前面。
.对一组数,按最大(小)值排序。
.将字符数组从小到大排序.
.对字符数组,把字母换成.
.对一组数[],按给出的条件取数,赋给另外一个数组[]。
再对[]排序。
(难,等级考试题)
例题、对字符数组,把字母换成.
()
{;*‘’‘’‘’*
[]{‘’,’’,’’,…’’};
(<)
{([]>’’[]<’’)
[][];
([]’’)[]’’;}
}
、对一组数[],把偶数的元素,赋给另外一个数组[]。
再对[]排序。
(难,等级考试题)
()
{[];
[]{};
(<)
(([]))
[][];
(<)
(<)
([]>[])
{[][][][];}
(<)
(“,”[]);
}
第八章指针(指针基础)
目的:
通过本讲介绍,达到应用指针进行基本编程的目的。
要求:
掌握指针和指针变量的概念、掌握指针变量的定义、赋值方法,熟练使用指针访问简单变量;掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素;了解指针和二维数组的关系,掌握用指针表示二维数组元素的方法;掌握指针与字符串的关系。
例:
[]=?
[];
[];[];[];
*,*;
;
[];
很明显:
[][];
不同的语言编写的程序是不相同的。
但算法是相同的。
至今为止,我们只是描述算法,这些描述仅是便于我们阅读和理解,但计算机是无法识别的。
只有用计算机语言编写的算法,计算机才能识别和执行。
程序:
用计算机语言编写的算法。
或:
程序算法语法
编写程序也与写文章一样,是有结构的。
高级语言编写的程序其结构限制为:
顺序结构
选择结构
循环结构
三种结构。
称之为结构化程序。
程序编写格式:
1、说明语句
2、数据赋值或输入
3、运算
4、输出
<>如果用到数学库才写
()
{;;;必须有说明语句,
(“格式符“,变量名);如果有输入,写输入语句。
运算
(“格式符“,变量名);}必须有输出语句
程序编写容易犯的错误
1、有变量运算,没有说明语句。
2、输入语句(),变量前面没写””地址符。
3、用到大写字母开头或大写的函数名。
如()()
4、打印语句()“格式符”或变量名错。