main() { char a,b,c; a='n'; b='e';46
c='w';
printf(\"%c%c%c\\n\ printf(\"%c\%c\%c\\n\ printf(\"%c\\n%c\\n%c\\n\ }
运行情况如下:
②输出项表。
输出项表中可以有多个输出项,各项之间用逗号分隔。
2.Printf()函数在使用时要注意以下几点:
(a)
Printf()函数可以输出常量、变量和表达式的值。但
格式控制中的
格式说明符必须按从左到右的顺序,与输出项表中的每个数据一一对应,
47
否则会出错。
(b)类型转换字符紧跟在“%”后面时作为类型转换字符,否则将作为普通字符处理
(即原样输出)
。
例如:
printf(“c=%c,f=%f\\n”,c,f)
中的第一个c和f都是普通字符。
三、数据输入函数(scanf)
格式输入函数scanf()的功能是用来从外部输入设备(通常是键盘),向程序中的变量输入一个或多个任意类型的数据。
1.scanf()函数的一般调用形式为: scanf(“格式控制”,输入项表); 例如: scanf(“%d%f”,&x,&y); 说明: ①格式控制。
格式控制的两边必须用引号,其中的内容可以由格式说明符和普通字符组成。
(a)普通字符。例如:
普通字符在输入数据时,必须在对应位置上原样输入这些字符。
scanf(“character:%c,real:%f”,&x,&y);
函数中的:“character:”、“real:”和“,”都是普通字符,则在实际运行时输入:
48
character:w,real:12.5 ↙ (b)格式说明符。
scanf()中的格式说明符的使用与printf()函数相似,
必须用%开头后面跟一个字母(也可在其中间增加附加字符),它规定了输入项对应的输入数据格式。同样格式说明符要在个数和类型上与输入项相匹配。 scanf()函数常用的格式说明符及附加字符见下表:
scanf()函数格式说明符
格式说明符 输 入 内 容 %d %o %x %c %s %f %e 十进制整数 八进制整数 十六进制整数 单个字符 输入一个字符串,输入时以非空白字符开始,以第一个空白字符结束。(字符串送到一个字符数组中) 实数。可以用小数形式或指数形式输入 同%f,e与f可以相互替换 scanf()函数附加格式说明符
附加说明字符 l h 域宽m *
49
说 明 用于输入长型数据:%ld,%lo,%lx等 用于输入短整型数据:%hd等 指定输入数据所占的列数 表示本输入数据在读入后不赋给相应的变量 ②输入项表。
输入项表中是要输入数据的变量的存储单元地址。“&”是地址运算符,
“&x”表示变量x在内存中的地址。
2.scanf函数在使用时,从键盘输入数据要注意以下几点:
(a)scanf函数没有计算功能,因此输入的数据只能是常量,而不可以是表达式。 例如: scanf(“%d%d%d”,&x,&y,&z);
表示要输入3 个十进制整数,可按以下方式输入:
12 34 56 ↙ 或 12 ↙
34 56 ↙
例如: scanf(“%c%c”,&c1,&c2);
表示要输入两个字符型数据,按以下方式输入:
ab ↙
则字符a符给变量c1,字符b符给变量c2。
(b)输入格式中,除格式说明符之外的普通字符应原样输入。
50
例如:
scanf(“x=%d,y=%d,z=%d”,&x,&y,&z);
应使用以下形式输入:
x=12,y=34,z=56 ↙
(c)如果指定了输入数据的宽度,系统则自动按它截取所需的数据。
例如:scanf(“%4d%4d%4d”,&x,&y,&z); 输入: 123434565678↙
则系统自动将1234赋予x,将3456赋予y,将5678赋予z。 注意:在输入实数时,不能规定小数位。
例如: scanf(“%6.2f”,&x);
//是错误的。
(d)在%后面使用“*”附加符,表示跳过它相应的数据。
例如:scanf(“%4d,%*4d%4d”,&x,&y); 输入: 1234,3456,5678 ↙
则系统将1234赋给x,将5678赋给y,而第2个数据“3456”被跳过不赋给任何变量。
(e)由于scanf()函数本身不具有显示
51
提示信息功能,为改善人—机交互性,在设计输入操作时,一般先用printf()函数输出一个提示信息,然后再用scanf()函数进行数据输入。 例如:
printf(“Enter width and height:”) scanf(“%f,%f”,&width,&height) 四.单个字符输出(putchar)函数
putchar()函数的功能是用于将一个字符输出到显示器上显示。 putchar()函数的一般调用形式为:
putchar(c);
即把变量c的值输出到显示器上,这里的c 可以是字符型或整型变量,也可以是一个转义字符。
例3_4:putchar()函数应用举例 #include void main() { char a,b,c,d;52
a='g'; b='o'; c=111; d='d'; putchar(a); putchar(b); putchar(c); putchar(d); }
运行情况如下:
good
说明:putchar()函数只能用于单个字符的输出,并且一次只能输出一个字符。
五.单个字符输入(getchar和getch)函数(1)getchar()函数
getchar()函数的一般调用形式为:
53
c= getchar();
例3_5 :getchar()函数应用举例 #include void main() { char c;c=getchar();
/*接收用户从键盘上输入的一个字符*/
putchar(c); }
运行情况如下: h ↙ h
/*输出字符变量c的值*/
说明:getchar()函数只能用于单个字符的输入,且一次只能输入一个字符
(2)getch()函数
getch()函数与getchar()函数功能相似,也是用来实现接收从键盘输入一个字符。其区别在于:使用getchar()函数输入字符时,需要使用回车键确认输入,而getch()函数则不必使用回车键确认输入,只需输入字符即可。
getch()函数的一般调用形式为:
54
c= getch(); 或
getch();
/*用于等待用户从键盘输入任意键返回。*/
说明:getch()函数在使用时要在预定义中包含头文件:conio.h 例3_6:应用举例 #include void main(){ char c1='H',c2='\\55',c3='h'; char c4='\\115'; char c5='a'; putchar(c1); putchar(c2); putchar(c3); printf(\"\\n\");
55
putchar(c4); putchar(c5); putchar('k'); printf(\"\\n\"); } 运行结果: H-h Mak
五.复合语句和空语句 1.复合语句 2.空语句 (自学)
56
3.3顺序结构程序设计举例
例3_7:编程实现输入某个三角形的底和高,计算其面积。 #include void main(){ float w,h,area;
printf(\"Enter width and height:\"); scanf(\"%f,%f\ area=w*h/2.0;
printf(\"The area is :%f\\n\}
运行结果为:
Enter width and height:2.5,4↙ The area is :5.000000
57
例3.8 实现两个数据的交换,并进行验证。 #include main() { int x,y,t;printf(\"Enter x & y :\\n\"); scanf(\"%d %d\ printf(\"x=%d y=%d\\n\ t=x;x=y;y=t;
printf(\"x=%d y=%d\\n\}
例3.9输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入。 #include main()58
{ double x;
printf(\"Enter x: \"); scanf(\"%lf\ printf(\"(1) x=%f\\n\ x=x*100; x=x+0.5; x=(int)x; x=x/100;
printf(\"(2) x=%f\\n\}
例3.10某商场营业员工资的计算方法是:每月300元的基本工资加总销售额的8.5%提成。要求编一程序,输入某营业员的月总销售额,计算并显示该营业员的月收入。 问题分析:
59
设总销售额为m ,月收入为 salary 则:salary=300+m*8.5% #include main(){ float m,salary;
printf(\"please input the total sales :\"); scanf(\"%f\
salary=300+m*0.085;
printf(\"the salary is %f:\\n\} 作业:
60