• 文章阅读
  • 散文欣赏
  • 故事大全
  • 随笔
  • 读书笔记
  • 读后感
  • 观后感
  • 课外必读书目
  • 当前位置: 工作范文网 > 阅读 > 读书笔记 > 正文

    C48A实验报告3_工程认证版20180905_朱立华编写V3_限定修改

    时间:2020-11-21 09:50:01 来源:工作范文网 本文已影响 工作范文网手机站

    实 验 报 告

    (2018 / 2019 学年 第 一 学期)

    课程名称

    高级语言程序设计A(B0300311S)

    实验名称

    实验三 数组、指针与字符串实验

    实验时间

    2018

    指导单位

    计算机学院、软件学院、网络空间安全学院

    指导教师

    学生姓名

    班级学号

    学院(系)

    专 业

    PAGE 1

    实 验 报 告

    实验名称

    实验三 数组、指针与字符串实验

    指导教师

    实验类型

    综合

    实验学时

    2

    实验时间

    实验目的和要求

    (1)重点掌握一维数组的定义与使用,能通过函数的定义与调用实现一维数组中的常用和经典算法。会正确定义一级指针,理解其存储地址的实质,并且会利用一级指针来访问一维数组的元素。

    (2)综合运用函数、数组和指针的知识,理解函数中的一维数组形式参数实质为一级指针变量形式参数,在调用时提供的实参数组名实质上传递的是数组首地址的参数传递(传地址)。

    (3)理解值形式参数与指针形式参数的区别,通过跟踪调试理解传值与传地址的不同,及指针形参如何改变对应的实参变量。理解指针与指针所指向的内容之间的关系,理解指针间接引用的实质。

    (4)正确使用字符数组及字符指针处理字符串。

    二、实验环境(实验设备)

    硬件: 微型计算机

    软件: Windows 操作系统、Microsoft Visual Studio 2010

    三、实验原理及内容

    实验题目(1)【见实验教材实验五的题目1】:编写程序exp5_1.c,在主函数中定义一维数组int array[10],自定义以下函数:输入数组元素,输出数组元素、求数组元素平均值、输出数组元素最大值、输出数组元素最小值、查找某数值元素是否存在(若存在,请输出下标)、给数组元素排序,要求在主函数中对各子函数进行调用和测试。

    实验解答:

    写出完整的源程序代码并做适当注释:

    = 2 \* GB3 ② 运行一次程序,写出你输入的数据以及程序每步的输出结果(从键盘输入的内容用斜体字):

    实验题目(2)【见实验教材实验六的题目2】:编程exp6_2.c,现有整型变量x,y(初始化为1和2),调用交换函数以期实现两个值的交换。下表中4种不同的定义及调用分别进行测试并填写表格。

    表1 拟实现交换的四种方法

    原型声明

    void swap1( int , int );

    void swap2( int *, int );

    void swap3( int *, int *);

    void swap4( int *, int *);

    调用

    语句

    swap1( x , y );

    swap2( &x , y );

    swap3( &x , &y );

    swap4( &x , &y );

    函数

    定义

    void swap1(int a, int b )

    { int temp= a;

    a = b;

    b = temp;

    }

    void swap2(int *a, int b )

    { int temp= *a;

    *a = b;

    b = temp;

    }

    void swap3(int *a, int *b )

    { int temp = *a;

    *a = *b;

    *b = temp;

    }

    void swap4(int *a, int *b )

    { int *temp = a;

    a=b;

    b=temp;

    }

    实验解答:

    = 1 \* GB3 ① 主函数代码如下:

    int main()

    {

    int x=1,y=2;

    swap1(x,y); /*此处依次换成另外3种调用进行观察,其余代码不变*/

    printf("x=%d,y=%d\n",x,y);

    return 0;

    }

    通过修改以上主函数中调用函数的语句,按表1更新对应的函数调用,分别运行程序,填写下表:

    函数原型

    输出结果

    是否交换

    原因分析

    void swap1( int a, int b );

    void swap2( int *a, int b );

    void swap3( int *a, int *b );

    void swap4(int *a, int *b );

    利用F10和F11功能键进行单步跟踪,4次运行观察各变量的变化情况,填写下表:

    跟踪点(黄色箭头所指行)

    实参x的值

    实参y的值

    跟踪点(黄色箭头所指行)

    形参a(或*a)的值

    形参b(或*b)的值

    swap1调用行

    swap1函数左大括号处

    a的值:

    b的值:

    swap1后的printf行

    swap1函数右大括号处

    a的值:

    b的值:

    swap2调用行

    swap2函数左大括号处

    *a的值:

    b的值:

    swap2后的printf行

    swap2函数右大括号处

    *a的值:

    b的值:

    swap3调用行

    swap3函数左大括号处

    *a的值:

    *b的值:

    swap3后的printf行

    swap3函数右大括号处

    *a的值:

    *b的值:

    swap4调用行

    swap4函数左大括号处

    *a的值:

    *b的值:

    swap4后的printf行

    swap4函数右大括号处

    *a的值:

    *b的值:

    实验题目(3)【见实验教材实验七的题目3】:编写程序exp7_3.c,从键盘读入一个字符串,去掉其中所有的空格得到一个新串后再输出(只能定义一个字符数组,不可以定义两个字符数组,可以根据编程需要定义字符指针以及其他变量)。

    实验解答:

    写出完整的源程序代码并做适当注释:

    ②按表中所给测试用例输入观察对应输出结果:

    测试用例要求

    输入的原始串

    输出结果串

    串中空格每处只有一个

    A bcd 12 45 t

    至少有一处有连续多个空格字符

    A bc 12 t

    字符串最前面是4个空格

    A b 12 t

    你自己设计的测试用例

    四、实验小结(包括问题和解决方法、心得体会、意见与建议、实验出错信息及解决方案等)

    (一)实验中遇到的主要问题及解决方法

    (二)实验心得

    (三)意见与建议(没有可省略)

    五、支撑毕业要求指标点

    六、指导教师评语

    评 分 细 则

    评分项

    优秀

    良好

    中等

    合格

    不合格

    遵守实验室规章制度

    学习态度

    算法思想准备情况

    程序设计能力

    解决问题能力

    课题功能实现情况

    算法设计合理性

    算法效能评价

    回答问题准确度

    报告书写认真程度

    内容详实程度

    文字表达熟练程度

    其它评价意见

    本次实验能力达成评价(总成绩)

    批阅人

    日期

    • 下载文档
    • 收藏
    • 0

    有关的专题