C语言程序设计
2002 年 7月
1.1 程序设计语言使用计算机处理具体问题时,包括两方面活动:
一是认识、了解具体问题域,分析出有些什么数据,
数据间的关系,等等;
二是描述,用一种语言把分析结果描述出来,最终的描述必须使用一种能被计算机读的懂的语言,即编程语言或 程序设计语言 来表达。
客观事物
(问题域)
计算机自然语言程序设计语言语言的鸿沟对问题域的认识(人)
编程(人)
语言的过渡程序的理解和执行客观事物
(问题域)
计算机自然语言机器语言语言的鸿沟对问题域的认识(人)
语言的过渡程序的理解和执行客观事物
(问题域)
计算机自然语言机器语言语言的鸿沟对问题域的认识(人)
语言的过渡程序的理解和执行汇编语言汇编语言程序机器语言程序翻译汇编客观事物
(问题域)
计算机自然语言机器语言语言的鸿沟对问题域的认识(人)
语言的过渡程序的理解和执行汇编语言高级语言高级语言程序机器语言程序翻译编译客观事物
(问题域)
计算机自然语言机器语言语言的鸿沟对问题域的认识(人)
语言的过渡程序的理解和执行汇编语言高级语言专用语言
C语言的主要特点
1。 C的语言特点
( 1) 表达能力强;
高级特性:有丰富的数据类型等等低级特性:能直接访问内存物理地址、寄存器
( 2) 流程控制结构化、程序结构模块化;
( 3) 语言简练;
C,% PASCAL,MOD
{ … } BEGIN … END
( 4) 使用灵活。
非强类型、不同类型数据间能相互赋值 ‘ a’-32
C语言的主要特点 (续)
2。 C的应用特点
( 1) C程序代码质量高
C语言的代码质量可与汇编语言媲美
( 2)可移植性好可移植性指将一个程序不作改动或稍加改动就能从一个机器系统上移到另一个机器系统上运行
1,算法的基本概念计算机为解决某一问题所需的方法和步骤成为 算法数值计算 求方程解、积分等分类非数值计算 分类排序、查找、绘图等
1.2 算法及其表示特性:
( 1) 有穷性,一个算法包含有限步骤、经过有限步
(或有限时间)后必须终止。
( 2) 确定性,每一步不能有两种以上的解释。
( 3) 有输入:
( 4) 有输出:
( 5) 有效性(可行性),算法每一步能被有效执行。
2.算法的表示
( 1) 自然语言;
( 2) 程序设计语言;
( 3) 图形表示:
a,流程图(或框图) ;
b,NS图;
c,PAD图。
符号 符号名称 意义 例起止框 表示算法的开始和结束。
判断框 选择控制:根据框中条件从两种可选的动作中选一执行。
处理框 表示按顺序执行的处理。
调用框 表示调用子程序(函数和过程)。
流程线 表示两步骤相邻,且执行循序从箭尾一方到箭头一方。
连接点 连接点必须以相同形式成对出现,用于表示一条流程线被断开后的两端点。
流程图常用符号开始 结束
i≤10
s=0;
i=1;
求 X的平方根
i≤i
j=j+1 j=j+1
i≤10
j=j+1A
A
3.算法的表示举例 开始结束
s=0;
i=1;
求 i的平方根赋给 t
i≤10
输出 S
i=i+1
s=s+t
求,S=
( 1)用变量 s存放各项的累加和,初值为 0;
变量 i作为项数计数器,初值为 1。
( 2) 如果 i≤10则计算 s,否则转步骤( 3),
计算 s:
( 2) -1 求 i的平方根赋给变量 t;
( 2) -2 s=s+t;
( 2) -3 i=i+t;
( 2) -4 转步骤( 2);
( 3) 输出 S,结束。
10
1n
n
3.算法的表示举例 开始结束
s=0;
i=1;
求 i的平方根赋给 t
i≤10
输出 S
i=i+1
s=s+t
求,S=
( 1)用变量 s存放各项的累加和,初值为 0;
变量 i作为项数计数器,初值为 1。
( 2) 如果 i≤10则计算 s,否则转步骤( 3),
计算 s:
( 2) -1 求 i的平方根赋给变量 t;
( 2) -2 s=s+t;
( 2) -3 i=i+t;
( 2) -4 转步骤( 2);
( 3) 输出 S,结束。
10
1n
n
A
A
1.3 C程序的基本结构例 1.1 建立一个文件名为 exam1-1.c的 C源程序(简称 C程序)
#include <stdio.h>
void main(void)
{
printf(“The C programming language\n”);
}
每一个 C程序有且仅有一个名为 main()的主函数,标识程序的执行起点;
printf为 C的标准库函数,用于输出;
#include 编译程序的预处理控制例 1.2 建立一个文件名为 exam1-2.c的 C源程序
/* exam1-2 求两个数中的较大一个,并输出 */
#include <stdio.h>
void main(void)
{
int a,b,c;
scanf(“%d%d”,&a,&b);
if (a>b) c=a;
else c=b;
printf(“max=%d\n”,c);
}
/* 。。。。。 */ 表示注释,起说明作用,不影响程序执行结果;
int a,b,c; 说明语句,说明了三个能在主函数中使用的变量;
scanf为 C的标准库函数,用于输入。
例 1.3 建立一个件名为
exam1-3.c的 C源程序
#include <stdio.h>
int max(int x,int y)
{
int z;
if (x>y) z=x;
else z=y;
return (z);
}
void main(void)
{
int a,b,c;
scanf(“%d%d”,&a,&b);
c=max(a,b);
printf(“max=%d\n”,c);
}
max为用户自定义函数名;
int x,int y 中的 x,y为形式参数
max(a,b)为函数调用,其中 a、
b为实际参数;

