更多“单选题有以下程序(注:字符a的ASCII码值为97):#include main(){ char *s={abc}; do {  printf(%d,*s%10);  ++s; }while(*s);}程序运行后的输出结果是(  )。A abcB 789C 7890D 979800”相关问题
  • 第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题:

    有下列程序: #include<stdi0.h> voidmain( ) {char*s={"ABC"); do {printf("%d",*s%10);s++; }while(*s); } 注意:字母A的ASCIl码值为65。程序运行后的输出结果是( )。

    A.5670

    B.656667

    C.567

    D.ABC


    正确答案:C
    C。【解析】本题考查d0…while语句,至少执行一次循环体,依次输出ABC,这三个字母的ASCIl值对10求模的余数,字母A的ASCIl值对10求模的余数为5,字母B的ASCIl值对10求模的余数为6,字母c的ASCIl值对10求模的余数为7。所以正确答案为选项C。

  • 第3题:

    有以下程序inc1udemain(){char*s={"ABC"}; do {printf("%d",*s%10);s++; }while(*s);

    有以下程序 #inc1ude<stdio.h> main() { char*s={"ABC"}; do { printf("%d",*s%10); s++; } while(*s); } 注意字母A的ASCII码值为65。程序运行后的输出结果是______。

    A.5670

    B.656667

    C.567

    D.ABC


    正确答案:C
    解析:本题考查的是do-while语句的使用,do-while执行的过程是当while后面—对括号中表达式的值为非0时,转去执行循环体,当值为0时,退出循环。本题定义了—个指针变量s,并使得s指向字符串"ABC",的首地址,即把字符A的地址赋给s,因为do-while语句是先执行循环体再进行循环条件的判断,因此先执行printf语句,“s%10”是s对10的取模运算,第—字符A的ASCII码为65,故“65%10”取模运算结果为5,因此输出5,接着执行s++,s指向字符串的下—个字符,当字符串中字符没有循环完时,继续执行do-while语句,以此类推,B和C的分别为6和7,因此,选项C是正确的。

  • 第4题:

    有以下程序(说明:字母A的ASCIl码值是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
    fun函数的意思是当*s%2==0的时候就输出并且s自加l次,然后判断。所以可知只有第2和第4个位置上的才符合要求,所以答案为D。

  • 第5题:

    有以下程序(注:字符a的ASCIl码值为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
    程序中的*s%10是求余运算,分别是a、b、C的ASCIl码值对10进行求余运算然后输出,所以输出的答案为789。r

  • 第6题:

    有下列程序: 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。

  • 第7题:

    有以下程序(注:字符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)。

  • 第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题:

    试题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

  • 第10题:

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

    • A、输出字符a的ASCII码
    • B、输出字符c的ASCII码
    • C、输出字符c
    • D、程序出错

    正确答案:D

  • 第11题:

    单选题
    有以下程序:#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选项。

  • 第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题:

    以下程序运行后的输出结果是【】。includemain(){int k=1,s=0; do{ if((k%2)!=0)continue;

    以下程序运行后的输出结果是【 】。

    include<stdio.h>

    main()

    { int k=1,s=0;

    do{

    if((k%2)!=0) continue;

    s+=k; k++;

    }while(k>10);

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

    }


    正确答案:s=0
    s=0 解析:do-while循环结构的形式如下:
    do
    循环体
    while(表达式);
    循环的执行过程如下:
    ①执行do后面循环体中的语句。
    ②计算while后—对圆括号中表达式的值。当值为非0时,转去执行步骤1;当值为0时,执行步骤3。
    ③退出do-while循环。
    在本题中先判断k是否为偶数,如果不是则结束本次循环,进行下—次的循环条件判定,由于没有改变k的值,k>10的不成立,退出do-while循环,执行后面的printf("s=%d\n",s);语句,因为s=0,所以输出结果为s=0。

  • 第14题:

    有以下程序: include main( ) {char s[ ] ="159" , * p;p=s;printf( "% c", * p + +

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

    A.15

    B.16

    C.12

    D.59


    正确答案:A
    解析:语句p=s将指针变量p指向字符数组s,第一次输出时,由于++和*为同一优先级,而结合方向为自右向左,所以,*p++相于*(p++)。但又因为“++”在p的右侧,所以,先输出*p,得到s[0]的值,然后P++,P指向s[1],故第二次输出时,输出s[1]的值,所以输出结果为15。

  • 第15题:

    有以下程序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是正确的。

  • 第16题:

    有以下程序(说明:字母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

  • 第17题:

    有以下程序(说明:字母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

  • 第18题:

    以下程序运行后,输出结果是()includess(char*s){char*p=s; while(*p)p++ return(p-s);

    以下程序运行后,输出结果是( ) #include<stdio.h> ss(char *s) { char*p=s; while(*p) p++ return(p-s); } main() { char *a="abded" int i; i=ss(a) ; printf("%d\n",i); }

    A.8

    B.7

    C.6

    D.5


    正确答案:D

  • 第19题:

    有下列程序: #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。

  • 第20题:

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

    A.cde

    B.字符c的ASCII码值

    C.字符c的地址

    D.出错


    正确答案:C

  • 第21题:

    (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

  • 第22题:

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

    abc

    B

    789

    C

    7890

    D

    979899


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

  • 第23题:

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

    输出字符a的ASCII码

    B

    输出字符c的ASCII码

    C

    输出字符c

    D

    程序出错


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