有如下程序:#include<iostream>usingnamespacestd;intmain(){int*P;*P=9:cout<<"ThevalueatP:"<<*P;return0;}编译运行程序将出现的情况是( )。A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出ThevalueatP:9C.运行时一定输出ThevalueatP:*9D.运行时有可能出错

题目

有如下程序:

#include<iostream>

usingnamespacestd;

intmain()

{

int*P;

*P=9:

cout<<"ThevalueatP:"<<*P;

return0;

}

编译运行程序将出现的情况是( )。

A.编译时出现语法错误,不能生成可执行文件

B.运行时一定输出ThevalueatP:9

C.运行时一定输出ThevalueatP:*9

D.运行时有可能出错


相似考题
更多“有如下程序: #include&lt;iostream&gt;usingnamespacestd; intmain() {int*P; *P=9: cout&lt;&lt ”相关问题
  • 第1题:

    若有如下程序段: include using namespace std; int main() {char*p="abcdefgh",*r;l

    若有如下程序段:

    include <iostream>

    using namespace std;

    int main()

    {

    char *p="abcdefgh",*r;

    long *q;

    q=(long *)p;q++;

    r=(char *)q;

    cout<<r<<end1;

    return 0;

    }

    该程序的输出结果是______。


    正确答案:efgh
    efgh 解析:本题定义了一个字符型指针变量p,并通过赋初值让它指向了一个字符串,还定义了另一个字符型指针变量r和一个长整型指针变量q。首先通过语句“a=(long*)p;”,把p的地址值强制转换为长整型地址值并赋值给小然后执行“q++”,地址值增加了4,执行语句“r=(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址。最后输出r指向的字符串。

  • 第2题:

    有如下程序: include using namespace std; int main() { int *p;

    有如下程序: #include<iostream> using namespace std; int main() { int *p; *p=9; cout<<"The value at p:"<<*p; return 0; } 编译运行程序将出现的情况是

    A.编译时出现语法错误,不能生成可执行文件

    B.运行时一定输出:The value at p:9

    C.运行时一定输出:The value at p:*9

    D.运行时有可能出错


    正确答案:D
    解析:本题考查的是指针的运用。在使用任何指针变量之前必须先给它赋一个所指合法具体对象的地址值。本题中,在给*p赋值前,指针变量p并没有指向一个具体对象。此时可以通过编译,但运行时由于p中为随机值,该赋值可能会破坏内存中某个重要的地址空间中的内容,导致程序运行出错。故应该选择D。

  • 第3题:

    有如下程序:include using namespace std;int main(){ int *p; *p = 9;cout << "The

    有如下程序: #include <iostream> using namespace std; int main() { int *p; *p = 9; cout << "The value at p: " << *p; return 0; } 编译运行程序将出现的情况是( )。

    A.编译时出现语法错误,不能生成可执行文件

    B.运行时一定输出:The value at p:9

    C.运行时一定输出:The value at p:*9

    D.运行时有可能出错


    正确答案:D
    解析:此题考查的是指针的使用。本题中,在给*p赋值前,指针p并没有指向一个具体的对象。此时可以通过编译,但运行时由于p中为随机值,该赋值可能会破坏内存中某个重要的地址空间的内容,导致程序出错。

  • 第4题:

    有如下程序: #include<iostream) using namespace std; int main() { int*p; *p=9; cout<<“The value at p:”<<*p; return 0; } 编译运行程序将出现的情况是( )。

    A.编译时出现语法错误,不能生成可执行文件

    B.运行时一定输出:The value at p:9

    C.运行时一定输出:The value at p:*9

    D.运行时有可能出错


    正确答案:D
    解析: 本题考查的是指针的使用。在给*p赋值前,指针p并没有指向一个具体的对象。此时可以通过编译,但运行时由于p中为随机值,该赋住可能会破坏内存中某个重要的地址空间的内容,导致程序出错;

  • 第5题:

    有以下程序:includeusingnamespacestd;int main (){ int a[]={1,2,3, 4,5, 6, 7,8,9,

    有以下程序: #include<iostream> using namespace std; int main () { int a[]={1,2,3, 4,5, 6, 7,8,9, 10, 11, 12}; int *p=a+5, *q=0; *q=* (p+5); cout<<*p<<" "<<*q<<end1; return 0; }

    A.运行后报错

    B.66

    C.6 12

    D.5 5


    正确答案:A
    解析:本题考核指针的加减运算。程序首先定义并初始化数组a,并让定义指针p指向数组a的第6个元素,即a[5]。程序还初始化指针q为空,即没有指向对象。那么语句“*q=*(p+5);”,就是错误的,因为指针q为空。给指针q正确的赋值语句应为:“q=p+5;”。

  • 第6题:

    有如下程序:includeusing namespace std;int main(){int *p;*p=9;cout<<"The value a

    有如下程序: #include<iostream> using namespace std; int main() { int *p; *p=9; cout<<"The value at p:"<<*p; return 0; } 编译运行程序将出现的情况是( )

    A.编译时出现语法错误,不能生成可执行文件

    B.运行时一定输出:The value at p:9

    C.运行时一定输出:The value at p:*9

    D.运行时有可能出错


    正确答案:D