




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计
陈晓方
中南大学信息科学与工程学院1雷琪(leiqi@)2024/6/25
中南大学信息科学与工程学院课程目标熟悉TurboC的上机操作环境C语言的基本概念会读、会编、会调试C语言多上机实践2C语言程序设计
第一章引言
陈晓方
中南大学信息科学与工程学院32024/6/25
中南大学信息科学与工程学院目录C程序的执行和集成开发环境C程序格式和结构特点C语言特点C语言发展历史简单C语言程序4什么是计算机程序?程序:一组计算机能识别和执行的指令只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成1.1C语言发展历史2024/6/25
中南大学信息科学与工程学院5程序设计语言的发展机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000加
10010000减用助记符号描述的指令系统如ADDA,B面向机器的语言程序设计是数据被加工的过程:结构化语言与非结构化语言客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对像1.1C语言发展历史2024/6/25
中南大学信息科学与工程学院自然语言和数学语言6产生背景:最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。产生过程时间:1972~1973地点:美国贝尔实验室目的:UNIX操作系统设计人:Ken.Thompson和Dennis.M.RitchieC标准标准C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1.1C语言发展历史2024/6/25
中南大学信息科学与工程学院BCPL语言B语言C语言精练、接近硬件,但过于简单,无数据类型具有多种数据类型7语言简洁、紧凑、灵活运算符丰富数据结构类型丰富具有结构化的控制语句语法限制不太严格,程序设计自由度大直接访问物理地址,直接操作硬件生成目标代码质量高可移植性好<>>>>>1.2C语言特点2024/6/25
中南大学信息科学与工程学院>>832个关键字:(由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile1.2C语言特点<2024/6/25
中南大学信息科学与工程学院99种控制语句 if()~else~ for()~ while()~
do~while() continue break switch
goto return1.2C语言特点返回2024/6/25
中南大学信息科学与工程学院1034种运算符:
算术运算符:+-*/%++--
关系运算符:<<===>>=!=
逻辑运算符:!&&||
位运算符:<<>>~|^&
赋值运算符:=及其扩展
条件运算符:?:
逗号运算符:,
指针运算符:*&
求字节数:sizeof
强制类型转换:(类型)
分量运算符:.->
下标运算符:[]
其它:()-1.2C语言特点返回2024/6/25
中南大学信息科学与工程学院11基本类型构造类型指针类型:能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。空类型void定义类型typedef数值类型字符类型char枚举类型enum整型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体unionC数据类型:1.2C语言特点返回2024/6/25
中南大学信息科学与工程学院12
对数组下标越界不做检查
对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用C语言允许程序编写者有较大的自由度,因此放宽了语法检查1.2C语言特点2024/6/25
中南大学信息科学与工程学院返回13C的编译系统简洁,很容易移植到新系统
在新系统上运行时,可直接编译“标准链接库”中的大部分功能,不需要修改源代码
几乎所有计算机系统都可以使用C语言1.2C语言特点2024/6/25
中南大学信息科学与工程学院返回14152024/6/25
中南大学信息科学与工程学院1.3
简单的C语言程序介绍/*example1.1Sayhellototheworld#include<stdio.h>main(){
printf(”HelloWorld”);}162024/6/25
中南大学信息科学与工程学院1.3
简单的C语言程序介绍/*example1.2calculatethecos(x)*/#include<stdio.h>#include<math.h>main(){
doublex,s;
printf(”inputnumber”);
scanf(“%lf”,&x);s=cos(x);
printf(”cos(%lf)is%if\n",x,s);}172024/6/25
中南大学信息科学与工程学院1.3
简单的C语言程序介绍/*example1.3calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){
int
a,b,c;
printf(”Pleaseinputvalueofaandb:\n”);
scanf(“%d%d”,&a,&b);c=add(a,b);
printf(”sum=%d\n",c);}/*Thisfunctioncalculatesthesumofxandy*/int
add(int
x,int
y){
return(x+y);}1.4
C程序的结构一个C语言程序包含以下几个部分:文件包含部分预处理部分变量说明部分函数原型声明部分主函数部分函数定义部分关于结构的说明:并不是所有C语言程序都包含6个部分C语言程序后缀为.c主函数形式:main(){
变量说明部分
程序语句部分}2024/6/25
中南大学信息科学与工程学院18/*example1.1ThefirstCProgram*/#include<stdio.h>intmain(){
printf(“Hello,World!”);return0;}注释编译预处理函数语句输出:
Hello,World!1.4
C程序的结构2024/6/25
中南大学信息科学与工程学院19例
求两个整数之和。解题思路:设置3个变量a和b用来存放两个整数sum用来存放和数用赋值运算符“=”把结果传送给sum2024/6/25
中南大学信息科学与工程学院20#include<stdio.h>intmain(){
int
a,b,sum;a=123;b=456;sum=a+b;
printf(”sumis%d\n”,sum);return0;}定义整型变量a,b,sum对变量a,b赋值将a与b的和赋给sum21#include<stdio.h>intmain(){
int
a,b,sum;a=123;b=456;sum=a+b;
printf(”sumis%d\n”,sum);return0;}用sum的值替代希望输出的字符22例
求两个整数中的较大者。解题思路:用一个函数实现求两个整数中的较大者在主函数中调用此函数并输出结果2024/6/25
中南大学信息科学与工程学院23#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}主函数max函数24#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}将x和y中较大者值返回给主函数25#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}26#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}因max函数的定义在main函数之后,需声明27#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}输入函数28#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}输入语句29#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}输入的数据放到a,b中输入格式a的地址30#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}调用max函数31#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}858832#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}858833#include<stdio.h>intmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);return0;}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}实际参数形式参数34习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式main(){
……………….………………
…………..…………..
……………….
………………………….
……………….………………..}main(){
inti,j,sum;sum=0;
for(i=1;i<10;i++){
for(j=1;j<10;j++){sum+=i*j;}}
printf(“%d\n”,sum);}优秀程序员的素质之一:使用TAB缩进{}对齐有足够的注释有合适的空行1.4
C程序格式和结构特点2024/6/25
中南大学信息科学与工程学院35函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。程序语句C程序由语句组成用“;”作为语句终止符注释/**/为注释,不能嵌套不产生编译代码例:/*Thisisthemain/*ofexample1.1*/*/非法编译预处理命令1.4
C程序结构特点2024/6/25
中南大学信息科学与工程学院36编辑链接编译执行C程序开发步骤file.exe程序代码的录入,生成源程序*.c通过词法分析器、语法分析器和代码生成器,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe1.5
C程序设计语言的执行2024/6/25
中南大学信息科学与工程学院371.6
C程序的集成开发环境TurboC2.0的启动TurboC的集成开发环境确立TC工作环境调试C程序的步骤2024/6/25
中南大学信息科学与工程学院38【命令提示符】窗口TurboC2.0的启动2024/6/25
中南大学信息科学与工程学院39TurboC2.0的启动TurboC2.0开始界面2024/6/25
中南大学信息科学与工程学院40TurboC的集成开发环境集成环境分为四个部分:主菜单程序编辑窗口编译信息窗口功能键提示行。程序的编辑、编译、调试、连接以及运行都将在这个主屏幕中进行。通过主菜单可以选择TurboC集成环境所提供的各项功能。同时,使用键盘上的↑、↓、←、→(上、下、左、右)键可以选择菜单条中所需要的菜单项,被选中的项反向显示。>>2024/6/25
中南大学信息科学与工程学院41TurboC2.0开始界面主菜单区编辑区编译信息功能键提示TurboC的集成开发环境返回2024/6/25
中南大学信息科学与工程学院42文件(File)菜单
文件菜单提供存取文件的功能,含有9个下拉子菜单,分别如下:Load装入文件Pick显示最近装入过的最后9个文件的列表New编辑新文件,文件名为NONAME.CSave将正在编辑的文件存盘Writeto将正在编辑的文件改名存盘Directory显示当前工作目录的内容Changedir显示当前工作目录的路径名,允许把它改为另一个名字OSshell暂时退回到DOS环境,键入EXIT命令返回TurboCQuit退出TurboC,返回DOS系统2024/6/25
中南大学信息科学与工程学院43编辑(Edit)菜单编辑菜单提供输入和编辑程序的功能,不含下拉子菜单。2024/6/25
中南大学信息科学与工程学院44运行(Run)菜单运行菜单提供运行和调试程序的功能,含有6个下拉子菜单,常用的有:Run编译、连接和运行正在编辑的源程序Userscreen查看程序运行时所产生的输出屏幕2024/6/25
中南大学信息科学与工程学院45编译(Compile)菜单编译菜单提供编译和连接目标程序的功能,含有6个下拉子菜单,常用的有:MakeEXEfile直接将源程序编译和连接成可执行文件
LinkEXEfile连接当前的OBJ文件和库文件
PrimaryCfile指定待编译的主文件,而不是当前编辑的文件
Getinfo显示当前对话框的信息2024/6/25
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨部门合作与项目管理的实施方案及策略优化
- 房屋租赁成都合同
- 音乐行业演唱会取消免责合同
- 机动车辆买卖合同
- 乡镇集体工厂承包合同6篇
- 土地承包经营权租赁协议样书8篇
- 7 多元文化 多样魅力 教学设计-2023-2024学年道德与法治六年级下册统编版
- 人脸识别门禁使用协议
- 全国山西经济版小学信息技术第二册第二单元活动4《我爱我家试身手》教学设计
- 第16课 精进创编与体能训练方法 教学设计-2023-2024学年高一上学期体育与健康人教版必修第一册
- 运营总监个人总结
- 2025年春新人教版语文一年级下册全册课件
- 2025年春新北师大版数学七年级下册全册教案
- 第七章老年人泌尿系统疾病
- 2025年中智科技集团有限公司招聘笔试参考题库含答案解析
- 2025年山东省邮政招聘笔试参考题库含答案解析
- 《零售药店实务》期末考试复习题及答案
- 校园安全案例解析
- 《病理科(中心)建设与配置标准》
- 《校园廉洁教育》主题班会课件全文
- 北京版(一起)英语六年级下册单词默写表
评论
0/150
提交评论