实验3要求(数组)
#include<stdio.h>
#include<string.h>
void main()
{char line[80],ll[2];
charch;
inti,j;
intlen;
printf("输入一行字符\n");
;
printf("输入要删除字符\n ");
scanf("%s",ll);ch=ll[0];
#defineM3
#defineN4
main()
{intmax,i,j,r,c;
staticinta[M][]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
max=a[0,0];
for(i=0;i<n;i++)
for(j=0;j<m;i++)
if (a[i][j]>max)
实验3-1一维数组
目的和要求:
1.理解数组的概念以及用数组描述数据结构的好处;
2.掌握一维数组的定义、下标变量的引用、数组的初始化以及输入输出的方法;
3.学习应用数组解决查找和排序问题。
一.实验内容
1.改错题
(1)下列程序的功能是:为指定的数组输入10个数据,并求这10个数据之和。但程序中存在若干错误,请你纠正,并将正确的程序保存到学号文件夹下,文件名为shiyan3_1.c。
#include<stdio.h>
void main()
{intn=10,i,sum=0;
inta[n];
for(i=0;i<10;i++)
{
scanf("%d",a[i]);
sum=sum+a[i];
}
printf("sum=%d\n",sum);
}
(2)下列程序的功能是:读入20个整数,统计其中非负整数个数,计算所有非负整数之和。但程序中存在若干错误,请你纠正,并将正确的程序保存到学号文件夹下,文件名为shiyan3_2.c。
实验3-2二维数组
目的和要求:
1.掌握二维数组的定义引用。
2.掌握二维数组的初始化。
3.掌握二维数组的输入与输出。
二.实验内容
1.改错题
1)指出下面程序的错误并改正。然后验证程序结果。并将正确的程序保存到学号文件夹下,文件名为shiyan32_1.c。
有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。
count++;
}
printf("s=%d\t count=%d\n", s, count );
}
2.程序填空
(1)以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示示查找结果。根据题意,将程序写完整,并将程序保存到学号文件夹下,文件名为shiyan3_T1.c。
#include "stdio.h"
}
}
3.编程题
1.求一个3×3矩阵对角线元素之和。并将正确的程序保存到学号文件夹下,文件名为shiyan32_7.c。
2.打印出以下的杨辉三角形(要求打印出10行),并将正确的程序保存到学号文件夹下,文件名为shiyan32_8.c。
1
11
121
1331
1464 1
15101051
………………
实验3-3字符数组
for(i=0;i<M;i++)
for(j=0;j<P;j++)scanf("%d",&a[i][j]);
for(i=0;i<P;i++)
for(j=0;j<N;j++)scanf("%d",&b[i][j]);
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{ c[i][j]= _______①_________;
for(i=0;i<=4;i++)
{
for(k=0;k<=4;k++)
{
printf("%4d",a[i][k]);
}
printf("\n");
}
}
3):找出一个二维数组中的鞍点,即该位置上的元素在该行中最大,同时在该列中最小。也可能不存在鞍点,如果有,打印出其位置和值。并将正确的程序保存到学号文件夹下,文件名为shiyan32_3.c。
1)要求用选择排序法将数列由小到大排序;
2)在排序好的数列中插入一个数,使数列保持从小到大的顺序。
(2)编写一个程序,输入一个字符串,按照下述规律译成密码后输出。规律是:A→Z,a→z,B→Y,b→y,C→X,c→x……并将程序保存到学号文件夹下,文件名为shiyan3_B2.c。
(3)编写一个程序,依次输入10位同学的比赛分数(0~100),按照分数由高到低的顺序排序后输出每位同学的序号和分数。并将程序保存到学号文件夹下,文件名为shiyan3_B3.c。
inti,n=0;
while(!a[n]) n++;
for(i=0;b[i]!='\0';i++)
a[n+i]=b[i];
printf("%s\n",a);
}
2.下列程序是对一行文字,删去其中某个字符,此行文字和要删的字符均由键盘输入,根据题意,将程序写完整。并将程序保存到学号文件夹下,文件名为shiyan33_2.c。
目的和要求:
掌握字符数组(字符串)的应用与处理;
1.下列程序的功能是:将字符串b连接到字符串a。但程序中存在若干错误,请你纠正,并将正确的程序保存到学号文件夹下,文件名为shiyan33_1.c。
#include<stdio.h>
void main( )
{ char a[]="wel",b[]="come";
#include <stdio.h>
maቤተ መጻሕፍቲ ባይዱn( )
{
inti, n=20, s, count;
inta[n];s = count = 0;
for (i= 1;i<= n;i++ )
scanf("%d",a[i]);
for (i= 1;i<= n;i++ )
{
if ( a[i] <0 )
break;
s += a[i];
if(a[mid]==k)
{
printf("找到位置为:%d\n",mid+1);find=1;
}
if(a[mid]>k)
__________________;
else
__________________;
}
if(!find)printf(“%d未找到\n”,k);`
}
(2)以下程序的功能是:从键盘上输入若干个学生的成绩,计算平均成绩,并输出低于平均分的分值。根据题意,将程序写完整。。并将程序保存到学号文件夹下,文件名为shiyan3_T2.c。
#include "math.h"
void main()
{
inta[][]={{1,2,3,4,-5},{3,5,-2,4,2},{4,1,2,3,-2},
{1,3,-2,4,6},{2,2,0,7,4}} ;
inti,k,max,sub,temp;
/*交换之前,输出*/
printf("交换之前,输出\n");
printf("sum=%d\n",sum);
}
2)求两个距阵(距阵a:m行×p列,距阵b:p行×n列)的乘法(距阵c:m行×n列)并将正确的程序保存到学号文件夹下,文件名为shiyan32_6.c。
#define M 2
#define N 2
#define P 3
main()
{
inti,j,k,a[M][P],b[P][N],c[M][N];
n++;
scanf(“%f”,&a);
}
ave=__________________;
printf(“output:\n”);
for(i=0;i<n;i++)
if (__________________)
printf(“%f”,x[i]);
}
3.编程题
(1)编写程序,任意输入10个整数的数列完成下列运算:并将程序保存到学号文件夹下。(文件名为shiyan3_B.c)
#define N 10
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;
#include <stdio.h>
#include <stdlib.h>
main()
{
inta[3][5],x,y,i,j,k;
intmax,min;
for(i=0;i<3;i++)