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

下载本文档

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

文档简介

第3章顺序结构程序设计第3章顺序结构程序设计主要内容:

3.1C语句概述

3.1.1C语言的基本语句

3.1.2赋值语句

3.2数据的输入/输出

3.2.1字符输入/输出函数

3.2.2格式输入/输出函数

3.3程序举例主要内容:

3.1C语句概述

3.1.1C语言的基本语句3.1C语句概述

图3.1C语言程序结构3.1C语句概述图3.1C语言程序结构3.1.1C语言的基本语句

1.表达式语句C语言是一种表达式语言,所有的操作运算都通过表达式来完成。由表达式组成的语句称为表达式语句。表达式语句的一般形式为:表达式;

应注意:分号是C语言的语句中不可缺少的一部分,因此“a=10”和“a=10;”是不同的,前者是一个赋值表达式,而后者才是一个赋值语句。3.1.1C语言的基本语句

1.表达式语句C语言是一种表例如:

sum=0;

i++;

sum+=i++;

x+y;

2.控制语句控制语句用于完成一定的功能。C语言有9中控制语句,它们是:

例如:

sum=0;

i++;

sum+=i++;

x+y;(1)if()…else… (条件语句)

(2)for()… (循环语句)

(3)while()… (循环语句)

(4)do…while() (循环语句)

(5)continue (结束本次循环语句)

(6)break (中止执行switch或循环语句)

(7)switch (多分支选择语句)

(8)goto (转向语句)

(9)return (从函数返回语句)(1)if()…else… (条件语句)

(2)for()3.函数调用语句

由一个函数调用加一个分号构成一个语句,其完成特定的任务。其一般形式为:

函数名(实际参数表);

例如:

printf(″Iamastudent!!!″);该函数调用语句的作用是:在屏幕上显示Iamastudent!!!。3.函数调用语句

由一个函数调用加一个分号构成一个语句4.复合语句

复合语句由花括号“{}”括起来的两条或两条以上的语句组成。一个复合语句在功能上相当于一条语句。复合语句也可称为“块语句”,复合语句的一般形式为:

{语句1;语句2;…;语句n;}

例如:

{inta=3,b; /*定义部分*/a++; /*执行语句*/b*=a; /*执行语句*/printf("b=%d\n",b);} /*执行语句*/4.复合语句

复合语句由花括号“{}”括起来的两5.空语句

C语言中的所有语句都必须由一个分号“;”作为结束。如果只有一个分号,如:

main()

{;}

这个分号也是一条语句,称为“空语句”。

空语句的一般形式为:

;空语句是什么也不执行的语句。在程序中空语句常用来做空循环体,可起到延时作用。5.空语句

C语言中的所有语句都必须由一个分号“;”3.1.2赋值语句

赋值语句是由赋值表达式加上分号“;”构成的。例如:

a=b+3;

a=b=c+5;

都是合法的赋值语句。

使用赋值语句要注意以下几个方面:赋值号“=”左边必须是变量,不能是常量或变量表达式。赋值号“=”右面可以是变量、常量或各种合法的表达式。3.1.2赋值语句

赋值语句是由赋值表达式加上分号2.变量赋初值与赋值语句的区别。例如:inta=3,b,*p=&a,*q;/*给变量a和p赋初值*/b=5; /*给变量b赋值*/q=&b; /*给指针变量q赋值*/再如:intx=5,y=5,m,n;m=n=6;这里要注意:intx=5,y=5,m,n;不能写成intx=y=5,m,n;

也就是说在定义变量时,不允许连续给多个变量赋初值。而赋值语句是允许连续给多个变量赋值。2.变量赋初值与赋值语句的区别。例如:这里要注意:3.2数据的输入/输出

C语言没有专门的输入或输出语句,但在C的标准库函数中提供了常用的输入和输出函数。由于标准库函数中所用到的变量定义和宏定义均在扩展名为.h的头文件中描述,因此在需要使用标准I/O库中的函数时,应在程序前使用下面的预编译命令,#include<stdio.h>或#include"stdio.h""

"将相应的.h头文件包含到用户程序中。3.2数据的输入/输出

C语言没有专门的输入或输出3.2.1字符输入/输出函数

1.字符输出函数一般形式为:

putchar(c);

该函数的作用是向终端(如显示器)输出一个字符。C可以是字符常量或变量、整型常量或变量、转义字符。3.2.1字符输入/输出函数1.字符输出函数【例3.2】字符输出举例

#include<stdio.h>

voidmain()

