c语言实验7数组实验报告
c语言数组实验报告

c语言数组实验报告C 语言数组实验报告一、实验目的1、深入理解 C 语言数组的概念和基本操作。
2、掌握数组的定义、初始化、遍历和访问。
3、学会使用数组解决实际问题,提高编程能力和逻辑思维能力。
二、实验环境1、操作系统:Windows 102、编译环境:Visual Studio 2019三、实验内容1、一维数组的操作定义一个包含 10 个整数的一维数组,并使用循环进行初始化。
编写程序,计算数组中所有元素的和与平均值,并输出结果。
实现对数组元素的遍历,输出每个元素的值。
2、二维数组的操作定义一个 3 行 4 列的二维整数数组,并进行初始化。
编写程序,计算二维数组中所有元素的总和。
打印出二维数组中每一行的元素值。
3、字符数组的操作定义一个字符数组,存储一个字符串。
实现字符串的输入和输出功能。
编写程序,统计字符串中字符的个数。
四、实验步骤(一)一维数组的操作1、定义并初始化一维数组```cint arr10 ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};```2、计算数组元素的和与平均值```cint sum = 0;float average;for (int i = 0; i < 10; i++){sum += arri;}average =(float)sum / 10;printf("数组元素的和为:%d\n", sum);printf("数组元素的平均值为:%2f\n", average);```3、遍历并输出数组元素```cfor (int i = 0; i < 10; i++){printf("%d ", arri);}printf("\n");```(二)二维数组的操作1、定义并初始化二维数组```cint arr234 ={{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};```2、计算二维数组元素的总和```cint sum2 = 0;for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){sum2 += arr2ij;}}printf("二维数组元素的总和为:%d\n", sum2);```3、打印二维数组每一行的元素值```cfor (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){printf("%d ", arr2ij);}printf("\n");}```(三)字符数组的操作1、定义并初始化字符数组```cchar str100;```2、输入和输出字符串```cprintf("请输入一个字符串:");scanf("%s", str);printf("您输入的字符串是:%s\n", str);3、统计字符串中字符的个数```cint count = 0;for (int i = 0; stri!='\0'; i++){count++;}printf("字符串中字符的个数为:%d\n", count);```五、实验结果(一)一维数组的操作结果1、数组元素的和为:552、数组元素的平均值为:5503、数组元素的输出结果为:1 2 3 4 5 6 7 8 9 10(二)二维数组的操作结果1、二维数组元素的总和为:782、二维数组每一行的元素输出结果为:5 6 7 89 10 11 12(三)字符数组的操作结果1、输入字符串为:hello2、输出字符串为:hello3、字符串中字符的个数为:5六、实验分析(一)一维数组在对一维数组进行操作时,通过循环可以方便地对数组中的每个元素进行访问和处理。
C语言数组的应用实验报告

C语言数组的应用实验报告实验报告:C语言数组的应用一、实验目的本实验旨在通过实际编程应用,加深对C语言数组的理解和掌握,学习并实践数组的基本操作技巧。
二、实验原理1.数组的概念和定义数组是相同数据类型的元素组成的有序集合。
在C语言中,数组是由相同数据类型的元素构成的元素集合,其元素个数是固定的。
数组一旦被定义后,其大小和结构就不能改变。
2.数组的声明和初始化声明数组需要指定数组的类型和数组名,可以同时初始化数组。
数组的初始化可以通过赋值的方式或者指定每个元素的值来完成。
3.数组的基本操作对数组的基本操作包括数组元素的读取和赋值、数组元素的运算、数组的遍历以及数组的排序等。
三、实验过程本实验中,我们将设计并编写几个示例程序来演示数组的应用。
实验示例1:计算数组元素和示例程序功能:从命令行输入一个整数数组,计算数组中所有元素的和。
```c#include <stdio.h>#define SIZE 5 // 定义数组大小int maiint i, sum = 0;int arr[SIZE];printf("请输入%d个整数:\n", SIZE);for (i = 0; i < SIZE; i++)scanf("%d", &arr[i]);sum += arr[i];}printf("数组元素的和为:%d\n", sum);return 0;```实验步骤:1. 声明一个大小为SIZE的整型数组arr和一个变量sum,用于存储和;2. 通过for循环,逐个从命令行输入数组元素,并将每个元素的值累加到sum中;3. 输出数组元素的和sum。
实验示例2:数组元素排序示例程序功能:从命令行输入一个整数数组,将数组元素按照从小到大的顺序排序后输出。
```c#include <stdio.h>#define SIZE 5 // 定义数组大小int maiint i, j, temp;int arr[SIZE];printf("请输入%d个整数:\n", SIZE);for (i = 0; i < SIZE; i++)scanf("%d", &arr[i]);}//冒泡排序for (i = 0; i < SIZE-1; i++)for (j = 0; j < SIZE-1-i; j++)if (arr[j] > arr[j+1])temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}printf("排序后的数组:\n");for (i = 0; i < SIZE; i++)printf("%d ", arr[i]);}printf("\n");return 0;```实验步骤:1. 声明一个大小为SIZE的整型数组arr和三个循环变量i、j、temp;2. 通过for循环,逐个从命令行输入数组元素;3. 使用冒泡排序算法,通过两个嵌套的for循环,比较相邻两个元素的大小并交换位置,最终得到按照升序排列的数组;4.输出排序后的数组。
c语言数组实验报告总结与思考

