第3章顺序结构培训讲学_第1页
第3章顺序结构培训讲学_第2页
第3章顺序结构培训讲学_第3页
第3章顺序结构培训讲学_第4页
第3章顺序结构培训讲学_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第3章顺序结构本章要点:3.1赋值语句3.2数据输出3.3数据输入

3.4复合语句和空语句3.1赋值语句在赋值表达式的尾部加上一个“;”号,就构成了赋值语句也称表达式语句。以下是几点说明:1.赋值语句必须在最后出现分号,分号是语句中必不可少的部分,如“x+=10”是表达式,“x+=10;”是赋值语句。2.任何赋值表达式都可以加上分号而称为赋值语句。3.赋值语句是一种可执行语句,应当出现在函数的可执行部分。

※重点提示:分号是赋值语句中必不可少的部分,若没有分号,则只是一个赋值表达式而已。3.2数据输出3.2.1printf函数的一般调用形式printf函数是标准输出函数,功能是在终端设备上按指定格式进行输出。printf()函数的一般形式为:printf(“格式控制”,输出项序列)例如:printf(”a=%d,b=%c”,a,b)中,”a=%d,b=%c”称为格式控制字符串,a,b是输出项序列中的输出项,都是printf函数的参数。格式控制符的作用有:1.为各输出项提供格式转换说明。它总是由“%”符号开始,紧跟其后的是格式描述符。2.提供需要原样输出的文字或字符。输出项表中的各输出项要用逗号隔开,输出项可以是合法的常量、变量或表达式。格式转换说明的个数要与输出项的个数相同,使用的格式描述符也要与它们一一对应且类型匹配。①d格式字符。用来输出十进制整数。其用法如下:(a)%d,按型数据的实际长度输出。例如:printf("%d,\n",x);如果x=789,则输出结果为:789(b)%1d,输出长整型数据。例如:printf("%1d,\n",a);如果a被定义为:longinta=56789;则输出结果为:56789如果用%d格式输出,就会出错,因为整型数据的范围是-32768~32767。对超出此范围的long型数据应当用%1d格式输出。(c)%-md,m是指定的输出字符宽度。如果数据的位数小于m,则输出共占m位,数据左靠齐,右边补空格,若省略“-”号,则右靠齐,左边补空格;如果数据的位数大于m,则按实际位数输出。例如:printf("%5d,%5d\n",a,b);如果a=7788,b=56789,则输出结果为:7788,56789②f格式字符。用来输出实数(包括单精度、双精度),以小数形式输出。其用法如下:(a)%f,实数的整数部分全部输出,小数部分保留六位。需要指出的是,并非全部数字都是有效数字。单精度实数的有效位数一般是7位,双精度实数的有效位数一般是16位。(b)%mf,输出的实数共占m位,小数部分保留六位。(c)%.nf,输出的实数,总宽度按实际宽度,小数部分占n位。(d)%-m.nf,输出的实数包括小数点在内共占m位,其中小数部分占n位。如果数据的实际宽度小于m,则左靠齐,右边补空格,省略“-”时,右靠齐,左边补空格。如:main(){floata=123.45;printf(“%f,%11f,%.2f,%-10.3f\n”,a,a,a,a);}程序运行结果为:123.449997,123.449997,123.45,123.450说明:a的值应该是123.45,但输出的结果却是123.449997,这是由于实数在内存中的存储误差引起的。③c格式字符。用来输出一个字符。例如:charch='a';printf("%c",ch);则输出一个字符‘a’。也可以指定输出字符的宽度,如:printf("%2c",ch);则输出‘a’,即ch变量输出占2列,第一列补空格。④s格式字符。用来输出一个字符串。其用法如下:(a)%s,按原样输出一个字符串。例如:printf("%s","HappyNewYear!");则输出字符串:HappyNewYear!(b)%-ms,与整数输出格式“%-md”类似。c)%m.ns,输出占m列,但只取字符串中左边n个字符。这n个字符输出在m列的右边,左边补空格。(d)%-m.ns,n个字符输出在m列范围的左边,右边补空格。若n>m,则m自动取n值,即保证n个字符正常输出。如:字符串输出示例main(){printf(“%3s,%6.3s,%.2s,%-5.4s\n”,“Hello”,“Hello”,“Hello”,“Hello”);}程序运行结果为:Hello,Hel,He,Hell表3.1输出格式字符及其功能说明格式字符说明c输出一个字符d或i输出带符号的十进制整数o以八进制无符号形式输出整形数(不带前导0)x或X以十六进制无符号形式输出整形数(不带前导),x输出小写字母,X输出大写字母u按无符号的十进制形式输出整型数f以带小数点的形式输出单精度和双精度数E或e以[-]m.dde(或E)±xx的指数形式输出浮点数。d的个数由精度指定,精度为0时小数部分不输出G或g由系统决定采用%f格式还是采用%e格式,以使输出宽度最小s输出字符串中的字符,直到遇到“\0”。或者输出由精度指定的字符数p输出变量的内存地址%打印一个%2.附加格式字符在%和上述格式字符之间可以插入以下几种附加符号,如下所示。表3.2输出常用附加格式字符附加字符功能说明m(m为一正整数)规定输出数据的最小宽度为m位.n(n为一正整数)对实数,表示输出的实数保留n位小数,对字符串,表示截取字符串的前n个字符-使输出的数据在域内向左靠齐,省略“-”时,向右靠齐3.长度修饰符长度修饰符加在%和格式字符之间,对于长整型一定要加l(long),h可用于短整型(short)或无符号短整形数的输出。如printf(“%ld,\n”,a);4.转义字符可以在printf函数中的“格式控制”部分使用“转义字符”,如“\n”、“\b”、“\f”、“\t”、“\r”、“\344”等。※重点提示:如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示。3.2.3调用printf函数时的注意事项1.在格式控制字符串中,格式说明与输出项从左到右在类型上必须一一对应匹配。例如:printf("x=%f,c=%d",x,c);中的x与%f对应,c与%d对应。2.在格式控制串中,格式说明与输出项的个数应相同,若格式说明少于输出项,则多余的输出项不输出,相反,对于多余的格式将输出不定值。3.在格式控制串中,可以包含任意的合法字符(包括转义字符)。4.输出项序列中可以是变量、常量或表达式。如果输出项是表达式时,则printf函数将先对其进行运算,然后输出它的运算结果。如:main(){printf("x=%f",3*4.8+9/4-sqrt(2.0));}输出结果为:x=32784.4000005.printf函数允许没有输出项序列部分。它表示输出一个字符串。此时printf函数成为如下格式:printf("输出字符串");例如:printf("Pleaseinputanumber:");则输出:Pleaseinputanumber:6.printf函数的返回值通常是本次调用中输出字符的个数。※重点提示:格式说明与输出项从左到右在类型上、个数上都必须一一对应匹配。3.3数据输入3.3.1scanf函数的一般调用格式scanf()函数的一般形式为:scanf(“格式控制”,输入项表)“格式控制”的含义同printf函数;“输入项地址序列”是由若干个变量地址(变量前加&号)组成的序列,各地址按排次序依次接收转换格式后的读入数据。例如:

