C实验报告6参考答案.doc

上传人:wj 文档编号:2084821 上传时间:2023-05-02 格式:DOC 页数:5 大小:35.50KB
下载 相关 举报
C实验报告6参考答案.doc_第1页
第1页 / 共5页
C实验报告6参考答案.doc_第2页
第2页 / 共5页
C实验报告6参考答案.doc_第3页
第3页 / 共5页
C实验报告6参考答案.doc_第4页
第4页 / 共5页
C实验报告6参考答案.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C实验报告6参考答案.doc

《C实验报告6参考答案.doc》由会员分享,可在线阅读,更多相关《C实验报告6参考答案.doc(5页珍藏版)》请在冰点文库上搜索。

C实验报告6参考答案.doc

《高级语言程序设计》实验报告

班级:

学号:

姓名:

成绩:

实验6数组程序设计

一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。

2.掌握字符数组和字符串函数的使用。

3.掌握与数组有关的算法。

二、实验内容

1.改错题(在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。

(1)下列程序的功能为:

为指定的数组输入10个数据,并求这些数据之和。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy6_1.c保存。

该程序的输出结果:

#include

voidmain()

{intn=10,i,sum=0;

inta[n];inta[10];

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

{

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

sum=sum+a[i];

}

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

}

该程序的输出结果:

(2)下列程序的功能为:

将字符串b连接到字符串a。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy6_2.c保存。

#include

voidmain()

{chara[]="wel",b[]="come";chara[20]="wel",b[]="come";

inti,n=0;

while(!

a[n])n++;while(a[n]!

='\0')n++;

for(i=0;b[i]!

='\0';i++)

a[n+i]=b[i];

a[n+i]=’\0’;

printf("%s\n",a);

}

(3)下列程序的功能为:

找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。

也可能没有鞍点。

纠正程序中存在的错误,以实现其功能。

程序以文件名sy6_3.c保存。

#include

#defineN4

#defineM4

main()

该程序的输出结果:

{

inti,j,k,flag1,flag2,a[N][M],max,maxj;

for(i=0;i

for(j=0;j

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

flag2=0;

for(i=0;i

{

max=a[j][0];max=a[i][0];

for(j=0;j

if(a[i][j]>max)if(a[i][j]>=max)

{

max=a[i][j];

maxj=j;

}

for(k=0,flag1=1;k

if(max>a[k][maxj])

flag1=0;

if(flag1)

{

printf("\nThesaddlepointis:

a[%d][%d]=%d\n",i,maxj,max);

flag2=1;

}

}

if(flag2)if(!

flag2)

printf("\nThereisnosaddlepointintheMatrix\n");

}

2.程序填空题

(1)以下程序的功能是:

采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。

补充完善程序,以实现其功能。

程序以文件名sy6_4.c保存。

#include"stdio.h"

#defineN10

main()

{

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

intlow=0,high=N-1,mid,find=0;

printf("请输入欲查找的值:

\n");

scanf("%d",&k);

while(low<=high)

{

mid=(low+high)/2;

if(a[mid]==k)

{

printf("找到位置为:

%d\n",mid+1);find=1;

}

if(a[mid]>k)

_high=mid-1;

else

_low=mid+1_____;

}

if(!

finD.printf("%d未找到\n",k);`

}

(2)以下程序的功能是:

求3个字符串(每串不超过20个字符)中的最大者。

补充完善程序,以实现其功能。

程序以文件名sy6_5.c保存。

#include

#include

voidmain()

{

charstring[20],str[3][20];

inti;

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

gets(str[i]);

if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);

elsestrcpy(string,str[1]);

if(strcmp(string,str[2])<0)strcpy(string,str[2]);

puts(string);

}

(3)下列程序的功能为:

从键盘输入20个整数,统计非负数个数,并计算非负数之和。

补充完善程序,以实现其功能。

程序以文件名sy6_6.c保存。

#include

main()

{inti,a[20],sum=0,count;

count=0;

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

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

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

{if(a[i]<0)

continue;

sum+=a[i];

count++;

}

printf("s=%d\tcount=%d\n",sum,count);

}

3.编程题(写出程序运行结果)

(1)从键盘输入10个数,用选择排序法将其按由大到小的顺序排序;然后在排好序的数列中插入一个数,使数列保持从大到小的顺序。

程序以文件名sy6_7.c存盘。

#defineN11

#include

voidmain()

{inta[N],i,j,k,t,p;

printf("请输入%d个整数 :

\n",N);

for(i=0;i

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

for(i=0;i

{k=i;

for(j=i+1;j

if(a[k]>a[j])

k=j;

if(k!

=i)

{t=a[k];a[k]=a[i];a[i]=t;}

}

printf("\n排序后:

\n");

for(i=0;i

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

printf("\n请输入插入整数:

 ");

scanf("%d",&p);

j=9;

while(j>=0&&a[j]>p)//找插入位置

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

a[j+1]=p;//插入

printf("\n插入后:

\n");

for(i=0;i

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

printf("\n");

}

(2)从键盘输入两个矩阵A、B的值,求C=A+B。

程序以文件名sy6_8.c存盘。

#include

voidmain()

{

inta[2][3],b[2][3],c[2][3],i,j;

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

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

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

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

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

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

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

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

c[i][j]=a[i][j]+b[i][j];

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

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

printf("%3d",c[i][j]);

printf("\n");

}

}

(3)从键盘输入一个字符串,删除其中某个字符。

如输入字符串“abcdefededff”,删除其中的字符e,则输出的字符串为“abcdfddff”。

程序以文件名sy6_9.c存盘。

//方法一:

#include

#include

voidmain()

{

inti,j;

chars[80],c;

printf("输入一行字符:

");

gets(s);

printf("输入要删除字符:

");

scanf("%c",&c);

for(i=0,j=0;s[i]!

='\0';i++)

if(s[i]!

=c)

s[j++]=s[i];

s[j]='\0';

puts(s);

}

//方法二:

#include

#include

voidmain()

{charline[80];

charch;

inti,j;

intlen;

printf("输入一行字符:

");

gets(line);

printf("输入要删除字符:

");

ch=getchar();

i=0;

while(line[i]!

='\0')

{while(line[i]!

='\0'&&line[i]!

=ch)i++;

len=strlen(line);

for(j=i;j

line[j]=line[j+1];

line[j]='\0';

}

puts(line);

}

5

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2