c语言数组实验报告总结与思考本次实验主要是关于C语言数组的学习和实践。
在实验中,我们通过对数组的定义、初始化、赋值、遍历等操作,深入了解了数组的特点和使用方法。
同时,我们也学习了如何利用数组解决实际问题,提高了编程能力和实践能力。
在实验中,我们首先学习了数组的定义和初始化。
数组是一种存储相同类型数据的集合,可以通过下标访问数组中的元素。
在定义数组时,需要指定数组的类型和大小。
数组的初始化可以在定义时进行,也可以在后续操作中进行。
在初始化时,可以使用花括号{}来指定数组中的元素,也可以使用循环语句来进行赋值。
接着,我们学习了数组的赋值和遍历。
数组的赋值可以通过下标来进行,也可以使用循环语句来批量赋值。
数组的遍历可以使用循环语句来实现,可以按照顺序遍历数组中的元素,也可以根据需要跳过某些元素或者只遍历部分元素。
在实验中,我们还学习了如何利用数组解决实际问题。
例如,我们可以使用数组来存储学生的成绩,然后计算平均分、最高分、最低分等统计数据。
我们还可以使用数组来存储一组数据,然后进行排序、查找等操作。
通过这些实际问题的练习,我们不仅掌握了数组的使用方法,也提高了编程思维和解决问题的能力。
在实验中,我们还遇到了一些问题。
例如,数组越界访问会导致程序崩溃,因此需要注意数组下标的范围。
另外,数组的大小需要根据实际需求进行设置,过大会浪费内存,过小会导致数据丢失。
在实际应用中,我们需要根据具体情况进行调整。
总的来说,本次实验让我们深入了解了C语言数组的特点和使用方法,提高了编程能力和实践能力。
通过实际问题的练习,我们也掌握了如何利用数组解决实际问题的方法。
在今后的学习和工作中,我们将继续深入学习和应用数组,提高自己的编程水平和解决问题的能力。
c语言实验报告《数组》

c语言实验报告《数组》实验报告:数组引言在C语言中,数组是一种非常重要的数据结构,它可以存储多个相同类型的数据,并且可以通过下标来访问和操作这些数据。
在本次实验中,我们将通过一些简单的示例来掌握数组的基本用法和特性。
实验目的1. 了解数组的定义和初始化方法2. 掌握数组的访问和操作方式3. 熟悉数组在函数参数传递中的应用实验内容1. 数组的定义和初始化在C语言中,数组的定义方式为:`数据类型数组名[数组长度]`。
数组的初始化可以在定义的同时进行,也可以在之后的代码中进行。
示例代码:```cint arr1[5]; // 定义一个长度为5的整型数组int arr2[3] = {1, 2, 3}; // 定义一个长度为3的整型数组,并初始化为1, 2, 3```2. 数组的访问和操作数组的元素可以通过下标来访问和操作,下标从0开始计数。
示例代码:```cint arr[3] = {10, 20, 30};printf("%d\n", arr[0]); // 输出数组的第一个元素,即10arr[1] = 50; // 修改数组的第二个元素为50```3. 数组在函数参数传递中的应用数组可以作为函数的参数进行传递,从而实现对数组的操作和处理。
示例代码:```cvoid printArray(int arr[], int length) {for (int i = 0; i < length; i++) {printf("%d ", arr[i]);}printf("\n");}int main() {int arr[] = {1, 2, 3, 4, 5};printArray(arr, 5); // 调用函数打印数组return 0;}```实验结论通过本次实验,我们了解了数组的定义和初始化方法,掌握了数组的访问和操作方式,以及熟悉了数组在函数参数传递中的应用。
C语言程序设计实验报告 数组

