更多“单选题若有以下定义和语句:char s1[10]=abcd!, *s2=n123\\;printf(%d%d, strlen(s1), strlen(s2));则输出结果是(  )。A 55B 105C 107D 58”相关问题
  • 第1题:

    若有定义和语句: char*sl="12345",* s2="1234"; printf("%d\n",strlen(stren(sl,s2))); 则输出结果 ( )

    A.4

    B.5

    C.9

    D.10


    正确答案:A

  • 第2题:

    若有以下说明:chars1[]={"tree"},s2[]={"flower"};,则以下对数组元素或数组的输出语句中,正确的是()。

    A.printf("%s%s",s1[5],s2[7]);

    B.printf("%c%c",s1,s2);

    C.puts(s1);puts(s2);

    D.puts(s1,s2);


    正确答案:C

  • 第3题:

    有以下程序并includeincludefun(char * w,int n){char t,*s1,*s2; s1=w;s2=

    有以下程序 并include<stdio.h> #include<string.h> fun(char * w,int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while(s1<s2) { t=*s1++; * s1=*s2--; * s2=t; } } main() { char p[]="1234567"; fun(p,strlen(p)); puts(p); } 程序运行后的输出结果是( )

    A.1234567

    B.7654321

    C.1711717

    D.7177171


    正确答案:C

  • 第4题:

    以下程序的输出结果是______。includeincludefun(char*w,int n){ char t,*s

    以下程序的输出结果是______。 #include<stdio.h> #include<string.h> fun(char*w,int n) { char t,*s1,*s2; s1=w;s2=w+n-1; while(s1<s2) { t=*s1++; *s1=*s2-; *s2=t; } } main() { char*p; p="1234567"; fun(p,strlen(p)); puts(p); }

    A.1234567

    B.7654321

    C.1711717

    D.7177171


    正确答案:C
    解析:在子函数fun中,s1为字符串w的起始地址,s2为字符串的结束地址(字符'\0'除外),当执行循环结束循环, w="1711717"。

  • 第5题:

    若已包括头文件,运行下列程序段时输出结果是()。 int i=0; char s1[10]="AB

    若已包括头文件<stdio.h>和<string.h>,运行下列程序段时输出结果是( )。

    int i=0;

    char s1[10]="ABCD",s2[10]="EFG";

    Strcat(s1,S2) ;

    while(s2[i++]!='\0')

    s2[i]=s1[i];

    puts(s2);

    A.ABC

    B.ABCDEF

    C.EBCDEFG

    D.CBD


    正确答案:C
    解析:strcat(s1,s2)把s2连接到s1的后面,s1= ABCDEFG,执行while(s2[i++]!='\0')后i的值变为1,往后执行s2[i]=s1[i]时是从把s1的第二位给s2的第二位开始,把s1赋给s2。

  • 第6题:

    以下程序includemain(){char a1[80],a2[80],*s1=a1,*s2=a2; gets(s1);gets(s2) if(!s

    以下程序 #include<string.h> main() { char a1[80],a2[80],*s1=a1,*s2=a2; gets(s1);gets(s2) if(!strcmp(s1,s2))printf("*"); else printf("#"); printf("%d\n",strlen(strcat(s1,s2))); } 如果从键盘上输入: book<回车> book<空格><回车> 则输出结果是( )

    A.*8

    B.#9

    C.#6

    D.*9


    正确答案:B

  • 第7题:

    若有以下定义语句: char * sl="12345", * s2="1234"; printf("%d"n",strlen(strcpy(s1,s2))); 则输出结果是 ( )

    A.4

    B.5

    C.9

    D.10


    正确答案:A

  • 第8题:

    以下程序的输出结果是_______。includeincludefun(char*w,int n){char t,*s

    以下程序的输出结果是_______。 #include<stdio.h> #include<string.h> fun(char*w,int n) { char t,*s1,*s2; s1=w;s2=w+n-1; while(s1<s2) { t=*s1++: *sl=*s2-; *s2=t; } } main() { char*p; p="1234567"; fun(p,strlen(p)); puts(p); }

    A.1234567

    B.7654321

    C.1711717

    D.7177171


    正确答案:C
    解析:在于函数fun中,s1为字符串w的起始地址,s2为字符串的结束地址(字符'\0'除外),当执行循环结束循环,w="1711717"。

  • 第9题:

    以下程序的输出结果是( )。 include main() {char*s1,*s2,m; s1=s2=(char*)malloc(size

    以下程序的输出结果是( )。

    include<stdlib.h>

    main()

    {char*s1,*s2,m;

    s1=s2=(char*)malloc(sizeof(char));

    *s1=15;

    *s2=20;

    m=*s1+*s2:

    printf("%d\n",m);

    }


    正确答案:40
    40 解析:malloc()函数的作用是开辟一个长度为sizeof(char)的内存区,s1、s2为指向字符型数据的指针变量,执行“s1=s2=(char*)malloc(sizeof(chat));”语句后,s1、s2指向同一个存储空间,此时m=*s1+*s2=20+20=40。

  • 第10题:

    ( 31 )若有以下定义和语句

    char s1[10]= " abcd! " ,*s2= " \n123\\ ";

    printf ( " %d %d\n ", strlen ( s1 ) ,strlen ( s2 ) ) ;

    则输出结果是

    A ) 5 5

    B ) 10 5

    C ) 10 7

    D ) 5 8


    正确答案:A

     

  • 第11题:

    下列程序的运行结果是()。      #include   #include   FUN(char *w,int n)  {   char temp,*s1,*s2; s1=w;  s2=w+n-1;  while(s1temp=*s1++;  *s1=*s2--;  *s2=temp;  }  }      main( )  {   char *p;  p=“1234567”;  FUN(p,strlen(p));  puts(p);  }


    正确答案:1711717

  • 第12题:

    单选题
    有以下程序 #include  void swap(char *x,char *y) {  char t;  t=*x;  *x=*y;  *y=t; } main() {  char *s1,*s2;   char a[]=abc;  char b[]=123;  s1=a;  s2=b;  swap(s1,s2);  printf(%s,%s,s1,s2); } 程序执行后的输出结果是(  )。
    A

    1bc,a23

    B

    abc,123

    C

    123,abc

    D

    321,cba


    正确答案: B
    解析:
    字符串是一个特殊的数组,按照数组的规则,s1应该指向的是数组的首地址,即"abc"的第一个字符的地址。s2指向的是"abc"的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符'a'和'1'的内容,答案选择A选项。

  • 第13题:

    若有定义语句:“char*s1=”0K”,*s2=”ok”;”,以下选项中,能够输出“OK”的语句是( )。

    A.if(strcmp(sl,s2)= =0)puts(s1);

    B.if(strcmp(sl,s2)!=0)puts(s2);

    C.if(strcmp(sl,s2)= =l)puts(s1);

    D.if(stremp(sl,s2)!=0)puts(s1);


    正确答案:D
    此题考查strcmp函数,此函数是模糊比较两个字符串的大小,因为Strcmp(sl,s2)!=0,所以需要输出“0K”用puts函数,所以答案为D。

  • 第14题:

    若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是______。

    A.4

    B.5

    C.9

    D.10


    正确答案:A
    解析:函数strcpy(s1,s2)的返回结果是指针s1的新值"1234",因此求串长函数的结果为4。

  • 第15题:

    若有以下定义和语句: char s [10]="abcd!",*s2="\nl23\\"; Drintf("%d%d\n",strlen(sl),strlen(s2)); 则输出结果是( )。

    A.5 5

    B.10 5

    C.10 7

    D.5 8


    正确答案:A
    \n和\\分别为转义字符,各占据一个字符的位置。

  • 第16题:

    若已包括头文件,运行下列程序段时输出结果是()。int i=0;char s1[10]="ABCD

    若已包括头文件<stdio.h>和<string.h>,运行下列程序段时输出结果是( )。 int i=0; char s1[10]="ABCD",s2[10]="EFG"; strcat(s1,S2); while(s2[i++]!='\0') s2[i]=s1[i]; puts(s2);

    A.ABC

    B.ABCDEF

    C.EBCDEFG

    D.CBD


    正确答案:C
    解析: strcat(s1,s2)把s2连接到s1的后面,s1=ABCDEFG,执行while(s2[i++]!='\0')后i的值变为1,往后执行s2[i]=s1[i]时是从把s1的第二位给s2的第二位开始,把s1赋给s2。

  • 第17题:

    下列程序运行后,输出结果是______。 include include fun(char *w ,int

    下列程序运行后,输出结果是______。 #include <stdio. h> #include <string. h> fun (char *w ,int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while (s1<s2) { t=*s1++; *s1=*s2--; *s2=t; } } main () { char *p; p="1234567"; fun (p, strlen (p)); puts (p); }

    A.1234567

    B.7654321

    C.1711717

    D.7177171


    正确答案:C

  • 第18题:

    若有以下定义和语句

    char s1[10]=”aBcd!”,*s2=”\n123\\”

    printF(“%d%d\n”,strlen(sl),strlen(s2));

    则输出结果是

    A.5 5

    B.10 5

    C.10 7

    D.5 8


    正确答案:A
    解析:计算字符串长度是从第一个字符开始到'\0'前的一个字符结束。第一个字符串长度为5,分别为'a'、'b'、'c'、'd'、'!'第二个字符串的长度也为5,分别为'\n','1','2','3','\\',其中'\n'和'\\'均表示一个字符。

  • 第19题:

    若有定义语句:

    char}sl=‘’0K”,:It s2=”ok”;

    以下选项中,能够输出“OK”的语句是( )。

    A.if(strcmp(sl,s2)!=0)puts(s2);

    B.if(strcmp(sl,s2)!=0)puts(s1);

    C.if(strcmp(sl,s2)==1)puts(s1);

    D.if(strcmp(sl,s2)==0)puts(s1);


    正确答案:B
    strcmp(sl,s2)是字符串比较函数,比较规则是两个字符串自左向右逐个字符相比(按照ASCIl码值大小),-以第一个不相同的字符的大小作为比较结果。因为。O。<10.,所以strcmp(sl,s2)为负值,只有B选项正确。

  • 第20题:

    设有如下程序: #include'string.h" main() { static char s1[20],s2[20]; scanf("%s",s1);scanf("%s",s2); if(strcmp(s1,s2)) printf("@"); else printf("$"); printf("%d\n",strlen(strcat(s1,s2))); } 如果从键盘上输入name1<回车>name2<回车>,则程序运行后的输出结果是( )。

    A.$9

    B.@11

    C.$10

    D.@10


    正确答案:D
    解析:本题首先定义了两个字符数组,然后从键盘读入两个字符串"name1"和"name2"分别赋给它们,接下来使用strcmp()函数比较两个字符串是否相等,若不相等就输出一个‘@’字符,否则输出一个‘$’字符,所以本题先输出一个‘@’字符。最后使用strcat()函数将两个字符串连成一个,然后使用strlen()函数求连接后的字符串长度,所以接下来又输出一个10。故本题的正确答案为D。

  • 第21题:

    假设串S1=“data”,S2=“stru”,则函数strlen(strcat (S1,S2))__________.


    正确答案:
     8

  • 第22题:

    试题30

    若有定义语句: char *s1=”OK”, *s2=”ok”; , 以下选项中,能够输出”OK”的语句是()

    A.if(strcmp(s1,s2)==0) puts(s1);

    B.if(strcmp(s1,s2)!=0) puts(s2);

    C.if(strcmp(s1,s2)==1) puts(s1);

    D.if(strcmp(s1,s2)!=0) puts(s1);


    正确答案:D
    试题30分析
    strcmp(s1,s2)函数,如果s1>s2,结果大于0;如果s1=s2,结果等于0;如果s1<s2,结果小于0;D项strcmp(s1,s2)!=0成立,所以输出s1。
    试题30答案
    D

  • 第23题:

    单选题
    若有定义语句 char*s1="OK",*s2="ok"; 以下选项中能够输出"OK"的语句是(  )。
    A

    if(strcmp(s1,s2)==0)puts(s1);

    B

    if(strcmp(s1,s2)!=0)puts(s2);

    C

    if(strcmp(s1,s2)==1)puts(s1);

    D

    if(strcmp(s1,s2)!=0)puts(s1);


    正确答案: B
    解析:
    strcmp用于比较两字符串:当s1s2时,返回值大于0。题中s1与s2两个字符串不相等且s1小于s2,AC两项错误。B项,输出的小写的ok,只有D项输出的是大写的OK。答案选择D选项。