第 3章 基本输入输出和顺序程序设计
3.1 数据输入输出的概念
3.2 字符数据的输入输出
3.3 格式数据的输入输出
3.4 常用函数的使用
3.5 顺序结构程序设计举例
3.6 小结第 3章 基本输入输出和顺序程序设计第 3章 基本输入输出和顺序程序设计输入和输出是以计算机为主体而言的。输入就是由计算机的输入设备(如键盘、鼠标、磁盘和光盘、
扫描仪等)向计算机输入数据;而输出是由计算机向输出设备(如显示器、打印机、磁盘和光盘等)。
C语言本身没有提供输入输出语句,它的输入输出是 C语言中标准函数库中标准输入输出库函数提供的,
其对应的头文件为,stdio.h”。这样做的目的总的说来有两个好处:既可以使 C语言的内核比较精炼,也可以使 C语言程序具有可移植的性能。
3.1 数据输入输出的概念第 3章 基本输入输出和顺序程序设计
3.2.1 putchar函数(字符输出函数)
函数功能:向标准的输出设备输出一个字符。
调用格式:
putchar( c);
其中 c为任一参数,可以是字符型常 /变量和整型常 /变量以及表达式。当 c为字符型常 /变量时,它输出的是参数 c的值;当 c为整形常 /变量以及表达式时,它输出的是
ASCII码值等于 c的字符。
使用本函数必须用文件包含命令:
3.2字符数据的输入输出第 3章 基本输入输出和顺序程序设计使用本函数必须用文件包含命令:
#include <stdio.h>或
#include " stdio.h"
【 例 3.1】 输出单个字符
#include <stdio.h>
main()
{
int i=97,j=98,k=99;
char ch=?A?;
putchar(i); /*输出字符 'a'*/
第 3章 基本输入输出和顺序程序设计
putchar(j); /*输出字符 'b'*/
putchar(k); /*输出字符 'c'*/
putchar(\n); /*输出一个换行符 */
putchar(ch); /*输出字符 'A'*/
}
程序运行后结果为:
abc
A
3.2.2 getchar函数(字符输入函数)
函数功能:从输入设备输入一个字符。
第 3章 基本输入输出和顺序程序设计调用格式:
getchar();
函数值可以赋给一个字符变量,也可以给一个整型变量。记住,字符输入函数是没有参数的。
【 例 3.2】 输入单个字符
#include <stdio.h>
main()
{
char c;
c=getchar();
第 3章 基本输入输出和顺序程序设计
putchar(c);
}
运行结果:
A↙ (输入‘ A?,按回车键,字符‘ A?才送入内存)
A
注意:
getchar()只能接受一个字符(包括控制符)。使用
getchar()输入字符后,要按回车键,程序才会响应输入。使用 getchar()函数也必须在前面加上文件包含命令,#include
<stdio.h
第 3章 基本输入输出和顺序程序设计如果想同时输入输出多种数据和字符串的话,
我们就要用到格式输出 /输入函数了,这两种函数不仅可以输入输出各种类型的数据,还可以控制数据的输入输出格式。
3.3格式输入输出第 3章 基本输入输出和顺序程序设计
3.3.1 printf()函数(格式输出函数)
函数功能:向输出设备输出一个或多个任意类型的数据。
调用格式,printf("格式控制",输出列表 )
一.格式控制格式控制也称“格式控制字符串”,是由双引号括起来的字符串,用于指定输出格式。它一般是由以下三部分组成:
1.格式说明第 3章 基本输入输出和顺序程序设计由,%”字符开始,后面跟有各种格式字符,用来说明各个输出数据的类型、形式、长度、小数位,截取几个有效字符等。
(1) d格式符:用来输出有符号的十进制整数。有以下几种用法:
例如:
printf(" %d",456)
运行后结果为:
456
第 3章 基本输入输出和顺序程序设计
( 2) u格式字符:用来输出无符号的十进制整数。
注意:有符号的整数也可以用无符号的形式进行输出,
无符号的整数也可以用有符号整数的形式来输出。
例如:
int a=-1;
printf(" %u",a)
运行后结果如下:
65535
因为 -1在内存中以 16个 1的形式存在,不带符号的话,
直接转换成十进制后结果为 65535。
第 3章 基本输入输出和顺序程序设计
( 3) o格式字符:用来输出无符号的八进制整数。
例如:
int a=-1;
printf(" %o",a)
运行后结果如下:
17777
与上题一样,它只是将十六个一转换成了无符号的八进制就是这样的结果。
第 3章 基本输入输出和顺序程序设计
(4) x格式字符:用来输出无符号的十六进制整数。
例如:
int a=-2;
printf(" %x",a)
运行后结果如下:
fffe
-2在计算机中表示为 1111111111111110,所以四位为一位换成无符号十六进制后就是这样表示的。
第 3章 基本输入输出和顺序程序设计
(5) c格式字符:用来输出一个字符。
因为字符变量在计算机中是占一个字节的,而整型变量则占两个字节,所以整型变量在可输出的范围内
( ASCII码 0~ 255之间的字符)是可以与字符数据相互转换的。
例如:
int a=98;
char ch='a';
printf(" %c,%c",a,ch)
运行后结果如下:
b,a
第 3章 基本输入输出和顺序程序设计
(6) s格式字符:用来输出一个字符串。
例如:
main()
printf(" %s"," string" )
运行后结果如下:
string
第 3章 基本输入输出和顺序程序设计
(7) f格式字符:以小数的形式来输出实数 (float,double),
默认输出小数点后六位数,但并非全部的数字都是有效的,按它们的精度进行控制。
例如:
float x,y;
x=1111.11111
y=1111.11111
printf(" %f",x+y);
运行后结果如下:
2222.222715(前七位有效,后三位是无意义的)
第 3章 基本输入输出和顺序程序设计
(8) e格式字符:以指数的形式来输出实数。有的 C编译系统自动指定小数点前必须有一个非零的数,小数点后指定 6位小数,指数部分占 5位,即,e”占一位,指数符号占 1位,指数占 3位。
例如:
printf(" %e",10256.7)
运行后结果如下:
1.025670e+004
第 3章 基本输入输出和顺序程序设计
(9) g格式字符,用来输出实数,且根据数值的大小,自动选取 f格式或 e格式,并不输出无意义的零。
例如:
printf(" %f,%e,%g",123.456,123.456,123.456)
运行后结果如下:
123.456000,1.234560e+002,123.456
以上为 9种格式字符。
第 3章 基本输入输出和顺序程序设计
2.普通字符普通字符即字符是按原样进行输出的,其作用是作为输出时数据的间隔,在显示中起提示的作用。
例如:
printf(" a=%x",10)
中的 a=就是普通字符。此语句运行后结果为:
a=10
第 3章 基本输入输出和顺序程序设计
3.转义字符如上章所讲的作用,常用的有‘ \t?,?\n?等。
二.输出列表项输出列表项由若干个表达式组成,它们之间用逗号连接,但并不是逗号表达式,计算的顺序是自右向左进行的。
注意:格式字符串中的格式字符和各输出项在数量和类型上应该一一对应。
三.附加说明符第 3章 基本输入输出和顺序程序设计在格式说明中,在 %和格式字符间还可以插入几种附加说明符,如表 3.1所示。
表 3.1 printf附加格式说明字符字符 说明
l 用于指定长整型,可加在的前面
m 只能为整数,指定数据输出时所占的列数,当实际的长度小于时,若为正,则左补空格,若为负,则右补空格;当实际长度大于时,按实际输出。
n 只能为正整数,对于实数来说,可以指定小数点后几位小数,
对于字符串来说是指定截取字符的个数。
第 3章 基本输入输出和顺序程序设计
【 例 3.3】 格式输出函数使用举例。
main()
{
int a=45;
float b=123.456;
char c='a';
printf(" a=%d,a=%u,a=%o,a=%f\n",a,a,a,a);
printf(" b=%f,b=*%9.2f,b=%-9.2f*\n",b,b,b);
printf(" c=%c,c=%3s,c=%7.2s,c=%-5.3s"," string","
string",
" string"," string" );
}
第 3章 基本输入输出和顺序程序设计运行结果为:
a=45,a=45,a=55,a=2d
b=123.45600,b=*︺︺︺ 123.46,b=123.46︺︺︺ *
string,string,︺︺︺︺︺ st,str︺︺
注意:
(1) 除了 x,e,g外,其他格式字符都不能大写,如 %d一定不能写成 %D。
(2) 格式符 d可以用 I代替,这是因为 d和 I作为格式符用时,
两者作用是一致的第 3章 基本输入输出和顺序程序设计
(3)上面介绍的 d,o,x,u,c,f,e和 g如果前未加 %,可当成普通字符使用。
例如:
printf(" x=%fs,y=%fg",123.456,7.8954)
运行后结果为
x=123.456000s,y=7.895400g
(4)如果想输出 %,可用 %%来表示即可例如:
printf(" x=26%%" )
第 3章 基本输入输出和顺序程序设计运行结果为:
x=26%
(5) 在使用,%f”格式符输出实数时,并非全部数字都是有效数字。单精度实数的有效位数一般是 7位,双精度实数的有效位一般是 16位。
例如:已 知 双 精 度 类 型 的 两个变量
x=1111111111111.1111111,y=2222222222222.2222222,
那么这条语句,printf(" %f,%f",x,y);
运后结果为,3333333333333.333156
从这上面我们可以看出只有前面 16位是有效的,后面的数字在这里是没有意义的。
第 3章 基本输入输出和顺序程序设计
3.3.2 scanf(格式输入函数 )
函数功能:从键盘按照“格式控制字符串”中规定的格式输入若干个数据,按“变量地址表列”中变量的顺序,依次存入对应的变量中。
函数调用格式:
scanf("格式控制字符串",变量地址表列 )
格式控制字符串
1,它是由双引号括起来的字符串,和我们上面所讲的格式输出函数的“格式控制字符串”含义相同,其中的格式说明,也和格式输出函数的格式说明相类似,
都是以,%”开始。
第 3章 基本输入输出和顺序程序设计
2,变量地址表列变量地址是由地址运算符,&”后跟变量名所组成,各个变量地址之间用“,”分隔。
【 例 3.4】 格式输入函数使用,分别给整型变量 a,b,x,y赋值。
main()
{
int a,b,x,y;
scanf(" %d,%d,%d,%d",&a,&b,&x,&y);
printf(" a=%d,b=%d,x=%d,y=%d",a,b,x,y);
}
第 3章 基本输入输出和顺序程序设计运行时假设输入的是:
1,2,3,4
运行的结果为:
a=1,b=2,x=3,y=4
在以上这个程序中,&a,&b,&x,&y分别表示变量 a,变量 b,
变量 x,变量 y的地址。这个地址就是编译时系统在内存中给变量 a,变量 b,变量 x,变量 y分配的地址。关于地址的概念,在本书的第 8章会作详细介绍,这里大家只要了解就行了。
3.输入格式字符输入格式字符归纳为表 3.2所示第 3章 基本输入输出和顺序程序设计表 3.2格式字符的说明格式字符 说明
d,i 用来输入有符号的十进制整数
u 用来输入无符号的十进制整数
o 用来输入无符号的八进制整数
X,x 用来输入无符号的十六进制整数
c 用来输入单个字符
s 用来输入字符串,并将字符串送到一个字符数组中,
在输入时以非空格字符开始,遇到回车或空格字符就结束
f 用来输入实数,可以用小数形式或指数形式进行输入第 3章 基本输入输出和顺序程序设计
E,e,G,g 与 f作用相同,所以 e,f,g可以替换使用。
注意:
(1) 如果在“格式控制字符串”中除了格式说明符以外还有其他字符,则在输入数据时,在对应位置要输入与这些字符相同的字符。
例如:
① scanf(“%d,%d”,&a,&b);
则输入时应该这样进行输入;
7,8
7和 8之间的逗号,是与“格式控制字符串”里面的逗号相对应的。
第 3章 基本输入输出和顺序程序设计
② scanf(" %d %d",&a,%b);
则输入时应该这样进行输入;
7 8
7和 8之间的空格,可以是一个或多个,也可以用回车键来代替,它是与“格式控制字符串”里面的空格相对应的
③ scanf(" %d:%d",&a,%b);
则输入时应该这样进行输入;
7:8
7和 8之间的分号与“格式控制字符串”里面的分号相对应的第 3章 基本输入输出和顺序程序设计
④ scanf(" a=%d,b=%d",&a,&b);
则输入时应该这样进行输入;
a=7,b=8
(2) 可以指定数据所占的列度,系统会自动按它的大小来截取所需的数据。但不能像格式输出函数一样来规定输入时的精度,这样做是不合法的。
例如:
scanf(" %3d,%2d",&a,&b);
若输入:
45678
则系统会自动把 456赋给变量 a,78赋给变量 b。
第 3章 基本输入输出和顺序程序设计
(3) 输入数据时,遇到以下几种情况认为本数据输入结束。
遇到空格、回车或 Tab符;
取完指定的宽度,如上面所举,%3d”,只取了 3列;
遇到非法的输入等。
(4) 在使用,%c”格式输入字符时,空格字符和以前所讲的“转义字符”全部作有效字符输入。
例如:
① scanf(" %c%c%c",&x,&y,&z);
若输入,a b c
第 3章 基本输入输出和顺序程序设计则实际上在这个程序中,第一个字符‘ a?给了变量 x,而变量 y则得到字符‘ ’,字符‘ b?给了变量 z。这是因为一个 %c只能读入一个字符,后面的空格作为一个字符送给了变量 y。
② scanf(" %c%c%c",&x,&y,&z);
若输入,abc
那么就可以得到实际上,我们这个‘ a?在这里的话就被赋给了变量 x,同样的这里的‘ b?就赋给了变量 y,‘ c?就被赋给了变量 z。
③ 如果在格式控制字符串中加入空格作为间隔,则输入时各数据之间可加空格。
Scanf(" %c %c %c",&x,&y,&z);
第 3章 基本输入输出和顺序程序设计输入为,a b c 回车(在 a,b后各有一个空格),
这样做的后果就会实现实际上‘ a?给了变量 x,‘ b?就赋给了变量 y,‘ c?就被赋给了变量 z。
注意以上各种输入时的不同。
【 例 3,5】 格式输入函数使用举例。
main()
{
char c1,c2;
int n1,n2;
float f1,f2;
第 3章 基本输入输出和顺序程序设计
scanf(" %c,%c",&c1,&c2);
scanf(" %d,%d",&n1,&n2);
scanf(" %f,%f",&f1,&f2);
printf(" c1=%c,c2=%c\n",c1,c2);
printf(" n1=%d,n2=%d\n",n1,n2);
printf(" f1=%f,f2=%f\n",f1,f2);
}
运行时,若要使字符型变量 c1的值为‘ A?,字符型变量 c2的值为‘ B?,整型变量 n1的值为 123,整型变量 n2的值为 -123,单精度类型变量 f1的值为 4.56,单精度类型变量 f1的值为 -4.56,
那么在这个程序中应如下正确的输入。
第 3章 基本输入输出和顺序程序设计
AB
123,-123
4.56,-4.56
若根据此数据输入,程序运行后结果为:
c1=A,c2=B
n1=123,n2=-123,
f1=4.560000,f2=-4.5600
到这里我们就学会了一些基本的输入 /输出函数,其中前面所学的字符输入 /输出函数一定要包含头文件
,stdio.h”,“stdio.h”实际上的意思也就是标准输入 /输出头文件的意思。
第 3章 基本输入输出和顺序程序设计
3.4.1数学函数常用的数学函数有许多,它们的原型说明以及有关的信息均包含在一个头文件,math.h”中,所以我们只要在程序中如果要用到数学函数的时候,就应该在这对应的源文件中使用以下的文件包含命令:
#include <math.h>
也可以写成是:
#include " math.h"
下面,我们就这个数学函数来看几个例子。
3,4常用函数的使用第 3章 基本输入输出和顺序程序设计
【 例 3,6】 一些常用的数学函数使用举例。
#include <math.h>
main()
{
int a=-23,b=30;
float x=9,y=2.5,p=-12.3,q=12.3;
printf(" abs(%d)=%d\n",a,abs(a)); /*求整型数 a的绝对值 */
printf(“fabs(-6.8)=%f\n”,fabs(-6.8)) ; /*求实型数 -6.8的绝对值 */
printf(" sqrt(%.0f)=%f\n",x,sqrt(x)); /*求实型数 x的平方根值 */
printf(" %1f^3=%f\n",y,pow(y,3)); /*求 y的三次方 */
printf(" sin(%d)=%f\n",30,sin(b*3.14159/180));
第 3章 基本输入输出和顺序程序设计
/*求 30.0正弦值,函数的参数以弧度为单位 */
printf(“floor(%1f)=%f\n”,p,floor(p)); /*求不大于 p的最小值 */
printf(“floor(%1f)=%f\n”,q,floor(q)) ; /*求不大于 q的最小值 */}
如果这个程序运行后结果为:
abs(-23)=23
fabs(-6.8)=6.800000
sqrt(9)=3.000000
2.5^3=15.625000
sin(30)=0.500000
floor(-12.3)= -13.000000
floor(12.3)=12.000000
第 3章 基本输入输出和顺序程序设计注意,这里面真正起作用的是双引号后面使用的那个函数名,而在双引号里面出面的函数名只是相当于提示作用,作为普通字符来输出的,但没有实际用到。
【 例 3,7】 使用随机数函数出一道数值不超过百位的算术题。
#include <stdlib.h>
#include <math.h>
main()
{
int x,y;
randomize();
x=rand()%100; y=rand()%100;
第 3章 基本输入输出和顺序程序设计
printf(" %d+%d=\n",x,y);
}
运行后结果为(因为是随机产生的,这个程序运后大家的答案可能会不同):
13+87=
注意:
1,rand()是一个随机数函数,它返回的是一个只要是介于 0到 32767之间的整数。
2,只要程序中提及到要调用动态分配函数和随机数函数的话,要求就要在源文件夹中包含头文件,stdlib.h”。
3,初始化随机数函数 rnadomize()产生一个随机数的种子,使每次运行程序时所得到的随机数不同。
第 3章 基本输入输出和顺序程序设计
3.4.2字符处理函数常用的字符处理函数见附录 D,它们的原型说明用有关信息均包含在头文件,ctype.h”中,使用字符函数时,应该在源文件中使用以下的文件包含命令行:
#include <ctype.h>
#include " ctype.h"
1,isalpha(x):判断参数 x中存放的是否是英文字母,函数返回 1(真),否则返回 0(假)。
2,islower(x):判断参数 x中存放的是否小写字母( a~ z),
若是英文小写字母,返回 1(真),否则返回 0(假)
第 3章 基本输入输出和顺序程序设计
3,toupper(x):若参数 x中存放的字符是小写字母,将其转换成大写字母并返回,否则返回 x本身
4,toascii(x):将参数 x中存放的字符转换成对应的 ASCII
的值。
【 例 3,8】 字符函数的应用。
#include <stdio.h>
#include " ctype.h"
main()
{
char ch1,ch2,c,d;
int a,b;
第 3章 基本输入输出和顺序程序设计
ch1=getchar();
ch2=getchar();
/*判断参数 ch1中存放的是否是英文字母,函数返回 1
(真),否则返回 0(假) */
a=isalpha(ch1);
/*判断参数 ch2中存放的是否小写字母( a~z),若是英文小写字母,返回 1(真),否则返回 0(假) */
b=islower(ch2);
/*若参数 ch1中存放的字符是小写字母,将其转换成大写字母并返回,否则返回 ch1本身 */
第 3章 基本输入输出和顺序程序设计
c=toupper(ch1);
d=toascii(ch2); /* 将参数 ch2中存放的字符转换成对应的
ASCII的值 */
printf(" a=%d,b=%d,c=%c,d=%d\n" a,b,c,d);
}
运行时,如果输入:
ab
那么该程序的结果就如下:
a=1,b=1,c=A,d=98
第 3章 基本输入输出和顺序程序设计
3.4.3基本图形函数基本图形函数包括画点、画线及其他的一引起基本图形函数。它们均包括在头文件,graphics.h”中,使用图形函数时,应该在该源文件中使用以下的文件包含命令:
#include <graphics.h>
也可以写成是:
#include " graphics.h"
基本图形函数见表 3.5所示第 3章 基本输入输出和顺序程序设计函数名 函数原型 功能 返回值
putpixel (int x,int y,int color); 用指定的像素画一个按 color所指定的颜色的点
getpixel getpixel(int x,int y); 求当前点的颜色值 求当前点的颜色值
getmaxx int far getmaxx(); 求 x轴地最大值 x轴地最大值
getmaxy int far getmaxy(); 求 y轴地最大值 y轴地最大值
getx int far getx(); 功能是返回游标在 x轴地位置 游标在 x轴地位置
gety int far gety(); 功能是返回游标在 y轴地位置 游标在 y轴地位置
moveto int far moveto(int x,int
y);
移动游标到 (x,y)点,不是画点,在移动过程中不画点
moverel int far moverel(int
dx,int dy);
从现在的位置 (x,y)移动游标到
(x+dx,y+dy)的位置在移动过和中不画点
line line(int x1,int y1,int
x2,int y2);
画一条从点 (x1,y1到 (x2,y2)的直线
linerel linerel(int dx,int dy); 画一条从当前游标 (x,y)到相对增量点 (x+dx,y+dy)的直线
circle circle(inx,inty,int
radius);
以 (x,y)为圆心,以 radius为半,
画一个圆
3.5基本图形函数第 3章 基本输入输出和顺序程序设计
【 例 3,9】 图形函数的应用
#include <stdio.h>
#include <graphics.h.
main()
{
int gdriver,gmode;
gdriver=DETECT;
initgraph(&gdriver,&gmode," " ); /*图形初始化 */
setbkcolor(BLUE); /*设置背景色为蓝色 */
setcolor(RED); /*设置图形颜色为红色 */
第 3章 基本输入输出和顺序程序设计
line(2,3,6,9); /*画一红色的直线 */
getch();
colsegraph();
}
程序运行后,我们可以看到在屏幕上坐标为( 2,3)和
( 6,9)两点之间画出了一条红色的直线。
第 3章 基本输入输出和顺序程序设计顺序结构是最简单的一种程序结构。
【 例 3,10】 以下程序由终端输入两个整数给变量 x和
y,然后输出 x和 y,在交换 x和 y中的值后,再输出 x
和 y,验证两个变量中的数是否正确地进行了交换。
#include " stdio.h"
main()
{ int x,y,t; printf(" Enter x&y:\n" );
3.5顺序结构程序设计举例第 3章 基本输入输出和顺序程序设计
scanf(" %d,%d",&x,&y);
printf(" x=%d,y=%d",x,y);
t=x,x=y,y=t;
printf(" x=%d,y=%d",x,y);
}
以下是程序运行情况:
Enter x&y (由第 4行的 printf输出)
123,456 (从键盘输入两个整数,回车)
x=123,y=456 (由第 6行的 printf输出)
x=456,y=123 (由第 8行的 printf输出)
第 3章 基本输入输出和顺序程序设计
【 例 3,11】 从键盘输入一个小写字母,输出该字母及对应的 ASCII的值,然后将该字母转换成大写字母,并输出大写字母及对应的 ASCII的值。
源程序如下:
#include <stdio.h>
main()
{
char c1,c2;
c1=getchar();
第 3章 基本输入输出和顺序程序设计printf(" %c,%d\n",c1,c1);
c2=c1-32;
printf(" %c,%d\n",c2,c2);
}
程序运行情况如下:
a (输入 a后,回车)
a,97
A,65
【 例 3,12】 请输入圆半径 r,然后来求圆周长 length和圆面积 area。
源程序如下:
#define pi 3.1415926
main()
第 3章 基本输入输出和顺序程序设计
{
float r,length,area;
printf(" please enter r," );
scanf(" %f",&r);
length=2*pi*r; /*求圆周长 */
area=pi*r*r; /*求圆面积 */
printf(“length=%.2f\n”,length);
printf(" area=%.2f",area);
}
程序运行结果如下:
please enter r:
1.5 (输入 1.5后按回车)
第 3章 基本输入输出和顺序程序设计
length=9.42
area=7.69
【 例 3,13】 求一元二次方程 ax2+bx+c=0的根,其中 a,b、
c由键盘输入,并且假设 b2-4ac>0。源程序如下,
#include <math.h>
main()
{
float a,b,c,x1,x2,p,q;
scanf(" a=%f,b=%f,c=%f",&a,&b,&c)
p=-b/(2*a);
q=sqrt(b*b-4*a*c)/(2*a);
第 3章 基本输入输出和顺序程序设计
x1=p+q;
x2=p-q;
printf(" x1=%5.2f,x2=%5.2f\n",x1,x2);
}
程序运行输入:
a=1,b=3,c=2(回车)
结果为:
x= -1.00,x2= -2.00
第 3章 基本输入输出和顺序程序设计
3,C语言提供了各种各样的库函数。
1,从程序流程的角度来看,程序可以分为三种基本结构,
即顺序结构、选择结构和循环结构。
2,C语言程序没有提供专门的输入输出语句,所以所有的输入输出都是调用标准库函数中的输入输出函数来实现的。其中:
scanf和 getchar这两个函数都是输入函数,接收来自一般是键盘所输入的信息数据。
printf和 putchar这两个函数都是输出,一般是向显示器输出信息数据。
3.6小结
3.1 数据输入输出的概念
3.2 字符数据的输入输出
3.3 格式数据的输入输出
3.4 常用函数的使用
3.5 顺序结构程序设计举例
3.6 小结第 3章 基本输入输出和顺序程序设计第 3章 基本输入输出和顺序程序设计输入和输出是以计算机为主体而言的。输入就是由计算机的输入设备(如键盘、鼠标、磁盘和光盘、
扫描仪等)向计算机输入数据;而输出是由计算机向输出设备(如显示器、打印机、磁盘和光盘等)。
C语言本身没有提供输入输出语句,它的输入输出是 C语言中标准函数库中标准输入输出库函数提供的,
其对应的头文件为,stdio.h”。这样做的目的总的说来有两个好处:既可以使 C语言的内核比较精炼,也可以使 C语言程序具有可移植的性能。
3.1 数据输入输出的概念第 3章 基本输入输出和顺序程序设计
3.2.1 putchar函数(字符输出函数)
函数功能:向标准的输出设备输出一个字符。
调用格式:
putchar( c);
其中 c为任一参数,可以是字符型常 /变量和整型常 /变量以及表达式。当 c为字符型常 /变量时,它输出的是参数 c的值;当 c为整形常 /变量以及表达式时,它输出的是
ASCII码值等于 c的字符。
使用本函数必须用文件包含命令:
3.2字符数据的输入输出第 3章 基本输入输出和顺序程序设计使用本函数必须用文件包含命令:
#include <stdio.h>或
#include " stdio.h"
【 例 3.1】 输出单个字符
#include <stdio.h>
main()
{
int i=97,j=98,k=99;
char ch=?A?;
putchar(i); /*输出字符 'a'*/
第 3章 基本输入输出和顺序程序设计
putchar(j); /*输出字符 'b'*/
putchar(k); /*输出字符 'c'*/
putchar(\n); /*输出一个换行符 */
putchar(ch); /*输出字符 'A'*/
}
程序运行后结果为:
abc
A
3.2.2 getchar函数(字符输入函数)
函数功能:从输入设备输入一个字符。
第 3章 基本输入输出和顺序程序设计调用格式:
getchar();
函数值可以赋给一个字符变量,也可以给一个整型变量。记住,字符输入函数是没有参数的。
【 例 3.2】 输入单个字符
#include <stdio.h>
main()
{
char c;
c=getchar();
第 3章 基本输入输出和顺序程序设计
putchar(c);
}
运行结果:
A↙ (输入‘ A?,按回车键,字符‘ A?才送入内存)
A
注意:
getchar()只能接受一个字符(包括控制符)。使用
getchar()输入字符后,要按回车键,程序才会响应输入。使用 getchar()函数也必须在前面加上文件包含命令,#include
<stdio.h
第 3章 基本输入输出和顺序程序设计如果想同时输入输出多种数据和字符串的话,
我们就要用到格式输出 /输入函数了,这两种函数不仅可以输入输出各种类型的数据,还可以控制数据的输入输出格式。
3.3格式输入输出第 3章 基本输入输出和顺序程序设计
3.3.1 printf()函数(格式输出函数)
函数功能:向输出设备输出一个或多个任意类型的数据。
调用格式,printf("格式控制",输出列表 )
一.格式控制格式控制也称“格式控制字符串”,是由双引号括起来的字符串,用于指定输出格式。它一般是由以下三部分组成:
1.格式说明第 3章 基本输入输出和顺序程序设计由,%”字符开始,后面跟有各种格式字符,用来说明各个输出数据的类型、形式、长度、小数位,截取几个有效字符等。
(1) d格式符:用来输出有符号的十进制整数。有以下几种用法:
例如:
printf(" %d",456)
运行后结果为:
456
第 3章 基本输入输出和顺序程序设计
( 2) u格式字符:用来输出无符号的十进制整数。
注意:有符号的整数也可以用无符号的形式进行输出,
无符号的整数也可以用有符号整数的形式来输出。
例如:
int a=-1;
printf(" %u",a)
运行后结果如下:
65535
因为 -1在内存中以 16个 1的形式存在,不带符号的话,
直接转换成十进制后结果为 65535。
第 3章 基本输入输出和顺序程序设计
( 3) o格式字符:用来输出无符号的八进制整数。
例如:
int a=-1;
printf(" %o",a)
运行后结果如下:
17777
与上题一样,它只是将十六个一转换成了无符号的八进制就是这样的结果。
第 3章 基本输入输出和顺序程序设计
(4) x格式字符:用来输出无符号的十六进制整数。
例如:
int a=-2;
printf(" %x",a)
运行后结果如下:
fffe
-2在计算机中表示为 1111111111111110,所以四位为一位换成无符号十六进制后就是这样表示的。
第 3章 基本输入输出和顺序程序设计
(5) c格式字符:用来输出一个字符。
因为字符变量在计算机中是占一个字节的,而整型变量则占两个字节,所以整型变量在可输出的范围内
( ASCII码 0~ 255之间的字符)是可以与字符数据相互转换的。
例如:
int a=98;
char ch='a';
printf(" %c,%c",a,ch)
运行后结果如下:
b,a
第 3章 基本输入输出和顺序程序设计
(6) s格式字符:用来输出一个字符串。
例如:
main()
printf(" %s"," string" )
运行后结果如下:
string
第 3章 基本输入输出和顺序程序设计
(7) f格式字符:以小数的形式来输出实数 (float,double),
默认输出小数点后六位数,但并非全部的数字都是有效的,按它们的精度进行控制。
例如:
float x,y;
x=1111.11111
y=1111.11111
printf(" %f",x+y);
运行后结果如下:
2222.222715(前七位有效,后三位是无意义的)
第 3章 基本输入输出和顺序程序设计
(8) e格式字符:以指数的形式来输出实数。有的 C编译系统自动指定小数点前必须有一个非零的数,小数点后指定 6位小数,指数部分占 5位,即,e”占一位,指数符号占 1位,指数占 3位。
例如:
printf(" %e",10256.7)
运行后结果如下:
1.025670e+004
第 3章 基本输入输出和顺序程序设计
(9) g格式字符,用来输出实数,且根据数值的大小,自动选取 f格式或 e格式,并不输出无意义的零。
例如:
printf(" %f,%e,%g",123.456,123.456,123.456)
运行后结果如下:
123.456000,1.234560e+002,123.456
以上为 9种格式字符。
第 3章 基本输入输出和顺序程序设计
2.普通字符普通字符即字符是按原样进行输出的,其作用是作为输出时数据的间隔,在显示中起提示的作用。
例如:
printf(" a=%x",10)
中的 a=就是普通字符。此语句运行后结果为:
a=10
第 3章 基本输入输出和顺序程序设计
3.转义字符如上章所讲的作用,常用的有‘ \t?,?\n?等。
二.输出列表项输出列表项由若干个表达式组成,它们之间用逗号连接,但并不是逗号表达式,计算的顺序是自右向左进行的。
注意:格式字符串中的格式字符和各输出项在数量和类型上应该一一对应。
三.附加说明符第 3章 基本输入输出和顺序程序设计在格式说明中,在 %和格式字符间还可以插入几种附加说明符,如表 3.1所示。
表 3.1 printf附加格式说明字符字符 说明
l 用于指定长整型,可加在的前面
m 只能为整数,指定数据输出时所占的列数,当实际的长度小于时,若为正,则左补空格,若为负,则右补空格;当实际长度大于时,按实际输出。
n 只能为正整数,对于实数来说,可以指定小数点后几位小数,
对于字符串来说是指定截取字符的个数。
第 3章 基本输入输出和顺序程序设计
【 例 3.3】 格式输出函数使用举例。
main()
{
int a=45;
float b=123.456;
char c='a';
printf(" a=%d,a=%u,a=%o,a=%f\n",a,a,a,a);
printf(" b=%f,b=*%9.2f,b=%-9.2f*\n",b,b,b);
printf(" c=%c,c=%3s,c=%7.2s,c=%-5.3s"," string","
string",
" string"," string" );
}
第 3章 基本输入输出和顺序程序设计运行结果为:
a=45,a=45,a=55,a=2d
b=123.45600,b=*︺︺︺ 123.46,b=123.46︺︺︺ *
string,string,︺︺︺︺︺ st,str︺︺
注意:
(1) 除了 x,e,g外,其他格式字符都不能大写,如 %d一定不能写成 %D。
(2) 格式符 d可以用 I代替,这是因为 d和 I作为格式符用时,
两者作用是一致的第 3章 基本输入输出和顺序程序设计
(3)上面介绍的 d,o,x,u,c,f,e和 g如果前未加 %,可当成普通字符使用。
例如:
printf(" x=%fs,y=%fg",123.456,7.8954)
运行后结果为
x=123.456000s,y=7.895400g
(4)如果想输出 %,可用 %%来表示即可例如:
printf(" x=26%%" )
第 3章 基本输入输出和顺序程序设计运行结果为:
x=26%
(5) 在使用,%f”格式符输出实数时,并非全部数字都是有效数字。单精度实数的有效位数一般是 7位,双精度实数的有效位一般是 16位。
例如:已 知 双 精 度 类 型 的 两个变量
x=1111111111111.1111111,y=2222222222222.2222222,
那么这条语句,printf(" %f,%f",x,y);
运后结果为,3333333333333.333156
从这上面我们可以看出只有前面 16位是有效的,后面的数字在这里是没有意义的。
第 3章 基本输入输出和顺序程序设计
3.3.2 scanf(格式输入函数 )
函数功能:从键盘按照“格式控制字符串”中规定的格式输入若干个数据,按“变量地址表列”中变量的顺序,依次存入对应的变量中。
函数调用格式:
scanf("格式控制字符串",变量地址表列 )
格式控制字符串
1,它是由双引号括起来的字符串,和我们上面所讲的格式输出函数的“格式控制字符串”含义相同,其中的格式说明,也和格式输出函数的格式说明相类似,
都是以,%”开始。
第 3章 基本输入输出和顺序程序设计
2,变量地址表列变量地址是由地址运算符,&”后跟变量名所组成,各个变量地址之间用“,”分隔。
【 例 3.4】 格式输入函数使用,分别给整型变量 a,b,x,y赋值。
main()
{
int a,b,x,y;
scanf(" %d,%d,%d,%d",&a,&b,&x,&y);
printf(" a=%d,b=%d,x=%d,y=%d",a,b,x,y);
}
第 3章 基本输入输出和顺序程序设计运行时假设输入的是:
1,2,3,4
运行的结果为:
a=1,b=2,x=3,y=4
在以上这个程序中,&a,&b,&x,&y分别表示变量 a,变量 b,
变量 x,变量 y的地址。这个地址就是编译时系统在内存中给变量 a,变量 b,变量 x,变量 y分配的地址。关于地址的概念,在本书的第 8章会作详细介绍,这里大家只要了解就行了。
3.输入格式字符输入格式字符归纳为表 3.2所示第 3章 基本输入输出和顺序程序设计表 3.2格式字符的说明格式字符 说明
d,i 用来输入有符号的十进制整数
u 用来输入无符号的十进制整数
o 用来输入无符号的八进制整数
X,x 用来输入无符号的十六进制整数
c 用来输入单个字符
s 用来输入字符串,并将字符串送到一个字符数组中,
在输入时以非空格字符开始,遇到回车或空格字符就结束
f 用来输入实数,可以用小数形式或指数形式进行输入第 3章 基本输入输出和顺序程序设计
E,e,G,g 与 f作用相同,所以 e,f,g可以替换使用。
注意:
(1) 如果在“格式控制字符串”中除了格式说明符以外还有其他字符,则在输入数据时,在对应位置要输入与这些字符相同的字符。
例如:
① scanf(“%d,%d”,&a,&b);
则输入时应该这样进行输入;
7,8
7和 8之间的逗号,是与“格式控制字符串”里面的逗号相对应的。
第 3章 基本输入输出和顺序程序设计
② scanf(" %d %d",&a,%b);
则输入时应该这样进行输入;
7 8
7和 8之间的空格,可以是一个或多个,也可以用回车键来代替,它是与“格式控制字符串”里面的空格相对应的
③ scanf(" %d:%d",&a,%b);
则输入时应该这样进行输入;
7:8
7和 8之间的分号与“格式控制字符串”里面的分号相对应的第 3章 基本输入输出和顺序程序设计
④ scanf(" a=%d,b=%d",&a,&b);
则输入时应该这样进行输入;
a=7,b=8
(2) 可以指定数据所占的列度,系统会自动按它的大小来截取所需的数据。但不能像格式输出函数一样来规定输入时的精度,这样做是不合法的。
例如:
scanf(" %3d,%2d",&a,&b);
若输入:
45678
则系统会自动把 456赋给变量 a,78赋给变量 b。
第 3章 基本输入输出和顺序程序设计
(3) 输入数据时,遇到以下几种情况认为本数据输入结束。
遇到空格、回车或 Tab符;
取完指定的宽度,如上面所举,%3d”,只取了 3列;
遇到非法的输入等。
(4) 在使用,%c”格式输入字符时,空格字符和以前所讲的“转义字符”全部作有效字符输入。
例如:
① scanf(" %c%c%c",&x,&y,&z);
若输入,a b c
第 3章 基本输入输出和顺序程序设计则实际上在这个程序中,第一个字符‘ a?给了变量 x,而变量 y则得到字符‘ ’,字符‘ b?给了变量 z。这是因为一个 %c只能读入一个字符,后面的空格作为一个字符送给了变量 y。
② scanf(" %c%c%c",&x,&y,&z);
若输入,abc
那么就可以得到实际上,我们这个‘ a?在这里的话就被赋给了变量 x,同样的这里的‘ b?就赋给了变量 y,‘ c?就被赋给了变量 z。
③ 如果在格式控制字符串中加入空格作为间隔,则输入时各数据之间可加空格。
Scanf(" %c %c %c",&x,&y,&z);
第 3章 基本输入输出和顺序程序设计输入为,a b c 回车(在 a,b后各有一个空格),
这样做的后果就会实现实际上‘ a?给了变量 x,‘ b?就赋给了变量 y,‘ c?就被赋给了变量 z。
注意以上各种输入时的不同。
【 例 3,5】 格式输入函数使用举例。
main()
{
char c1,c2;
int n1,n2;
float f1,f2;
第 3章 基本输入输出和顺序程序设计
scanf(" %c,%c",&c1,&c2);
scanf(" %d,%d",&n1,&n2);
scanf(" %f,%f",&f1,&f2);
printf(" c1=%c,c2=%c\n",c1,c2);
printf(" n1=%d,n2=%d\n",n1,n2);
printf(" f1=%f,f2=%f\n",f1,f2);
}
运行时,若要使字符型变量 c1的值为‘ A?,字符型变量 c2的值为‘ B?,整型变量 n1的值为 123,整型变量 n2的值为 -123,单精度类型变量 f1的值为 4.56,单精度类型变量 f1的值为 -4.56,
那么在这个程序中应如下正确的输入。
第 3章 基本输入输出和顺序程序设计
AB
123,-123
4.56,-4.56
若根据此数据输入,程序运行后结果为:
c1=A,c2=B
n1=123,n2=-123,
f1=4.560000,f2=-4.5600
到这里我们就学会了一些基本的输入 /输出函数,其中前面所学的字符输入 /输出函数一定要包含头文件
,stdio.h”,“stdio.h”实际上的意思也就是标准输入 /输出头文件的意思。
第 3章 基本输入输出和顺序程序设计
3.4.1数学函数常用的数学函数有许多,它们的原型说明以及有关的信息均包含在一个头文件,math.h”中,所以我们只要在程序中如果要用到数学函数的时候,就应该在这对应的源文件中使用以下的文件包含命令:
#include <math.h>
也可以写成是:
#include " math.h"
下面,我们就这个数学函数来看几个例子。
3,4常用函数的使用第 3章 基本输入输出和顺序程序设计
【 例 3,6】 一些常用的数学函数使用举例。
#include <math.h>
main()
{
int a=-23,b=30;
float x=9,y=2.5,p=-12.3,q=12.3;
printf(" abs(%d)=%d\n",a,abs(a)); /*求整型数 a的绝对值 */
printf(“fabs(-6.8)=%f\n”,fabs(-6.8)) ; /*求实型数 -6.8的绝对值 */
printf(" sqrt(%.0f)=%f\n",x,sqrt(x)); /*求实型数 x的平方根值 */
printf(" %1f^3=%f\n",y,pow(y,3)); /*求 y的三次方 */
printf(" sin(%d)=%f\n",30,sin(b*3.14159/180));
第 3章 基本输入输出和顺序程序设计
/*求 30.0正弦值,函数的参数以弧度为单位 */
printf(“floor(%1f)=%f\n”,p,floor(p)); /*求不大于 p的最小值 */
printf(“floor(%1f)=%f\n”,q,floor(q)) ; /*求不大于 q的最小值 */}
如果这个程序运行后结果为:
abs(-23)=23
fabs(-6.8)=6.800000
sqrt(9)=3.000000
2.5^3=15.625000
sin(30)=0.500000
floor(-12.3)= -13.000000
floor(12.3)=12.000000
第 3章 基本输入输出和顺序程序设计注意,这里面真正起作用的是双引号后面使用的那个函数名,而在双引号里面出面的函数名只是相当于提示作用,作为普通字符来输出的,但没有实际用到。
【 例 3,7】 使用随机数函数出一道数值不超过百位的算术题。
#include <stdlib.h>
#include <math.h>
main()
{
int x,y;
randomize();
x=rand()%100; y=rand()%100;
第 3章 基本输入输出和顺序程序设计
printf(" %d+%d=\n",x,y);
}
运行后结果为(因为是随机产生的,这个程序运后大家的答案可能会不同):
13+87=
注意:
1,rand()是一个随机数函数,它返回的是一个只要是介于 0到 32767之间的整数。
2,只要程序中提及到要调用动态分配函数和随机数函数的话,要求就要在源文件夹中包含头文件,stdlib.h”。
3,初始化随机数函数 rnadomize()产生一个随机数的种子,使每次运行程序时所得到的随机数不同。
第 3章 基本输入输出和顺序程序设计
3.4.2字符处理函数常用的字符处理函数见附录 D,它们的原型说明用有关信息均包含在头文件,ctype.h”中,使用字符函数时,应该在源文件中使用以下的文件包含命令行:
#include <ctype.h>
#include " ctype.h"
1,isalpha(x):判断参数 x中存放的是否是英文字母,函数返回 1(真),否则返回 0(假)。
2,islower(x):判断参数 x中存放的是否小写字母( a~ z),
若是英文小写字母,返回 1(真),否则返回 0(假)
第 3章 基本输入输出和顺序程序设计
3,toupper(x):若参数 x中存放的字符是小写字母,将其转换成大写字母并返回,否则返回 x本身
4,toascii(x):将参数 x中存放的字符转换成对应的 ASCII
的值。
【 例 3,8】 字符函数的应用。
#include <stdio.h>
#include " ctype.h"
main()
{
char ch1,ch2,c,d;
int a,b;
第 3章 基本输入输出和顺序程序设计
ch1=getchar();
ch2=getchar();
/*判断参数 ch1中存放的是否是英文字母,函数返回 1
(真),否则返回 0(假) */
a=isalpha(ch1);
/*判断参数 ch2中存放的是否小写字母( a~z),若是英文小写字母,返回 1(真),否则返回 0(假) */
b=islower(ch2);
/*若参数 ch1中存放的字符是小写字母,将其转换成大写字母并返回,否则返回 ch1本身 */
第 3章 基本输入输出和顺序程序设计
c=toupper(ch1);
d=toascii(ch2); /* 将参数 ch2中存放的字符转换成对应的
ASCII的值 */
printf(" a=%d,b=%d,c=%c,d=%d\n" a,b,c,d);
}
运行时,如果输入:
ab
那么该程序的结果就如下:
a=1,b=1,c=A,d=98
第 3章 基本输入输出和顺序程序设计
3.4.3基本图形函数基本图形函数包括画点、画线及其他的一引起基本图形函数。它们均包括在头文件,graphics.h”中,使用图形函数时,应该在该源文件中使用以下的文件包含命令:
#include <graphics.h>
也可以写成是:
#include " graphics.h"
基本图形函数见表 3.5所示第 3章 基本输入输出和顺序程序设计函数名 函数原型 功能 返回值
putpixel (int x,int y,int color); 用指定的像素画一个按 color所指定的颜色的点
getpixel getpixel(int x,int y); 求当前点的颜色值 求当前点的颜色值
getmaxx int far getmaxx(); 求 x轴地最大值 x轴地最大值
getmaxy int far getmaxy(); 求 y轴地最大值 y轴地最大值
getx int far getx(); 功能是返回游标在 x轴地位置 游标在 x轴地位置
gety int far gety(); 功能是返回游标在 y轴地位置 游标在 y轴地位置
moveto int far moveto(int x,int
y);
移动游标到 (x,y)点,不是画点,在移动过程中不画点
moverel int far moverel(int
dx,int dy);
从现在的位置 (x,y)移动游标到
(x+dx,y+dy)的位置在移动过和中不画点
line line(int x1,int y1,int
x2,int y2);
画一条从点 (x1,y1到 (x2,y2)的直线
linerel linerel(int dx,int dy); 画一条从当前游标 (x,y)到相对增量点 (x+dx,y+dy)的直线
circle circle(inx,inty,int
radius);
以 (x,y)为圆心,以 radius为半,
画一个圆
3.5基本图形函数第 3章 基本输入输出和顺序程序设计
【 例 3,9】 图形函数的应用
#include <stdio.h>
#include <graphics.h.
main()
{
int gdriver,gmode;
gdriver=DETECT;
initgraph(&gdriver,&gmode," " ); /*图形初始化 */
setbkcolor(BLUE); /*设置背景色为蓝色 */
setcolor(RED); /*设置图形颜色为红色 */
第 3章 基本输入输出和顺序程序设计
line(2,3,6,9); /*画一红色的直线 */
getch();
colsegraph();
}
程序运行后,我们可以看到在屏幕上坐标为( 2,3)和
( 6,9)两点之间画出了一条红色的直线。
第 3章 基本输入输出和顺序程序设计顺序结构是最简单的一种程序结构。
【 例 3,10】 以下程序由终端输入两个整数给变量 x和
y,然后输出 x和 y,在交换 x和 y中的值后,再输出 x
和 y,验证两个变量中的数是否正确地进行了交换。
#include " stdio.h"
main()
{ int x,y,t; printf(" Enter x&y:\n" );
3.5顺序结构程序设计举例第 3章 基本输入输出和顺序程序设计
scanf(" %d,%d",&x,&y);
printf(" x=%d,y=%d",x,y);
t=x,x=y,y=t;
printf(" x=%d,y=%d",x,y);
}
以下是程序运行情况:
Enter x&y (由第 4行的 printf输出)
123,456 (从键盘输入两个整数,回车)
x=123,y=456 (由第 6行的 printf输出)
x=456,y=123 (由第 8行的 printf输出)
第 3章 基本输入输出和顺序程序设计
【 例 3,11】 从键盘输入一个小写字母,输出该字母及对应的 ASCII的值,然后将该字母转换成大写字母,并输出大写字母及对应的 ASCII的值。
源程序如下:
#include <stdio.h>
main()
{
char c1,c2;
c1=getchar();
第 3章 基本输入输出和顺序程序设计printf(" %c,%d\n",c1,c1);
c2=c1-32;
printf(" %c,%d\n",c2,c2);
}
程序运行情况如下:
a (输入 a后,回车)
a,97
A,65
【 例 3,12】 请输入圆半径 r,然后来求圆周长 length和圆面积 area。
源程序如下:
#define pi 3.1415926
main()
第 3章 基本输入输出和顺序程序设计
{
float r,length,area;
printf(" please enter r," );
scanf(" %f",&r);
length=2*pi*r; /*求圆周长 */
area=pi*r*r; /*求圆面积 */
printf(“length=%.2f\n”,length);
printf(" area=%.2f",area);
}
程序运行结果如下:
please enter r:
1.5 (输入 1.5后按回车)
第 3章 基本输入输出和顺序程序设计
length=9.42
area=7.69
【 例 3,13】 求一元二次方程 ax2+bx+c=0的根,其中 a,b、
c由键盘输入,并且假设 b2-4ac>0。源程序如下,
#include <math.h>
main()
{
float a,b,c,x1,x2,p,q;
scanf(" a=%f,b=%f,c=%f",&a,&b,&c)
p=-b/(2*a);
q=sqrt(b*b-4*a*c)/(2*a);
第 3章 基本输入输出和顺序程序设计
x1=p+q;
x2=p-q;
printf(" x1=%5.2f,x2=%5.2f\n",x1,x2);
}
程序运行输入:
a=1,b=3,c=2(回车)
结果为:
x= -1.00,x2= -2.00
第 3章 基本输入输出和顺序程序设计
3,C语言提供了各种各样的库函数。
1,从程序流程的角度来看,程序可以分为三种基本结构,
即顺序结构、选择结构和循环结构。
2,C语言程序没有提供专门的输入输出语句,所以所有的输入输出都是调用标准库函数中的输入输出函数来实现的。其中:
scanf和 getchar这两个函数都是输入函数,接收来自一般是键盘所输入的信息数据。
printf和 putchar这两个函数都是输出,一般是向显示器输出信息数据。
3.6小结