c语言程序设计实验报告(数组)

合集下载

c语言数组实验报告

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语言实验报告:数组引言:C语言是一门广泛应用于计算机编程领域的高级编程语言,其强大的功能和灵活性使得它成为了许多程序员的首选。

在C语言中,数组是一种非常重要的数据结构,它能够存储多个相同类型的元素,并通过索引来访问和操作这些元素。

本篇实验报告将重点介绍C语言中的数组,并通过实例来展示其用法和特性。

一、数组的定义和声明在C语言中,数组的定义和声明非常简单。

我们可以通过以下方式来定义一个数组:```数据类型数组名[数组大小];```其中,数据类型表示数组中元素的类型,数组名是我们给数组起的名称,而数组大小则表示数组中元素的个数。

例如,我们可以定义一个包含5个整数的数组:```int numbers[5];```这样,我们就成功地声明了一个名为numbers的整数数组,它包含了5个元素。

二、数组的初始化在声明数组的同时,我们还可以为数组的元素赋初值。

这个过程称为数组的初始化。

C语言提供了多种初始化数组的方式,例如:```int numbers[5] = {1, 2, 3, 4, 5};```上述代码将数组numbers的前5个元素分别初始化为1、2、3、4和5。

我们也可以只给部分元素赋初值,未赋初值的元素将自动被初始化为0:```int numbers[5] = {1, 2, 3};```这样,数组numbers的前3个元素将分别被初始化为1、2和3,而后两个元素将被初始化为0。

三、数组的访问和操作数组的访问和操作是我们使用数组的重要环节。

在C语言中,我们可以通过索引来访问和操作数组中的元素。

数组的索引从0开始,即第一个元素的索引为0,第二个元素的索引为1,以此类推。

例如,我们可以通过以下方式来访问数组numbers的第一个元素:```int firstNumber = numbers[0];```上述代码将数组numbers的第一个元素赋值给变量firstNumber。

同样,我们也可以通过索引来修改数组中的元素:```numbers[0] = 10;```上述代码将数组numbers的第一个元素修改为10。

C语言实验五实验报告——数组

C语言实验五实验报告——数组

C语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。

通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。

数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。

数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。

可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。

数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。

二维数组数组可分为一维和多维数组。

一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。

二维数组有行号和列号,因此,它同样需要两个下标。

数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。

三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。

程序执行正常。

3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对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语言程序设计实验报告 数组

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语言实验报告数组

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语言实验报告数组实验目的:本实验旨在通过对C语言中数组的使用进行实践,加深对数组概念的理解,并掌握数组的声明、初始化和操作方法。

实验环境:操作系统:Windows 10编译器:Dev-C++ 5.11实验内容:1. 数组的声明和初始化在C语言中,数组是由相同类型的数据元素组成的集合。

声明数组时需要指定元素的类型和数组的名称,同时还可以指定数组的大小。

数组的初始化可以在声明时进行,也可以在后续的代码中进行。

示例代码:```c#include <stdio.h>int main() {int numbers[5]; // 声明一个包含5个整数的数组int i;// 初始化数组元素for (i = 0; i < 5; i++) {numbers[i] = i + 1;}// 输出数组元素for (i = 0; i < 5; i++) {printf("numbers[%d] = %d\n", i, numbers[i]);}return 0;}```2. 数组的访问和操作通过下标(索引)可以访问数组中的元素,数组的下标从0开始,依次递增。

我们可以使用循环结构遍历数组,对数组中的元素进行操作。

示例代码:```c#include <stdio.h>int main() {float temperatures[7]; // 声明一个包含7个浮点数的数组int i;// 输入一周每天的温度for (i = 0; i < 7; i++) {printf("请输入星期%d的温度:", i + 1);scanf("%f", &temperatures[i]);}// 输出一周每天的平均温度float sum = 0;for (i = 0; i < 7; i++) {sum += temperatures[i];}printf("一周的平均温度为:%.2f\n", sum / 7);return 0;}```3. 多维数组除了一维数组外,C语言还支持多维数组。

C语言实验五实验报告——数组

C语言实验五实验报告——数组

C语言实验五实验报告——数组实验五:数组实验目的:1.掌握数组的定义和使用;2.熟悉数组在函数中的传递;3.练习编写使用数组的程序。

实验原理:数组是一组相同类型的变量的集合,这些变量称为数组的元素。

数组的名字是一个指针常量,它存放的是数组首个元素的地址。

数组元素在内存中是连续存放的,可以通过下标访问每一个元素。

数组的定义:数组的定义格式为:数据类型数组名[数组长度];数组的初始化:数组可以在定义时进行初始化,也可以在定义之后通过赋值进行初始化。

数组作为函数参数:数组可以作为函数的形参进行传递,可以通过指针传递整个数组,也可以传递数组的部分元素。

实验步骤:1.编写一个程序,实现对学生成绩的管理。

要求如下:-使用一个数组保存学生的成绩;-能够动态添加学生的成绩,并显示添加成功的信息;-能够计算学生的平均成绩,并显示;-能够根据用户输入的学号查找对应学生的成绩,并显示。

