实验四 数组和字符串

实验四数组和字符串

实验目的

掌握数组及数组元素的概念、数组的定义、数组元素的赋值和引用;正确使用数值数组和字符数组,并掌握与数组有关的常用算法。

要点提示

1.数组是相关变量的有序集合,其中所有的变量具有相同的数据类型。

2.一维数组定义格式为:

类型说明符数组名[size]

3.数组的下标:

数组的下标从0开始,到size-1为止。

4.多维数组定义格式为:

类型说明符数组名[size1][size2]…[sizen]

5.字符串

字符串一般使用一维字符数组处理,实际上就是以空字符结尾的字符数组。

字符串常量是由一对双引号括起来的字符集合。

实验内容

1.一维数组的定义、赋值和引用

2.与数组有关的算法。

3.二维数组的定义,赋值和引用

4.字符数组的定义和使用

5.常用字符串处理函数的使用

实验步骤

读懂并输入程序,完成填空后输出结果,(下面程序中的中文注释可以不输入)

1. 建立一个一维数组,用来存放5名学生的成绩,输入成绩,并计算平均分。

#define N 5

main()

{

int 【】; /* 数组定义语句 */

int i,sum=0;

float aver;

printf("\nInput 5 numbers:");

for (i=0; i<5; i++) {

scanf("%d", 【】); /* 输入数组元素 */

sum=sum+a[i];

}

aver=【】; /* 计算平均分 */

printf("\nThe average score is:%f", aver);

}

程序运行结果:

Input 5 numbers: 80 80 90 90 90

The average score is: 86.000000

#define N 5

main()

{

int a[5]; /* 数组定义语句 */

int i,sum=0;

float aver;

printf("\nInput 5 numbers:");

for (i=0; i<5; i++)

{

scanf("%d", &a[i]); /* 输入数组元素 */

sum=sum+a[i];

}

aver=sum/5.0; /* 计算平均分 */

printf("\nThe average score is:%f", aver);

}

2. 设数组a 包括10个元素,下面程序的功能是求出a中各相邻两个元素的和,并将这些和存放在数组 b中,按每行3个元素的形式输出。

例: b[1]=a[1]+a[0],…b[9]=a[9]+a[8]

main()

{int a[10],b[10],i;

printf("\nInput 10 numbers: ");

for (i=0; i<10;i++) /* 数组输入 */

scanf("%d", &a[i]);

for (i=1; i<10; i++)

b[i]=【】; /* 计算b数组中的元素 */

for (i=1; i<10; i++)

{ printf("%3d",b[i]);

if (【】==0) printf("\n"); /* 每行打印3个数据 */

}

}

程序运行结果:

Input 10 numbers:1 2 3 4 5 6 7 8 9 10

3 5 7

9 11 13

15 17 19

main()

{

int a[10],b[10],i;

printf("\nInput 10 numbers: ");

for (i=0; i<10;i++) /* 数组输入 */

scanf("%d", &a[i]);

for (i=1; i<10; i++)

b[i]=a[i]+a[i-1]; /* 计算b数组中的元素 */ for (i=1; i<10; i++)

{

printf("%3d",b[i]);

if (i%3==0) printf("\n"); /* 每行打印3个数据 */

}

}

3. 将一个数组中的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。提示:a[0]和a[n-1]交换, a[1]和a[n-1-1]交换….

#define N 5

main()

