四章顺序程序设计

上传人:dus****log 文档编号:171540048 上传时间:2022-11-27 格式:PPT 页数:36 大小:171.50KB
返回 下载 相关 举报
四章顺序程序设计_第1页
第1页 / 共36页
四章顺序程序设计_第2页
第2页 / 共36页
四章顺序程序设计_第3页
第3页 / 共36页
点击查看更多>>
资源描述
本章主要介绍赋值语句、字符输入输出函数以本章主要介绍赋值语句、字符输入输出函数以及格式输入输出函数。通过本章的学习,读者可以及格式输入输出函数。通过本章的学习,读者可以学会顺序结构程序设计的用法,掌握一些常用算法,学会顺序结构程序设计的用法,掌握一些常用算法,能编写较为简单的能编写较为简单的C C程序。程序。学习目标学习目标 1.1.掌握赋值语句、输入输出语句掌握赋值语句、输入输出语句 2.2.学会简单的顺序程序设计学会简单的顺序程序设计 学习重点学习重点 输入、输出语句输入、输出语句 学习难点学习难点 格式输入输出语句格式输入输出语句本章知识网络图本章知识网络图顺序结构程序设计举例顺序结构程序设计举例格式输入与输出格式输入与输出字符数据的输入输出字符数据的输入输出数据输入输出的概念及在数据输入输出的概念及在C语言中的实现语言中的实现赋值语句赋值语句C语言概述语言概述顺序程序设计顺序程序设计一、一、C C语句概述语句概述 1 1、控制语句、控制语句 二个分支语句(二个分支语句(if-elseif-else、switchswitch)三个循环语句(三个循环语句(forfor、whilewhile、do-whiledo-while)四个转移语句(四个转移语句(continuecontinue、breakbreak、gotogoto、returnreturn)2 2、函数调用语句、函数调用语句 如:如:printf(“Helloprintf(“Hello,world!”);,world!”);3 3、表达式语句、表达式语句 x+yx+y;i+;a=2;a=3;i+;a=2;a=3*5,40;5,40;4 4、空语句、空语句(;)(;)5 5、复合语句、复合语句 可以用可以用 把一些语句括起来成为复合语句,又称分程序。把一些语句括起来成为复合语句,又称分程序。语句序列语句序列 赋值语句是由赋值表达式加上一个分号构成赋值语句是由赋值表达式加上一个分号构成 如:如:b=3;b=3;if(a if(a=b)0)t=a;=b)0)t=a;1 1、输入、输出输入、输出 2 2、C C中输入输出操作是由函数来实现的中输入输出操作是由函数来实现的 C C语言函数库中有语言函数库中有“标准输入输出函数标准输入输出函数”字符的输入与输出:字符的输入与输出:getchargetchar()()、putcharputchar()()字符串的输入与输出:字符串的输入与输出:gets()gets()、puts()puts()(p135 (p135用法)用法)格式输入与输出:格式输入与输出:scanfscanf()()、printfprintf()()3 3、在使用、在使用C C语言库函数时,要用预编译命令语言库函数时,要用预编译命令 “#include”#include”将有关的将有关的“头文件头文件”包括到用户源包括到用户源文文 件中。件中。例如:使用标准输入输出库函数时,要用到例如:使用标准输入输出库函数时,要用到 “stdio.hstdio.h”文件,在源文件开头应有:文件,在源文件开头应有:#include stdio.h#include 或或#include“stdio.h#include“stdio.h”1 1、字符输出函数、字符输出函数putcharputchar 语法:语法:putchar(cputchar(c)语义:(向语义:(向stdoutstdout终端)输出一个字符;终端)输出一个字符;C C可以是字符型变量或整型变量。可以是字符型变量或整型变量。如:如:#include#include main()main()putchar(141);putchar(a putchar(141);putchar(a););putchar(A+32);putchar(n putchar(A+32);putchar(n););输出:输出:aaaaaa2 2、字符输入函数、字符输入函数getchargetchar 语法:语法:getchargetchar()(),是一个无参函数;,是一个无参函数;语义:语义:(从从stdiostdio终端上终端上)输入一个字符;输入一个字符;getchargetchar 包含在包含在 stdio.hstdio.h中,是中,是stdio.hstdio.h中定义中定义 的宏;的宏;如:如:#include#include main()main()putchar(getchar putchar(getchar();();1 1、格式输出函数、格式输出函数printfprintf 语法:语法:printfprintf(“(“格式控制格式控制”,输出表列);输出表列);(1 1)格式控制:是用双引号括起来的字符串,包)格式控制:是用双引号括起来的字符串,包含含 两种信息:两种信息:普通字符和转义字符(这类字符总是原样输出)普通字符和转义字符(这类字符总是原样输出)(2 2)格式说明:由)格式说明:由%和格式控制符组成。如:和格式控制符组成。如:%d,%d,%f%f等;(等;(P77P77)如:如:printf(“aprintf(“a=%d,b=%dn”,a,b);=%d,b=%dn”,a,b);(3 3)输出表列)输出表列 输出项表是可选的。如果要输出的数据不止输出项表是可选的。如果要输出的数据不止1 1个,个,相邻相邻2 2个之间用逗号分开。下面的个之间用逗号分开。下面的printfprintf()()函数都函数都是合法的:是合法的:printf(Iprintf(I am a student.n);am a student.n);printf(%d,3+2);printf(%d,3+2);printf(a printf(a=%f b=%5dn,a,a+3);=%f b=%5dn,a,a+3);必须强调:必须强调:“格式字符串格式字符串”中的格式指示符,必须中的格式指示符,必须与与“输出项表输出项表”中、输出项的数据类型一致,否则中、输出项的数据类型一致,否则会引起输出错误。会引起输出错误。(3 3)格式字符)格式字符 对不同类型的数据用不同的格式字符。常用的对不同类型的数据用不同的格式字符。常用的 有以下几种格式字符:有以下几种格式字符:1 1、d d格式字符。用来输出十进制整数。有以下格式字符。用来输出十进制整数。有以下 几种用法:几种用法:%d%d 按整数的实际长度输出按整数的实际长度输出%md,m%md,m为指定的输出字段的长度为指定的输出字段的长度.如果数据如果数据 的数位小于的数位小于m,m,则左端补以空格则左端补以空格,若大于若大于m,m,则按则按 实际倍数输出实际倍数输出.如如:printf(“%4d,%4d”,a,b);:printf(“%4d,%4d”,a,b);a=123,b=12345 a=123,b=12345 123,12345 123,12345%ld%ld 输出长整型数据输出长整型数据.long a=135790;long a=135790;printf(“%ld”,a printf(“%ld”,a););2 2、o o格式符格式符,以八进制数形式输出整数以八进制数形式输出整数.由于是将内存由于是将内存 单元中的各值单元中的各值(0(0或或1)1)按八进制形式输出按八进制形式输出,因此输出因此输出 的数据不带符号的数据不带符号.例如例如:int int a=-1;a=-1;printf(“%d,%o”,a,a printf(“%d,%o”,a,a););输出为输出为:-1,177777:-1,1777773 3、x x格式符格式符,以十六进制形式输出整数以十六进制形式输出整数.同样不会同样不会 出现负的十六进制数出现负的十六进制数.例如例如:int int a=-1;a=-1;printf(“%x,%o,%d”,a,a,a printf(“%x,%o,%d”,a,a,a););输出结果为输出结果为:ffff,177777,-1:ffff,177777,-1 4 4、u u格式符格式符,用来输出用来输出unsinedunsined型数据型数据,即无符号数即无符号数,以十进以十进 制形式输出制形式输出.例如例如:main()main()unsigned int unsigned int a=65535;a=65535;int int b=-2;b=-2;printf(“a printf(“a=%d,%o,%x,%un”,a,a,a,a);=%d,%o,%x,%un”,a,a,a,a);printf(“b printf(“b=%d,%o,%x%un”,b,b,b,b);=%d,%o,%x%un”,b,b,b,b);运行结果为运行结果为:a=-1,177777,ffff,65535 a=-1,177777,ffff,65535 b=-2,177776,fffe,65534 b=-2,177776,fffe,65534 5 5、c c用来输出一个字符用来输出一个字符 例如例如:char c=a char c=a printf(“%c”,c printf(“%c”,c););也可以指定字数宽度也可以指定字数宽度.6 6、S S格式符用来输出一个字符串格式符用来输出一个字符串.有几种用法有几种用法:%s%s%ms,%ms,输出的字符串占输出的字符串占m m列列,如果字符串本身的如果字符串本身的长长 度大于度大于m,m,则突破则突破m m的限制的限制,将字符串全部输出将字符串全部输出.若若 串长度小于串长度小于m,m,则左补空格则左补空格.%-ms,%-ms,字符串向左靠字符串向左靠,右补空格右补空格.%m.ns,%m.ns,输出占输出占m m列列,但只取字符串中但只取字符串中n n个字符个字符,输输 出在出在m m列右侧列右侧,左补空格左补空格%-m,ns%-m,ns同上同上,输出在输出在m m列左铡,右补空格列左铡,右补空格.7 7、f f格式,用来输出实数(包括单、双精度),以格式,用来输出实数(包括单、双精度),以 小数形式输出。有以下几种用法。小数形式输出。有以下几种用法。%f%f不指定字段宽度不指定字段宽度,由系统自动指定由系统自动指定,使整数部使整数部 分全部如数输出分全部如数输出,并输出六位小数。应当注意并输出六位小数。应当注意,并并 非全部数字都是有效数字非全部数字都是有效数字.%m.nf%m.nf指定输出的数据共占指定输出的数据共占m m列,其中有列,其中有n n位位 小数。如果数值长度小于小数。如果数值长度小于m m,则左端补空格。,则左端补空格。%-m.nf%-m.nf与与%m.nf%m.nf基本相同基本相同,只是使输出的数值只是使输出的数值 向左端靠向左端靠,右端补空格右端补空格.8 8、e e格式符格式符,以指数形式输出实数以指数形式输出实数.可用以下形式可用以下形式:%e%e 不指定输出所占的宽度和数字部分的小不指定输出所占的宽度和数字部分的小 数位数数位数,有的有的C C编译系统自动指定给出编译系统自动指定给出6 6位小数位小数,指数部分占指数部分占5 5位如位如:e+002,:e+002,数字按规范化指数形数字按规范化指数形 式输出式输出.%m.ne%m.ne和和%-m.ne.m%-m.ne.m、n n和和-字符含义与前相字符含义与前相 同。此处同。此处n n指拟输出的数据的小数部分的小数指拟输出的数据的小数部分的小数 位数。位数。9 9、g g格式,用来输出实数,它根据数值的大小,格式,用来输出实数,它根据数值的大小,自动选自动选f f格式或格式或e e格式(选择输出时占宽度较小格式(选择输出时占宽度较小 的一种),且不输出无意义的零。的一种),且不输出无意义的零。(4)(4)用用printfprintf函数注意事项函数注意事项 1)1)除了除了X X,G G,E E外,其它格式符必须用小写字母外,其它格式符必须用小写字母 2)2)可用转义字符可用转义字符 3)%3)%用格式符的起始位用格式符的起始位 在程序中给计算机提供数据,可以用赋值语句,也可以在程序中给计算机提供数据,可以用赋值语句,也可以用输入函数。在用输入函数。在C语言中,可使用语言中,可使用scanf()函数,通过键盘输函数,通过键盘输入,给计算机同时提供多个、任意的数据。入,给计算机同时提供多个、任意的数据。一、一、scanf()函数的一般格式函数的一般格式 scanf(格式字符串格式字符串,输入项首地址表输入项首地址表);(1)格式字符串。格式字符串可以包含)格式字符串。格式字符串可以包含3种类型的字符:种类型的字符:格式指示符、空白字符(空格、格式指示符、空白字符(空格、Tab键和回车键)和非空白字键和回车键)和非空白字符(又称普通字符)。符(又称普通字符)。格式指示符与格式指示符与printf()函数的相似,空白字符作为相邻函数的相似,空白字符作为相邻2个输入数据的缺省分隔符,非空白字符在输入有效数据时,个输入数据的缺省分隔符,非空白字符在输入有效数据时,必须原样一起输入。必须原样一起输入。(2 2)输入项首地址表)输入项首地址表由若干个输入项首地由若干个输入项首地址组成,相邻址组成,相邻2 2个输入项首地址之间,用逗号分开。个输入项首地址之间,用逗号分开。输入项首地址表中的地址,可以是变量的首地输入项首地址表中的地址,可以是变量的首地址,也可以是字符数组名或指针变量。址,也可以是字符数组名或指针变量。变量首地址的表示方法:变量首地址的表示方法:&变量名变量名 其中其中“&”&”是地址运算符。例如,是地址运算符。例如,“&radius”&radius”是指变量是指变量radiusradius在内存中的首地址。在内存中的首地址。2 2scanfscanf()()函数的功能:从键盘上接收格式化函数的功能:从键盘上接收格式化输入。输入。二、二、格式指示符格式指示符 格式指示符的一般形式为:格式指示符的一般形式为:%*宽度宽度 l 类类型字符型字符 1类型字符类型字符 类型字符类型字符scanf()函数中,格式字符串函数中,格式字符串“%f%f”。2 2宽度宽度n n 指定该项输入数据所占列数为指定该项输入数据所占列数为n n。换句话说,读取输入数据中相应的换句话说,读取输入数据中相应的n n位,但按需位,但按需要的位数要的位数 赋给相应的变量,多余部分被舍弃。赋给相应的变量,多余部分被舍弃。例如,例如,scanf(%3c%3c,&ch1,&ch2);scanf(%3c%3c,&ch1,&ch2);printf(ch1=%c,ch2=%cn,ch1,ch2);printf(ch1=%c,ch2=%cn,ch1,ch2);假设输入假设输入“abcdefgabcdefg”,则系统将读取的,则系统将读取的“abcabc”中的中的“a”a”赋给变量赋给变量ch1ch1;将读取的;将读取的“def”def”中的中的“d”d”赋给变量赋给变量ch2ch2,所以,所以printfprintf()()函数的输出结果函数的输出结果为:为:ch1=a,ch2=dch1=a,ch2=d。3 3赋值抑制字符赋值抑制字符*表示本输入项对应的数据读入后,不赋给相应的表示本输入项对应的数据读入后,不赋给相应的变量(该变量由下一个格式指示符输入)。变量(该变量由下一个格式指示符输入)。例如,例如,scanf(%2d%scanf(%2d%*2d%3d,&num1,&num2);2d%3d,&num1,&num2);printf(num1=%d,num2=%dn,num1,num2);printf(num1=%d,num2=%dn,num1,num2);假设输入假设输入“123456789”123456789”,则系统将读取,则系统将读取“12”12”并赋值给并赋值给num1num1;读取;读取“34”34”、但舍弃掉(、但舍弃掉(“*”的作的作用);读取用);读取“567”567”并赋值给并赋值给num2num2。所以,。所以,printfprintf()()函数的输出结果为:函数的输出结果为:num1=12,num2=567num1=12,num2=567。4 4类型修饰符类型修饰符ll。其含义与其含义与printfprintf()()中的一样,短整型和长整型。中的一样,短整型和长整型。三、数据输入操作三、数据输入操作 1 1如果相邻如果相邻2 2个格式指示符之间,不指定数据个格式指示符之间,不指定数据分隔符(如逗号、冒号等),则相应的分隔符(如逗号、冒号等),则相应的2 2个输入数据个输入数据之间,至少用一个空格分开,或者用之间,至少用一个空格分开,或者用TabTab键分开,或键分开,或者输入者输入1 1个数据后,按回车,然后再输入下个数据后,按回车,然后再输入下1 1个数据。个数据。例如,例如,scanf(%d%d,&num1,&num2);scanf(%d%d,&num1,&num2);假设给假设给num1num1输入输入1212,给,给num2num2输入输入3636,则正确的,则正确的输入操作为:输入操作为:12123636 或者:或者:1212 36 36注注:使用:使用“”符号表示按回车键操作,在输入数符号表示按回车键操作,在输入数据操作中的作用是,通知系统输入操作结束。据操作中的作用是,通知系统输入操作结束。2 2“格式字符串格式字符串”中出现的普通字符(包括转义字符形中出现的普通字符(包括转义字符形式的字符),务必原样输入。式的字符),务必原样输入。例如,例如,scanf(%d,%d,&num1,&num2);scanf(%d,%d,&num1,&num2);假设给假设给num1num1输入输入1212,给,给num2num2输入输入3636,正确的输入操作为:,正确的输入操作为:1212,3636 另外另外,scanfscanf()()函数中、格式字符串内的转义字符函数中、格式字符串内的转义字符(如如n)n),系统并不把它当转义字符来解释,从而产生一个控制操作,系统并不把它当转义字符来解释,从而产生一个控制操作,而是将其视为普通字符,所以也要原样输入。而是将其视为普通字符,所以也要原样输入。例如:例如:scanf(num1=%d,num2=%dn,&num1,&num2);scanf(num1=%d,num2=%dn,&num1,&num2);假设给假设给num1num1输入输入1212,给,给num2num2输入输入3636,正确的输入操作为:,正确的输入操作为:num1=12num1=12,num2=36nnum2=36n 提高人机交互性建议提高人机交互性建议:为改善人机交互性,同时简化输:为改善人机交互性,同时简化输入操作,在设计输入操作时,一般先用入操作,在设计输入操作时,一般先用printfprintf()()函数输出一函数输出一个提示信息,再个提示信息,再用用scanfscanf()()函数进行数据输入。函数进行数据输入。例如,将例如,将 scanf(num1=%d,num2=%dn,&num1,&num2);scanf(num1=%d,num2=%dn,&num1,&num2);改为:改为:printf(num1=);scanf(%d,&num1);printf(num1=);scanf(%d,&num1);printf(num2=);scanf(%d,&num2);printf(num2=);scanf(%d,&num2);3 3输入数据时,遇到以下情况,系统认为该数据结束:输入数据时,遇到以下情况,系统认为该数据结束:(1 1)遇到空格,或者回车键,或者)遇到空格,或者回车键,或者TabTab键。键。(2 2)遇到输入域宽度结束。例如)遇到输入域宽度结束。例如“%3d”%3d”,只取,只取3 3列。列。(3 3)遇到非法输入。例如,在输入数值数据时,遇到字)遇到非法输入。例如,在输入数值数据时,遇到字母等非数值符号母等非数值符号(数值符号仅由数字字符数值符号仅由数字字符0-90-9、小数点和正负、小数点和正负号构成号构成)。4 4、使用格式说明符、使用格式说明符“%c”%c”输入单个字符时,空输入单个字符时,空格和转义字符均作为有效字符被输入。格和转义字符均作为有效字符被输入。例如,例如,scanf(%c%c%c,&ch1,&ch2,&ch3);scanf(%c%c%c,&ch1,&ch2,&ch3);printf(ch1=%c,ch2=%c,ch3=%cn,ch1,ch2,ch3);printf(ch1=%c,ch2=%c,ch3=%cn,ch1,ch2,ch3);假设输入:假设输入:A AB BCC,则系统将字母,则系统将字母AA赋值赋值给给ch1ch1,空格,空格 赋值给赋值给ch2ch2,字母,字母BB赋值给赋值给ch3ch3。在顺序结构程序中,各语句(或命令)是按照位置的先后在顺序结构程序中,各语句(或命令)是按照位置的先后次序,顺序执行的,且每个语句都会被执行到。次序,顺序执行的,且每个语句都会被执行到。输入任意三个整数,求它们的和及平均值。输入任意三个整数,求它们的和及平均值。main()main()int num1,num2,num3,sum;int num1,num2,num3,sum;float aver;float aver;printf(Please input three numbers:);printf(Please input three numbers:);scanf(%d,%d,%d,&num1,&num2,&num3);/scanf(%d,%d,%d,&num1,&num2,&num3);/sum=num1+num2+num3;sum=num1+num2+num3;aver=sum/3.0;aver=sum/3.0;printf(num1=%d,num2=%d,num3=%dn,num1,num2,num3);printf(num1=%d,num2=%d,num3=%dn,num1,num2,num3);printf(sum printf(sum=%d,aver=%7.2fn,sum,aver);=%d,aver=%7.2fn,sum,aver);求方程求方程axax2 2+bx+c=0+bx+c=0的实数根。的实数根。a a,b b,c c由键盘输入,由键盘输入,a0a0且且b b2 2-4ac04ac0。#include math.h#include math.hmain()main()float a,b,c,disc,x1,x2;float a,b,c,disc,x1,x2;printf(Input printf(Input a,b,c:);a,b,c:);scanf(%f,%f,%f,&a,&b,&c scanf(%f,%f,%f,&a,&b,&c););disc=b disc=b*b-4b-4*a a*c;c;x1=(-b+sqrt(disc)/(2 x1=(-b+sqrt(disc)/(2*a);a);x2=(-b-sqrt(disc)/(2 x2=(-b-sqrt(disc)/(2*a);a);printf(nx1=%6.2fnx2=%6.2fn,x1,x2);printf(nx1=%6.2fnx2=%6.2fn,x1,x2);从键盘输入一个小写字母,要求用大写字母形式输从键盘输入一个小写字母,要求用大写字母形式输出该字母及对应的出该字母及对应的ASCIIASCII码值。码值。#include stdio.hmain()char c1,c2;printf(Input a lowercase letter:);c1=getchar();putchar(c1);printf(,%dn,c1);c2=c1-32;printf(%c,%dn,c2,c2);在顺序结构程序中,一般包括以下几个部分:在顺序结构程序中,一般包括以下几个部分:1 1程序开头的编译预处理命令。程序开头的编译预处理命令。在程序中要使用标准函数(又称库函数),除在程序中要使用标准函数(又称库函数),除printf()printf()和和scanfscanf()()外,其它的都必须使用编译预处理命令,将相应外,其它的都必须使用编译预处理命令,将相应的头文件包含进来。的头文件包含进来。2 2顺序结构程序的函数体中,是完成具体功能的各个顺序结构程序的函数体中,是完成具体功能的各个语句和运算,主要包括:语句和运算,主要包括:(1 1)变量类型的说明。)变量类型的说明。(2 2)提供数据语句。)提供数据语句。(3 3)运算部分。)运算部分。(4 4)输出部分。)输出部分。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!