参考答案和解析
正确答案:B
解析:本题考核的知识点是puts()函数的应用。主函数中定义了一个字符数组s并赋初值,一个字符串指针变量ps并让它指向s。程序中p+4的地址为数组第5个元素的地址,而调用put(str_adr)函数时,将从str_adr这一地址开始,依次输出存储单元中的字符,遇到第一个“\0”时结束输出,并自动输出一个换行符。所以put(p++4)将输出n/No,put(s)将从s第一个元素开始输出到第3个元素结束(因为执行*(p4)c0语句后s中的第5个元素的值为0,而s中的第4个元素为“\”,puts将遇到“\0”,结束输出),即输出yes。所以,4个选项中选项B符合题意。
更多“有以下程序main (){ char s []= "Yes\n/No", *ps=s; puts (ps+4); * (ps+4)=0;puts (s);}程序运 ”相关问题
  • 第1题:

    有以下程序:include main( ){chars[] ="Yes\n/No",*ps=s;puts(ps +4); * (pa +4) =0;p

    有以下程序: #include <stdio.h> main( ) { chars[] ="Yes\n/No",*ps=s; puts(ps +4); * (pa +4) =0; puts(s); }程序运行后的输出结果是( )。

    A.n/No Yes /No

    B./No Yes

    C./NO Yes /No

    D.n/No Yes


    正确答案:B
    解析:用puts函数输出的字符串中可以包含转义字符,遇到转义字符,自动跳过去。例如本题中ps+4指的是'/'的地址,并不是'\n'的地址,所以puts(ps+4)输出的是/NO。C规定以字符'\0',作为字符串结束标志,以便系统据此判断字符串是否结束。本题执行*(Ps+4)=0之后,再执行puts(s),就相当于输出字符串Yes后遇到结束标志。

  • 第2题:

    有以下程序: main() { char s[]="Yes\n/No",*ps=s; puts(ps+4); *(ps+4)=0; puts(s); } 程序运行后的输出结果是(选项D中的第一行是空行) ( )。

    A.n/No Yes /No

    B./No Yes

    C./No Yes /No

    D./No Yes


    正确答案:B
    解析:主函数中定义了一个字符数组s并赋初值,一个字符串指针变量ps并让它指向s。程序中p+4的地址为数组第5个元素的地址,而调用put(stradr)函数时,将从stradr这一地址开始,依次输出存储单元中的字符,遇到第一个“\0”时结束输出,并自动输出一个换行符ad。r所以put(p+4)将输出n/No,put(s)将从s第一个元素开始输出到第3个元素结束(因为执行*(p+4)=0语句后s中的第5个元素的值为0,而s中的第4个元素为“\”,puts将遇到“\0”,结束输出),即输出yes。所以,4个选项中选项B符合题意。

  • 第3题:

    13、下面程序执行后的输出结果是()。 #include <stdio.h> int main() { char s[]="Yes\n/No",*ps=s; puts(ps+4); *(ps+4)=0; puts(s); return 0; }

    A./No Yes

    B.n/No Yes /No

    C./No Yes /No

    D./No Yes/No


    A

  • 第4题:

    有以下程序: main() { char s[]="Yes\n/No",*ps=s; puts(ps+4); *(ps+4)=0; puts(s); } 程序运行后的输出结果是(选项D中的第一行是空行)( )。

    A.n/No Yes /No

    B./No Yes

    C.n/No Yes /No

    D./No Yes


    正确答案:B
    解析:主函数中定义了一个字符数组s并赋初值,一个字符串指针变量ps并让它指向s。程序中p+4的地址为数组第5个元素的地址,而调用put(str_adr)函数时,将从str_adr这一地址开始,依次输出存储单元中的字符,遇到第一个\0时结束输出,并自动输出一个换行符。所以put(p+4)将输出n/No,put(s)将从s第一个元素开始输出到第3个元素结束(因为执行*(p+4)=0语句后s中的第5个元素的值为0,而s中的第4个元素为\,puts将遇到\0,结束输出),即输出yes。所以,4个选项中选项B符合题意。

  • 第5题:

    有以下程序 main() { char s[]="Yes\n/No",*ps=s; puts(ps+4); *(ps+4)=0; puts(s); } 程序运行后的输出结果是(注:选项D中的第一行是空行)______。

    A.n/No Yes /No

    B./No Yes

    C.n/No Yes /No

    D./No Yes


    正确答案:B