C语言数组实验题目及答案Word文档下载推荐.docx

上传人:b****5 文档编号:21023953 上传时间:2023-01-27 格式:DOCX 页数:12 大小:58.84KB
下载 相关 举报
C语言数组实验题目及答案Word文档下载推荐.docx_第1页
第1页 / 共12页
C语言数组实验题目及答案Word文档下载推荐.docx_第2页
第2页 / 共12页
C语言数组实验题目及答案Word文档下载推荐.docx_第3页
第3页 / 共12页
C语言数组实验题目及答案Word文档下载推荐.docx_第4页
第4页 / 共12页
C语言数组实验题目及答案Word文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言数组实验题目及答案Word文档下载推荐.docx

《C语言数组实验题目及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言数组实验题目及答案Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

C语言数组实验题目及答案Word文档下载推荐.docx

return0;

}

分析结果

运行结果

二、程序改错题

1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个数。

源代码如下,程序中存在错误,请将其改正。

#include<

{

if(a[i]==s)

{flag=1;

break;

}

if(flag)

printf("

查找成功!

编号为%d的书籍的位置是%d\n"

s,i+1);

else

查找失败!

请确认书籍编号是否正确!

\n"

);

4.编写程序验证冒泡法排序

{inta[11],i,j,t;

Input10numbers:

for(i=1;

i<

11;

i++)

scanf("

%d"

&

a[i]);

=9;

for(j=1;

j<

=10-i;

j++)

if(a[j]>

a[j+1])

{t=a[j];

a[j]=a[j+1];

a[j+1]=t;

Thesortednumbers:

%d"

a[i]);

5.编写程序验证选择法排序

方法一:

{inta[11],i,j,k,temp;

10;

{k=i;

for(j=i+1;

if(a[j]<

a[k])k=j;

if(i!

=k)

{temp=a[i];

a[i]=a[k];

a[k]=temp;

方法二:

#defineNUM10/*参与排序的数据个数*/

{

intdata[NUM];

/*存放参与排序的所有整数*/

inti,j,minValue,temp;

/*通过键盘输入待排序的整型数列*/

\nEnter%dintegers."

NUM);

for(i=0;

i<

NUM;

i++){

scanf("

&

data[i]);

/*选择排序*/

NUM-1;

minValue=i;

for(j=i+1;

j<

j++){/*选择i~NUM-1之间的最小数值*/

if(data[j]<

data[minValue])

minValue=j;

if(minValue!

=i){/*交换*/

temp=data[i];

data[i]=data[minValue];

data[minValue]=temp;

/*输出排序后的结果*/

\nOrderinglistis:

%5d"

data[i]);

6.编写程序验证二分查找

#defineNUM10

intmain()

intvalue[NUM]={12,23,30,45,48,50,67,82,91,103};

/*非递减整型数列*/

intlow,high,mid,key;

\nEnterakey:

"

/*输入查找的数值*/

key);

/*利用二分查找在有序数列中查找key*/

low=0;

high=NUM-1;

while(low<

=high){

mid=(low+high)/2;

if(value[mid]==key)break;

if(value[mid]<

key)

low=mid+1;

else

high=mid-1;

/*输出查找结果*/

if(low<

=high)

\n%disfoundat%d."

key,mid);

/*确认break出口*/

\n%disnotfound."

key);

/*确认循环正常出口*/

7.将一个数组的值按逆序重新存放,例如,原来顺序为:

8,10,4,23,1。

要求改为:

1,23,4,10,8。

方法一

#include<

#defineN10

{

inta[N],i,j,temp;

for(i=0;

N;

for(i=0,j=N-1;

j;

i++,j--)

{temp=a[i];

a[i]=a[j];

a[j]=temp;

}

方法二:

inta[N],i,temp;

N/2;

a[i]=a[N-i-1];

/*第一个和最后一个交换,第二个和倒数第二个交换,......一直到N/2的时候,也就是数组的一半的时候*/

a[N-i-1]=temp;

return0;

8.输入n×

n阶,编程计算其两条对角线上各元素之和。

#defineN3

inta[N][N],i,j,sum1=0,sum2=0,sum=0;

printf("

请输入%d行%d列的矩阵:

N,N);

for(i=0;

for(j=0;

scanf("

a[i][j]);

sum1=sum1+a[i][i];

sum2=sum2+a[i][N-1-i];

sum=sum1+sum2;

if(N%2==1)

sum=sum-a[N/2][N/2];

主对角线元素之和为%d;

\n副对角线元素之和为%d;

\n主副对角线元素之和为%d\n"

sum1,sum2,sum);

#include<

inta[N][N],i,j,n,sum=0;

请输入阶乘:

n);

=n-1;

for(j=0;

{scanf("

if(i==j||i+j==n-1)

sum+=a[i][j];

对角线的和为%d\n"

sum);

选做题

P85页-例4-1:

10名候选人参与竞选,编写程序,输入一组选举人的投票信息,统计每个候选人的得票数目及选举结果。

P87页例4-2:

编写程序统计从键盘输入一行文本中每个英文字母出现的频率。

3.模拟掷骰子游戏100次,编程统计并输出骰子的6个面各自出现的次数。

stdlib.h>

time.h>

#defineN100

ints[N];

inta,b,c,d,e,f,i;

srand(time(NULL));

s[i]=rand()%6+1;

a=b=c=d=e=f=0;

if(s[i]==1)

a++;

elseif(s[i]==2)

b++;

elseif(s[i]==3)

c++;

elseif(s[i]==4)

d++;

elseif(s[i]==5)

e++;

elseif(s[i]==6)

f++;

1点出现的次数为:

%d\n"

a);

2点出现的次数为:

b);

3点出现的次数为:

c);

4点出现的次数为:

d);

5点出现的次数为:

e);

6点出现的次数为:

f);

intr[6]={0};

inti;

r[rand()%6]++;

6;

%d点:

%5d次\n"

i+1,r[i]);

4.打印出以下杨辉三角形(要求打印出10行)。

1

1  1

1  2  1

1  3  3  1

1  4  6  4  1

1  5  10 10  5  1

//杨辉三角

inta[N][N]={0},i,j,n;

while(n<

=0)

{printf("

请输入打印的杨辉三角行数"

n;

{a[i][0]=1;

a[i][i]=1;

for(i=2;

for(j=1;

=i;

{a[i][j]=a[i-1][j-1]+a[i-1][j];

{for(j=0;

printf("

%6d"

a[i][j]);

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

当前位置:首页 > 农林牧渔 > 林学

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

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