实验6 数组和字符串
字符数组实验报告分析

一、实验背景字符数组是C语言中常用的数据结构,它由一组字符元素组成,用于存储字符串。
通过对字符数组的操作,可以实现对字符串的读取、修改、排序等操作。
本次实验旨在通过一系列的字符数组操作,加深对C语言字符数组处理的理解和应用。
二、实验目的1. 理解字符数组的定义和初始化方法;2. 掌握字符数组的读取和修改操作;3. 熟悉字符串的输入、输出和拼接;4. 学习字符串的查找和替换;5. 掌握字符数组的排序方法。
三、实验内容1. 字符数组的定义和初始化实验步骤:(1)定义一个字符数组;(2)使用字符数组存储字符串;(3)初始化字符数组。
2. 字符数组的读取和修改实验步骤:(1)通过指针访问字符数组的元素;(2)修改字符数组中的指定元素;(3)遍历字符数组,读取所有元素。
3. 字符串的输入、输出和拼接实验步骤:(1)使用scanf和printf函数实现字符串的输入和输出;(2)使用strcpy函数复制字符串;(3)使用strcat函数拼接字符串。
4. 字符串的查找和替换实验步骤:(1)使用strstr函数查找子字符串;(2)使用strcpy函数替换字符串中的指定子串;(3)使用str_replace函数实现字符串的替换。
5. 字符数组的排序实验步骤:(1)使用冒泡排序算法对字符数组进行排序;(2)使用选择排序算法对字符数组进行排序;(3)使用插入排序算法对字符数组进行排序。
四、实验结果与分析1. 字符数组的定义和初始化实验结果显示,字符数组可以正确存储字符串,并且可以对其进行初始化。
2. 字符数组的读取和修改通过指针访问字符数组的元素,可以实现对字符数组的读取和修改。
遍历字符数组,可以读取所有元素。
3. 字符串的输入、输出和拼接使用scanf和printf函数可以实现字符串的输入和输出。
strcpy和strcat函数可以实现字符串的复制和拼接。
4. 字符串的查找和替换使用strstr函数可以查找子字符串,使用strcpy函数可以替换字符串中的指定子串。
数组及应用实验报告

一、实验目的1. 理解数组的定义和概念,掌握数组的声明、初始化和访问方法。
2. 掌握一维数组和二维数组的操作,包括元素的赋值、排序、查找等。
3. 熟悉数组在实际编程中的应用,如排序算法、查找算法等。
4. 培养解决实际问题的能力,提高编程水平。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 语言:C/C++三、实验内容1. 一维数组的声明、初始化和访问2. 一维数组的排序(冒泡排序、选择排序、插入排序)3. 一维数组的查找(线性查找、二分查找)4. 二维数组的声明、初始化和访问5. 二维数组的操作(求和、求平均值、查找最大值和最小值)6. 数组在实际编程中的应用(如冒泡排序算法实现、字符串匹配)四、实验步骤1. 一维数组的声明、初始化和访问(1)声明一个整型一维数组,如int arr[10];(2)初始化数组,如arr[0] = 1, arr[1] = 2, ...;(3)访问数组元素,如printf("%d", arr[i]);2. 一维数组的排序(1)冒泡排序:比较相邻元素,如果逆序则交换,重复执行,直到排序完成。
(2)选择排序:每次选择未排序部分的最小(或最大)元素,放到已排序部分的末尾。
(3)插入排序:将未排序的元素插入到已排序部分的合适位置。
3. 一维数组的查找(1)线性查找:逐个比较数组元素,找到目标元素则返回其位置。
(2)二分查找:在有序数组中,先确定中间元素,再与目标元素比较,根据比较结果缩小查找范围。
4. 二维数组的声明、初始化和访问(1)声明一个整型二维数组,如int arr[3][4];(2)初始化数组,如arr[0][0] = 1, arr[0][1] = 2, ...;(3)访问数组元素,如printf("%d", arr[i][j]);5. 二维数组的操作(1)求和:遍历二维数组,将所有元素相加。
《C++语言程序设计》第6章 数组 指针与字符串

