c语言实训指导书 下载本文

2.编程,输出101-115之间不能被3整除的数,每行输出5个。要求使用continue语句。

3.编程,输入一个正整数,再输入n个整数,输出其中的最大值,输入的每个数都在100-200之间,如果某个输入数不在100-200之间,则只处理在该数这前输入的数据。 输入示例(共运行2次)

第一次运行: 输入n:5 输入5个整数:100 155 187 192 168 最大值是192 第二次运行: 输入n:6 输入6个整数:100 155 187 292 168 199 最大值是187 思考:如果输入n个浮点数(或字符),怎样找出其中的最大和最小的数(或字符)

4.编程,猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上想再吃的时候,见只剩下一个桃子了。 求第1天共摘了多少桃子?

输入输出示例: 第1天共摘了1534个桃子!

思考:把题目中的第10天改为第n天,多吃了一个桃子,改为多吃了2个桃子,如何编程。

8

实训五 数 组 【实训目的】

1.掌握一维数组、二维数组的定义、数组元素的引用形式和赋值的方法 2.掌握一维数组、二维数组的输入和输出的 3.掌握和一维数组、二维数组有关的典型算法 【实训内容】

1.分析和记录以下程序运行结果,并上机验证:

# include \main() {

int v[5]; int i;

v[0]=197; v[2]=-100; v[4]=350; v[5]=v[0]+v[2]; --v[4];

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

printf( \ i, v[i] );

}

该程序的运行结果是

# include \ main() {

int t, i;

int a[10]={ 1,2,3,4,5,6,7,8,9,10 }; t=a[9];

for ( i=9; i>1; i-=2)

a[i]=a[i-2]; a[1]=t;

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

printf( \

}

该程序的运行结果是:

main()

{ int num[4][4]={11,22,33,44,1,2,3,4,10,20,30,40,12,22,32,42}; int i, j, s=0;

for (j=0; j<3; j++) for ( i=0; i<3; ++i )

9

if ( i==j ) s+=num[j][i]; printf( \ s); }

该程序的运行结果是:

2.将程序补充完整,以完成以下功能,并上机调试并上机调试并上机调试并上机调试。

(1)以下程序以每行输出4个,输出a数组。(中等难度题) #include \ {

int a[12], i; for ( i=0; i<12; i++ )

scanf( \ ) ; for (i=0; i<12; i++ ) {

if ( ) ; printf( \ a[i] ); } printf( \ }

(2)若有三个字符串s1、s2和s3,其中s1=\, s2=\,要求用字符数组实现将s1的内容复制到s3中,交将s2的内容添加到s3的后面,最后输出s3。 main()

{ char s1=\ s2=\ i=0; j=0;

while ( ) { s3[ i ]=s1[ i ]; i++; }

i--;

while ( s2[ j ]!='\\0' )

{ ; j++; }

for ( ) printf( \ s3[ i ] ); }

4.编程题

(1) 从键盘输入十个数对一个一维数组赋值,并将其中的奇数存放到另一个数组中后再输出,并输出奇数的个数。

如:从键盘输入: 13 14 17 34 45 55 56 76 77 99

10

则输出: 13 17 45 55 77 99

count = 6

(2) 编程求一个m*n的二维数组中所有元素的最大值,元素可随机产生。

11