《经典规范C语言程序设计》实验报告(第五章)
《高级语言程序设计》实验报告
班级: 学号: 姓名: 成绩: 实验日期: 年 月 日
实验题目: 实验五 数组程序设计实验目的:
实验内容:(包括算法说明:用文字或流程图说明;程序清单;运行结果:原始数据、相应的运行结果和必要的说明。)
原始数据、相应的运行结果和必要的说明。
原始数据、相应的运行结果和必要的说明。
分析与思考:(调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会)
1
1.改错题
1)为指定的数组输入10个数据,并求和。.c存盘。
#include
void main int n 10,i,sum 0;
int a[n];
for i 0;i 10;i++ scanf "%d",a[i] ; sum sum+a[i]; printf "sum %d\n",sum ; (2)将字符串b连接到字符串a。.c存盘。
#include
void main char a[] "wel",b[] "come";
int i,n 0;
while !a[n] n++;
for i 0;b[i]! '\0';i++ a[n+i] b[i];
printf "%s\n",a ; (2)#define N 20
#include "stdio.h"
void main int a[N],i,j,k,t;
printf "排序前:\n" ;
for i 0;i N;i++ a[i] _________________;
printf "%5d",a[i] ; for i 0;i N-1;i++ k i;
for j i+1;j N;j++ if _________________ k j;
if _________________ t a[k]; a[k] a[i]; a[i] t; printf "排序后:\n" ;
for i 0;i N;i++ printf "%5d",a[i] ; (3)一行文字,删其中某个字符,此行文字和删的字符均由键盘输入,
#include
#include
void main char line[80] ;
char ch;
int i,j;
int len;
printf "输入一行字符 \n" ; ;
printf "输入要删除字符 " ;
ch getchar ;
i 0;
while line[i]! '\0' while && line[i]! ch i++; len strlen line ; for j i;j len-1;j++ ; line[j] '\0'; puts line ; 3.编程题
(1)任意输入10个整数的数列完成下列运算:
要求用选择排序法将数列由小到大排序;
在排序好的数列中插入一个数,使数列保持从到的顺序。
(2)输入字符串s1和s2以及插入位置d,在字符串s1中的指定位置d处插入字符串s2。如:输入字符串"SHHAI"、"ANG"和位置3,则输出: "SHANGHAI";若d大于串s1长度时,串s2插入在s1后面,如s1 "SHANG",S2 "HAI",d=8,则s1 "SHANGHAI"。
(3)找出一个二维数组的“鞍点”,即该位置上的元素在该行是最大,在该列是最小。注意二维数组可能没有“鞍点”
(3).c存盘。
#include
void main int a[2][3],b[2][3],c[2][3],i,j; for i 1; i 2;i++ for j 1; j 3; j++ scanf "%d",a[i][j] ; for i 1; i 2; i++ for j 1; j 3; j++ scanf "%d",b[i][j] ; for i 1; i 2; i++ //A+B矩阵,每个对应元素相加 for j 1; j 3; j++ c[i][j] a[i][j]+b[i][j]; for i 1; i 2; i++ for j 1; j 3; j++ printf "%3d",c[i][j] ; printf "\n" ; 2.)#include "stdio.h"
#define N 10
main int a[ ] 0,1,2,3,4,5,6,7,8,9 ,k;
int low 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 ______