C语言程序设计实验报告数组实验目的:1. 了解数组的概念和使用方法;2. 掌握数组的定义和初始化;3. 掌握数组的遍历和元素访问;4. 掌握数组的排序算法和查找方法。
实验内容:一、数组的定义和初始化:1. 在C语言中,数组是一组有序、相同类型的元素的集合。
数组中的每个元素可以通过一个下标来标识,下标从0开始,最大为元素个数减1。
2. 定义数组的语法:类型名数组名[元素个数];3. 数组的初始化:可以在定义数组的同时进行初始化,也可以在定义后逐个赋值,还可以用花括号{}将初始值逐一列出进行初始化。
示例代码:```// 定义数组并初始化int a[5] = {5, 4, 3, 2, 1};// 定义数组后逐个赋值int b[3];b[0] = 1;b[1] = 2;b[2] = 3;// 使用花括号逐一初始化int c[] = {1, 2, 3, 4, 5};```二、数组的遍历和元素访问:1. 数组的遍历:可以使用for循环来遍历数组中的每个元素。
```int a[5] = {5, 4, 3, 2, 1};printf("%d", a[1]); // 输出4```三、数组的排序算法和查找方法:1. 排序算法:常用的数组排序算法有冒泡排序、插入排序和快速排序等。
```void bubbleSort(int a[], int n) {int i, j, temp;for (i = 0; i < n - 1; i++) {for (j = 0; j < n - i - 1; j++) {if (a[j] > a[j + 1]) {temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}}```2. 查找方法:常用的数组查找方法有线性查找和二分查找等。
实验结果:本次实验主要学习了数组的定义、初始化、遍历、元素访问、排序算法和查找方法。
C语言实验报告数组

