C语言程序设计教师:谢竞博关于这门课
教材:
谭浩强,,C程序设计,(第三版 ),清华大学出版社,2005
参考教材:
(美 )琼斯,艾特肯,21天学通 C语言 (第 6版 ),信达工作室译,人民邮电出版社,2003
张基温等,,C语言程序设计案例教程,,清华大学出版社,2004
Brian W.Kernighan,Dennis Ritchie.,C 程序设计语言(英文影印版)》(第二版),清华大学出版社或机械工业出版社,
课程计划:
理论学时,32学时 √
实验学时,16学时 (由实验中心的老师上 )
所需基础知识:
,大学计算机基础》,尤其是数制转换、内存、程序设计等相关章节。(不熟悉的再复习一下)
时间非常非常有限,主要靠大家课前 预习 和课后 自学 !
关于我
部门:计算机基础教学部 (二教二楼 )
办公地点:数理学院楼上 206( 62461048)
个人主页(可查阅课程相关资料和重要通知):
http://cs.cqupt.edu.cn/xiejb
E-mail,xiejb@cqupt.edu.cn( 交作业和答疑)
OICQ,812824580
为大家提供一个邮箱:
登录 http://stu.cqupt.edu.cn
用户名,xiejb
密码,654321
上外网不方便的同学可使用该信箱给我发信。该信箱里也有一些重要的参考资料关于这门课
考核方式:
平时* 30%+期末考试* 70%
平时成绩由课堂表现决定。
交作业方式:
上交电子作业至我的邮箱
xiejb@cqupt.edu.cn
第 1讲 C语言概述
(教材第一章)
内容:
了解 C语言的历史及特点。
认识简单 C程序,掌握 C程序的基本组成,
理解编译预处理命令、主函数、语句、格式化输出函数 printf(),注释、简单表达式等语法。(重点)
运行 C程序的步骤与方法(重点)
为什么要学习程序设计?
程序设计语言老兄:帮我计算一下
1+ 1=?
自然语言机器语言人发出的指令要按一定的 规则 来书写再 翻译 或 解释 成计算机所能看懂的机器语言
由编译软件自动实现
这就是 程序设计的主要内容或目的,也是我们 课堂上要讲的主要内容,就是如何将我们的指令按照某一种程序设计语言的规则写成程序 !
C语言的发展简史
原型 ALGOL 60语言
1963年 CPL(Combined Programming Language)
1967年 BCPL语言
1970年 B语言
1973年 C语言
1978年,The C Programming Language》
1982-90年 制定现行的 C语言标准 --ANSI C
1983年 C++
C语言的设计者
Dennis M,Ritchie
和 Unix的设计者 Ken Thompson接受美国国家技术勋章
1.1 初识 C语言程序- 重点!!
/*ex101.c-在屏幕上输出 This is a C program,*/
#include <stdio.h>
int main( )
{
printf(“This is a C program.\n”);
return (0);
}
任何 C程序都 必须有且只能有一个主函数
main(),它是程序的入口,也是程序的出口。
其中,main是 函数名,()内可以包含一些 参数 ;{ }的内容称为 函数体,各种功能 语句 书写在函数体内;不同语句之间用 分号 分隔;
main函数的格式可以是:
int main() void main()
{ {
…… 或 ……
return 0;
} }
一般情况下,每个程序都由一至多个函数组成;
C语言的 库函数,使用这种类型的函数之前要在前边加上类似 #include <stdio.h>的 预处理命令
该函数的功能是向显示器输出一段文字,具体内容括在双引号内 ;
编译预处理命令
总在最 开始,每行以 #开始
将要包含的文件添加在<>内语法 !
编程需要严格遵守的规则,
但还不是最重要的。
设计思路才是至关重要的。
注释 写在 /* */中间
给 程序员 自己看的
最好养成加注释的习惯注释
C程序中的 /* … */ 之间的内容称为注释,是程序编写者给程序阅读者留下的一些说明(注释),
以帮助阅读者理解程序。编译器不对注释进行编译,只将它们当作空白看待。
注释中的,ex101.c”,是说明这个程序保存在文件 ex101.c中。后边的内容表明这个程序的功能。
一般在函数前和重点语句后加注释,对函数功能和语句的含义进行解释说明。
课下自学!
库函数与文件包含命令 include
C语言提供了很多 库函数,可以直接 调用 。
例如:函数 printf就是系统提供的一个库函数,它的作用是输出“”中的内容。
使用库函数之前,必须要 include相对应的函数声明文件。
为了用户方便,系统定义库函数时,把一类相关库函数的说明信息,分别写在一些文件中。本例中使用的
printf 的有关说明信息,写在文件 stdio.h中。所以,
要想用 printf函数,就要在前面 #include<stdio.h>
课下自学!
main函数与操作系统的关系
int main()
{……
return 0;
}
操作系统计算机硬 件发布执行 命令返回信息当用户通过命令执行一个程序时,操作系统就调用其 main函数,并执行其中的语句。如果有输出,操作系统就把它交给输出模块输出到设备上 。
课下自学!
函数参数
函数后面的圆括号用于放函数的 参数 。有的函数要有参数,有的函数也可以没有参数。如本例中使用的主函数就没有参数,
而 printf函数有一个参数。这里,printf函数的参数是括在双引号中的一串字符,称为 字符串 。 \n代表换行。
注意,main也是可以带参数的,会在后面章节讲到。
课下自学!
语句
C语言的函数体由一些 语句 组成。
每个语句由一个 分号 结束。
本例中,主函数有两个语句:
printf (“This is a C program.”);
return (0);
课下自学!
C语言程序的基本结构-重点!
编译预处理命令 1
编译预处理命令 2
……
函数 1
函数 2
……( 其中必有一个函数叫 main)
一个复杂实例,也是我们的学习目标简单的 C程序
/*ex101.c-在屏幕上输出 This is a C program,*/
#include <stdio.h>
int main( )
{
printf(“This is a C program.\n”);
return (0);
} 有了这个程序,计算机就能工作了吗?
万里长征只走了一半
C
语言在屏幕上输出 This is a
C program
机器语言人发出的指令要按一定的 规则 来书写再 翻译 或 解释 成计算机所能看懂的机器语言
???
/*ex101.c-在屏幕上输出 This is a C
program,*/
#include <stdio.h>
int main( )
{
printf(“This is a C
program.\n”);
return (0);
}
另一半是:编译、连接和执行
(整个过程如下图 )
filename.c编辑
(ed
it
)
编辑器
filename.obj预处理编译
(c
om
pile)
编译器
filename.exe
库函数和其他目标模块链接
(l
in
k)
链接器出错出错执行
(e
xc
ute/r
un)
结果出错 出错调试 debug
C语言程序开发环境
gcc( GUN C Compile,UNIX以及 Linux
平台上 C/C++标准编译器)
Turbo C 2.0( DOS平台上的 C编译器)
Visual C++( Windows平台上的 C/C++编译器)
TC2.0
Turbo C For Windows 3.1
Visual c/c++ 6.0
信科三楼机房装有这个软件,也可到重邮软件中心下载 visual
studio 6.0安装第 1步:编辑源程序
编辑源程序,就是用高级语言书写源程序。
源程序的编辑要在编辑器中进行。编辑器具有字符的修改、添加等功能。编辑好的源程序,可以先以源程序文件的形式保存起来。如前所述,C语言源程序的文件名后缀为,c。
在 VC中的操作顺序是,File->new->file-
>c++ source file(同时在右边确定文件夹和文件名 *.c)->在空白处将源程序写入。
第 2步:编译
编译就是把用 C语言描述的程序翻译成计算机可以直接理解并执行的机器语言命令组成的程序。 C语言的编译过程分为两个阶段:首先是编译预处理,系统要先扫描程序,
处理所有预处理命令,如把文件包含命令要求的文件包含(嵌入)到程序中。然后才开始编译。编译后得到的文件称为目标文件。目标文件就是用机器语言描述的文件。 C语言的目标文件的后缀为,obj。目标文件的主文件名,一般与源程序文件名相同。
在编译过程中,还要对源程序中的语法和逻辑结构进行检查。编译任务是由称做编译器( compiler)的软件完成的。程序在编译过程中,也可能发现错误。这时要重新进入编辑器进行编辑。
在 VC中的操作顺序是,compile->compile
第 3步:链接
链接是将与当前程序有关的、已经有的几个目标模块链接在一起,
形成一个完整的程序代码文件。这些已经有的目标模块有:
· 库函数:如前面使用的 printf;
· 对于大的程序,常常分成几个模块,分别编写、编辑和编译,形成不同的目标模块。
经正确链接所生成的文件才是可执行文件。可执行文件的文件名后缀为,exe(有的系统为,out)。完成链接过程的软件称为链接器
( linker)。
程序在连接过程中,也可能发现错误。这时也要重新进入编辑器进行编辑。
在 VC中的操作顺序是,compile->build *.exe
第 4步:执行
链接后得到的可执行文件名,对操作系统来说,相当于一条命令。在操作系统提供的命令界面上打入这个命令,就可以开始执行这个程序。
在 VC中的操作顺序是,compile->excute
*.exe
或在你保存,c文件的文件夹下的 debug目录下找到,exe文件,直接双击。
总结:简单 C语言程序设计步骤
1,分析问题,设计解决方案
2,编写 C语言程序代码
3,上机操作(编辑、编译、链接、执行)
理论课的主要内容
实验课的主要内容
上述每个步骤都可能出现很多错误,具体有三种错误:语法错误、逻辑错误、运行错误。总之,出现错误就要进行 调试 。
调试 (debug):去掉程序中的错误的过程课堂编程练习
1,编写一个 C语言程序,在屏幕上显示 3行字符(自己选择)。
课堂练习的成绩计入平时成绩。!!!
练习题答案:
/*example1.c-在屏幕上输出三行字符,*/
#include <stdio.h>
int main( )
{
printf(“Learning C programming is hard but
interesting.\n”);
printf(“I love C language.\n”);
printf(“I love C programming.\n”);
return (0);
}
例 2:下面程序的运行结果是?
#include <stdio.h>
int main()
{
printf(“3+4=%d\n”,3+4);
printf(“2*3.14*5=%f\n”,2*3.14*5);
printf(“letter=%c\n”,’A’);
return (0);
}
请注意程序执行是有 顺序 的
%d,%f,%c分别对应三种数据类型,整数、实数、字符本课程学习方法
课前 按照 授课计划 上指明的进度 预习
上课认真听讲,课件可下载作为笔记
课下 参照教材 理解 课件上所讲的内容和相关知识点
完成作业 &上机调试作业
1、在屏幕上输出如下图形:
****
* *
* *
****
2、将例 2中的 %d,%f分别改为 %3d,%7.2f,再上机观察程序的运行结果。
要求:写出程序,并上机调试,尽量保证程序能够得到正确结果。交,c文件和一个文本格式的作业心得(可以注释的形式写在,c文件的末尾),并发送至我的邮箱
xiejb@cqupt.edu.cn
3、复习第 2章,预习第 3章。
教材:
谭浩强,,C程序设计,(第三版 ),清华大学出版社,2005
参考教材:
(美 )琼斯,艾特肯,21天学通 C语言 (第 6版 ),信达工作室译,人民邮电出版社,2003
张基温等,,C语言程序设计案例教程,,清华大学出版社,2004
Brian W.Kernighan,Dennis Ritchie.,C 程序设计语言(英文影印版)》(第二版),清华大学出版社或机械工业出版社,
课程计划:
理论学时,32学时 √
实验学时,16学时 (由实验中心的老师上 )
所需基础知识:
,大学计算机基础》,尤其是数制转换、内存、程序设计等相关章节。(不熟悉的再复习一下)
时间非常非常有限,主要靠大家课前 预习 和课后 自学 !
关于我
部门:计算机基础教学部 (二教二楼 )
办公地点:数理学院楼上 206( 62461048)
个人主页(可查阅课程相关资料和重要通知):
http://cs.cqupt.edu.cn/xiejb
E-mail,xiejb@cqupt.edu.cn( 交作业和答疑)
OICQ,812824580
为大家提供一个邮箱:
登录 http://stu.cqupt.edu.cn
用户名,xiejb
密码,654321
上外网不方便的同学可使用该信箱给我发信。该信箱里也有一些重要的参考资料关于这门课
考核方式:
平时* 30%+期末考试* 70%
平时成绩由课堂表现决定。
交作业方式:
上交电子作业至我的邮箱
xiejb@cqupt.edu.cn
第 1讲 C语言概述
(教材第一章)
内容:
了解 C语言的历史及特点。
认识简单 C程序,掌握 C程序的基本组成,
理解编译预处理命令、主函数、语句、格式化输出函数 printf(),注释、简单表达式等语法。(重点)
运行 C程序的步骤与方法(重点)
为什么要学习程序设计?
程序设计语言老兄:帮我计算一下
1+ 1=?
自然语言机器语言人发出的指令要按一定的 规则 来书写再 翻译 或 解释 成计算机所能看懂的机器语言
由编译软件自动实现
这就是 程序设计的主要内容或目的,也是我们 课堂上要讲的主要内容,就是如何将我们的指令按照某一种程序设计语言的规则写成程序 !
C语言的发展简史
原型 ALGOL 60语言
1963年 CPL(Combined Programming Language)
1967年 BCPL语言
1970年 B语言
1973年 C语言
1978年,The C Programming Language》
1982-90年 制定现行的 C语言标准 --ANSI C
1983年 C++
C语言的设计者
Dennis M,Ritchie
和 Unix的设计者 Ken Thompson接受美国国家技术勋章
1.1 初识 C语言程序- 重点!!
/*ex101.c-在屏幕上输出 This is a C program,*/
#include <stdio.h>
int main( )
{
printf(“This is a C program.\n”);
return (0);
}
任何 C程序都 必须有且只能有一个主函数
main(),它是程序的入口,也是程序的出口。
其中,main是 函数名,()内可以包含一些 参数 ;{ }的内容称为 函数体,各种功能 语句 书写在函数体内;不同语句之间用 分号 分隔;
main函数的格式可以是:
int main() void main()
{ {
…… 或 ……
return 0;
} }
一般情况下,每个程序都由一至多个函数组成;
C语言的 库函数,使用这种类型的函数之前要在前边加上类似 #include <stdio.h>的 预处理命令
该函数的功能是向显示器输出一段文字,具体内容括在双引号内 ;
编译预处理命令
总在最 开始,每行以 #开始
将要包含的文件添加在<>内语法 !
编程需要严格遵守的规则,
但还不是最重要的。
设计思路才是至关重要的。
注释 写在 /* */中间
给 程序员 自己看的
最好养成加注释的习惯注释
C程序中的 /* … */ 之间的内容称为注释,是程序编写者给程序阅读者留下的一些说明(注释),
以帮助阅读者理解程序。编译器不对注释进行编译,只将它们当作空白看待。
注释中的,ex101.c”,是说明这个程序保存在文件 ex101.c中。后边的内容表明这个程序的功能。
一般在函数前和重点语句后加注释,对函数功能和语句的含义进行解释说明。
课下自学!
库函数与文件包含命令 include
C语言提供了很多 库函数,可以直接 调用 。
例如:函数 printf就是系统提供的一个库函数,它的作用是输出“”中的内容。
使用库函数之前,必须要 include相对应的函数声明文件。
为了用户方便,系统定义库函数时,把一类相关库函数的说明信息,分别写在一些文件中。本例中使用的
printf 的有关说明信息,写在文件 stdio.h中。所以,
要想用 printf函数,就要在前面 #include<stdio.h>
课下自学!
main函数与操作系统的关系
int main()
{……
return 0;
}
操作系统计算机硬 件发布执行 命令返回信息当用户通过命令执行一个程序时,操作系统就调用其 main函数,并执行其中的语句。如果有输出,操作系统就把它交给输出模块输出到设备上 。
课下自学!
函数参数
函数后面的圆括号用于放函数的 参数 。有的函数要有参数,有的函数也可以没有参数。如本例中使用的主函数就没有参数,
而 printf函数有一个参数。这里,printf函数的参数是括在双引号中的一串字符,称为 字符串 。 \n代表换行。
注意,main也是可以带参数的,会在后面章节讲到。
课下自学!
语句
C语言的函数体由一些 语句 组成。
每个语句由一个 分号 结束。
本例中,主函数有两个语句:
printf (“This is a C program.”);
return (0);
课下自学!
C语言程序的基本结构-重点!
编译预处理命令 1
编译预处理命令 2
……
函数 1
函数 2
……( 其中必有一个函数叫 main)
一个复杂实例,也是我们的学习目标简单的 C程序
/*ex101.c-在屏幕上输出 This is a C program,*/
#include <stdio.h>
int main( )
{
printf(“This is a C program.\n”);
return (0);
} 有了这个程序,计算机就能工作了吗?
万里长征只走了一半
C
语言在屏幕上输出 This is a
C program
机器语言人发出的指令要按一定的 规则 来书写再 翻译 或 解释 成计算机所能看懂的机器语言
???
/*ex101.c-在屏幕上输出 This is a C
program,*/
#include <stdio.h>
int main( )
{
printf(“This is a C
program.\n”);
return (0);
}
另一半是:编译、连接和执行
(整个过程如下图 )
filename.c编辑
(ed
it
)
编辑器
filename.obj预处理编译
(c
om
pile)
编译器
filename.exe
库函数和其他目标模块链接
(l
in
k)
链接器出错出错执行
(e
xc
ute/r
un)
结果出错 出错调试 debug
C语言程序开发环境
gcc( GUN C Compile,UNIX以及 Linux
平台上 C/C++标准编译器)
Turbo C 2.0( DOS平台上的 C编译器)
Visual C++( Windows平台上的 C/C++编译器)
TC2.0
Turbo C For Windows 3.1
Visual c/c++ 6.0
信科三楼机房装有这个软件,也可到重邮软件中心下载 visual
studio 6.0安装第 1步:编辑源程序
编辑源程序,就是用高级语言书写源程序。
源程序的编辑要在编辑器中进行。编辑器具有字符的修改、添加等功能。编辑好的源程序,可以先以源程序文件的形式保存起来。如前所述,C语言源程序的文件名后缀为,c。
在 VC中的操作顺序是,File->new->file-
>c++ source file(同时在右边确定文件夹和文件名 *.c)->在空白处将源程序写入。
第 2步:编译
编译就是把用 C语言描述的程序翻译成计算机可以直接理解并执行的机器语言命令组成的程序。 C语言的编译过程分为两个阶段:首先是编译预处理,系统要先扫描程序,
处理所有预处理命令,如把文件包含命令要求的文件包含(嵌入)到程序中。然后才开始编译。编译后得到的文件称为目标文件。目标文件就是用机器语言描述的文件。 C语言的目标文件的后缀为,obj。目标文件的主文件名,一般与源程序文件名相同。
在编译过程中,还要对源程序中的语法和逻辑结构进行检查。编译任务是由称做编译器( compiler)的软件完成的。程序在编译过程中,也可能发现错误。这时要重新进入编辑器进行编辑。
在 VC中的操作顺序是,compile->compile
第 3步:链接
链接是将与当前程序有关的、已经有的几个目标模块链接在一起,
形成一个完整的程序代码文件。这些已经有的目标模块有:
· 库函数:如前面使用的 printf;
· 对于大的程序,常常分成几个模块,分别编写、编辑和编译,形成不同的目标模块。
经正确链接所生成的文件才是可执行文件。可执行文件的文件名后缀为,exe(有的系统为,out)。完成链接过程的软件称为链接器
( linker)。
程序在连接过程中,也可能发现错误。这时也要重新进入编辑器进行编辑。
在 VC中的操作顺序是,compile->build *.exe
第 4步:执行
链接后得到的可执行文件名,对操作系统来说,相当于一条命令。在操作系统提供的命令界面上打入这个命令,就可以开始执行这个程序。
在 VC中的操作顺序是,compile->excute
*.exe
或在你保存,c文件的文件夹下的 debug目录下找到,exe文件,直接双击。
总结:简单 C语言程序设计步骤
1,分析问题,设计解决方案
2,编写 C语言程序代码
3,上机操作(编辑、编译、链接、执行)
理论课的主要内容
实验课的主要内容
上述每个步骤都可能出现很多错误,具体有三种错误:语法错误、逻辑错误、运行错误。总之,出现错误就要进行 调试 。
调试 (debug):去掉程序中的错误的过程课堂编程练习
1,编写一个 C语言程序,在屏幕上显示 3行字符(自己选择)。
课堂练习的成绩计入平时成绩。!!!
练习题答案:
/*example1.c-在屏幕上输出三行字符,*/
#include <stdio.h>
int main( )
{
printf(“Learning C programming is hard but
interesting.\n”);
printf(“I love C language.\n”);
printf(“I love C programming.\n”);
return (0);
}
例 2:下面程序的运行结果是?
#include <stdio.h>
int main()
{
printf(“3+4=%d\n”,3+4);
printf(“2*3.14*5=%f\n”,2*3.14*5);
printf(“letter=%c\n”,’A’);
return (0);
}
请注意程序执行是有 顺序 的
%d,%f,%c分别对应三种数据类型,整数、实数、字符本课程学习方法
课前 按照 授课计划 上指明的进度 预习
上课认真听讲,课件可下载作为笔记
课下 参照教材 理解 课件上所讲的内容和相关知识点
完成作业 &上机调试作业
1、在屏幕上输出如下图形:
****
* *
* *
****
2、将例 2中的 %d,%f分别改为 %3d,%7.2f,再上机观察程序的运行结果。
要求:写出程序,并上机调试,尽量保证程序能够得到正确结果。交,c文件和一个文本格式的作业心得(可以注释的形式写在,c文件的末尾),并发送至我的邮箱
xiejb@cqupt.edu.cn
3、复习第 2章,预习第 3章。