《(中职)c语言技能教程第3章课件.ppt》由会员分享,可在线阅读,更多相关《(中职)c语言技能教程第3章课件.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、(中职)c语言技能教程第3章ppt课件 第3章 沟通与直行 数据的输入输出 和顺序结构语言技能教程第 3 章 3.1 技能1:字符输入输出函数的使用 3.2 技能2:格式输出函数的使用3.3 技能3:格式输入函数的使用3.4 技能4:顺序程序设计3.1 技能1【知识点】1.1.标准字符输出函数标准字符输出函数putchar()putchar()的一般形式:的一般形式:putchar(ch)putchar(ch)2.putchar()2.putchar()函数的作用:向终端输出一个字符。函数的作用:向终端输出一个字符。3.3.参数参数chch通常为字符型变量、整型常量、字符本身,也可通常为字符型
2、变量、整型常量、字符本身,也可以输出控制字符,如:以输出控制字符,如:putchar(n)putchar(n)输出一个换行符,输出一个换行符,其函数类型是整型。其函数类型是整型。4.putchar()4.putchar()是标准是标准I/OI/O库中的函数,在使用时应在程序库中的函数,在使用时应在程序 前加上预编译命令前加上预编译命令#include“stdio.h”(#include“stdio.h”(预编译命令详预编译命令详细细 内容见第内容见第88章章)。本章涉及的其它几个输入输出函数均应。本章涉及的其它几个输入输出函数均应如此。如此。例例3.13.1写出下面程序段的运行结果写出下面程序
3、段的运行结果。#include stdio.h#include stdio.hmain()main()char a,b,c,d;char a,b,c,d;a=g;b=o;c=o;d=d;a=g;b=o;c=o;d=d;putchar(a);putchar(n);putchar(b);putchar(n);putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);putchar(d);putchar(c);putchar(n);putchar(d);putchar(n);putchar(n);3.1 技能1【典型例题】3.
4、1 技能1【知识点】1.1.函数函数getchar()getchar()没有参数,其一般调用形式为:没有参数,其一般调用形式为:getchar()getchar()2.2.作用是从终端上输入一个字符。返回值为一个整型数,作用是从终端上输入一个字符。返回值为一个整型数,即是被输入字符的即是被输入字符的ASCIIASCII码值。码值。3.getchar()3.getchar()与与putchar()putchar()一样,是标准一样,是标准I/OI/O库中的函数,在库中的函数,在使用时应在程序前加上预编译命令使用时应在程序前加上预编译命令#include stdio.h#include stdio
5、.h。4.getchar()4.getchar()只能接收一个字符,该函数得到的字符可以只能接收一个字符,该函数得到的字符可以 赋给一个字符型变量或整型变量,也可以作为表达式的赋给一个字符型变量或整型变量,也可以作为表达式的一部分不赋给任何变量。一般先定义一个字符类型的一部分不赋给任何变量。一般先定义一个字符类型的 变量,然后再引用变量,然后再引用getchar()getchar()函数,并将函数值赋给这个函数,并将函数值赋给这个字符型变量。字符型变量。3.1 技能1【知识点】5.getchar()5.getchar()与后面学到的循环结构配合使用,可以连续与后面学到的循环结构配合使用,可以连
6、续 输入任何字符,而且输入的多个字符都能被接收。原因输入任何字符,而且输入的多个字符都能被接收。原因 是输入的多个字符以行为单位进行处理,即输入的字符是输入的多个字符以行为单位进行处理,即输入的字符先放入内存缓冲区中,待需要时再一个一个的取出。先放入内存缓冲区中,待需要时再一个一个的取出。例例3.3 3.3 使用使用getchar()getchar()函数接收任意字符,并输出。函数接收任意字符,并输出。#includestdio.h#includestdio.hmain()main()char c;/*char c;/*定义字符型变量定义字符型变量c*/c*/c=getchar();/*c=g
7、etchar();/*接收一个字符赋值给变量接收一个字符赋值给变量c*/c*/putchar(c);/*putchar(c);/*输出字符型变量输出字符型变量c*/c*/3.1 技能1【典型例题】3.1 技能1【点拨】1.1.字符输入函数字符输入函数getchar()getchar()与字符输出函数与字符输出函数putchar()putchar()是一是一 对孪生兄弟,常常是配对使用,但也可单独使用。对孪生兄弟,常常是配对使用,但也可单独使用。2.putchar()2.putchar()函数一次只能输出一个字符,而函数一次只能输出一个字符,而getchar()getchar()与与 后面学到的
8、循环结构配合使用,可以连续输入任何字符,后面学到的循环结构配合使用,可以连续输入任何字符,而且输入的多个字符都能被接收。而且输入的多个字符都能被接收。3.2 技能21.printf()1.printf()函数的一般格式为:函数的一般格式为:printfprintf(格式控制,输出表列)(格式控制,输出表列)2.2.作用:向终端输出若干任意类型的数据。作用:向终端输出若干任意类型的数据。【知识点】3.2 技能2【知识点】3.3.有关说明:有关说明:格式控制:是用双引号括起来的字符串,也称格式控制:是用双引号括起来的字符串,也称“转换转换控制字符串控制字符串”,它规定了输出表列中各项的输出形式。,
9、它规定了输出表列中各项的输出形式。它包括三种信息:它包括三种信息:格式转换控制符:可将输出的数据转换为指定的格式格式转换控制符:可将输出的数据转换为指定的格式输出。由输出。由%和格式字符组成;例如:和格式字符组成;例如:%d%d、%c%c等。等。但但%与格式字符之间不能留有空格。与格式字符之间不能留有空格。转义字符:输出一些操作行为。例如:转义字符:输出一些操作行为。例如:n n、tt等。等。提示串:是除了格式转换控制符和转义字符之外的其提示串:是除了格式转换控制符和转义字符之外的其它字符,这些字符可原样输出。例如:它字符,这些字符可原样输出。例如:printf(aprintf(a为字为字符符
10、%c,b%c,b为字符为字符%cn,a,b);%cn,a,b);语句中语句中“a“a为字符为字符”和和“b“b为字符为字符”都属于提示串,输出时,原样输出。都属于提示串,输出时,原样输出。3.2 技能2 输出参数是需要输出的一批数据,可以是变量或输出参数是需要输出的一批数据,可以是变量或表达式表列,输出参数的个数必须与控制参数中表达式表列,输出参数的个数必须与控制参数中的格式转换控制符个数相同。的格式转换控制符个数相同。【知识点】3.2 技能244 格式字符功能及其用法:格式字符功能及其用法:d d格式符。以格式符。以1010进制数形式输出整数。有以下几进制数形式输出整数。有以下几种用法:种用
11、法:%d%d,按整型数据的实际长度输出。,按整型数据的实际长度输出。%md%md,mm为指定的输出字符的宽度。如果输出数为指定的输出字符的宽度。如果输出数据的实际位数小于据的实际位数小于mm,则左端补以空格,若大于,则左端补以空格,若大于mm,则按实际位数输出。,则按实际位数输出。%ld%ld,用于输出长整型数据。,用于输出长整型数据。【知识点】例例3.5 d3.5 d格式符的应用。格式符的应用。#includestdio.h#includestdio.h main()main()int a,b;long c,d;a=32767;b=1;c=2147483647;d=1;int a,b;lon
12、g c,d;a=32767;b=1;c=2147483647;d=1;printf(%d,%dn,a,b);printf(%d,%dn,a,b);printf(%3d,%3dn,a,b);printf(%3d,%3dn,a,b);printf(%ld,%ldn,c,d);printf(%ld,%ldn,c,d);printf(%10ld,%10ldn,c,d);printf(%10ld,%10ldn,c,d);3.2 技能2【典型例题】3.2 技能2 o o格式符,以格式符,以88进制数形式输出整数。由于是将内进制数形式输出整数。由于是将内存单元中的各位的值(存单元中的各位的值(00或或11)
13、按八进制形式输出,)按八进制形式输出,即符号位也作为八进制的一部分输出,因此不会即符号位也作为八进制的一部分输出,因此不会输出带负号的形式。输出带负号的形式。(进制及转换见附录进制及转换见附录)长整型长整型数据也可以用数据也可以用%lo%lo格式输出。格式输出。%mo%mo表示按指定表示按指定宽度输出八进制整数。宽度输出八进制整数。【知识点】例例3.6 o3.6 o格式符的应用。格式符的应用。#includestdio.h#includestdio.hmain()main()int a=-1;int a=-1;long b=2;long b=2;printf(%d,%on,a,a);print
14、f(%d,%on,a,a);printf(%10o,%lon,a,b);printf(%10o,%lon,a,b);3.2 技能2【典型例题】3.2 技能2 x x格式符,以无符号格式符,以无符号1616进制数形式输出整数。进制数形式输出整数。%lx%lx输出长整型数,输出长整型数,%mlx%mlx输出指定宽度的输出指定宽度的1616进进制整数。制整数。【知识点】例例3.7 x3.7 x格式符的应用。格式符的应用。#includestdio.h#includestdio.hmain()main()int a=-1;int a=-1;long b=-2;long b=-2;printf(%6x,
15、%6o,%6dn,a,a,a);printf(%6x,%6o,%6dn,a,a,a);printf(%lxn,b);printf(%lxn,b);printf(%8x,a);printf(%8x,a);3.2 技能2【典型例题】3.2 技能2 u u 格式符,用来输出格式符,用来输出unsignedunsigned型数据,以无符号型数据,以无符号十进制形式输出。十进制形式输出。【知识点】例例3.8 u3.8 u格式符的应用。格式符的应用。main()main()unsigned int a=65535;/*unsigned int a=65535;/*定义无符号整型变量并赋初值定义无符号整型变
16、量并赋初值*/*/int b=-2;/*int b=-2;/*定义整型变量并赋初值定义整型变量并赋初值*/*/printf(“a=%d,%o,%x,%un”,a,a,a,a);/*printf(“a=%d,%o,%x,%un”,a,a,a,a);/*以四种格式控制以四种格式控制 符输出变量符输出变量a*/a*/printf(b=%d,%o,%x,%un,b,b,b,b);/*printf(b=%d,%o,%x,%un,b,b,b,b);/*输出变量输出变量b*/b*/3.2 技能2【典型例题】3.2 技能2(55)c c格式符,用来输出一个字符。格式符,用来输出一个字符。CC语言中字符语言中字
17、符型数据和整型数据之间可以通用。对于整数,只型数据和整型数据之间可以通用。对于整数,只要它的值在要它的值在02550255范围内,也可以用字符形式输出,范围内,也可以用字符形式输出,同样一个字符数据也可以转成相应的整型数据,同样一个字符数据也可以转成相应的整型数据,即以即以ASCIIASCII码值输出。用码值输出。用%mc%mc输出指定宽度的字符输出指定宽度的字符型数据。若指定的宽度大于实际宽度,则左端补型数据。若指定的宽度大于实际宽度,则左端补空格。空格。【知识点】例例3.9 c3.9 c格式符的应用。格式符的应用。#include#includestdio.hstdio.hmain()ma
18、in()char c=A;/*char c=A;/*定义字符型变量并赋初值定义字符型变量并赋初值*/*/int i=65;/*int i=65;/*定义整型变量并赋初值定义整型变量并赋初值*/*/printf(%c,%dn,c,c);/*printf(%c,%dn,c,c);/*以两种格式控制符输出变量以两种格式控制符输出变量c*/c*/printf(%c,%dn,i,i);/*printf(%c,%dn,i,i);/*以两种格式控制符输出变量以两种格式控制符输出变量i*i*3.2 技能2【典型例题】3.2 技能2(6)s(6)s格式符,用来输出一个字符串。格式符,用来输出一个字符串。%s%s
19、,按实际长度输出字,按实际长度输出字符串。符串。%ms%ms输出指定宽度为 输出指定宽度为m m的字符串,若实际字符串长 的字符串,若实际字符串长度小于 度小于m m,则左端补足空格,若实际串长大于,则左端补足空格,若实际串长大于m m,则按实,则按实际字符串长度输出该字符串。也可用 际字符串长度输出该字符串。也可用%-ms%-ms,当实际串长,当实际串长小于 小于m m时,字符串左对齐,右端补相应的空格。时,字符串左对齐,右端补相应的空格。%m.ns%m.ns输 输出指定宽度为 出指定宽度为m m的,从字符串左端取出的 的,从字符串左端取出的n n个字符(个字符(n n代表 代表一个正整数)
20、。若 一个正整数)。若n n小于 小于m m则左补足空格,若 则左补足空格,若n n大于 大于m m则以 则以n n为主,输出 为主,输出n n个字符。个字符。%-m.ns%-m.ns同 同%m.ns%m.ns类似,不同的是,类似,不同的是,当 当n n小于 小于m m时右端补足空格。时右端补足空格。%.n%.n只指定了 只指定了n n,未指定,未指定m m,此时自动使 此时自动使m m等于 等于n n,即输出占,即输出占n n列,只取字符串左端的 列,只取字符串左端的n n个字符 个字符。【知识点】例例3.10 s3.10 s格式符的应用。格式符的应用。main()main()printf(
21、%3s,%7.2s,%.4s,%-5.3sn,print,print,printf(%3s,%7.2s,%.4s,%-5.3sn,print,print,print,print);print,print);3.2 技能2【典型例题】3.2 技能2(7)f(7)f格式符,用来输出实型数据,以小数形式输出单精度和 格式符,用来输出实型数据,以小数形式输出单精度和双精度型数据。双精度型数据。%f%f按系统规定的格式输出,即整数部分全 按系统规定的格式输出,即整数部分全部输出,小数部分取 部输出,小数部分取6 6位。不要以为所有打印出来的数字 位。不要以为所有打印出来的数字都是准确的,在一般系统下,单
22、精度实数的有效位数为 都是准确的,在一般系统下,单精度实数的有效位数为7 7位,双精度实数的有效位数为 位,双精度实数的有效位数为15 15位。(不同的系统在实现 位。(不同的系统在实现格式输出时,输出结果可能会有一些小的差别)格式输出时,输出结果可能会有一些小的差别)%m.nf%m.nf是 是输出指定宽度为 输出指定宽度为m m列保留 列保留n n位小数的实数,在 位小数的实数,在m m列中,小 列中,小数点也占一位宽度。若输出数据实际长度小于 数点也占一位宽度。若输出数据实际长度小于m m,则左端,则左端补空格,数字右对齐。补空格,数字右对齐。%-m.nf%-m.nf与 与%m.nf%m.
23、nf类似,不同的是若 类似,不同的是若输出数据实际长度小于 输出数据实际长度小于m m,则右端补空格,数字左对齐。,则右端补空格,数字左对齐。(当格式符为(当格式符为%0m.n%0m.n时,所空的格以 时,所空的格以0 0填充 填充)若实际长度大 若实际长度大于 于m m,则按实际长度输出,并保留,则按实际长度输出,并保留n n位小数。位小数。%.nf%.nf也是按 也是按实际长度输出,并保留 实际长度输出,并保留n n位小数。位小数。【知识点】例例3.11 f3.11 f格式符的应用。格式符的应用。#includestdio.h#includestdio.hmain()main()float
24、 f=123.456;float f=123.456;printf(%fprintf(%f%10f%10f%10.2f%10.2f%.2f%.2f%-%-10.2fn,f,f,f,f,f);10.2fn,f,f,f,f,f);3.2 技能2【典型例题】3.2 技能2(8 8)e e格式符,以指数形式输出实数。格式符,以指数形式输出实数。%e%e按系统规定输出 按系统规定输出 指数形式的实数,系统规定:指数部分占 指数形式的实数,系统规定:指数部分占5 5位(如 位(如e+003 e+003 或 或e-003 e-003),小数点占一位,小数点前只有一个非零数字,),小数点占一位,小数点前只有一
25、个非零数字,小数点后占 小数点后占6 6位,共计占宽度 位,共计占宽度13 13位。位。【知识点】例例3.12 e3.12 e格式符的应用。格式符的应用。#includestdio.h#includestdio.hmain()main()float x=654.321;float x=654.321;printf(printf(e,%10e,%10.2e,%-10.2e,x,x,x,x);e,%10e,%10.2e,%-10.2e,x,x,x,x);3.2 技能2【典型例题】3.2 技能2(9)g(9)g 格式符,用来输出实数,它根据输出时数据所占宽度 格式符,用来输出实数,它根据输出时数据所
26、占宽度的大小,自动选择 的大小,自动选择f f格式或 格式或e e格式中较小的一种,且不输出 格式中较小的一种,且不输出无意义的零。无意义的零。【知识点】例例3.13 g3.13 g格式符的应用。格式符的应用。#includestdio.h#includestdio.hmain()main()float x=654.321;/*float x=654.321;/*定义实型变量并赋初值定义实型变量并赋初值*/*/printf(“%f,%e,%g”,x,x,x);/*printf(“%f,%e,%g”,x,x,x);/*以三种格式控制符输出变以三种格式控制符输出变 量量*/*/3.2 技能2【典型
27、例题】3.2 技能25 5注意:注意:(1)(1)如果想输出字符 如果想输出字符%,则应该在,则应该在“格式控制 格式控制”字符串中用 字符串中用连续两个 连续两个%表示,即 表示,即%才能输出一个 才能输出一个%字符。字符。(2)(2)格式字符一般采用小写字母书写,但小写格式字符 格式字符一般采用小写字母书写,但小写格式字符x x与大 与大写格式字符 写格式字符X X均可用于输出 均可用于输出16 16进制无符号形式的整型数据。进制无符号形式的整型数据。不同的是,对于用小写 不同的是,对于用小写x x输出 输出16 16进制的 进制的abc abc时,输出为小写 时,输出为小写的 的abc
28、abc,对于用大写,对于用大写X X输出 输出16 16进制的 进制的abc abc时,输出为大写的 时,输出为大写的ABC ABC。【知识点】表3-1 printf()中格式字符分 分 类 类 格式字符 格式字符 主要功能 主要功能整型 整型d d 以 以10 10 进 进 制形式 制形式 输 输 出整数(正数不 出整数(正数不 输 输 出符号)出符号)o o 以 以8 8 进 进 制无符号形式 制无符号形式 输 输 出整数(不 出整数(不 输 输 出前 出前 导 导 符 符0 0)x x 以 以16 16 进 进 制无符号形式 制无符号形式 输 输 出整数(不 出整数(不 输 输 出前 出
29、前 导 导 符 符0 x 0 x)u u 以无符号 以无符号10 10 进 进 制形式 制形式 输 输 出整数 出整数字符 字符c c 输 输 出 出 单 单 个字符 个字符s s 输 输 出字符串 出字符串实 实 型 型f f 以小数形式 以小数形式 输 输 出 出 实 实 数,数,隐 隐 含 含 输 输 出 出6 6 位小数 位小数e e 以指数形式 以指数形式 输 输 出 出 实 实 数,数字部分小数位数 数,数字部分小数位数 为 为6 6 位 位g g 选 选%f%f 或 或%e%e 格式中 格式中 输 输 出 出 宽 宽 度 度 较 较 小的一种 小的一种3.3 技能3【知识点】1.
30、1.函数格式:函数格式:scanf(scanf(控制参数,地址表列 控制参数,地址表列)2.2.功能:用来输入任何类型的多个数据。功能:用来输入任何类型的多个数据。3.3.说明:说明:(1)(1)控制参数的含义与 控制参数的含义与printf printf函数中的控制参数的含义相同。函数中的控制参数的含义相同。(2)(2)在给多个输入项输入数据时,控制参数中,若 在给多个输入项输入数据时,控制参数中,若%格式字符与 格式字符与%格式字符之间没有其它字符,输入数据时,两个数据之间以一 格式字符之间没有其它字符,输入数据时,两个数据之间以一个或多个空格间隔,也可以用回车键、跳格键 个或多个空格间隔
31、,也可以用回车键、跳格键tab tab间隔。间隔。(注意:注意:%c%c输入格式除外 输入格式除外)3.3 技能3【知识点】(3 3)格式转换控制符之间有非格式字符,则把非格式字符当成 格式转换控制符之间有非格式字符,则把非格式字符当成普通字符,原样输入,当该字符是一个空格时,输入一个或多 普通字符,原样输入,当该字符是一个空格时,输入一个或多个空格均合法。函数中的控制参数的含义相同。个空格均合法。函数中的控制参数的含义相同。(4 4)地址表列是由若干个地址组成的表列,可以是变量的地址 地址表列是由若干个地址组成的表列,可以是变量的地址或字符串的首地址。如 或字符串的首地址。如:scanf(%
32、d%d,&a,&b):scanf(%d%d,&a,&b)中 中&a&a和 和&b&b就是 就是变量在内存中的地址。变量在内存中的地址。&是 是“地址运算符 地址运算符”。初学者,在使。初学者,在使用该语句时,经常丢掉地址运算符 用该语句时,经常丢掉地址运算符&,应该特别注意。,应该特别注意。3.3 技能3【知识点】4 4 格式字符的用法:格式字符的用法:(1 1)d d格式符,用来输入十进制整数。格式符,用来输入十进制整数。例例3.14 3.14 输入两个十进制整数,求其和并输出。输入两个十进制整数,求其和并输出。main()main()int a,b;/*int a,b;/*定义两个整型变量
33、定义两个整型变量aa和和b*/b*/scanf(%d,%d,&a,&b);/*scanf(%d,%d,&a,&b);/*从键盘读入两个整型数据从键盘读入两个整型数据*/*/printf(a+b=%d,a+b);/*printf(a+b=%d,a+b);/*输出二者的和输出二者的和*/*/3.3 技能3【典型例题】3.3 技能3【知识点】(2 2)o o格式符,用来输入八进制整数。格式符,用来输入八进制整数。例例3.15 3.15 输入两个八进制数,求其积并用八进制数显示。输入两个八进制数,求其积并用八进制数显示。main()main()int a,b;int a,b;scanf(%oscanf
34、(%o%o,&a,&b);%o,&a,&b);printf(%o*%o=%on,a,b,a*b);printf(%o*%o=%on,a,b,a*b);3.3 技能3【典型例题】3.3 技能3【知识点】(3 3)x x格式符,用来输入十六进制整数。格式符,用来输入十六进制整数。例例3.16 3.16 输入一个十六进制数,分别用十六进制和十进制输入一个十六进制数,分别用十六进制和十进制 显示出来。显示出来。main()main()int a;int a;scanf(%x,&a);scanf(%x,&a);printf(“%xn%d,a,a);printf(“%xn%d,a,a);3.3 技能3【典
35、型例题】3.3 技能3【知识点】(4)c(4)c格式符,用来输入单个字符。在用 格式符,用来输入单个字符。在用%c%c格式输入字符时,空 格式输入字符时,空格字符和 格字符和“转义字符 转义字符”都作为有效字符输入。都作为有效字符输入。例例3.17 3.17 输入四个字符,并将其输出。输入四个字符,并将其输出。main()main()char a,b,c,d;char a,b,c,d;scanf(“%c%c%c%c”,&a,&b,&c,&d);scanf(“%c%c%c%c”,&a,&b,&c,&d);printf(%c%c%c%cn,a,b,c,d;printf(%c%c%c%cn,a,b,
36、c,d;3.3 技能3【典型例题】3.3 技能3【知识点】(5 5)s s格式符,使用方法在第六章数组中介绍。格式符,使用方法在第六章数组中介绍。3.3 技能3【知识点】(6 6)f f格式符,用来输入实数,可以用小数形式或指数形式输入。格式符,用来输入实数,可以用小数形式或指数形式输入。例例3.18 3.18 输入一个实型数据,输出它的平方。输入一个实型数据,输出它的平方。main()main()float a,s;float a,s;scanf(“%f,&a);/*scanf(“%f,&a);/*输入时不能指定精度输入时不能指定精度*/*/s=a*a;/*s=a*a;/*求其平方求其平方*
37、/*/printf(printf(输入的数据输入的数据%.2f%.2f的平方为的平方为%.2fn,a,s);%.2fn,a,s);3.3 技能3【典型例题】3.3 技能3【知识点】(7)e(7)e格式符,与 格式符,与f f格式符的作用相同,均可用来输入实型数据,格式符的作用相同,均可用来输入实型数据,输入时即可以用小数形式也可以用指数形式输入,输入时即可以用小数形式也可以用指数形式输入,e e与 与f f可以互 可以互相替换。相替换。3.3 技能3【知识点】5 5 注意事项:注意事项:(1)(1)格式字符前面的 格式字符前面的l l,如:,如:ld ld,lo lo,%lx%lx表示读长整型
38、数据,表示读长整型数据,%lf%lf,%le%le表示读入 表示读入double double型数据,格式字符前面的 型数据,格式字符前面的h h,如:,如:hd hd,ho ho,hx hx表示输入短整型数据。表示输入短整型数据。(2)(2)可以指定输入数据所占宽度,系统自动按它截取所需数据。可以指定输入数据所占宽度,系统自动按它截取所需数据。如 如printf(%3d%3d,&a,&b);printf(%3d%3d,&a,&b);若输入 若输入123456 123456 系统自动将 系统自动将123 123赋给 赋给a a,456 456赋给 赋给b b。也可用于字符型 也可用于字符型sc
39、anf(%3c,&ch);scanf(%3c,&ch);若输入 若输入3 3个字符,把第一个字 个字符,把第一个字符赋给 符赋给ch ch,例如:,例如:若输入 若输入abc abc,ch ch得到字符 得到字符a a。3.3 技能3【知识点】(3)%(3)%后可加 后可加“*”“*”附加说明符,用来表示跳过它相应的数据。附加说明符,用来表示跳过它相应的数据。例如:例如:scanf(%2d scanf(%2d%*3d%*3d%2d,&a,&b);%2d,&a,&b);如果输入如下信息:如果输入如下信息:12 12 345 345 67 67 则将 则将12 12赋给 赋给a a,67 67赋给
40、 赋给b b,第二个数据,第二个数据“345”“345”被跳过不赋给任 被跳过不赋给任何变量。为提高速度,使用某些原有的大批数据,有时不需要 何变量。为提高速度,使用某些原有的大批数据,有时不需要其中某些数据时,可用此方法跳过数据。其中某些数据时,可用此方法跳过数据。(4)(4)输入数据时不能规定精度。(前例中的注释已说明)例如:输入数据时不能规定精度。(前例中的注释已说明)例如:scanf scanf(%7.2f,&a%7.2f,&a);是不合法的,不能企图输入 是不合法的,不能企图输入1234567 1234567 而使 而使a a的值为 的值为12345.67 12345.67。3.3
41、技能3【知识点】(5)(5)在输入数据时,遇以下情况时该数据认为结束:在输入数据时,遇以下情况时该数据认为结束:遇空格或按 遇空格或按“回车 回车”或 或“跳格 跳格”(Tab Tab)键。)键。遇宽度结束。如:遇宽度结束。如:%3d%3d,只取,只取3 3列。列。遇非法输入。遇非法输入。表3-2 scanf()中格式字符分 分 类 类 格式字符 格式字符 主要功能 主要功能整型 整型d d 输 输 入十 入十 进 进 制整数 制整数o o 输 输 入八 入八 进 进 制整数 制整数x x 输 输 入十六 入十六 进 进 制整数 制整数字符 字符c c 输 输 入 入 单 单 个字符 个字符s
42、 s 输 输 入字符串 入字符串实 实 型 型f f 输 输 入 入 实 实 数 数g g 输 输 入 入 实 实 数 数3.4 技能4 3.4.1 编写程序的方法【知识点】用用CC语言编写一个程序,方法步骤如下:语言编写一个程序,方法步骤如下:1.1.确定程序对问题的需求。即确定用户应提供哪些信息程确定程序对问题的需求。即确定用户应提供哪些信息程序才能解决此问题?程序序才能解决此问题?程序 的目标是什么?的目标是什么?2.2.确定程序解决问题的方法,包括计算公式与求解步骤的确定程序解决问题的方法,包括计算公式与求解步骤的确定。确定。3.3.根据程序所涉及到的数据,确定合适的数据类型及数据根据
43、程序所涉及到的数据,确定合适的数据类型及数据的组织方法。的组织方法。3.4 技能4【知识点】4.4.将这个解决问题的方法转成将这个解决问题的方法转成CC语言程序。语言程序。5.5.运行并测试程序。运行并测试程序。例例3.19 3.19 写出求圆的周长的程序。写出求圆的周长的程序。#includestdio.h#includestdio.hmain()main()float r,c;/*float r,c;/*定义两个实型变量定义两个实型变量*/*/scanf(%f,&r);/*scanf(%f,&r);/*输入半径输入半径*/*/c=2*3.14*r;/*c=2*3.14*r;/*求周长求周长
44、*/*/printf(printf(周长周长c=%.2f,c);/*c=%.2f,c);/*输出周长输出周长*/*/3.4 技能4【典型例题】从上面例题可得出一般顺序结构的流程如下:从上面例题可得出一般顺序结构的流程如下:顺序结构先执行顺序结构先执行AA操作,然后执行操作,然后执行BB操作。操作。3.4 技能4【点拔】AB理论与上机实习双指导一、学习目标本章介绍了字符输入输出函数和格式输入输出函数以及简单的顺序结构的程序设计。1字符输出函数putchar(),参数ch通常为字符型变量、整型常量、字符本身,也可以输出控制字符,如:putchar(n)输出一个换行符。2字符输入函数getchar(
45、),没有参数.3格式输出函数printf(格式控制,输出表列)其中“格式控制”是用双引号括起来的字符串,学习该函数重点应放在格式转换控制符上。4格式输入函数scanf(控制参数,地址表列)理论与上机实习双指导二、常见问题及上机注意事项1在使用scanf()函数时,特别注意丢掉地址运算符号“&”,2在scanf()函数中不能指定其输入数据的精度。3写在scanf()函数中双引号内的普通字符在输入时应该原样输入。4在输出多个数据时,每个输出结果数据中最好有某种分隔符或提示信息,如:逗号、顿号、分号、空格等。5若在程序中使用了标准函数,应在程序中将标准函数的原型说明文件包含到程序中来。理论与上机实习双指导二、常见问题及上机注意事项6在printf()函数中,格式字符的选择与实际要输出的量的类型不符,导致输出结果与预想结果不一致。如:准备输出的量是实型的,而在写printf()函数时选用了%d,则结果出错。7注意每种类型的数据的取值范围,超出其类型的取值范围,结果也会出错。8变量应该先定义,后使用,不能引用没有定义的变量。9在编写顺序程序设计时,常常会忘记语句的结束标志分号,导致程序编译通不过。
限制150内