实验七数组1.实验目的(1)熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2)熟练掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法如查找、排序等..2.实验指导(1)对任意一个一维型数组;从中找出数组元素的最大值和最小值并输出..要求:①数组有十个元素;②使用scanf函数实现数组元素的输入前给出必要的提示;③输出时;首先输出数组的十个元素;然后输出其最大值和最小值..分析指导:①算法分析:首先定义一个数组;通过循环从键盘输入十个数组元素的值;再通过另一个循环判断数组元素的最大只和最小值;②根据分析情况编写程序:include<stdio.h>mainint a10;i;max;min;printf"please input ten integers:";fori=0;i<=9;i++{scanf"%d";&ai;}max=a0;min=a0;fori=1;i<=9;i++{ifai>maxmax=ai;ifai<minmin=ai;}fori=0;i<=9;i++{printf"a%d=%d\n";i;ai;}printf"The maximum value is %d;and the minimum value is %d\n";max;min;运行程序;输入十个整数;如:21 37 6 17 9 12 89 76 35 59运行结果如下:(2)编写函数cmpStrchar s1;char s2比较两个字符串s1和 s2的大小..如果s1>s2;返回一个正数;s1=s2;返回0;s1<s2;返回一个负数;在主函数中调用该函数完成字符串的比较操作;并输出返回的值..要求:①不允许使用strcmp函数;②用gets函数在主函数中输入两个字符串;③实现触摸屏受托人函数;返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值..分析指导:①算法分析:两个字符串从第一个字符开始一一对应进行比较;直到不相等的那个字符;从而求得它们的ASCII码的差值..比如;‘A’与‘C’相比;由于‘A’<‘C’;应输出负数;由于‘A’与‘C’的ASCII码的差值为2;因此;应输出“-2”..同理;“And”和“Aid”比较;根据第二个字符比较结果;‘n’比‘I’大5;因此应输出‘5’;②根据分析情况编写程序:include<stdio.h>int cmpstrchar s1;char s2{int i;diff;i=0;whiles1i==s2i&&s1i='\0'i++;ifs1i=='\0'&&s2i=='\0'diff=0;elsediff=s1i-s2i;return diff;}void main{int z;char s1100;s2100;printf"input the first string:";//输入字符串1gets s1;printf"input the second string:";//输入字符串2getss2;z=cmpstrs1;s2;//输出比较结果printf"the difference between two strings is %d\n";z;}查看运行结果如下:重新输入两个字符串meet;mood运行结果如下:(3)再给定的字符串中查找指定的字符..要求:①字符串采用直接初始化的方式处理;②通过scanf函数读入一个任意字符;③在字符串中查找该字符;如果存在该字符;输出该字符在字符串中的一次出现的位置;如果再给定的字符串中不存在该字符;则给出相应的说明信息..include<stdio.h>void main{int i;char ch;char s=" program";printf" 输入一个英文字母: ";scanf"%c";&ch;for i=0;si='\0';i++{if si==chbreak;}if i<7printf"s%d=%c\n";i;ch;elseprintf"No founded\n";}输入一个英文字母O运行程序如下:再次输入一个英文字母w运行程序如下:(4)首先输入一个大于二且小于十的整数n;然后定义一个二维整型数组nn;初始化该数组;讲述组中最大元素所在的行和最小元素所在的行对调..要求:①nn数组元素的值由scanf函数从键盘输入假定最大值最小值不在同一行上;然后输出该数组;②查找最大值最小值所在的行;将数组中最大元素所在的行和最小元素所在的行对调;并输出对调后的数组;③为直观起见;数组按n行n列的方式输出;④修改程序;对最大值与最小值可能出现在一行种的情况进行处理.. include<stdio.h>main{long matrix99;min;max;temp;int i;j;n;nMax=0;nMin=0;printf"\nplease inpute n of matrix:\n";scanf"%d";&n;printf"\nplease inpute elements of matrix%d%d:\n";n;n; fori=0;i<n;i++forj=0;j<n;j++scanf"%ld";&matrixij;min=max=matrix00;fori=0;i<n;i++forj=0;j<n;j++{ifmatrixij>max{max=matrixij;nMax=i;}else ifmatrixij<min{min=matrixij;nMin=j;}}forj=0;j<n;j++{temp=matrixnMaxj;matrixnMaxj=matrixnMinj;matrixnMinj=temp;}printf"\nResult matrix:\n";fori=0;i<n;i++{forj=0;j<n;j++printf"%5ld";matrixij;printf"\n";}}输入一个数4;输入一个44的数组1 3 6 72 4 5 81 3 5 72 6 9 7运行程序如下:再次输入一个数字3;输入一个33的数组1 2 32 4 537 8运行程序如下:3 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用;还有就是掌握与数组有关的常用算法。
C语言数组的应用实验报告

C语言数组的应用实验报告实验题目:C语言数组的应用一、实验目的:1.理解数组的定义和使用方法;2.学会利用数组实现基本算法;3.了解数组在实际应用中的常见场景及解决方法。
二、实验原理1.数组是一种数据结构,可以存储一组相同类型的数据;2.数组的元素可以通过索引(下标)来访问和修改;3.数组的长度必须在定义时确定,且长度不能改变。
三、实验内容本次实验共包含三个不同的实验题目,下面将逐一介绍每个实验的内容和具体步骤。
实验一:计算数组元素的和与平均值1.题目描述:编写一个程序,计算一个包含n个元素的整型数组中所有元素的和与平均值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明一个整型变量sum,并将其初值设为0;3) 利用for循环遍历数组arr,将每个元素累加到sum中;4) 计算平均值avg,将sum除以数组长度;5)打印输出数组的和与平均值;6)用多组数据进行测试,验证程序的正确性。
实验二:查找数组中的最大值和最小值1.题目描述:编写一个程序,找出一个包含n个元素的整型数组中的最大值和最小值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明两个整型变量max和min,并将它们的初值设为数组的第一个元素;3) 利用for循环遍历数组arr,对比每个元素与max和min的大小,更新max和min的值;4)打印输出数组的最大值和最小值;5)用多组数据进行测试,验证程序的正确性。
实验三:矩阵转置1.题目描述:编写一个程序,对给定的二维数组进行转置操作;2.实验步骤:1) 定义一个二维整型数组matrix,并给数组赋初值;2) 声明一个与matrix规模相反的二维整型数组transpose,并将其所有元素初始化为0;3) 利用嵌套for循环遍历matrix数组,将每个元素的行列进行互换,并赋值给transpose数组;4) 打印输出转置后的transpose数组;5)用多组数据进行测试,验证程序的正确性。
c语言实验7数组实验报告

