上机实验三 顺序结构程序设计.doc_第1页
上机实验三 顺序结构程序设计.doc_第2页
上机实验三 顺序结构程序设计.doc_第3页
上机实验三 顺序结构程序设计.doc_第4页
上机实验三 顺序结构程序设计.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上机实验三 顺序结构程序设计学号:姓名:一目的要求 掌握顺序结构程序的组成部分表达式语句和函数调用语句。 掌握格式输入输出scanf()函数、printf()函数的调用语法;整型、实型、字符型数据的输入输出格式。 掌握字符输入输出函数getchar()、putchar()函数的调用语法。 能够编写简单顺序结构的程序。二实验内容思考问题: scanf()与printf()的格式控制串在用法上有什么区别?scanf()与printf()中不同数据类型对应的格式说明符是怎样的?2.1 基础题【实验题1】请将下列源程序填写完整。#include void main() int a,b;float x,y;double r,s;scanf( , , );/* line 6: 输入a,b的值 */scanf( , , );/* line 7: 输入x,y的值 */scanf( , , );/* line 8: 输入r,s的值 */printf(a=%d, b=%dn,a,b);/* line 9 */ printf(x=%f, y=%fn,x,y); /* line 10 */ printf(r=%f, s=%fn,r,s);/* line 11 */编译、连接并运行程序,分三行输入以下内容:12 345.6789 -7.823712.4592 2.191768则输出结果显示为:如将标有/* line 9 */、/* line 10 */、/* line 11 */的三个语句分别改写为:printf(a=%5d, b=%5dn, a,b); printf(x=%.2f, y=%.2fn,x,y); printf(r=%8.f, s=%8.fn, r,s); 重新编译、连接并运行,输入内容同上,则输出结果显示为:思考题位于%与字母d或f之间加入的数字起什么作用?其中,%5d中的5:%.2f中的2:%8.f中的8:【实验题2】程序填空:求100200之间奇数之和,输出求和的结果。思路1:对每一个数字1,2,3,4,5,99,100判断奇偶性,如果是奇数累加到sum中,源程序如下。#include void main()int i,sum;sum= ;for(i= ; i= ; i+)if( )sum= sum+i; /*如果i是奇数,累加至sum*/printf(sum=%dn,sum);编译、连接并运行程序,输出结果是:思路2:直接将101,103,105,,199等奇数累加到sum中。那么,循环变量i的值应如何改变?#includevoid main()int i,sum;sum= ;for(i= ; i= ; i ) /*将101199之间所有的奇数累加至sum*/sum= sum+i;printf(sum=%dn,sum);编译、连接并运行程序,输出的结果为:【实验题3】程序填空:输入正整数n,求多项式的前n项之和,输出时保留3位小数(参考 例2-11)。源程序如下:#includevoid main()int i,n,flag;double item, sum=0;printf(Input n:);scanf(%d, );flag= ;for(i=1; i=n; i+)/* line 8 */item= ;sum= sum+item;flag= ;printf(sum=%.3fn,sum);编译、连接并运行程序,测试结果:nsum258在标有/* line 8 */这一行的末尾加上分号“;”,即 这一行改写为 for(i=1; i=n; i+); 重新编译、连接并运行程序,则测试结果为:nsum258为什么输入相同的整数n,会出现不同的求和结果?【实验题4】程序填空:定义函数max(x,y), 用于求两个实数x,y中的最大数; 在主函数中输入三个实数p, q和r, 调用自定义函数max(), 输出三者中的最大者。提示:分两次调用max函数:第一次求p,q的最大数,第二次求该数值与r的最大数。未完成的源程序:#include /*line 2: 函数声明*/void main() double p,q,r,s;printf(“Input p, q, r:”);scanf(“%lf %lf%lf”, &p,&q,&r);s = max( , );s = max( , );printf(“ max of p, q, r is: %f”, );double max(double x, double y) double z;if ( ) z=a;else z=b;return ;编译、连接并运行程序,测试结果为:pqrs2.53.124.6545-13-8.31222.0510.22.2 思考题第1题 运行下面的程序,写出输出结果。main() int a=5,b=7;float x=67.8564,y=-789.124;unsigned u=65535;long n=1234567char c=A;printf(a=%3d,b=%3dn,a,b);printf(“x=%10.2f,y=%10.2fn,x,y);printf(“u=%u,u=%d(error format)n,u,u);printf(“n=%ldn,n);printf(c=%c or c= %d(ASCII)n,c,c);输出结果:第2题 输入并运行以下程序main() int a,b; float d,e; char c1,c2; double f,g; long m,n; unsigned p,q; a=61;/line 9 b=62; c1=a; c2=b; d=3.56; e=-6.87 f=3157.890121; g=0.123456789; m=50000; n=-60000; p=32768; q=40000; printf(a=%d,b=%d,c1=%c,c2=%c,d=%6.2f,e=%6.2f,a,b,c1,c2,d,e); printf(f=%15.6f,g=%15.12f,m=%ld,n=%ld,p=%u,q=%u,f,g,m,n,p,q); 在此基础上,做以下改动:(1)将程序第920行改为: a=61; b=62; c1=a; c2=b; f=3157.890121; g=0.123456789; d=f; e=g; p=a=m=50000; q=b=n=-60000;运行程序,分析结果。(2)在(1)的基础上将printf语句改为: printf(a=%d,b=%d,c1=%c,c2=%c,d=%15.6f,e=%15.12f,a,b,c1,c2,d,e); printf(f=%f,g=%f,m=%d,n=%d,p=%d,q=%d,f,g,m,n,p,q); 运行程序。(3)将p,q改用%0格式符输出。(4)改用scanf函数输入数据而不用赋值语句,scanf函数如下:scanf(%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q); 输入的数据入下: 61,62,a,b,3.56,-6.87,3,157.890121,0.123456789,50000,-60000,37678,40000 (说明:lf,ld格式符分别用于输入double型和long型数据)分析运行结果。(5)将scanf函数中的%lf和%ld改写为%f和%d,运行程序并观察分析结果。第3题 编程求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。在程序中调用scanf()函数通过键盘输入半径,圆柱高,输出计算结果,输出要求有文字说明,答案精确到小数点后两位。已知圆周长、圆面积、圆球表面积、圆球体积、圆柱体积计算公式为:circle=2* PI *r, area= PI *r*r,surface=4* PI *r*r,globe=PI *r*r*r*4/3,column=area*h算法提示:1)定义符号常量PI2)定义实变量r, h, circle, area, surface, globe, column 3)提示输入Please enter r,h:4)读入r,h5)根据公式计算circle=2* PI *r,area= PI *r*r,surface=4* PI *r*r,globe=PI *r*r*r*4/3,column=area*h6)打印两位精度的结果circle,area,surface,globe,column编写程序:测试结果:rhcircleAreasurfaceglobecolumn1.533.452.56第4题 输入一个华氏温度f,要求输出摄氏温度c。公式为c=5/9(f-32),输出要求有文字说明,输出2位小数。算法提示:1) 定义实型变量 c,f2) 提示输入Please enter f:3) 读入f4) 根据公式计算c5) 打印两位精度的结果。编写程序:测试结果:华氏温度f摄氏温度c100.250.523.78第5题 编写程序,用getchar函数读入两个字符给c1、c2,然后分别用pu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论