C程序设计 主讲教师:汪闽 南京师范大学 地图学与地理信息系统04级 专业选修课
C程序设计 南京师范大学 地图学与地理信息系统04级 专业选修课 主讲教师: 汪闽
第三章顺序结构设计 3.1C语言的语旬 3.2数据输出 3.3数据输入
3.2 数据输出 3.3 数据输入 第三章 顺序结构设计 3.1 C语言的语句
31c语言的语句 C语句:以“;"作分隔符,编译后产生机器指令. C语句分类 表达式语句:表达式加分号构成。 如tota- total+ climit; 支「f()~ese a=3 switch func() for(" printf("Hello, world! n)谐环|whe() do-while() continue break 辅助控制 go return
3.1 C语言的语句 C语句:以“;”作分隔符,编译后产生机器指令. C语句分类 表达式语句:表达式加分号构成。 空语句: ; 程序控制语句(9种): if( )~else~ switch for( )~ while( )~ do~while( ) continue break goto return 分支 循环 辅助控制 如 total=total+limit; a=3; func( ); printf(“Hello,world!\n”);
复合语句 用{}括起来的一组语句 般形式:{[数据说明部分;] 执行语句部分; 说明: 》“}后不加分号 》语法上和单一语句相同 》复合语句可嵌套
• :用 {…}括起来的一组语句 – 一般形式: { [数据说明部分;] 执行语句部分; } – 说明: »“}”后不加分号 »语法上和单一语句相同 »复合语句可嵌套 复合语句
32数据输出 ◆C语言无JO语句,ⅣO操作由函数实现 ◆# include 321字符输出函数 格式: tchar(c) 参数:c为字符常量、变量或表达式 功能:把字符c输出到显示器上 返值:正常,为显示的代码值;出错,为EOF(-1)
3.2 数据输出 格式: putchar( c ) 参数: c为字符常量、变量或表达式 功能:把字符c输出到显示器上 返值:正常,为显示的代码值;出错,为EOF(-1) ◆ C语言无I/O语句,I/O操作由函数实现 3.2.1字符输出函数 ◆ #include
322格式输出函数 格式: printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1) 1)输出表:要输出的数据(可以没有,多个时以 “;”分隔) 2)格式控制串:包含两种信息 格式说明:%[修饰符格式字符,用于指定输出 格式 普通字符或转义序列:原样输出
格式:printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1) 1) 输出表:要输出的数据(可以没有,多个时以 “,”分隔) 2) 格式控制串:包含两种信息 格式说明: %[修饰符]格式字符 ,用于指定输出 格式 普通字符或转义序列:原样输出 3.2.2 格式输出函数
续格式字符串 di+进制整数 int a=567: printf("%od, a) 567 xX|+六进制无符号整数inta=255 printf((%x2a f o八进制无符号整数inta=65 printf(%o02 101 u不带符号十进制整数mta=567:prit(%ra) 567 单一字符 char a=65: printf("%oc", a) A csIf 字符串 printf(%s”,ABC”) ABC eE指数形式浮点小数 float a=567.789prit(e°a 5.677890e+02 数形式浮点小数 float a=567.789 printf( %f, a) 567.789000 e和仲较短一种1oa56779g 567.789 %‖百分号本身 printf(%% 说明 格式字符一般要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 格式字符与输出项类型不一致,自动按指定格式输出
d,i x,X o u c s e,E f g %% 十六进制无符号整数 不带符号十进制整数 十进制整数 指数形式浮点小数 单一字符 字符串 八进制无符号整数 小数形式浮点小数 e和f中较短一种 百分号本身 int 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(“%%”); 567 ff 101 567 A ABC 5.677890e+02 567.789000 567.789 % 说明 格式字符一般要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致,自动按指定格式输出 …续格式字符串
附加格式说明符(修饰符) 续格式字符串 修饰符 能 m 输出数据域宽,数据长度Ⅷ,左补空格;否则按实际输出 对实数指定小数点后位数(四舍五入) n 对字符串,指定实际输出位数 输出数据在域内左对齐(缺省右对齐) 指定在有符号数的正数前显示正号(+) 0# 输出数值时指定左面不使用的空位置自动填0 在八进制和十六进制数前显示前导0.0x 在d,ox,u前,指定输出精度为long型 在efg前,指定输出精度为dobl型
.n 对实数,指定小数点后位数(四舍五入) 修饰符 功 能 m 输出数据域宽,数据长度<m,左补空格;否则按实际输出 输出数据在域内左对齐(缺省右对齐) - 指定在有符号数的正数前显示正号(+) + 输出数值时指定左面不使用的空位置自动填0 0 # 在八进制和十六进制数前显示前导0,0x 在d,o,x,u前,指定输出精度为long型 在e,f,g前,指定输出精度为double型 l 附加格式说明符(修饰符) 对字符串,指定实际输出位数 …续格式字符串
例0、+ 例inta=1234: float f123 456 printf("%08dn, a);/100001234 printf(010.2fn,f);/000012346 printf+08dm;a);/+000234 例# printf(+010.2fn:,f)/+000123.56 例inta=123 printf("%0,%+#0, %.,%#Xn, a, a, a, a) /173.0173.7B0X7B 00000000000000010000000000000000 例1 例 long a=65536; printf( %d, %8ldn, a, a); /)0.-065536
例 int a=1234; float f=123.456; printf(“%08d\n”,a); printf(“%010.2f\n”,f); printf(“%+08d\n”,a); printf(“%+010.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 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 //00001234 //0000123.46 //+0001234 //+000123.56 //173,0173,7B,0X7B //0, •••65536 例
33数据输入 331字符输入函数 格式: getchar() 功能:从键盘读一字符 返值:正常,返回读取的代码值;出错,返回EOF(-1) /*Ch34.C* #include maino 运行结果: d int Ci Enter a character AJ printf("Enter a character: );A--->hex41 c=getchar o; printf("%C >hexoxn"C,c)
3.3 数据输入 格式:getchar( ) 功能:从键盘读一字符 返值:正常,返回读取的代码值;出错,返回EOF(-1) 3.3.1 字符输入函数 例 /*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--->hex41