C语言程序设计实验指导书 - V2.1(6)

2020-03-27 19:24

1×9=9 ? ? ? 9×9=81

每个算式可以归为:i×j=?的形式,而且每行中的算式数量随着行数变化。考虑外层循环变量和内层循环变量应当取何值呢?

程序的基本结构为: for( i=1; i<=9; i++ ) { for(j=1; __________; j++ ) 输出乘法算式; 输出回车换行符;

}

/* c5-2.c 输出九九乘法表 */ #include \ void main( ) { }

(三)编程求100~300之间的素数和。

编程提示:首先,弄清素数的概念是本题的关键,素数:只能被1和它本身整除的数为

素数。判断一个数是否为素数需要使用循环结构才能实现,求出100~300之间的全部素数要使用循环的嵌套结构。程序结构提示如下:

/* c5-3.c 求100~300之间的素数和 */ #include \

void main( ) { 定义变量;

外层循环变量i从100递增到300 { 标志变量赋0;

内层循环变量从2递增到i-1

如果不是素数(能整除),则标志变量赋1,跳出循环; 如果标志变量为0(是素数),进行求和; } 输出求和结果; }

(四)编程输出以下图形。 * *** *****

编程提示:输出图形的这一类问题,首先要看一看图形的特点,找到规律:一共有几行,

每行先输出什么字符,输出几个;后输出什么字符,输出几个。一般外循环变量控制行数,内循环变量控制各种字符的数量。

程序的基本结构为: for(i=0; i<=2; i++) { 连续输出若干空格; 连续输出若干个“*”;

23

输出一个换行;

}

/* c5-4.c 输出字符图形 */ #include \ void main( ) { }

想一想,输出下面的三种图形分别应当怎样实现: ****** ******** * ****** ***** ***** ****** *** ********* ****** * *************

(五)运行以下程序,分析程序的运行结果并上机验证。 /* c5-5.c 循环结构程序 */ #include \ void main( ) { int i=0, a=0; while( i<20 ) { for( ; ; )

{ if((i)==0) break; else i--;}

i+=11;a+=i; }

printf(\ }

五、实验注意事项

(一)对于双重循环来说,外层循环往往是控制变化较慢的参数(例如所求结果的数据项的个数、图形的行数等),而内层循环变化快,一般控制数据项的计算、图形中各种字符的数量等。

(二)注意在循环结构程序设计中,正确使用{ }构成复合语句。 (三)外层循环变量增值一次,内层循环变量从初值到终值执行一遍。 (四)程序书写时,最好使用缩进结构以使程序结构清晰。

六、思考题

(一)根据公式:sum=1?111????,计算sum的值,请把程序补充完整。 2!3!n!/* 求数列和 */

#include \ void main( ) { long int n,j; float sum=0,t;

for(n=1; n<=20; n++)

24

{ t=1.0;

for(j=1; j<=n; j++) t=t*j;

________________; }

printf(\ }

(二)下面函数的功能是输出九九乘法表,请把程序补充完整。 /* 输出九九乘法表 */ #include \ void main( ) { int i,j;

for( i=1; i<=9; i++ )

{ for( j=1; __________; j++ )

printf(\ printf(\}

(三)下面函数的功能是求出100~300间的素数和,请把程序补充完整。 /* 求100~300间的素数和 */ #include \void main( )

{ int i, j, flag, sum=0;

for( i=100; i<=300; i++ ) { flag=0;

for( j=2; j<=i-1; j++ )

if( i%j==0 ) { flag=1;break; } if( ________ ) sum+=i; }

printf(\ }

(四)下面程序的功能是:输出以下图形:

*

*** *****

请把程序补充完整。 /* 输出字符图形 */ #include \ void main( ) { int i,j,k;

for(i=0;i<=2;i++)

{ for( j=0; j<=10-i ;j++ ) printf(\

for( k=0; _______________ ;k++ ) printf(\ printf(“\\n”); } }

25

实验六 一维数组程序设计

一、实验学时

2学时

二、实验目的

(一)掌握一维数组的定义、初始化方法; (二)掌握一维数组中数据的输入和输出方法; (三)掌握与一维数组有关的程序和算法; (四)了解用数组处理大量数据时的优越性。

三、预习要求

(一)理解数组的概念、利用数组存放数据有何特点; (二)一维数组的定义、初始化方法; (三)一维数组中数据的输入和输出方法。

四、实验内容

(一)下面的几个程序都能为数组元素赋值,请输入程序并运行。比较一下这些赋值方法的异同。

1.在定义数组的同时对数组初始化。

/* c6-1.c 在定义数组的同时对数组初始化*/ #include \void main( )

{ int a[4]={0,1,2,3};

printf(\ %d %d %d\\n\}

2.不使用循环对单个数组元素赋值。

/* c6-2.c 不使用循环对单个数组元素赋值*/ #include \void main( )

{ int a[4]; a[0]=2;a[1]=4;a[2]=6;a[3]=8;

printf(\}

3.用循环结构,从键盘输入为每个数组元素赋值,输出各数组元素。 /* c6-3.c 利用循环通过键盘对数组元素赋值*/ #include \ void main( ) { int i,a[4];

for(i=0; i<4; i++)

scanf(\ printf(\

for(i=0; i<4; i++)

printf(\ \

26

}

printf(\

(二)编写一程序,为一维数组a中的元素赋值,并按照逆序输出。

编程提示:通过对一维数组的输入输出来实现。

1. 首先复习教材上知识点,充分理解例题。

2. 对一维数组的输入可以参照实验内容(一)中的三种方法,选择其一输出,用循环结构来实现。

3. 注意是逆序输出,可以通过输出时,在for语句中利用循环变量递减的方法来实现。 /* c6-4.c 利用循环实现一维数组的输入输出*/ #include \void main( )

{ int i,a[10]; /* 定义循环变量i和一维数组a */ for (i=0;i<=9;i++)

scanf(\

for ( ____ _) /* 请补充完整循环语句 */ printf(\ \ /* 按照逆序输出 */ printf(\} (三)编写程序,输出一维数组a中的元素最小值及其下标。

编程提示: 1.定义一个整型变量存放最小值下标,将其初始化为0 ,例如:int p=0;即从数组第零个元素开始判断。

2.通过循环,依次判断数组中的每一个元素a[i]是否小于a[p],如果是,则将p和a[p]的值作相应的改变。

/* c6-5.c 输出一维数组中元素的最小值及其下标*/ #include \void main( )

{ int i,m,p,a[10]={9,8,7,6,1,3,5,18,2,4}; /* m为最小值,p为其下标 */ m=a[0]; p=0;

for(i=1;i<10;i++) if (a[i]

{ ; p=i;} /* 请补充完整此语句 */

printf(\ /* 输出一维数组a中的最小值及其下标 */ }

(四)编写一程序,求一维数组中下标为偶数的元素之和。

编程提示: 1.定义一个数组a并初始化。

2.定义一个整型变量sum,存放下标为偶数的元素和,并初始化为0。

3.从数组的第0个元素开始,每次循环变量递增2,一直到数组的最后一个元素,将其累加到sum变量。

4.输出sum变量即为下标为偶数的元素之和。

/* c6-6.c 求一维数组中下标为偶数的元素之和*/ #include \void main( )

{ int i,sum=0; /* 初始化sum为0 */

27


C语言程序设计实验指导书 - V2.1(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:集团投资发展部工作思路

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

马上注册会员

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