更多“有以下程序 main() { char s[]="abcde"; s+=2; printf("%d/n",s[0]); } 执行后的结果是()A、输出字符a的ASCII码B、输出字符c的ASCII码C、输出字符cD、程序出错”相关问题
  • 第1题:

    有下列程序:

    main()

    {char s[]="abcde";

    s+=2;

    printf("%d\n",s[0];

    }

    执行后的结果是( )。

    A.输出字符a的ASCII码

    B.输出字符c的ASCII码

    C.输出字符c

    D.程序出错


    正确答案:D
    解析:因为字符数组s1)中的数组名s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。

  • 第2题:

    若有如下程序; main() {char *p="china"; p+=1; printf("%d\n",p); } 则程序运行后的输出结果是 ( )

    A.china

    B.字符h的地址

    C.hina

    D.字符h的ASCII码值


    正确答案:B

  • 第3题:

    以下程序段的输出结果为()。charastr[5]="1234";char*pstr=astr;printf("%c",pstr[1]-'0');

    A.ASCII码值为2的字符

    B.ASCII码值为1的字符

    C.2

    D.1


    正确答案:C

  • 第4题:

    下面程序段的运行结果是 include void main( ) {char*s="abcde"; S+=2;

    下面程序段的运行结果是 #include<iostream.h> void main( ) { char*s="abcde"; S+=2; cout<<&s;}

    A.cde

    B.字符'c'

    C.字符'c'的地址

    D.无确定的输出结果


    正确答案:C
    解析:对于字符串指针,其保留的是整个串的首地址,即为第一个字符的起始地址,当该指针做算术运算时,就是该指针根据其类型向后移动相应的存储空间。

  • 第5题:

    以下程序运行后;输出结果是______。 main() { char*d[]={"ab","cde"}; printf("%x",d[1]); }

    A.cde

    B.字符c的ASCII码值

    C.字符c的地址

    D.出错


    正确答案:C
    解析:指针数组中的每一个元素都相当于一个指针变量。一维指针数组的定义形式为:类型名*数组名[数组长度],在本题main函数中定义指针数组d,它有两个元素,其初值分别是"ab"、"cde"的首地址。d[1]的值为"cde"的首地址。%x是指以十六进制数形式输出整数。

  • 第6题:

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

    A.cde

    B.字符'c'

    C.字符'c'的地址

    D.无确定的输出结果


    正确答案:C
    解析:语句s+=2;使指针指向字符'c',此时s中保存的便是字符'c'的地址。

  • 第7题:

    有以下程序(说明:字母A的ASCII码值是65)

    #include

    void fun(char *s)

    { while(*s)

    { if(*s%2) printf("%c",*s);

    s++;

    }

    }

    main()

    { char a[]="BYTE";

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

    }

    程序运行后的输出结果是

    A.BY

    B.BT

    C.YT

    D.Y


    正确答案:D

  • 第8题:

    有以下程序

    #include<stdio.h>

    main( )

    {char s[]=“rstuv”;

    printf(“%c\n”,*s+2);

    }

    程序运行后的输出结果是( )。

    A.tuv

    B.字符t的ASCII码值

    C.t

    D.出错


    正确答案:C
    解析:本题中,语句printf函数输出的是字符指针s所指变量的ASCⅡ表对应值,即ASCⅡ表中值为s[0]+2的字符。所以选C。

  • 第9题:

    数字字符'0'的ASCII值为48,若有以下程序:include main( )char a='1',b ='2';printf( "

    数字字符'0'的ASCII值为48,若有以下程序: #include <stdio.h> main( ) char a='1',b ='2'; printf( "% c,",b + + ); printf(" % d \n" ,b - a); } 程序运行后的输出结果是( )。

    A.3,2

    B.50,2

    C.2,2

    D.2,50


    正确答案:C
    解析:变量a,b定义为字符型,执行printf("%c,"b++);时,首先输出字符变量b的值'2'和逗号,然后b的值加1,b的值变成'3';再执行printf("%d\n",b-a);输出'3'-'1',即数字2。所以程序运行后的输出结果为选项C)。

  • 第10题:

    (25)有以下程序(说明:字母A的ASCII码值是65)

    #include <stdio.h>

    void fun(char *s)

    { while(*s)

    { if(*s%2) printf("%c",*s);

    s++;

    }

    }

    main()

    { char a[]="BYTE";

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

    }

    程序运行后的输出结果是

    A)BY

    B)BT

    C)YT

    D) YE


    正确答案:D

  • 第11题:

    单选题
    有以下程序 main() { char s[]="abcde"; s+=2; printf("%d/n",s[0]); } 执行后的结果是()
    A

    输出字符a的ASCII码

    B

    输出字符c的ASCII码

    C

    输出字符c

    D

    程序出错


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

  • 第12题:

    单选题
    有以下程序(说明:字母A的ASCII码值是65):#include void fun(char *s){ while(*s) {  if(*s%2)printf(%c,*s);  s++; }}main(){ char a[]=BYTE; fun(a); printf();}程序运行后的输出结果是(  )。
    A

    BY

    B

    BT

    C

    YT

    D

    YE


    正确答案: B
    解析:
    函数只会输出ASCII码值为奇数的字母,执行fun(a)时,依次取出a[]中的字母,当取第一个字母B时,因为B的ASCII码值为66,所以不会输出B,字母Y的ASCII码值为89,字母T的ASCII码值为84,字母E的ASCII码值为69,所以最后输出字母YE。答案选择D选项。

  • 第13题:

    有以下程序: #include<stdio.h> main { char s[]="rstuv"; printf("%c\n",*s+2); } 程序运行后的输出结果是( )。

    A.tuv

    B.字符t的ASCIl码值

    C.t

    D.出错


    正确答案:C
    本题中,语句printf函数输出的是字符指针S所指变量的ASCIl表对应值,即ASCIl表中值为s[0]+2的字符。所以选C。

  • 第14题:

    数字字符0的ASCII值为48,若有以下程序 main() { char a='1',b='2'; printf("%c,b++); printf("%d\n",b-a); } 程序运行后的输出结果是______。

    A.3,2

    B.3,1

    C.2,1

    D.2,2


    正确答案:D

  • 第15题:

    数字字符0的ASCII值为48,若有以下程序: main() { char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); } 程序运行后的输出结果是 ______。

    A.3,2

    B.50,2

    C.2,2

    D.2,50


    正确答案:C
    解析:b++是先使用b再给b赋值1,因此是先输出2,再将b加1,b='3',则第一条语句输出2,第二条语句输出2。

  • 第16题:

    已知字符'0'的ASCII码的十进制数为48,并且数组的第0个元素在低位,有以下程序includema

    已知字符'0'的ASCII码的十进制数为48,并且数组的第0个元素在低位,有以下程序 #include<stdio.h> main() { union{int i[2];long k:char c[4];}r,*s=&r; s->i[0]=0x39;s->i[1]=0x38;printf("%c\n",s->c[0]); } 程序运行后的输出结果是 ( )

    A.39

    B.9

    C.38

    D.8


    正确答案:B

  • 第17题:

    有以下程序inc1udevoid fun(char*s){while(*s) {if(*s%2=0) printf("%c",*s); s++ }}m

    有以下程序 #inc1ude<stdio.h> void fun(char*s) { while(*s) { if(*s%2=0) printf("%c",*s); s++ } } main() { char a[]={"good"}; fun(A) ; prntf("n\"); } 注意:字母a的ASCII码值为97,程序运行后的输出结果是______。

    A.d

    B.go

    C.god

    D.good


    正确答案:A
    解析:本题主要考查函数的调用以及字符的ASCII码值,由while循环语句可知,如果字符的ASCII码值为偶数就输出该字符,否则不输出,因为s的ASSCII码值为103;o的码值为111,d的码值为100,所以程序输出结果是d,因此,选项A是正确的。

  • 第18题:

    有以下程序(说明:字母A的ASCII码值是65)

    #include<stdio.h>

    void fun(char*S)

    {while(*s)

    {if(*s%2)printf(“%c”,*s);

    S++;

    }

    }

    main()

    {char a[]=“BYTE”:

    fun(a);printf(“\n”);

    }

    程序运行后的输出结果是

    A.BY

    B.BT

    C.YT

    D.YE


    正确答案:D

  • 第19题:

    有以下程序(注:字符a的ASCII码值为97)

    #include<stdio.h>

    main()

    { char*S={"abc"}:

    do

    {printf("%d",*s%10);++s;}

    while(*s);

    }

    程序运行后的输出结果是

    A.abc

    B.789

    C.7890

    D.979899


    正确答案:B
    解析:本题考察do…while循环语句以及字符串的相关知识,第一层循环*s为a,*s%10后的结果为7,同理依次输出8和9,所以结果为789,答案为B)。

  • 第20题:

    以下程序运行后的输出结果是______。 main() { char*s="abcde";s+=2;printf("%1d\n",s);}

    A.cde

    B.字符c的ASCII码值

    C.字符c的地址

    D.出错


    正确答案:C

  • 第21题:

    试题22

    有以下程序(注:字符a的ASCII码值为97)()

    #include <stdio.h>

    main()

    { char *s ={“abc”};

    do

    { printf(“%d”, *s%10); ++s;}

    While(*s);

    }

    程序运行后输出结果是()

    A.abc

    B.789

    C.7890

    D.979899


    正确答案:B
    试题22分析
    printf(“%d”, *s%10); ++s;输出的内容为每个字符的ASCII值对10求模,直到字符串结束为止,所以a,b,c对应的结果为789。
    试题22答案
    BB

  • 第22题:

    单选题
    有以下程序:#include main(){ char s[]=rstuv; printf(%c,*s+2);}程序运行后的输出结果是(  )。
    A

    tuv

    B

    字符t的ASCII码值

    C

    t

    D

    出错


    正确答案: D
    解析:
    "*"的优先级高于"+",因此先对s取内容,然后将s中的内容加2。s=&s[0],*s是字符r,*s+2表示字符r后的第二个字符t。答案选择C选项。

  • 第23题:

    单选题
    有以下程序(注:字符a的ASCII码值为97):#include main(){ char *s={abc}; do {  printf(%d,*s%10);  ++s; }while(*s);}程序运行后的输出结果是(  )。
    A

    abc

    B

    789

    C

    7890

    D

    979800


    正确答案: C
    解析:
    a、b、c的ASCII值分别为97、98、99。程序中执行输出s中字符对应的ASCII码与10进行模运算后的值,s是一个指针,首先指向字符a,先执行97%10,结果为7;然后++s,指针指向下一个字符b,执行98%10,结果为8,直到s所指为空,故最后输出的结果为789。答案选择B选项。