2.编写一个程序,实现对一组整数进行排序。

要求如下:-首先自定义一个整数数组,数组元素个数为用户输入;-编写一个函数,实现对数组进行排序,要求使用选择排序算法;-在主函数中调用该函数,对数组进行排序后显示。

实验结果与分析:1.学生成绩管理程序运行结果如下:```-------学生成绩管理系统-------[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:90添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:85添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:2平均成绩为:87.5[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:3 [1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:4退出系统。

```2.整数排序程序运行结果如下:```-------整数排序-------请输入待排序的整数个数:6请输入第1个整数:5请输入第2个整数:3请输入第3个整数:9请输入第4个整数:2请输入第5个整数:7请输入第6个整数:1排序前的整数序列为:539271排序后的整数序列为:123579 ```实验总结:通过本次实验,我深入理解了数组的原理和用法,并且掌握了数组在函数中的传递。

C语言实验报告《数组》

C语言实验报告《数组》

C语言实验报告《数组》《数组》实验报告实验目的:掌握C语言中数组的定义、初始化和使用方法,了解数组在程序中的作用和用途,熟悉数组的基本操作。

实验内容:1.数组的定义和初始化2.数组的基本操作-访问数组元素-修改数组元素-遍历数组-数组作为函数参数实验步骤:1.数组的定义和初始化定义一个整型数组,数组名为array,数组大小为10。

使用for循环将数组元素初始化为0。

2.数组的基本操作1) 访问数组元素:通过下标访问数组的元素,例如array[0]表示数组的第一个元素。

2)修改数组元素:通过下标将数组的元素修改为新的值。

3) 遍历数组:使用for循环遍历数组的每个元素,并输出其值。

4)数组作为函数参数:将数组作为函数的参数传递,并在函数内对数组进行操作。

实验结果:1.数组的定义和初始化:int array[10];for (int i = 0; i < 10; i++)array[i] = 0;}2.数组的基本操作:1)访问数组元素:int x = array[0]; // 访问第一个元素的值,即数组的第一个元素2)修改数组元素:array[0] = 1; // 将第一个元素的值修改为13)遍历数组:for (int i = 0; i < 10; i++)printf("%d ", array[i]); // 输出每个元素的值}4)数组作为函数参数:void printArray(int arr[], int len)for (int i = 0; i < len; i++)printf("%d ", arr[i]); // 输出数组的每个元素}}int maiint myArray[5] = {1, 2, 3, 4, 5};printArray(myArray, 5); // 将数组myArray作为参数传递给printArray函数return 0;}实验总结:通过本次实验,我们掌握了C语言中数组的定义和初始化方法,学会了访问数组元素、修改数组元素、遍历数组的操作,还了解了数组作为函数参数的使用。

c语言数组实验报告

c语言数组实验报告

c语言数组实验报告C 语言数组实验报告一、实验目的本次实验旨在深入理解和掌握 C 语言中数组的基本概念、使用方法以及常见的操作。

通过实际编程和调试,提高对数组的运用能力,为今后解决更复杂的程序设计问题打下坚实的基础。

二、实验环境操作系统:Windows 10编译器:Visual Studio 2019三、实验内容1、一维数组的定义、初始化和遍历定义一个包含整数的一维数组,如`int arr10;`使用初始化列表为数组赋值,例如`int arr5 ={1, 2, 3, 4, 5};`通过循环遍历数组,输出每个元素的值。

2、一维数组的查找和修改实现线性查找算法,在数组中查找特定的元素。

根据找到的元素位置,修改其值。

3、二维数组的定义、初始化和遍历定义二维数组,如`int arr234;`以不同的方式初始化二维数组,如按行初始化或整体初始化。

使用双重循环遍历二维数组。

4、二维数组的应用:矩阵运算实现两个矩阵的相加和相乘运算。

四、实验步骤1、一维数组的定义、初始化和遍历编写代码如下:```cinclude <stdioh>int main(){int arr10;int i;//初始化数组for (i = 0; i < 10; i++){arri = i + 1;}//遍历数组并输出for (i = 0; i < 10; i++){printf("%d ", arri);}return 0;}```编译并运行代码,观察输出结果,验证数组的初始化和遍历是否正确。

2、一维数组的查找和修改以下是实现线性查找并修改元素值的代码:```cinclude <stdioh>int main(){int arr5 ={10, 20, 30, 40, 50};int target = 30;int found = 0;int i;//查找元素for (i = 0; i < 5; i++){if (arri == target) {found = 1;break;}}if (found) {printf("找到元素%d,位于索引%d\n", target, i);arri = 100; //修改元素值} else {printf("未找到元素%d\n", target);}//输出修改后的数组for (i = 0; i < 5; i++){printf("%d ", arri);}return 0;}```运行程序,输入不同的目标值,查看查找和修改的结果。

C语言实验五实验报告-数组

C语言实验五实验报告-数组