{chara='A',b='B';

putchar(a);

putchar('A');

putchar(65);

putchar('\n');

putchar(b);

putchar('B');

putchar(66);

}

运行结果:

AAABBB【例3.2】字符输出举例

#include<stdio.2.字符输入函数

一般形式为:

getchar();

该函数的作用是从终端(如键盘)输入一个字符。【例3.3】字符输入举例#include<stdio.h>voidmain(){charch;ch=getchar();putchar(ch);putchar('\n');}运行结果:A↙ A2.字符输入函数

一般形式为:

ge使用getchar()函数要注意以下几个方面:

(1)getchar()函数的括号()内不允许有任何数据,但这一对圆括号不可少,这一点要和putchar()区别开来。

(2)使用本函数前必须包含文件“stdio.h”。

(3)getchar()函数只能接收一个字符,输入的数字也按字符处理,而且输入的空格、回车都将作为字符读入,当输入多个字符时也只能接收一个字符。因此,在用getchar()函数连续输入两个字符时要注意回车符和空格符。使用getchar()函数要注意以下几个方面:

(1)get当从键盘输入:A12并按【enter】键,则变量ch1的值是‘A’,变量ch2的值是‘1’。

当从键盘输入:A12并按【enter】键,则变量ch1的值是‘A’,变量ch2的值是空格符。

当从键盘输入:A↙/*↙代表【enter】键*/

则变量ch1的值是‘A’,变量ch2的值是‘\n’。

例如:

charch1,ch2;

ch1=getchar();

ch2=getchar();

当从键盘输入:A12并按【enter】键,则变量ch1的值是(3)给getchar()函数输入字符时不需加单引号,输入字符后必须按【enter】键,字符才能送到内存。

(4)getchar()函数得到的字符可以赋给一个字符型变量或整型变量,也可以不赋给任何变量,可作为表达式的一部分。(3)给getchar()函数输入字符时不需加单引号,输入字3.2.2格式输入/输出函数

1.格式输出函数(1)printf(″要输出的字符序列″)注意:“要输出的字符序列”必须用英文的双引号括起来,它的作用是在屏幕上原样输出“要输出的字符序列”。

例如:printf("Ilovechina!!!");在屏幕上将看到:Ilovechina!!!3.2.2格式输入/输出函数1.格式输出函数例如:(2)printf(“输出格式控制符”,输出列表项)

注意:“输出格式控制符”必须用英文的双引号括起来,它的作用是按照输出格式来输出后面的输出列表项的值。

例如:

intx=3,y=4,*px=&x,*py=&y;printf("%d,%d",x,y);

或写成:printf("%d,%d",*px,*py);在屏幕上将会看到:3,4。语句printf("%d,%d",x,y);的作用是:以%d的格式输出变量x的值,以%d的格式输出变量y的值,中间以逗号分隔。(2)printf(“输出格式控制符”,输出列表项)

“输出格式控制符”可以是:

(1)格式符:即由%和格式字符组成,如%d,%f等。

(2)普通字符:如printf(“a=%d,b=%d\n”,a,b);中的“a=”、“,”、“b=”都是普通字符,普通字符原样输出。

(3)转义字符:如printf(“a=%d,b=%d\n”,a,b);中的“\n”。其含义是“换行”。C语言中常用的格式字符共有9种,如表3.1所示。“输出格式控制符”可以是:

