更多“若有以下定义和语句: char s1[]=″12345″,s2[]=″1234″; printf(″%dn″,strlen(strcpy(s1,s2))); 则输出结果是()”相关问题
  • 第1题:

    若已包括头文件且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串 "ABCDE"赋给

    若已包括头文件<string.h>且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串 "ABCDE"赋给s1,下列语句错误的是( )

    A.strcpy(s1,s2)

    B.strcpy(s1,"ABCDE");

    C.s1="ABCDE";

    D.for(i=0;i<6;i++) s1[i]=s2[i];


    正确答案:C
    解析:数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量, 因此 sl="ABCDE"的方法是错误的。

  • 第2题:

    若有定义语句:“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。

  • 第3题:

    若有以下定义和语句: 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。

  • 第4题:

    若有以下定义和语句: 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和\\分别为转义字符,各占据一个字符的位置。

  • 第5题:

    以下程序的输出结果是______。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"。

  • 第6题:

    下列程序运行后,输出结果是______。 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

  • 第7题:

    若有以下定义和语句

    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'和'\\'均表示一个字符。

  • 第8题:

    若有定义语句:

    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选项正确。

  • 第9题:

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

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

    单选题
    若有定义语句 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选项。

  • 第12题:

    单选题
    有以下程序:#include #include struct S{ char name[10];};main(){ struct S s1,s2; strcpy(s1.name,XXX); strcpy(s2.name,=); s1=s2; printf(%s,s1.name);}程序运行后的输出结果是(  )。
    A

    =

    B

    XXX

    C

    =XX

    D

    X=


    正确答案: B
    解析:
    主函数首先定义两个结构体变量s1,s2,分别使用字符串拷贝函数strcpy为s1和s2的成员name赋值,再将s2中的成员信息赋值给s1,因此输出为“=”,答案选择A选项。

  • 第13题:

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

    A.4

    B.5

    C.9

    D.10


    正确答案:A

  • 第14题:

    若有以下说明: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

  • 第15题:

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

  • 第16题:

    对于下面的程序includeincludechar *scmp(char*s1,char*s2){if(strcmp(s1,

    对于下面的程序 #include<stdio.h> #include<string.h> char *scmp(char*s1,char*s2) { if(strcmp(s1,s2)<0)return(s1); else return(s2); } main() { int i:char string[20],sb[3][20]; for(i=0;i<3;i++)gets(str[i]); strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[21)); printf("%s\n",string); } 若运行时依次输入abcd、abba和abc三个字符串,则输出结果为______。

    A.abcd

    B.abba

    C.abc

    D.abca


    正确答案:B
    解析:本题自定义函数scrnp()的作用是比较字符串s1和s2的大小,如果s1s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执打strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行strcpy(string,scmp(string,str[2]));,由于scmp(string,str[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。

  • 第17题:

    以下程序的输出结果是()includemain(){chars1[]="123",s2[]="abc",ss[20]="010";strc

    以下程序的输出结果是 ( ) #include<string.h> main() {char s1[]="123",s2[]="abc",ss[20]="010"; strcat(ss+1,strcpy(s2,s1)); printf("%s\n",ss); }

    A.10123

    B.0abc

    C.1123

    D.01abc


    正确答案:A

  • 第18题:

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

  • 第19题:

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

    A.4

    B.5

    C.9

    D.10


    正确答案:A

  • 第20题:

    以下程序的输出结果是_______。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"。

  • 第21题:

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

  • 第22题:

    单选题
    若有以下定义和语句:char s1[10]=abcd!, *s2=n123\\;printf(%d%d, strlen(s1), strlen(s2));则输出结果是(  )。
    A

    55

    B

    105

    C

    107

    D

    58


    正确答案: C
    解析:
    strlen函数是计算字符串长度的函数,求字符串的实际字符个数,不包括字符'\0'在内,在字符'\0'之后的所有字符均不计入长度中。所以strlen(s1)=5。而以"\"开头的字符序列是转义字符,"\\"的含义是一个字符'\',所以s2所指向的内容实际上是"n123\",所以strlen(s2)=5。答案选择A选项。

  • 第23题:

    单选题
    有以下程序:#include #include struct S{ char name[10];};main(){ struct S s1,s2; strcpy(s1.name,12345); strcpy(s2.name,ABC); s1=s2; printf(%s,s1.name);}程序运行后的输出结果是(  )。
    A

    ABC12

    B

    ABC45

    C

    12345

    D

    ABC


    正确答案: C
    解析:
    主函数首先定义两个结构体变量s1,s2,分别使用字符串拷贝函数strcpy为s1和s2的成员name赋值,再将s2中的成员信息赋值给s1,因此输出为“ABC”,答案选择D选项。

  • 第24题:

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