参考答案和解析
正确答案:B
更多“执行以下程序,输出结果为()。main(){chara[]='program';printf("%c",a[0]);} ”相关问题
  • 第1题:

    若有以下程序main(){ char a; a=’H’-’A’+’0’; printf("%c\n",a);}执行后的输出结果是


    正确答案:7
    将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的ASCII代码放到存储单元中,由此可以看出,字符数据在内存中是以ASCII码存储的。字符’A’的ASCII码值为65,’H’的ASCII码值为72,’\0’是一个ASCII码值为0的字符,其作用是实现整型和字符型的转换。"%c"是用于输出字符的格式符,所以最后打印输出7。

  • 第2题:

    有以下程序 void fun 1 (char *p) { char *q; q=p; while(*q!='\0') {(*q)++;q++;} } main() {char a[]={"Program"},*p; p=&a[3];fun1(p);printf("%s\n",a); } 程序执行后的输出结果是______。

    A.Prohsbn

    B.Prphsbn

    C.Progsbn

    D.Program


    正确答案:A
    解析:此题考核的知识点是指向数组的指针作为函数的参数及指针的运算,如果形参数组中的元素发生变化,实参也将发生相应变化。指针p指向数组的第三位地址(即字符“g”的地址),q=p也就相当于指针q指向数组的第三位地址。表达式(*q)++,首先根据()的优先级得到a[3]的值“g”,再进行加1运算,所以g也就变成了h;表达式q++是将地址加 1,也就是指向下—个地址町a[4]。然后再执行while()语句,直到遇到'\0'结束循环,返回形参。

  • 第3题:

    有以下程序: void fun1(char*p) { char *q; q=p; while(*q!='\0') { (*q)++; q++; } } main() { char a[]={"Program"),*p; p=&a[3]; fun1(p) printf("%s\n",A) ; } 程序执行后的输出结果是( )。

    A.Prohsbn

    B.Prphsbn

    C.Progsbn

    D.Program


    正确答案:A
    解析:在函数fun1()中,首先将形参p的内容存入临时指针q中,然后使用—个while循环,当q所指内容不是字符串结束标志"\0'时,让q所指内容增1,然后将指针q增1指向下一个位置。所以函数fun1()实现的功能是:将传入字符串的所有字符自增1。主函数,指针p在被传入fun1()函数之前,初始化指向的是宁符数组a的第4个元素'g',所以最终输出的结果应该是Prohsbn。故应该选择A。

  • 第4题:

    下列程序执行的输出结果是( )。 include main() {char a[2][4];strcpy(a,"are");strcpy

    下列程序执行的输出结果是( )。 #include<stdio.h> main() { char a[2][4]; strcpy(a,"are");strcpy(a[1],"you"); a[0][3]='&'; printf("%s\n",a); }

    A.are&you

    B.you

    C.are

    D.&


    正确答案:A
    解析:strcpy(a,"are")中数组名a代表数组首地址的地址常量,该操作把are复制到a中,a[O][3]='&',且strepy(a[1]."you")把you复制到a[1]中,故输出a为“are&you”。

  • 第5题:

    有以下程序: void funl(char*p) { char*q; q=P; while(*q!=\O) {(*q)++;q++;} } main { char a[]={"Program"),*P; p=&a[3];funl(p); printf("%s\n",a); } 程序执行后的输出结果是( )。

    A.Prohsbn

    B.Prphsbn

    C.Progsbn

    D.Program


    正确答案:A
    本题中使用了函数的调用,由{unl函数中的while循环可知,循环的作用是为了把q所指向的内容增加l,而从主函数传到函数时是从下标为3开始传,因此当调用函数执行完后,传过去的字符串为hsbn,前面不变。