实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称(或课室) SS1-332专业计算机科学与技术任课教师学号:姓名:实验日期:2014年月日广东商学院教务处制一.实验目的1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。
2.熟练掌握字符数组和字符串函数的使用。
3.熟练掌握一位数组以及一位数组元素的存储关系。
4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。
5.通过上机实践掌握与数组有关的算法。
二、实验内容上机题1输入并运行以下程序。
实验内容:用2个数组对第3个数组进行赋值#include<stdio.h>main(){int i,a[5],b[5],c[5];a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for(i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}实验步骤○1int a[5]:整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。
a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。
○2数组赋值方法和一般变量一样。
例如,a[0]=2表示将2赋给a[0]。
运行结果上机题2 输入并运行以下程序。
实验内容:对不指明数组的数组进行赋值并用循环结构进行求和#include<stdio.h>main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6};sum=0;for(i=0;i<=10;i++)sum+=a[i];printf("sum=%d\n",sum);}实验结果实验小结○1对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称(或课室) SS1-332专业计算机科学与技术任课教师学号:姓名:实验日期:2014年月日广东商学院教务处制一.实验目的1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。
2.熟练掌握字符数组和字符串函数的使用。
3.熟练掌握一位数组以及一位数组元素的存储关系。
4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。
5.通过上机实践掌握与数组有关的算法。
二、实验内容上机题1输入并运行以下程序。
实验内容:用2个数组对第3个数组进行赋值#include<stdio.h>main(){int i,a[5],b[5],c[5];a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for(i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}实验步骤○1int a[5]:整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。
a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。
○2数组赋值方法和一般变量一样。
例如,a[0]=2表示将2赋给a[0]。
运行结果上机题2 输入并运行以下程序。
实验内容:对不指明数组的数组进行赋值并用循环结构进行求和#include<stdio.h>main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6};sum=0;for(i=0;i<=10;i++)sum+=a[i];printf("sum=%d\n",sum);}实验结果实验小结○1对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。
○2由于数组元素的下标可以是变量,因此数组的操作一般用循环实现。
上机题3 程序实现:从键盘输入5个数,输出最大、最小元素的值以及它们的下标。
将程序补充完整并上机调试。
实验内容:用循环结构对数组进行输入并求出最大最小值及下标#include<stdio.h>main(){int i,j,k,max,min;int a[5];for(i=0;i<5;i++)scanf("%d",&a[i]);max=min=a[0];i=k=0;for(i=0;i<5;i++){if(max<a[i]){max=a[i];j=i;}else if(max>a[i]){min=a[i];k=i;}}printf("max:a[%d]=%d,min:a[%d]=%d\n",j,max,k,min);}实验结果实验小结:比较最值时令第一个值为最大最小值,再用循环结构把最大值最小值赋给max min上机题4 输入并运行以下程序,分析程序运行结果。
实验内容:二维数组的加法#include<stdio.h>main(){int i,j;int a[3][2]={12,34,24,11,45,20};int b[3][2]={11,23,34,13,10,64};int c[3][2];for(i=0;i<=2;i++)for(j=0;j<=1;j++)c[i][j]=a[i][j]+b[i][j];for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%d+%d=%d ",a[i][j],b[i][j],c[i][j]); printf("\n");}}实验结果:相乘,在其程序的第9行和第12行的“+”改为“*”。
上机题5 程序实现:从键盘输入12个数,组成一个3行4列的二维数组并输出。
将程序补充完整并上机调试。
实验内容:对二维数组的输入输出#include<stdio.h>main(){int a[3][4];int i,j;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("The result is:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%5d",a[i][j]);printf("\n");}}实验小结运行程序后,从键盘输入的12个整数应以空格、Enter键或Tab 键分开。
分别输出各行最小值各列最大值实验过程:#include<stdio.h>main(){int a[3][4];int i,j,min ,max;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("The result is:\n");for(i=0;i<3;i++){for(j=0;j<4;j++){printf("%5d",a[i][j]);min=a[i][0];if(a[i][j]<a[i][0])min=a[i][j];} printf("\t%d\n",min);};for(j=0;j<4;j++){for(i=0;i<3;i++){max=a[0][j];if(a[i][j]>a[0][j])max=a[i][j];} printf("\t%d",max);}实验结果:实验小结:注意格式上机题6 输入并运行以下程序。
实验内容:字符串的输入与输出#include<stdio.h>main(){char a[7]="Foxpro";printf("%s\n");printf("%c\t%c\t%c\n",a[0],a[1],a[2]);}实验结果:实验小结:○1数组可以用字符串进行初始化“char a[7]=“Foxpro”;”,但是不能将字符串直接赋给数组,如“a[7]=”Foxpro;”和“a=”Foxpro;”都是错误的。
○2字符串的最后有串尾标志‘\o’,所以“char a[6]=”Foxpro”;”也是不正确的。
○3用“%s”格式输出指定地址开始的字符串,用“%c”格式输出数组元素的字符。
上机题7 输入并运行以下程序。
实验内容:利用二维数组对字符串进行输入输出#include<stdio.h>main(){int i;char a[][8]={"SQL","Foxpro","Unix","ASP"};for(i=0;i<=3;i++)printf("%s\n",a[i]);}实验小结:“char a[][8]={"SQL","Foxpro","Unix","ASP"};”定义了一个二维数组。
a[0]是一个字符串的串首地址,a[1]是第2个字符串的串首地址,a[i]为第i个字符串的串首地址。
因此,字符串输出时用“printf(“%s”,a[i] );”。
上机题8 输入并运行以下程序,分析程序运行结果。
实验内容:引用函数对数组进行运算#include<stdio.h>main(){int a[5]={1,2,3,4,5};int i;pr(a);for(i=0;i<5;i++)printf("%5d",a[i]);printf("\n");}pr(p)int p[];{int i;for(i=0;i<5;i++)p[i]=p[i]*p[i];}实验结果:实验小结:当形参为数组时,对应的实参为数组名,传递的是数组的首地址,此时实参数组与形参数组共享同一段内存单元,形参数组元素的改变会影响实参数组元素的改变。
上机题9编写程序:从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序并输出。
自定义函数void antitone(int a[],int n)实现将数组中的n个数据按逆序存放。
实验内容:将数组反序并输出,实验步骤:#include<stdio.h>void antitone(int a[],int n);int b[5],n;int i;main(){ n=5;for(i=0;i<n;i++){scanf("%d",&b[i]);}antitone(b,5);}void antitone(int a[],int n){int i,t,c[5];for(i=0;i<n;i++){c[i]=a[n-i-1];printf("%d",c[i]);}}实验结果:实验小结:注意局部变量与全局变量作用域,数组的常量表达式必须是常量,格式必须对,还有对程序的了解。
上机题10已知某数列的前两项为2和3,其后每一项为其前两项之积。
分别用函数和数组实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项?实验内容:从键盘输入一个整数x,判断并输出x最接近数列的第几项实验步骤:#include<stdio.h>#include<math.h>#define M 100int a[M]={2,3};int i,x,t;main(){for(i=0;i<98;i++)a[i+2]=a[i+1]+a[i];scanf("%d",&x);for(i=0;i<99;i++){if(fabs(a[i+1]-x)<fabs(a[i]-x))t=i+1;else t=i;if(x-a[i]<0)break;}printf("%d",t);}实验结果:实验小结:注意对输出时,不要相互赋值例如a【i+1】=a【i】,这样会使输出结果出现数组后几组数据的丢失,注意循环结构的结束循环的控制。
上机题11分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:(1)求每个学生的平均分。