更多“以下能正确定义字符申的语句是()A、Char str[]={’/064’};B、Char str=”kx43”;C、Char str=”;D、Char str[]=”/0”;”相关问题
  • 第1题:

    下列能正确定义字符串的语句是( )。

    A.char str[]={'\64'};

    B.char str="kx43";

    C.char str=";

    D.char str[]="\0";


    正确答案:D
    解析:字符串常量是用一对双括号括起来的一串字符。它用字符数组来存放,不能用一对大括号对括起来。

  • 第2题:

    阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。

    [函数2.1说明]

    函数strcpy的功能是将字符串str2的内容复制到字符申str1。

    [函数2.1]

    (1) strcpy (char *slr1, const char *str2)

    { char * temp;

    while( * str2!='\0') *cp++ =(2);

    (3)='\0';

    return str1;

    }

    [函数2.2说明]

    函数int strcmp(const char *str1, const char *str2)的功能是按字典序比较两个字符串str1和str2的大小。当str1<str2时返回-1,当str1>str2时返回1,否则返回0。

    [函数2.2]

    int strcmp(const char *str1, const char *str2)

    { while( *str1= =* str2) {

    if(* s1= =(4)) return 0;

    s1++;

    (5);

    }

    if( *str1<*str2) return -1;

    return 1;

    }


    正确答案:char * (2) * str2++ (3) * cp (4) ‘\0’ (5) s2++或 ++s2
    char * (2) * str2++ (3) * cp (4) ‘\0’ (5) s2++或 ++s2 解析:(1)根据函数说明,char *是函数strcpy的返回值类型;
    (2)while循环是字符串复制的关键,它将str2的字符一个个复制到cp;
    (3)字符复制完成后,应在字符串cp的末尾添加结束符;
    (4)~(5):while循环的功能是从字符串首开始逐个比较str1和str2的每一字符,如果循环一直执行到两字符串末尾,则说明两串相等,应返回0值。

  • 第3题:

    请编写一个函数char MaxCharacmr(char *str),该函数返回参数str所指向的字符串中具有最大ASCII码的那个字符(如字符串“world”中字符‘w’具有最大的ASCII码)。当str所指向的字符串为空时,则返回空字符0x0或‘\0’。

    输出结果如下:

    Good Morning!

    Max char:r

    注意:部分源程序已存在文件test15_2.cpp中。

    请勿修改主函数main和其他函数中的任何内容,仅在函数MaxCharacter的花括号中填写若干语句。

    文件test15_2.cpp的内容如下:

    include<iostream.h>

    include<string.h>

    char MaxCharacter(char *str);

    void main()

    {

    char str[100];

    strcpy(str,"Good Morning!");

    char maxc=MaxCharacter(str);

    cout<<str<<endl;

    cout<<"Max char:"<<maxc<<endl;

    }

    char MaxCharacter(char*str)

    {

    }


    正确答案:char MaxCharacter (char *str) { if(str==NULL) return 0x0; char maxChar=0x0; int len=strlen(str); for(int i=0;ilen;i++) { if(str[i]>maxChar) maxChar=str[i]; } return maxChar; }
    char MaxCharacter (char *str) { if(str==NULL) return 0x0; char maxChar=0x0; int len=strlen(str); for(int i=0;ilen;i++) { if(str[i]>maxChar) maxChar=str[i]; } return maxChar; } 解析:本题考查的是考生应用for和if等基本控制语句解决实际问题的能力。注意字符的大小可以直接比较,实际上比较的就是字符的ASCII码的值。

  • 第4题:

    以下能正确定义字符串的语句是( )。

    A.char str[]={'\064'};

    B.char str="kx43";

    C.char str=";

    D.char str[]="\0";


    正确答案:D
    解析:字符串必须以‘\0’为结束符。

  • 第5题:

    以下选项中有语法错误的是

    A) char *str[ ]={”guest”};

    B) char str[ ][10]={”guesi”};

    C) char *st[3]; str[1]=”guest”;

    D) char str[3][10]; str[1]=”gest”;


    正确答案:D
    【答案】D
    【知识点】指针数组赋初值
    【解析】D选项中不能直接使用str[1]=”guest”这样的形式进行赋值。

  • 第6题:

    以下三条输出语句分别输出什么?

    char str1[] = "abc";

    char str2[] = "abc";

    const char str3[] = "abc";

    const char str4[] = "abc";

    const char* str5 = "abc";

    const char* str6 = "abc";

    cout << boolalpha << ( str1==str2 ) << endl; // 输出什么?

    cout << boolalpha << ( str3==str4 ) << endl; // 输出什么?

    cout << boolalpha << ( str5==str6 ) << endl; // 输出什么?


    正确答案:
     

  • 第7题:

    下面的程序各自独立,请问执行下面的四个TestMemory 函数各有什么样的结果?

    ①void GetMemory(char * p)

    {

    p = (char * )malloc(100);

    }

    void TestMemory (void)

    {

    char *str = NULL;

    GetMemory (str);

    strcpy(str, "hello world");

    prinff(str);

    }

    ② char * GetMemory (void)

    {

    char p[ ] = "hello world";

    return p;

    }

    void TestMemory (void)

    {

    char * str = NULL;

    str = GetMemory( );

    printf(str);

    }

    ③void GetMemory(char * * p, int num)

    {

    * p = (char * )malloc(num);

    }

    void TestMemory (void)

    {

    char * str = NULL;

    GetMemory(&str, 100);

    strcpy( str, "hello" );

    printf(sir);

    }

    ④void TestMemory (void)

    {

    char *str = (char * )malloe(100);

    strepy (str, "hello" );

    free ( str );

    if(str ! = NULL)

    {

    strepy( str, "world" );

    printf(str);

    }

    }


    正确答案:程序1程序崩溃。因为GetMemory并不能传递动态内存TestMemory函数中的str一直都是 NULL。strcpy(str “hello world”);将使程序崩溃。 程序2可能是乱码。因为GetMemory返回的是指向“栈内存”的指针该指针的地址不是 NULL但其原来的内容已经被清除新内容不可知。 程序3能够输出hello但是会发生内存泄漏。 程序4篡改动态内存区的内容后果难以预料非常危险。因为free(str);之后str成为野指针if(str!=NULL)语句不起作用。
    程序1程序崩溃。因为GetMemory并不能传递动态内存,TestMemory函数中的str一直都是 NULL。strcpy(str, “hello world”);将使程序崩溃。 程序2可能是乱码。因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原来的内容已经被清除,新内容不可知。 程序3能够输出hello,但是会发生内存泄漏。 程序4篡改动态内存区的内容,后果难以预料,非常危险。因为free(str);之后,str成为野指针,if(str!=NULL)语句不起作用。

  • 第8题:

    以下选项中有语法错误的是( )。

    A.char*str[]={"guest");

    B.char str[][lO]={"guest");

    C.char*str[3];str[t]="9uest";

    D.char str[3][lO];str[1]="guest";


    正确答案:D
    在D选项中,首先定义了一个二维数组str,str[1]="9uest,在赋值时"使用一个字符串进行赋值是错误的,所以答案选择D。

  • 第9题:

    下列描述中,不能正确给字符数组str定义和赋值的是( )。

    A、char str[]={"abcdefghijklmn "};

    B、char str[10];str={" abcdefghijklmn "};

    C、char str[10]={"abcdefghijklmn"};

    D、char str[10];strcpy(str,"abcdefghijklmn");


    参考答案BCD

  • 第10题:

    下列能正确定义字符串的语句是( )。

    A)char str[]={'\064'};

    B)char str="kx43";

    C)char str=";

    D)char str[]="\0";


    正确答案:D

  • 第11题:

    单选题
    以下能正确定义字符串的语句是(  )。
    A

    char str[]=\0;

    B

    char str=kx43;

    C

    char str=;

    D

    char str[]={'\064'};


    正确答案: D
    解析:
    字符串末尾一定要有结束标记,双引号括起来的字符串系统会默认添加结束标记。A项正确,定义了空字符串str。B项错误,str是char类型变量,不能用字符串为其赋值;C项错误,字符串应该用双引号括起来;D项错误,如果一个字符数组用来作为字符串使用,一定要人为加入'\0',str字符串中str[0]='\064'='4',但是str缺少结束符。答案选择A选项。

  • 第12题:

    单选题
    以下能正确定义字符申的语句是()
    A

    Char str[]={’/064’};

    B

    Char str=”kx43”;

    C

    Char str=”;

    D

    Char str[]=”/0”;


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

  • 第13题:

    以下能正确定义字符串的语句是( )。

    A.char str[]={'\064'};

    B.char str="\x43";

    C.char str=";

    D.char str[]="\0";


    正确答案:D
    解析:C语言中,字符串是用一对双引号括起来的字符序列,并用字符型数组来存放,故选项A)、C)不是字符中;选项B)定义的是一个字符变量str,不能用来存放字符串,所以不正确。

  • 第14题:

    下列对字符串的定义中,错误的是_____ 。

    A. char str[5]= "abcde"

    B. char str[ ]= "abcde"

    C. char *str ="abcde"

    D. char str[ ]={ 'a', 'b', 'c', 'd', 'e', '\0'}


    参考答案:A

  • 第15题:

    以下不能正确进行字符串赋值初值的语句是( )。

    A.char str[5]="good!";

    B.char str[]="good!";

    C.char*str="good!";

    D.char str[5]={'g','o','o','d'};


    正确答案:A

  • 第16题:

    以下程序的输出结果是【 】。includeincludechar*fun(char*0{ char *p--t;retur

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

    include <stdio.h>

    include <string.h>

    char *fun(char *0

    { char *p--t;

    return (p+strlen(t)/2);

    }

    main()

    { char *str="abcdefgh";

    str=ftm(str);

    puts(str);

    }


    正确答案:efgh
    efgh 解析:本题考查的知识点是:字符指针。题目中的fun()函数,通过strlen()库函数得到形参t所指字符串的长度。然后返回t所指字符串首地址值加上该长度值的一半。所以fun()函数的作用就是返回所给字符串的中间位置。故最后通过puts()输出的字符串为"efgh"。

  • 第17题:

    以下正确的程序段是

    A.cgar str[20]; scanf("%s",&str);

    B.char*p; scanf("%s",p);

    C.char str[20]; scanf("%s",&str[2])

    D.char str[20],*p=str; scanf("%s",p[2]);


    正确答案:C
    解析:scanf输入字符串有一点要注意的是,格式控制串必须用%s。注意:gets函数和puts函数的作用。

  • 第18题:

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

    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

  • 第19题:

    以下不能正确进行字符串赋初值的语句是

    A.char str[5]="good!";

    B.char str[]="good!";

    C.char*srt="good!";

    D.char str[5]={ 'g', 'o', 'o', 'd'};


    正确答案:A
    解析:本题考核的知识点是字符数组和字符指针变量的初始化。选项A定义了一个字符数组str,具有5个元素,但赋初值的时候,初值个数却是6个(有一个'\0'),故选项A错误的;选项B定义了一个字符数组str并给它赋初值,由于省去了长度定义,长度由初值个数确定,相当于str[6],选项B正确;选项C定义了一个字符型指针变量并用一个字符串给它赋初值,使该字符型指针指向了该字符串,选项C正确;选项D是对字符型数组中单个元素依次赋初值,选项D正确。所以,4个选项中A为所选。

  • 第20题:

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

    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,最终导致越界,所以也不合法。

  • 第21题:

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

    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

  • 第22题:

    以下不能进行字符串赋初值的语句是()。

    • A、char *str= “good!”;
    • B、char str[]= “good!”;
    • C、char str[5]= {‘g’,‘o’,‘o’,‘d’};
    • D、char str[5]= “good!”;

    正确答案:D

  • 第23题:

    单选题
    以下叙述中正确的是(  )。
    A

    语句“char str[10]=string!;”和“char str[10]={string!};”并不等价

    B

    对于字符串常量“string!”,系统已自动在最后加入了'\0'字符,表示串结尾

    C

    对于一维字符数组,不能使用字符串常量来赋初值

    D

    在语句“char str[]=string!;”中,数组str的大小等于字符串的长度


    正确答案: B
    解析:
    B项正确,C编译程序将自动在字符串常量最后添加'\0'。AC两项错误,可以直接用字符串常量给一维字符数组赋初值,习惯上均省略花括号;D项错误,'\0'会占用一个不属于字符串的存储单元,因此数组str的长度大于字符串的长度。答案选择B选项。