(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