C语言复习第十七课
第十七课 ※主要内容 1 、格式字符及其功能 2 、用于输入的格式字符及其功能 ※主要知识点 1、一般格式 printf 格式控制,输出表列 例如printf id, chc\n”, i, ch; 说明 1 、“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信 息 ① 、格式说明由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。 ② 、普通字符,即需要原样输出的字符。 2 、“输出表列”是需要输出的一些数据,可以是表达式 3 、printf函数的一般形式可以表示为 printf 参数1,参数2, ,参数n 功能是将参数2〜参数n按参数1给定的格式输出 2、格式字符9种 1、d 或i格式符。用来输出十进制整数,有以下几种用法 ① 、d,按整型数据的实际长度输出。 ② 、%md, m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m, 则按实际位数输出。 ③ 、ldmld也可,输出长整型数据。 例如long a 123456; printfa; ⑵、。格式符,以八进制数形式输出整数。格式o, mo,lo, mlo都可。 ⑶、x或X格式符,以十六进制数形式输出整数。格式x, mx, lx, mlx都可。 4 、u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。格式%u, mu, lu 都可。 参见li4-3. c/*无符号数据的输出*/ ⑸、c格式符,用来输出一个字符。格式c, mc都可。 6 、s格式符,用来输出一个字符串。格式%s, ms, -ms, m. ns, -m. ns都可。 7 、f格式符,用来输出实数包括单、双精度,以小数形式输出。格式f, m. nf, -m. nf 都可。 注意单精度实数的有效位数一般为7位,双精度为16位。 8 、e 或E格式符,以指数形式输出实数。格式e, m. ne, -m. ne都可。 9 、g 或G格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式选择输 出时占宽度较小的一种。 3、说明 1 、除了 X、E、G 用大写字母表不夕卜,其他格式字符必须用小写字母; 2 、“格式控制”字符串内可以包含转义字符; 3 、如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个表示,如 printff”,1.0/3; 4 、格式字符表参见下表 表2 printf的附加格式说明字符 字符 1说明 字母1 用于长整型整冬可加在格式 符d、o x x、u前面 m(代表一个正整数) 数据最小宽度 n(代表一个正整数) 对实数,表示输出n位小数;对 字符串,表示截取的字符个数 - 输出的数字或字符在域内向左靠 练习题 一、选择题 1、有以下程序 includestdio. h void main int a二10, b二20, c30; printf d\n”,a二50, b*a, ca; 程序运行后输出结果是() A、 40B、 50 C、 600D、 80 2、有以下程序 includestdio. h void main 选用f格式中输出宽度较短的一种格式,不输出无意义的0 g, G 表1 printf格式字符 格式字符 以带符号的十进制形式输出整数(正数不输出符号) d, i 以八进制无符号形式输出整数(不输出前导符0) 以十六进制无符号形式输出整数(不输出前导符Ox),用x则输出十六进制 数的a〜f时以小写形式输出,用X时,则以大写字母输出 以无符号十进制形式输出整数 u 以字符形式输出,只输出一个字符 输出字符串 以小数形式输出单、双精度数,隐含输出6位小数 e, E 以指数形式输出实数 int x; X二x; printf ,zd\n,z, x; } 程序运行后输出结果是() A、1B、0C、编译出错D、不错定 3、有以下程序 includestdio. h void main int xl, y5, z;zxy;z; printf %d\n , z ;} 程序运行后输出结果是() A、1B、2C、5D、0 4、有以下程序 includestdio. h void main float xl, y5, z; z二xy; z; printf %d\n” , z ;} 程序运行后输出结果是() A、 2B、 5 c、编译程序指出,程序第5行有错D、编译程序指出,程序第5、6、8行有错 5、有以下程序 includestdio. h void main int x;x32768;printf %d\n”,x ;} 程序运行后输出结果是() A、-32768B、32768C、0C、编译出错 6、有以下程序 includestdio. h void main int m10;printf %d\n”,m*3/5} 程序运行后输出结果是() A、6B、5C、4D、7 7、有以下程序 includestdio. h void main int m10, n20;printf md\nnd\n”,m, n;} 程序运行后输出结果是() A、 1020B、 10 20C、 m10 n10D、 m10 n10 8、有以下程序 includestdio. h void main { int x, z;float y; printf 1020304050return\n,; scanf “%2d5f3d”,x,y,z; printf xd yf zd\n”,x, y, z; 程序运行后输入1020304050<回车〉,则输出结果是() A、 x10y20304z050 B、x10y20304.000000z050 C、x10y20304zWO D、x10y20304.000000z50 9、若有定义long x100000;,,,则正确输出x的值的语句是() A、printf xd” , x ;B、printf axldv , x; C、printf xf” , x