顺序结构程序设计.ppt_第1页
顺序结构程序设计.ppt_第2页
顺序结构程序设计.ppt_第3页
顺序结构程序设计.ppt_第4页
顺序结构程序设计.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

第3章顺序结构程序设计,主要内容:3.1语句概述3.1.1C语言的基本语句3.1.2赋值语句3.2数据的输入/输出3.2.1字符输入/输出函数3.2.2格式输入/输出函数3.3程序举例,3.1语句概述,图3.1C语言程序结构,3.1.1C语言的基本语句1.表达式语句,C语言是一种表达式语言,所有的操作运算都通过表达式来完成。由表达式组成的语句称为表达式语句。表达式语句的一般形式为:表达式;,应注意:分号是C语言的语句中不可缺少的一部分,因此“a=10”和“a=10;”是不同的,前者是一个赋值表达式,而后者才是一个赋值语句。,例如:sum=0;i+;sum+=i+;x+y;,2.控制语句控制语句用于完成一定的功能。C语言有9中控制语句,它们是:,(1)if()else(条件语句)(2)for()(循环语句)(3)while()(循环语句)(4)dowhile()(循环语句)(5)continue(结束本次循环语句)(6)break(中止执行switch或循环语句)(7)switch(多分支选择语句)(8)goto(转向语句)(9)return(从函数返回语句),3.函数调用语句由一个函数调用加一个分号构成一个语句,其完成特定的任务。其一般形式为:函数名(实际参数表);,例如:printf(Iamastudent!);该函数调用语句的作用是:在屏幕上显示Iamastudent!。,4.复合语句复合语句由花括号“”括起来的两条或两条以上的语句组成。一个复合语句在功能上相当于一条语句。复合语句也可称为“块语句”,复合语句的一般形式为:语句1;语句2;语句n;,例如:inta=3,b;/*定义部分*/a+;/*执行语句*/b*=a;/*执行语句*/printf(b=%dn,b);/*执行语句*/,5.空语句C语言中的所有语句都必须由一个分号“;”作为结束。如果只有一个分号,如:main();这个分号也是一条语句,称为“空语句”。,空语句的一般形式为:;空语句是什么也不执行的语句。在程序中空语句常用来做空循环体,可起到延时作用。,3.1.2赋值语句赋值语句是由赋值表达式加上分号“;”构成的。例如:a=b+3;a=b=c+5;都是合法的赋值语句。,使用赋值语句要注意以下几个方面:,赋值号“=”左边必须是变量,不能是常量或变量表达式。赋值号“=”右面可以是变量、常量或各种合法的表达式。,2.变量赋初值与赋值语句的区别。,例如:inta=3,b,*p=,这里要注意:intx=5,y=5,m,n;不能写成intx=y=5,m,n;也就是说在定义变量时,不允许连续给多个变量赋初值。而赋值语句是允许连续给多个变量赋值。,3.2数据的输入/输出,C语言没有专门的输入或输出语句,但在C的标准库函数中提供了常用的输入和输出函数。由于标准库函数中所用到的变量定义和宏定义均在扩展名为.h的头文件中描述,因此在需要使用标准I/O库中的函数时,应在程序前使用下面的预编译命令,#include或#includestdio.h将相应的.h头文件包含到用户程序中。,3.2.1字符输入/输出函数,1.字符输出函数一般形式为:putchar(c);该函数的作用是向终端(如显示器)输出一个字符。C可以是字符常量或变量、整型常量或变量、转义字符。,【例3.2】字符输出举例#includevoidmain()chara=A,b=B;putchar(a);putchar(A);putchar(65);putchar(n);putchar(b);putchar(B);putchar(66);,运行结果:AAABBB,2.字符输入函数一般形式为:getchar();该函数的作用是从终端(如键盘)输入一个字符。,【例3.3】字符输入举例#includevoidmain()charch;ch=getchar();putchar(ch);putchar(n);,运行结果:AA,使用getchar()函数要注意以下几个方面:(1)getchar()函数的括号()内不允许有任何数据,但这一对圆括号不可少,这一点要和putchar()区别开来。(2)使用本函数前必须包含文件“stdio.h”。(3)getchar()函数只能接收一个字符,输入的数字也按字符处理,而且输入的空格、回车都将作为字符读入,当输入多个字符时也只能接收一个字符。因此,在用getchar()函数连续输入两个字符时要注意回车符和空格符。,当从键盘输入:A12并按【enter】键,则变量ch1的值是A,变量ch2的值是1。当从键盘输入:A12并按【enter】键,则变量ch1的值是A,变量ch2的值是空格符。当从键盘输入:A/*代表【enter】键*/则变量ch1的值是A,变量ch2的值是n。,例如:charch1,ch2;ch1=getchar();ch2=getchar();,(3)给getchar()函数输入字符时不需加单引号,输入字符后必须按【enter】键,字符才能送到内存。(4)getchar()函数得到的字符可以赋给一个字符型变量或整型变量,也可以不赋给任何变量,可作为表达式的一部分。,3.2.2格式输入/输出函数,1.格式输出函数(1)printf(要输出的字符序列)注意:“要输出的字符序列”必须用英文的双引号括起来,它的作用是在屏幕上原样输出“要输出的字符序列”。,例如:printf(Ilovechina!);在屏幕上将看到:Ilovechina!,(2)printf(“输出格式控制符”,输出列表项)注意:“输出格式控制符”必须用英文的双引号括起来,它的作用是按照输出格式来输出后面的输出列表项的值。,例如:intx=3,y=4,*px=在屏幕上将会看到:3,5。,语句printf(%d,%d,x,y);的作用是:以%d的格式输出变量x的值,以%d的格式输出变量y的值,中间以逗号分隔。,“输出格式控制符”可以是:(1)格式符:即由%和格式字符组成,如%d,%f等。(2)普通字符:如printf(“a=%d,b=%dn”,a,b);中的“a=”、“,”、“b=”都是普通字符,普通字符原样输出。(3)转义字符:如printf(“a=%d,b=%dn”,a,b);中的“n”。其含义是“换行”。,C语言中常用的格式字符共有9种,如表3.1所示。,表3.1printf()的格式说明,在格式说明中,在%和上述格式字符之间还可以插入表3.2所示的几种附加字符(又称修饰符)。,表3.2printf()的附加格式说明符,printf()函数常用的格式符如下.,d格式符用来输出十进制整数。,%d以整数的实际位数输出。例如:printf(%d,2009);输出结果为:2009,%+d以整数的实际位数输出,输出时正整数前带正号“+”。例如:printf(%d,2009);输出结果为:+2009,%md输出的整数占m列并右对齐,当m大于整数的宽度时,多余的位用空格填充,当m小于整数的宽度时,按整数的实际位数输出。例如:printf(%8d,2009);输出结果为:2009,%-md输出的整数占m列并左对齐,当m大于整数的宽度时,多余的位用空格填充,当m小于整数的宽度时,按整数的实际位数输出。例如:printf(%8dn%-8d,2009,2009);输出结果为:20092009,%ld或%Ld输出长整型数据,按实际位数输出。%hd输出短整型数据,按实际位数输出。%mld或%mLd输出长整型数据占m列并右对齐,当m大于整数的宽度时,多余的位用空格填充,当m小于整数的宽度时,按整数的实际位数输出。%-mld或%-mLd输出长整型数据占m列并左对齐,当m大于整数的宽度时,多余的位用空格填充,当m小于整数的宽度时,按整数的实际位数输出。,例如:longx=123456;printf(%8ldn%-8ld,x,x);输出结果为:123456123456,%0md输出的整数占m列并右对齐,当m大于整数的宽度时,多余的位用0填充,当m小于整数的宽度时,按整数的实际位数输出。,例如:printf(%8d,2009);输出结果为:00002009注意:没有%-0md格式控制符。,o格式符用来输出八进制整数,其用法同d格式符,用时把d格式符改为o格式符即可。,例如:shortintn=-1;printf(“%ho”,n);输出结果为:177777可以看到,八进制形式输出的整数是不考虑符号的。,x或X格式符用来输出十六进制数,其用法同d格式符,用时把d格式符改为x或X格式符即可。,例如:shortintn=-1;printf(“%hx”,n);printf(“%hX”,n);输出结果为:ffffFFFF可以看到,十六进制形式输出的整数也是不考虑符号的。,u格式符用来输出无符号型的十进制整数,其用法同d格式符,用时把d格式符改为u格式符即可。,例如:shortintn=-1;printf(“%hd,%hu”,n,n);输出结果为:-1,65535从有符号的角度看,它表示的是-1;从无符号数的角度看,它表示的是65535。,c格式符用来输出一个字符。有以下用法:%c输出一个字符。%mc输出的字符占m列并右对齐,多余的位用空格填充。%-mc输出的字符占m列并左对齐,多余的位用空格填充。,例如:printf(%4cn%-4c,A,A);输出结果为:AA,s格式符用来输出一个字符串。有以下用法:,%s以字符串的实际长度输出一个字符串。printf(%s,china);输出结果为:china,%ms输出的字符串占m列并右对齐,当m大于字符串的实际长度时,多余的位用空格填充,当m小于字符串的实际长度时,按字符串的实际长度输出。,%-ms输出的字符串占m列并左对齐,当m大于字符串的实际长度时,多余的位用空格填充,当m小于字符串的实际长度时,按字符串的实际长度输出。,例如:printf(“%8sn%-8s”,“china”,“china”);输出结果为:chinachina,%m.ns在m列的位置上输出一个字符串的前n个字符,并右对齐,mn时,多余的位数用空格填充,mn时,多余的位数用空格填充,mn时,输出实际长度的字符串。,例如:printf(%8.2sn%-8.2s,china,china);输出结果为:chch,f格式符用来输出实数(包括单精度、双精度),以小数形式输出。,%f用于输出单精度小数,也可输出双精度小数,输出时实数的整数部分全部输出,小数部分保留6位,在有效数据范围内的小数部分要进行四舍五入。,例如:printf(%f,12.123456789);输出结果为:12.123457,%lf或%Lf用于输出双精度小数,输出时实数的整数部分全部输出,小数部分保留6位,在有效数据范围内的小数部分要进行四舍五入。,例如:doublex=12.123456789;printf(%lf,x);或写成:printf(%f,x);输出结果为:12.123457,%m.nf在m列的位置上输出一个实数保留n位小数,并右对齐,系统自动对在有效数据范围内的小数部分进行四舍五入。当m大于实数总宽度时,多余的位数用空格填充,当m小于实数总宽度时,实数的整数部分按实际宽度输出。,%-m.nf在m列的位置上输出一个实数保留n位小数,并左对齐,系统自动对在有效数据范围内的小数部分进行四舍五入。当m大于实数总宽度时,多余的位数用空格填充,当m小于实数总宽度时,实数的整数部分按实际宽度输出。,例如:printf(%8.2fn%-8.2f,12.123456789,12.123456789);输出结果为:12.1212.12,%.nf实数的整数部分按实际宽度输出,保留n位小数,系统自动对在有效数据范围内的小数部分进行四舍五入。,例如:printf(%.2f,12.123456789);输出结果为:12.12,e格式符用来以指数形式输出一个实数,用法同f格式符,用时把f格式符换成e格式符即可。,g格式符用来输出实数,系统根据实数的大小,自动选f格式符或e格式符输出,输出时选择占宽度较小的一种格式输出,且不输出无意义的0。,例如:printf(%e,12.123456789);输出结果为:1.212346e+001,【例3.4】输出函数应用举例#includevoidmain()inta=27;charch=A;floatb=12.3456;doublec=234.123456;printf(%4d%-4o%4xn,a,a,a);printf(%-4c%4cn,ch,ch);printf(b=%10.2f,b=%-10.2fn,b,b);printf(b=%10.2e,b=%-10.2en,b,b);printf(c=%lf,c=%10.2lfn,c,c);printf(%s,%5.2s,Hello!,Hello!);,使用printf()函数要注意以下几个方面:,数据类型应与格式说明符匹配,否则将会出现错误。int型数据也可以用%u格式输出;反之,一个unsigned型数据也可以用%d、%o、%x格式输出。例如:shortinta=-1;unsignedshortb=65534;printf(%hu,%hdn,a,b);程序运行结果是:65535,-2,除了X、E、G、L可以大写外,其他格式符必须小写,如%f不能写成%F。,如果需要输出“%”,则应在格式符内连续使用两个%。例如:printf(%5.2f%,3.0/100)输出:33.33%,2.格式输入函数格式输入函数scanf()用于从键盘输入数据,该输入数据按指定的输入格式赋给相应的输入项。,注意:“输入格式控制符”必须用英文的双引号括起来,它的作用是按照输入格式从键盘输入若干类型的数据给后面的输入项。,其一般格式为:scanf(输入格式控制符,输入项地址表列);,(1)格式符:即由%和格式字符组成,如%d,%f等。(2)普通字符:如printf(“a=%d,b=%dn”,a,b);中的“a=”、“,”、“b=”都是普通字符,输入时要照原样入。,表3.3列出了scanf()函数常用的格式符。,“输入格式控制符”可以是:,表3.3scanf()的格式说明,在格式说明中,在%和上述格式字符之间还可以插入表3.4所示的几种附加字符(又称修饰符)。,表3.4scanf()的附加格式说明符,使用scanf()函数要注意以下几个方面:,地址表列要用地址运算符“或写成:scanf(%d%d,*pa,*pb);,“输入格式控制符“中的普通字符一定要照原样输入。,如:scanf(%d%d,正确的输入格式是:353535“”代表【enter】键。,例如:scanf(”a=%d,b=%d”,输入时一定要把普通字符“a=”、“,”、“b=”照原样输入,否则会出现数据读入错误。正确的输入格式是:a=3,b=5按【enter】键。,如果“输入格式控制符“中没有普通字符,则输入时应以一个或多个空格、Tab键或【enter】键来分隔。,可以指定输入数据的宽度,系统会自动按它截取所需的数据。,例如:inta;floatb;scanf(“%2d%3f”,输入:abcdefg由于字符型变量只能存放一个字符,因此,系统将a赋给c1,c赋给c2。,需要连续输入多个字符时,字符之间不用分隔,而且空格、回车等均作为有效字符输入.,如果%后面有一个*,则表示本项输入不赋给任何变量。,例如:scanf(“%c%c”,输入:AB系统把字符A赋给c1,把字符B赋给c2。输入:AB系统把字符A赋给c1,把空格符赋给c2。,例如:scanf(%d,%*d,%d,输入:12,34,56系统将12赋给a,56赋给b。,输入数据时不能规定精度。,输入double型数据时,一定要在f、e之前加字母l或L。,%d、%c、%f在一起进行混合输入时,要注意输入的格式。,例如:scanf(%d%c%f,输入:12A23.6系统把12赋给x,把空格符赋给y,z的值为随机数。,例如:scanf(“%6.2f”,上述与输入语句是不合法的。,例如:doublea;scanf(%lf,输入:1

温馨提示

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

评论

0/150

提交评论