第3章简单程序ppt课件_第1页
第3章简单程序ppt课件_第2页
第3章简单程序ppt课件_第3页
第3章简单程序ppt课件_第4页
第3章简单程序ppt课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

1、3.1 3.1 程序的三种根本构造程序的三种根本构造3.2 C3.2 C语句概述语句概述3.3 3.3 赋值表达式和赋值语句赋值表达式和赋值语句3.4 3.4 数据输入输出的概念及在数据输入输出的概念及在C C言语言语中的实现中的实现 一个良好的程序由以下三种根本构造组成: (1) 顺序构造:各操作步骤顺序执行,是一种最简单的根本构造。 C程序源程序文件1源程序文件2源程序文件n预处置命令函数n函数1数据声明函数首部函数体数据声明执行语句C程序的构造:程序的构造: 一个c程序可以有假设干个源程序文件组成 一个源文件可以有假设干个函数和预处置命令以及全局变量声明部分组成 一个函数有函数首部和函数

2、体组成 函数体由数据声明和执行语句组成 C语句分为5类类控制语句控制语句函数调用语句函数调用语句表达式语句表达式语句空语句空语句复合语句复合语句(一)控制语句 完成一定的控制功能 1 if() else 条件语句 6 break 中止语句 2 for() 循环语句 7 switch() 多分支选择语句 3 while()循环语句 8 return 前往语句 4 do while();循环语句 9 goto 转向语句 5 continue 终了本次循环语句(二)函数调用语句 由一个函数调用加一个分号构成 Printf(“This is a C statement.);(三)表达式语句 由一个表达

3、式加一个分号构成 a = 3 ;分号赋值表达式表达式语句(四)空语句 只需一个分号的语句 什么也不做用来做流程的转向点用来作为循环语句中的循环体(五复合语句 用一对括起来的语句 z=x+y;t=z/100;printf(“%f,t);留意:复合语句中最后一个语句中最后的分号不能忽略不写。 1.1.赋值运算符赋值运算符 赋值符号赋值符号“就是赋值运算符,它的作用是将一就是赋值运算符,它的作用是将一个数据赋给一个变量。个数据赋给一个变量。 赋值语句是由赋值表达式加上一个分号构成赋值语句是由赋值表达式加上一个分号构成例:例: “a=3a=3 把常量赋把常量赋给变量给变量 . .复合的赋值运算符复合的

4、赋值运算符 在赋值符在赋值符“之前加上其他运算符,可以构成之前加上其他运算符,可以构成复合的运算符。复合的运算符。例:例: 等价于等价于 先计算加,再赋给 可以这样了解: a += b (其中a为变量,b为表达式) a + = b将有下划线的“a+移到“=右侧 | a = a + b在“=左侧补上变量名a 假设是包含假设干项的表达式,那么相当于它有括号。 例: x %= y + 3 x %= (y + 3) |_ x = x %(y + 3) 不要错写成 x = x % y + 3 )3.3.赋值表达式赋值表达式 由赋值运算符将一个变量和一个表达式衔接由赋值运算符将一个变量和一个表达式衔接起起

5、来的式子。来的式子。普通方式为:变量普通方式为:变量 赋值运算符赋值运算符 表达式表达式赋值表达式的求解过程:先求赋值运算符右侧赋值表达式的求解过程:先求赋值运算符右侧的的“表达式的值,然后赋给赋值运算符左侧的变表达式的值,然后赋给赋值运算符左侧的变量。量。赋值运算符左侧的标识符称为赋值运算符左侧的标识符称为“左值左值 出如今赋值运算符右侧的表达式称为出如今赋值运算符右侧的表达式称为“右值右值 留意:并不是任何对象都可以作为左值的,表留意:并不是任何对象都可以作为左值的,表达式和常变量就不能作为左值。任何左值都达式和常变量就不能作为左值。任何左值都可做右值。可做右值。 阐明:赋值运算符按照“自

6、右而左的结合顺序,因此,“a=(b=5)和“a=b=5等价 赋值表达式中的“表达式,又可以是一个赋值表达式。 例:a=(b=5) 相当于执行“b=5和“ab两 个赋值表达式 分析赋值表达式: (a=3*5)=4*3 赋值表达式为左值右值 求解步骤如下求解步骤如下: : 先进展先进展“* *的运算,的运算, 它相当于它相当于: : * *,a a的值为的值为144144132132。 再进展再进展“的运算,相当于的运算,相当于: : =a+(-132)=a+(-132),a a的值为的值为132-132132-132-264-264。 赋值表达式也可以包含复合的赋值运算符。 例: a+=a-=a

