《C语言顺序结构【稻谷书屋】》由会员分享,可在线阅读,更多相关《C语言顺序结构【稻谷书屋】(30页珍藏版)》请在金锄头文库上搜索。
1、第第3章章 顺序结构程序设计顺序结构程序设计 3.1 赋值语句赋值语句赋值语句是由赋值表达式再加上分号构成的表达式语句。赋值语句是由赋值表达式再加上分号构成的表达式语句。 赋值语句的一般形式为:赋值语句的一般形式为: 变量变量= =表达式表达式; ;赋值语句的功能和特点都与赋值表达式相同。赋值语句的功能和特点都与赋值表达式相同。1教育第第3章章 顺序结构程序设计顺序结构程序设计 3.2 输入输出函数输入输出函数语言要求在使用输入语言要求在使用输入/ /输出库函数之前必输出库函数之前必须包含须包含stdio.hstdio.h文件。文件。包含形式如下:包含形式如下: #include#includ
2、e或或 #include stdio.h#include stdio.h2教育第第3章章 顺序结构程序设计顺序结构程序设计 3.2 输入输出函数输入输出函数3.2.1 字符数据输入输出函数字符数据输入输出函数 1字符数据输入函数字符数据输入函数格式:格式:getchar()功能:功能:从键盘上接收输入的一个字符。从键盘上接收输入的一个字符。例例3.1 从键盘输入一个字符,并将其存入字符型变量从键盘输入一个字符,并将其存入字符型变量c 中。中。#include stdio.hmain() char c; c= getchar(); 其中其中c是字符型(是字符型(char)或整型()或整型(int
3、)变量。)变量。3教育第第3章章 顺序结构程序设计顺序结构程序设计 3.2 输入输出函数输入输出函数3.2.1 字符数据输入输出函数字符数据输入输出函数 1字符数据输入函数字符数据输入函数2字符数据输出函数字符数据输出函数格式:格式:putchar(c)功能:功能:向终端输出一个字符。向终端输出一个字符。说明:说明:(1)c可以是字符型,也可以是整型。可以是字符型,也可以是整型。 (2)c可以是变量,可以是常量,也可以是表达式。可以是变量,可以是常量,也可以是表达式。4教育第第3章章 顺序结构程序设计顺序结构程序设计 3.2 输入输出函数输入输出函数3.2.1 字符数据输入输出函数字符数据输入
4、输出函数 1字符数据输入函数字符数据输入函数2字符数据输出函数字符数据输出函数例例3.2 从键盘输入一个字符,在屏幕上显示出来。从键盘输入一个字符,在屏幕上显示出来。#include stdio.hmain() char c; c=getchar(); /*从键盘输入一个字符从键盘输入一个字符*/ putchar(c); /*在屏幕上显示一个字符在屏幕上显示一个字符*/5教育第第3章章 顺序结构程序设计顺序结构程序设计 3.2 输入输出函数输入输出函数3.2.2 格式化输入输出函数格式化输入输出函数1 1格式化输出函数格式化输出函数格式:格式: printf(printf(格式控制格式控制,
5、,输出项表输出项表) );功能:功能:将将“输出项表输出项表”中给出的输出项按中给出的输出项按“格式控制格式控制”中规定中规定的输出格式输出到标准输出设备。的输出格式输出到标准输出设备。 说明:说明:(1 1)输出项表中以逗号分隔列出需要输出的项(变量、常量、或表达式)。)输出项表中以逗号分隔列出需要输出的项(变量、常量、或表达式)。(2 2)格式控制是用双引号括起来的字符串,包括普通字符和格式说明。)格式控制是用双引号括起来的字符串,包括普通字符和格式说明。普通字符:普通字符:是需要原样输出的字符(包括转义字符)。是需要原样输出的字符(包括转义字符)。格式说明:格式说明:由由“%“%“和格式
6、符组成,如和格式符组成,如%c%c和和%f%f等,作用是将要等,作用是将要输出的数据转换为指定格式后输出。输出的数据转换为指定格式后输出。6教育printfprintf函数中使用的格式字符如表所示。函数中使用的格式字符如表所示。格式字符格式字符功能功能d按十按十进制形式制形式输出出带符号的整数(正数前无符号的整数(正数前无+ +号)号)o按八按八进制形式无符号制形式无符号输出(无前出(无前导o o)ox按十六按十六进制形式无符号制形式无符号输出(无前出(无前导oxox)u按十按十进制无符号形式制无符号形式输出出c按字符形式按字符形式输出一个字符出一个字符f按十按十进制形式制形式输出出单、双精度
7、浮点数(默、双精度浮点数(默认6 6位小数)位小数)e按指数形式按指数形式输出出单、双精度浮点数、双精度浮点数s输出以出以00结尾的字符串尾的字符串ld长整型整型输出出lo长八八进制整型制整型输出出lx长十六十六进制整型制整型输出出lu按无符号按无符号长整型整型输出出m格式字符格式字符按按宽度度m m输出,右出,右对齐-m格式字符格式字符按按宽度度m m输出,左出,左对齐m,n格式字符格式字符按按宽度度m,nm,n位小数或截取字符串前位小数或截取字符串前n n个字符个字符输出,右出,右对齐-m,n格式字符格式字符按按宽度度m,nm,n位小数或截取字符串前位小数或截取字符串前n n个字符个字符输
8、出,左出,左对齐7教育例例3.33.3#include#includemain()main() int a=123; int a=123; long b=135790; long b=135790; printf(a=%dn,a); printf(a=%dn,a); printf(a=%4dn,a); printf(a=%4dn,a); printf(a=%2dn,a); printf(a=%2dn,a); printf(b=%ld,b); printf(b=%ld,b); 屏幕显示结果:屏幕显示结果:a=123a=123a= 123a= 123a=123a=123b=135790b=1357
9、908教育例例3.43.4#include#includemain()main() int a=-1; int a=-1; char c=a; char c=a; printf(%d,%o,%x,%un,a,a,a,a); printf(%d,%o,%x,%un,a,a,a,a); printf(%d,%cn,c,c); printf(%d,%cn,c,c); 屏幕显示结果:屏幕显示结果:-1-1,177777177777,ffffffff,65535655359797,a a9教育例例3.53.5#include stdio.h#include stdio.hmain()main() pri
10、ntf(%s,%7.2sn, CHINA, CHINA ); printf(%s,%7.2sn, CHINA, CHINA ); printf( %.4s,%-5.3sn, CHINA, printf( %.4s,%-5.3sn, CHINA, CHINA);CHINA); 屏幕显示结果:屏幕显示结果:CHINACHINA,- - - - -CH- - - - -CHCHINCHIN,CHI- -CHI- -(注:(注:- -表示空格。)表示空格。)10教育例例3.63.6#include#includemain()main() float a=1.23; float a=1.23; prin
11、tf(%f,%7.2f,%2.1fn, a,a,a printf(%f,%7.2f,%2.1fn, a,a,a );); 屏幕显示结果:屏幕显示结果:1.2300001.230000,- - -1.23- - -1.23,1.21.211教育第第3章章 顺序结构程序设计顺序结构程序设计 3.2 输入输出函数输入输出函数3.2.2 格式化输入输出函数格式化输入输出函数1 1格式化输出函数格式化输出函数2 2格式化输入函数格式化输入函数格式:格式:scanf(格式控制格式控制,地址表地址表);功能:功能:用来输入任何类型数据,可同时输入多个不同类型用来输入任何类型数据,可同时输入多个不同类型的数据
12、。的数据。说明:说明:(1)地址表中每项以逗号分隔,列出需要输入的项(变)地址表中每项以逗号分隔,列出需要输入的项(变量)的地址,而不是变量名。量)的地址,而不是变量名。 12教育(2)同)同printf函数一样,格式控制是用双引号括起来的函数一样,格式控制是用双引号括起来的字符串。包括普通字符和格式说明。字符串。包括普通字符和格式说明。普通字符:普通字符:是需要原样输入的字符,一般不提倡使用。是需要原样输入的字符,一般不提倡使用。格式说明:格式说明:由由%和格式符组成,如和格式符组成,如%c和和%f等,作用是等,作用是规定按指定的格式输入数据。规定按指定的格式输入数据。scanfscanf函
13、数中使用的格式字符如表所示。函数中使用的格式字符如表所示。格式字符格式字符功能功能d输入十入十进制整数制整数o输入八入八进制整数制整数x输入十六入十六进制整数制整数c输入入单个字符个字符s输入字符串入字符串f,e e输入浮点数(小数或指数形式)入浮点数(小数或指数形式)hd,hoho,hxhx输入短整型(十入短整型(十进制,八制,八进制,十六制,十六进制)数据制)数据ld,lolo,lxlx输入入长整型(十整型(十进制,八制,八进制,十六制,十六进制)数据制)数据lf,lele输入入长浮点型数据(双精度)浮点型数据(双精度)*表示本表示本输入入项在在读入后不入后不赋给相相应的的变量量13教育(
14、3 3)scanf scanf 中中“格式控制格式控制”中的格式字符必须与中的格式字符必须与“格式控制格式控制”后的变量的类型匹配。后的变量的类型匹配。例如:例如:int a,b;int a,b;char d;char d;float w;float w;scanf(%d%o, &a,&b );scanf(%d%o, &a,&b );scanf(%c, &d );scanf(%c, &d );scanf(%f, &w );scanf(%f, &w );(4 4)使用)使用%c%c时,空格和转义字符均作为有效字符输入。时,空格和转义字符均作为有效字符输入。例如:例如:char a,b;char
15、a,b;scanf(%c%c,&a,&b); scanf(%c%c,&a,&b); 输入:输入:x yx y结果:结果:a=x b= a=x b= 14教育(5 5)如果格式说明符之间没有任何字符,则在输入非)如果格式说明符之间没有任何字符,则在输入非字符型数据时,两个数据之间要使用空格、字符型数据时,两个数据之间要使用空格、TabTab或回车或回车键做间隔;如果格式说明符之间包含其他字符,则输键做间隔;如果格式说明符之间包含其他字符,则输入数据时,应输入与这些字符相同的字符做间隔。入数据时,应输入与这些字符相同的字符做间隔。例如:例如:scanf(%d,%f,%c,&i,&f,&c);sca
16、nf(%d,%f,%c,&i,&f,&c);在输入数据时,应采用如下形式:在输入数据时,应采用如下形式:2020,7.87.8,a a15教育(6 6)可以在格式说明符的前面指定输入数据所占的宽度,)可以在格式说明符的前面指定输入数据所占的宽度,系统将自动按此宽度来截取所需的数据。系统将自动按此宽度来截取所需的数据。例如:例如:int a,b;int a,b;char d,w;char d,w;scanf(%d%d, &a,&b );scanf(%d%d, &a,&b );scanf(%3d%d, &a,&b );scanf(%3d%d, &a,&b );scanf(%d%c%c, &a,&d
17、,&w );scanf(%d%c%c, &a,&d,&w );输入:输入:1234 231234 23 123456 123456 123a1 123a1结果:结果:a=1234 b=23a=1234 b=23a=123 b=456a=123 b=456a=123 d=a w=1a=123 d=a w=116教育第第3章章 顺序结构程序设计顺序结构程序设计 3.3 注释注释注释行的作用是增强程序的可读性。注释行的作用是增强程序的可读性。注释行的一般形式:注释行的一般形式: /*/*注释内容注释内容* */ /其中,其中,注释内容是对程序段或程序行的注释说明。注释内容是对程序段或程序行的注释说明
18、。 注释行可以作为单独的一行出现在程序中,也可注释行可以作为单独的一行出现在程序中,也可以出现在某个语句后,在编译时忽略。以出现在某个语句后,在编译时忽略。17教育第第3章章 顺序结构程序设计顺序结构程序设计 3.3 注释注释例例3.73.7 计算计算a a、b b两数据之和的两数据之和的C C程序。程序。#include#includemain() main() /*/*主函数主函数* */ / int a,b,s; int a,b,s; /*/*定义定义a a,b b,s s三个整型变量三个整型变量* */ / printf(a,b=?); printf(a,b=?); scanf(%d,
19、%d,&a,&b); /* scanf(%d,%d,&a,&b); /*读入两个整数,存入变量读入两个整数,存入变量a a和和b b中中* */ / s=a+b; s=a+b; /*/*计算计算a a、b b两数据之和两数据之和s s的值的值* */ / printf(s=%dn,s); printf(s=%dn,s); /*/*输出和输出和s s的值的值* */ / 18教育第第3章章 顺序结构程序设计顺序结构程序设计 3.4 应用举例应用举例例例3.8 3.8 求一个同学三门功课的平均成绩。求一个同学三门功课的平均成绩。开始输入a,b,c计算v输出v结束分析:分析:已知:已知:一个同学三门
20、功课的成绩(用三个一个同学三门功课的成绩(用三个变量变量a a,b b,c c来存放)来存放) 求:求:该同学的平均成绩(用一个变量该同学的平均成绩(用一个变量v v来来存放)存放)处理:处理:用赋值表达式用赋值表达式 v=(a+b+c)/3.0v=(a+b+c)/3.0来计来计算算v v的值。的值。算法用如图所示的流程图表示:算法用如图所示的流程图表示:19教育第第3章章 顺序结构程序设计顺序结构程序设计 3.4 应用举例应用举例例例3.8 3.8 求一个同学三门功课的平均成绩。求一个同学三门功课的平均成绩。开始输入a,b,c计算v输出v结束程序:程序:#include#includemai
21、n() main() int a,b,c; int a,b,c; float v; float v; printf(a,b,c=?); printf(a,b,c=?); scanf(%d,%d,%d,&a,&b,&c); scanf(%d,%d,%d,&a,&b,&c); v=(a+b+c)/3.0; v=(a+b+c)/3.0; printf(v=%fn,v); printf(v=%fn,v); 20教育第第3章章 顺序结构程序设计顺序结构程序设计 3.4 应用举例应用举例开始输入c计算c输出c结束例例3.9 3.9 将键盘上输入的大写字母转换成小写将键盘上输入的大写字母转换成小写字母输出。
22、字母输出。分析:分析:已知:已知:键盘上输入的大写字母(用一个变量键盘上输入的大写字母(用一个变量c c来来存放)存放)求:求:对应的小写字母(仍用变量对应的小写字母(仍用变量c c来存放)来存放)处理:处理:用赋值表达式用赋值表达式 c=c+32c=c+32来求小写字母。来求小写字母。算法用如图所示的流程图表示:算法用如图所示的流程图表示:21教育第第3章章 顺序结构程序设计顺序结构程序设计 3.4 应用举例应用举例开始输入c计算c输出c结束例例3.9 3.9 将键盘上输入的大写字母转换成小写将键盘上输入的大写字母转换成小写字母输出。字母输出。程序:程序:#include#includema
23、in() main() char c; char c; printf(c=?); printf(c=?); scanf(%c,&c); scanf(%c,&c); /*/*或或c=getchar();*/c=getchar();*/ c=c+32; c=c+32; printf(c=%cn,c); printf(c=%cn,c); /*/*或或putchar(c);*/putchar(c);*/ 22教育第第3章章 顺序结构程序设计顺序结构程序设计 3.4 应用举例应用举例开始输入a,b交换a,b输出a,b结束例例3.10 3.10 从键盘上输入两变量的值,再交换从键盘上输入两变量的值,再交换
24、两变量的值输出。两变量的值输出。分析:分析:已知:已知:从键盘上输入的两变量的原始值(用两从键盘上输入的两变量的原始值(用两个变量个变量a a和和b b来存放)来存放) 求:求:交换两变量的值(仍用变量交换两变量的值(仍用变量a a和和b b来存放)来存放)处理:处理:(1 1)要借助一个中间变量来实现(设)要借助一个中间变量来实现(设为为t t)。)。 (2 2)用逗号表达式)用逗号表达式t=at=a,a=ba=b,b=tb=t来交来交换换a a,b b两变量的值。两变量的值。算法用如图所示的流程图表示算法用如图所示的流程图表示: :23教育第第3章章 顺序结构程序设计顺序结构程序设计 3.
25、4 应用举例应用举例开始输入a,b交换a,b输出a,b结束例例3.10 3.10 从键盘上输入两变量的值,再交换从键盘上输入两变量的值,再交换两变量的值输出。两变量的值输出。程序:程序:#include#includemain() main() int a,b,t; int a,b,t; printf(a=?); printf(a=?); scanf(%d,&a); scanf(%d,&a); printf(b=?); printf(b=?); scanf(%d,&b); scanf(%d,&b); t=a,a=b,b=t; t=a,a=b,b=t; printf(a=%d,b=%dn,a,b
26、); printf(a=%d,b=%dn,a,b); 24教育第第3章章 顺序结构程序设计顺序结构程序设计 3.5 本章考点本章考点scanfscanf函数的输入格式。函数的输入格式。printfprintf函数的输出格式。函数的输出格式。注释的书写格式。注释的书写格式。25教育第第3章章 顺序结构程序设计顺序结构程序设计 3.6 典型试题详解典型试题详解1 1有定义语句:有定义语句:int x,y;int x,y;,若要通过若要通过scanf(%d,%d,&x,&y);scanf(%d,%d,&x,&y);语句使变量语句使变量x x得到数值得到数值1111,变量,变量y y得得到数值到数值1
27、212,下面四组输入形式中错误的是,下面四组输入形式中错误的是_。A A)11 1211 12 B B)1111,1212 C C)11,1211,12 D D)11,11, 12 12 正确答案:正确答案:A A(知识点:(知识点:scanfscanf函数的输入格式)函数的输入格式)试题分析:试题分析:scanf(%d,%d,&x,&y);scanf(%d,%d,&x,&y);语句中格式控制语句中格式控制“%d,%d%d,%d”的两格式说明符之间使用了普通字符的两格式说明符之间使用了普通字符“, ,”,需要,需要原样输入。原样输入。26教育第第3章章 顺序结构程序设计顺序结构程序设计 3.6
28、 典型试题详解典型试题详解2 2有以下程序段:有以下程序段:int m=0,n=0;char c=a;int m=0,n=0;char c=a;scanf(%d%c%d,&m,&c,&n);scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:若从键盘上输入:10A10 10A10 ,则输出结果是,则输出结果是_。A A)10,A,1010,A,10 B B)16,a,1016,a,10C C)10,a,010,a,0 D D)10,A,010,A,0正确答案:正确答案:A A(知识点:(知
29、识点:scanfscanf函数的输入格式)函数的输入格式)试题分析:试题分析:当当%c%c处在处在%d %d 之后时,输入数据间不能用分隔符,之后时,输入数据间不能用分隔符,所以所以m m、c c、n n经经scanf(%d%c%d,&m,&c,&n)scanf(%d%c%d,&m,&c,&n)重新输入值后,重新输入值后,分别为分别为1010、A A、1010。27教育第第3章章 顺序结构程序设计顺序结构程序设计 3.6 典型试题详解典型试题详解3 3以下程序的运行结果是以下程序的运行结果是_。A A)17,021,0x1117,021,0x11B B)17,17,1717,17,17C C)
30、17,0x11,02117,0x11,021D D)17,21,1117,21,11main()main() int k=17; int k=17; printf(%d,%o,%xn,k,k,k); printf(%d,%o,%xn,k,k,k); 正确答案:正确答案:D D(知识点:(知识点:printfprintf函数的输出格式)函数的输出格式)试题分析:试题分析:将将k k的值的值1717分别转换成八进制、转换十六进制输分别转换成八进制、转换十六进制输出。出。1717对应的八进制数、十六进制数对应的八进制数、十六进制数2121、1111,而表示八进,而表示八进制数、十六进制数为制数、十六
31、进制数为2121、1111的的021021、0x110x11是在是在C C程序中的表程序中的表示方法,输出在屏幕上的数据是没有进制标志的。示方法,输出在屏幕上的数据是没有进制标志的。28教育第第3章章 顺序结构程序设计顺序结构程序设计 3.6 典型试题详解典型试题详解4 4以下程序段的输出结果是以下程序段的输出结果是_。int a=1234;int a=1234;printf(%2dn,a);printf(%2dn,a);A A)1212 B B)3434C C)12341234D D)提示出错,无结果)提示出错,无结果正确答案:正确答案:C C(知识点:(知识点:printfprintf函数
32、的输出格式)函数的输出格式)试题分析:试题分析:以以%2d%2d方式输出时,当指定宽度不够宽时,整型方式输出时,当指定宽度不够宽时,整型数据原样输出。数据原样输出。29教育第第3章章 顺序结构程序设计顺序结构程序设计 3.6 典型试题详解典型试题详解5 5以下叙述中正确的是以下叙述中正确的是_。A A)C C程序中注释部分可以出现在程序中任何合适的地方程序中注释部分可以出现在程序中任何合适的地方B B)花括号)花括号“ ”和和“ ”只能作为函数体的定界符只能作为函数体的定界符C C)构成)构成C C程序的基本单位是函数,所有函数名都可以由用程序的基本单位是函数,所有函数名都可以由用户命名户命名 D D)分号是)分号是C C语句之间的分隔符,不是语句的一部分语句之间的分隔符,不是语句的一部分正确答案:正确答案:A A(知识点:(知识点:C C语言程序的构成及格式,注释语语言程序的构成及格式,注释语句)句)试题分析:试题分析:注释部分包含在注释部分包含在“/*/*”和和“* */ /”之间,可以出之间,可以出现在程序的任何地方,在编译时忽略。现在程序的任何地方,在编译时忽略。30教育