第3章 顺序结构程序设计

更新时间:2023-11-10 09:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三章 顺序结构程序设计

一、输出函数printf的使用

使用的格式:

printf(“输出格式串”,表达式表); /*printf要小写 */ 重点掌握输出格式符 ①?? 格式符:

%d 以普通整型输出(不可以写成%D)

%md 以普通整型输出,数据占m位,右对齐

%+md 以普通整型输出,数据占m位,右对齐(正数的前面有+号)

%-md 以普通整型输出,数据占m位,左对齐 %hd 以短整型输出 %ld(或%Ld) 以长整型输出

%u 以无符号整型输出 %o 以八进制形势输出 %x(或%X) 以十六进制形势输出

%f 以单精度小数形势输出,点后6位小数 %lf(或%Lf或%f) 以双精度小数形势输出, %±m.nf 以单精度小数形势输出,点后n位小数,且进行四舍五

%.nf 以单精度小数形势输出,点后n位小数,且进行四舍五入 %c 以字符形式输出 %s 以字符串形式输出

说明:以上的常用格式符必须和后面的变量一一对应,并且后面的 变量是什么类型前面就必须用相应的格式符 例:int a=-2;

unsigned int b=30; float c=3.1456;

printf(“%d%u%5.2f”,a,b,c); 问:输出结果是什么?(-230 3.15) ②普通字符

普通字符原样输出,它不控制变量的输出。

printf(“a=%d,b=%u,c=%5.2f”,a,b,c); 问:输出结果是什么? ③转义字符

\\n 回车且换行 \\r 回车但不换行 \\b 退一个字符

\\t 走一个制表位(8个字符) \\\\ 转译成\\

\\’ 转译成’ \\” 转译成” %% 转译成%

\\ddd 转译成1~3位八进制所对应的ascii码值所代表的字符 \\xdd 转译成1~2位十六进制所对应的ascii码值所代表的字符

二、输入函数scanf的使用

格式:scanf(“格式串”,变量地址列表);

重点掌握输入格式(有格式符和普通字符,没有转义字符) ①?? 格式符:

%d 以普通整型输入 %ld(%Ld) 以长整型输入 %hd 以短整形输入 %md 取整型的m位 %u 以无符号型输入 %o 以八进制输入 %x(%X) 以十六进制输入 %f 以单精度小数输入 %lf(%Lf) 以双精度小数输入 %mf 以单精度小数输入

(但是不能规定它的精度。如:%5.2f ) %c 以字符型输入 %s 以字符串型输入 如:int a;

float b; double c; long d;

scanf(“%d%f%lf%ld”,&a,&b,&c,&d); 假设让 a=23,b=2.6,c=12.66,d=12345 问:在键盘上应如何输入?

②普通字符

普通字符不影响输入,只是在输入时原样打上就 行 如:把上例改为:

scanf(a=%d,b=%f,c=%lf,d=%ld);那么应该如何输入? ③关于混合输入问题

如:假设让a=23,b=’k’,c=12.5,d=’p’

scanf(“%d%c%f%c”,&a,&b,&c,&d);问:如何输入? (23k 12.5p或23k12.5p) ④关于跳过某个输入项的问题 如:scanf(“%d%*d%f”,&x,&y); 假设输入如下:20 30 2.5回车 问:x=? (20) y=?(2.5) ⑤按照给定的长度输入

如:scanf(“=-”,&x,&y); 假设输入如下:2345678回车

问:x=? (234) y=? (56)

三、字符输出函数 putchar()

.putchar函数(字符输出函数)

作用:putchar()函数的作用是向终端输出一个字符。 格式: putchar(c) ;

说明:它输出字符变量C的值。C可以是字符型变量或整型变量。