7、*a 赋值表达式作为表达式的一种,不仅可以出如今赋值语句中,而且可以以表达式方式出如今其他语句如输出语句、循环语句等中 。 例:printf(%d,a=b); 假设赋值运算符两侧的类型一致,那么直接进展赋值。 例:i=6 (假设i已定义为int型) 假设赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进展类型转换。类型转换是系统自动进展的。 转换规那么:转换规那么: 将浮点型数据包括单、双精度赋给整型变量将浮点型数据包括单、双精度赋给整型变量时,先对浮点数取为整,然后赋予整型变量。时,先对浮点数取为整,然后赋予整型变量。 将整型数据赋给单、双精度变量时,数值不变,将整型数据赋给单

8、、双精度变量时,数值不变,但以浮点数方式存储到变量中。但以浮点数方式存储到变量中。 将一个将一个doubledouble型数据赋给型数据赋给floatfloat变量时,截取其变量时,截取其前面前面7 7位有效数字,存放到位有效数字,存放到floatfloat变量的存储单元变量的存储单元4 4个字节中。但应留意数值范围不能溢出;将一个个字节中。但应留意数值范围不能溢出;将一个floatfloat型数据赋给型数据赋给doubledouble变量时,数值不变,有效位变量时,数值不变,有效位数扩展到数扩展到1616位,在内存中以位,在内存中以8 8个字节存储。个字节存储。 转换规那么:转换规那么: 字

9、符型数据赋给整型变量时,将字符的字符型数据赋给整型变量时,将字符的ASCIIASCII码赋给码赋给整型变量。整型变量。 将一个占字节多的整型数据赋给一个占字节少的整型将一个占字节多的整型数据赋给一个占字节少的整型变量变量/ /字符变量时,只将其低字节原封不动地送到该变字符变量时,只将其低字节原封不动地送到该变量量 例:例:i=289;i=289; / /* * 已定义已定义i i为整为整型变量型变量 * */ / c=a; c=a; / /* * 已定义已定义c c为字符变为字符变量量 * */ / c=i; / c=i; /* * 将一个占将一个占2 2字节的字节的intint型数据赋给型数

10、据赋给charchar型变量型变量 * */ / i=289 i=289 c=33 c=33 将有符号整数赋值给长度一样的将有符号整数赋值给长度一样的 无符号整型变量时,按字节原样赋值。无符号整型变量时,按字节原样赋值。0 0 0 0 0 0 0 10 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1证赋值后数值不会发生变证赋值后数值不会发生变化。化。运转结果:运转结果:42949672954294967295 格式符。格式符。1 1 11 11 11 11 11 11 111 1 11 11 11 11 11 11 11运转结果运转结果 -1 -1 1 1的补码。的补码。转换规那么

11、:转换规那么:将无符号整数赋值给长度一样的有符号整型变量时,应将无符号整数赋值给长度一样的有符号整型变量时,应留意不要超出有符号整型变量的数值范围,否那么会出错。留意不要超出有符号整型变量的数值范围,否那么会出错。 赋值语句是由赋值表达式加上一个分号构成。 赋值表达式的作用是将一个表达式的值赋给一个变量。 赋值表达式具有计算和赋值双重功能。程序中的计算功能主要是由赋值语句来完成。 言语的赋值语句与其他高级言语的赋值语句之间的差别: (1) 言语中的赋值号“是一个运算符,在其他大多数言语中赋值号不是运算符。 (2) 要区别赋值表达式和赋值语句。其他多数高级言语没有“赋值表达式这一概念。 程序中对

12、变量赋初值的方法有两种 在定义变量的同时使变量初始化更方便 int a=3; * 指定为整型变量,初值为 * float f=3.56; * 为浮点型变量,初值.56 * char c=a; * 指定为字符变量,初值为a * 用赋值语句对变量赋值 int a; * 指定为整型变量* ; * 赋值语句,将赋给*(一).所谓输入输出是以计算机主机为主体而言的输出:从计算机向外部输出设备(显示器,打印机) 输出数据输入:从输入设备(键盘,鼠标,扫描仪)向计算机 输入数据.(二).C言语本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的例如:字符输入函数: getchar字符输出函数:

13、putchar格式输入函数: scanf 格式输出函数: printf字符串输入函数:gets 字数穿输出函数:puts(三).在运用系统库函数时,要用预编译命令“#include将有关的“头文件包括到用户源文件中。例如:在调用规范输入输出库函数时,文件开头应该有: #include “stdio.h 或: #include 头文件 putchar函数字符输出函数的作用是向终端输出一个字符。 普通方式为 putchar(c) 可以是字符型变量或整型变量 运转结果:BOYputchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(

