参考答案和解析
正确答案:C
解析:字符串常量是由双引号括起来的一串字符,每一个字符串常量都分别占用内存中一串连续的存储空间,这些连续的存储空间实际上就是字符型一维数组。
更多“下面程序段的运行结果是()。char * format="%s,a=%d,b=%d\n";int a=11,b=10;a+=b;printf(format," ”相关问题
  • 第1题:

    下面程序运行后的输出结果是______。 fut(int,*s,int P[2][3]) { **s=p[1][1]; } main() { int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fut(&p,a) ; printf("%d\n",*p); }

    A.1

    B.7

    C.9

    D.11


    正确答案:C
    解析:本题a[2][3]定义为一个具有两面行三列的元素的数组,malloc()函数的作用是开辟了一个长度为sizeof(int)的内存区,p为指向整型数据的指针变量,程序调用fut()函数,将第一行第一列对应的元素值赋给**s,由于数组中第一行第一列对应的元素为9,所以本题输出值9。

  • 第2题:

    下面程序输出的结果是()。includemain(){char *a="1234";fun(a);printf("\n");}fun(cha

    下面程序输出的结果是( )。 #include<stdio.h> main() { char *a="1234"; fun(a); printf("\n"); } fun(char *s) { char t; if(*s) { t=*S++;fun(s);} else return; if(t!='\0') putchar(t); }

    A.1234

    B.4321

    C.1324

    D.4231


    正确答案:B
    解析:本题的fun()函数是用递归法实现逆序输出一个字符串。函数中首先定义一个局部变量t,然后s所指的内容是否为字符串结束符,不是的话将s所指的内容赋给t,同时使s后移一位,然后递归调用fun(s)。到这条语句为止是递归过程,即接下来连续递归调用fun(s)都只会执行到这一半,直到回朔条件(s所指内容是字符串结束符)出现,fun()函数连续返回,判断t不等于0的话,就输出t,所以输入的字符串被逆序输出,故本题的正确答案应该是B。

  • 第3题:

    下面程序段的运行结果是 。 char *s="abcde"; s+=2; printf("%d",s);

    A.ced

    B.字符'c'

    C.字符'c'的地址

    D.字符'b'的地址


    "input"

  • 第4题:

    下面程序的运行结果是()。includevoid delch(char *s){ int i,j;char*a;a=s;for(i=0,j=

    下面程序的运行结果是( )。 #include<stdio.h> void delch(char *s) { int i,j; char*a; a=s; for(i=0,j=0;a[i]!='\0' ;i++) if(a[i]>='0' &&a[i]<='9') { s[j]=a[i]; j++;} s[j]='\0'; } main() { char*item="a34bc"; delch(item); printf("\n%s" ,item);}

    A.abc

    B.34

    C.a34

    D.a34bc


    正确答案:B
    解析:指针a通过数组元素下标来从头逐个的引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下34两个字符了。注意:形参为指针变量时,实参和形参之间的数据传递。

  • 第5题:

    有下列程序段,程序段运行后的输出结果是10()。 int *p,n; n=10; p=&n; n=*p+10; printf("%dn", *p);


    a=10 b=50 c=10