{ int a[N]={8,6,5,4,1}, i, temp;

printf("\nThe original array is:");

for (i=0; i

printf("%4d", a[i]);

for (i=0; i

{ temp=a[i];

【】;

【】;

}

printf("\nThe new array is:");

for (i=0; i

printf("%4d",a[i]);

}

程序运行结果

The original array is: 8 6 5 4 1

The new array is: 1 4 5 6 8

#define N 5

main()

{

int a[N]={8,6,5,4,1}, i, temp;

printf("\nThe original array is:");

for (i=0; i

printf("%4d", a[i]);

for (i=0; i

{

temp=a[i];

a[i]=a[4-i];

a[4-i]=temp;

}

printf("\nThe new array is:");

for (i=0; i

printf("%4d",a[i]);

}

4. 求一个3X3矩阵主对角线元素之和。提示求a[0][0]+a[1][1]+a[2][2].

main()

{int 【】; /* 数组定义语句 */

int i,j,sum=0;

printf("\nPlease input data: \n");

for (i=0;i<3;i++)

scanf("%d%d%d",【】); /* 输入一行数组元素 */

for (i=0;i<3;i++)

printf("\n%d %d %d ",a[i][0],a[i][1],a[i][2]); /* 输出一行数据元素 */ for (i=0;i<3;i++)

sum = 【】; /* 计算对角线元素之和,提示i=i*/

printf("\nThe data is :%d",sum);

}

程序运行结果如下:

Please input data:

12 34 54

43 12 76

54 10 12

12 43 54

34 12 10

54 76 12

The data is 36

main()

{

int a[3][3]; /* 数组定义语句 */

int i,j,sum=0;

printf("\nPlease input data: \n");

for (i=0;i<3;i++)

scanf("%d%d%d",&a[0][i],&a[1][i],&a[2][i] ); /* 输入一行数组元素 */ for (i=0;i<3;i++)

printf("\n%d %d %d ",a[i][0],a[i][1],a[i][2]); /* 输出一行数据元素 */ for (i=0;i<3;i++)

sum = a[0][0]+a[1][1]+a[2][2]; /* 计算对角线元素之和,提示i=i*/

printf("\nThe data is :%d",sum);

}

5. 将两个字符串连接起来,不要用strcat函数。

main()

{

char s1[80],s2[40];

int i=0,j=0;

printf("\nInput the first string:");

gets(s1);

printf("\nInput the second string:");

gets(s2);

while (s1[i] !='\0')

【】;

while (s2[j] !='\0')

s1[i++]=【】; /* 拼接字符到s1 */

s1[i] ='\0';

printf("\nNew string: %s",【】);

}

程序运行结果:

Input the first string:China

Input the second string:Beijing

New string: ChinaBeijing

main()

{

char s1[80],s2[40];

int i=0,j=0;

printf("\nInput the first string:");

gets(s1);

printf("\nInput the second string:");

gets(s2);

while (s1[i] !='\0')

i++;

while (s2[j] !='\0')

s1[i++]=s2[j++]; /* 拼接字符到s1 */

s1[i] ='\0';

printf("\nNew string: %s",s1);

}

6. 下面程序的功能是在一个字符数组中查找一个指定的字符,若数组中含有该字符则输出该字符在数组中第一次出现的位置(下标值);否则输出-1。

#include

main()

{ char c='a',t[50]; /* 字符数组定义语句 */

int n,k,j;

printf("\nInput a string:");

gets(t);

n=【】; /* 用函数得到该字符串的长度 */

for(k=0;k

if (t[k]==c) {j=k; break;}

else j=-1;

printf("\n Position is:%d",【】); /* 输出查询结果 */

}

程序运行结果如下:

Input a string:12345abcde

Position is : 5

再次运行程序:

Input a string:12345

Position is : -1

#include

main()

{

char c='a',t[50]; /* 字符数组定义语句 */

int n,k,j;

printf("\nInput a string:");

gets(t);

n=strlen(t); /* 用函数得到该字符串的长度 */

for(k=0;k

if (t[k]==c)

{

j=k;

break;

}

else j=-1;

printf("\n Position is:%d",j); /* 输出查询结果 */ }

13 《C语言程序设计》教案 第四章 数组(3)—字符数组和字符串

教学内容 1.基本内容:(1)几种常用的字符串处理函数(2)指针与数组。 2.重点:几种常用的字符串处理函数 3.难点:指针与数组 讲课进程和时间分配 1、复习与新知识导入(5分钟) 2、字符串处理函数(45分钟) C语言编译系统中,提供了很多有关字符串处理的库函数。下面介绍几个常用的字符串处理函数。使用输入、输出字符和字符串函数时,应在函数前加上头文件stdio.h;使用其他字符串操作函数时,则应加上头文件string.h。 板书:#include #include (1)字符串输出函数 格式:puts(字符串) 功能:将一个字符串(以\0为结束标志)输出到终端。输出的字符串中可以包含转义字符。例如:charstr口={“China\nBeijing};puts(str); 输出:China Beijing 在输出时将字符串结束标志\0转换成\n,即输出完字符串后换行。 板书:puts(str);与printf(%s\n,str)等价或puts(OK!);与printf(%s\n,OK!)或printf(OK!\n)等价(2)字符串输入函数 格式:gets(字符数组) 功能:从终端输入一个字符串(可包含空格)以回车为输入结束标志,将接受到的字符依次赋值给字符数组各个元素,并自动在字符串末尾加结束标记\0。例如:gets(str);注意:用puts和gets函数只能输入或输出一个字符串,不能写成:puts(str1,str2);或:gets (str1,str2);说明:字符串可以是字符数组或字符串常量。 而scanf()是以回车、空格或tab键做分隔符的。 例:voidmain() { chars[100]; printf(请输入一个字符串:); gets(s); printf("输入的字符串是:");puts(s); } 红色改为puts(gets(s)),不影响程序运行结果。 (3)连接两个字符串函数 格式:strcat(字符串1,字符串2)

实验9:字符数组与字符串

实验9:字符数组与字符串 实验名称:字符数组与字符串成绩: 实验日期:年月日实验报告日期:年月日 一、实验目的 1、理解字符数组和字符串的概念。 2、掌握字符数组的定义、初始、数组元素引用、输入输出。 3、掌握字符数组的处理 4、掌握常用字符串处理函数 二、实验内容 1、编制程序:对键盘输入的字符串进行逆序,逆序后的字符串仍 然保留在原来字符数组中,最后输出。(不得调用任何字符串处理函数,包括strlen) 例如:输入hello world 输出dlrow olleh 2、编写程序:对键盘输入的两个字符串进行连接。(尽管我们知 道strcat()可以简单完成此任务,本题仍然规定不得调用任何字符串处理函数,包括strlen)。 例如:输入helloworld,输出helloworld

3、编写程序:对从键盘任意输入的字符串,将其中所有的大写字 母改为小写字母,而所有小写字母改为大写字母,其它字符不变。 (不调用任何字符串处理函数) 例如:输入:Hello World!输出:hELLO wORLD! 4、编写程序:从键盘输入4个字符串(长度<20),存入二维字 符数组中。然后对它们进行排序(假设由小到大顺序),最后输出排序后的4个字符串。(允许使用字符串函数) 提示:字符串比较可以用strcmp函数实现,排序方法可以选择法或冒泡法。 三、实验要求 1、绘制框图、编制源程序,测试数据。 2、1-3题不得使用任何字符串处理函数,4题允许使用字符串处 理函数。 3、在Turbo C下完成程序的编辑、编译、运行。查看、分析程序 结果。 四、实验步骤、过程 1、编辑、编译、运行程序题1。使用数据:hello world做测试。 2、编辑、编译、运行程序题2。使用数据:helloworld 做测试。 3、编辑、编译、运行程序题3。使用数据:Hello World做测试。

实验四参考答案

指针实验题(一) 1、改错题: 【题目】下面的程序中函数divfun的功能是:对于s指向的一个含有数字字符和非数字字符的字符串(串长不超过80),将其中连续的数字字符转换为一个整数,如果连续的数字字符个数超过4个,则以4个数字字符为一组进行转换。将转换后生成的整数依次存放到整型数组a中。函数返回放入a数组中整数的个数。例如,若输入的字符串为“c123yz45!786*56abc123456789”,则a数组中的数值分别为:(123,45,786,56,1234,5678,9)。 含有错误的源程序如下: #include /*增加语句 include */ void divfun(char *s,int a[]) /* 去掉void 改为 int */ {char *p=s; int i=0,k,sum; while(*p) if(isdigit(*p)) {sum=*p-'0'; p++; k=1; while(isdigit(*p)) {k++; if(k<=4) {sum=sum+*p-'0'; p++;} /*改为 sum=sum*10+*p-‘0’ */ else {a[i++]=sum; k=1; sum=*p-'0'; p++; } } a[i++]=sum; } else p++; return i-1; } main() {char *str;int i,n,num[40]; /*改为 char str[80] */ gets(str); n=divfun(str,num); puts(str); for(i=0;i<=n;i++) printf("%6d",num[i]); printf("\n"); } 注:改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。

C++作业3-数组与字符串

一、判断题(每小题2分,共20分) 1.C++中允许对数组的大小作动态定义,即可用变量定义数组的大小。 答案:F。 2. 字符数组不要求它的最后一个字符为'\0',甚至可以不包含'\0'。 答案:T 3. 在对全部数组元素赋初值时,可以不指定数组长度。 答案:F 4. 数组定义 int a[10]; 表示数组名为a,此数组有10个元素。 答案:T 5.char c[]={"a book"}; 与char c[]="a book";等价。 答案:T 6. 设已有说明: char c1[10],c2[10]; 下面程序片段是合法的。c1={"book"}; c2=c1; 答案:F 7. 字符数组初始化如:char aStr[]={"12345"}; 不可省略花括弧,简单地写为char aStr[]="12345"; 答案:F 8. 对数组元素赋初值称为数组的初始化,例如: int a[10]; a={1,3,5,6,7}; 答案:F 9. 如果数组的元素类型是字符型(char),则此数组就是字符数组。字符数组的每个元素只能存放一个字符(存放字符的ASCII代码)。 答案:T 10. C++中数组的起始下标为0,最大下标值比常量表达式小一。 答案:T 二、选择题(每题3分,共45分) 1. 以下对一维数组a的正确定义是()。 A.char a(10); B.int a[ ]; C.int k=5, a[k]; D.char a[ ]={'a', 'b', 'c'}; 答案:D

2. 下面关于C++字符数组的叙述中,错误的是()。 A.字符数组可以存放字符串 B.字符数组的字符可以整体输入、输出 C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D.可以用关系运算符对字符数组中的字符比较大小 答案:C 3. 下面程序段的运行结果是()。 char x[5]={'a', 'b', '\0', 'c', '\0'}; cout<

数组、字符处理实验报告

数组、字符处理实验报告 实验目的: 1. 学习并掌握数组的基本操作。 2. 学习并掌握字符的操作。 实验原理: 1. 数组是一种用来存储多个相同类型的数据元素的数据结构。在本实验中,我们将学习如何声明和初始化数组,并通过数组下标来访问和修改数组元素。 2. 字符是一种基本的数据类型,用来表示字符型数据。在本实验中,我们将学习如何声明和初始化字符变量,并使用字符相关的函数和操作符来进行字符的处理。 实验步骤: 1. 数组的声明与初始化 - 声明一个整型数组arr,大小为5。 - 初始化数组元素,将数组中的元素依次赋值为1, 2, 3, 4, 5。 2. 数组元素的访问与修改 - 输出数组中的元素。 - 将数组中的第一个元素修改为10。 - 再次输出数组中的元素,观察是否修改成功。 3. 字符的声明与初始化 - 声明一个字符变量ch。 - 初始化字符变量,将其赋值为字符'A'。 4. 字符的处理 - 使用字符操作符(+, -, *, /)对字符进行操作,例如:输出'@'和'A'之间的字符。

- 使用字符相关的函数(如isalpha()、isdigit()、islower()、isupper()等)进行字符 的判断,例如:判断字符是否为字母或数字。 实验结果: - 数组的声明与初始化:成功声明和初始化数组。 - 数组元素的访问与修改:成功输出和修改数组元素。 - 字符的声明与初始化:成功声明和初始化字符变量。 - 字符的处理:成功输出字符操作符的结果,并成功使用字符相关的函数进行判断。 实验总结: 通过本实验,我学会了如何处理数组和字符。数组是一种非常常见的数据结构,对于 存储和处理大量数据非常有用。而字符作为一种特殊的数据类型,常用于处理文本和 字符串。掌握数组和字符的基本操作对于日常编程非常重要。在今后的学习和实践中,我将继续深入理解和应用这些概念,并进一步扩展和应用于其他领域的问题。

C语言程序设计实验》__实验指导书

实验指导书 院系:机电工程学院专业: 课程:C语言程序设计编者:丁潇

目录 实验一 C程序的运行环境及简单C程序设计.......... 错误!未定义书签。实验二分支结构程序设计.......................... 错误!未定义书签。实验三循环结构程序设计.......................... 错误!未定义书签。实验四数组程序设计.............................. 错误!未定义书签。实验五函数的使用方法............................ 错误!未定义书签。实验六指针的使用方法............................ 错误!未定义书签。

实验一 C程序的运行环境及简单C程序设计 一、实验目的: 1、了解Visual C++、Turbo C集成环境,掌握常用的菜单命令和相应的功能。 2、掌握C程序的编辑方法,学会编译、连接和运行等操作步骤。 3、逐步掌握根据编译连接的提示信息和运行后用户屏幕输出来修改程序的技巧; 4、掌握数据类型,尤其是基本的数据类型; 5、理解变量与常量,懂得其存储结构; 6、掌握表达式的构成及运算; 7、掌握运算符的种类及运算方法,理解运算符的优先级及结合性; 8、掌握不同类型的数据相互转换的规律; 9、掌握赋值语句的使用方法; 10、熟练掌握输入输出函数; 11、了解简单的编程方法。 二、实验条件: Windows环境,VisualC++6.0、Turbo C2.0。 三、实验要求: 1、通过上机实验,能了解Visual C++、Turbo C集成环境,初步掌握关于文件、编辑、编译、运行和窗口等方面的命令及相应功能,并能在C程序上机操作中使用这些命令。 2、通过C程序上机操作,能完整地认识和掌握程序的编辑、编译、连接和运行等步骤。 3、在实验中学会阅读有关信息,特别是编译连接的出错信息,学会对程序运行后用户屏幕输出数据(包括格式)对错优劣的评价,然后进一步修改源程序,直至完全正确。 4、本次实验至少要能独立地完整地实现一个C程序的正确运行。

计算机C语言实验报告含答案

高级语言程序设计(C语言)实验报告。……………………………………………………………………………………………… 一、实验题目:语句与顺序结构控制 程序设计 1)编写程序,已知圆半径radius=1.25,求圆周长和面积。 源代码:运行结果: #include d=7.853981 #define PI 3.1415926 s=4.908735 void main() { float r=1.25,d,s; d=2.0*PI*r; s=PI*r*r; printf("d=%f\n",d); printf("s=%f\n",s); } 2)编写程序完成大写字母的小写转换。 源代码:运行结果: #include 请输入一个大写字母:H void main() H h { char ch1,ch2; printf("请输入一个大写字母:"); ch1=getchar(); ch2=ch1+32; printf("%c %c\n",ch1,ch2); }

3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。 源代码:运行结果: #include 请输入一个整数 :123 void main() b=1,s=2,g=3 { int a,g,s,b; printf("请输入一个整数:"); scanf("%d",&a); b=a/100; s=(a%100)/10; g=a%10; printf("b=%d,s=%d,g=%d\n",b,s,g); } 二、实验题目:选择结构程序设计 程序设计 1)设变量a、b、c分别存放从键盘输入的3个整数。编写程序,按从大到小的顺序排列这3个整数,使a成为最大的,c成为最小的,并且按序输出这3个整数。 源代码:运行结果: #include please input a,b,c:4,6,10 void main() 10,6,4 { int a,b,c,t; printf("please input a,b,c: "); scanf("%d,%d,%d",&a,&b,&c); if(a

c程序设计实验参考答案

c程序设计实验参考答案 在计算机科学领域中,C程序设计是一门重要的课程,通过实验来 加深对C语言的理解和应用,提高编程技巧和问题解决能力。本文将 提供一些C程序设计实验的参考答案,帮助学生更好地完成实验任务。 1. 实验一:基础语法练习 实验目的:熟悉C语言的基础语法,掌握变量定义、运算符使用和 基本IO操作等。 ```c #include int main() { int a = 5, b = 3; int sum, product; sum = a + b; product = a * b; printf("The sum of a and b is %d\n", sum); printf("The product of a and b is %d\n", product); return 0; } ```

2. 实验二:条件语句和循环结构 实验目的:学习和掌握if-else语句、switch-case语句以及while和for循环的基本用法。 ```c #include int main() { int score; printf("Please enter your score: "); scanf("%d", &score); if (score >= 90) { printf("Excellent!\n"); } else if (score >= 80) { printf("Good job!\n"); } else if (score >= 70) { printf("Keep it up!\n"); } else { printf("You need to work harder!\n"); } int i;

LabVIEW及仿真实验指导书

《 LabVIEW及仿真》课程实验指导书 段金英编 西京学院机电工程系 2014 年 2 月

前言 (1) 实验一Labview的认识性实验(2学时) (2) 实验二Labview的基本操作(2学时) (4) 实验三数据操作实验(2学时) (7) 实验四labview结构在编程中的应用(6学时) (11) 实验五labview中字符串、数组、簇的实验(4学时) (18) 实验六图表和图形实验(4学时) (26) 实验七专业测试系统的搭建实验(2学时) (31) 实验八创建子VI(2学时) (36) 实验九人机界面交互设计实验(2学时) (39) 实验十波形编辑及频谱分析实验(4学时) (43) 实验十一基于声卡的数据采集系统(2学时) (45) 主要参考文献 (52)

虚拟仪器设计是计算机科学与技术的一个前沿学科,它也是一个综合性的学科。《LabVIEW及仿真》为测控技术与仪器专业的一门选修课,其目的是使学生初步了解虚拟仪器设计的基本原理,初步学习和掌握虚拟仪器的基本技术,以便拓宽知识面,并为进一步学习和应用奠定基础。 本书包括11个实验项目,共32学时。适合自动化与测控技术与仪器专业的学生使用。

实验一 Labview的认识性实验(2学时) 一、实验目的 1、熟悉Labview的基本组件 2、熟悉Labview的前面板、程序框图、快捷和下拉菜单 3、掌握Labview的选项板及在线帮助 二、仪器、设备 1、WINDOWS2000仪器、设备(将显示属性中的分辨率设置为1024*768) 2、Labview8.2软件 三、内容与步骤: [练习1] 启动Labview,查找Labview示例 步骤: 1.打开文件VibrationAnalysis.vi(c:/ProgramFiles/National Instruments/LabVIEW 8.2/examples/apps/demos.llb) 2.单击按钮Run运行该程序 3.改变采样速率 4.改变采样速度,验证希望速度与实际速度是否一致 [练习2] 熟悉前面板与程序框图的切换及观察程序流的执行过程 1.在练习1的基础上,利用快捷方式将前面板切换到程序框图。 2.单击高亮度显示按钮观察代码的数据流向。 [练习3] 熟练打开运行一个VI 1.练习查找所定VI,另用帮助查找含有FILTER的示例,找到其中的Express Filter.VI程序双击打开 2.运行该程序 3.改变仿真频率、仿真幅度和仿真噪声幅度观察指示器的值与图中值是否一致。观察数据流执行过程 [练习4]练习查找运行 1.将上面程序在框图窗口双击程序框图中的Simulate Signal,将正弦信号改为其他信号之后运行程序。

实验四 数组的应用实验报告

实验四数组的应用实验报告 班级姓名: 一、设计要求 实现稀疏矩阵的基本运算。 二、算法分析 1、算法:将一个稀疏矩阵对应存储到一个一维数组中,然后在进行矩阵的加减运算时依次扫描矩阵的行值和列值,并以行优先。 2、稀疏矩阵的存储:以一维数组顺序存放非零元素的行号、列号和数值,行号用-1表示结束标志。 三、代码分析 #include #define m 2 //定义矩阵行数为2,此处可修改并进行不同规模矩阵的调试 #define n 2 //定义矩阵列数为2,此处可修改并进行不同规模矩阵的调试 #define max 50 //转存稀疏矩阵的算法 void creatematrix(int a[m][n],int b[50]) { int i,j,k=0; for (i=0;i

{if (a[i]==b[j]) //当矩阵A中与矩阵B中两元素行号相等时{if (a[i+1]==b[j+1]) //判断两元素列号是否相等 {c[k]=a[i]; //矩阵相加后,行号依然为原矩阵A、B中元素的行号 c[k+1]=a[i+1]; //列号依然为原矩阵A、B中元素的行号 c[k+2]=a[i+2]+b[j+2]; //相加后元素值为矩阵A、B中元素值相加 k=k+3; //依次储存存完行号、列号、数值需三个数组元素空间 //储存3个值后进入下一循环 i=i+3; //同上 j=j+3; //同上 } else if (a[i+1]

labview实验四

虚拟仪器实验报告四 专业年级电信081班姓名学号08808030 成绩 一、实验目的:LabVIEW编程软件入门学习 二、实验内容: 实验四字符串、数组、簇和矩阵 4.1 字符串(String) 4.2 数组(Array) 4.3 簇(Cluster) 4.4 矩阵(Matrix) 三、实验结果: 练习1组合字符串 使用一些字符串功能函数将一个数值转换成字符串,并把该字符串和其他一些字符串连接起来组成一个新的输出字符串。 打开一个新的前面板,按照下图向其中添加对象 练习2 字符串子集和数值的提取 创建一个字符串的子集,其中含有某个数值的字符串显示,再将它转换成数值。

练习3 Build Text Express VI 练习4 用循环创建数组 使用For循环和While循环的自动索引(auto-indexing)功能自动创建数组。 练习5 创建二维数组 使用两个嵌套的For循环(即一个循环在另一个循环内)可以创建二维数组。 嵌套的For循环创建二维数组时,外层循环创建行,内层循环创建列。

练习6 多图区图形 创建含有多条曲线的图形,方法是创建一个数组,用它汇集传给单图区图形的类型的数据元素。

练习7使用创建数组功能函数 使用创建数组函数,把一些元素和输出组织成一个更大的数组。练习8 多态化练习

多态化练习2

练习9 簇排序 前面板包含两个簇。第一个簇中,第一个组件是数字控件;第二个簇中,第一个组件是数字指示器。 第一个图中簇控件正确连接到簇指示器。 第二个图中,簇顺序改变,此时连线无效。 练习10簇 目的:学习创建簇、分解簇,再捆绑簇并且在另一个簇中显示其内容。为第3章的习题2连续温度采集监测添加报警信息,如下图所示,当报警发生时输出报警信息,例如“温度超限!当前温度78.23℃”,正常情况下输出空字符串。

数据结构实验四题目一排序实验报告

数据结构实验报告 实验名称:实验四——排序 学生姓名:XX 班级: 班内序号: 学号: 日期: 1.实验要求 实验目的: 通过选择实验内容中的两个题目之一,学习、实现、对比、各种排序的算法,掌握各种排序算法的优劣,以及各种算法使用的情况; 题目1: 使用简单数组实现下面各种排序算法,并进行比较; 排序算法如下: 1、插入排序; 2、希尔排序; 3、冒泡排序; 4、快速排序; 5、简单选择排序; 6、堆排序; 7、归并排序; 8、基数排序选作; 9、其他; 具体要求如下: 1、测试数据分成三类:正序、逆序、随机数据; 2、对于这三类数据,比较上述排序算法中关键字的比较次数和移动次数其中关键字交换记 为3次移动; 3、对于这三类数据,比较上述排序算法中不同算法的执行时间,精确到微妙; 4、对2和3的结果进行分析,验证上述各种算法的时间复杂度; 5、编写main函数测试各种排序算法的正确性; 2. 程序分析 存储结构 存储结构:数组

关键算法分析 一、关键算法: 1、插入排序 a、取排序的第二个数据与前一个比较 b、若比前一个小,则赋值给哨兵 c、从后向前比较,将其插入在比其小的元素后 d、循环排序 2、希尔排序 a、将数组分成两份 b、将第一份数组的元素与哨兵比较 c、若其大与哨兵,其值赋给哨兵 d、哨兵与第二份数组元素比较,将较大的值赋给第二份数组 e、循环进行数组拆分 3、对数据进行编码 a、取数组元素与下一个元素比较 b、若比下一个元素大,则与其交换 c、后移,重复 d、改变总元素值,并重复上述代码 4、快速排序 a、选取标准值 b、比较高低指针指向元素,若指针保持前后顺序,且后指针元素大于标准值,后指针前移, 重新比较 c、否则后面元素赋给前面元素 d、若后指针元素小于标准值,前指针后移,重新比较 e、否则前面元素赋给后面元素 5、简单选择排序 a、从数组中选择出最小元素 b、若不为当前元素,则交换 c、后移将当前元素设为下一个元素 6、堆排序 a、生成小顶堆 b、将堆的根节点移至数组的最后 c、去掉已做过根节点的元素继续生成小顶堆 d、数组倒置 7、归并排序 a、将数组每次以1/2拆分,直到为最小单位 b、小相邻单位数组比较重排合成新的单位 c、循环直至完成排序 二、代码详细分析: 1、插入排序 关键代码: ①取排序的第二个数据与前一个比较:ifri

C语言编程实验课之数组

1.逆序存放数组中的数据,并输出指定元素 本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按要求输出指定的数组元素。 输入格式: 在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。第三行输入一个非负整数m(m int main () { int n,m; scanf("%d",&n); int a[10]; int i; for (i=0;i

a[i]=a[n-1-i]; a[n-1-i]=t; } scanf("%d",&m); printf("%d\n",a[m]); return(0); } 2.交换最小值和最大值 本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。 注意:题目保证最大和最小值都是唯一的。 输入格式: 输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。输出格式: 在一行中顺序输出交换后的序列,每个整数后跟一个空格。 输入样例: 5 8 2 5 1 4 输出样例: 1 2 5 4 8 (1)编程思路。 在数组中找最大值和最小值的方法是:先认为第1个元素a[0]的值既是最大值也是最小值,即max=min=0(注意:此处保留的是最大值与最小值的下标)。之后用循环对剩下的N-1个元素进行遍历。若元素a[i]比最大值a[max]大,更新最大值下标max;若元素a[i]比最小值a[min]小,更新最小值下标min。 找到最大值下标max和最小值下标min后,按要求进行元素交换即可。 (2)源程序。 #include #include int main () { int n; scanf("%d",&n); int a[10]; int i; for (i=0;i

《C语言程序设计》实验四

电子科技大学计算机学院标准实验报告(实验)课程名称C语言程序设计 电子科技大学教务处制表 电子科技大学

实验报告四 学生姓名:学号:指导教师:王瑞锦 实验地点:实验日期:年月日 一、实验室名称:软件实验室 二、实验项目名称:函数的应用及预处理 三、实验学时:2 四、实验原理: 使用Turbo C软件(简称TC),在微型计算机上,对其程序进行编辑、编译、连接与运行。Turbo C是一个集成环境,它具有方便、直观、易用的界面和丰富的库函数。通过上机练习掌握在TC环境下编辑、编译、连接、和运行C程序的方法和过程。 五、实验目的 1.掌握C语言中定义函数的方法; 2.掌握函数传值调用的方法; 3.掌握函数传址调用的方法; 4.掌握递归函数的设计方法; 5.掌握命令行参数的使用方法; 6.掌握函数在不同文件中的编译、链接方法。 六、实验内容 编程实验,完成以下上机内容,调试运行程序并完成报告 1)、教材第七章习题7.4; 2)、编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出; 3)、教材第七章习题7.11; 4)、教材第七章习题7.15; 5)、教材第七章习题7.24;

6)、求解汉渃塔(tower of Hanoi)问题。在一块平板上立有3根立柱,从左到右分别标记为A,B,C。最初在A柱上放有6个大小不等的圆盘,并且大盘在下面,小盘在上面。要求将这些盘从A移到C(可以借助B柱)。条件是:每次只能移动一个盘,并且不允许把大盘放在小盘的上面。(提示:利用函数的递归调用); 七、实验器材(设备、元器件): pc硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。 软件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。 八、实验步骤: 实验编程与运行结果 ⑴编写一个求两个整数的最小公倍数的函数,两个整数由键盘输入,用主函数调用这个函数,并输出结果。 程序文件名为7_4.c,源程序清单如下: #include lcd(int a,int b) { int temp,num1,num2; num1=a; num2=b; while(num2!=0) { temp=num1%num2; num1=num2; num2=temp; } return(a*b/num1); } main() { int t,x,y; printf("Please input two integers:"); scanf("%d,%d",&x,&y); if(x>y){t=x;x=y;y=t;} printf("lcd(%d,%d)=%d\n",x,y,lcd(x,y)); }

C程序设计上机实验报告(完整版)

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号:20162181310 实验时间:2017年3月6号 任课老师:张锐

C语言程序设计上机实验报告 实验一 一、实验名称: C程序的运行环境和运行C程序的方法 二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C 程序 三、实验内容: (1). 输入并运行一个简单的C程序。 (2). 设计程序,对给定的两个数求和。 (3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: 代码1: 运行结果1:

程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。 代码2: 运行结果2:

程序分析2: 简单的使用printf()和scanf()函数进行简单的数据运算。代码3: 运行结果3:

程序分析3: 使用if语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法, 熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。 三、实验内容: (1). 编写程序,实现小写字母转大写。

(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar和putchar输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: 程序分析1:

相关主题
相关文档
最新文档