niusouti.com

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

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

abc

B

789

C

7890

D

979899


相似考题
更多“有以下程序(注:字符a的ASCII码值为97):#include <stdio.h>main(){ char *s={a”相关问题
  • 第1题:

    请编写函数fun(),其功能是将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除。字符串中剩余的字符所形成的一个新的字符串放在t所指的数组中。

    例如:s所指字符串中的内容为ABCDEFG12345,其中字符A,的ASCII码值虽为奇数,但元素所在的下标为偶数,因此必需删除;字符1的ASCII码值为奇数,所在数组中的下标也为奇数,不删除,最后t所指的数组中的内容应是135。

    请勿修改主函数main和其他函数中的任何内容,仅在函数su的花括号中填写若干语句。

    文件test 27_2.cpp的内容如下;

    include <conio.h>

    include <stdio.h>

    include <iostream.h>

    include <string.h>

    void fun(char *s,char t[ ])

    {

    }

    void main ( )

    {

    char s[100],t[100];

    cout<<"Please enter string S: "<<end1;

    gets(s);

    fun(s, t);

    puts(t);

    }


    正确答案:void fun(char *schar t[ ]) { int ij=0n; n=strlen(s); for(i=0;in;i++) if(i%2!=0&&s[i]%2!=0) { t[j]=s[i];j++;} t[j]='\0'; }
    void fun(char *s,char t[ ]) { int i,j=0,n; n=strlen(s); for(i=0;in;i++) if(i%2!=0&&s[i]%2!=0) { t[j]=s[i];j++;} t[j]='\0'; } 解析:在解答本题时,首先要清楚一点:那就是在字符参与数值运算时,用的是其ASCII码值来进行计算。另外的一个考查点是判断某数是奇数的方法,即判断该数与2的余数是否为0。

  • 第2题:

    有以下程序:includevoid fun(char**p){++P;printf("%s\n",*p);}main()char*a[]={"Morn

    有以下程序: #include<stdio.h> void fun(char**p) { ++P;printf("%s\n",*p);} main() char*a[]={"Morning","Afternoon","Evening","Night"}; fun(A); } 程序的运行结果是( )。

    A.Afternoon

    B.fternoon

    C.Morning

    D.oring


    正确答案:A

  • 第3题:

    请编写函数fun(),其功能是:将s所指字符串中除了下标为偶数、同时ASCII码值为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。

    例如,若s所指字符串中的内容为ABCDEFG12345,其中字符B的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCII码值为奇数,所在数组中的下标为偶数,因此不应当删除,其他依次类推。最后t所指的数组中的内容应是ACEG。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<conio.h>

    include<stdio.h>

    include<string.h)

    void fun(char *s, char t[])

    {

    }

    main()

    {

    char s[100],t[100];

    clrscr();

    printf("\nPlease enter string s:");

    scanf("%s",s);

    fun(s,t);

    printf("\nThe result is: %s\n",t);

    }


    正确答案:void fun(char *s/char t[]) {int ij=0; for(i=0;s[i]!='\0';i++) {if(i%2==0 && s[i]%2!=0) t[j++]=s[i]; } /*将下标为偶数同时ASCII码值为奇数的字符放入数组t中*/ t[j]='\0'; /*在字符串最后加上结束标志位*/ }
    void fun(char *s/char t[]) {int i,j=0; for(i=0;s[i]!='\0';i++) {if(i%2==0 && s[i]%2!=0) t[j++]=s[i]; } /*将下标为偶数同时ASCII码值为奇数的字符放入数组t中*/ t[j]='\0'; /*在字符串最后加上结束标志位*/ } 解析:本题要求除了下标为偶数同时ASCII码值为奇数的字符之外,其他字符都删除。即要留下下标为偶数同时ASCII码值为奇数的字符。所以,在if的条件语句中应使用if(i%2==0&&s[i]%2!=0)。

  • 第4题:

    请编写函数fun(),其功能是:将s所指字符串中除了下标为奇数、同时ASCII值为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。

    例如,若s所指字符串中的内容为edB2A4Dsdg,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为偶数,因此也应当删除:而字符2的ASCII码值为偶数,所在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是d24。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <conio.h>

    include <stdio.h>

    include<string, h>

    void fun(char*s, char t[])

    {

    }

    main()

    {

    char s[100] ,t[100];

    clrscr();

    printf("\nPlease enter string S: ");

    scanf("%s",s);

    fun(s,t);

    printf("\nThe result is: %s\n",t);

    }


    正确答案:void fun(char*s char t[]) { int ij=0; for(i=0;s[i]!='\0';i++) if(i%2!=0&&s[i]%2==0) /*将s所指字符串下标为奇数同时ASCII值为偶数的字符放入数组t中*/ t[j++]=s[i]; t[j]='\0'; /*在字符串最后加上结束标志位*/ }
    void fun(char*s, char t[]) { int i,j=0; for(i=0;s[i]!='\0';i++) if(i%2!=0&&s[i]%2==0) /*将s所指字符串下标为奇数同时ASCII值为偶数的字符放入数组t中*/ t[j++]=s[i]; t[j]='\0'; /*在字符串最后加上结束标志位*/ } 解析:本题要求除了下标为奇数同时ASCII值为偶数的字符之外,其他字符都删除。即题目要求留下下标为奇数同时 ASCII值为偶数的字符。C语言中并没有直接删除字符的算法,请大家在做题的时候注意。

  • 第5题:

    有以下程序 include void fun(char **p) { ++p; printf("%s\n",*p);

    有以下程序 #include <stdio.h> void fun(char **p) { ++p; printf("%s\n",*p); } main() { char *a[]={"Moming","Afternoon","Evening","Night"}; fun(a); } 程序的运行结果是

    A.Afternoon

    B.fternoon

    C.Morning

    D.orning


    正确答案:A
    解析:本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和—般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针(即字符型二级指针),所以数组名a可以用作函数fun()的实参。

  • 第6题:

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

  • 第7题:

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

  • 第8题:

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

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

    有下列程序:

    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;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。

  • 第14题:

    已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。includemain(){char c1,c2;c

    已知字母a的ASCII码为十进制数97,下面程序的输出结果是( )。 #include<stdio.h> main() { char c1,c2; c1='a'+'6'-'0'; c2='a'+'3'-'0'; printf("%c,%c\n",c1,c2); }

    A.输出无定值

    B.d,e

    C.e,f

    D.g,d


    正确答案:D
    解析:C语言规定,所有字符常量都可以化为整型常量来处理,因而字符常量也可以参与算术运算。注:字符常量参与算术运算时,其实是使用其对应的ASCII码值进行计算。本题中,'a'对应的ASCII码值是97。题中虽然没有给'6'和'0'的ASCII码值,但应该知道'6'-'0'是将字符'6'转换成整数6的表达式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型输出分别是g和d。

  • 第15题:

    以下程序用以删除字符串中所有的空格,请填空。 include main() {char s[100]={"Our teac

    以下程序用以删除字符串中所有的空格,请填空。

    include<stdio.h>

    main()

    {char s[100]={"Our teacher teach C language!"};int i,j;

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

    if(s[i]!=''){( )}

    s[j]='\0';

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

    }


    正确答案:s[j]=s[i];j++;
    s[j]=s[i];j++; 解析:本题中相当于字符串s中存储着含有空格的字符,当发现空格的时候就用这个空格字符后面的字符前移覆盖这个空格字符,依次类推向后继续。因此,应填s[j]=s[i];j++;两条语句。

  • 第16题:

    请编写函数fun(),该函数的功能是:将s所指字符串中 ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

    例如,若s所指字符串中的内容为ABCDEFGl2345,其中字符B的ASCⅡ码值为偶数、…、字符2的ASCⅡ码值为偶数、…,都应当删除,其他依次类推。最后t所指的数组中的内容应是ACEGl35。

    注定:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序;

    include <stdio. h>

    include<string.h>

    include<conio. h>

    void fun(char *s, char t[])

    {

    }

    main ( )

    {

    char s[100],t [100];

    clrscr ();

    printf (,\nPlease enter string S: ");

    scanf ("%s", s);

    fun(s,t);

    printf ("\nThe result is :%s\n",t);

    }


    正确答案:void fun(char *s char t[]) { int i=0; for (;*s!='\0' ;s++) /*找出ASCII值为奇数的字符依次存入数组t中*/ if (*s%2==1) t [i++] =*s; t[i]='\0'; /*在字符串的末尾口上串结束符*/ }
    void fun(char *s, char t[]) { int i=0; for (;*s!='\0' ;s++) /*找出ASCII值为奇数的字符依次存入数组t中*/ if (*s%2==1) t [i++] =*s; t[i]='\0'; /*在字符串的末尾口上串结束符*/ } 解析:要删除ASCH值为偶数的字符,也就是要留下ASCH值为奇数的字符,由于最终是要求求出剩余字符(BPASCⅡ值为奇数)形成的新串,所以本题程序的算法是从原字符串的头到尾扫描并找出ASCⅡ值为奇数的字符依次存入数组冲。此外,还要注意数组t的下标变化和下标的初值(初值必须为0,即i=0),t[i++]州的作用是先使用t[i]然后再使自增1。任何字符串的末尾都要有串结束符。这种算法在很多题中都要用到,学习者可以举一反三地找一些其他相关习题练习一下。

  • 第17题:

    已知字符'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

  • 第18题:

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

  • 第19题:

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

  • 第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选项。

  • 第24题:

    单选题
    以下不能输出字符A的语句是(  )。(注:字符A的ASCII码值为65,字符a的ASCII码值为97。)

    正确答案: A
    解析:
    A项,字符'a'的ASCII码值减去32为'A'的ASCII码值,执行字符输出,即为'A';B项,执行整型输出,结果为65;C项,字符型输出'A';D项,字符型输出'A'。答案选择B选项。