C语言程序相关设计基本概念v_第1页
C语言程序相关设计基本概念v_第2页
C语言程序相关设计基本概念v_第3页
C语言程序相关设计基本概念v_第4页
C语言程序相关设计基本概念v_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序相关设计基本概念v学习目标了解C语言的历史和特点熟悉计算机语言的不同类型了解C语言的结构理解C程序的开发过程了解结构化程序设计方法2主要内容C语言的发展历史以及特点程序设计语言简单的C程序实例C语言程序的结构C程序的编辑、编译和执行算法结构化程序设计方法课堂练习

3C语言的发展历史历史悠久,战勋卓著诞生于上世纪70年代初,成熟于80年代“ANSIC”标准的发布是C语言成熟的标志很多重量级软件都是用C写的上天入地,无所不能几乎没有不能用C写出来的软件,没有不支持C的系统4C语言特点语言简洁紧凑,使用灵活方便

32个关键字,9种控制语句介于高级语言和低级语言之间的语言。从C++,到Java,再到C#运算符丰富

34种运算符

+、-、*、\、%、++、->等可以实现其他高级语言难以实现的运算5数据结构类型丰富标准数据类型:整型、实型和字符型;构造类型:数组、结构体、共同体、指针生成的代码质量高可移植性强结构化语言主要结构——函数,实现模块化设计

结构化的控制语句,支持多种循环结构

C语言特点6程序设计语言程序设计语言

——人与计算机进行信息交流的工具。大致可分为三类机器语言汇编语言高级语言7程序设计语言机器语言

1、计算机硬件的设计密切相关

2、计算机能直接识别的语言

3、由一组二进制0和1序列构成

例如,计算4+8取数1011000000000100将4送累加器加00000100000010008与累加器中的4相加停机11110100繁琐的,难记、难读、难写无移植性8程序设计语言汇编语言

1、计算机硬件的设计密切相关

2、计算机是不能直接识别,

3、计算机基本操作的采用英语缩写编写程序

例如,计算4+8MOVEAL,4将4送累加器ADDAL,88与累加器中的4相加HLT停机

9程序设计语言

汇编程序:将汇编语言程序转换为计算机能识机器语言,1110程序设计语言高级语言基本与计算机的硬件设备无关

例如计算4+8(C语言编写)

Sum=4+8;编译器:

高级语言转换为机器语言的翻译程序1211简单的C程序实例【例1-1】

//第一个C程序#include<stdio.h>main(){printf("WelcometoCprogramming\n");return0;}执行结果:屏幕上显示Welcometocprogramming行注释头文件主函数

编译系统提供的输出函数

程序结束返回函数

12简单的C程序实例【例1-2】编写求三数中最大值问题的程序#include<stdio.h>intmax_value(inta,intb,intc){intmax;if(a>b)max=a;elsemax=b;if(max<c)max=c;return(max);}main(){intx,y,z,maxx;scanf("%d%d%d",&x,&y,&z);maxx=max_value(x,y,z);printf(“最大值

max=%d\n",maxx);return0;}13★C语言程序的结构C语言是由函数构成的,至少有一个且仅有一个main的函数,称主函数。除main函数外,其它函数都是在执行main函数时被调用执行的。#include<stdio.h>intmax_value(inta,intb,intc){intmax;if(a>b)max=a;elsemax=b;if(max<c)max=c;return(max);}main(){intx,y,z,maxx;scanf("%d%d%d",&x,&y,&z);maxx=max_value(x,y,z);printf(“最大值

max=%d\n",maxx);return0;}

在程序中main()函数的位置可以任意。

在调用库函数之前必须将相应的头文件包含在本程序中。通常放在源程序或源文件的最前面。#include<stdio.h>intmax_value(inta,intb,intc);main(){intx,y,z,maxx;scanf("%d%d%d",&x,&y,&z);maxx=max_value(x,y,z);printf(“最大值

max=%d\n",maxx);return0;}intmax_value(inta,intb,intc){intmax;if(a>b)max=a;elsemax=b;if(max<c)max=c;return(max);}14★C语言程序的结构//求三个数中最大值

#include<stdio.h>intmax_value(inta,intb,intc){intmax;if(a>b)max=a;elsemax=b;if(max<c)max=c;return(max);}main(){intx,y,z,maxx;scanf("%d%d%d",&x,&y,&z);maxx=max_value(x,y,z);printf(“最大值

max=%d\n",maxx);return0;}

严格区分大小写英文字母。习惯使用小写字母。;为语句的终止符。{}表示程序的结构层次范围,必须配对使用。注释格式