14、n);运转结果:B O Y getchar函数字符输入函数的作用是从计算机终端输入一个字符。 getchar函数没有参数,普通方式为 getchar函数的值就是从输入设备得到的字符 printf函数格式输出函数的作用是向终端或系统隐含指定的输出设备输出假设干个恣意类型的数据 。 printf函数的普通格式为: printf格式控制,输出表列 例: printf(%d,%cn,i,c) printf函数的参数包括两部分: (1)“格式控制是用双撇号括起来的字符串,也称“转换控制字符串,它包括两种信息。 格式阐明。格式阐明由“和格式字符组成,如、等。它的作用是将输出的数据转换为指定的格式输出。格式

15、阐明总是由“字符开场的。 普通字符。普通字符即需求原样输出的字符 。例如上面printf函数中双撇号内的逗号、空格和 换行符。 (2) “输出表列是需求输出的一些数据,可以是常量、变量或表达式。 printf函数的例子: printf(“a=%d b=%d,a,b) | | | | | 格式阐明 输出表列假设a=3,b=4输出为 a=3 b=4 根本的格式字符 有以下几种: 格式符。按十进制整型数据的实践长度输出。格式符。按十进制整型数据的实践长度输出。 i格式符。作用与格式符一样,按十进制整型数据的实践长度输出。普通习惯用%d而少用%i。 格式符。用来输出一个字符。 一个值在范围内的整数,也

16、可以用“使之按字符方式输出 运转结果:, , 格式符,用来输出一个字符串。 例: printf ,N; 输出字符串“N不包括双引号格式符。用来输出实数包括单、双精度,以小数方式输出,不指定整个字段的长度,由系统自动指定。普通的处置方法是:整数部分全部输出,并输出位小数。 运转结果:.结果中只需前七位是有效数字。由于x和y是单精度变量,所以x+y也只能保证7位的精度,后面几位是没有意义的。 运转结果:33333333.33333 x和y是双精度变量,能提供16位精度,但是由于用%f格式输出,只能输出6位小数 ,有两位被省掉了。 (6)格式符,用格式阐明 指定以指数方式输出实数。 例:printf

17、,123.456;输出如下 1.23460 e+002 6列 5列C编译系统自动指定给出数字部分的小数位数为位,指数部分占5位 scanfscanf函数作用:按照变量在内存的地址将变量值函数作用:按照变量在内存的地址将变量值存进去。存进去。普通格式:普通格式:scanfscanf格式控制,地址表列格式控制,地址表列同同printf函数函数是由假设干个地址组成的表列,可以是变量是由假设干个地址组成的表列,可以是变量的地址,或字符串的首地址的地址,或字符串的首地址a a在内存中的地在内存中的地址址& &是地址运算符是地址运算符输入数据时,在两个数据之间以一个或多个空格间隔,也可以用

18、Enter键、T键。 scanf函数的格式阐明与printf函数的类似,以开 始,以一个格式字符终了,中间可插入附加的字符。 例: scanf(%d%d%d.&a,&b,&c); /* 格式控制字符串中包含3个格式阐明符%d */ scanf(a=%db=%dc=%d.&a,&b,&c); /* 格式控制字符串中包含格式阐明符以外的字符 */非法输入,以为该数据终了。非法输入,以为该数据终了。(5) 对型变量所需的数据,可以用对型变量所需的数据,可以用%u或或%d格式格式输入。输入。 除了上节所引见的根本的格式控制外,还可以用下面一些格式符和附加

19、字符。 。为指定的输出字段的宽度。假设数据的位数小于,那么左端补以空格,假设大于,那么按实践位数输出。 例: printf (“%4d,%4d,a,b); 假设: a=123,d=12345,那么输出结果为: 123,12345 %ld。对于。对于int型数据占型数据占2字节的系统,在输出长整型字节的系统,在输出长整型数据时要在格式字符数据时要在格式字符d前面加一个英文字毋前面加一个英文字毋l。例例: lang a=790; /* 定义定义a为长整型变量为长整型变量*/ printf(“%ld,a);%d只适用于范围为-3276832767的整型数据,超越此范围的整数,应该用%ld输出 阐明:

20、假设用的是VC+ 6.0,由于int型和long型数据都分配4个字节,因此用%d可以输出int和long型数据,不用要用%ld。 % %。以。以8 8进制整数方式输出。由于是将内存单元中进制整数方式输出。由于是将内存单元中的各位的值或按八进制方式输出,因此输出的的各位的值或按八进制方式输出,因此输出的数值不带符号,即将符号位也一同作为八进制数的一部数值不带符号,即将符号位也一同作为八进制数的一部分输出。分输出。例:例:int a=-1;int a=-1; printf(%d printf(%d,%o%o,a a,a); a); 在内存单元中的存放方式以补码方式存放如在内存单元中的存放方式以补码