C语言实验五实验报告-数组C 语言实验五实验报告数组一、实验目的本次实验旨在深入理解和掌握 C 语言中数组的概念、声明、初始化以及基本操作。

通过实际编写代码,熟练运用数组解决实际问题,提高编程能力和逻辑思维能力。

二、实验环境操作系统:Windows 10开发工具:Visual Studio 2019三、实验内容1、数组的声明和初始化声明一维数组,如`int arr10;`。

初始化一维数组,包括全部初始化,如`int arr5 ={1, 2, 3, 4, 5};`,以及部分初始化,如`int arr5 ={1, 2};`。

声明二维数组,如`int arr34;`。

初始化二维数组,如`int arr23 ={{1, 2, 3},{4, 5, 6}};`。

2、数组元素的访问和操作使用下标访问数组元素,如`arr0` 。

对数组元素进行赋值和修改操作。

遍历数组,使用循环打印数组元素。

3、数组的应用实现数组元素的排序,如冒泡排序、选择排序等。

查找数组中的特定元素,如顺序查找、二分查找等。

四、实验步骤1、数组的声明和初始化打开 Visual Studio 2019,创建一个新的 C 语言项目。

在源文件中,编写以下代码来声明和初始化一维数组:```cinclude <stdioh>int main(){int arr110;int arr25 ={1, 2, 3, 4, 5};int arr35 ={1, 2};printf("未初始化的数组 arr1 的元素:\n");for (int i = 0; i < 10; i++){printf("%d ", arr1i);}printf("\n");printf("全部初始化的数组 arr2 的元素:\n");for (int i = 0; i < 5; i++){printf("%d ", arr2i);}printf("\n");printf("部分初始化的数组 arr3 的元素:\n");for (int i = 0; i < 5; i++){printf("%d ", arr3i);}printf("\n");return 0;}```编译并运行代码,观察输出结果,理解数组的声明和初始化方式。

C语言数组实验报告

C语言数组实验报告

