1、C语言程序设计语言程序设计第第2章章 顺序结构顺序结构本章要点本章要点:第一节 语句第二节 数据输出第三节 数据输入 第一节第一节 语句语句一、表达式语句一、表达式语句 在赋值表达式的尾部加上一个“;”号,就构成了表达式语句,也称为赋值语句。以下是几点说明:1赋值语句必须在最后出现分号,分号是语句中必不可少的部分,如“x+=10”是表达式,“x+=10;”是赋值语句。2任何赋值表达式都可以加上分号而称为赋值语句。3赋值语句是一种可执行语句,应当出现在函数的可执行部分。重点提示:重点提示:分号是赋值语句中必不可少的部分,若没有分号,则只是一个赋值表达式而已。二、空语句二、空语句 只有一个分号构成
2、的语句称为“空语句”。如;就是一个空语句。空语句在执行时不产生任何动作,但并不表示空语句没有用途。一般空语句可以用在循环体内对程序起“延时”作用。如:for(i=1;im,则m自动取n值,即保证n个字符正常输出。如:字符串输出示例 main()printf(“%3s,%6.3s,%.2s,%-5.4sn”,“Hello”,“Hello”,“Hello”,“Hello”);程序运行结果为:Hello,Hel,He,Hell表2.1 输出格式字符及其功能说明格式字符格式字符说说 明明c输出一个字符输出一个字符d或或i输出带符号的十进制整数输出带符号的十进制整数o以八进制无符号形式输出整形数(不带前
3、导以八进制无符号形式输出整形数(不带前导0)x或或X以十六进制无符号形式输出整形数(不带前导),以十六进制无符号形式输出整形数(不带前导),x输出小写字母,输出小写字母,X输出大写字母输出大写字母u按无符号的十进制形式输出整型数按无符号的十进制形式输出整型数f以带小数点的形式输出单精度和双精度数以带小数点的形式输出单精度和双精度数E或或e以以-m.dde(或或E)xx的指数形式输出浮点数。的指数形式输出浮点数。d的个数由精度指定,的个数由精度指定,精度为精度为0时小数部分不输出时小数部分不输出G或或g由系统决定采用由系统决定采用%f格式还是采用格式还是采用%e格式,以使输出宽度最小格式,以使输
4、出宽度最小s输出字符串中的字符,直到遇到输出字符串中的字符,直到遇到“0”。或者输出由精度指定的字符。或者输出由精度指定的字符数数p输出变量的内存地址输出变量的内存地址%打印一个打印一个%2附加格式字符附加格式字符在%和上述格式字符之间可以插入以下几种附加符号,如下所示。表3.2 输出常用附加格式字符附加字符功能说明m(m为一正整数)规定输出数据的最小宽度为m位.n(n为一正整数)对实数,表示输出的实数保留n位小数,对字符串,表示截取字符串的前n个字符使输出的数据在域内向左靠齐,省略“”时,向右靠齐3长度修饰符长度修饰符长度修饰符加在%和格式字符之间,对于长整型一定要加l(long),h可用于
5、短整型(short)或无符号短整形数的输出。如printf(“%ld,n”,a);4转义字符可以在printf函数中的“格式控制”部分使用“转义字符”,如“n”、“b”、“f”、“t”、“r”、“344”等。重点提示重点提示:如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示。三、三、调用调用printf函数时的函数时的注意事项注意事项1在格式控制字符串中,格式说明与输出项从左到右在类型上必须一一对应匹配。例如:printf(x=%f,c=%d,x,c);中的x与%f对应,c与%d对应。2在格式控制串中,格式说明与输出项的个数应相同,若格式说明少于输出项,则多余的输出项不输出,
6、相反,对于多余的格式将输出不定值。3在格式控制串中,可以包含任意的合法字符(包括转义字符)。4输出项序列中可以是变量、常量或表达式。如果输出项是表达式时,则printf函数将先对其进行运算,然后输出它的运算结果。如:main()printf(x=%f,3*4.8+9/4-sqrt(2.0);输出结果为:x=32784.4000005printf函数允许没有输出项序列部分。它表示输出一个字符串。此时printf函数成为如下格式:printf(输出字符串);例如:printf(Please input a number:);则输出:Please input a number:6printf函数的返
7、回值通常是本次调用中输出字符的个数。重点提示重点提示:格式说明与输出项从左到右在类型上、个数上都必须一一对应匹配。第三节第三节 数据输入数据输入一、一、scanf函数的一般调用格式函数的一般调用格式scanf()函数的一般形式为:scanf(“格式控制”,输入项表)“格式控制”的含义同printf函数;“输入项地址序列”是由若干个变量地址(变量前加号)组成的序列,各地址按排次序依次接收转换格式后的读入数据。例如:main()int a,b;scanf(%d%d,&a,&b);printf(%d,%dn,a,b);程序运行结果为:123 456123,456重点提示重点提示:输入项地址序列中的变
8、量前需要加取地址符号”&”。二、scanf函数中常用的格式说明在格式控制部分一般只包含“格式说明符”这一项内容。和printf函数中的格式说明符相似,以%开始,以一个格式字符结束,中间可以插入附加的字符。1scanf常用的格式字符。表3.3列出scanf函数常用的格式字符及其功能说明。表2.3 scanf格式字符格式字符功能说明d以带符号的十进制形式输入整数正数u以无符号十进制形式输入整数o以八进制无符号形式输入整数x以十六进制无符号形式输入整数f以小数形式或指数形式输入实数c输入单一字符s输入一个字符串2附加格式字符。表3.3列出scanf函数的附加格式字符及其功能说明。表2.4 scanf
9、常用附加字符格式字符功能说明l用于输入长整型数据(用%ld,%lo,%lx)以及double型数据(用%lf或%le)h用于输入短整型数据(用%hd,%ho,%hx)m(m表示一个正整数)用于指定输入数据所占宽度(列数)为m*表示该输入项在读入后不赋给相应的变量3几点说明(1)可以指定输入数据所占列数,系统自动按它截取所需数据。(2)标准C在scanf()函数中不使用u说明符,对unsigned型数据,以%d,%o,%x输入。(3)在输入时若想跳过某个数据,可在%后加一个相应的“*”。(4)输入数据时不能规定精度,如scanf(“%5.2d”,&x)是不合法的。重点提示:重点提示:scanf函
10、数输入的数据不能规定精度。三、通过三、通过scanf函数从键盘输入数据函数从键盘输入数据通过scanf函数从键盘输入数据时,需要注意以下几点:1scanf函数中的输入项必须是“地址量”,它可以是一个变量的地址,也可以是数组的首地址,但不能是变量名。例如,如果定义了a,b为整型变量,则scanf(“%d,%d”,a,b);是不合法的,应将“a,b”改为“&a,&b”。请读者予以注意,这是初学者易出错的地方。2输入数据时,各个数据之间可以用空格“”或Tab键或回车键作为间隔符。3除了空格、Tab键和回车键外,用户还可以自己指定其他字符作为输入间隔。需要注意的是,如果在“格式控制”字符串中除了格式说
11、明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。例如,对应语句:scanf(“%d,%d,%d”,&a,&b);输入方式应为:1,3 注意1后面是逗号,它与scanf函数中的“格式控制”中的逗号对应,若输入时不用逗号,而用空格或回车键等字符就不对。4特别需要注意的是,在使用格式说明符%c输入一个字符时,凡是从键盘输入的字符,包括空格、回车等均被作为有效字符接收。例如对语句:scanf(“%c%c”,&c1,&c2);若输入:a b原意图是把字符a赋给c1,b赋给c2,而结果却是把赋给了c2。因为%c只要求读入一个字符,后面不需要用空格作为两个字符间隔,因此作为下一个字符赋给c2。
12、5在输入数据时,遇以下情况时该数据认为结束:遇空格、Tab键,或回车键。按指定的宽度结束,如“%4d”,只取4列。遇非法输入。重点提示重点提示:scanf函数中的输入项必须是“地址量”,它可以是一个变量的地址,也可以是数组的首地址,但不能是变量名。1、书籍是朋友,虽然没有热情,但是非常忠实。2022年11月10日星期四2022-11-102022-11-102022-11-102、科学的灵感,决不是坐等可以等来的。如果说,科学上的发现有什么偶然的机遇的话,那么这种偶然的机遇只能给那些学有素养的人,给那些善于独立思考的人,给那些具有锲而不舍的人。2022年11月2022-11-102022-11-102022-11-1011/10/20223、书籍通过心灵观察世界的窗口.住宅里没有书,犹如房间里没有窗户。2022-11-102022-11-10November 10,20224、享受阅读快乐,提高生活质量。2022-11-102022-11-102022-11-102022-11-10 谢谢观赏谢谢观赏 You made my day!You made my day!我们,还在我们,还在路路上上