C语言程序设计实验报告(数组)
1 实验目的
(1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法;
(2)熟练掌握字符数组和字符串函数的使用;
(3)掌握与数组有关的常用算法(查找、排序等)。
2 实验内容
编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。
要求:
1、不允许用strcat()和strlen()字符处理库函数;
2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数strlen()计算并返回两个字符串的长度;
3、调用函数catstr()连接两个字符串(将str2连接在str1后面);
4、调用函数lenstr()计算并返回连接后字符串的长度;
5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字符串及其长度。
3算法描述流程图
4 源程序
#include<stdio.h>
#include<string.h>
void catStr(char str1[],char str2[])
{ int i,j;
for (i=0;str1[i]!='\0';i++);
for(j=0;str2[j]!='\0';j++)
str1[i+j]=str2[j];
str1[i+j]='\0';
}
lenStr(char m[] )
{int i;
for (i=0;m[i]!='\0';i++);
printf("%d",i);
}
void main()
{char s1[50]="forever",s2[50]="more";
printf("s1=%s,s2=%s",s1,s2);
printf("\ns1的长度:");
lenStr(s1);
printf("\ns2的长度:");
lenStr(s2);
catStr(s1,s2);
printf("\n连接后的字符:");
printf("%s\n",s1);
printf("连接后字符的长度:");
lenStr(s1);
printf("\n");
}
5 测试数据
s1=forever, s2=more
6 运行结果
7 出现问题及解决方法
在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。
8 实验心得
通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。
实验报告
实验目的:
(1)掌握数组的定义和使用
(2)掌握使用数组的常用算法
实验内容:
【实验5-1】从键盘输入6个同学C语言程序设计期末考试成绩,计算平均分、最高分、最低分,以及超过平均分的人数,并输出以上计算结果值(平均分保留1位小数)。
(1)程序代码
#include<stdio.h>
void main()
{
int a[6];
float aver,max,min,sum;
int i,j,count,temp;
sum=0.0;
count=0;
printf("请输入C语言成绩:\n");
for(i=0;i<=5;i++)
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
aver=sum/i;
printf("平均分为%.1f",aver);
for(i=1;i<6;i++)
{
for(j=0;j<(6-i);j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
max=a[5];
min=a[0];
printf("最高分为%f" "最低分为%f",max,min);
for(i=0;i<=5;i++)
{
if(a[i]>aver)
{
count=count+1;
}
}
printf("超过平均分的人数为%d",count);
}
(2)运行结果
【实验5-2】编写程序,在输入一个字符串后,实现将该字符串存储并倒序输出。
(1)程序代码
#include<stdio.h>
void main()
{
char ch[100];
int i,k;
i=0;
do
{
scanf("%c",&ch[i]);
i++;
}while(ch[i-1]!='\n');
for(k=i-2;k>=0;k--)
{
printf("%c",ch[k]);
}
}
(2)运行结果
【实验5-3】编写程序,输入一个整型的二行三列的二维数组,并将该二维数组行和列的元素互换,存到另一个二维数组中输出 (求转置矩阵)
(1)程序代码
#include<stdio.h>
void main()
{
int a[2][3],b[3][2];
int i,j;
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
{
b[i][j]=a[j][i];
}
}
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
{
printf("%d",b[i][j]);
}
printf("\n");
}
}
(2)运行结果
【实验5-4】编写程序,将某一指定字符从一个已知的字符串中删除,并将删除后的字符串输出。(提示:首先输已知字符串和指定字符,然后依次查找是否有字符与其匹配。如果找到有字符匹配,则删除,后面的字符前移,再输出)
(1)程序代码
#include<stdio.h>
#include<string.h>
void main()
{
int i;
int k;
char b;
char a[6];
gets(a);
printf("请指出要删除字符\n");
i=0;
scanf("%c",&b);
do
{
if(a[i]==b)
{
for(k=i;k<=4;k++)
{
a[k]=a[k+1];
}
}
else
{
i++;
}
}while(i<=4);
for(i=0;i<5;i++)
{
printf("%c",a[i]);
}
}
(2)运行结果
【实验5-5】编写程序,从键盘输入任意6个整数,利用冒泡法进行排序,并将排序后的整数序列输出
(1)程序代码
#include<stdio.h>
void main()
{
int ch[6];
int i,j,temp;
for(i=0;i<=5;i++)
{
scanf("%d",&ch[i]);
}
for(i=1;i<6;i++)
{
for(j=0;j<(6-i);j++)
{
if(ch[j]>ch[j+1])
{
temp=ch[j];
ch[j]=ch[j+1];
ch[j+1]=temp;
}
}
}
for(i=0;i<=5;i++)
{
printf("%d ",ch[i]);
}
}
(2)运行结果
实验小结:
编程过程中,经常会遇到编译正确但是运行不出的问题,很是苦恼。。。
东莞理工学院《C语言程序设计》课程设计题目:图书信息管理系统院系:电子工程学院专业:电子信息工程年级:20##班别:2班指导教师:…
C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体…
河南理工大学计算机科学与技术学院课程设计报告20XX20XX学年第一学期课程名称C语言课程设计设计题目《小学算术运算测试》学生姓名…
C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的…
C语言程序设计课程设计报告20xx20xx学年第1学期题目专业班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录…
《C语言程序设计》实验报告实验七、结构体和联合体程序设计学号姓名一、实验目的1.掌握结构体类型变量和数组、共用体类型变量和数组以及…
C语言程序设计实验实验报告指导老师专业班级学号姓名日期20xx0529重庆邮电大学计算机科学与技术学院实验一实验名称一维数组程序设…
C语言程序设计实验报告专业班级日期11月26日成绩实验组别第327次实验指导教师李开学生姓名学号同组人姓名实验名称数组实验一实验目…
C语言程序设计实验报告学号姓名1设计一个函数fc统计数组中偶数和奇数的个数数组元素个数不多于10个编写main函数正确调用fc函数…
课程设计报告学院系专业名称课程设计科目所在班级学生学号学生姓名指导教师完成时间吉林大学珠海学院计算机科学与技术系软件工程C语言程序…
C语言程序设计实训总结为加强学生的实践动手能力,为贯彻落实教学计划的要求,培养学生的专业实践技能,计算机系05级计算机网络工程与管…