《顺序结构程序设计》由会员分享,可在线阅读,更多相关《顺序结构程序设计(6页珍藏版)》请在金锄头文库上搜索。
1、实验报告_实验3 顺序结构程序设计(学号_姓名)一、实验目的:1、熟悉赋值运算符的使用,能根据需要构建相应的赋值表达式,掌握两变量交换数据的方法;2、继续熟悉整数相除、取余运算及数据类型转换等内容,能实现四舍五入保留指定位小数的算法;3、熟悉常用数学函数的使用;4、通过样例加深对printf()常用格式控制符功能的理解,掌握printf()函数的使用;5、掌握scanf()函数的使用,能正确输入数据;6、掌握顺序结构程序设计的方法,能够画传统的流程图和N_S流程图。二、实验内容1、(基础题)编写程序,将10000秒转换成以“xx时xx分xx秒”格式输出。(提示:可考虑整数的/、%运算)#inc
2、ludeint main()int h,m,s,a;a=10000;h=10000/3600;m=10000%3600/60;s=10000%60;printf(%d时%d分?%d秒?n,h,m,s);return 0;2、(基础题)编程实现:先定义两个整数变量,然后输入两个值,再交换这两个变量的值,最后输出交换后的新值。如下图所示:问题:#includeint main()int a,b,temp;printf(inter a,b: );scanf(%d,%d,&a,&b);printf(交?换?前,?a=%d,b=%dn,a,b);temp=a;a=b;b=temp;printf(交?换?
3、后,?a=%d,b=%dn,a,b);return 0;(1) 语句组:a=b; b=a; 能交换a、b的值吗?不能(2) 若不能,如何改进?使用第三变量再进行交换操作(3)画出程序的传统流程图。3、(基础题)运行下列程序,体会printf()中“格式控制符”的用法,并回答相关问题:#include int main( )int k=1234;double f=12345.0123456789;char * p=China;printf (%d格式符:n);printf (%dn,k);printf (%6dn,k);printf (%06dn,k);printf (%2dnn,k);prin
4、tf (%f格式符:n);printf (%fn,f);printf (%lfn,f);printf (%15fn,f);printf (%15.4fn,f);printf (%-15fn,f);printf (%-15.4fn,f);printf (%.2fn,f);printf (%30.20fnn,f);printf (%e格式符:n);printf (%en,f);printf (%15en,f);printf (%15.4en,f);printf (%-15en,f);printf (%-15.4en,f);printf (%.2en,f);printf (%30.20enn,f);
5、printf (%s格式符:n);printf (%sn,p);printf (%10sn,p);printf (%-10snn,p);return 0;问题:请说明格式控制符%d、%f、%e、%s的基本用法。%d:用来输入有符号的十进制整数%f:用来输入实数,可以用小数形式或指数形式输入%e:与f作用相同%s:用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。4、(基础题)分析、运行下列程序,要让各变量得到对应的值:a=3, b=7, x=8.5, y=71.82, c1=A, c2=a。问键盘上该如何输入?并回答相关问题。#include int
6、main( )int a, b;float x, y;char c1,c2;scanf(a=%d,b=%d,&a,&b);scanf(%f%e,&x,&y);scanf(%c%c,&c1,&c2);printf(a=%d, b=%dn,a,b);printf(x=%f, y=%fn,x,y);printf(c1=%c,c2=%cnn,c1,c2);return 0;问题:(1) scanf()函数应如何书写?Scanf(格式控制,地址表列)(2) 输入不同类型数据时,应注意什么?1、 scanf函数中的”格式控制”后面应当是变量地址,而不是变量名;2、 如果再”格式控制字符串”中除了格式声明以
7、外还有其他字符,则在输入数据是在对应的位置上应输入与这些字符相同的字符;3、 在用%c格式 声明输入字符时,空格字符和转义字符中的字符都作为有效字符输入;4、 在输入数值数据时,如输入空格、回车、Tab键或遇非法字符认为该数据结束;5、(提高题)以下程序实现的功能是:输入一个double类型的数据,使该数保留两位小数,对第三位小数进行四舍五入处理,然后输出此数,查验处理是否正确。请根据注释和运行截图填充程序。程序代码:#include int main( )double x;printf(Enter x=);scanf(%lf,&x);printf(1) x=%f.原始数据n,x);print
8、f(2) x=%.2f.格式控制数据n,x);x=_;/x扩大100倍x=_;/x增加0.5x=_;/对x 取整后再赋值给xx=_;/x缩小100倍printf(3) x=%f.处理后数据n,x);return 0;程序运行截图:#include int main( )double x;printf(Enter x=);scanf(%lf,&x);printf(1) x=%f.原始数据n,x);printf(2) x=%.2f.格式控制数据n,x);x=x*100;/x扩大倍x=x+0.5;/x增加0.5x=(int)x;/对x 取整后再赋值给xx=x/100;/x缩小倍printf(3) x
9、=%f.处理后数据nn,x);return 0;6、(提高题)改错题:以下程序有多处错误,若按下列截图所示格式输入、输出数据,请在程序的相应位置上改正错误。程序代码:maindouble a, b, c, s, v ;printf(input a, b,c :n);scanf(%d %d %d,a, b,c);s=a*b;/*计算长方形面积*/v=a*b*c;/*计算长方体面积*/printf(%d %d %d,a, b,c);printf(s=%fn,s,v=%dn,v);运行截图:#include int main()double a, b, c, s, v ;printf(input a, b,c :);scanf(%lf%lf%lf,&a,&b,&c);s=a*b;/*计算长方形面积*/v=a*b*c;/*计算长方体面积*/printf(a=%f, b=%f, c=%fn,a, b,c);printf(s=%f, v=%fnn,s,v);return 0;