C程序基本结构小结
1) C程序的组成一个 C程序可有若干个函数组成,其中有且仅有一个名为 main()的主函数,
#include <stdio.h>
int f(…)
{ … }
int g(…)
{ …}
void main(void)
{ …}
int h(…)
{ …}
#include <stdio.h>
void main(void)
{ … }
int f (…)
{ …}
float f(…)
{ …}
int h(…)
{ …}
#include <stdio.h>
int main(…)
{ … }
int g(…)
{ …}
void main(void)
{ …}
int h(…)
{ …}
正确错误错误
2)函数的组成
int max(int x,int y)
{
int z;
if (x>y) z=x;
else z-y;
return (z);
}
函数头部
(函数说明)
函数体返回类型 函数名 形式参数哑函数,符合函数定义规则,但不执行任何操作的函数
void dump(void)
{
}
3) C函数库
C函数分两类:标准函数和用户定义函数。标准函数有 C编译程序提供
4)书写格式
A)一个语句可写成多行;
e=a+b+
c+d;
B)多个语句可写成一行;
s=0; i=i+1;
C)缩进编排:同一层次上下对齐、不同层次前加空格缩进;
scanf(“%d%d”,&a,&b);
if (a>b)
c=a;
else
c=b;
scanf(“%d%d”,&a,&b);
if (a>b)
c=a;
else
c=b;
1.4 C语言的基本语法单位基本语法单位,指具有独立意义语法的最小语法成分。
单词,在 C语言中,基本语法单位被称为单词。
组成单词的基本符号是字符。
在 C语言中,表达式、语句和函数等都有单词按一定语法规则构成。
单词种类:
( 1) 标识符号 ( 2) 关键字
( 3) 常量 ( 4) 字符串
( 5) 运算符 ( 6) 分隔符
1.4.1 标识符
A)标识符的含义:
用户或系统定义的常量、变量、类型、程序和过程的名字。
B)标识符的组成规则
标识符是以字母( A~ Z,a~ z)或下划线 _ 开头的字母、下划线,数字( 0~ 9)序列。
例:合法的标识符,a b1 ab ab_cd_12 _
_ _12
不合法的标识符,4ab order.no a-b
C)标识符的有效长度标准 C规定标识符的有效长度为 31个字符。
例,main()
{int abcdefghijklmnopqrstuvwxyz12345;
int abcdefghijklmnopqrstuvwxyz1234567;
}
会引发错误,提示变量重复定义;而
main()
{int abcdefghijklmnopqrstuvwxyz12345;
abcdefghijklmnopqrstuvwxyz1234567=10;
}
却能通过编译。
1.4.2 关键字关键字是由编译程序预先的、具有固定含义的、均由小写字母构成的标识符。
用户不能将关键字用来定义常量、变量、类型、程序和过程的名字。所以关键字又称为保留字。
ANSI C标准中定义了 32个关键字:
auto double int struct break else
long switch case enum register typedef
char extern return union const float
short unsigned continue for signed void
default goto sizeof volatile do if
static while
提示:
1,C标识符中的字符具有大小写敏感性:
例,pq 与 PQ 表示不同的 用户标识符;
int 是 关键字,用户不能将其用来定义常量、变量、
类型、程序和过程的名字,但 INT却不 是 关键字。
2,避免用字符 l和 o
例,al 与 a1
bo 与 b0
1.4.2 分隔符空格字符、水平制表和垂直制表符、换行符、换页符及注释统称为 空白字符,空白字符在语法上起分隔单词的作用。
例:定义整型变量 a,b,c:
int a,b,c;
其中 int 与 a 间至少需要一个空格字符。
1.5 运行 C程序的一般步骤编辑 编译 连接 运行终端输入
(程序员)
源程序
( test.c)
目标程序
( test.obj)
执行程序
( test.exe)
显示结果或打印库函数
(*.lib)
有错 有错 有错课外作业:
1,什么是算法?算法具有哪些重要特性? 如何用传统流程图描述算法。
2,C语言的基本语法单位包括哪些元素? C语言的标识符的含义是什么?有哪些规定?
3,一个 C程序的执行是从 。
A),本程序的 main函数开始,到 main函数结束 。
B),本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 。
C).本程序文件的第一个函数开始,到本程序 main函数结束 。
D).本程序文件的第一个函数开始,到本程序 main函数结束。
4,列举出下列合法的用户标识符 。
A float b-a _123 p_0 1a0 goto temp
do _A int INT _