1.3.3 字符输出函数putchar()
putchar()函数的功能是输出一个字符数据,如putchar(c);表示输出变量c中的字符。 【例1.6】阅读并运行程序,分析结果理解putchar函数的使用。 #include
{ char a='B',b='5'; // 定义变量a,b int c=65;
putchar(a); // 输出变量a中的字符B putchar(b);
putchar('\\n'); // 输出换行 putchar(c); putchar('\\n'); }
当putchar() 函数中的参数为一个整数时,putchar() 函数输出该整数所对应的ASCII字符。本例中c=65,对应的ASCII字符为大写字母A,运行结果如图1.7所示。
图1.7 例1.6运行结果
1.3.4 字符输入函数getchar()
getchar()函数的功能是输入一个字符数据,在程序中使用这个函数时,一般用一个字符变量接收读取的字符,如c=getchar();。
【例1.7】阅读并运行程序,分析结果理解getchar函数的使用。 #include
ch=getchar(); // 等待用户输入一个字符 printf(\ // 按不同的格式输出变量ch }
运行结果如图1.8所示。
图1.8 例1.7运行结果
当执行到语句“ch=getchar();”时,程序等待用户输入一个字符,按下A键后回车,得到以上结果。“printf(\”语句中第一个变量ch以字符形式输出,第二个变量ch以以带符号的十进制形式输出整数。
6
1.4 输入输出应用案例
【例1.8】输入圆柱的半径r和高h,计算并输出其体积。 #include
scanf(\ // 输入圆柱的半径r和高h v=3.14*r*r*h; // 计算体积 printf(\体积:%f\\n\}
由于scanf函数中2个输入格式符用逗号分隔,则输入半径r和高h也必须用逗号分隔。输入项变量r和h前需要加符号“&”。运行结果如图1.9所示。
图1.9 例1.8运行结果
【例1.9】输入两条直角边a和b的长度,求直角三角形的面积和斜边c上的高h。
分析:由勾股定律a2+b2=c2,可求出斜边c;两条直角边a和b与斜边c及其上的高h满足关系:a × b = c × h,可计算出面积和斜边c上的高h。使用sqrt函数求平方根,需要预处理命令#include
程序如下:
#include
{ float a, b, c, h, s;
scanf(\ s=(a*b)/2;
c=sqrt(a*a+b*b); h=2*s/c;
printf(\}
运行结果如图1.10所示。
图1.10 例1.9运行结果
总 结
7
本章主要介绍了C语言的特点、程序的基本结构、上机过程、C-Free环境的使用以及结构化程序设计的设计思想。
此外,本章还着重介绍了程序中数据的输入与输出。在C语言中,所有的输入输出都是通过调用标准库函数中的输入输出函数来实现的。输入输出函数包含在stdio.h文件中。其中:
(1)scanf和getchar函数是输入函数,接收来自键盘的输入数据。
scanf是格式输入函数,可以按照指定的格式输入任意类型的数据;getchar函数是字符输入函数,只能接收单个字符。
(2)printf和putchar函数是输出函数,向显示屏输出数据。
printf是格式输出函数,可以按照指定的格式输出任意类型的数据;putchar函数是字符输出函数,只能输出单个字符。
数据的输入输出是本章的重点,也是较难掌握且容易出错的内容,在学习过程中应多用多练。
习 题
1、阅读程序写出执行结果
(1)下列程序的运行结果为___________。 #include
{ char c1=?a?,c2=?b?,c3=?c?;
printf(“a?%c\\tc%c\\n”,c1,c2,c3); }
(2)下列程序的运行结果为____________。 #include
{ char c1=?D?,c2=?L?,c3=?A?;
printf(“%c%c%c \\n”,c1+1,c2+2,c3+3); }
(3)下列程序的运行结果为__________。 #include
{ int a=3,b=5,c=8; float aver;
aver=(a+b+c)/3.0;
printf(“aver=%f\\n”,aver); }
(4)下列程序的运行结果为___________。 #include
{ int j1=30,j2=75,j3; j3=180-j1-j2;
printf(“%d\\n”,j3); }
8
2、程序填空
(1)补全程序,使它在显示屏幕上输出如下信息,请填空。 ******************************* This is my first C program! ******************************* #include
{ printf(\_________________________________\); printf(\_________________________________\); printf(\_________________________________\); }
(2)补全程序,使用getchar函数接收一个字符,用printf函数显示;使用scanf函数接收一个字符,用putchar()函数显示。
#include
printf(\please input the first char:\); _______________; printf(\______\,c);
printf(\please input the second char:\); scanf(\%c\,______); _______________; }
3、编程题
(1)编写一个程序,输出以下信息:
$$$$$#####*****
This is a C program! $$$$$#####*****
(2)编写一程序,用scanf函数输入一个字符,用printf函数将该字符显示出来。 (3)假设美元与人民币的汇率是1美元兑换6.829元人民币,编写程序输入人民币的值,输出能兑换的美元金额。
(4)编写一程序,将摄氏温度转换成华氏温度。[转换公式:f=c*1.8+32。其中c为摄氏温度,f为华氏温度。]
习题答案
1.阅读程序写出执行结果 (1)aAbB,cc (2)END
(3)aver=5.333333 (4)75
2.程序填空 (1)解: 略
9
(2)解:⑴ c=getchar() ⑵ %c ⑶ &c ⑷ putchar(c)
常见错误和难点分析
1.在输入语句scanf函数中忘记使用变量的地址符。
例如:scanf(\这是许多初学者刚刚学习C语言时一个习惯性错误。应写成scanf(\
2.输入数据的格式与要求不符。
用scanf函数输入数据要注意输入数据的格式。例如有如下scanf函数:
scanf(\若这样输入数据:5,8↙,是错误的。正确的输入应是5 8↙。 scanf函数输入数据的基本原则:
(1)被输入的数据之间默认使用空格、Tab键或者回车符来分隔。
(2)scanf函数中格式字符串中除了格式转换说明符以外,对其他字符必须按照原样进行输入,包括转义字符。例如有scanf(\若把变量a赋初值5,把变量b赋初值8,应进行如下输入:a=5,b=8\\n↙
3.printf函数输出表项的计算顺序。
已知a=1,m=5,n=8,有输出语句:printf(\则输出结果是13,13,而不是1,13。由此可见printf函数输出表项中的表达式是从右至左依次计算的。
4.改错与调试
找出下列程序中的错误,并改正。 #include
{ double a,b,c,s,v; printf(input a,b,c:\\n); scanf(\ s=a*b; v=a*b*c;
printf(\}
当程序执行时,屏幕的显示和要求输入的形式如下: input a,b,c:2.0 2.0 3.0
a=2.000000,b=2.000000,c=3.000000 s=4.000000,v=12.000000
10