7-getchar(),输入输出总结,顺序结构程序举例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例3.15 输入小写字符boy,要求输出大写的BOY。 例题分析: 大小写字母间转换的方法是它们对应字母的 ASCII码值相差32。例如:'A'的ASCII码值是65, 'a'的ASCII码值为97,'B'的ASCII码值为66, 'b'的ASCII码值为98。
参考程序如下: 程序一: #include <stdio.h> main() { char ch1,ch2,ch3; ch1=getchar();ch2=getchar();ch3=getchar(); ch1=ch1-32;ch2=ch2-32;ch3=ch3-32; printf("%c%c%c",ch1,ch2,ch3); } 运行结果如下: boy↵ (输入) BOY (输出)
3.7 顺序结构程序设计举例
下面对学过的内容用最简单的顺序结构程序 设计编写程序加以巩固 例3.14 请编程序输入变量a为13,变量b为33,变量c为字母B,并输出它们。 题目分析:本题主要考察在编程和输入数据时, 一定要注意调用函数的格式及输入数据的形 式,以保证变量能得到正确的数据。
参考程序如下: 程序一: main() { int a,b; char c; printf("Please input the value of a b and c:"); scanf("%d%d%c",&a,&b,&c); printf("a=%d,b=%d,c=%c\n",a,b,c); } 运行结果如下: Please input the value of a b and c:13 -33B↵ a=13,b=-33,c=B
1、格式输入函数总结: (1)scanf(“格式控制字符串”,变量地址列表); (2)格式控制字符串: 组成:% 【附加字符】 格式控制字符
•d:整型 •f、e:实型 •c:字符型 •s:字符串
•整数:指定宽度 •l:输入long、double型 •*:忽略对应位置数据
(3)变量地址列表:需要输入数据的变量的 地址。 多个变量地址之间使用逗号分隔开 输入变量的类型应与对应的格式字符相匹 配 输入变量的个数应小于等于格式控制符的 个数(例如:格式控制符中有%*形式) 变量的地址:&变量名
B、getchar()函数应用举例: (1) main() {int age; char sex ; float score; printf(“input age:”);scanf(“%d”,&age); printf(“input sex:”);scanf(“%c”,&sex); printf(“input score:”);scnf(“%f”,&score); …… }
字符输入函数:getchar() (1)功能:接收从键盘输入的一个字符 (2)函数的返回值:为输入字符的ASCII码 (3)使用形式: A、char/int变量=getchar(); B、putchar(getchar());/*作为函数的参数*/ C、getchar();/*接收数据,但不做任何处理等价
课上作业 编写程序。从键盘输入梯形的上边长,下边 长及高,计算梯形的面积并输出。 要求: (1)分别给出上边长,下边长及高的输 入提示。 (2)输出形式如下: 上边长为:XX,下边长为:XX,高为: XX的梯形的面积S为:XXXX。
A、121622 ↵ × B、12 16 22 ↵ C、12 ↵ 16 ↵ 22 ↵ D、12<tab>16<tab>22 ↵ E、12 16<tab>22↵
若希望a为12、b为16,c为22,则正确的输入形 式?
注意: 所有的屏幕输入都是以回车结束 输入函数是从输入缓冲区中读出数据。 使用getchar或scanf函数,从键盘输入多个字 符的时候,多个字符必须连续输入,最后以回 车结束,中间不能加空格、回车、TAB等修饰字 符。
从键盘输入:teacher ↵ t 输入数据缓冲区: e a c h e r \n
所有的getchar函数从其中读取字符
思考:若每个字符之间加上回车(空格或 TAB)结果如何?
main() {int a,b,c; scanf(“%d”,&a); scanf(“%d”,&b); scanf(“%d”,&c); ……}
(4)使用注意事项 scanf函数中使用的是变量的地址,而不 是变量名。 在格式控制字符串中尽量不要使用普通字 符和转义字符。 在一个scanf函数中最好只输入一个变量 的数据,每个scanf函数前面使用printf 函数加上友好的提示。 输入多个符时应该连续输入,在最后加 回车。
2、格式输出函数总结 (1)printf(“格式控制字符串”,输出变量列表); (2)格式控制字符串: 为了使输出结果清晰、美观,应加入一些 有用的普通字符和转义字符 应灵活使用多种格式字符,根据用户要求 设计最符合要求的显示格式
• • • •
整数:%[-][m][l]d (o、x,X、u) d (o、 实数:%[-][m][.][n][l]f(e、E)、 %g(G) f(e、 f(e E)、 g(G) 字符:%[-][m]c c 字符串:% [-][m][.][n]s s
(3)输出变量列表:
多个变量之间使用逗号隔开 输出的变量使用变量名表示,而不是使用 地址。 输出变量的类型应与对应的格式字符匹配 输出变量的个数与格式字符的个数一致。
(3) main() { int a,b; char ch; printf(“please input a:”); scanf(“%d”,&a); printf(“Do you want to input b?(Y/N):“); ch=getchar(); if (ch==‘Y’) {printf(“please input b:”); scanf(“%d”,&b);} }
程序二: #include <stdio.h> main() { char ch; ch=getchar(); putchar(ch-32); putchar(getchar()-32); putchar(getchar()-32); } 运行结果如下: boy↵ (输入) BOY (输出)
例3.16 已知圆半径r=1.5,圆柱高h=3,求圆周 长,圆面积,圆球表面积,圆球体积,圆柱体 积。 例题分析: 已知:圆周长 l=π2r 圆面积 s=πr2 圆球表面积 sq=4πr2 圆球体积 vq=4/3πr3 圆柱体积 vz=πr2h 根据以上公式,编写程序。
运行时出现以下情况: input age:23 ↵ input sex:input score:67 ↵ 根本没有机会输入sex的值,分析为什么? 修改方法: …… getchar(); printf(“input sex:”);scanf(“%c”,&sex); ……
(2) main() { int a,int b,int c; printf(“please input a:”); scanf(“%d”,&a); printf(“Press any key to continue……“); getchar(); printf(“please input b:”); scanf(“%d”,&b); printf(“Press any key to continue……“); getchar(); printf(“please input c:”); scanf(“%d”,&c); }
程序二: main() { int a, b; char c; printf ("Please input the value of a b and c:\n"); scanf ("%d", &a); scanf ("%d", &b); scanf ("%c", &c); printf ("a=%d, b=%d, c=%c\n", a, b, c); } 此时不等待输入字符B即 运行结果如下: 完成读入,显示如下: Please input the value of a b and a=13, b=-33, c= c: 13↵ 即此时变量c读入的是-33 后面的回车符′\n′ -33↵
本题目的参考程序如下: main() { float pi,h,r,l,s,sq,vq,vz; pi=3.14159; printf("请输入半径r,圆柱高h:"); 运行结果: 运行结果: scanf("%f,%f",&r,&h); 请输入半径r 圆柱高h 请输入半径r,圆柱高h:1.5, 3↵ l=2*pi*r; 圆周长为:l=9 圆周长为:l=9.42 s=pi*r*r; 圆面积为:s=7.07 圆面积为:s=7 sq=4*s; 圆球表面积为:sq=28 28. 圆球表面积为:sq=28.27 vq=4.0/3.0*pi*r*r*r; 圆球体积为:vq=7 圆球体积为:vq=7.95 vz=s*h; 圆柱体积为: 圆柱体积为:vz=21.21 printf("\圆周长为:l=%.2f\n",l); printf("圆面积为:s=%.2f\n",s); printf("圆球表面积为:sq=%.2f\n",sq); printf("圆球体积为:vq=%.2f\n",vq); printf("圆柱体积为:vz=%.2f\n",vz); }
please input two char: a b↵ 输入缓冲区: a 程序读 取数据 b ↵
ch= getchar() ; putchar( getchar() ); 'b' 'a'
问题: 若输入的形式为: a ↵ b↵,则结果?
(4)getchar函数说明: A、从键盘输入多个字符,则需要多个getchar()函 数处理,scanf可使用一个或多个。 #include "stdio.h" main() {char a,b,c,d,e,f; a=getchar() b=getchar() scanf(“%c”,&a) ; scanf(“%c”,&b) ; c=getchar() d=getchar() scanf(“%c”,&c) ; scanf(“%c”,&d) ; scanf(“%c%c%c%c%c%c”,&a,&b,&c,&d,&e,&f) e=getchar() f=getchar() scanf(“%c”,&e) ; scanf(“%c”,&f) ; printf("%c%c%c%c%c%c",a,b,c,d,e,f); }
例3.17 编程序从键盘输入一个华氏温度,转 换成摄氏温度并输出。 例题分析:华氏温度转变为摄氏温度的公式为。
本题目的参考程序如下: main() { float c,f; printf("请输入一个华氏温度:"); scanf("%f",&f); c=(5.0/9.0)*(f-32); printf("摄氏温度为:%5.2f\n",c); } 运行结果如下: 请输入一个华氏温度:79↵ 摄氏温度为:26.11
于scanf(“%*c”);*/
#include “stdio.h”/*getchar函数必须包含头 文件*/ main() { char ch; printf("please input two char:"); ch=getchar(); putchar(getchar()); printf("\n%c,%d",ch,ch); }
相关文档
最新文档