main(){inta,b;scanf("%d%d",&a,&b);printf("%d,%d\n",a,b);}程序运行结果为:123456<回车>123,456※重点提示:输入项地址序列中的变量前需要加取地址符号”&”。

3.3.2scanf函数中常用的格式说明在格式控制部分一般只包含“格式说明符”这一项内容。和printf函数中的格式说明符相似,以%开始,以一个格式字符结束,中间可以插入附加的字符。1.scanf常用的格式字符。表3.3列出scanf函数常用的格式字符及其功能说明。表3.3scanf格式字符格式字符功能说明d以带符号的十进制形式输入整数正数u以无符号十进制形式输入整数o以八进制无符号形式输入整数x以十六进制无符号形式输入整数f以小数形式或指数形式输入实数c输入单一字符s输入一个字符串2.附加格式字符。表3.3列出scanf函数的附加格式字符及其功能说明。表3.4scanf常用附加字符格式字符 功能说明l用于输入长整型数据(用%ld,%lo,%lx)以及double型数据(用%lf或%le)h用于输入短整型数据(用%hd,%ho,%hx)m(m表示一个正整数)用于指定输入数据所占宽度(列数)为m*表示该输入项在读入后不赋给相应的变量3.几点说明(1)可以指定输入数据所占列数,系统自动按它截取所需数据。(2)标准C在scanf()函数中不使用%u说明符,对unsigned型数据,以%d,%o,%x输入。(3)在输入时若想跳过某个数据,可在%后加一个相应的“*”。(4)输入数据时不能规定精度,如scanf(“%5.2d”,&x)是不合法的。※重点提示:scanf函数输入的数据不能规定精度。3.3.3通过scanf函数从键盘输入数据通过scanf函数从键盘输入数据时,需要注意以下几点:1.scanf函数中的输入项必须是“地址量”,它可以是一个变量的地址,也可以是数组的首地址,但不能是变量名。例如,如果定义了a,b为整型变量,则scanf(“%d,%d”,a,b);是不合法的,应将“a,b”改为“&a,&b”。请读者予以注意,这是初学者易出错的地方。2.输入数据时,各个数据之间可以用空格“[”或Tab键或回车键作为间隔符。3.除了空格、Tab键和回车键外,用户还可以自己指定其他字符作为输入间隔。需要注意的是,如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。例如,对应语句:scanf(“%d,%d,%d”,&a,&b);输入方式应为:1,3<回车>注意1后面是逗号,它与scanf函数中的“格式控制”中的逗号对应,若输入时不用逗号,而用空格或回车键等字符就不对。4.特别需要注意的是,在使用格式说明符%c输入一个字符时,凡是从键盘输入的字符,包括空格、回车等均被作为有效字符接收。例如对语句:scanf(“%c%c”,&c1,&c2);若输入:ab<回车>原意图是把字符'a'赋给c1,'b'赋给c2,而结果却是把[赋给了c2。因为%c只要求读入一个字符,后面不需要用空格作为两个字符间隔,因此[作为下一个字符赋给c2。5.在输入数据时,遇以下情况时该数据认为结束:①遇空格、Tab键,或回车键。②按指定的宽度结束,如“%4d”,只取4列。③遇非法输入。※重点提示:scanf函数中的输入项必须是“地址量”,它可以是一个变量的地址,也可以是数组的首地址,但不能是变量名。3.4复合语句和空语句3.4.1复合语句在C语言中,可以用一对大括号“{}”把一些语句括起来构成复合语句,又称分程序。复合语句的形式如下:{语句1;语句2;…;语句n;}1

温馨提示

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

评论

0/150

提交评论