2011高级语言程序设计实验任务书(2)

2019-03-11 10:20

高级语言程序设计实验任务书

}

}

printf(\scanf(\

printf(\break;

相关知识:①用switch语句实现菜单的方法;②数制转换的方法。

8.编写一程序,要求对输入的数字1~7转换成文字星期几,对其它数字不转换。例如,输入5时,程序应该输出Friday。

① 编辑、调试和运行该程序,然后输入4。其输出结果是什么?为什么是这样的结果? ② 该程序有哪些错误?如何修改?

相关知识:①switch语句的正确使用;②break在switch语句中的作用。

第6页

高级语言程序设计实验任务书

实验三 循环控制

一、实验目的

1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。

2. 掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。 3. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 4. 掌握字符数组和字符串函数的使用。 5. 掌握与数组有关的算法。

二、实验内容和步骤

1. 程序求和:1+?+100,填空,实现该功能。 #include void main() {

int s,i;

s=0; /* 第5行 */ for( ) s=s+i;

printf(\}

思考:(1)第5行能不能去掉?其作用是什么?

(2)不用for语句,用while语句改写该程序,实现同样的功能。 2. 比较下列两个程序。(验证)

/* 第一个程序 */ #include void main() { int i,n,sum=0; scanf(\n=i; while(i<=10) { sum+=i; i++; }

printf(\}

/* 第二个程序 */ #include void main() { int i,n,sum=0;

第7页

高级语言程序设计实验任务书

scanf(\n=i; do { sum+=i; i++; } while(i<=10);

printf(\}

分别运行这两题,若输入7,这两个程序的结果分别是多少?若输入12,这两个程序的结果又分别是多少?比较为什么会有这样的区别?

3. 预习下面程序,若输入12345,分析输出结果是多少?上机验证。

#include void main( )

{ long data;

scanf(\ while(data)

{ printf(\ data=data/10; } }

4. 实现求Fibonacci数列的前n个数。(验证、调试)

1?Fn???Fn?1?Fn?2n?1或n?2n?3

运行程序,写出运行结果;采用单步跟踪技术运行该程序,观察一下变量的变化。

#include void main( )

{ long int f1, f2; int i,n;

printf(\ n:\ /* 第5行 */ scanf(\ /* 第6行 */ f1=f2=1; for(i=1;i

{ printf(\ /* 第9行 */ f1=f1+f2; f2=f2+f1; } }

思考:(1)f1、f2这两个变量为什么定义为long int 型?

第8页

高级语言程序设计实验任务书

(2)第5行和第6行的相互作用,你会用这种方式来实现输入吗?

(3)注意第9行的输出“%ld”中的“1”是字母“L”的小写形式,不是数字1。

5. 预习下面程序,写出预习结果并上机验证。(验证)

#include void main( ) { int i,j,x;

for(i=0,x=0;i<2;i++) { x++;

for(j=0;j<3;j++) { if(j%2) continue;

x++; } x++; }

printf(\ }

思考:用一句话概括if(j%2)语句的作用。

相关知识:嵌套for循环的执行过程及continue语句的作用。

6.输入一批考试分数,用?1作为结束标志,若输入大于100分,则提示重新输入,然后计算最高分、最低分与平均分。请调试、检查程序中的错误,并改正之。

#include void main( ) { int mark;

int n=0 ; sum=0 ; int max=100 ; min=0 ; for ( ; ; ) ;

{ scanf(\ if ( mark > 100 )

{ printf(\ reinput \\n \ break; } if ( mark=-1) break; n ++ ;

sum=sum + mark ; if( mark > max ) max = mark ; if( mark < min )

min = mark ;

第9页

高级语言程序设计实验任务书

} sum=sum/ n ;

printf(\ }

提示:该程序有很多错误,下面给出某些错误的说明。当求一批数中的最大值时,若已知一

批数的最小值,则将这个最小值作为最大值的初始值;当求最小值时,情况相反,即若已知这批数的最大值,则将这个最大值作为最小值的初始值。本例中求一批分数的最高分,则最高分的初始值应该设为0,然后在程序循环中逐渐地升高,直至求出最高分;本例中还要求这批分数的最低分,则最低分的初始值设为100,然后在程序循环中逐渐地降低,直至求出最小值。实现“若输入大于100分,则提示重新输入”功能的语句有错;实现“用?1作为结束标志”功能的语句有错。

思考:(1)“一批数据”是几个数据?输入的数据如何结束?程序中哪一行是实现结束这个

要求的,写出该语句。

(2)程序中哪个语句是实现”若输入大于100分,则提示重新输入”这个要求的,写出该语句。

(3)写出您的测试数据及运行结果,注意输入的数据序列中最后一个应是-1。

7.编程:输入20个1~90的整数,分类统计1~30、31~60、61~90的数各有多少个?

编程点拨:

(1) count1计1~30的个数,count2计31~60的个数,count3计61~90的个数。

(2) 用for循环20次实现该程序的功能:输入一个整数x,判断该数所在的范围,若x是1~30,

则count1加1;若x是31~60,则count2加1;若x是61~90,则count3加1。 (3) 最后,输出统计的结果。 #include void main( )

{ int count1=0,count2=0,count3=0; int i,x;

printf(“Please input 20 numbers:”); for(i=0;i<20;i++) { scanf(“%d”,&x);

??? /*补充完成程序*/ }

/* 输出统计结果 */ ????? }

8.编程:素数是除了1和其本身以外,不能被其他自然数整除的自然数。从键盘输入一个数,判断该数是不是素数?

编程点拨: a)

输入这个数x。

第10页


2011高级语言程序设计实验任务书(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:-信息提示

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: