第一篇:数组、字符处理实验报告
验 实验 4
数 组
1.实验目的和要求 (1)掌握一维数组与二维数组的定义、使用及初始化方法。
(2)学习数组作为函数参数的用法。
(3)掌握字符数组和字符串函数的使用方法。
(4)掌握与数组有关的常用排序算法,进一步理解模块化程序设计的方法。
(5)掌握字符、字符串的输入/输出方法。
(6)掌握字符数组的使用。
(7)学会使用字符串的指针和指向字符串的指针变量。
2.实验内容:实验指导书中的 实验六、实验七 3.实验步骤 实验六 数组部分:
6-1:解决问题的算法或源程序代码:
程序的运行测试结果截图(考虑各种情况下的运行结果):
6-2:该程序完整的源程序代码是:
程序运行结果截图:
6-3 :该程序完整的源程序代码是:
程序运行结果截图:
6-4.:解决问题的关键算法的源程序代码是:
程序运行结果截图:
6-5:解决问题的关键算法的源程序代码是:
程序运行结果截图:
6-6(选作):我使用的算法为:请用文字描述一下
程序运行结果截图:
6-7(选作):我使用的算法为:
程序运行结果截图:
7-1 该程序的功能是:
去除空格后的字符串 程序运行结果截图:
7-2:解决问题的关键算法的源程序代码是:
程序运行结果截图:
7-3:解决问题的关键算法的源程序代码是:
程序运行结果截图:
7-4:解决问题的关键算法的源程序代码是:
程序运行结果截图:
7-5:解决问题的关键算法的源程序代码是:
程序运行结果截图:
7-6:解决问题的关键算法的源程序代码是:
程序运行结果截图:、实验小结 一维数组与二维数组使用和初始化,数组作为函数参数的用法还是不太熟练。掌握了与数组有关的常用排序算法,字符、字符串的输入输出方式。进一步掌握使用字符串的指针和指向字符串的指针变量的方法。掌握了字符串数组和数字数组的运算。
第二篇:实验:字符数组与字符串
实验11:字符数组与字符串
一、实验目的1、理解字符数组和字符串的概念。
2、掌握字符数组的定义、初始、数组元素引用、输入输出。
3、掌握字符数组的处理
4、掌握常用字符串处理函数
二、实验内容
1、编制程序:对键盘输入的字符串进行逆序,逆序后的字符串仍然保留在原来字符数组中,最后输出。
(1)不得调用任何字符串处理函数,包括strlen;
(2)允许使用可用的字符串处理函数。
例如:输入hello world 输出dlrow olleh2、编写程序:对键盘输入的两个字符串进行连接。
(1)尽管我们知道strcat()可以简单完成此任务,仍然规定不得调用任何字符串处理函数,包括strlen;
(2)允许使用可用的字符串处理函数。
例如:输入hello
(1)不得调用任何字符串处理函数,包括strlen;
(2)允许使用可用的字符串处理函数。
例如:输入:Hello World!输出:hELLO wORLD!
三、实验小结
实验中碰到的问题,以及思考。
第三篇:C语言数组实验报告
C语言实验书P37
(2)#include
int main(void)
{
int i;
char ch;
char str[100];
printf(“请输入字符串:n”);
scanf(“%s”, str);
printf(“请输入查找字符:n”);
scanf(“ %c”, &ch);
for(i=0;str[i]!=' ';i++)
{
if(str[i] == ch)
{
printf(“位置为:%dn”, i+1);
return 0;
}
}
printf(“该字符不存在n”);
return 0;
}
(3)
(1)
#include
main()
{
long matrix[8][8],min,max,temp;
int i,j,m,n;
printf(“nPlease input n of Matrix:n”);
scanf(“%d”,&n);
m=n;
printf(“nPlease input elements of Matrix(%d*%d):n”,m,n);for(i=0;i for(j=0;j scanf(“%ld”,&matrix[i][j]); for(i=0;i { for(j=0;j printf(“%5ld”,matrix[i][j]); printf(“n”); } } (2) #include main() { long matrix[8][8],min,max,temp; int i,j,m,n,nMax=0,nMin=0; printf(“nPlease input n of Matrix:n”); scanf(“%d”,&n); m=n; printf(“nPlease input elements of Matrix(%d*%d):n”,m,n);for(i=0;i for(j=0;j scanf(“%ld”,&matrix[i][j]); min=max=matrix[0][0]; for(i=0;i for(j=0;j { if(matrix[i][j]>max) { max=matrix[i][j]; nMax=i; } else if(matrix[i][j] { min=matrix[i][j]; nMin=i; } } for(j=0;j { temp=matrix[nMax][j]; matrix[nMax][j]=matrix[nMin][j]; matrix[nMin][j]=temp; } printf(“nResult matrix:n”); for(i=0;i { for(j=0;j printf(“%5ld”,matrix[i][j]); printf(“n”); } } (3) #include main() { long matrix[8][8],min,max,temp; int i,j,m,n,nMax=0,nMin=0; printf(“nPlease input n of Matrix:n”); scanf(“%d”,&n); m=n; printf(“nPlease input elements of Matrix(%d*%d):n”,m,n);for(i=0;i for(j=0;j scanf(“%ld”,&matrix[i][j]); min=max=matrix[0][0]; for(i=0;i for(j=0;j { if(matrix[i][j]>max) { max=matrix[i][j]; nMax=i; } else if(matrix[i][j] { min=matrix[i][j]; nMin=i; } } for(j=0;j { temp=matrix[nMax][j]; matrix[nMax][j]=matrix[nMin][j]; matrix[nMin][j]=temp; } printf(“nResult matrix:n”); if(nMax!=nMin) for(i=0;i { for(j=0;j printf(“%5ld”,matrix[i][j]); printf(“n”); } Printf(“same line!n”) (4)#include void main() { int a[20]; int n,j,i,k,m=20; printf(“给定的数组为:n”); for(n=0;n<20;++n) { a[n]=2*n+3; printf(“%d ”,a[n]); } printf(“n”); printf(“输入要查找的数:”); scanf(“%d”,&j); for(n=0;n<=m;) { i=(m+n)/2; if(a[i] n=i+1; else if(a[i]>j) m=i-1; else if(a[i]=j) { printf(“该数在数组的第%d位上n”,i+1);break; } if(n>m) { printf(“No Foundn”); } } } 二、#include void arr(); int sea(int j); int a[20]; void main() { int n,j,i,h; printf(“请输入20个数据:n”); for(n=0;n<20;++n) scanf(“%d”,&a[n]); } arr(); printf(“n请输入要查找的数:”); scanf(“%d”,&j); h=sea(j); if(h==0) { printf(“No foundn”); } else { printf(“该数在已排序数组的第%d位n”,h)} } void arr() { int z,n,k; for(n=0;n<20;++n) { for(k=0;k<19-n;k++) if(a[k]>a[k+1]) { z=a[k]; a[k]=a[k+1]; a[k+1]=z; } printf(”将数组排序,得:n“); for(n=0;n<20;++n) printf(”%d ",a[n]); } } int sea(int j) { int n,i,h,m=20; for(n=0;n<=m;) { i=(n+m)/2; if(a[i] n=i+1; else if(a[i]>j) m=i-1; else if(a[i]=j) { h=i+1;break;}}if(n>m)h=0;return h;} 学号:__________ 姓名:__________ 班级:__________ 日期:__________ 指导教师:__________ 成绩:__________ 实验三 数组 一、实验目的1、掌握一维和二维数组的定义、赋值和输入输出 2、掌握字符数组和字符串数组的使用 3、掌握与数组有关的排序算法 二、实验内容 1、已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。(习题7.4) 2、将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。(习题7.5) 3、如下程序是按选择法对数组中的n个元素按从小到大的顺序排序,请对程序中的错误进行改正,使其正常运行。#include 三、实验步骤与过程 www.xiexiebang.com【xiexiebang.com范文网】 第一┆范文网整理该文章,版权归原作者、原出处所有...四、程序调试记录 C语言字符串指针变量与字符数组的区别 用字符数组和字符指针变量都可实现字符串的存储和运算。但是两者是有区别的。在使用时应注意以下几个问题: 1)字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以 作为串的结束。字符数组现金网96y.org是由于若干个数组元素组成的,它可用来存放整个字符串。 2)对字符串指针方式 char *ps=C Language; 可以写为: char *ps; ps=C Language; 而对数组方式: static char st[]={C Language}; 不能写为: char st[20]; st={C Language}; 而只能对字符数组的各元素逐个赋值。 从以上几点可以看出字符串指针变量与字符数组在使用时的区别,同时也可看出使用指针变量更加方便。 前面说过,当一个指针变量在未取得确定地址前使用是危险的,容易引起错误。但是博彩娱乐棋牌q07i5.org对指针变量直接赋值是可以的。因为C系统对指针变量赋值时要给以确定的地址。 因此,char *ps=C Langage; 或者 char *ps; ps=C Language; 都是合法的。第四篇:C语言实验报告《数组》
第五篇:C语言字符串指针变量与字符数组的区别