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

2020-03-27 19:24

{ if ( max < a[i][j] ) max = a[i][j]; if ( min > a[i][j] ) min = a[i][j]; }

printf(\ printf(\ }

(六)以下程序是查找二维数组a的最大元素及其下标,填空并运行程序。 /* c7-6.c 求二维数组中元素的最大值及其下标 */ #include \void main() { int a[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}};

int i,j,max,l,c; /* max存放最大值,l、c分别存放行和列的下标 */ max=a[0][0]; for(i=0; i<4; i++) for(j=0; j<4; j++)

if(max

(七)下面的程序是自动形成并输出如下矩阵,填空并运行程序。 1 2 3 4 5 1 1 6 7 8 1 1 1 9 10 1 1 1 1 11 1 1 1 1 1

/* c7-7.c 生成指定的矩阵*/ #include \void main( )

{ int i,j,k,a[5][5]; k=2;

for(i=0; i<5; i++) /* 行循环 */ for(j=0; j<5; j++) /* 列循环 */

if( ) a[i][j]=1; /* 产生矩阵的下三角元素 */ else a[i][j]=k++; /* 产生矩阵的上三角元素 */ for(i=0; i<5; i++) { for(j=0; j<5; j++) printf(“M”,a[i][j]);

printf(“\\n”); /* 每输出一行后换行 */ }

}

33

(八)下面程序的功能是实现方阵(如:3行3列)的转置(即行列互换) 如:如果原来的矩阵:100 200 300 400 500 600 700 800 900 程序输出应为:

100 400 700 200 500 800 300 600 900 填空并运行程序。

/* c7-7.c 矩阵转置*/ #include \void main( ) { int i,j,temp;

int array[3][3]={{100,200,300},{400,500,600},{700,800,900}}; printf(\原来的矩阵为:\\n\ for(i=0; i<3; i++)

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

{ for(j=0; ;j++)

{temp=array[i][j];array[i][j]=array[j][i];array[j][i]=temp;} } printf(\转置后的矩阵为:\\n\ for(i=0; i<3; i++)

{ for(j=0; j<3; j++) printf(\ } /*输出一行后要换行*/ }

请将此矩阵转置程序与教材上的矩阵转置程序进行比较,各用于何种类型矩阵比较合适?

五、实验注意事项

(一)C规定,二维数组的行和列的下标都是从0开始的。

例如,有定义:int b[3][[5]; 则数组b的第一维下标的上界为2,第二维下标的上界为4。说明定义了一个整型二维数组b,它有3行5列共3*5=15个数组元素,行下标为0,1,2,列下标为0,1,2,3,4,则数组b的各个数组元素是:

b[0][0],b[0][1],b[0][2],b[0][3],b[0][4] b[1][0],b[1][1],b[1][2],b[1][3],b[1][4] b[2][0],b[2][1],b[2][2],b[2][3],b[2][4]

(二)要对二维数组的多个数组元素赋值,应当使用循环语句并在循环过程中,使数组元素的下标变化。可用下面的方法为所有数组元素赋值:

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

34

for(j=0; j<3; j++) scanf(\

六、思考题

(一)定义一个5行5列的二维数组a,使下三角的所有元素初始化为1,在划线处填空。 int i,j,a[5][5]; for(i=0; i<5; i++) for(j=0; j<5; j++)

if( ) a[i][j]=1;

(二)求一个4×4矩阵的主对角线元素之和,填空并运行程序。 #include \

void main( )

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

int i,sum=0; for(i=0; i<4; i++) ;

printf(“sum=%d\\n”,sum); }

(三)求二维数组a中的最大元素及其下标,填空并运行程序。 #include \ void main( )

{int a[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}}; int i,j,max,l,c; max=a[0][0]; for(i=0; i<4; i++) for(j=0; j<4; j++)

if( max

(四)统计3个学生,每个学生4门课程的考试成绩,要求输出每个学生的总成绩,每个学生的平均成绩,3个学生的总平均成绩,填空并运行程序。 #include \ void main( )

{ int stu[3][4],i,j,t[3];

float a[3],sum=0; for(i=0; i<3; i++) for(j=0; j<4; j++) scanf(\for(i=0; i<3; i++) { t[i]=0;

35

for(j=0; j<4; j++) { sum+=stu[i][j]; t[i]+=stu[i][j]; }

printf(\ ; printf(\ }

printf(\ }

36

实验八 字符数组程序设计

一、实验学时

2学时

二、实验目的

(一)掌握字符数组的定义、初始化和应用; (二)掌握字符串处理函数的使用。

三、预习要求

重点预习的内容:C语言中字符串的存储表示;字符数组输入输出的方法;常用的字符串处理函数的使用。

四、实验内容

(一)输入下面的程序并运行,观察程序运行的结果,并分析原因(注意程序第2行中有些单引号之间是空格)。

/* c8-1.c 字符数组的输出*/

#include \void main( )

{ char a[10]={ ’I’, ’ ’, ’a’, ’m’, ’ ’, ’a’, ’ ’, ’b’, ’o’, ’y’}; printf(\}

将字符数组a的大小改为11,再运行程序,并将结果与修改前的结果进行比较,分析原因。

(二)按照要求编写程序:有一行文字,不超过80个字符,分别统计出其中英文大写字母、小写字母、数字、空格、及其它字符的个数。

编程提示: 1.定义一个一维字符数组。

2.定义5个整型变量分别统计大写字母、小写字母、数字、空格和其它字符的个数(即作为5个计数器使用),并为这5个变量赋初值。

3.用scanf函数或gets函数为字符数组赋一个字符串。

4.在循环中对字符数组的每个元素进行判断,相应的计数器加1。注意循环控制的条件和进行判断的条件怎样设置。

5.循环结束后输出各计数器的值。

思考:如果是对一篇英文文章进行统计,又该怎么编程呢?文章的行数和每行字数可以自己来设。提示:对文章的内容要用二维字符数组来存储。

/* c8-2.c 统计字符个数 */

#include \

37


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

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

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

马上注册会员

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