第1章C语言程序设计初步_第1页
第1章C语言程序设计初步_第2页
第1章C语言程序设计初步_第3页
第1章C语言程序设计初步_第4页
第1章C语言程序设计初步_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计概述本章内容1.1计算机程序设计语言的发展1.2C语言的发展及特点1.3简单的C语言程序1.4C语言程序的开发步骤及调试方法1.5算法及其描述1.6格式化输入、输出函数1.7学生信息管理系统案例简介程序设计语言发展机器语言汇编语言面向过程语言面向对象语言C,pascal,fortran,basicC++,java,objectpascal计算机语言是程序员对计算机硬件系统进行控制的工具,程序员通过计算机语言来指挥计算机。C语言特点功能强大使用灵活应用广泛学习方法:一、变换角色二、多做练习三、经常总结,举一反三/*文件名:p1-1.c

该程序的功能是求两数之和*/#include<stdio.h> //注明输入输出函数使用的头文件voidmain() //定义主函数{intx,y,sum; //定义变量

scanf("%d%d",&x,&y); //调用库函数从键盘输入数据

sum=x+y; //计算两数之和

printf("sum=%d\n",sum);//在屏幕上显示结果}函数体【例1-1】从键盘输入任意两个整数,输出两数之和。注释1.简单的C语言程序注释1.注释有两种:

(1)“/*…*/”,可以是单行或多行

(2)“//”,只能是单行注释2.注释可有可无,用来对程序进行说明3.注释不会影响程序的功能和正确性包含头文件#include<stdio.h>作用是将头文件stdio.h的内容读到该命令的位置处。为了用户编程方便,C编译系统提供了许多完成各种功能的库函数供用户调用。需要注明该库函数所在的头文件。scanf()为输入库函数,printf()为输出库函数,程序中只要用到这两个库函数,就需要包含stdio.h头文件。定义主函数构成C程序的基本单位是函数,一个C程序可由一个或多个函数组成,有且只有一个主函数。C程序总是从main()函数开始执行,main()函数执行完了,程序也就结束了。一个函数由函数首部和函数体两部分组成。函数体中每条语句必须以分号(;)号结尾。定义变量定义了三个整型变量x、y和sum。int表示整型。给变量命名时需要注意以下几点:

(1)变量名只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。

(2)变量名一般采用小写字母,并且区分大小写。

(3)变量名不能为关键字。

(4)尽量做到“见名知义”。变量必须先定义后使用。调用格式输入函数调用scanf()格式输入函数从键盘输入数据给变量x和y,该函数的调用格式如下:scanf("格式控制字符串",变量地址列表);格式说明符与各输入项在数量和类型上一一对应。进行两数相加x、y和sum变量在计算机中存放在哪儿呢?答案是:计算机的内存。a=a+1;语句将执行什么操作呢?调用格式输出函数调用printf()格式输出函数在屏幕上显示计算结果。printf("格式控制字符串",输出列表);格式控制字符串用来指定输出格式,由普通字符、格式说明符和控制字符组成。输出时普通字符原样显示,格式说明符变量的值所代替,控制字符\n的作用是换行。如果想让输出结果显示为:15+12=27,应如何设置printf()函数的参数?C语言源程序的构成C程序源程序文件1源程序文件2源程序文件n预处理命令函数n函数1数据声明函数首部函数体数据声明执行语句C语言程序的基本结构

一段C语言程序源代码由三个部分构成:

1.编译预处理指令

2.变量、函数的声明

3.常量、变量、函数的定义

一段可以编译成可执行程序的C语言源代码必须定义且只能定义一个名称为main的函数,main()函数控制程序的入口和出口。#include<stdio.h>#definePI3.14doubleCalcArea(doubler);intnCount;voidmain(){doubleac;doubler;r=10.2;ac=CalcArea(r);printf("TheAceageis:%f\n",ac);return;}doubleCalcArea(doubler){doublefa;fa=PI*r*r;returnfa;}

编译预处理指令函数声明变量定义

函数定义1.编译预处理指令

编译预处理指令由#开始。常用的预处理指令有两个:

#inlcude指令:在编译时,include后面的文件被包含到我们的源代码中来。

