使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,即使程序在界面输出以下类似内容: 0012FF68 1 0012FF3C 5 0012FF6C 2 0012FF44 4

admin2018-10-23  14

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,即使程序在界面输出以下类似内容:
    0012FF68 1 0012FF3C 5
    0012FF6C 2 0012FF44 4
    0012FF70 3 0012FF4C 3
    0023FF74 4 0012FF54 2
    0012FF78 5 0012FF5C 1
    006AFDCC~006AFDEF数据可能因为机器的不同,程序的输出的内容会有差异。只要相差为4的连续地址即可。
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1  #include<iostream>
2  using namespace std;
3 int main()
4  {
5    int *p,a[5]={1,2,3,4,5};
6    double *q,b[5]={5.0,4.0,3.0,2.0,1.0};
7    int x;
8   p=a;
9    q=b;
10    //********error********
11    for(x=0;x<=5;x++)
12    //********error********
13   cout<<p+x  << ’’ ’’<<(p+x)<<’’ ’’<<q+x<<’’  ’’<<(q+x)<<end1;
14    return 0;
15  }

选项

答案(1)for(x=0;x<5;x++) (2)cout<<p+x<< ’’ ’’ <<*(p+x) << ’’’’<<q+x<<’’ ’’<<*(q+x) <<end1;

解析 本题的程序功能是输出相差为4的连续地址。从已定源程序的main主函数开始入手,依次执行程序中的语句,重点分析、调试标识下的错误语句,输出题目要求的结果。
    (1)根据数组a、b定义,它们都是5个元素,而第1个标识下的“for(x=0;x<=5;x++)”循环了6次,应该是5次,所以第1个标识下的将其修改为“for(x=0;x<5;x++)”
    (2)第2个标识下的p变量为指针型变量,p+x为指向数组中第x个元素的地址,这里要输出的是存储单元的内容,所以使用“*”指针元素符,即修改为“cout<<p+x<<””<<*(p+x)<<’’ ’’<<q+x<<’’ ’’<<*(q+x)<<end1;”。
转载请注明原文地址:https://kaotiyun.com/show/f5Ap777K
0

最新回复(0)