C4(输入输出)null第四章 C程序设计第四章 C程序设计4.1 C语句概述
C语句:以“;”作分隔符,编译后产生机器指令.
C语句分类
表达式语句:表达式加分号构成。空语句: ;程序控制语句(9种):如 total=total+limit;
a=3;
func( );
printf(“Hello,world!\n”);null复合语句:用 {…}括起来的一组语句
一般形式: { [数据说明部分;]
执...
null第四章 C程序
第四章 C程序设计4.1 C语句概述
C语句:以“;”作分隔符,编译后产生机器指令.
C语句分类
表达式语句:表达式加分号构成。空语句: ;程序控制语句(9种):如 total=total+limit;
a=3;
func( );
printf(“Hello,world!\n”);null复合语句:用 {…}括起来的一组语句
一般形式: { [数据说明部分;]
执行语句部分;
}
说明:
“}”后不加分号
语法上和单一语句相同
复合语句可嵌套数据输入与输出格式: putchar( c )
参数: c为字符常量、变量或表达式
功能:把字符c输出到显示器上
返值:正常,为显示的代码值;出错,为EOF(-1)数据输入与输出C语言无I/O语句,I/O操作由函数实现
#include
3.1 数据输出
字符输出函数null/*ch3_1.c*/
#include
main()
{ int c;
char a;
c=65; a='B';
putchar(c); putchar('\n'); putchar(a);
}运行结果:A
B例null格式:printf(“格式控制串”,输出表)
功能:按指定格式向显示器输出数据
返值:正常,返回输出字节数;出错,返回EOF(-1)格式输出函数输出表:要输出的数据(可以没有,多个时以“,”分隔)
格式控制串:包含两种信息
格式说明: %[修饰符]格式字符 ,用于指定输出格式
普通字符或转义序列:原样输出
格式字符
nullint a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.677890e+02567.789000567.789%说明
格式字符要用小写
格式字符与输出项个数应相同,按先后顺序一一对应
输出转换:格式字符与输出项类型不一致,自动按指定格式输出例 main()
{ unsigned int u=65535;
printf(”u=%d\n",u);
}
输出结果:u=-1例 int a=3,b=4;
printf(“%d %d\n”,a,b);
printf(“a=%d , b=%d\n”,a,b); 例 int a=3,b=4;
printf(“%d %d\n”,a,b);
printf(“a=%d , b=%d\n”,a,b);
输出结果: 3 4
a=3, b=4null附加格式说明符(修饰符)null例 int a=1234;
float f=123.456;
char ch=‘a’;
printf(“%8d,%2d\n”,a,a);
printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f);
printf(“%3c\n”,ch);运行 1234,1234
结果: 123.456000,123.456000, 123.5,123.46,1.23e+02
a例 static char a[]=“Hello,world!”
printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);运行结果:Hello,world!
Hello,world!
Hello
Hello
Hel 例 m.nnull例 int a=1234;
float f=123.456;
static char c[]=“Hello,world!”;
printf(“%8d,%-8d\n”,a,a);
printf(“%10.2f,%-10.1f\n”,f,f);
printf(“%10.5s,%-10.3s\n”,c,c);运行结果:1234,1234
123.46,123.5
Hello,Hel例 -null例 int a=1234;
float f=123.456;
printf(“%08d\n”,a);
printf(“%010.2f\n”,f);
printf(“%0+8d\n”,a);
printf(“%0+10.2f\n”,f); 例 0 、+例 int a=123;
printf(“%o,%#o,%X,%#X\n”,a,a,a,a);
例 #例 long a=65536;
printf(“%d,%8ld\n”,a, a);
例 l//00001234//0000123.46//000+1234//000+123.56//173,0173,7B,0X7B//0, 65536null格式:getchar( )
功能:从键盘读一字符
返值:正常,返回读取的代码值;出错,返回EOF(-1)3.2 数据输入
字符输入函数 例 /*ch3_4.c*/
#include
main()
{ int c;
printf("Enter a character:");
c=getchar();
printf("%c--->hex%x\n",c,c);
}运行结果:
Enter a character:A
A--->hex41null格式输入函数格式: scanf(“格式控制串”,地址表)
功能:按指定格式从键盘读入数据,存入地址表指定的
存储单元中,并按回车键结束
返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符&
格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a);
输入:10
则 a=10例 scanf(“%x”,&a);
输入:11
则 a=17null附加格式说明符(修饰符)例 scanf(“%4d%2d%2d”,&yy,&mm,&dd);
输入 19991015
则1999yy, 10 mm, 15 dd例 scanf(“%3d%*4d%f”,&k,&f);
输入 12345678765.43
则123k, 8765.43f例 scanf(“%2d%*3d%2d”,&a,&b);
输入 1234567
则12a, 67b例 scanf(“%3c%2c”,&c1,&c2);
输入 abcde
则‘a’c1, ‘d’ c2null输入分隔符的指定
一般以空格、TAB或回车键作为分隔符
其它字符做分隔符:格式串中两个格式符间字符例 scanf(“%d%o%x”,&a,&b,&c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
输入 123 123 123
输出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,&h,&m,&s);
输入 12:30:45
则12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b)
输入 3,4
则3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
输入 a=12,b=24,c=36 null说明:
用“%c”格式符时,空格和转义字符作为有效字符输入如 scanf(“%c%c%c”,&c1,&c2,&c3);
若输入abc
则ac1, c2, b c3输入数据时,遇以下情况认为该数据结束:
遇空格、TAB、或回车
遇宽度结束
遇非法输入如 scanf(“%d%c%f”,&a,&b,&c);
若输入1234a123o.26
则 1234 a, ‘a’ b, 123 c输入函数留下的“垃圾”:例 int x;
char ch;
scanf(“%d”,&x);
ch=getchar();
printf(“x=%d,ch=%d\n”,x,ch);
执行:123
输出:x=123,ch=10例 int x;
char ch;
scanf(“%d”,&x);
scanf(“%c”,&ch);
printf(“x=%d,ch=%d\n”,x,ch);
执行:123
输出:x=123,ch=10解决方法:
(1)用getchar()清除
(2)用函数fflush(stdin)清除全部剩余
(3) 用格式串中空格或“%*c”来“吃掉”例 int x;
char ch;
scanf(“%d”,&x);
scanf(“ %c”,&ch);
或 scanf(“%*c%c”,&ch);
null3.3 程序举例/*ch3_12.c*/
#include
#include
main()
{ float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}例 输入三角形边长,求面积输入:3,4,6
输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50
area= 5.33null例 从键盘输入大写字母,用小写字母输出/*ch3_13.c*/
#include "stdio.h"
main()
{ char c1,c2;
c1=getchar();
printf("%c,%d\n",c1,c1);
c2=c1+32;
printf("%c,%d\n",c2,c2);
}
输入:A
输出:A,65
a,97null/*ch3_14.c*/
#include
#include
main()
{ float a,b,c,disc,x1,x2,p,q;
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a); q=sqrt(disc)/(2*a);
x1=p+q; x2=p-q;
printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2);
}输入:a=1,b=3,c=2
输出:x1=-1.00
x2=-2.00
本文档为【C4(输入输出)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。