




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计,贾宗福,哈尔滨学院软件学院软件工程专业课程(必修课),第3章 顺序程序设计,C语句概述 赋值表达式和赋值语句 数据输入输出的概念 字符数据的输入输出 格式输入与输出 顺序程序设计举例,一、程序的结构,C语句概述,二、C语句分类,C语句概述,程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。C语句可分为以下五类。,1.控制语句,控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。语言有九种控制语句。可分成以下三类:,(1)条件判断语句:if语句、switch语句; (2)循环执行语句:do while语句、while语句、for语句; (
2、3)转向语句:break语句、goto语句、continue语句、return语句,二、C语句分类,C语句概述,功能:执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值。,2.函数调用语句,由函数名、实际参数加上分号“;”组成。 一般形式为: 函数名(实际参数表);,例如: printf(“C Program”);/*调用库函数,输出字符串*/,例如: x=y+z; 赋值语句 y+z; 加法运算语句,但结果不能保留,无实际意义 i+; 自增1语句,i值增1。,3.表达式语句,表达式语句由表达式加上分号“;”组成。 一般形式为: 表达式; 功能
3、:执行表达式语句就是计算表达式的值。,二、C语句分类,C语句概述,例如: while(getchar()!=n) ; 本语句的功能:只要从键盘输入的字符不是回车则重新输入。 这里的循环体为空语句,4.空语句,只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。,二、C语句分类,C语句概述,例如: x=y+z; a=b+c; printf(“%d%d”,x,a); ,5.复合语句,把多个语句用括号 括起来组成的一个语句称复合语句。,复合语句内的各条语句都必须以分号“;”结尾,在括号“”外不能加分号; 在程序中应把复合语句看成是单条语句,而不是多条语句。
4、,二、C语句分类,C语句概述,说明:,一、赋值表达式,赋值表达式和赋值语句,格式:变量名=表达式 功能:把赋值号右边表达式的值赋给赋值号左边的变量。 说明:优先级较低 右结合性,1.赋值运算符 =,例如: a=7 x=a+b w=sin(a)+sin(b) a=b=c=5 可理解为 a=(b=(c=5),说明:在不同类型数据之间赋值时,常常会出现意想不到的结果,而编译系统并不提示出错,全靠程序员的经验来找出问题。,一、赋值表达式,赋值表达式和赋值语句,当赋值运算符两侧的类型不一致时,在赋值时要进行类型转换(系统自动转换),以赋值号左边变量的类型为准。,2.类型转换,见书:P59-60、76-7
5、8,构成复合赋值表达式的一般形式为: 变量 双目运算符=表达式 等效于 变量=变量 双目运算符 表达式 双目运算符: + - * / % ,二、赋值语句,赋值表达式和赋值语句,说明:,3.在变量说明中,不允许连续给多个变量赋初值。 如下述说明是错误的: int a=b=c=5 必须写为: int a=5,b=5,c=5; 而赋值语句允许连续赋值。 4.注意赋值表达式和赋值语句的区别。,2.注意在变量说明中给变量赋初值和赋值语句的区别。 例如: int a=5,b,c;,在变量定义中赋初值的一般形式为: 类型说明符 变量1=值1,变量2=值2,; 例如: int a=3; int b,c=5;
6、float x=3.2,y=3f,z=0.75; char ch1=K,ch2=P;,三、变量赋初值,赋值表达式和赋值语句,在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法为变量提供初值。下面介绍在作变量定义的同时给变量赋以初值的方法。这种方法称为初始化。,说明:,数据输入输出的概念,1输入输出是以计算机主机为主体而言。 输出:从计算机向外部输出设备输出数据 输入:从输入设备向计算机输入数据,2C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。在C标准函数库中提供了一些输入输出函数。 例:putchar()、getchar()、printf() scanf()、p
7、uts()、gets()。,3在使用c语言库函数时,用预编译命令“include”将有关的“头文件”包括到用户源文件中。在头文件中包含了与用到的函数有关的信息。 例如: 使用标准输入输出库函数时,要用到“stdio.h”文件。 命令:#include 或 #include stdio.h,说明:,数据输入输出的概念,一、用putchar函数输出一个字符,字符数据的输入输出,例4.1 输出单个字符。 #include void main() char a,b,;int c; a=b;b=o;c=121; putchar(a);putchar(b);putchar(c); putchar(n);
8、结果: boy,格式: putchar(c) 功能:向终端输出一个字符(把一字节代码写入标准输出文件(显示器)。它输出字符变量c的值。C:可以是字符型变(常)量或整型变(常)量。,二、用getchar函数输入一个字符,字符数据的输入输出,例4.2 输入单个字符。 #include void main() char c; c=getchar(); putchar(c); ,格式:getchar( ) 功能:从终端(或标准输入设备)输入一个字符。,格式输入与输出,一、printf函数(格式输出函数),1.printf函数的格式,格式:printf(格式控制,输出表列) 功能:向终端(或标准输出设备
9、)输出若干个任意类型的数据,格式字符串: 格式说明:由“%”和格式字符组成,作用是将输出的数据转换为指定的格式输出,由“%”字符开始。 普通字符(非格式字符串):需要原样输出的字符。,格式输入与输出,一、printf函数(格式输出函数),(1)d(或i)格式符:以十进制有符号整数输出。 用法: %d:按整型数据的实际长度输出。 %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于,则按实际位数输出。 %ld:输出长整型数据。,2格式字符,输出不同类型的数据要用不同的格式字符。 常用的几种格式字符:,格式输入与输出,一、printf函数(格式输出函数),2格式字符,(2
10、)o格式符:以八进制无符号整数形式输出 (3)x/X格式符:以十六进制无符号整数形式输出 (4)u格式符:以十进制无符号整数形式输出 一个有符号整数可以用%u格式输出;一个无符号整数可以用%d、%o、%x格式输出。 (5)c格式符:输出一个字符 一个整数值在0255范围内可以用%c形式输出;反之,一个字符数据也可以用整数形式输出。,格式输入与输出,一、printf函数(格式输出函数),2格式字符, %ms:输出的字符串占列,如字符串本身长度大于m,则突破m的限制,将字符串全部输出。若串长小于m,则左补空格。 %-ms:如果串长小于,则在列范围内,字符串向左靠,右补空格。 %m.ns:输出占列,
11、但只取字符串中左端n个字符。这n个字符输出在列的右侧,左补空格。 %-m.ns:、n含义同上,n个字符输出在列范围的左侧,右补空格。如果n,则自动取n值,即保证n个字符正常输出。,(6)s格式符:输出一个字符串(不包括双引号)。 用法:,格式输入与输出,一、printf函数(格式输出函数), %f:不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数。 注意:并非全部数字都是有效数字。 %.nf:指定输出的数据共占列,其中有n位小数。如果数值长度小于,则左端补空格。 %-.nf:与%.nf基本相同,只是使输出的数值向左端靠,右端补空格。,(7)f格式符:以小数形式输出实数(包
12、括单、双精度)。 用法:,2格式字符,格式输入与输出,一、printf函数(格式输出函数), %e:不指定输出数据所占的宽度和数字部分的小数位数,有的c编译系统自动指定给出6位小数,指数部分占5位(如e+002),其中“e”占1位,指数符号占1位,指数占3位。数值按规范化指数形式输出(即小数点前必须有而且只有1位非零数字)。 %m.ne和%-m.ne:m、n和“-”字符含义与前相同。此处n指拟输出的数据的小数部分(又称尾数)的小数位数。,(8)e格式符:以指数形式输出实数。 用法:,2格式字符,(9)g格式符:输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不
13、输出无意义的零。,格式输入与输出,一、printf函数(格式输出函数),2格式字符,说明: (1)除了x,e,g外,其他格式字符必须用小写字母。 (2)可以在printf函数中的“格式控制”字符串内包含 “转义字符”,如“n”、“t”等。 (3)上面介绍的d、o、x、u、c、s、f、e、g等字符,如用在“%”后面就作为格式符号。一个格式说明以“%”开头,以上述9个格式字符之一为结束,中间可以插入附加格式字符(也称修饰符)。 (4)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示。,格式输入与输出,一、printf函数(格式输出函数),2格式字符,格式输入与输出,二、scanf
14、函数(格式输入函数),说明: 格式控制:含义同printf函数,但不能显示非格式字符串,也就是不能显示提示字符串。 地址表列:是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。 例如: &a &b 分别表示变量a和变量b的地址。 (&:是“地址运算符”,优先级高,右结合性),1scanf函数的格式,格式:scanf(格式控制,地址表列) 功能:按用户指定的格式从键盘上把数据输入到指定的变量之中。,例: 用scanf函数输入数据。 #include void main() int a,b,c; scanf(“%d%d%d”,&a,&b,&c); printf(%d,%d,%dn,a,
15、b,c); ,格式输入与输出,二、scanf函数(格式输入函数),1scanf函数的格式,说明: (1)输入数据时,在两个数据之间以一个或多个空格间隔,也可以用回车键、跳格键tab。 (2)不能用逗号作两个数据间的分隔符。,说明: (1)对unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。 (2)可以指定输入数据所占列数,系统自动按它截取所需数据。 (3)如果在%后有一个“*”附加说明符,表示跳过它指定的列数。 (4)输入数据时不能规定精度。,格式输入与输出,二、scanf函数(格式输入函数),2格式说明,和printf函数中的格式说明相似,以%开始,以一个格式字符结束,
16、中间可以插入附加的字符。,(1)scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。 (2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。 (3)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。 (4)在输入数据时,遇以下情况时该数据认为结束。 遇空格,或按“回车”或“跳格”(tab)键。 按指定的宽度结束,如“%3d”,只取3列。 遇非法输入。,格式输入与输出,二、scanf函数(格式输入函数),3使用scanf函数时应注意的问题,顺序结构程序设计举例,例1:输入三角形的三边长,求三角形面积。,分析:已知
17、三角形的三边长a,b,c,则该三角形的面积公式为:,其中:s = (a+b+c)/2,源程序如下: #include #include void main() float a,b,c,s,area; scanf(%f,%f,%f“,&a,&b,&c); s=1.0/2(a+b+c); /* 注意 */ area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%7.2fn,b=%7.2fn,c=%7.2fn,s=%7.2fn,a,b,c,s); printf(area=%7.2fn,area); ,顺序结构程序设计举例,源程序如下: #include void main() char cl,c2; cl=getchar(); printf(%c,%dn,cl,cl); c2=cl+32; printf(%c,%dn,c2,c2); ,例2:从键盘输入一个大写字母,要求改用小写字母输出。,运行结果: 输入: A 输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通信设备招标代理合同范本
- 安全生产事故调查与分析咨询服务合同
- 茶园茶叶质量安全监管合作协议
- 诚意金合作开发房地产项目保证金合同
- 大学易学考试题及答案
- 川庆井控证考试题及答案
- 建筑安全生产法律有哪些
- 施工现场安全管理奖惩办法
- 安全生产费用使用范围及明细表
- 特种设备安全监督管理条例
- 优化港口装卸作业流程
- 联合办公协议书范本
- MBTI人格测试(自动生成结果)
- 40篇短文搞定高中英语3500单词
- 住院医师规范化培训教学活动指南(2021年版)六项指南全面解读合集
- 2023修正版《电力设施保护条例》
- 经皮冠状动脉介入治疗术术后健康饮食宣教
- 三体系内审检查表全条款
- 共生筑就康德莱30年发展
- 《健康饮食与健康》课件
- 工程项目移交交接单
评论
0/150
提交评论