实验名:数组一、实验目的1、掌握数组定义的规则..2、掌握C语言数组的基本用法..二、实验内容一题目11、编写程序;测试下列数组的定义方式是否正确1 main{int n;scanf“%d”;&n;int an;……}2 main{const int n=10;int an;}3 include <stdio.h>define M 10main{int aM;}4 main{int a2+24;}5 include <stdio.h>define M 2define N 8main{ int aM+N;}通过这一实验;可以说明什么问题2、输入和输出信息描述及数据类型确定;1、输入数据序号输入数据描述数据类型1n;an int2nan cons tint int3aM或a10int 4a2+24int 5aM+N int 3、程序调试错误序号错误信息列出出错语句以及出错提示是否解决解决方法1-1main.c|5|error: 是将%d两边的符号改为西文字符的引expected expressionbefore '%' token|scanf“%d”;&n;号scanf"%d";&n;1-2main.c|6|warning:unused variable 'a'-Wunused-variable|int an;是将前面的n的输入去掉;把n改为具体数字5main.c|6|warning:unused variable 'a'-Wunused-variable|int aM+N;是加上个scanf“%d”;&aM+N;4、相关问题回答通过这一实验;可以说明什么问题1、2345对;1错;1中an的数组定义的里的常量表达式不能是变量..2、一维数组定义的时候里的常量表达式包括常量和符号常量;但不能是变量..二题目21、运行下面的C程序;根据运行结果;可以说明什么main{ int num5={1;2;3;4;5};inti i;fori=0;i<5;i++printf“%d”;numi;}2、输入和输出信息描述及数据类型确定;1、输入数据序号输入数据描述数据类型1num5;i int2输出数据序号输出数据描述数据类型1numi int3、程序源代码填写程序调试正确后的代码include <stdio.h>int main{int num5={1;2;3;4;5}; /定义num5/int i;fori=0;i<5;i++ /下标应该是0到4/ printf"%d";numi; /依次输出num0至num4/return 0;}4、程序调试错误序号错误信息列出出错语句以及出错提示是否解决解决方法1格式不对是2main.c|5|error: 是改为 int i;unknown type name 'inti'| inti i;3 main.c|7|error: expected expression before '%' token| printf“%d”;numi;是 将引号改为西文字符4 fori=0;i<5;i++ 是 去掉等号 5、相关问题回答 运行结果:12345根据运行结果;可以说明什么说明:数组元素的下标从0开始;比定义的时候会小一个.. 三 题目 31、操作符&用以求一个变量的地址;这在函数scanf 中已经使用过了..现在要你设计一个程序;返回一个3 5 的二维数组各元素的地址;并由此说明二维数组中各元素是按什么顺序存诸的..2、输入和输出信息描述及数据类型确定; 1、输入数据序号 输入数据描述 数据类型 1 a35;i.j int 2 adress 整型指针变量 2输出数据序号 输出数据描述 数据类型 1 adress int 3、程序源代码填写程序调试正确后的代码 include <stdio.h> int main {int a35;int adress; //定义并初始化adress int i;j;fori=0;i<3;i++ //每行循环 {printf"\n";forj=0;j<5;j++ //每列循环 {adress=&aij; //将adress 赋值为整型指针变量 printf"%d ";adress; } }return 0; }4、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确结果分析 1 无 无是 无误四 题目 4为一个起泡排序程序设计测试用例;并测试之.. 1、程序源代码填写程序调试正确后的代码 include <stdio.h> int main {int a10; //定义一维数组a10 int i;j;k;printf"请输入10个数字:\n"; fori=0;i<=9;i++scanf"%d";&ai; //依次输入数组的数字 printf"\n"; //换行forj=0;j<9;j++ //进行9次循环;实现9趟比较 fori=0;i<9-j;i++ //在每一趟中进行9-j 次比较 ifai>ai+1 //相邻两数比较 {k=ai; ai=ai+1;ai+1=k; //若后一个比前一个大;则交换位置}printf"排序后的数字为:\n"; fori=0;i<=9;i++printf"%d ";ai; //依次输出排序后的数字 printf"\n"; return 0; }2、输入和输出信息描述及数据类型确定; 1、输入数据序号 输入数据描述 数据类型 1 a10;i;j;k int 2输出数据序号 输出数据描述 数据类型 1 ai int 3、程序调试错误序号 错误信息列出出错语句以及出错提示 是否解决 解决方法 1 输出结果间无空格 是 在最后一个printf “%d ”的d 后面加空格4、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确结果分析1 测试用例 1 12 13 14 15 1 12 13 14 15 67 78 80是 无误8956 6778 8980五题目51、1983年;在ACM图林奖颁奖大会上;杰出的计算机科学家;UNIX 的鼻祖;C 语言的创始人之一;图林大奖得主;Ken Thompson 上台的第一句话是:“我是一个程序员;在我的1040表上;我自豪地写上了我的职业..作为一个程序员;我的工作就是写程序;今天我将向大家提供一个我曾经写过的最精练的程序..”这个程序如下:char s ={‘\t’;‘0’;‘\n’;‘}’;‘;’;‘\n’;‘\n’;‘/’;‘’;‘\n’;/ 213 lines deleted/};/The string is arepresentation of the bodyof this program from ‘0’to the end/main{ int i;printf“char \ts={\” };for i=0;si;i++printf“\t%d;\n”;si;printf“%s”;s;}请上机运行这个程序;指出它的功能和运行结果..2、程序源代码填写程序调试正确后的代码include<stdio.h>char s ={'\t';'0';'\n';'}';';';'\n';'\n';'/';'';'\n';/ 213 lines deleted/ 0 }; /The string is arepresentation of the body of this program from '0' to the end /int main {int i;printf"char \ts={\n" ; for i=0;si;i++printf"\t%d;\n";si; printf"%s";s; return 0; }3、程序调试错误序号 错误信息列出出错语句以及出错提示 是否解决 解决方法 1 所有的引号和逗号格式不对是 都改为西文字符2 main.c|22|error: expected '='; ';'; ';'; 'asm' or '__attribute__' before '{' token|是 在main 前加int3 main.c|23|warning: missing terminating " character enabled by default|printf"char \ts={\" };是 改为printf"char \ts={\n" ; 4 格式不完整 是 加上include;return 0; 4、相关问题回答请上机运行这个程序;指出它的功能和运行结果.. 答:功能输出字符串的数值.. 5、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确结果分析 1 测试用例是 无误六 题目 6 1、题目内容描述在下面的 5×5 魔方矩阵中;每一行、每一列、每一对角线上的元素之和都是相等的;试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中; 然后; 检验其是否为魔方矩阵;并将其按如下格式显示到屏幕上..17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 92、程序源代码填写程序调试正确后的代码include<stdio.h>main{int i;j;sum1;sum2;int find1=0;find2=0;m=0; //定义变量int a55;fori=0;i<5;i++forj=0;j<5;j++scanf"%d";&aij; //输入55个数字fori=0;i<5;i++{forj=0;j<5;j++{printf"%d";aij; //输出矩阵}printf"\n";forsum1=0;i=0;i<=4;i++ //计算对角线元素和sum1+=aii;forsum2=0;i=0;j=4;i<=4;i++;j--sum2+=+aij; //计算对角线元素和fori=0;i<=4;i++{forj=0;j<=4;j++printf"%d\t";aij; //打印魔方矩阵printf"\n";}ifsum1=sum2{printf"此矩阵不为魔方矩阵\n"; //判断对角线和是否相等m=1;}fori=0;i<=4;i++forj=0;j<=4;j++{ai5+=aij;a5j+=aij; //判断各行列和是否相等}ifm==0{fori=0;i<=4;i++{ ifai5=a5i || ai5=sum1 {printf"此矩阵不为魔方矩阵\n"; break; }} ifi==5printf"此矩阵为魔方矩阵\n"; }}3、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号测试用例选取原因 测试输入数据 测试输出结果是否正确 结果分析1 题目是无误七 题目 7 1、题目内容描述餐饮服务质量调查打分在商业和科学研究中;人们经常需要对数据进行分析并将结果以直方图的形式显示出来..例如;一个公司的主管可能需要了解一年来公司的营业状况;比较一下各月份的销售收入状况; 如果仅给出一大堆数据; 这显然太不直观了; 如果能将这些数据以条形图 直方图的形式表示;那么将会大大增加这些数据的直观性;也便于数据的分析与对比..下面以顾客对餐饮服务打分为例; 练习一下这方面的程序.. 假设现在有40个学生被邀请来给自助餐厅的食品和服务质量打分;分数为从1~10的10个等级1意味着最低分;10表示最高分;试统计调查结果;并用‘’打印出如下形式的统计结果直方图..Grade Count Histogram1 52 103 7...2、输入和输出信息描述及数据类型确定;1、输入数据序输入数据描述数据类型号1score40;i;j;grade;count11int2输出数据序输出数据描述数据类型号1grade;countgrade char3、程序源代码填写程序调试正确后的代码include <stdio.h>int main{int score40;i;j;grade;int count11={0}; //定义并初始化数组count11fori=0;i<40;i++{printf"please input score%d:";i+1;scanf"%d";&scorei; //输入每个分数switchscorei //统计每个分数的个数{case 1:count1++; break; //评分为1时;数组中count1加一case 2:count2++; break; //评分为2时;数组中count2加二case 3:count3++; break; case 4:count4++; break; case 5:count5++; break; case 6:count6++; break; case 7:count7++; break; case 8:count8++; break; case 9:count9++; break; case 10:count10++; break;default:printf"Input error\n"; //其余情况 } }printf"Grade\tCount\tHistogram\n"; //输出表头forgrade=1;grade<=10;grade++ //统计每个分数的个数 {printf"%d\t%d\t";grade;countgrade; //输出分数和每个分数的个数forj=0;j<countgrade;j++printf"%c";''; //根据评分的个数输出数printf"\n"; }return 0; }4、测试与结果分析 1、测试数据与结果 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确 结果分析 1 测试用例 8个2;9个3;5个4;13个6;3个7;23;76如下图 是 无误2 测试用例 2个1;4个2;3个3;1个4;5个5;6个6;5个7;2个8;6个9;3个10;78;0;22如下图 是 无误八 题目 8 1、题目内容描述由计算机随机生成一个各位相异的4位数字;由人来猜;每次提示:xAxB A 前面的数字表示有几个数字猜对位置也对了 B 前面的数字表示有几个数字猜对但位置不对提示:用数组a存计算机随机生成的4位数;用数组b存人猜的4位数;对a和b的相同位置的元素进行比较;得到A前面的数字;对a和b的不同位置的元素进行比较;得到B前面的数字..2、输入和输出信息描述及数据类型确定;1、输入数据序输入数据描述数据类型号1a4;b4;m;n;i;j;int2输出数据序输出数据描述数据类型号1M;n int3、程序源代码填写程序调试正确后的代码include<stdio.h>include<stdlib.h>include<time.h>int main{int i;j;m;n;int a4;b4;m=0;n=0;srandtimeNULL; //产生随机数ifa0=a1&&a0=a2&&a0=a3&&a1=a2&&a1=a3&&a2=a3{fori=0;i<4;i++{ai=rand%10;printf"%d ";ai; //输出不同的四个个位数 }printf"\n";whilem=4 //当m不等于4的时候循环{printf"请输入你猜想的数字:\n";forj=0;j<4;j++scanf"%d";&bj;printf"\n";fori=0;i<4;i++{ifai==bi{m++; //位置和数字都对}}fori=0;i<4;i++{forj=0;j<4;j++ {ifai==bj&&i=j //位置不对但数字对 {n++; } } }printf"%d A %d B\n";m;n; }printf"你答对了\n"; //m=4时输出}return 0; }3、测试与结果分析 1、测试数据与结果 源文件名 可执行文件名 测试序号 测试用例选取原因 测试输入数据 测试输出结果 是否正确结果分析 1 测试用例是 无误。

C语言程序设计实验报告数组

C语言程序设计实验报告数组

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、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字符串及其长度。

.算法描述流程图 3catStr函数lenStr函数开始开始定义函数定义函数lenStr(char str[])catStr(char str1[],char str2[])i=0;声名变量并赋i,j声名变量i=0,j=0初值m[i]!='\0'str1[i]!='\0' 真假str2[j]!='\0'printf(%d,i);str1[i+j]=str2[j];i++str1[i+j]='\0';结i++,j+结束主函数开始声名变量s1[50]=shi,s2[50]=weiyu;调用函数lenStr();并输调用函数catStr()的s1,s2输出出连接后的字符串字符长度输出连接后字再次调用函符串的长lenStr(结束源程序4#include<stdio.h>#include<string.h>catStr(char str1[],char str2[]) void{ 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]=orever,s2[50]=more;printf(s1=%s,s2=%s,s1,s2);printf(\s1的长度:);lenStr(s1);printf(\s2的长度:);lenStr(s2);catStr(s1,s2);printf(\连接后的字符:);printf(%s\n,s1);牰湩晴尨连接后字符的长度:);lenStr(s1);printf(\);}5测试数据s1=forever, s2=more6运行结果7出现问题及解决方法在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。

C语言实验报告《数组》实验报告

C语言实验报告《数组》实验报告

C语言实验报告《数组》实验报告实验目的本次实验的主要目的是了解C语言中数组的概念、用法和操作,掌握如何定义和使用数组。

通过练习编写具有一定复杂度的数组相关程序,加深对C语言数组的理解和应用。

实验内容1. 数组的定义与初始化在C语言中,数组是一组具有相同类型的数据在内存中连续存储,通过数组下标访问每个元素。

数组的定义形式为:type name[size],其中type为数组元素的类型,name为数组名,size为数组大小(元素个数)。

数组的初始化可以在定义时或之后进行。

定义时,可以使用下标逐个指定每个元素的值,形如type name[size] = {val0, val1, ...};也可以只指定部分元素,剩余元素的值为默认值(0或NULL),形如type name[size] = {val0,val1, ...}。

之后初始化则可以使用数组下标逐个赋值,或使用循环语句给整个数组赋值。

例如,下面是一个整型数组的定义和初始化:int arr[5] = {1,2,3}; //arr[0] = 1, arr[1] = 2, arr[2] = 3, arr[3] = 0, arr[4] = 0;for(int i=0; i<5; i++){arr[i] = i; //arr[0] = 0, arr[1] = 1, arr[2] = 2, arr[3] = 3, arr[4] = 4;}2. 多维数组除了一维数组,C语言还支持多维数组。

多维数组是指一个数组中每个元素又是一个数组,形成了二维、三维甚至更高维度的数组。

多维数组的定义与一维数组类似,只是需要在type后面加上多个方括号,每个方括号内表示该维度的大小。

例如,定义一个二维数组:int matrix[2][3] = {{1,2,3},{4,5,6}}; //matrix[0][0] = 1, matrix[0] [1] = 2, ..., matrix[1][2] = 6多维数组的初始化可以像一维数组一样,在定义时指定每个元素的值,或在之后使用嵌套循环赋值。

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

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

c语言实验实验报告——数组### 一、实验目的本次实验的主要目的是通过C语言指针实现数组的基本操作,如排序,调整等,进一步加深对数组的认识,为以后深入学习编程能力打下坚实基础。

1. 采用数组作为示例,使用C语言编程实现数组排序,并编写程序分析排序过程中的时间复杂度。

2. 编写程序以实现数组调整,即根据一个给定的条件,将数组中的一部分向右移动,将另外一部分向左移动,并分析调整过程中的时间复杂度。

### 三、程序代码首先编写程序来实现数组的排序,使用冒泡法进行排序,程序代码如下:```c#include<stdio.h>#define N 12//冒泡排序算法void BubbleSort(int a[],int n){int i,j;int temp;for(i=0;i< n-1;i++)for(j=0;j< n-i-1;j++)//如果第j位大于第j+1位,则进行位置交换if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}### 调整// 将小于5的数放到数组的左边,大于等于5的数放到右边 int MinToLeft(int array[], int N){int i = 0;int j = N - 1;while (i<j){// 找右边大于5的while (array[j] >= 5 && i<j)j--;// 找左边小于5的while (array[i] < 5 && i<j)i++;// 左边比右边大则交换if (i<j){int t = array[i];array[i] = array[j];array[j] = t;}}return i;}### 四、时间复杂度数组排序是在数据量很大的情况下也能维持O(n2)时间复杂度,其中n是要排序数组中元素的个数。

C语言实验报告(数组)

C语言实验报告(数组)

C语⾔实验报告(数组)C程序设计实验报告实验项⽬:7.3.1练习1 冒泡排序法7.3.1练习2 选择排序法7.3.2练习1 杨辉三⾓(等腰)7.3.2练习2 给定年⽉⽇,将其转换成这⼀年的第⼏天输出7.3.3 判断回⽂数姓名:熊晓东实验地点:家实验时间:2020.5.24⼀、实验⽬的与要求1、掌握⼀维和多维数组的定义和数组元素的引⽤⽅法。

2、了解⼀维和多维数组初始化的⽅法。

3、学习⼀维和多维数组的基本算法。

4、掌握字符数组的定义、初始化⽅法及其元素的引⽤⽅法。

5、掌握C语⾔提供的对字符串进⾏处理的基本库函数。

⼆、实验内容1、实验练习:1问题的简单描述:⽤冒泡排序法实现,对⽤随机函数产⽣的10个整数按升序排列。

2实验代码:···#include<stdio.h>#include<stdlib.h>#include<time.h>void sort1(int s[],int n){int i,j;int temp;for(i=9;i>0;i++);for(j=0;j<i;j++)if(s[j]>s[j+1]){temp=s[j];s[j]=s[j+1];s[j+1]=temp;}}main(){int i,a[10];srand((unsigned int )time(NULL));printf("随机六⽣10个整数: \n");for(i=0;i<10;i++)a[i] =rand()%100;for(i=0;i<10;i++)printf("%d ",a[i]);printf("ln");sort1(a,10);printf("输出排序后的10个整数\n");for(i=0;i<10;i++)printf("%d ",a[i]);}3问题分析:⽆2、实验练习:1问题的简单描述:⽤选择排序法实现,对⽤随机函数产⽣的10个整数按升序排列。

c 实验报告数组

c  实验报告数组

c 实验报告数组C 实验报告数组引言:在计算机科学领域中,数组是一种常见的数据结构,用于存储和操作一系列相同类型的数据。

在C语言中,数组是一种非常重要的数据类型,它可以存储多个相同类型的元素,并通过索引访问这些元素。

本实验报告将探讨C语言中数组的特性、用法和一些常见的问题。

一、数组的定义和初始化在C语言中,数组的定义需要指定元素的类型和数组的大小。

例如,int类型的数组可以定义为:int arr[5]; 这意味着我们创建了一个包含5个整数元素的数组。

数组的索引从0开始,因此可以使用arr[0]到arr[4]来访问这些元素。

数组的初始化可以在定义时进行,也可以在后续的代码中进行。

例如,我们可以使用以下方式初始化上述的整数数组:int arr[5] = {1, 2, 3, 4, 5};这样,数组arr的第一个元素为1,第二个元素为2,以此类推。

二、数组的访问和操作通过索引,我们可以访问数组中的特定元素。

例如,要访问数组arr的第一个元素,可以使用arr[0]。

我们还可以对数组进行赋值操作,例如:arr[1] = 10; 这将把数组arr的第二个元素的值设置为10。

除了访问和赋值,数组还支持一些常见的操作,如求和、平均值等。

例如,我们可以编写一个函数来计算数组中所有元素的和:int sum(int arr[], int size) {int total = 0;for (int i = 0; i < size; i++) {total += arr[i];}return total;}三、数组的长度和越界访问在C语言中,数组的长度是固定的,一旦定义后就无法改变。

因此,在使用数组时,我们需要确保不会越界访问。

例如,如果数组arr的长度为5,那么我们只能使用arr[0]到arr[4]的索引进行访问,使用arr[5]将导致越界错误。

为了避免越界访问,我们可以使用循环结构来遍历数组,并在访问前检查索引是否有效。

C语言程序设计实验报告 数组.doc1

C语言程序设计实验报告 数组.doc1

实验报告课程C语言程序设计实验项目数组操作成绩专业班级通信工程09 班内序号指导教师张静姓名学号实验日期实验目的:(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】编写程序,将某一指定字符从一个已知的字符串中删除,并将删除后的字符串输出。

《C语言程序设计》实验报告数组

《C语言程序设计》实验报告数组

《C语言程序设计》课程实验报告≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡3.有一个已排序好的数组,要求输入一个数后,按原来排序规律插入到数组中。

编写以下程序:#include<stdio.h>main(){ int a[6] = {1,3,6,7,9};int i,j,x,t;printf("insert data:");scanf("%d",&x);for(i=0;i<5;i++)if(x<a[i])break;for(j=5;j>i;j--)a[j]=a[j-1];a[j]=x;printf("Now array a:\n");for(i=0;i<6;i++)printf("%4d",a[i]);printf("\n");}结果如下:4.有一篇文章,共有3行文字,要求分别统计出大写字母、小写字母、数字、空格以及其它字符的个数。

编写以下程序:#include <stdio.h>int main(){int i,j,upp,low,dig,spa,oth;char text[3][10];亲爱的朋友,上文已完,为感谢你的阅读,特加送另一篇范文,如果下文你不需要,可以下载后编辑删除,谢谢!道路施工方案1、工程概况2、编制说明及编制依据3、主要施工方法及技术措施3.1施工程序3.2施工准备3.3定位放线3. 4土方开挖3.5卵石路基施工3.6天然砾基层施工3. 7高强聚酯土工格楞3.8水泥稳定砂砾基层施工3.9路缘石施工3. 10玻璃纤维土工格栅施工3.11沥青面层施工3. 12降水施工4、质量控制措施5、雨季施工安排6、安全技术措施1.工程概况本项目建设的厂址位于新疆石河子市。

工程场地位于石河子高新技术开发区经七路西。

场地原为麦田,地势南高北低。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case 2:
p=strcat;
break;
case 3:
goto down;
}
getchar();
printf("input the first string please!\n");
i=0;
__________________________________________
printf("input the second string please!\n");
printf("%s\n",strcpy(a,b));
return 0;
}
char *strcpy(char *s,char *t)
{
while(*s++=*t++);
return(s);
}
4.程序设计
编写并上机调试运行能够实现以下功能的程序或者函数。
(1)已知一个长整型变量占4个字节,其中每个字节又分为高四位和低四位。是编写一个程序,从该整型的高字节开始,一次取出每个字节的高四位为低四位,并以数字字符的形式进行显示。
return 0;
}
void averageput(float *p)
{
float c[N],*pc=c,t=0,*pp=p;
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
t+=*(pp+M*i+j);
*(pc+i)=t/M;
printf("该同学的平均成绩为:%.1f\n",*(pc+i));
(2)利用大小为n的指针数组指向用gets函数输入的n行,每行不超过80个字符。是编写一个函数,他的每一行中连续的多个空格字符压缩为一个空格字符。在调用函数时输入压缩后的各行,空行不予输出。
(3)编写一个程序,输入n个数,排列后输出。
5.选做题
编写并上机调试运行能够实现以下功能的程序或者函数。
(1)设有N位整数和M位小数的两个数据a,b。编写
void below(float *,float *);
int main()
{
char a[M][10],(*pa)[10]=a;
int i,j;
printf("请输入各个课程的名字:\n");
for(j=0;j<M;j++)
scanf("%s",*pa+j);
float b[N][M];
float *pb1=&b[0][0];
(1)按照单步执行源程序,进入strcpy时,watches窗口中的s为何值?返回main函数时,s为何值?
(2)排除源程序的错误,并输出正确的答案。
源程序:
#include<stdio.h>
char *strcpy(char *,char *);
int main()
{
char a[20],b[60]="There is a boat in the lake.";
t=0;
}
}
float *averageall(float *p)
{
float c[M],*pc=c,*pc2=c,t=0,*pp=p;
(三)实验步骤以及结果
1.源程序改错:
存在错误,造成了空指针,并且scanf函数的格式不对应。
正确的源程序应为:
#include<stdio.h>
int main(void)
{
float a,*p;
p=&a;
scanf("%f",p);
printf("%f\n",*p);
return 0;
}
2.源程序修改,完善与替换。
printf("\t\t3 exit.\n");
printf("\t\t2 input a number(1-3)please!\n");
scanf("%d",&choice);
}while(choice<1||choice>5);
switch(choice){
case 1:
p=strcpy;
break;
#include<stdio.h>
char *strcpy(char *,char *);
int main()
{
char a[20],b[60]="There is a boat in the lake.";
printf("%s\n",strcpy(a,b));
return 0;
}
char *strcpy(char *s,char *t)
i=0;
gets(pb);
result=(*p)(a,b);
printf("The result is: %s\n",result);
down:
;
return 0;
}
运行的结果为:
3.跟踪调试源程序
进入strcpy时,s的值为:0x28fefc
返回main函数时,s的值为:0x28fedd
修改之后的正确的源程序为:
(4)掌握指针函数与函数指针的使用。
(5)掌握带有参数的main函数的使用。
二、实验内容及要求。
1.源程序改错
下面的源程序中是否存在问题?如果存在,原因是什么?如果存在错误,请改正并输出正确的结果。
源程序:
#include<stdio.h>
int main(void)
{
float *p;
scanf("%d",p);
printf("\t\t2 connect string.\n");
printf("\t\t3 exit.\n");
printf("\t\tinput a number(1-3)please!\n");
scanf("%d",&choice);
}while(choice<1||choice>=4);
switch(choice){
p--;
printf("%c\t%c\n",uphalf,lowhalf);
}
return 0;
}
运行结果为:
(2)源程序为:
#include<stdio.h>
#define N 3
void getid(char *);
int main()
{
char a[N][80],*p[N];
int i;
printf("请输入n行字符\n");
{
int t;
if(a[k]>a[k+1])
t=a[k],a[k]=a[k+1],a[k+1]=t;
}
}
运行的结果为:
#include<stdio.h>
#define M 2
#define N 5
void averageput(float *);/*计算每个学生各门课程的平均成绩*/
float *averageall(float *);/*计算全班每门课程的平均成绩*/
{
for(i=0;i<argc-1;i++)
b[i]=atoi(argv[i+1]);
p2(b,argc);
for(i=0;i<argc-1;i++)
printf("%d\n",b[i]);
}
return 0;
}
void sort1(int a[],int argc)
{
in++)
C语言程序设计实验报告
专业计算机班级计算机卓工日期2012年12月31日成绩
实验组别第8次实验;指导教师李开
学生姓名徐钦振学号U201215120
实验名称指针实验
一、实验目的
(1)熟练掌握指针的使用,赋值与使用。
(2)掌握用指针引用数组的元素,熟练指向数组的指针的使用。
(3)熟练掌握字符数组与字符串的使用。
{
char *p=s;
while(*s++=*t++);
return(p);
}
4.程序设计
(1)源代码为:
#include<stdio.h>
int main(void)
{
long x=0x1234ABCD,k;
char *p=(char *)&x;
char uphalf,lowhalf;
for(k=0;k<4;k++)
while(*ps++)
{
if(*ps==' ')
{
if(b==0)
{
b=1;
putchar(*ps);
}
}
if((*ps)!=' ')
{
b=0;
putchar(*ps);
}
}
}
运行的结果为:
程序(3):
源代码为:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
for(i=0;i<N;i++)
相关文档
最新文档