(1)格式符:即由%和格式字符组格式字符说明d,i输出带符号的十进制整数(正数不输出符号)o以八进制无符号形式输出整数(不输出前导0)x或X以十六进制无符号形式输出整数(不输出前导0x),用x则输出十六进制数a~f时以小写形式输出;用X时,则以大写形式输出u以无符号十进制形式输出整数c输出一个字符s输出字符串的字符,直到遇到“\0”,或者输出由精度指定的字符数f以小数形式输出单、双精度数,隐含输出6位小数。若指定的精度为0,小数部分(包括小数点)都不输出e或E以标准指数形式输出单、双精度数,用E时,指数部分的e用大写E,数字部分的小数位数为6位g或G由系统决定采用%f或%e或%E格式,以使输出宽度最小,用G时,指数部分的e用大写E。%输出百分号(%)表3.1printf()的格式说明格式字符说明d,i输出带符号的十进制整数(正数不在格式说明中,在%和上述格式字符之间还可以插入表3.2所示的几种附加字符(又称修饰符)。格式字符说明l或L输出长整型数据,可以放在d、o、x、u的前面;输出double型数据,可以放在f、e之前h输出短整型数据,可以放在d、o、x、u的前面m输出数据的宽度n对于实数,表示输出n位小数。对于字符串,表示截取字符个数-输出的数据在域内左对齐表3.2printf()的附加格式说明符在格式说明中,在%和上述格式字符之间还可以插入表3.printf()函数常用的格式符如下.

d格式符用来输出十进制整数。%d→以整数的实际位数输出。例如:

printf("%d",2009);输出结果为:2009%+d→以整数的实际位数输出,输出时正整数前带正号“+”。例如:

printf("%d",2009);输出结果为:+2009printf()函数常用的格式符如下.d格式符用来输出十进%md→输出的整数占m列并右对齐,当m大于整数的宽度时,多余的位用空格填充,当m小于整数的宽度时,按整数的实际位数输出。

例如:

printf("%8d",2009);

输出结果为:

2009%-md→输出的整数占m列并左对齐,当m大于整数的宽度时,多余的位用空格填充,当m小于整数的宽度时,按整数的实际位数输出。例如:printf("%8d\n%-8d",2009,2009);输出结果为:

20092009%md→输出的整数占m列并右对齐,当m大于整数的宽度时,多余%ld或%Ld→输出长整型数据,按实际位数输出。%hd→输出短整型数据,按实际位数输出。%mld或%mLd→输出长整型数据占m列并右对齐,当m大于整数的宽度时,多余的位用空格填充,当m小于整数的宽度时,按整数的实际位数输出。%-mld或%-mLd→输出长整型数据占m列并左对齐,当m大于整数的宽度时,多余的位用空格填充,当m小于整数的宽度时,按整数的实际位数输出。例如:

longx=123456; printf("%8ld\n%-8ld",x,x);输出结果为:

123456123456%ld或%Ld→输出长整型数据,按实际位数输出。例如:%0md→输出的整数占m列并右对齐,当m大于整数的宽度时,多余的位用0填充,当m小于整数的宽度时,按整数的实际位数输出。例如:

printf("%8d",2009);输出结果为:00002009注意:没有%-0md格式控制符。%0md→输出的整数占m列并右对齐,当m大于整数的宽度时,多o格式符用来输出八进制整数,其用法同d格式符,用时把d格式符改为o格式符即可。

例如:

shortintn=-1;

printf(“%ho”,n);

输出结果为:

177777

可以看到,八进制形式输出的整数是不考虑符号的。o格式符用来输出八进制整数,其用法同d格式符,用时把d格式符x或X格式符用来输出十六进制数,其用法同d格式符,用时把d格式符改为x或X格式符即可。

例如:

shortintn=-1;

printf(“%hx”,n);

printf(“%hX”,n);

输出结果为:

ffffFFFF

可以看到,十六进制形式输出的整数也是不考虑符号的。x或X格式符用来输出十六进制数,其用法同d格式符,用时把d格u格式符用来输出无符号型的十进制整数,其用法同d格式符,用时把d格式符改为u格式符即可。

例如:

shortintn=-1;

printf(“%hd,%hu”,n,n);

输出结果为:

-1,65535

从有符号的角度看,它表示的是-1;从无符号数的角度看,它表示的是65535。u格式符用来输出无符号型的十进制整数,其用法同d格式符,用时

c格式符用来输出一个字符。有以下用法:

%c→输出一个字符。

%mc→输出的字符占m列并右对齐,多余的位用空格填充。

%-mc→输出的字符占m列并左对齐,多余的位用空格填充。

例如:

printf("%4c\n%-4c",'A','A');

输出结果为:

A

Ac格式符用来输出一个字符。有以下用法:

%c→输出一个字符

s格式符用来输出一个字符串。有以下用法:%s→以字符串的实际长度输出一个字符串。printf("%s","china");输出结果为:china%ms→输出的字符串占m列并右对齐,当m大于字符串的实际长度时,多余的位用空格填充,当m小于字符串的实际长度时,按字符串的实际长度输出。s格式符用来输出一个字符串。有以下用法:%s→以字符串的实%-ms→输出的字符串占m列并左对齐,当m大于字符串的实际长度时,多余的位用空格填充,当m小于字符串的实际长度时,按字符串的实际长度输出。

例如:

printf(“%8s\n%-8s”,“china”,“china”);

输出结果为:

china

china

%-ms→输出的字符串占m列并左对齐,当m大于字符串的实际长%m.ns→在m列的位置上输出一个字符串的前n个字符,并右对齐,m>n时,多余的位数用空格填充,m<n时,输出实际长度的字符串。

%-m.ns→在m列的位置上输出一个字符串的前n个字符,并左对齐,m>n时,多余的位数用空格填充,m<n时,输出实际长度的字符串。例如:printf("%8.2s\n%-8.2s","china","china");输出结果为:

chch%m.ns→在m列的位置上输出一个字符串的前n个字符,并右对f格式符用来输出实数(包括单精度、双精度),以小数形式输出。

%f→用于输出单精度小数,也可输出双精度小数,输出时实数的整数部分全部输出,小数部分保留6位,在有效数据范围内的小数部分要进行四舍五入。例如:printf("%f",12.123456789);输出结果为:12.123457f格式符用来输出实数(包括单精度、双精度),以小数形式输出。%lf或%Lf→用于输出双精度小数,输出时实数的整数部分全部输出,小数部分保留6位,在有效数据范围内的小数部分要进行四舍五入。

例如:doublex=12.123456789;

printf("%lf",x);

或写成:

printf("%f",x);

输出结果为:

12.123457%lf或%Lf→用于输出双精度小数,输出时实数的整数部分全部%m.nf→在m列的位置上输出一个实数保留n位小数,并右对齐,系统自动对在有效数据范围内的小数部分进行四舍五入。当m大于实数总宽度时,多余的位数用空格填充,当m小于实数总宽度时,实数的整数部分按实际宽度输出。%-m.nf→在m列的位置上输出一个实数保留n位小数,并左对齐,系统自动对在有效数据范围内的小数部分进行四舍五入。当m大于实数总宽度时,多余的位数用空格填充,当m小于实数总宽度时,实数的整数部分按实际宽度输出。%m.nf→在m列的位置上输出一个实数保留n位小数,并右对齐例如:

printf("%8.2f\n%-8.2f",12.123456789,12.123456789);

输出结果为:

12.12

12.12%.nf→实数的整数部分按实际宽度输出,保留n位小数,系统自动对在有效数据范围内的小数部分进行四舍五入。例如:printf("%.2f",12.123456789);输出结果为:12.12例如:

printf("%8.2f\n%-8.2f",12.

e格式符用来以指数形式输出一个实数,用法同f格式符,用时把f格式符换成e格式符即可。

g格式符用来输出实数,系统根据实数的大小,自动选f格式符或e格式符输出,输出时选择占宽度较小的一种格式输出,且不输出无意义的0。例如:

printf("%e",12.123456789);

输出结果为:

1.212346e+001e格式符用来以指数形式输出一个实数,用法同f格式符,用时把【例3.4】输出函数应用举例#include<stdio.h>voidmain(){inta=27;charch='A';floatb=12.3456;doublec=234.123456;printf("%4d%-4o%4x\n",a,a,a);printf("%-4c%4c\n",ch,ch);printf("b=%10.2f,b=%-10.2f\n",b,b);printf("b=%10.2e,b=%-10.2e\n",b,b);printf("c=%lf,c=%10.2lf\n",c,c);printf("%s,%5.2s","Hello!!!","Hello!!!");}【例3.4】输出函数应用举例使用printf()函数要注意以下几个方面:数据类型应与格式说明符匹配,否则将会出现错误。int型数据也可以用%u格式输出;反之,一个unsigned型数据也可以用%d、%o、%x格式输出。例如:shortinta=-1;unsignedshortb=65534;printf("%hu,%hd\n",a,b);程序运行结果是:65535,-2使用printf()函数要注意以下几个方面:数据类型应与格式除了X、E、G、L可以大写外,其他格式符必须小写,如%f不能写成%F。如果需要输出“%”,则应在格式符内连续使用两个%。例如:

printf("%5.2f%%",3.0/100)

输出:33.33%除了X、E、G、L可以大写外,其他格式符必须小写,如%f不能2.格式输入函数

格式输入函数scanf()用于从键盘输入数据,该输入数据按指定的输入格式赋给相应的输入项。

注意:“输入格式控制符”必须用英文的双引号括起来,它的作用是按照输入格式从键盘输入若干类型的数据给后面的输入项。其一般格式为:

scanf("输入格式控制符",输入项地址表列);2.格式输入函数

格式输入函数scanf()用于从键(1)格式符:即由%和格式字符组成,如%d,%f等。

(2)普通字符:如printf(“a=%d,b=%d\n”,a,b);中的“a=”、“,”、“b=”都是普通字符,输入时要照原样入。表3.3列出了scanf()函数常用的格式符。“输入格式控制符”可以是:(1)格式符:即由%和格式字符组成,如%d,%f等。

(2)格式字符说明d,i输入带符号的十进制整数o输入八进制无符号整数x或X输入十六进制无符号整数,大、小写形式相同u输入无符号十进制整数c输入单个字符s输入字符串f输入实数,以小数形式或指数形式e、E、g、G与f作用相同,e与f,g可以相互替换,大小写形式相同表3.3scanf()的格式说明格式字符说明d,i输入带符号的十进制整数o输入八在格式说明中,在%和上述格式字符之间还可以插入表3.4所示的几种附加字符(又称修饰符)。格式字符说明l或L输入长整型数据,可以放在d、o、x、u的前面;输入double型数据。可以放在f、e之前h输入短整型数据,可以放在d、o、x、u的前面m用来指定输入数据的宽度*表示本输入项在读入后不赋给相应的变量表3.4scanf()的附加格式说明符在格式说明中,在%和上述格式字符之间还可以插入表3.4使用scanf()函数要注意以下几个方面:地址表列要用地址运算符“&”取变量的地址或用指针变量。例如:inta,b,*pa=&a,*pb=&b;scanf("%d%d",&a,&b);或写成:scanf("%d%d",pa,pb);&a、&b、pa、pb表示把输入的数据送到系统为变量a和b分配的内存中。下面的写法是错误的。scanf("%d%d",a,b);或写成:scanf("%d%d",*pa,*pb);使用scanf()函数要注意以下几个方面:地址表列要用地址运“输入格式控制符“中的普通字符一定要照原样输入。如:

scanf("%d%d",&a,&b);

正确的输入格式是:35↙

3 5↙

3↙

5↙

“↙”代表【enter】键。例如:

scanf(”a=%d,b=%d”,&a,&b);

输入时一定要把普通字符“a=”、“,”、“b=”照原样输入,否则会出现数据读入错误。

正确的输入格式是:a=3,b=5按【enter】键。

如果“输入格式控制符“中没有普通字符,则输入时应以一个或多个空格、Tab键或【enter】键来分隔。“输入格式控制符“中的普通字符一定要照原样输入。如:

可以指定输入数据的宽度,系统会自动按它截取所需的数据。例如:

inta;

floatb;

scanf(“%2d%3f”,&a,&b);

输入:123456↙

系统自动把12赋给a,把345.0赋给变量b。此方法也可用于字符型数据。例如:

scanf(“%2c%3c”,&c1,&c2);

输入:abcdefg↙

由于字符型变量只能存放一个字符,因此,系统将’a’赋给c1,’c’赋给c2。可以指定输入数据的宽度,系统会自动按它截取所需的数据。例如:需要连续输入多个字符时,字符之间不用分隔,而且空格、回车等均作为有效字符输入.如果%后面有一个’*’,则表示本项输入不赋给任何变量。例如:

scanf(“%c%c”,&c1,&c2);

输入:AB↙

系统把字符’A’赋给c1,把字符’B’赋给c2。

输入:AB↙系统把字符’A’赋给c1,把空格符赋给c2。例如:scanf("%d,%*d,%d",&a,&b);

输入:12,34,56↙

系统将12赋给a,56赋给b。需要连续输入多个字符时,字符之间不用分隔,而且空格、回车等均输入数据时不能规定精度。输入double型数据时,一定要在f、e之前加字母l或L。%d、%c、%f在一起进行混合输入时,要注意输入的格式。

例如:scanf("%d%c%f",&x,&y,&z);输入:12A23.6↙

系统把12赋给x,把空格符赋给y,z的值为随机数。例如:scanf(“%6.2f”,&a);

上述与输入语句是不合法的。例如:doublea;scanf("%lf",&a);输入:12A23.6↙

系统把12赋给x,把字符’A’赋给y,把23.6赋给z。输入数据时不能规定精度。输入double型数据时,一定要在f输入数据时,遇到以下情况认为数据输入结束。遇到空格、回车或Tab键。指定的宽度结束。如”%2d”,只取2位。遇到非法输入。例如:scanf("%d",&a);

输入:123A↙

系统只将123赋给a。输入数据时,遇到以下情况认为数据输入结束。例如:【例3.5】从键盘输入3个数,输出其平均值。

#include<stdio.h>

voidmain()

{inta,b,c;

floataver;

scanf("%d%d%d",&a,&b,&c);

aver=(a+b+c)/3.0;

printf("aver=%7.2f\n",aver);

}输入:169↙输出:5.33【例3.5】从键盘输入3个数,输出其平均值。

#includ【例3.6】交换两个变量的值。

#include<stdio.h>

voidmain()

{inta,b,t,*pa=&a,*pb=&

温馨提示

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

评论

0/150

提交评论