• 可以只对部分元素初始化
• 例如:static int a[3][4]={{1},{0,6},{0,0,11}};
• 列出全部初始值时,第1维下标个数可以省略
• 例如:static int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; • 或:static int a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
其中数组a的存储顺序为:
a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23
12
二维数组的初始化
• 将所有初值写在一个{}内,按顺序初始化
• 例如:static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
• 分行列出二维数组元素的初值
cout << "Moving the point to (" << newX << ", " << newY << ")" << endl; x = newX; y = newY; }
例6-3 对象数组应用举例
//6-3.cpp #include "Point.h" #include <iostream> using namespace std;
int main() {
cout << "Entering main..." << endl;
C语言程序设计

C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:#include<stdio.h>int main(){printf("hello world!\n");return 0;}运行结果1:程序分析1:代码2:#include<stdio.h> int main(){int a=5,b=6,c;c=a+b;printf("c=%d\n",c);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){int a=5,b=6,c;if(a>b){c=a;}else{c=b;}printf("%d\n",c);return 0;}运行结果3:程序分析3:五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:#include<stdio.h>int main(){char c1,c2;c1=getchar();printf("%c,%d\n",c1,c1);c2=c1-32;printf("%c,%d\n",c2,c2);return 0;}运行结果1:程序分析1:代码2:#include<stdio.h>int main(){int a=5,c1,c2;double b=3.141592653,c3,c4;c1=a/b;c3=a/b;c2=a+b;c4=a+b;printf("%d,%d,%lf,%lf\n",c1,c2,c3,c4);return 0;}运行结果2:程序分析2:代码3:#include<stdio.h>int main(){here: printf("计算三角形的面积请输入‘1’,立方体的体积和表面积请输入‘2’,圆的面积和周长请输入‘3’.\n");int a;scanf("%d",&a);if(a==1){double l,h,s;printf("请输入三角形的底边长和所在底边的高.");scanf("%lf%lf",&l,&h);s=l*h/2;printf("三角形的面积为%.16f\n",s);}else if(a==2){printf("请输入立方体的长宽高.");double b,c,d,v,s;scanf("%lf%lf%lf",&b,&c,&d);v=b*c*d;s=b*c+b*d+c*d;printf("立方体的体积为%.16f,表面积为%.16f\n",v,s);}else{double r,s,c,m;printf("请输入圆的半径");scanf("%lf",&r);m=3.141592653;s=m*r*r;c=2*m*r;printf("圆的面积为%.16f,圆的周长为%.16f\n",s,c);}goto here;}运行结果3:程序分析3:代码4:#include<stdio.h> int main(){getchar();putchar('b');return 0;}运行结果4:程序分析4:代码5:#include<stdio.h>int main(){int a;printf("请输入任意十进制整数:");scanf("%d",&a);printf("转换为八进制数为:%o\n转化为十六进制数为:%x\n",a,a); return 0;}运行结果5:程序分析5:五、实验总结C语言程序设计上机实验报告实验三一、实验名称:选择结构程序设计二、实验目的:正确使用逻辑运算符和逻辑表达式,熟练掌握if 语句和switch 语句,学习调试程序。
c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
C语言实验报告第6章答案

6.2基础实验一、程序分析分析以下程序段完成的功能,填写在序号后的空白处,并运行验证结果。
1. ⊙以下程序的运行结果是:_______s=12345↙____________________。
#include <stdio.h>int main( ){ inta[]={1,2,3,4,5},i,j=1,s=0;for(i=4;i>=0;i--){ s=s+a[i]*j;j=j*10;}printf(“ s= %d \n” , s );return 0;}2. 以下程序的运行结果是:_____7 5 3______________________。
#include<stdio.h>int main( ){ int k ;int a[3][3]={9,8,7,6,5,4,3,2,1};for(k=0;k<3;k++)printf(“%d ”,a[k][2-k]);return 0;}3. 以下程序的功能是:____查找最大值元素及下标_________________。
#include <stdio.h>int main( ){ int i, j ,x =0 ,y = 0 , m ;int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 };m = a [0][0] ;for (i=0 ;i < 3 ;i++)for (j = 0 ; j<3 ; j++ )if ( a[ i] [ j ] >m ){ m = a[ i ][ j ] ;x = i ;y = j ;}printf(“ ( % d , % d ) = % d \n”, x , y,m );return 0;} 运行结果:___(1 , 2 ) = 6↙_________________4. 以下程序的的运行结果是:__8,I am student!___________________。
LabVIEW字符串、数组、簇编程实验

LabVIEW字符串、数组、簇编程实验
⼀、实验⽬的
1、掌握创建和使⽤数组的⽅法
2、能够使⽤多种数组内部函数
3、掌握簇的创建和使⽤⽅法
4、学会使⽤内部函数处理簇
⼆、实验内容
1、字符串函数练习:如字符串的拆分、字符长度的计算、字符串的拼接、替换字符串和搜索字符串等;
2、计算⼀组随机数的最⼤值和最⼩值
提⽰:在程序框图中,放置⼀个For循环,设置循环次数为10次。
单击边框选择添加两个移位寄存器,分别初始化为0和1。
新建⼀个VI,在前⾯板上放置⼀个波形图标,⽤它来记录产⽣的随机数。
同时在前⾯板上放置两个数值显⽰控件“最⼤值”和“最⼩值”,⽤来显⽰随机数中的最⼤值和最⼩值。
放置随机数函数和最⼤最⼩值函数与程序框图中,其中最⼤最⼩值函数位于编程→⽐较→最⼤值与最⼩值。
然后连线。
3、构建VI,输出⼀个10⾏5列的⼆维数组。
第1⾏包含0~1范围内的5个随机数,第2⾏包含1~2范围内的随机数,以此类推,直到第10⾏包含9~10范围内的5个随机数。
4、设计VI,根据输⼊的3个考试成绩数组,计算得到⼀个簇数组包括平均成绩、成绩等级和班级排名。
每次的考试成绩对应⼀个数组,平均成绩是这样定义的:第⼀次考试占30%,第⼆次考试成绩占30%,期末考试占40%。
成绩等级按照平均成绩,以下表列出的标准来确定。
(提⽰:在确定成绩等级的时候⽤Case结构将会很⽅便。
)
平均成绩标准
三、实验结论及分析
1.。
java实验报告-

实验报告□实践报告□课程名称:Java语言程序设计实验、实践名称:Java语言基础、数组和字符串编程、Java面向对象程序设计、Java异常处理多线程编程、图形用户界面编程实验、实践地点:致向楼301专业班级:软件1531 学号:学生姓名:关玉芬指导教师:相洁2017 年1月8日实验一Java语言基础一、实验目的和要求(1) 通过实验,掌握Java语言程序设计的基本方法。
(2) 学会Java语言中标示符的命名、运算符和表达式的应用。
(3) 熟练地掌握Java程序流程控制语句的应用。
二、实验内容1.编写应用程序,计算100(含100)以内所有偶数的和。
2.“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。
编写程序,求所有的水仙花数。
3.编写一个程序,求1-100间的素数。
4. 有一函数:x (x<1)Y= 3x-2 (1≤x<10)4x (x≥10)写一程序,给定x值,输出y值。
5. 使用for循环语句,编写程序输出以下图案。
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆6.编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。
判断年是否为闰年的条件是:①若年号可以被4整除,而不能被100整除,则是闰年;②若年号可以被400整除,也是闰年。
三、主要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、实验代码1. public class a1 {public static void main(String[] args) {int i,sum=0;for(i=0;i<=100;i++){if(i%2==0)sum+=i;}Syst}}2. public class a2 {public static void main(String[] args) {int i,a,b,c;for(i=100;i<=999;i++){a=i%10;b=(i-a)%100/10;c=(i-b*10-a)/100;if(i==a*a*a+b*b*b+c*c*c){}}}}3. public class a3 {public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=2;i<=100;i++) {boolean t = false;for(int j=2;j<i;j++){if(i%j==0){t=false;break;}else {t=true;}}4. public class a4 {public static void main(String[] args) {int i,j;for(i=1;i<=4;i++){for(j=1;j<=((-1)*i+4);j++)for(j=1;j<=(2*i-1);j++)☆");for(i=3;i>=1;i--){for(j=1;j<=((-1)*i+4);j++)for(j=1;j<=(2*i-1);j++)☆");5. import java.util.*;public class a5 {public static void main(String[] args) {Scanner x=new Scanner(System.in);int i=x.nextInt();x.close();}}6. package shiyan;public class a6 {public static void main(String[] args) {int i,j=0;for(i=1900;i<=2100;i++){if((i%4==0)&&(i%100!=0)||(i%400==0)){j++;if(j%5==0)else{五、实验结果1.2.3.4.5.6.六、讨论、心得初步掌握了Eclipse集成开发环境。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验6 数组和字符串
【实验目的】
①掌握一维数组和二维数组的基本操作(定义、初始化、输入、赋值、输出)。
②掌握字符数组和字符串函数的使用。
③掌握与数组有关的常用算法(排序、查找、数组元素的插入和删除)。
【实验6.1】从键盘输入10个整数存入数组a中,然后输出该数组各个元素,并求其中的最大值、最小值和平均值。
【提示】
(1) 通过循环输入10个整数并存入数组a.。
(2)以a[0]作为最大值、最小值及累加和的初始值,用数组的下标和循环相结合,求出
数组的最大值、最小值和平均值。
(3)输出数组各元素,并输出最大值、最小值和平均值。
注意:平均值是通过除法完成的,应选用适当的数据类型。
答案:#include<stdio.h>
void main()
{int a[10],max,min,sum,i;
float aver;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("%d",a[i]);
sum=0;
for(i=0;i<10;i++)
sum=sum+a[i];
aver=sum/10.0;
max=a[0];min=a[0];
for(i=0;i<10;i++)
{ if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
}
printf("max=%d,min=%d,aver=%f",max,min,aver);
}
【实验6.2】实行学分制,学生的平均绩点是衡量学生学习的重要依据。
成绩等级与绩点的关系如下表所示:
平均绩点=∑∑⨯所学各课程的学分点绩所学各课程学分
编一程序利用两个一维数组分别输入某学生20门课程的学分xf[20]和对应成绩score[20],计算其平均绩点aver 。
【指导】本题是一个求数组元素累加和的问题。
(1)定义数组及相关的变量:20门课程的成绩用数组score[20]表示,20门课程的学分用数组xf[20]表示。
(2)输入20门课程的成绩及其对应学分保存在数组中。
(3)计算20门课程的学分之和sumxf ,并根据成绩的档次分别取不同的绩点计算所有课程的学分与绩点的乘积之和sumscore 。
(4)平均绩点aver=sumscore/sumxf 。
【参考程序】
#include <stdio.h>
void main()
{ float score[20],sumscore=0.0F,sumxf=0.0F,aver;
int i,jd,xf[20];
for (i=0; i<20; i++)
scanf("%f%d",&score[i],&xf[i]);
for (i=0; i<20; i++)
{ sumxf=sumxf+xf[i]; //计算学分和
if (score[i]>=90) //由成绩确定绩点
jd=4;
else if (score[i]>=80)
jd=3;
else if (score[i]>=70)
jd=2;
else if (score[i]>=60)
jd=1;
else
jd=0;
sumscore=sumscore+xf[i]*jd; //计算学分与绩点的乘积和
}
aver=sumscore/sumxf; //计算平均绩点
printf("%.2f\n",aver);
}
【实验6.3】请编写程序,它的功能是: 将M 行N 列的二维数组中的数据, 按列的顺序依次放到一维数组中。
例如, 二维数组中的数据为:
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应是:
33 44 55 33 44 55 33 44 55 33 44 55。
【提示】
(1)定义int 型数组a[M][N]及b[M*N](M 、N 用符号常数定义)。
(2)输入二维数组的实际行数和列数,以及二位数组的所有元素。
(3)通过二重循环将二维数组a 中各列的元素依次赋值到一维数组b 中(b 的下标要逐次增加)。
(4)按矩阵的形式输出二维数组a 及一维数组的各个元素。
【实验6.4】编制程序,从num 个(num 的值通过键盘输入来指定)字符串中找出最长的一个字符串,并将输出该最长的字符串及其在数组中的位置。
例如,输入的字符串为:
Pascal
Fortran
Cobol
Lisp
Ada
则应输出:
最长的字符串是:Fortran,它位于数组的第2行。
【提示】
(1)定义符号常数M 为10、整型变量num 、字符型数组str[M][80]。
(2)输入num 的值,它代表要实际输入的字符串的个数
(3)依次输入num 个字符串存放在 str 中。
(4)依次计算str 中每个字符串的长度,并从中找出最长的字符串,记下它在数组中的下标。
(5)输出结果。
【实验6.5】编制程序自动生成如下N ×N 矩阵,然后将数组的第一行与倒数第一行的元素对调,将第二行元素与倒数第二行元素对调,并输出对调后的矩阵。
⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=16151413121110987654321A 【指导】
(1) 可以用a[i][j]=i*4+j+1自动生成上述矩阵。
(2) 为了实现第i 行元素与倒数第i 行元素交换,令i 从1变化到N/2,使a[i][j]与a[N-1-i][j]交换。
【参考程序】
#include <stdlib.h>
#define N 4
void main()
{ int a[N][N],i,j,k;
for (i=0; i<N; i++)
for (j=0; j<N; j++)
a[i][j]= i*4+j+1; //自动生成矩阵
for (i=0; i<N/2; i++)
for (j=0; j<N; j++)
{ k= a[i][j]; a[i][j]=a[N-i-1][j]; a[N-i-1][j]=k; } //行交换
for (i=0; i<N; i++) //输出交换后的矩阵
{ for (j=0; j<N; j++)
printf("%4d ", a[i][j]);
printf("\n");
}
}
【实验6.6】在字符串str 中删除变量c 中的字符,有几个删几个,并返回所删字符的个数。
例如,若输入到str 中字符串为"ab abc bcdef ",输入到ch 中的字符为'b',则应输出字符串"a ac cdef "和 3(表示删了3个字符' b')。
【提示】
(1)定义char 型数组str[80]、str1[80]和char 型变量ch ,其中,str 用来存放输入的原始字符串,str1用来存放结果,ch 用来存放输入的要被删除的字符。
(2)依次输入str 和ch 。
(3)从第一个字符开始顺序巡视str 中的各个字符,凡是与ch 不同的字符就存放到str1中(与ch 相同的字符则跳过)。
(4)当str 中的所有字符均被巡视完,将str1的末尾增加一个0字符。
str1即为所求的结果。
【实验6.7】编制程序利用初始化的方法生成如下4×4矩阵,然后将该矩阵的上三角形(不含主对角线元素)所有元素置0。
A=⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡7654654354324321 【提示】
该矩阵的特点是对称矩阵:上三角部分与下三角部分是对称的,对称轴为主对角线。
生成该对称矩阵的方法是:先生成上三角部分的各个元素,a[i][j]=i+j+1。
下三角部分元素的值通过对称关系确定。