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

(1)若有语句while (!x),则退出循环的条件是 。

(2)若有语句 while (x%2 && y>100 ),则继续循环条件是 ,而退出循环的条件是 。

(3)while (x=0)与while (x==0)两条语句的循环条件有何区别?

一、实训目的

1、进一步理解分支程序的执行过程

2、进一步理解循环结构程序段中语句的执行过程 3、掌握分支和循环的综合应用程序设计 二、预习内容

熟悉以下语句:if-else、switch、 while语句、do-while语句、for、break、continue语句 三、上机内容 1.完成程序填空

(1)将用户输入的字母以大写字母的形式输出。 main() { char c; scanf(\

if ( ) printf(\ c); }

(2)以下程序打印菱形图案,程序运行时,输入4给变量n,试完整程序(提示:可以分解为两个三角形)。 main()

{ int n, i, j; printf(\ n:);

scanf( ); for (i=1; i<=n; i++)

{ for ( j=1; ; j++) printf(\ \ for ( j-1; ; j++) printf(\ }

for ( i=1; i<=n-1; i++)

{ for ( j=1; ; j++) printf(\ \ for ( j-1; ; j++) printf(\ } }

2.完成以下程序的编程: (1) 编程计算:

* *** ***** ******* ***** *** * x ( x<1 ) y= 3-x/5 ( 1<=x<10 ) 3x-11 ( 1<=x<10 ) 13

(2)“百马百担”问题。有一百匹马,驮一百担货,大马驮三担,中马驮2担,两匹小马驮一担,试编程计算共有多少种驮法。

实训七 一维数组的应用

一、实训目的

1、掌握一维数组的定义、数组元素的引用形式和赋值的方法 2、掌握一维数组的输入和输出的

3、掌握和一维数组有关的典型算法,如求菲波那契数列、最大数、查找、排序等 二、预习内容

1、预习一维数组的定义及引用的一般方法 2、熟悉循环语句和数组处理语句结合的方法 三、实训内容

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

main() # include \{

main() int v[5]; { int t, i;

int i;

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

v[4]=350; v[5]=v[0]+v[2]; for ( i=9; i>1; i-=2) --v[4];

a[i]=a[i-2]; for (i=0;i<5;i++)

a[1]=t;

printf( \ i, v[i] ); for ( i=0; i<10; i++ ) } printf( \

}

该程序的运行结果是 该程序的运行结果是:

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( \}

14

(2)以下程序将数组中的数据按逆序存放。(中等难度题) # include \

#define SIZE 12 ; /*SIZE为常量12*/ main()

{ int a[SIZE], i, j, t;

for ( i=0; i

{ t=a[i]; ; ; i++; j ;} for (i=0; i

}

(3)以下程序实现将数组a中的元素按从小到大的顺序排列。 # include \main()

{ int i, j, temp, a[10];

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

if ( ) { ; ; ; } for ( ) printf( \}

7、编程题:

(1)读入10个整数,求出非负数个数及其和,并将10个整数按从小到大的次序输出。

(2)利用随机函数,生成10个50 ~ 60之间的随机整数,并判断是否有55,若有输出它在数组中的下标,否则输出“NO DATA!”。

15

一、实训目的

1、掌握二维数组的定义和引用;

2、掌握字符串的定义以及它和一维字符数组之间的关系和区别; 3、掌握字符串处理函数的功能和应用。 二、预习内容

1、二维数组的定义和二重循环之间的关系 2、字符串的概念 三、实训内容

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

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 )

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

{int i, j, m, n, a, x[3][4]={43,32,22,13,11,22,33,44,55,11,32,31}; m=n=0; a=x[m][n]; for (i=0;i<3; i++)

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

该程序的运行结果是:

该程序的运行结果是:

if ( a>x[i][j] ) { m=i; n=j; a=x[m][n]; } printf(\ m=%d n=%d\\n\

}

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 ] ); }

3、下列是打印杨辉三角形的程序,试将程序补充完整,并上机验证:

main()

{ int i, j, a[6][6]={0};

16