《顺序结构和常用语句.pptx》由会员分享,可在线阅读,更多相关《顺序结构和常用语句.pptx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 结构化程序设计的基本结构三种结构化程序设计的基本结构三种:顺序结构顺序结构程序中的语句按照书写的顺序执行。程序中的语句按照书写的顺序执行。分支分支(选择选择)结构结构程序中的语句根据某个逻辑值有选择地执行。程序中的语句根据某个逻辑值有选择地执行。循环循环(重复重复)结构结构程序中的语句根据某个逻辑值有条件地重复执行。程序中的语句根据某个逻辑值有条件地重复执行。一、程序的基本结构:一、程序的基本结构:(补补充充)第1页/共29页 C程序的语句有如下五种程序的语句有如下五种:表达式语句:表达式语句:任何表达式加上分号构成。任何表达式加上分号构成。如如:x=1;y=x+y;-x;y+1;函数调用语
2、句:函数调用语句:由一次函数调用加上分号构成由一次函数调用加上分号构成 如如:printf(Very Good!n);复合语句复合语句:用用 括起来组成的一个语句。括起来组成的一个语句。如:如:if(ab)x=0;b=b+1;x=a;空语句:空语句:仅由一个分号构成的语句。仅由一个分号构成的语句。控制语句:控制语句:控制程序的流程控制程序的流程。如:如:ifelse语句,语句,while语句,语句,return语句。语句。二、二、C语言语句语言语句(P54)第2页/共29页 C语言对数据的输入、数据的输出是语言对数据的输入、数据的输出是通过函数通过函数实现的。其中最基本的有:格式实现的。其中最
3、基本的有:格式输出函数输出函数printf(),格式输入函数格式输入函数scanf(),字符输出函数字符输出函数putchar(),字符输入字符输入getchar()。注意:在调用注意:在调用putchar(),字符输入字符输入getchar()函数时,应在程序开始处使用文函数时,应在程序开始处使用文件包含命令,即:件包含命令,即:#include 顺序结构程序中的语句一般按照三步编写:输入参数、根据参数计算、输出计顺序结构程序中的语句一般按照三步编写:输入参数、根据参数计算、输出计算结果。算结果。三、顺序结构(补三、顺序结构(补充)充)第3页/共29页1、字符输出:、字符输出:putchar
4、()函数函数格式:格式:putchar(c);功能:向终端功能:向终端(屏幕屏幕)输出一个字符输出一个字符c。说明:说明:1)c为参数,它可以是字符型变量、字符型常量或转义字符。为参数,它可以是字符型变量、字符型常量或转义字符。2)程序中需要增加包含命令:程序中需要增加包含命令:#include 或者:或者:#include stdio.h四、字符输入输出四、字符输入输出 (P65)第4页/共29页#include stdio.hmain()char a;int b;a=b;b=111;putchar(a);putchar(b);putchar(y);putchar(n);例:例:putcha
5、r()函数例题函数例题(写出执行结果写出执行结果)程序运行结果:程序运行结果:boy说明:说明:o的的ASCII码为码为111。第5页/共29页2、字符输入函数、字符输入函数getchar()(P68)格式:格式:getchar();功能:从终端功能:从终端(键盘键盘)接收接收(读入读入)一个字符。一个字符。说明:说明:getchar()只能接收一个字符,该字符可赋给字符变量。只能接收一个字符,该字符可赋给字符变量。#include void main()char c;c=getchar();putchar(c);功能:输入一个字符,再将该字符功能:输入一个字符,再将该字符输出。输出。第6页/
6、共29页功能:功能:通过标准输出设备通过标准输出设备(如显示器如显示器)输出一组数据。输出形式由输出一组数据。输出形式由格式控制格式控制字符字符串规定。串规定。1、格式输出:、格式输出:printf()函数函数格式:格式:printf(格式控制格式控制,输出表列,输出表列);格式控制格式控制:由由双引号双引号括起来的字符串,用于指定要括起来的字符串,用于指定要输出的数据的格式。输出的数据的格式。输出列表输出列表:需要输出的数据表列,彼此间用需要输出的数据表列,彼此间用逗号逗号分隔。它可是任意合法的表达式。分隔。它可是任意合法的表达式。五、格式输入输出函数五、格式输入输出函数 (P57)第7页/
7、共29页格式符功 能形 式d输出十进制整数%d、%md、%ld、%mldo以八进制形式输出整数%o、%mo、%lox以十六进制形式输出整数%x、%mx、%lxu以十进制形式输出一个无符号的数%uc输出一个字符%cs输出一个字符串%s、%ms、%m.nsf以小数的形式输出实数%f、%m.nf、%lfe以标准指数的形式输出实数%e、%m.neg根据实数的大小自动按f或e的形式选择输出格式%g用于输出的格式字符用于输出的格式字符 (P58)(P58)第8页/共29页 printf(a+b=%5.2 f ,c);附加格式符格式符格式符输出表列输出表列普通字符普通字符格式说明符格式说明符格式控制格式控制
8、输出结果:输出结果:普通字符原样输出,输出表列根据格式控制符号来输出,即格式控普通字符原样输出,输出表列根据格式控制符号来输出,即格式控制符控制输出表列的输出结果。制符控制输出表列的输出结果。格式输出函数格式输出函数printf()printf()的格式说明:的格式说明:第9页/共29页格式字符说明:格式字符说明:1)d格式字符。格式字符。%d:按整型数据的实际长度输出。按整型数据的实际长度输出。%md:m为指定的输出长度。如果数据位小于为指定的输出长度。如果数据位小于m,则左端补以空格则左端补以空格;大于大于m,则,则按实际位输出。按实际位输出。例:例:printf(%4d,%4d,a,b)
9、;若若a=12,b=12345则输出为:则输出为:12,12345%ld:输出长整型数据。输出长整型数据。TC 2.0中的中的%d的输出范围为的输出范围为-3276832767,输出超过该范围的整型数就会出,输出超过该范围的整型数就会出错,此时用错,此时用%ld输出。其输出格式和功能与输出。其输出格式和功能与%d相同,如:相同,如:%8ld。第10页/共29页2)o格式字符格式字符以八进制数形式输出整数,且不带符号。对于长整数可用以八进制数形式输出整数,且不带符号。对于长整数可用%lo%lo输出。功能输出。功能同十进制输出。同十进制输出。3)x格式字符格式字符以十六进制数形式输出整数,且不带符
10、号。对于长整数可用以十六进制数形式输出整数,且不带符号。对于长整数可用%lx输出。功输出。功能同十进制输出。能同十进制输出。4)u格式字符格式字符用来输出用来输出unsignedint 数据,即无符号整数,输出十进制数。数据,即无符号整数,输出十进制数。第11页/共29页#include main()int a;a=20;printf(a=%dn,a);printf(a=%on,a);printf(a=%xn,a);例:写出下面程序的执行结果。例:写出下面程序的执行结果。执行结果:执行结果:a=20 a=24 a=14第12页/共29页#include main()int a,b,c;a=20
11、;b=020;c=0 x20;printf(a=%d,b=%d,c=%dn,a,b,c);printf(a=%o,b=%o,c=%on,a,b,c);printf(a=%x,b=%x,c=%xn,a,b,c);例:写出下面程序的执行结果。例:写出下面程序的执行结果。程序的执行结果:程序的执行结果:a=20,b=16,c=32 a=24,b=20,c=40 a=14,b=10,c=20第13页/共29页#include main()short int a,b;a=-1;b=65535;printf(a=%d,b=%dn,a,b);a=-2;b=65534;printf(a=%d,b=%dn,a,
12、b);a=-9;b=65527;printf(a=%d,b=%dn,a,b);例:写出下面程序的执行结果。例:写出下面程序的执行结果。执行结果:执行结果:a=-1,b=-1 a=-2,b=-2 a=-9,b=-9 思考:思考:如果如果 a=32768;b=-32768 程序的执行结果程序的执行结果?第14页/共29页#include main()int a;a=-1;printf(a=%d,a=%o,a=%x,a=%un,a,a,a,a);例:写出下面程序的执行结果。例:写出下面程序的执行结果。在在Vc+6.0下,程序的执行结果为:下,程序的执行结果为:a=-1,a=37777777777,a
13、=ffffffff,a=4294967295在在Turbo c 2.0下,程序的执行结果为:下,程序的执行结果为:a=-1,a=17777,a=ffff,a=65535思考:思考:为什么会出现上述两种不同的执行结果为什么会出现上述两种不同的执行结果?第15页/共29页5)c格式字符格式字符 说明:一个整数,如果在说明:一个整数,如果在0255之间,也可用字符形式输出,系统会将该整数之间,也可用字符形式输出,系统会将该整数转换成相对应的转换成相对应的ASCII码字符;同时,一字符也可以用整数形式输出。码字符;同时,一字符也可以用整数形式输出。作用:用来输出一个字符。作用:用来输出一个字符。int
14、 x=65;printf(%c,x);int x=A;printf(%d,x);输出输出:A输出输出:65如如:printf(%3c,c),则输出为:则输出为:c格式字符也可以指定输出字数宽度格式字符也可以指定输出字数宽度 A第16页/共29页6)s格式字符格式字符用来输出一个字符串。用来输出一个字符串。例:例:printf(%s,Hello!);输出为:输出为:Hello。%ms:输出的字符串占:输出的字符串占m列。如果字符串长度小于列。如果字符串长度小于m,则左端补以空格;否则输,则左端补以空格;否则输出整个字符串。出整个字符串。%-ms:如果串长小于:如果串长小于m,则字符串向左靠,右补
15、空格,其余同上。,则字符串向左靠,右补空格,其余同上。%m.ns:输出的字符串占:输出的字符串占m列列,但只取字符串中左端但只取字符串中左端n个字符,字符输出在个字符,字符输出在m列列的右侧,左端补空格。的右侧,左端补空格。%-m.ns:-是左对齐,即右补空格。是左对齐,即右补空格。第17页/共29页#include main()char str1=abcdefg;printf(1234567890n);printf(%sn,str1);printf(%10sn,str1);printf(%5sn,str1);printf(%10.5sn,str1);printf(%-10.5sn,str1)
16、;例:写出下面程序的执行结果。例:写出下面程序的执行结果。执行结果为:执行结果为:1234567890abcdefg abcdefgabcdefg abcdeabcde 第18页/共29页7)f格式字符格式字符%f:不指定字段宽度,整数部分全部输出,小数部分输出:不指定字段宽度,整数部分全部输出,小数部分输出6位。位。%m.nf:指定输出数据占:指定输出数据占m列,其中有列,其中有n位小数。若数值长度小于位小数。若数值长度小于m,则左端,则左端补以空格。补以空格。%-m.nf:功能同上,右端补以空格。:功能同上,右端补以空格。8)e格式字符格式字符%e:不指定字段宽度,系统自动给出:不指定字段
17、宽度,系统自动给出6位小数,指数部分占位小数,指数部分占4位。其中位。其中e占占1位,指数符号占位,指数符号占1位,指数占位,指数占2位。位。第19页/共29页#include main()float x=123.456;printf(1234567890n);printf(%fn,x);printf(%en,x);printf(%10.3fn,x);printf(%-10.3fn,x);例:写出下面程序的执行结果。例:写出下面程序的执行结果。执行结果为:执行结果为:1234567890123.4560001.234560e+002 123.456123.456 第20页/共29页#inclu
18、deint main()int v=10;printf(%d,%d,%dn,v+,v+,v+);例:写出下面程序的执行结果。例:写出下面程序的执行结果。在在Vc+6.0下,程序的执行结果为:下,程序的执行结果为:10,10,10在在Dev C+下,程序的执行结果为:下,程序的执行结果为:12,11,10思考:思考:为什么会出现上述两种不同的执行结果为什么会出现上述两种不同的执行结果?9)9)函数中的输出项按照从右向左的顺序输出(函数中的输出项按照从右向左的顺序输出(P65P65)第21页/共29页2、格式输入函数、格式输入函数scanf (P66)函数功能:函数功能:从终端输入任何类型的多个数
19、据从终端输入任何类型的多个数据 函数格式:函数格式:scanf(格式控制格式控制,地址表列,地址表列);格式控制格式控制:与与printf相同,但普通字符按原样输入。相同,但普通字符按原样输入。地址表列地址表列:由若干个变量地址组成的表列。由若干个变量地址组成的表列。地址是地址是由由运算得到的。运算得到的。是取址运算符,单目运算符,是取址运算符,单目运算符,右结合性。右结合性。例如:例如:&a,&chr分别表示变量分别表示变量a,chr,i的地址,该地址是在编译连接时系统分配的地址,该地址是在编译连接时系统分配给变量给变量a,chr的地址。的地址。第22页/共29页例例1:scanf(%d%d
20、,&a,&b);可以采用格式:可以采用格式:12678 例例2:scanf(%d,%d,&a,&b);必须采用格式:必须采用格式:12,678 例例3:scanf(a=%d,b=%d,&a,&b);必须采用格式:必须采用格式:a=12,b=678 如果要使如果要使a、b的值为的值为12和和678,则:,则:1)普通字符应该原样输入,格式符中无普通字符时,可用普通字符应该原样输入,格式符中无普通字符时,可用空格、空格、Tab键、回键、回车键车键作分隔符。作分隔符。第23页/共29页 2)无符号数可用无符号数可用%d、%o、%x 格式输入。格式输入。3)输入格式符带有输入格式符带有*:表示该数据不
21、赋值。:表示该数据不赋值。例:例:scanf(%d%*d%d,&a,&c);键入键入:12 34 567 则则 a=12,c=567,34未赋值。未赋值。5)数据输入时不可规定精度,但可确定宽度。数据输入时不可规定精度,但可确定宽度。例:例:scanf(%3f%3c,&a,&b);合法。合法。例:例:scanf(%3.2f%3c,&a,&b);非法。非法。4)用用c格式符输入字符时,空格均为有效字符。格式符输入字符时,空格均为有效字符。例:例:scanf(%c%c%c,&a,&b,&c);若键入若键入 ABC 则则 a=A,b=B,c=C 若键入若键入 A B C 则则 a=A,b=空格,空格
22、,c=B 第24页/共29页/*参考程序参考程序*/#include void main()int a,b,temp;scanf(%d,%d,&a,&b);temp=a;a=b;b=temp;printf(a=%d,b=%dn,a,b);六、顺序结构程序设计例六、顺序结构程序设计例(P69)例:变量交换。例:变量交换。输入输入2个整数,交换它们的值并输出。个整数,交换它们的值并输出。第25页/共29页分析:分析:设鸡有设鸡有x只,兔有只,兔有y只。只。则方程:则方程:解得解得:例例2:鸡兔同笼问题。:鸡兔同笼问题。已知鸡兔总头数为已知鸡兔总头数为H,总脚数为,总脚数为F,求鸡兔各有多少只?,求
23、鸡兔各有多少只?第26页/共29页/*参考程序参考程序*/#include void main()int x,y;/*x为鸡的数量,为鸡的数量,y为兔的数量为兔的数量*/int h,f;printf(请输入鸡兔的总头数总脚数请输入鸡兔的总头数总脚数:n);scanf(%d%d,&h,&f);x=(4*h-f)/2;y=(f-2*h)/2;printf(笼中有鸡笼中有鸡%d只,有兔只,有兔%d只。只。n,x,y);第27页/共29页例例3:输入一个三位数,按反序输出。:输入一个三位数,按反序输出。例如例如:输入输入123,输出,输出321。/*参考程序参考程序*/#include void main()int x,a,b,c,y;scanf(%d,&x);a=x/100;/a为百位为百位 b=x/10%10;/b为十位为十位 c=x%10;/c为个位为个位y=c*100+b*10+a;printf(x=%d,y=%dn,x,y);第28页/共29页感谢您的观看!第29页/共29页
限制150内