Welcome to
C语言程序设计
(C programming)
谢竞博
2
本讲内容
课程介绍
简单 C程序设计
3
关于我
姓名:谢竞博
部门:计算机基础教学部 (二教二楼 )
个人主页(可查阅课程相关资料和重要通知):
http://cs.cqupt.edu.cn/xiejb
E-mail(课后有疑问可发信提问),
xiejb@cqupt.edu.cn
为大家提供一个邮箱:
登录 http://stu.cqupt.edu.cn
用户名,xiejb
密码,654321
我的助教:张斐 (负责批改部分作业和答疑)
他的 Email:beyond_9521@163.com
4
课程基本信息
教材:
甘玲等,,解析 C程序设计,,清华大学出版社,2007
参考教材:
(美 )琼斯,艾特肯,21天学通 C语言 (第 6版 ),信达工作室译,人民邮电出版社,2003
谭浩强,,C程序设计,(第三版 ),清华大学出版社,2005
Brian W.Kernighan,Dennis Ritchie.,C 程序设计语言(英文影印版),(第二版),清华大学出版社或机械工业出版社,
课程计划:
理论学时,32学时 √
实验学时,16学时 (由实验中心的老师上 )
所需基础知识:
,大学计算机基础,,尤其是第二、三、四章 (大家要提前准备一下)
时间非常有限,大家课下一定要 自学 !
5
C语言程序设计?C语言 程序 设计?
6
程序?
,高级汉语词典,中对,程序,的解释:
[procedure]∶ 处理业务 (如审议机构的业务 )既定方法
[order;sequence of events]∶ 事情办理的先后次序
例:学习这门课的程序是:
预习 —上课听讲 (提问 )—复习 —写作业 —上机调试程序
[program]∶ 数字计算机的编码指令的次序
计算机程序:
是能在计算机上解决问题的步骤,是人向计算机发出的指令序列。
人向计算机发出的指令序列是什么样的?
7
程序设计语言老兄:帮我计算一下
1+ 1=?
自然语言机器语言人发出的指令要按一定的 规则 来书写再 翻译 或 解释 成计算机所能看懂的机器语言
由编译软件自动实现
这就是 程序设计的主要内容或目的,也是我们 课堂上要讲的主要内容,就是如何将要完成的任务写成计算机能够明白并能够工作(运行)的程序设计语言 !
8
如何发号施令,让计算机计算 1+ 1?
机器语言:
10111000
00000001
00000000
00000101
00000001
00000000
汇编语言:
MOV AX,1
ADD AX,1
像不像天书?
C语言:
printf("%d\n",1+1);
C语言是程序设计语言中的一种,它有自己的书写要求(语法)。
http://people.ku.edu/~nkinners/Lan
gList/Extras/langlist.htm
简单介绍了约 2500种计算机语言
9
程序设计语言的发展简史机器语言汇编语言 用助记符表示指令由 0,1序列构成的指令码例,C++,JAVA,C#等面向对象的接近人类的自然语言和数学语言。例:
Fortran,Basic,C,Prolog等面向过程的例,SQL等面向问题的高级语言
10
为什么选择 C语言?
具备高级语言的优点,也具备低级语言的功能。所以也可以是一种中级语言
具有所有高级语言所具备的易学、易用、易读、易懂、强大、
可移植的特点 ;
与其它高级语言不同,它支持涉及硬件或系统底层的开发
历史悠久,战勋卓著
诞生于上世纪 70年代初,成熟于 80年代
很多重量级软件都是用 C写的,如 UNIX
上天入地,无所不能
几乎没有不能用 C写出来的软件,且代码简洁
没有不支持 C的系统 (兼容性强 )
很多流行语言,例如 C++,JAVA都以 C为基础
……
11
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接受美国国家技术勋章
12
二、简单 C程序设计
#include <stdio.h>
void main()
{
printf(“hello,world!\n”);
} /*C*/
将 自然语言 书写的任务 转换成 计算机能够执行的 C
语言 是我们理论课上的主要内容。
要完成的任务(例 1-3):
上机实现在屏幕上输出字符序列 Hello,World!”
有了这个程序,计算机就能工作了吗?
13
上一步得到的 *.exe可以执行了。
它也可以象 word一样双击使用了。
C程序上机步骤
将程序代码录入计算机,
得到 源程序 *.c(程序设计语言 )
由编译软件实现自动的语法检查
然后翻译成目标程序 *.obj(机器语言 )
与其它目标程序或库链接装配
生成可执行程序 *.exe(机器语言 )
编辑链接编译执行所有步骤都可以在编译软件中完成
14
编译软件(编译器、编译环境)
编译软件
本身也是一个程序
功能是:实现程序设计语言的编辑、翻译、连接、
执行等一系列过程
常用的 C编译器
Visual C/C++ 6.0
Turbo C 2.0(或 3.0)
Turbo C For Windows 3.1(或 4.5)
……
15
TC2.0
16
Turbo C For Windows 3.1
17
Visual C/C++ 6.0
18
总结:简单 C语言程序设计步骤
1,分析问题,设计解决方案
2,编写 C语言程序代码
3,上机操作(编辑、编译、链接、执行)
理论课的主要内容
实验课的主要内容
上述每个步骤都可能出现很多错误,具体有三种错误:语法错误、逻辑错误、运行错误。总之,出现错误就要进行 调试 。
调试 (debug):去掉程序中的错误的过程
19
最简单的 C程序的组成
/*在屏幕上输出,hello world!”*/
#include <stdio.h>
void main()
{
printf(“hello,world!\n”);
}
任何 C程序都 必须有且只能有一个主函数
main(),它是程序的入口,也是程序的出口。
C语言程序是由函数组成的,main是 函数名,
括号内可以包含一些 参数 ;花括号内的内容称为 函数体 ;
一般情况下,每个程序都由多个函数组成;
各种功能 语句 书写在函数体内;不同语句之间用分号分隔;
C语言的 库函数,使用这种类型的函数之前要在前边加上类似 #include <stdio.h>
的 预处理命令
该函数的功能是向显示器输出一段文字,具体内容括在双引号内 ;
编译预处理命令
总在最 开始,每行以 #开始
将要包含的文件添加在命令所在位置语法 !
编程需要严格遵守的规则,
但还不是最重要的。
设计思路才是至关重要的。
注释 写在 /* */中间
给 程序员 自己看的
最好养成加注释的习惯
20
语言的构成篇段句词字程序函数语句标识符或关键字字符自然语言 C语言
C语言与自然语言有很多相通性,
希望大家能够对照学习。
21
课堂练习在屏幕上显示:
******************************
* My homepage,*
* http://cs.cqupt.edu.cn/xiejb *
******************************
#include <stdio.h>
void main()
{
printf(“***************************** \n”);
printf(“* My homepage,* \n”);
printf(“* http://cs.cqupt.edu.cn/xiejb * \n”);
printf(“***************************** \n”);
}
22
如何学好这门课?
课前预习,课后复习。语法规则不详细讲,上课时详细讲重点和难点。请参照教学计划 按时自学
课后一定要 亲自上机 操作并尽可能 调试通过。
23
本讲小结
了解
( 1)计算机程序、程序设计的概念;
( 2) C语言的历史和特点;
掌握
( 1)简单 C程序的组成 (重点 );
( 2) C程序的上机过程 (重点&难点 ) 。
24
本次作业
自学大学计算机基础第二至四章,尤其是数制及相互转换、内存、指令、算法基础等重点内容
阅读教材第一章,预习第二章
参照例 1-3的程序,编程输出以下信息并 调试通过,
********************************
* This is my first C program,*
********************************
25
作业要求:
交 电子 作业,具体步骤请参考我的个人主页。
要求上机调试通过再交,并在每个源程序文件末尾注明 本次作业出现了哪些问题,怎样解决的,有哪些收获 。
若调试成功实在有困难,请同样在每个源程序文件末尾注明 本次作业出现了什么问题,你试过哪几种方法解决这些问题 。
例:
对教学方法及进度有何建议请及时提出 !