上机实训实训五数组.docx

上传人:b****6 文档编号:6623482 上传时间:2023-01-08 格式:DOCX 页数:15 大小:64.64KB
下载 相关 举报
上机实训实训五数组.docx_第1页
第1页 / 共15页
上机实训实训五数组.docx_第2页
第2页 / 共15页
上机实训实训五数组.docx_第3页
第3页 / 共15页
上机实训实训五数组.docx_第4页
第4页 / 共15页
上机实训实训五数组.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

上机实训实训五数组.docx

《上机实训实训五数组.docx》由会员分享,可在线阅读,更多相关《上机实训实训五数组.docx(15页珍藏版)》请在冰豆网上搜索。

上机实训实训五数组.docx

上机实训实训五数组

实验五数组

一、实验目的:

1.熟悉一维数组和二维数组的输入,输出

2.至少掌握一种排序方法

3.熟悉字符串的输入的三种方式,并区分每种方式的不同

二、实验内容

1.一位数组的输入和输出,将12个数字按照每输出3个数字换一行的形式输出(即输出3行4列的形式)

#include"stdio.h"

main()

{

inta[12],i;

printf("请输入12个数字:

");

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

scanf("%d",&a[i]);

printf("\n");

printf("您刚输入的12个数字为:

\n");

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

{

printf("%4d",a[i]);

if((i+1)%3==0)

printf("\n");

}

 

 

2.二位数组的输入和输出。

启动VisualC++,输入以下程序

#include"stdio.h"

main()

{

inta[3][4],i,j;

for(i=0;i<3;i++)/*外循环*/

{

for(j=0;j<4;i++)/*内循环*/

scanf("%d",&a[i][j]);

}

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

{

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

printf("%4d",a[i][j]);

printf("\n");

}

}

 

3.求数组中元素的最小值,并把最小值的元素的下标输出,请把程序补充完整

#include"stdio.h"

main()

{

inti,j,min;

inta[10]={34,23,12,5,14,9,48,21,16,27};

______1_______

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

if(min>a[i])

{

___2___

j=i;/*j用于存放最小元素的小标*/

}

printf("最小值为:

%d\n其下标为:

%d",min,j);

}

 

4.计算N*N矩阵主对角线元素和反对角线元素之和,并将和输出。

注意,要求先累加主对角线元素的值,然后累加反向对角线元素的值。

例如:

若N=3

有以下矩阵:

123

456

789

首先累加1、5、9,然后累加3、5、7,输出结果为30。

请把程序补充完整。

#include"stdio.h"

#defineN4

main()

{

inti,sum;

inta[][N]={34,23,12,5,14,9,48,21,16,27,3,10};

_____1______

for(i=0;i

sum+=____2____/*求主对角线的和*/

for(i=0;i

sum+=a[i][N-1-__3____];/*求反对角线的和*/

printf("sum=%d",sum);

}

 

5.排序算法一:

对数组中的N个元素按照从小到大的顺序进行排序(考试重点)

#defineN8

#include"stdio.h"

main()

{

inti,j,k;

inta[N]={23,12,14,9,48,21,16,27};

for(i=0;i

{n=i;

for(j=i+1;j

if(a[n]>a[j])/*两个数进行比较,记录最小值下标*/

n=j;

/*以下的3条语句是用来实现交换的*/

k=a[i];a[i]=a[n];a[n]=k;

}

for(i=0;i

printf("%4d,",a[i]);

 

排序算法二:

对数组中的N个元素按照从大到小的顺序进行排序(考试重点)

#defineN8

#include"stdio.h"

main()

{

inti,j,k;

inta[N]={23,12,14,9,48,21,16,27};

for(i=0;i

for(j=i+1;j

if(a[i]

{/*以下的3条语句是用来实现交换的*/

k=a[i];a[i]=a[j];a[j]=k;

}

for(i=0;i

printf("%4d,",a[i]);

 

6.字符串的输入输出

(1)启动VC,新建一个文件,输入以下程序代码(采用循环的方式读取字符串)

#include"stdio.h"

main()

{

chara[15];

inti;

printf("请输入15个字符:

");

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

scanf("%c",&a[i]);

printf("\n");

printf("您刚输入的15个字符:

");

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

printf("%c",&a[i]);

}

 

(2)新建一个程序,输入以下的程序代码(采用%s的方式读取字符串)

#include"stdio.h"

main()

{

charc[15];

printf("请输入15个字符:

");

scanf("%s",c);

printf("您刚输入的15个字符:

");

printf("%s",c);

}

 

注意:

%s读取时遇到空格就认为是结束标志!

(3)新建一个程序,输入以下的程序代码

#include"stdio.h"

main()

{

charc[20];

gets(c);

puts(c);

}

 

说明:

gets函数用来输入字符串,能够读取空格和回车符。

puts函数用来输出的,输出时会自动在字符串末尾加一个换行符。

 

【真题再现】

1.求10个学生数学成绩的最高分,最低分,平均分。

请把以下程序补充完整。

#include"stdio.h"

main()

{

inti,max,min,aver;

inta[10]={58,60,82,89,76,54,72,65,55,35};

____1_____

aver=0;

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

{

____2_____/*求总分*/

if(a[i]>max)

_____3____

if(a[i]

min=a[i];

}

printf("最高分数为:

%d",max);

printf("最低分数为:

%d",min);

printf("平均分为:

%d",____4___);

}

 

2.统计10个学生数学成绩及格的人数(>=60分为及格),并把及格学生的成绩输出。

请把以下程序补充完整。

#include"stdio.h"

main()

{

inti,count;

inta[10]={58,60,82,89,76,54,72,65,55,35};

____1_____

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

if(a[i]>=60)

{

___2____/*统计个数*/

___3____/*将符合条件的成绩输出*/

}

}

 

3.从键盘输入15个学生的成绩,按照从高分到低分进行排名,并依次输出,请把程序补充完整

#include"stdio.h"

main()

{

inti,j,k,a[15];

for(i=0;i<15;i++)/*从键盘读取成绩*/

{

_____1_____

}

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

for(j=i+1;j<15;j++)

{____2_____

{

__此处要填多行____________

}

}

for(i=0;i<15;i++)/*将排序后的成绩依次输出*/

________________

}

 

4.求出数组周边元素的平均值。

请把程序补充完整

例如,若a数组中的值为:

01279

19745

23831

45682

59141

输出结果应为:

aver=3.375

#include

#defineN5

main()

{

inti,j,k=0;

inta[][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};

doubleaver=0.0;

_______此处要填多行__________

printf("Theaveragyis:

%lf\n",aver);

}

 

参考答案:

 

5.矩阵操作题

(1)将矩阵的右上三角元素置0右上三角

例如:

 

#include

#defineN4

main()

{

inti,j;

inta[][N]={1,2,3,4,5,6,7,8,9,3,6,7,2,4,3,1};

for(i=0;i

for(___1__;____2____;j++)

____3____;/*置0*/

for(i=0;i

{

for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

}

 

参考答案:

(1)j=i

(2)j

(2)将矩阵转置

 

#include

#defineN4

main()

{

inti,j,k;

inta[][N]={1,2,3,4,5,6,7,8,9,3,6,7,2,4,3,1};

for(i=0;i

for(j=0;j

______1______/*判断*/

{

____2_______/*进行转置操作*/

}

for(i=0;i

{

for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

}

 

参考答案:

(1)if(i

(2)k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;

【常用算法练习】

1.从键盘输入5个整数,存在数组中,并输出

#include

main()

{

inta[5],i;

}

2.求数组中的最大值及下标,最小值

#include

main()

{

inta[5],i,max,min;

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

scanf("%d",&a[i]);

__________1___________

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

{

_________2_____

________3________

}

printf("最大值=%d,最小值=%d",max,min);

}

3.求数组元素的和,平均值

#include

main()

{

inta[5],i,sum;

floataver;

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

scanf(______1_____);

_____2_____

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

{

______3_____

}

____________4________

printf("和为=%d,平均值=%f",sum,aver);

}

4.将数组中大于平均值的元素输出

#include

main()

{

inta[5],i,sum;

floataver;

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

scanf(_____1_______);

sum=0;

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

{

_______2________

}

________3________

printf("和为=%d,平均值=%f\n",sum,aver);

printf("大于平均值的元素为:

");

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

{

__________

____________

}

}

5.将1—500中能被7整除或11整除,不能同时被7和11整除的数存在数组中,并输出

#include

main()

{

inta[100],i,j=0;

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

if((i%7==0||i%11==0)&&(i%77!

=0))

{

/*请在此处填写你的代码*/

}

for(i=0;i

{

/*请在此处填写你的代码*/

}

}

6.将100—200之间的所有素数存在数组中,并输出

#include

main()

{

inta[100],i,j,t=0,flag;

for(i=100;i<=200;i++)

{

/*请在此处填写你的代码*/

}

for(i=0;i

{

/*请在此处填写你的代码*/

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1