21、方式存放如下:下: 输出为输出为: : ,1111111111111111用%d输出的结果1,111,111,111,111,111 | | | | | |1 7 7 7 7 7二进数111就是8进数7。因此上面的数用8进制数表示为17777 %。以。以16进制数方式输出整数。同样不会进制数方式输出整数。同样不会出现负的十六进制数。出现负的十六进制数。例:例: int a= -1; printf(“%x,%o,%d,a,a,a); 输出结果为输出结果为 ffff,177777,-1 同样可以用同样可以用 “%1x输出长整型数,也可以指输出长整型数,也可以指定定 输出字段的宽度,如输出字段的宽度

22、,如“%12x。 %。用来输出无符号。用来输出无符号(unsigned)型数据,以十进制型数据,以十进制整数方式输出。一个有符号整数整数方式输出。一个有符号整数int型也可以用型也可以用%u格式输出;反之,一个格式输出;反之,一个unsigned型数据也可以用型数据也可以用%d格式输出。按相互赋值的规那么处置。格式输出。按相互赋值的规那么处置。unsigned型型数据也可用数据也可用%o或或%x格式输出。格式输出。 c。用来指定输出字符数据的宽度。用来指定输出字符数据的宽度m 假设有假设有printf(“%3c,c); 那么输出那么输出“ a,即变量输出占列,前列补空格,即变量输出占列,前列补

23、空格。,指定输出的字符串占列。假设字符串本身长度大于,指定输出的字符串占列。假设字符串本身长度大于,那么突破的限制,将字符串全部输出。假设串长小于,那么突破的限制,将字符串全部输出。假设串长小于,那么左补空格。,那么左补空格。 - -,假设串长小于,那么在列范围内,字符串向左靠,假设串长小于,那么在列范围内,字符串向左靠,右补空格。,右补空格。 - -.n.n,输出占列,但只取字符串中左端个字符。这,输出占列,但只取字符串中左端个字符。这个字符输出在列的右侧,左补空格。个字符输出在列的右侧,左补空格。 . .,其中、含义同上,个字符输出在列范围,其中、含义同上,个字符输出在列范围的左侧,右补空

24、格。假设,那么自动取值,即保证的左侧,右补空格。假设,那么自动取值,即保证个字符正常输出。个字符正常输出。. ., ,指定输出的实数共占列,其中有位小数。假设指定输出的实数共占列,其中有位小数。假设数值长度小于,那么左端补空格。数值长度小于,那么左端补空格。 . .与与. .根本一样,只是使输出的数值向左端根本一样,只是使输出的数值向左端靠,右端补空格。靠,右端补空格。 m.nem.ne和和-m.ne-m.ne。、和。、和“字符的含义与前一样。字符的含义与前一样。 此处指拟输出的数据的小数部分又称尾数的小数位数。此处指拟输出的数据的小数部分又称尾数的小数位数。 假设,那么:假设,那么: pri

25、ntf(%e %10e %10.2e %.2e %-10.2e printf(%e %10e %10.2e %.2e %-10.2e,f f,f f,f f,f f,f); f); 输出如下:输出如下:1.234560e+002 1.234560e+002 1.23e+002 1.23e+002 1.234560e+002 1.234560e+002 1.23e+002 1.23e+002 13 13列列 13 13列列 10 10列列 9 9列列 1.23e+002 1.23e+002 10 10列列阐明:未指定,自动使.超越给定的列,乃突破列的限制,按实践长度输出。第3个数据共占列,小数部

26、分占列。只指定,未指定,自动使等于数据应占的长度。第5个数据应占列,数值只需列,由于是“,数值向左靠,右补一个空格。(注:有的C系统的输出格式与此略有不同) (10)%g (10)%g,用来输出实数,用来输出实数. . 它根据数值的大小,自动选格式或格式选择输出时占它根据数值的大小,自动选格式或格式选择输出时占宽度较小的一种,且不输出无意义的零。宽度较小的一种,且不输出无意义的零。 例例: :假设,那么假设,那么 ,;,;输出如下:输出如下:123.468000 1.234680e+002 123.468 123.468000 1.234680e+002 123.468 10 10列列 13 13列列 10 10列列阐明:用格式输出占列,用格式输出占列,用格式时,自动从上面两种格

温馨提示

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

评论

0/150

提交评论