C语言程序设计实验7
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…… …… ……
#include <stdio.h>
#define N 10
int main()
{
int i,j,a[N][N];
for (i=0;i<N;i++)
{
a[i][i]=1;
a[i][0]=1;
}
for (i=2;i<N;i++)
gets(a);
max=a[0];
while(a[i]!='\0')
{
if(a[i]>=max)
{max=a[i];}
i++;
}
i=0;
while(a[i]!='\0')
{
if(a[i]==max)break;
i++;
}
i++;
int it=i;
int j=0;
while(a[i]!='\0')
{
c[j]=a[i];
{t= a[i];a[i]=a[i+1];a[i+1]=tຫໍສະໝຸດ Baidu}
printf(“the sorted numbers:\n”);
*for(i=1;i<11;i++)
*printf(“%d”,& a[i]);
}
正确程序:
#include <stdio.h>
main()
{int a[10];
int i,j,t;
scanf(“%d”,&num[i]);
for(i=0;i<=19;i++);
if(num[i]<0)
sum+=num[i];
printf(“sum=%6d”,sum);
}
正确程序:
#include <stdio.h>
void main( )
{
int num[20];
int sum=0,i;
for(i=0;i<=19;i++)
printf("\n");
return 0;
}
5.编一程序,将两个字符串连接起来,不要用strcat函数
#include<stdio.h>
main()
{
char ch1[10],ch2[10];
gets(ch1);
gets(ch2);
printf("%s%s\n",ch1,ch2);
return 0;
}
五
1.从键盘输入一个字符串a,并在a串中的最大元素后面插入字符串b(“ab”)。
#include <stdio.h>
#define N 256
int main()
{
char a[N]={'\0'};
char b[N]="ab";
char c[N]={'\0'};
int i=0;
char max;
printf("输入字符串a:");
}
6.编一程序实现一个3×3矩阵对角线元素之和。
#include <stdio.h>
main()
{
int a[3][3],i,j,sum=0;
printf("输入一个3*3数组:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("3*3数组为:\n");
int t1,t2,n,end,i,j;
printf("原数列:\n");
for (i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("加入数字:");
scanf("%d",&n);
end=a[9];
if (n>end)
a[10]=n;
else
{
for(i=0;i<8;i++)
{j=7+i;
printf(“%c”,c[j]);
}
}
2.以下程序的功能是求数组num中小于零的数据之和,程序中存在错误,请上机调试并改正。
#include <stdio.h>
void main( )
{int num[20];
intsum,i;
for(i=0;i<=19;i++)
printf("intput 10 numbers:\n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<10;j++)
for(i=0;i<10-j;i++)
if(a[i]<a[i+1])
{t= a[i]; a[i]=a[i+1]; a[i+1]=t;}
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。
2.掌握字符数组的使用。
3.掌握与数组有关的算法(特别是排序算法)。
二、实验内容(程序清单及运行结果)
1.以下程序段将输出computer,请填空。
#include <stdio.h>
void main( )
{int i,j=0;
char c[]=”it’s a computer”;
main()
{int a[10];
int i,j,t;
printf(“intput 10 numbers:\n”);
for (i=0;i<10;i++)
*scanf(“%d”,i,a[i]);
printf(“\n”);
for(j=1;j<10;j++)
*for(i=j+1;i<10;i++)
*if(a[i]<a[i+1])
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
sum=sum+a[i][i]+a[i][2-i];
if(i==1)
sum=sum-a[1][1];
printf("对角线元素之和: %d\n",sum);
for (i=0;i<10;i++)
{
if (a[i]>n)
{
t1=a[i];
a[i]=n;
for (j=i+1;j<11;j++)
{
t2=a[j];
a[j]=t1;
t1=t2;
}
break;
}
}
}
printf("现在的数列:\n");
for (i=0;i<11;i++)
printf("%5d",a[i]);
j++;
i++;
}
j=0;
while(b[j]!='\0')
{
a[it]=b[j];
j++;
it++;
}
j=0;
while(c[j]!='\0')
{
a[it]=c[j];
j++;
it++;
}
printf("%s\n",a);
return 0;
}
2.打印出以下的杨辉三角形(要求打印出10行)。
1
1 1
scanf("%d",&num[i]);
for(i=0;i<=19;i++)
if(num[i]<0)
sum+=num[i];
printf("sum=%6d",sum);
}
3.调试程序。下面程序完成用气泡法对10个整型数排序(从小到大),其中带*行有错,请调试修正。
#include <stdio.h>
printf("the sorted numbers:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
}
4.已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中,编一程序实现其功能。
#include <stdio.h>
int main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
for (j=1;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for (i=0;i<N;i++)
{
for (j=0;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
return 0;
}
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…… …… ……
#include <stdio.h>
#define N 10
int main()
{
int i,j,a[N][N];
for (i=0;i<N;i++)
{
a[i][i]=1;
a[i][0]=1;
}
for (i=2;i<N;i++)
gets(a);
max=a[0];
while(a[i]!='\0')
{
if(a[i]>=max)
{max=a[i];}
i++;
}
i=0;
while(a[i]!='\0')
{
if(a[i]==max)break;
i++;
}
i++;
int it=i;
int j=0;
while(a[i]!='\0')
{
c[j]=a[i];
{t= a[i];a[i]=a[i+1];a[i+1]=tຫໍສະໝຸດ Baidu}
printf(“the sorted numbers:\n”);
*for(i=1;i<11;i++)
*printf(“%d”,& a[i]);
}
正确程序:
#include <stdio.h>
main()
{int a[10];
int i,j,t;
scanf(“%d”,&num[i]);
for(i=0;i<=19;i++);
if(num[i]<0)
sum+=num[i];
printf(“sum=%6d”,sum);
}
正确程序:
#include <stdio.h>
void main( )
{
int num[20];
int sum=0,i;
for(i=0;i<=19;i++)
printf("\n");
return 0;
}
5.编一程序,将两个字符串连接起来,不要用strcat函数
#include<stdio.h>
main()
{
char ch1[10],ch2[10];
gets(ch1);
gets(ch2);
printf("%s%s\n",ch1,ch2);
return 0;
}
五
1.从键盘输入一个字符串a,并在a串中的最大元素后面插入字符串b(“ab”)。
#include <stdio.h>
#define N 256
int main()
{
char a[N]={'\0'};
char b[N]="ab";
char c[N]={'\0'};
int i=0;
char max;
printf("输入字符串a:");
}
6.编一程序实现一个3×3矩阵对角线元素之和。
#include <stdio.h>
main()
{
int a[3][3],i,j,sum=0;
printf("输入一个3*3数组:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("3*3数组为:\n");
int t1,t2,n,end,i,j;
printf("原数列:\n");
for (i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("加入数字:");
scanf("%d",&n);
end=a[9];
if (n>end)
a[10]=n;
else
{
for(i=0;i<8;i++)
{j=7+i;
printf(“%c”,c[j]);
}
}
2.以下程序的功能是求数组num中小于零的数据之和,程序中存在错误,请上机调试并改正。
#include <stdio.h>
void main( )
{int num[20];
intsum,i;
for(i=0;i<=19;i++)
printf("intput 10 numbers:\n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<10;j++)
for(i=0;i<10-j;i++)
if(a[i]<a[i+1])
{t= a[i]; a[i]=a[i+1]; a[i+1]=t;}
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。
2.掌握字符数组的使用。
3.掌握与数组有关的算法(特别是排序算法)。
二、实验内容(程序清单及运行结果)
1.以下程序段将输出computer,请填空。
#include <stdio.h>
void main( )
{int i,j=0;
char c[]=”it’s a computer”;
main()
{int a[10];
int i,j,t;
printf(“intput 10 numbers:\n”);
for (i=0;i<10;i++)
*scanf(“%d”,i,a[i]);
printf(“\n”);
for(j=1;j<10;j++)
*for(i=j+1;i<10;i++)
*if(a[i]<a[i+1])
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
sum=sum+a[i][i]+a[i][2-i];
if(i==1)
sum=sum-a[1][1];
printf("对角线元素之和: %d\n",sum);
for (i=0;i<10;i++)
{
if (a[i]>n)
{
t1=a[i];
a[i]=n;
for (j=i+1;j<11;j++)
{
t2=a[j];
a[j]=t1;
t1=t2;
}
break;
}
}
}
printf("现在的数列:\n");
for (i=0;i<11;i++)
printf("%5d",a[i]);
j++;
i++;
}
j=0;
while(b[j]!='\0')
{
a[it]=b[j];
j++;
it++;
}
j=0;
while(c[j]!='\0')
{
a[it]=c[j];
j++;
it++;
}
printf("%s\n",a);
return 0;
}
2.打印出以下的杨辉三角形(要求打印出10行)。
1
1 1
scanf("%d",&num[i]);
for(i=0;i<=19;i++)
if(num[i]<0)
sum+=num[i];
printf("sum=%6d",sum);
}
3.调试程序。下面程序完成用气泡法对10个整型数排序(从小到大),其中带*行有错,请调试修正。
#include <stdio.h>
printf("the sorted numbers:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
}
4.已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中,编一程序实现其功能。
#include <stdio.h>
int main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
for (j=1;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for (i=0;i<N;i++)
{
for (j=0;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
return 0;
}