单选题有以下程序(说明:字母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 BYB BTC YTD YE

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


相似考题
更多“有以下程序(说明:字母A的ASCII码值是65):#include <stdio.h>void fun(char *s)”相关问题
  • 第1题:

    有以下程序 include int fun(char s[]) { int n=O; whil

    有以下程序 #include <stdio.h> int fun(char s[]) { int n=O; 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
    解析:题目fun()函数中while循环的意思是:判断s所指内容是否为数字字符,如果是数字字符,则计算表达式11=10*n+*s-'0';。其中。s-'0'的作用是将相应的数字字符转换为数值,例如字符'8'减去字符'0'后,得到的结果就是数值8了。n=10*n+的作用是将累计变量n中原来内容乘以10,然后再加上刚转换的数字字符的数值,例如原来n的值为1,*s现在的内容为'2',那么执行了n=10*n+*s-'0,;语句后,n的值变为12,如果接下来再来一个'8'字符,执行n=10*n+*s-'0';语句后,n的值就是128了。故不难看出fun()函数的作用是“将数字字符串转换为相应的十进制数值,碰到非数字字符时结束”。从主函数中定义的字符数组s的初始化内容可以看出,fun()函数返回值应该是61。故应该选择C。

  • 第2题:

    有以下程序: include void funl (char * p){char * q; q=p; while( *q! ='\0') } (*q)

    有以下程序: #include <stdio.h>void funl (char * p){ char * q; q=p; while( *q! ='\0') } (*q) ++;q++;}mains( ){ char a[ ] = { "Program" } , * p; p = &a[3]; fun1 (p); printf("% s \n" ,a);}程序执行后的输出结果是( )。

    A.Prohsbn

    B.Prphsbn

    C.Progsbn

    D.Program


    正确答案:A
    解析:在main函数中,p=&a[3]说明指针p指向a数组的第4个字符(即字符'g');fun1中的q=p意味着指针q也指向了a数组的第4个字符。执行while语句,表达式(*q)++使'g'+1,使'g'变成了'h';表达式q++使q指向a[4]的起始地址。继续执行while语句,直到遇到'\0'结束循环,返回形参。最终得到的结果是从字符串"Program'的第4个字符开始,每个字符加1。

  • 第3题:

    有以下程序 include void fun(char *t, char *s) { whil

    有以下程序 #include <stdio.h> void fun(char *t, char *s) { while(*t!=0) t++; while( (*t++ = *s++ )!=0 ); main() { char ss[10]="acc",aa[10]="bbxxyy"; fun(ss, aa); printff"%s,%s\n", ss,aa); 程序的运行结果是

    A.accxyy, bbxxyy

    B.acc, bbxxyy

    C.accxxyy, bbxxyy

    D.accbbxxyy, bbxxyy


    正确答案:D
    解析:函数fun()中,前一个while循环的作用是:如果形参指针t所指内容不为0,则让t增1,直到它指向0。后一个 while循环的作用是:将s所指内容赋给t所指地址,然后两者同时增1,直到赋给t的内容为0。由此可见,函数fun()的作用就是将形参s所指字符串连接到形参t所指字符串末尾,相当于库函数中的strcat()。主函数中使用fun()将数组aa中的字符串连接到了数组ss中原有字符串之后,所以执行完后,ss中的字符串为"accbbxxyy"。故最终输出的结果是:accbbxxyy,bbxxyy,应该选择D。

  • 第4题:

    有以下程序:includeincludevoid fun(char*s[],int n){char*t;int i,j;for(

    有以下程序: #include<stdio.h> #include<string.h> void fun(char*s[],int n) { char*t;int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;} } main() { Char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"}; fun(ss,5);printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是( )。

    A.xy,aaaacc

    B.aaaacc,xy

    C.bcc,aabcc

    D.aabcc,bcc


    正确答案:A

  • 第5题:

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

  • 第6题:

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

  • 第7题:

    请读程序: includde include void fun(char * s) {char a[10]; str

    请读程序: # includde<stdio.h> # include<string.> void fun(char * s) {char a[10]; strcpy(a,"STRING"); s=a; } main() { char*p; fun(p); print{("%s\n",p); } 上面程序的输出结果(表示空格) ( )

    A.STRING

    B.STRING

    C.STRING

    D.不确定的值


    正确答案:D

  • 第8题:

    有以下程序:includeinclude"string.h"void fun(char*s[],int n){char*t;int i,j;for(

    有以下程序: #include<stdio.h> #include"string.h" void fun(char*s[],int n) { char*t;int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;} } main() { char*ss[]={"bee","bbcc","xy","aaaacc","aabcc"}; fun(ss,5);printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是( )。

    A.xy,aaaacc

    B.aaaacc,xy

    C.bcc,aabcc

    D.aabcc,bcc


    正确答案:A

  • 第9题:

    有以下程序: include include void f(char * s,char*t){char k; k=*s;*s=*

    有以下程序: #include <stdio.h>#include <string.h>void f(char * s,char*t){ char k; k=*s; *s=*t; *t=k; s++; t--; if( * s) f(s,t);}main( ){ char str[10] :"abedefg", * p; p = str + strlen(str)/2+1; f(p,p -2); printf( "% s \n" ,str);程序运行后的输出结果是( )。

    A.abcdefg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本程序的作用是将字符串str倒序。语句p=str+strlen(str)/2+1;将指针变量p指向字符'e'所在的存储单元,P-2指向字符,'c'所在的存储单元,在函数f中将这两个存储单元的内容交换,然后将f函数中指向字符'e'的指针变量s加1,指向字符'c'的指针变量t减1,继续将s和t指向的存储单元的内容进行交换,直到s指向的存储单元的内容为空为止。所以本题程序输出的结果是字符串"abcdefe”的倒序形式"gfedcba"。

  • 第10题:

    有以下程序 include void fun(char *t,char *s) { while(*t!=0) t++; while((*t++=*s

    有以下程序

    #include <stdio.h>

    void fun(char *t,char *s)

    { while(*t!=0) t++;

    while((*t++=*s++)!=0);

    }

    main( )

    { char ss[10]="acc",aa[10]="bbxxyy";

    fun(ss,aa); printf("%s,%s\n",ss,aa);

    }

    程序的运行结果是

    A.accxyy,bbxxyy

    B.acc,bbxxyy

    C.accxxyy,bbxxyy

    D.accbbxxyy,bbxxyy


    正确答案:D
    解析:本题中fun函数实现了字符串函数strcat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符“\0”)逐个复制到字符串ss的末尾处。

  • 第11题:

    (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

  • 第12题:

    单选题
    有以下程序#include void  fun(char *a, char *b){ while(*a=='*') a++; while(*b=*a) {  b++;  a++; }}main(){ char *s=*****a*b**** , t[80]; fun(s,t); puts(t);}程序的运行结果是(  )。
    A

    *****a*b

    B

    a*b

    C

    a*b****

    D

    ab


    正确答案: C
    解析:
    注意两个while,第一个是判断相等“==”,第二个是赋值“=”,第一个循环终止的条件是指针指向的字符不为'*',那么就会在遇到字符'a'时停止,第二个循环把a指针所指的内容依次赋给了b指针指向的内容,直到字符串结束时终止。答案选择C选项。

  • 第13题:

    有以下程序 include include void fun(char s[][10],int n

    有以下程序 #include <stdio.h> #include <string.h> void fun(char s[][10],int n) { char t; int i j; for (i=0; i<n-1; i++) for 0--i+l; j<n; j++) /*比较字符串的首字符大小,并交换字符串的首字符*/ if(s[i][0] > s[j][0]) { t = s[i][0]; s[i][0] = s[j][0]; s[j][0] = t;} } main() { char ss[5][10]= {"bcc", "bbcc", "xy", "aaaacc", "aabcc" }; fun(ss, 5); printf("%s,%s\n", ss[0],ss[4]); } 程序的运行结果是

    A.xy, aaaacc

    B.aaaacc,xy

    C.xcc,aabcc

    D.acc,xabcc


    正确答案:D
    解析:在函数fun()中有一个两层嵌套的for循环,外循环变量i从0递增到n-2,内循环变量i从i+1循环递增到n-1,这是选择排序算法的标准结构。循环体中因为逆序条件为“s[i][0]> s[j][0]”,所以实现的是升序排序。由此可见,fun()函数实现的功能是对一个二维字符数组前n行的首字符进行升序排序。主函数中定义的二维数组初始化为{"bcc",”bbcc", "xy","aaaacc","aabcc"},通过fun()函数的排序后,结果将为acc","abcc","by", "baaacc","xabcc"}。故最终输出字符串ss[0]和ss[4]的结果为acc,xabcc,应该选择D。

  • 第14题:

    有以下程序 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()的实参。

  • 第15题:

    有以下程序:includevoid fun(char *a,char*B){while(*a=='*')a++;while(*b=*A){b++;a+

    有以下程序: #include<stdio.h> void fun(char *a,char*B){while(*a=='*')a++; while(*b=*A){b++;a++;} } main() {char*s="****a*b****",t[80]; fun(s,t);puts(t); } 程序的运行结果是( )。

    A.*****a*b

    B.a*b

    C.a*b****

    D.ab


    正确答案:C

  • 第16题:

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

  • 第17题:

    下列程序的输出结果是【】。 include include using namespace std; void fun(c

    下列程序的输出结果是【 】。

    include<iostream>

    include<cstring>

    using namespace std;

    void fun(const char *s,char &c){c=s[strlen(s)/2];}

    int main()

    {

    char str[]="ABCDE";

    char ch=str[1];

    fun(str,ch);

    cout<<ch;

    return 0;

    }


    正确答案:C
    C

  • 第18题:

    有下列程序:includevoid fun(char *a, char *B){while(*a=='*')a++;while(*b=*A){b++;

    有下列程序: #include <stdio.h> void fun(char *a, char *B) { while(*a=='*')a++; while(*b=*A) {b++;a++;} } main() { char *s="*****a*b****",t[80]; fun(s,t);puts(t); 程序的运行结果是( )。

    A.*****a*b

    B.a*b

    C.a*b****

    D.ab


    正确答案:C
    解析:主函数main()定义了指向字符串的指针和一个字符数组,接着调用fun(s,t)函数,进行实参向形参传递,函数fun()第一个 while语句判断*a中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个while循环语句,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[80]中的内容为“a*b****”,所以此题的运行结果为选项C)。

  • 第19题:

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

  • 第20题:

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

  • 第21题:

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

  • 第22题:

    有以下程序includeincludevoidfun(char,*s[],intn){char*t;inti,j; for(i=

    有以下程序 #include <stdio.h> #include <string.h> void fun(char,*s[],int n) { char *t; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;} } main() { char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"}; fun(ss,5); printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是

    A.xy,aaaacc

    B.aaaacc,xy

    C.bcc,aabcc

    D.aabcc,bcc


    正确答案:A
    解析:函数fun(char,s[],int n)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},ss[0],ss[4]的输出结果为xy,aaaacc。

  • 第23题:

    单选题
    有以下程序#include void fun(char **p){ ++p; printf(%s,*p);}main(){ char *a[] = {Morning, Afternoon, Evening, Night}; fun(a);}程序的运行结果是(  )。
    A

    Afternoon

    B

    flemoon

    C

    Morning

    D

    oming


    正确答案: A
    解析:
    用字符串数组a给形参p赋初始值,p指向a[0],在函数fun中执行++p,则p指向a[1],程序运行结果是Afternoon。答案选择A选项。