- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验 数组
实验VC的调试熟练掌握跟踪调试的方法下面程序的功求主、次对角线元素之和。
三、编程练习(必须上交)
利用VC++编写程序,并调试、运行,直到输出正确结果。
编程练习1:
实验教材:(实验6 数组(1) )
P25:
3、编写程序 (1)、(3)
所有源程序文件名由自己确定,如sjt1.c、sjt2.c等等。
编程练习2:
(1) 输入一个字符串,将其中所有大写字母改为小写字母,而所有小写字母全部改为大写字母,其它字符不动。最后输出新的字符串。【】”的元素(即对角线和对角线之上的各元素)其值为1;
数组中“行下标值列下标值”元素的值为(行下标-列下标+1)
将编写好的程序用文件名phalanx.c保存
★ 作业上交(千万不要忘记):
C程序编译、连接、运行成功后,请务必将源程序(扩展名为.C、存于E:盘以本人姓名为名称的文件夹下,如E:\陈谋文\c01.c)复制到K:盘对应的文件夹中,如K(01):\ 电科111125陈谋文\实验7,才算上交作业。
注:为了方便自己使用,不妨将源程序备份到可移动存储器上(如U盘、手机卡等)
四、课外练习(源程序名可依实验总体要求及本人的习惯确定,可不上交)
A、实验教材
P76:习题7 数组
B、理论教材
1.本章各知识点及例题中需要上机操作才能理解的内容和需要上机验证的内容
2.(P118)习题7的内容
注:1)以上程序题与实验教材的程序题要求是一样的
2)理论教材中习题与实验教材中的习题相同的题目只要求作一次
五、补充练习(选做)
调试示例#include stdio.h
void main( )
{ int i, j, n, x, a[n];
printf(输入数据的个数n:);
scanf(%d, n);
printf(输入%d个整数:, n);
for(i = 0; i n; i++)
scanf(%d, a[i]);
printf(输入要插入的整数:);
scanf(%d, x);
for(i = 0; i n; i++)
{
if(x a[i])
continue;
j = n - 1;
while(j = i) /* 调试时设置断点 */
{ a[j] = a[j+1];
j++;
} /* 调试时设置断点 */
a[i] = x;
break;
}
if(i == n) a[n]=x;
for(i = 0; i n + 1; i++)
printf(%d , a[i]);
putchar(\n);
}
运行结果(改正后程序的运行结果)
输入数据的个数n:5
输入5个整数:1 2 4 5 7
输入要插入的整数:3
1 2 3 4 5 7
算法提示:先找到插入点,从插入点开始,所有的数据顺序后移,然后插入数据;如果插入点在最后,则直接插入(说明插入的数排在该组数据中的最后)。
(1)输入源程序,并以error7_1.c文件名保存,编译程序,出现以下错误信息:
expected constant expression
cannot allocate an array of constant size 0
a : unknown size
以上错误信息指出:定义数组a时,数组长度必须是常量。程序中的数组定义错误的用了a[n],改为a[10]后,重新编译和连接,没有出现错误信息。
(2)调试程序开始,设置2个断点,具体位置见源程序的注释。
(3)单击(go),运行程序,依次输入5和1 2 4 5 7,以及3,程序运行到第一个断点,在Watch窗口观察输入的a数组和插入的数x均正确,而且3 4(xa[2]),需要将a[2]及其后面的数据顺序后移,然后把3插入到a[2]中。
(4)再单击(go),程序运行到第二个断点,在Watch窗口观察a[j]和a[j+1]的值均是一个负数,这显然不对。仔细分析,算法要求数组元素后移,而程序中a[j]=a[j+1]是前移,而且j++也同样有问题,只要加一次,数组下标就越界了。
(5)找出问题后,单击(Stop Debugging )停止调试,把a[j]=a[j+1]改为a[j+1]=a[j],j++改为j--后,重新编译和连接,没有错误和警告。
(5)单击(Rstart ),重新开始调试,并取消第一个断点,单击(go),程序运行到断点,Watch窗口显示a[j]=5和a[j+1]=7,排列正确。
(6)再单击(go),程序运行到断点,观察Watch
文档评论(0)