语句定义如下: char strl[50],str2[20],ch; 则下列语句正确的是______。A.str1={"Crazy"}; str2=str1;B.str1={"Crazy"}; str2={"English"}; strcpy(str1,str2);C.ch="xy";D.ch='x';

题目

语句定义如下: char strl[50],str2[20],ch; 则下列语句正确的是______。

A.str1={"Crazy"}; str2=str1;

B.str1={"Crazy"}; str2={"English"}; strcpy(str1,str2);

C.ch="xy";

D.ch='x';


相似考题
参考答案和解析
正确答案:D
解析:str1和str2是数组名,是常量,其值不可改变,所以A和B中将字符串常量赋值给str1和str2是错误的。字符变量ch占一个字节,只能存放一个字符,所以C也不正确。
更多“语句定义如下: char strl[50],str2[20],ch; 则下列语句正确的是______。A.str1={"Crazy"}; str2=str1;B.str1={"Crazy"}; str2={"English"}; strcpy(str1,str2);C.ch="xy";D.ch='x';”相关问题
  • 第1题:

    设有以下语句: char str1[]="string",str2[8],*str3,*str4=="string; 则______不是对库函数的正确调用。

    A.strcpy(str1,"HELLO1");

    B.strcpy(str2,"HELLO2");

    C.strcpy(str3,"HELLO3");

    D.strcpy(str4,"HELLO4")


    正确答案:C
    解析:C语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项C中的目的中指针str3没有指向具体有效的存储单元,故是错误的调用。

  • 第2题:

    下面函数的功能是 char*fun(char*strl,char*str2) { while((*strl)&&(*str2++=*strl++)); return str2;}

    A.求字符串的长度

    B.比较两个字符串的大小

    C.将字符串str1复制到字符串str2中

    D.将字符串str1接续到字符串str2中


    正确答案:C
    解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体,while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。本题中逻辑与符号连接的表达式值为真,*str2++=*strl++语句是将strl的内容逐个复制到str2字符串。

  • 第3题:

    阅读下列程序,写出程序的运行结果【】。 include void main() { charstr1[ ]: "Hello,

    阅读下列程序,写出程序的运行结果【 】。

    include<iostream. h>

    void main() { char str1[ ]: "Hello, World?;

    char str2[100];

    int i=0;

    do{

    if (str1[i]>= 'a'&& str1[i]<= 'z' )

    str2[i]=str1[i]-32;

    else

    str2[i]=strl [i];

    i++;

    }while(strl[i]!='\0');

    str2[i]='\0';

    cout<<str1<<end1;

    cout<<str2<<end1;

    }


    正确答案:Hello World! HELLO WORLD!
    Hello, World! HELLO, WORLD!

  • 第4题:

    设有语句:char str1[]="string", str2[8], *ste3, *str4="string";,则下列不是对库函数 strcpy的正确调用的是______。

    A.strcpy(str1,"HELLOI");

    B.strcpy(str2,"HELLO2");

    C.strcpy(str3,"HELLOY");

    D.strcpy(str4,"HELLO4");


    正确答案:C

  • 第5题:

    下列语句中,正确的是______。

    A.static char str[]="China";

    B.static char str[];str="China";

    C.static char str1[5],str2[]={"China"};strl=str2;

    D.static char str1[],str2[];str2={"China"};strcpy(str1,str2);


    正确答案:A

  • 第6题:

    以下选项中,属于合法语句的是( )。

    A.char nm[10]; nm="C Program";

    B.char str1[10]="computer",str2[10]; str2=str1;

    C.char str[7]="siring!";

    D.char sp[]="Hello!";


    正确答案:D
    解析:本题考查字符串数组的定义和初始化,属于概念考查类型的题目。A选项中,"CProgram"这个字符串常量在赋值过程中给出的是这个字符串在内存中所占连续存储单元的首地址,而nm是不可直接赋值的数组名,因此A选项中的语句不合法。B选项,C++不支持数组之间的直接赋值,所以也不正确。C选项,表面上没有错,但仔细看一下会发现,定义时数组长度为7,而赋值的字符串常量的个数为8,最终导致越界,所以也不合法。

  • 第7题:

    设char str1[11]="HELLO,",str2[10]=“world”;则执行语句cout<

    设char str1[11]="HELLO,",str2[10]=“world”;则执行语句 cout<<strlen(strcpy(str1,str2)));后的输出结果是 ______。

    A.12

    B.11

    C.7

    D.5


    正确答案:D

  • 第8题:

    下列程序的输出结果是 ()。 #include  #include   main( ) {    int i=0;    char str1[10]=“1234”, str2[10]= “567”;    strcat(str1,str2);    while(str2[i++]!=‘/0’)     str2[i]=str1[i];    puts(str2);   }


    正确答案:5234567

  • 第9题:

    已有定义:charstr1[15]={“university”},str2[15];则以下语句中正确的是()

    • A、str2=str1
    • B、str2=”college”
    • C、scanf(“%s”,&str2)
    • D、printf(“%s”,str1)

    正确答案:D

  • 第10题:

    设有两字符串“Good”、“Morning”分别存放在字符数组str1[10]、str2[10]中,下面语句中能把“Morning”连接到“Good”之后的是()

    • A、strcpy(str1,str2)
    • B、strcpy(str1,"Morning")
    • C、strcat(str1,"Morning")
    • D、strcat("Good",str2)

    正确答案:C

  • 第11题:

    填空题
    有变量定义语句“Dim Str1,Str2 As String *10”,其中Str1变量的类型应为(),其中Str2变量的类型应为()。

    正确答案: 变体型,字符串型
    解析: 暂无解析

  • 第12题:

    单选题
    设已定义:char str1[10],str2[10]=”Fujian”;则能将字符串”Fujian”赋给数组str1的正确语句是()
    A

    str1=”Fujian”

    B

    strcpy(str1,str2)

    C

    strcpy(str2,str1)

    D

    str1=str2


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

  • 第13题:

    请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。

    例如:str1=“How do”,str2=“you do?”,结果输出: How do you do?

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    include<conio.h>

    define N 40

    void fun(char*str1,char *str2)

    {

    int i=0;

    char *pl=str1;

    char*p2=str2;

    while(【 】)

    i++;

    for(;【 】;i++)

    *(p1+i)=【 】;

    *(p1+i)='\0';

    }

    main()

    {

    char str1[N],str2[N);

    clrscr();

    printf("*****Input the string str1 & Str2*****\n");

    printf("\nstr1:");

    gets(str1);

    printf("\nstr2:");

    gets(str2);

    printf("**The string str1 & str2**\n");

    puts(str1);

    puts(str2);

    fun(str1,str2);

    printf("*****The new string *****\n");

    puts(str1);

    }


    正确答案:*(p1+i) *p2 *p2++
    *(p1+i) *p2 *p2++ 解析:第一空:变量i用来记录字符串str1的长度,当指针指列宁符串str1结束标志符‘\0’时,while循环结束,变量 i停止累加。第二空:指针p2指向字符串str2,通过for循环将字符中str2按在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符‘\0’。第三空:指针p2最初指向字符串str2的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将宁符串str2接在str1后面的功能。

  • 第14题:

    若有以下说明,则( )不是对strcpy库函数正确的调用。

    A.strcpy(str2,str1)

    B.B.strcpy(str3,str1)

    C.strcpy(str1,str2)

    D.strcpy(str5,str1)


    正确答案:C
    strcpy(s1,s2)函数的功能是将字符串s2复制到字符串s1中。要保证sl存储区能容纳下s2字符串。

  • 第15题:

    若有定义:charstr1[6]="abcdm",*ps,*str2="abcdef";则()是正确的

    A.strcpy(str1,str2)

    B.表达式strcmp(str1,str2)的值大于0

    C.str1=str2

    D.表达式strlen(str1)的值为6


    参考答案:A

  • 第16题:

    请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2倒置后接在字符串str1后面。

    例如:str1=“How do”,str2=“?od uoy”,结果输出:“How do you do?”。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    include<conio.h>

    define N 40

    void fun(char *str1,char *str2)

    {

    int i=0,j=0,k=0,n;

    char ch;

    char *p1=str1;

    char *p2=str2;

    while(*(p1+i))

    i++;

    while(*(p2+j))

    j++;

    n=【 】;

    for(;k=j/2;k++,j--)

    {

    ch=*(p2+k);

    *(p2+k)=*(p2+j);

    *(p2+j)=ch;

    }

    【 】;

    for(;【 】;i++)

    *(p1+i)=*p2++;

    *(p1+i)='\0';

    }

    main()

    {

    char str1[N],str2[N];

    int m,n,k;

    clrscr();

    printf("***Input the string str1 & str2

    ***\n");

    printf("\nstr1:");

    gets(str1);

    printf("\nstr2:");

    gets(str2);

    printf("***The string str1 & str2 ***\n");

    puts(str1);

    puts(str2);

    fun(str1,str2);

    printf("*** The new string ***\n");

    puts (str1);

    }


    正确答案:j-- *(p2+n)='\0' *p2
    j-- *(p2+n)='\0' *p2 解析:第一空:while循环执行后,变量j中保存了字符串str2的长度,而后面的for循环是将字符串str2倒置,即将第一个字符与最后一个字符对调,第二个字符与倒数第二个字符对调,如此循环直到中间的字符。第一次执行循环时,*(p2+j)指向最后一个字符,所以j要减1,并将未减1之前的数赋给n。第二空:将字符串str2倒置后,在字符串的最后要加上结束标记符,'\0'。第三空:当*p2所指的字符为,'\0'时,说明已经将倒置后的字符串str2都接在字符串str1后面了,for循环应该结束。当*p2所指的为其他字符时,for循环要继续执行。

  • 第17题:

    库函数strcpy用以复制字符串,若有以下定义和语句: char str1[]="china",str2[10],*str3,*str4="china"; 则对库函数strcpy的正确的调用是_______。

    A.strcpy(strl,"people");

    B.strcpy(str2,"people");

    C.strcpy(str3,"people");

    D.strcpy(str4,"people");


    正确答案:B
    解析:strcpy(字符数组1,字符串2)其作用是将字符串2复制到字符数组1中去。注: (1)字符数组1必须定义得足够大; (2)“字符数组1”必须写成数组名的形式; (3)复制时连同字符串后面的'\0'一起复制到字符数组1中。

  • 第18题:

    在下列语句中,正确的是( )

    A.static char str[]="China";

    B.static char str[];str="China";

    C.static char str1[5],str2[]={"China"};str1=str2;

    D.static char str1[],str2[];str2={"China"};strcpy(str1,str2);


    正确答案:A

  • 第19题:

    下面几个字符串处理表达式中能用来把字符串str2复制到字符串str1后的是()。

    A.strcat(str1,str2);

    B.strcat(str2,str1);

    C.strcpy(str1,str2);

    D.strcmp(str1,str2);


    正确答案:C

  • 第20题:

    若有定义:charstr1[6]="abcdm",*ps,*str2="abcdef";则()是正确的

    • A、strcpy(str1,str2)
    • B、表达式strcmp(str1,str2)的值大于0
    • C、str1=str2
    • D、表达式strlen(str1)的值为6

    正确答案:A

  • 第21题:

    有变量定义语句“Dim Str1,Str2 As String *10”,其中Str1变量的类型应为(),其中Str2变量的类型应为()。


    正确答案:变体型;字符串型

  • 第22题:

    设已定义:char str1[10],str2[10]=”Fujian”;则能将字符串”Fujian”赋给数组str1的正确语句是()

    • A、str1=”Fujian”
    • B、strcpy(str1,str2)
    • C、strcpy(str2,str1)
    • D、str1=str2

    正确答案:B

  • 第23题:

    填空题
    下列程序的输出结果是 ()。 #include  #include   main( ) {    int i=0;    char str1[10]=“1234”, str2[10]= “567”;    strcat(str1,str2);    while(str2[i++]!=‘/0’)     str2[i]=str1[i];    puts(str2);   }

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