参考答案和解析
1,2,1
更多“【单选题】下面程序段的运行结果是() char c[5]={'a','b','0',c','0'}; printf("%s",c);”相关问题
  • 第1题:

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

    下面程序的运行结果是 #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' &aa[i]<='9') {s[j]=a[i]; j++;} s[j]='\0';} main() { char *item="a34bC"; delch(item); printf("\

    A.abc

    B.34

    C.a34

    D.a34bc


    正确答案:B

  • 第2题:

    下面程序段的运行结果是()charc[5]={'a','b','\0','c','\0'};printf("%s",c);。

    A.’a’’b’

    B.ab

    C.abc

    D.ab□(其中□表示空格)


    正确答案:B

  • 第3题:

    有以下程序段 main() { char a[7]="abcdef"; charb[4]="ABC"; strcpy(a,b) ; printf("%c",a[5]); } 程序段运行后的输出结果是( )

    A.a

    B.\0

    C.e

    D.f


    正确答案:D

  • 第4题:

    有以下程序 #include<stdio.h> int fun(char s[]) {int n=0; while(*s<=9&&*s>=0){n=10*n+*s-o;s++;) return(n); } main {char s[10]={6,1,*,4,*,9,*, 0,*); printf("%d",fun(s)); } 程序运行的结果是( )。

    A.9

    B.61490

    C.61

    D.5


    正确答案:C
    在fun函数中,while循环的功能是逐个取字符数组s的字符判断其是否是数字。若是则将这些数字组成一个数保存到变量n中,并返回变量n的值。

  • 第5题:

    有下列程序: include<stdi0.h>voidfun(char*s){while(*s){if(*s%2==(1)printf("%C&q

    有下列程序:

    #include<stdi0.h>

    voidfun(char*s)

    {while(*s)

    {if(*s%2==(1)printf("%C",*s);

    s+十:

    }

    }

    voidmain( )

    {chara[]={"good");

    fun(a);printf("n");

    }

    注意:字母a的ASCIl码值为97,程序运行后的输出结果是( )。

    A.d

    B.go

    C.god

    D.good


    正确答案:A
    A。【解析】在本题中,子函数fun(char*s)的功能是如果*s的ASCIl值是偶数,则输出*s,主函数中当实参的值为good时,9的ASCIl值是103,字母o的ASCIl值是111,字母d的ASCIl值是100,只有字母d的ASCIl值是偶数,所以输出字母d。

  • 第6题:

    下面程序的输出结果是______。includemain(){char ch[7]={"12ab56"}; int i,s=0; for(i

    下面程序的输出结果是______。 #include<stdio.h> main() { char ch[7]={"12ab56"}; int i,s=0; for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); }

    A.1

    B.1256

    C.12ab56

    D.1 2 5 6


    正确答案:A
    解析:for语句中的条件表达式决定了循环体只执行一次。因此s=0*10+1,于是输出结果为1。

  • 第7题:

    下面程序的运行结果是

    #include<stdio.h>

    void delch(char *s)

    { int i,j;

    char *a;

    a=s;

    for(i=0,j=0;a[i]!=′\n′;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中就只剩下和两个字符了。

  • 第8题:

    下面程序输出的结果是()。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。

  • 第9题:

    下列程序段的输出结果是()。  char str[ ]= “abc/0def/0ghi”, *q=str;  printf(“%s”,q+5); 


    正确答案:ef

  • 第10题:

    单选题
    下面程序段的运行结果是()。  char a[7]= “abcdef”;  char b[4]= “ABC”;  strcpy(a,b);  printf(“%c”,a[5]);
    A

    f

    B

    e

    C

    /0

    D

    ∪(∪表示空格)


    正确答案: D
    解析: 暂无解析

  • 第11题:

    单选题
    有如下程序:#include main(){ char name[10] = {'S','T','R','I','N','G'}; name[3]='E'; name[5]=0; printf(%s,name);}程序运行后的输出结果是(  )。
    A

    STRENG

    B

    STRIEG

    C

    STREN

    D

    STREN0


    正确答案: C
    解析:
    printf函数按照格式符说明输出对应的数据。%s控制符用于输出字符串,输出时从给定地址开始依次输出字符,直到遇到'\0'结束。给字符变量赋值0,相当于赋值'\0'。初始化时name = "STRING",改动数组第4个和第6个元素之后字符串变为"STREN"。调用printf输出字符串为STREN,答案选择C选项。

  • 第12题:

    单选题
    有以下程序:#include main(){    char s[]={012xy};    int i,n=0;    for(i=0;s[i]!=0;i++)  if(s[i]>='a'&&s[i]<='z')n++;    printf(%d,n);}程序运行后的输出结果是(  )。
    A

    0

    B

    2

    C

    3

    D

    5


    正确答案: A
    解析:
    程序中main函数的作用就是判断字符串s中小写字母的个数,显然结果为2。答案选择B选项。

  • 第13题:

    下面程序段的运行结果是

    char str[]="ABC",*p=str;

    printf("%d\n",*(p+3));

    A.67

    B.0

    C.字符′C′的地址

    D.字符′C′


    正确答案:B
    解析:考查指向字符串的指针变量。在该题中,指针变量p指向的应该是该字符串中的首地址,p+3指向的是字符串结束标志'\0'的地址,因而*(p+3)的值为0。

  • 第14题:

    下面程序的运行结果是( )。include define SlZE 12 main() {char s[SIZE];int i;for(i=0

    下面程序的运行结果是( )。

    include<stdio.h>

    define SlZE 12

    main()

    {char s[SIZE];int i;

    for(i=0;i<SIZE;i++) s[i]='A'+i+32;

    sub(s,5,SIZE-1);

    for(i=0;i<SIZE;i++)printf("%c",s[i]);

    printf("\n");}

    sub(char *a,int t1,int t2)

    { char ch;

    while(t1<t2)

    { ch=*(a+t1);

    *(a+t1)=*(a+t2);

    *(a+t2)=ch;

    t1++;t2--;

    }

    }


    正确答案:abcdelkjihgf
    abcdelkjihgf 解析:本题先给字符型数组s的12个元素赋值a到1共12个字母,函数sub(char*a,int t1,int t2)的功能是将数组a的从第t1+1个元素到t2+1个元素进行逆置,在主函数中调用sub(s,5,SIZE-1)函数,是将数组s的第6个元素到第12个元素进行逆置,其他元素位置不变。

  • 第15题:

    有以下程序

    #include<stdlo.h>

    main( )

    {char s[]={“012xy”};int i,n=0;

    for(i=0;s[i]!=0;i++)

    if(s[i]>=‘a’&&8[i]<‘z’)n++:

    printf(”%d\n”,n);

    }

    程序运行后的输出结果是

    A.0

    B.2

    C.3

    D.5


    正确答案:B
    解析:在字符串数组s[j]中,只有当下标i=3和i=4时,才满足if条件,所以n的值从0增加两次,结果为2。

  • 第16题:

    下面程序的运行结果是( )。 #inelude<stdio.h> void del(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*s="aa89gggh"; del(s): printf("\n%s",s); }

    A.1

    B.2

    C.3

    D.4


    正确答案:D
    本题中del(char*s)函数实现的功能是:逐个读入S数组中的字符,如果遇到数字,则将数字存在s中,遇到非数字字符则跳过。所以最后输出的应该是字符串S中所有的数字的个数。

  • 第17题:

    有以下程序 include int fun(char s[ ]) { int n=0; while(*s<='9'&&*s>='0

    有以下程序

    #include <stdio.h>

    int fun(char s[ ])

    { int n=0;

    while(*s<='9'&&*s>='0') {n=10*n+*s-'0';s++;}

    retum(n);

    }

    main( )

    { char s[10]={'6','1','*','4','*','9','*','0','*'};

    printf("%d\n",fun(s));

    }

    程序的运行结果是

    A.9

    B.61490

    C.61

    D.5


    正确答案:C
    解析:在fin函数中,while循环的功能是:逐个取字符数组s的字符判断其是否是数字。若是则将其作为个位数字保存到变量n中,n的原数据的各个数位将相应左移一个十进制位。当指针s指向数组的第3位时,循环条件不成立,循环结束,返回n的值,输出n的值为61。

  • 第18题:

    下面程序的运行结果是______。 main () { char ch [7]={"65ab21"}; int i, s=0; for (i=0;ch [i]>='0'&&ch [i]<='9';i+-2) s=10*s+ch [i] -'0'; printf ("%d\n",s) ' }

    A.12ba56

    B.652

    C.6

    D.62


    正确答案:C

  • 第19题:

    下面程序的运行结果是()。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两个字符了。注意:形参为指针变量时,实参和形参之间的数据传递。

  • 第20题:

    有以下程序 include<stdio.h>intfun(chars[]){intn=0;while(*s<=’9’&&

    有以下程序

    #include<stdio.h>

    int fun(char s[])

    {

    int n=0;

    while(*s<=’9’&&*s>=’0’) { n=10*n+*s-‘0’;s++; }

    return(n);

    }

    main()

    {

    char s[10]={‘6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};

    printf(“%d\n”,fun(s));

    }

    程序的运行结果是( )。

    A.9

    B.61490

    C.61

    D.5


    正确答案:C

  • 第21题:

    下面程序段的运行结果是()。  char a[7]= “abcdef”;  char b[4]= “ABC”;  strcpy(a,b);  printf(“%c”,a[5]);

    • A、f
    • B、e
    • C、/0
    • D、∪(∪表示空格)

    正确答案:A

  • 第22题:

    填空题
    下列程序段的输出结果是()。  char str[ ]= “abc/0def/0ghi”, *q=str;  printf(“%s”,q+5);

    正确答案: ef
    解析: 暂无解析

  • 第23题:

    单选题
    有以下程序#include int fun(char s[]){ int n=0; while(*s='0') {  n=10*n+*s-'0';  s++; } return (n);}main(){ char s[10]={'6','1','*','4','*','9','*','0','*'}; printf("%d",fun(s));}程序的运行结果是(  )。
    A

    61490

    B

    61

    C

    9

    D

    5


    正确答案: B
    解析:
    f函数将依次遍历字符数组,将其中的数字字符转换为对应的整数,并按照其出现的顺序将其构造成一个整数,直至遇见非数字字符循环停止。本题中,依次遍历到'6','1',构造成整数61,循环遇到'*'时结束,返回61。答案选择B选项。

  • 第24题:

    单选题
    有以下程序: #include int fun(char *s) {  char *p=s;  while(*p++!='\0');  return(p-s); } main() {  char *p=01234;  printf(%d,fun(p)); } 程序的运行结果是(  )。
    A

    6

    B

    5

    C

    4

    D

    3


    正确答案: B
    解析:
    程序执行过程为:定义字符串指针p并为其初始化为“01234”,调用函数fun(p),将指针传入函数。while循环找到字符串的束符地址,然后使这个指针指向结束符下一个单元,结束循环。返回字符串首地址与结束符下一个地址之差,也即是字符串长度加1。输出地址差为6,答案选择A选项。