//注释内容行注释

/*注释内容*/15★C程序的编辑、编译和执行编辑:利用编辑器,通过键盘将C源程序输入到计算机,并以文件形成存入到磁盘上。编译:利用编译器,将C源程序编译成目标程序。连接:利用连接器,将C已编译的目标程序和库函数连接之后,生成可执行文件,并以文件形成存入到磁盘上,文件扩展名为.exe。运行:在操作系统下运行可执行文件。16算法算法——解决问题的流程必须具备以下五个特性

有穷性确定性

有效性

(可行性)没有输入或有多个输入

有一个或多个输出17算法算法的描述自然语言伪码流程图N-S图例1:求三个数中最大值问题18算法自然语言:日常使用的语言

先将a,b两个数进行比较,找出其中的大数,然后再把它和第三个数c进行比较,如果它比c大,则它就是最大数,否则c是最大数。伪码:介于自然语言和计算机语言之间的文字和符号进行描述IFa>bTHENmax=aELASmax=bIFmax>cTHEN输出maxELSE输出c19算法流程图:

图语言表示法

ANSI规定了一些常用的流程图符号:流程图起止框输入输出框判断框处理框流程线连接圈20算法三个数中最大值问题的流程图图1-421算法N-S图:图语言表示法

三个数中最大值问题的N-S图22算法算法仅仅提供了解决某类问题可采用的方法和步骤,还必须使用某种计算机程序设计语言根据算法的描述去实现,即编程。//求三个数中最大值

#include<stdio.h>intmax_value(inta,intb,intc){intmax;if(a>b)max=a;elsemax=b;if(max<c)max=c;return(max);}main(){intx,y,z,maxx;scanf("%d%d%d",&x,&y,&z);maxx=max_value(x,y,z);printf(“最大值

max=%d\n",maxx);return0;}23算法例2:求解两个自然整数的最大公约数采用“欧几里得算法”,又称辗转相除法1、自然语言描述

S1:输入两个正整数M和N;S2:比较M和N,如果M小于N,则两数交换,保证M是大数;S3:求M除以N的余数R;S4:使M=N,即用N代替M;S5:使N=R,即用R代替N,S6:如果N≠0,转向S3;S7:如果N=0,转向S8;S8:输出M,M为M和N的最大公约数。24算法2、伪代码描述:INPUTM,NIFM>NTHEN交换M和NWHILEN≠0DOR=MOD(M,N)M=NN=RENDDO输出

M其中M除以N的余数用符号MOD(M,N)表示。25算法3、流程图描述26算法4、N-S图描述

27结构化程序设计方法结构化程序设计的基本方法:自顶向下,逐步求精复杂问题分解为若干的独立的小问题(小模块)

例:求解两个数的平均值1、分解:问题分解为三个模块

S1:输入两个数a,bS2:求两个数的平均值赋给averS3:输出平均值

28结构化程序设计方法2、实现方法,算法细化

S1:调用输入函数,完成输入S2:设计一个求解平均值的函数averge()S3:调用输出函数,完成输出

3、C语言实现主函数的编程//求两个数的平均值

main()//主函数{floata,b,ave;//声明a、b和ave为实型变量

scanf(“%f%f”,&a,&b);//输入a、b两个数的值

ave=average(a,b);//调用average函数求平均值,printf(“average=%f\n”,ave);//输出ave的值

return0;}29结构化程序设计方法4、逐步求精:设计averag()函数的算法。设两个参数为floatx,floaty。S2.1:把x加y的和除2的值送给averS2.2:把aver的值返回给主函数。5、C语言实现averag()函数的编程#include<stdio.h>floataverage(floatx,floaty)//求两个数的平均值{floatz,aver;//声明aver为实型变量

aver=(x+y)/2;//计算两个数的平均值赋给averreturn(aver);//aver的值作为函数的的返回值}30结构化程序设计方法6、两模块连接成一个完整的求解程序#include<stdio.h>floataverage(floatx,floaty)//求两个数的平均值{floatz,aver;//声明aver为实型变量

aver=(x+y)/2;//计算两个数的平均值赋给averreturn(aver);//aver的值作为函数的的返回值}main()//主函数{floata,b,ave;//声明a、b和ave为实型变量

scanf(“%f%f”,&a,&b);//输入a、b两个数的值

ave=average(a,b);//调用average函数求平均值,printf(“average=%f\n”,ave);//输出ave的值

return0;}31结构化程序设计方法★结构化程序设计三种基本控制结构:顺序结构选择结构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论