[四川大学C语言-实验报告]c语言顺序结构程序设计实验报告

 四川大学电气信息学院

 四川大学电气信息学院

 实验报告(本科)

 学 号

 姓 名

 专

 业

  

 日   期

 实验题目 变量的存储类别

 实验内容: 1. 掌握外部变量、内部变量、静态变量和自动变量的定义

 2. 了解外部变量、内部变量、静态变量和自动变量的作用域和生存期

 3. 掌握使用全局变量(数组)在函数之间和源程序之间正确传送数据

 4. 熟练掌握外部变量、内部变量、静态变量和自动变量的初始化

 问 题 (算 法) 描 述

 实训1 输入学生的学号(数字字符串),将其转换为整型数。

 1) 运行实训1,分别输入一个数字字符串,观察输出结果。

 2) 在第15行处设置断点,按F5启动调试,观察此时变量k的值和地址。

 3) 按F10进行单步执行,查看当程序执行到第17、18、19、21行时,观察变量k的值和地址。

 4) 根据步骤3和4,分析变量k的作用域。

 实训2 求10个成绩中的最大值和最小值。

 1) 运行实训2,观察输出结果。

 2) 分析实训2程序中变量score、minScore和maxScore的作用域和存储类别。

 3) 如果将第8、9行中变量定义时使用的static去掉,本程序的输出结果会有变化吗?为什么?

 实训3 编写函数,计算20个数中最大值、最小值和平均值,由main()调用该函数,并输出结果。(要求:使用全局变量max和min返回最大值和最小值)。

 实训3 NS图如下

 实训4 编写函数,计算两个整数的最大公约数和最小公倍数。由main()调用该函数,并输出结果,两个整数由键盘输入。(要求:使用全局变量gysh和gbsh返回最大公约数和最小公倍数)。

 实训4 NS图如下

 实验结果(即执行界面截图)

 实训1

 1.输入数字字符串后输出字符串如下。

 2.在15行设置断点,观察变量k的值和地址,如下图。此时k的值不存在,因为还没有定义。

 3.单步执行,观察k值和地址的变化。

 (1)执行到在17行时,k的值已经存在。

 (2)执行至第 18行时,k的值变为2

 (3)执行到19行时,k的值仍为2

 (4)运行到21行时,k变为灰色,说明k已经不存在。

 4.根据步骤2、3可知k的作用域为17~19行,即{}限制的范围内。

 实训2

 运行实训2,结果如下。

 2.将断点设置在主函数的末尾,仍能观察到score、minScore、maxScore的值,说明它们的作用域为整个程序,存储类别为静态型。监视图如下。

 取掉第8、9行的static,运行结果不变。因为去掉static后,score、minScore、maxScore为外部变量,存放在静态数据区,使这些数据一直存放直至整个程序运行结束。

 实训3

 实训3运行结果如下

 实训4

 实训4运行结果如下。

 调试(出错信息、出错原因、修改方法)及总结

 画NS图可简化程序,降低编程难度。

 熟练掌握断点的使用方法,通过逐句调试快速查找到程序中的错误。

 使用函数将程序模块化时,要符合语法,提高程序可读性。

 应该定时检查语法,避免犯低级错误,同时节省时间。

推荐访问:四川大学 语言 实验 报告