下面关于指针用法形式正确的是()A、char*string="helloword";printf("%c",string[1]);B、char*string="helloword";printf("%s",string);C、intstuid=1001,*id;id=&stuid;D、charstusex=’m’,*gander;&stusex=gander;

题目

下面关于指针用法形式正确的是()

  • A、char*string="helloword";printf("%c",string[1]);
  • B、char*string="helloword";printf("%s",string);
  • C、intstuid=1001,*id;id=&stuid;
  • D、charstusex=’m’,*gander;&stusex=gander;

相似考题
更多“下面关于指针用法形式正确的是()A、char*string="helloword";printf("%c",string[1]);B、char*string="helloword";printf("%s",string);C、intstuid=1001,*id;id=stuid;D、charstusex=’m’,*gander;stusex=gander;”相关问题
  • 第1题:

    下面程序执行后,输出结果为:true请在程序的每条横线处填写一个语句,使程序的功能完整。

    注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。

    public class TestStringCompare{

    {public static void main(String ____________________ args)

    {char charl[]={'t','e','s','t'};

    char char2[]={'t','e','s','t','1'};

    String str1=new String(___________________);

    String str2=new String(char2,0,4);

    System.out.println(__________________________);

    }

    }


    正确答案:[ ] char1 str1.equals(str2)
    [ ] char1 str1.equals(str2) 解析:本题主要考查main()主方法的使用、String类的使用。解答本题的关键是熟练掌握main()主方法的使用、String类的使用。在本题中,public static void main(String[]args)中的[]是定义数组的标志,str1.equals(str2)语句的功能是判断字符串str1和字符串str2的内容是否相等。

  • 第2题:

    对于下面的程序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。

  • 第3题:

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

    对于下面的程序 #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],str[3][20]; for(i=0;i<3;i++)gets(str[i]); strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[2])); printf("%s\n",string); } 若运行时依次输入abcd、abba和abc三个字符串,则输出结果为 ______。

    A.abcd

    B.abba

    C.abc

    D.abca


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

  • 第4题:

    下面的程序执行后,屏幕上应显示______。 public class Test{ public static void main(String[ ]args){ char char1[ ]={'t','e','s','t'}; char char2[ ]={'t','e','s','t','1'}; String s1=new String(char1); String s2=new String(char2,0,4); System.out.println(s1.equals(s2)); } }

    A.true

    B.false

    C.test

    D.编译错误


    正确答案:A
    解析: 我们知道,可以通过字符型数组来生成一个字符串对象:String(char[ ]value)和 String(char[ ]value,int startIndex,int numChars)。然后再测试字符串是否相等,可调用equals( )方法,如果两个字符串相等,则返回true,否则返回false。题目中s1和s2都是“test'’,所以最后返回true,选项A正确。

  • 第5题:

    已知类 String 的原型为

    class string

    {

    public:

    string(const char *str=null);//普通构造函数

    string(const string &other);//拷贝构造函数

    ---string(void);

    string &operate=(const string &other);//赋值函数

    private:

    char * m-data;//用于保存字符串

    };

    请编写 string 的上述4 个函数


    正确答案:
     

  • 第6题:

    请补充函数fun(char *s),该函数的功能是把字符串中的内容逆置。

    例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容变为edcba。

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

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

    试题程序:

    $include<string.h>

    include<conio.h>

    include<stdio.h>

    define N 81

    void fun(char*s)

    {

    int i=0,t,n=strlen(s);

    for(;【 】;i++)

    {

    t=*(s+i);

    【 】;

    【 】;

    }

    }

    main()

    {

    char a[N];

    clrscr();

    printf("Enter a string:");

    gets(a);

    printf("The original string is:");

    puts(a);

    fun(a);

    printf("\n");

    printf("The string after modified:");

    puts(a);

    }


    正确答案:in/2或s+is+n-1-i或in-1-I *(s+i)=*(s+n-1-i) *(s+n-1-i)=t
    in/2或s+is+n-1-i或in-1-I *(s+i)=*(s+n-1-i) *(s+n-1-i)=t 解析:第一空:将字符串的内容逆置,实际上就是将第一个字符和最后一个字符交换,再将第二个字符与倒数第二个字符交换,依此类推,直到中间的字符为止。所以,长度为n的字符串需要交换的次数为n/2。还可以这样理解,交换时始终保持顺数的字符在倒数的字符前面。第二空:顺数第i个字符为*(s+i),倒数第i个字符为*(s+n-1-i)。第三空:掌握利用第三个变量进行变量交换的方法。本题中,第三个变量为t。

  • 第7题:

    下面的程序执行后,屏幕上显示的应是 public class Exam{ public static void main(String[])args){ char char1[]={'t','e','s','t'}; char char2[]={'t','e','s','t','l'} String s1=new String(char 1); String s2=new String(char2,0,4); System.out.println(s1.equals(s2)); } }

    A.true

    B.false

    C.test

    D.编译错误


    正确答案:A
    解析:本题考查考生对字符数组的理解。首先可以通过字符数组来生成一个字符串对象:String(char[]value)和String(char[]value,intstartIndex,intnumChars),其中,startIndex指定字符串在数组中的起始下标,numChars表示字符个数。然后再测试字符串是否相等,可调用eqllals()方法,两个字符串相等则返回true,否则返回false。题目中s1和s2都是“test”,所以最后返回是true,选项A正确。

  • 第8题:

    下面的程序执行后,屏幕上显示的应是 public class Exam{ public static void main(String[]args){ char char1[]='t','e','s','t'}; char char2[]={'t','e','s','t','1',}; String sl=new String(char1); String s2=new String(char2,0,4); System.out.println(S1.equals(s2)); } }

    A.真

    B.假

    C.test

    D.编译错误


    正确答案:A
    解析:本题考查考生对字符数组的理解。首先可以通过字符数组宋生成一个字符串对象:String(char[]value)和String(char[]value,int startIndex,int numChars),其中, startIndex指定字符串在数组中的起始下标,numChars表示字符个数。然后再测试字符串是否相等,可调用equals()方法,两个字符串相等则返回true,否则返回false。题目中s1和s2都是“test",所以最后返回是true,选项A正确。

  • 第9题:

    下面程序执行后,屏幕上显示的应是______。 public class Testl0 { public static void main(String[] args) { char char1[] = {'t', 'e', 's', 't'}; char char2[] = ('t', 'e', 's', 't', '1 }; String s1 = new String(char1); String s2 = new String(char2, 0, 4); System.out.println (si.equal (s2)); } }

    A.true

    B.假

    C.test

    D.编译错误


    正确答案:A
    解析:首先可以通过字符数组来生成一个字符串对象:String(char[]value);String(char[]value,intstartlndex,intnumChars);其中,startlndex指定字符串在数组中的起始下标,numChars表示字符个数。然后再测试字符串是否相等,可调用equal()方法,两串相等则返回true,否则返回false。

  • 第10题:

    以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。 #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],str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2])); printf("%s\n",string); } 若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为( )。

    A.abcd

    B.abba

    C.abc

    D.baca


    正确答案:B
    解析:本题考查返回指针值的函数。一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。函数strcmp(字符串1,字符串2)的作用是比较字符串1和字符中2。如果字符串1=字符串2,函数值为0;如果字符串1,字符串2,函数值为一正整数;如果字符串1字符串2,函数值为一负整数。本题程序中scmp函数的作用是比较s1和s2的大小,对strcmp函数的返回值进行判断,如果字符串1字符串2,则返回字符串1的值,反之返回字符串2的值。所以main函数中scmp(str[0],str[1])的返回值是abba,通过strcpy函数把返回值abba复制到string中。当执行scmp(string,str[2])时,scrap函数的返回值为abba,再次复制到string中,最后string的值为abba。

  • 第11题:

    下面正确声明一个一维数组的是()。

    • A、String [] a
    • B、String a[]
    • C、char a[][]
    • D、String a[10]

    正确答案:A,B

  • 第12题:

    Which expressions are correct to declare an array of 10 String objects? ()   

    • A、 char str[];
    • B、 char str[][];
    • C、 String str[];
    • D、 String str[10];

    正确答案:C

  • 第13题:

    阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写对应栏内。

    【说明】

    下面的程序实现了类String的构造函数、析构函数和赋值函数。

    已知类String的原型为:

    class String

    {

    public:

    String(coust char * str = NULL); //普通构造函数

    String( const String &other); //拷贝构造函数

    ~String(void); //析构函数

    String & perate =(const String &other); //赋值函数

    private:

    char * m_data; // 用于保存字符串

    };

    //String 的析构函数

    String:: ~String (void)

    {

    (1);

    }

    //String 的普通构造函数

    String: :String( const char * str)

    {

    if (2)

    {

    m_data = new char[1];

    *m_data = '\0';

    }

    else

    {

    int length = strlen(str);

    m_data = new ehar[ length + 1 ];

    strepy(m_data, str);

    }

    }

    //拷贝的构造函数

    String:: String( const String &other)

    { int length = strlen(other. m_data);

    m_data = new char[ length + 1 ];

    strepy(m_data, other, m_data); //赋值函数

    String & String::operate = (eonst String &other) //

    {

    if (3)

    return * this;

    delete [] m_clara; //释放原有的内存资源

    int length = strlen( other, m_data);

    m_data = new chart length + 1 ];

    (4);

    return (5);

    }


    正确答案:(1)delete[]m_data或者delere m_data
    (1)delete[]m_data或者delere m_data 解析:由于m_data 是内部数据类型,也可以写成delete m_data。

  • 第14题:

    定义一个表示10个值为null的字符串数组,下面选项正确的是

    A.String [] a;

    B.String a[];

    C.char a[10][];

    D.String a[]=new String[10];


    正确答案:D
    解析:本题考查字符串数组变量的声明。选项A和选项B的效果是一样的,都是用来定义一个字符串数组,但没有指明数组个数,不满足题B-要求。选项C是一个二维的字符数组,在C语言中,一个二维的字符数组就可以表示一个一维的字符串数组,而在Java中,字符char是基本类型,字符串String则是以对象的形式来表示的。选项D正确,它定义了一个含有10个元素的字符串数组,如果没有给字符串数组赋值,则默认为null。

  • 第15题:

    下面程序的运行结果是()。includeincludemain(){char*s1="abDuj";char*s2="

    下面程序的运行结果是( )。 #include<stdio.h> #include<string.h> main() {char*s1="abDuj"; char*s2="ABdUG"; int t; t=strcmp(s1,s2); printf("%d",t); }

    A.正数

    B.负数

    C.零

    D.不确定的值


    正确答案:A

  • 第16题:

    已知String类定义如下:

    class String

    {

    public:

    String(const char *str = NULL); // 通用构造函数

    String(const String &another); // 拷贝构造函数

    ~ String(); // 析构函数

    String & perater =(const String &rhs); // 赋值函数

    private:

    char *m_data; // 用于保存字符串

    };

    尝试写出类的成员函数实现。


    正确答案:

     

    String::String(const char *str)
    {
    if ( str == NULL ) //strlen在参数为NULL时会抛
    异常才会有这步判断
    {
    m_data = new char[1] ;
    m_data[0] = '\0' ;
    }
    else
    {
    m_data = new char[strlen(str) + 1];
    strcpy(m_data,str);
    }
    }
    String::String(const String &another)
    {
    m_data = new char[strlen(another.m_data) + 1];
    strcpy(m_data,other.m_data);
    }
    String& String::operator =(const String &rhs)
    {
    if ( this == &rhs)
    return *this ;
    delete []m_data; //删除原来的数据,新开一块内

    m_data = new char[strlen(rhs.m_data) + 1];
    strcpy(m_data,rhs.m_data);
    return *this ;
    }
    String::~String()
    {
    delete []m_data ;
    }

  • 第17题:

    下列程序执行后,屏幕上显示的应是 public class Testyyy {public static void main(String[]args) {char charl[]={,'t' 'e''s],'t'}; char char2[]={'t','e','s','t','1'}; String s1=new String(char1); String s2=new String(char2,0,4); System.out.println(s1.equals(s2)); } }

    A.true

    B.假

    C.test

    D.编译错误


    正确答案:A
    解析:①可以通过字符数组来生成一个字符申对象:String(char[]value);String(charC[]value,intstartIndex,intnumChars);其中,startIndex指定字符串在数组中的起始下标,numChars表示字符个数。②测试字符串是否相等,可用equals()方法,两串相等则返回true,否则返回false。

  • 第18题:

    下面( )是main()函数的合法参数。

    A.char args[]

    B.char args[][]

    C.String args[]

    D.String args


    正确答案:C

  • 第19题:

    下面哪个是main()方法的合法参数()

    A、char args[]

    B、char args[][]

    C、String arg[]

    D、String args


    答案:D

  • 第20题:

    设有定义:"char s[12]={"string"};" 则printf("%d\n",strlen(s));的输出是( )

    A.6

    B.7

    C.11

    D.12


    正确答案:A
    在C语言中,字符串是指在有效字符之后有字符率结束标记符的字符列,并约定字符串的长度是指字符率中有效字符个数,不包括字符串的结束标记符。存放于字符数组s中的字符串是“string”,该字符串的长度为6,所以输出该字符串的长度应是6。正确的解答是A。

  • 第21题:

    若输入 "I am a boy!",下列程序的运行结果为______。 char connect(string1,string2,string) char string1[],string2[],string[]; { int i,j; for (i=0;stringl[i] !='\0';i++) string[i]=stringl[i]; for (j=0;string2[j] !='\0';j++) string[i+j]=string2[j]; string[i+j ] ='\0'; } main ( ) { char s1 [100] , s2 [100] , s [100]; printf ("\n 输入 string1: \n"); scanf("%s",s1); printf (" \n 输入 string2: \n" ); scanf ("%s", s2); connect (s1, s2, s); printf ("%s\n", s); }

    A.I am a boy!

    B.输入string2:

    C.I am

    D.I am a boy!


    正确答案:C

  • 第22题:

    语句()能正确完成赋字符串的功能。

    • A、chars[4];s[0]=“string”
    • B、char*s;get(s)
    • C、char*s[]=“string”
    • D、char*s;strcpy(s,“string”)

    正确答案:C

  • 第23题:

    合法的数组定义是()

    • A、int a[ ]="string";
    • B、int a[5]={0,1,2,3,4,5};
    • C、char s="string";
    • D、char a[ ]={0,1,2,3,4,5};

    正确答案:D