#define指令:替换指令,在编译时,用define的后一部分去代替源代码中出现的前一部分。#defineMAXLEN64#defineMAXWID15#defineMAXCON255intnCount;#include“T1.h"#defineBASE666voidmain(){ intm; m=80; m=m+BASE; return;}T1.hT1.c#defineMAXLEN64#defineMAXWID15#defineMAXCON255intnCount;#defineBASE

666voidmain(){ intm; m=80;

m=m+666; return;}编译时T1.c的实际样子:T1.c2.变量、函数的声明

在C语言程序中,任何一个变量或者函数在使用之前,都必须先声明或者定义。变量、函数需要进行声明的场合:1.变量或者函数不在当前的源代码文件中,它们在其它文件中定义,但在当前文件中需要使用。2.函数在需要使用时,还没有定义,这时可以通过对函数先作声明,然后再定义。声明的例子:

externintnCount;externintAdd2int(inta,intb);intAdd2int(inta,intb);变量、函数需要进行定义的场合:源程序中使用的任何变量、常量、函数都必须被定义一次。定义的例子:intnCount;//定义整型变量floatf1,f2;//定义浮点型变量charc;//定义字符型变量constintpp=12;//定义整型常量归纳总结计算机通过程序来处理任务的过程:输入

处理

输出编写C程序的一般过程是:(1)定义变量;(2)设置变量的值,可以通过键盘输入或直接赋值;(3)加工处理,得到结果;(4)输出结果。C语言程序的上机过程C语言程序的开发步骤一般分为四步:编辑、编译、连接和执行。C语言程序的上机过程单击“文件”菜单的“新建(New)”命令,出现以下界面:1编辑源程序输入源程序2编译(compile)

假设将sum=x+y语句后的分号(;)输掉了,则会出现如图所示的错误提示信息。

双击错误提示行,系统会自动定位错误的大概位置,再结合系统给出的提示信息进行修改。3连接

4执行1.3.3C语言程序的调试方法程序错误总体上有两类:语法错误和逻辑错误。对于语法错误,编译时会产生错误提示信息,可以根据错误提示信息加以修改。如果程序编译、连接都没有错误,但运行结果与预期结果不一致,则需要通过调试来找出程序中存在的逻辑错误,并加以排除。调试可以借助“调试工具条(Debug)”来进行,“调试工具条”中的主要命令如图1-15所示。C语言的调试手段主要有:单步执行、运行到光标处和设置断点,这三种调试手段在实践中常常结合使用。1.单步执行(StepOver)

单击“单步执行(StepOver)”按钮一次,程序执行一步

查看程序中变量的值:把光标移动到某个变量上,停留一会就可以看到该变量的值。在窗口的左下方,会自动显示变量的值。在窗口右下方的观察窗口中输入变量名,会显示该变量的值。2.运行到光标处(RuntoCursor)先在源程序中定位好光标的位置,再单击工具栏上的“运行到光标处(RuntoCursor)”3.设置断点(InsertBreakpoint)

程序运行到断点处会自动暂停

5.关闭工作区当一个程序执行完毕,想要建立下一个程序时,必须先关闭当前文件所在的工作区,再建立新文件。【例1-2】从键盘输入圆的半径,求圆的面积。/*文件名:p1-2.c*/#include<stdio.h>//注明输入输出函数使用的头文件voidmain() //定义主函数{ floatr,area; //定义单精度型变量

scanf("%f",&r); //调用库函数从键盘输入半径

area=3.14*r*r; //计算圆的面积

printf("area=%f\n",area); //在屏幕上显示结果}

带小数点的变量可定义为float(单精度型),%f为其格式说明符。归纳总结

为了使程序美观、整齐,可读性好,编写C程序时应尽量遵循以下规则:“{”和“}”对齐,且一般单独占一行。使用<TAB>键缩进,书写格式呈锯齿形。一条语句占一行。有足够的注释。【例1-3】从键盘输入任意一个数,输出该数的平方根,输出宽度占7位,并保留两位小数。带小数点的变量也可定义为double(双精度型),其格式说明符为%lf。#include<stdio.h> //注明输入输出函数使用的头文件#include<math.h> //注明sqrt()函数使用的头文件voidmain() //定义主函数{ doublea,b; //定义变量