也可以输出控制字符,如putchar(?\\n')输出一个换行符,使输出的当前位置移到下一行的开头。也可以输出其他转义字符,如:

putchar('\\101') (输出字符'A?)

putchar(?\\? ?) (输出单引号字符 ?)

putchar('\\015') (输出回车,不换行,使输出的当前位置移到本行开头)

四、字符输入函数 getchar()

getchar函数(字符输入函数)

作用:此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。getchar函数没有参数。

格式: getchar()

说明:函数的返回值就是从输入设备得到的字符。

五、综合实例

例1:从键盘输入两个两位的正整数,第一个数的十位作为千位,个位作为十位;第二个数的十位作为百位,个位作为个位,组成一个新的数输出。 #include”stdio.h” main() {int a,b,c;

scanf(“%d%d”,&a,&b);

c=a/10*1000+b/10*100+a*10+b; printf(“\\nc=%d”,c); }

例2:从键盘输入两个数,然后把这两个数交换并输出 #include”stdio.h” main() {int a,b,t;

scanf(“%d%d”,&a,&b); t=a;a=b;b=t;;

printf(“\\n%d,%d”,a,b); }

例3:输入一个double型数,保留两位小数,第三位小数进行四舍五入,然后输出。

#include”stdio.h” main()

{double x,y;

scanf(“%lf”,&x);

y=(int)(x*100+0.5)/100.0; printf(“\\ny=%.2f”,y);

练习题

一、 单项选择题

1. 设a=3,b=4, 执行“printf(“%d,%d,(a,b),(b,a));”的输出是( )。 A. 3,4 B. 4,3 C. 3,3 D. 4,4

2. 设a=1234,b=12,c=34 执行“printf(“|==%-3d|\\n”,a,b,c); ”的输出是( )。 A.|1234??1234??| B.|123??1234??| C.|1234??12-34| D. |234??1234??| 3.使用“scanf(“x=%f,y=%f”,&x,&y);”,要使x,y均为1.25,正确的输入是( )。 A. 1.25,1.25 B. 1.25??1.25 C. x=1.25,y=1.25 D. x=1.25?? y=1.25 4.要使double x; long a; 获得数据,正确的输入语句是( )。 A. scanf(“%d,%f”,&a,&x); B. scanf(“%f,%ld”,&x,&a); C. scanf(“%d,%lf”,&a,&x); D. scanf(“%ld,%lf”,a,x); 5.要使double x; long a; 的数据能正确的输出,输出语句应是( )。 A. printf(“%d,%f”,a,x); B. printf(“%d,%lf”,a,x); C. scanf(“%ld,%lf”,&a,&x); D. printf(“%ld,%f”,a,x); 6.设有int a=255,b=8;则printf(“%x,%o\\n”,a,b);的输出的是( )。 A. 255,8 B. ff,10 C. 0xff,010 D. 输出格式错 7.设有int i=010,j=10;则printf(“%d,%d\\n”,++i,j--);的输出的是( )。 A. 11,10 B. 9,10 C. 010,9 D. 10,9

8.设a、b为字符型变量,执行“scanf(“a=%c,b=%c”,&a,&b);”后使a为?A?,b为?B?,从键盘上的正确输入是( )。 A. ?A??B? B. ?A?,?B? C. A=A,B=B D. a=A,b=B 9.设x,t均为int型变量,则执行以下语句后,t的值为( )。 x=10; t=x&&x>10; A. 不定值 B. 10 C. 1 D. 0 10.设x,y,z,t均为int型变量,则执行以下语句后,t的值为( )。 x=y=z=1; t=++x||++y&&++z; A. 不定值 B. 2 C. 1 D. 0 二、填空题

1、若有说明int x=10,y=20;请写出下面各printf语句对应的输出结果。 ①printf(\; ____ ②printf(\; ____ ③printf(\; ____

④printf(\; ____

2、已有定义int m; float n,k; char ch1,ch2;,为使m=3, n=6.5, k=12.6, ch1='a', ch2='A',对应

的scanf语句是___________________,输入数据的方式是___________。

3、已有定义int a,b; float k;,为将-10赋给a,将12赋给b,410.34赋给k;则对应以下scanf语句

的数据输入形式是________。 4、以下程序的输出结果为____

main( ) {

int x,y,z=246; x=z/100%9; y=(-1)&&(-1);

printf(\; }

三、程序设计题

1. 编一个程序,输入华氏温度(F),按下列公式计算并输出对应的摄氏温度(C): C=5(F-32)/9

2. 已知三角形的三边长,求其面积。

3. 设圆半径r,圆柱高h,求圆周长、圆面积、圆柱体积。用scanf输入数据,输出计算结果,输出时取小数点后两位数字。

4.求方程 ax2

的根。

+ bx + c = 0

本文来源:https://www.bwwdw.com/article/b1zv.html

Top