更多“下面程序段中,输出*的个数是 char *s="\ta\018bc"; for(;*s!='\0';s++)printf("*");A.9B.5C.6D.7 ”相关问题
  • 第1题:

    下面程序段中,输出*的个数是 char *s="\ta\018bc"; for(;*s!='\0';s++)printf("*");

    A.9

    B.5

    C.6

    D.7


    正确答案:C
    解析: 本题中,格式符。表示的是八进制无符号形式输出整型数(不带前导0),字符常量在内存中占一个字节,存放的是ACSII码代码值。C语言规定,所有字符常量都作为整型量来处理,在计算机内部,其对应的整数值就是ACSII字符集中该字符的序号,即&*s中有几个字符就输出几个*。

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

    有以下程序:includevoid f(char *s, char *t){ char k;k=*s;*s=*t; *t=k;s++;t- -;

    有以下程序:#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]="abcdefg",*p; p=str+strlen(str)/2+ 1; f(p,p-2); printf("%s\n", str);}程序运行后的输出结果是( )。

    A.abcdcfg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本题定义的函数f()是一个递归函数。它先交换两个字符指针所指的内容,然后将第1个指针往后移动—位,第2个指针往前移动一位,如果第1个指针所指内容不是字符串结束标志,则递归调用自身。主函数中首先定义了—个字符数组sir[10]=“ahcdeft”然后定义了一个字符指针p=str+strlen(str)/2+1,即让p指向str+4(或&str[4])的位置。然后调用f(p,p-2);,这使得p所指的str[4]及其以后的2个位置str[5]、str[6]中的内容同p-2所指的str[p]及其以前的2个位置str[1]、str[0]中的内容互相交换。即让整个字符串逆序。所以本题应该选择B。

  • 第4题:

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

  • 第5题:

    以下程序的输出结果是main(){ char s[]="abcdef"; s[3]=’\0’; printf("%s\n",s);}


    正确答案:abc
    printf函数输出字符串时,当遇到第一个“\0”时,就把它当做字符串的结束标志,它只输出“\0”前面的字符,所以程序输出结果为abc。

  • 第6题:

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

  • 第7题:

    有以下程序 void ss(char *s,char t) { while(*s) { if(*s==t)*s=t-'a'+'A'; s++; } } main() {char strl[100]=“abcddfefdbd”,c=‘d’; ss(strl,c);printf(“%s\n”,strl); } 程序运行后的输出结果是

    A.ABCDDEFEDBD

    B.abeDDfefDbD

    C.abcAMefAbA

    D.Abcddfefdbd


    正确答案:B
    解析:本题中的函数ss()有两个参数,一个是字符型指针变量s;另一个是字符型变量t。在函数中通过一个while循环,在循环中一次取出e指向的字符串并判断它是否和t中存放的字符相同,若相等,则执行“*s=t-'a'+'A';”(若是小写字母,则把它转换成大写字母)语句。在主函数中执行函数调用ss(strl,c),很显然是把stfl数组中所有字符“d”变成大写字母,其他字符不变。

  • 第8题:

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

  • 第9题:

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

  • 第10题:

    程序段char*s=”aBcD”;n=0;while(*s!=’/0’){if(*s>=’a’&&*s<=’z’)n++;s++;}执行后n=()。


    正确答案:2

  • 第11题:

    单选题
    有以下程序#include 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",ss,aa);}程序的运行结果是(  )。
    A

    accbbxxyy,bbxxyy

    B

    acc,bbxxyy

    C

    accxxyy,bbxxyy

    D

    accxyy,bbxxyy


    正确答案: C
    解析:
    函数fun的功能是将第二个字符串链接到第一个字符串的末尾,第二个字符串不变。答案选择A选项。

  • 第12题:

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

  • 第13题:

    有以下程序includevoidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}m

    有以下程序 #include <stdio.h> voidfun(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函数实现丁字符串函数str-eat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符'\0')逐个复制到字符串ss的末尾处。

  • 第14题:

    有以下程序

    void ss(char *s,char t)

    { while(*s)

    { if(*s==t)*s=t-′a′+′A′;

    s++; } }

    main()

    { char str1[100]="abcddfefdbd",c=′d′;

    ss(str1,c); printf("%s\n",str1);}

    程序运行后的输出结果是

    A.ABCDDEFEDBD

    B.abcDDfefDbD

    C.abcAAfefAbA

    D.Abcddfefdbd


    正确答案:B
    解析:在内存中,字符数据以ASCII码存储,它的存储形式与整数的存储形式类似。C语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。

  • 第15题:

    有以下程序:includevoid f(char*s,char*t){ char k;k=*s;*s=*t;*t=k;s++;t--;if(*s)f

    有以下程序: #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]="abcdefg",*p; p=str+strlen(str)/2+1; f(p,p-2); printf(~%s\n",str); } 程序运行后的输出结果是 ______。

    A.abcdef

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:p=str+strlen(str)/2+1=str+4,f(p,p-2)的功能是将p[4]与p[2]互换,p[5]与p[1]互换,p[6]与p[0]互换,最后的结果为gfedcba。

  • 第16题:

    有以下程序 void ss(char *s,char t) { while { *s) if (*s==t) *s-t-'a' +'A'; S++; main () { char strl [100] =" abcddfefdbd" , c= 'd'; ss(str1,c); printf ("%s\n" ,str1); } 程序运行后的输出结果是

    A.ABCDDEFEDBD

    B.abcDDfefDbD

    C.abcAAfefAbA

    D.Abcddfefdbd


    正确答案:B
    解析:本题中的函数ss()有两个参数,一个是字符型指针变量s,另一个是字符型变量t在函数中通过一个while循环,在循环中一次取出s指向的字符串并判断它是否和t中存放的字符相同,若相等,则执行“s=t-'a'+'A':”(若是小写字母,则把它转换成大写字母)语句。在主函数中执行函数调用ss(strl,c),很显然是把str1数组中所有字符“d”变成大写字母,其他字符不变。所以4个选项中B正确。

  • 第17题:

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

  • 第18题:

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

  • 第19题:

    下面程序段中,for循环的执行次数是 char * s=“\ta\018bc"; for(;* s! ='\0';s++)cout < < " * ";

    A.9

    B.5

    C.6

    D.7


    正确答案:C
    解析:本题中,格式符。表示的是八进制无符号形式输出整型数(不带前导0),字符常量在内存中占一个字节,存放的是ACSII码代码值。C++语言规定,所有字符常量都作为整型量来处理,在计算机内部,其对应的整数值就是ACSII字符集中该字符的序号。注意:for循环的次数就是字符串\ta\018bc的长度。

  • 第20题:

    有以下程序 void ss(char*s,char t) { while(*s) { if(*s==t)*s=t-'a'+'A'; s++; }} main() { char strl[100]="abcddfefdbd",c='d'; ss(str1,c);printf("%s\n",strl);} 程序运行后的输出结果是

    A.ABCDDEFEDBD

    B.abcDDfefDbD

    C.abcAAfefAbA

    D.Abcddfefdbd


    正确答案:B
    解析:在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式相类似。C语言使字符型数据和整型数据之间可以通用。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。

  • 第21题:

    程序段intcount=0;char*s=”ABCD”;while(*s!=’/0’){s++;count++;}执行后count=()。
    4

  • 第22题:

    填空题
    程序段char*s=”aBcD”;n=0;while(*s!=’/0’){if(*s>=’a’&&*s<=’z’)n++;s++;}执行后n=()。

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

  • 第23题:

    填空题
    程序段intcount=0;char*s=”ABCD”;while(*s!=’/0’){s++;count++;}执行后count=()。

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

  • 第24题:

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