scanf("%lf",&a); //调用库函数从键盘输入数据

b=sqrt(a); //计算平方根

printf("平方根为:%7.2lf\n",b); //在屏幕上显示结果}

7.2为附加格式说明符,表示输出宽度占7位,并保留两位小数。

float单精度型变量和double双精度型变量都可以存储实数,两者有何区别?双精度型变量精度更高、能存储的数值范围更大。双精度型变量占8个字节存储空间,有效数字达到15位;而单精度型变量占4个字节存储空间,有效数字只有6位。一般情况下,采用单精度型变量就可以了。

【例1-4】从键盘输入三角形的三条边长a、b、c,求三角形的面积s,输出宽度占7位,并保留两位小数。计算三角形面积的公式为,

其中,p=(a+b+c)/2。

#include<stdio.h>//注明输入输出函数使用的头文件#include<math.h> //注明sqrt()函数使用的头文件voidmain() //定义主函数{ doublea,b,c,p,s; //定义变量

printf("请输入三条边长:"); //显示输入提示信息

scanf("%lf%lf%lf",&a,&b,&c); //调用库函数

p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); //计算面积

printf("结果为:%7.2lf\n",s); //在屏幕上显示结果}7学生信息管理系统案例简介对于一个大型的软件系统,采用模块化程序设计是一种比较有效的方法。所谓模块化程序设计就是将一个大的程序按功能分割成一个个小的模块,每个模块功能单一、程序规模不大,这样有利于编程和调试。学生信息管理系统菜单【例1-9】

菜单对应的程序源码。#include"stdio.h"voidmain(){ intchoice; printf("欢迎使用学生信息管理系统\n"); printf("————————————————————————\n"); printf("1.添加学生信息2.显示学生信息\n"); printf("3.修改学生信息4.删除学生信息\n"); printf("5.查找学生信息6.统计不及格人数、最高分和平均分\n"); printf("7.按总分排序8.保存至文件(文本方式)\n"); printf("9.从文件读入(文本方式)10.保存至文件(二进制方式)\n"); printf("11.从文件读入(二进制方式)12.退出程序\n"); printf("————————————————————————\n"); printf("请选择功能模块,输入数字1-12:"); scanf("%d",&choice); printf("您选择了第%d号子菜单\n",choice);}2.求一元二次方程3x2-20x-100=0的根,计算结果保留两位小数。#include<stdio.h> //注明输入输出函数使用的头文件#include<math.h> //注明sqrt()函数使用的头文件voidmain() //定义主函数{ doublea=3,b=-20,c=-100,delta,x1,x2; //定义变量

delta=sqrt(b*b-4*a*c); //计算delta x1=(-b+delta)/(2*a); //计算方程的根

x2=(-b-delta)/(2*a); printf("x1=%7.2lf,x2=%7.2lf\n",x1,x1); //显示结果}3.从键盘输入直角三角形的两条直角边的长度,求斜边的长度和三角形的面积,计算结果保留两位小数。#include<stdio.h> //注明输入输出函数使用的头文件#include<math.h> //注明sqrt()函数使用的头文件voidmain() //定义主函数{ doublex,y,z,area; //定义变量

printf("请输入两条直角边的长度:");//显示输入提示信息

scanf("%lf%lf",&x,&y); //从键盘输入数据

z=sqrt(x*x+y*y); //计算斜边

area=x*y/2 ; //计算面积

printf("斜边=%7.2lf,面积=%7.2lf\n",z,area);//显示结果}4.从键盘输入两个整数到变量a和b中,交换a和b两变量的值。#include<stdio.h> //注明输入输出函数使用的头文件voidmain() //定义主函数{ inta,b,temp; //定义变量

printf("请输入两个整数:"); //显示输入提示信息

scanf("%d%d",&a,&b); //调用库函数从键盘输入数据

temp=a; //以下三条语句交换a和b的值

a=b; b=temp; printf("a=%d,b=%d\n",a,b); //在屏幕上显示结果}5.编写一个C程序,显示如下所示的功能菜单:**************************** 欢迎使用工资管理系统

[1]输入工资

[2]修改工资

[3]删除工资

[4]退出****************************#include<stdio.h>voidmain() //定义主函数

温馨提示

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

评论

0/150

提交评论