参考答案和解析
正确答案:D
更多“设有char *s="ABCDE";cout (s+1) endl;输出结果是()A、AB、BC、ABCDD、BCD”相关问题
  • 第1题:

    有以下程序 main() { char s[]="ABCD",*p; for(p=s+1;p<s+4;p++)printf("%s\n",p); } 程序运行后的输出结果是

    A.ABCD BCD CD D

    B.A B C D

    C.B C D

    D.BCD CD D


    正确答案:D
    解析:本题中首先定义一个字符数组s,并将字符串“ABCD”存到数组s中,定义了一个字符指针变量p,在接下来for循环中,循环体共执行了三次,第一次p指向 s[1],所以此时输出的p所指的字符串的值为BCD;第二次循环p指向s[2],所以此时输出的P所指的字符串的值为CD;第三次循环p指向s[3],因此此时输出的p所指的字符串的值为D。

  • 第2题:

    下列程序时类D代码段出现编译错误,原因是【 】。 include class A { public:A(char c)

    下列程序时类D代码段出现编译错误,原因是【 】。

    include<iostream. h>

    class A

    {

    public:

    A(char c){cout<<"A's constructor."<<c<<endl;}

    ~A(){cout<<"A's destructor."<<endl;}

    };

    class B: virtual public A

    {

    public:

    B(char cb,char cd):A(cb) {cout<<"B's constructor."<<cd<<endl;}

    ~B(){cout<<"B's destructor."<<endl;}

    private:

    char b;

    };

    class C:virtual public A

    {

    public:

    C(char cc, char cd):A(cc)

    {cout<<"C's constructor. "<<cd<<endl;}

    ~C(){cout<<"C's destructor."<<endl;}

    };

    class D:public B,public C

    {

    public:

    D(char cd,char ce,char cf, char cg, char ch,char ci)

    :C(cf,cg),B(cd,ce),A(cd),aa(ch)

    {cout<<"D's constructor."<<ci<<endl;}

    ~D() {cout<<"D's destructor."<<endl;}

    private:

    A aa;

    };

    void main()

    {

    D ohj('a','b','c','d','e','f')

    }


    正确答案:类的继承出现二义性
    类的继承出现二义性 解析:本题就是通过实例来表现多继承时出现的二义性问题。多重继承比较复杂,尽管C++中提供了虚基类来解决这个问题,但在实际开发中由于过于复杂而往往尽量避免使用。

  • 第3题:

    阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

    [说明]

    本程序使用类来管理员工的通讯地址信息。已知程序的输出为:

    输出记录:5

    姓名:王丽华

    街道地址:中华路15号

    市:襄樊市

    省;湖北省

    邮政编码:430070

    [C++程序]

    include < iostream, h >

    include < string, h >

    class employee.

    { protected:

    char name[10];

    char street[ 20 ];

    char city[10];

    char (1) [10];

    char post[7];

    int no;

    (2):

    (3) (char [] ,char [] ,char [] ,char [] ,char [] ,int);

    void changename ( char n [] ) { strcpy ( name, n); }

    void changestreet( char s[] ) { strcpy(street,s) ;}

    void changecity ( char c [] ) { strcpy ( city, c ); }

    void changeprov( char p [] ) { strcpy(prov,p); }

    void changeno(int nnm) { (4);}

    void display( );

    };

    employee:: (3) (char n[] ,char s[] ,char c[] ,char p1[] ,char p2[] ,int nam)

    { strcpy(name,n);

    strcpy ( street, s);

    strcpy ( city, c);

    strcpy ( prov, p1 );

    strcpy ( post, p2 );

    no = nam; }

    void employee:: display( ) { cont< <"输出记录: "< <no< <endl;

    cout< < "姓名: "< < name < < endl;

    coot < < "街道地址: "< < street < < endl;

    cout < < "市: "< < city < < endl;

    cout< <"省: "< <prov < <endl;

    cout < <"邮政编码: "< < post < < endl;

    }

    void main( ) { employee cmp("王华" ,"中华路15号" ,"武汉市","湖北省","430070", 1 );

    emp. changename( "五丽华" );

    emp. changecity ( "襄樊市" );

    emp. changeno(5);

    (5);


    正确答案:(1)prov (2)public (3)employee (4)no=num (5)emp.display()
    (1)prov (2)public (3)employee (4)no=num (5)emp.display() 解析:本程序创建一个employee类,包括姓名、街道地址、市、省和邮政编码和记录号等信息以及若干函数:构造函数employee()初始化每个成员;changname ()、……changeno()等用于更改类中各属性的值;dis- play()函数用于打印数据。其中的数据成员是保护的,函数是公共的。

  • 第4题:

    请将下面的程序补充完整,使得程序输出“飘是张娜的书”。

    include

    using namespace std

    class Book{

    public:

    Book(char*str)|strcpy(title,str);

    ______void Printlnfo(){cout<<title<<endl;}

    protected:

    char title[50];

    };

    class MyBook:public Book{

    public:

    MyBook(char*s1,char*S2=“张娜”):

    ______strcpy(owner,s2);}

    virtual void PrintInfo(){cout<<title<<“是”<<owner<<“的书”<<endl;}

    private:

    charowner[10];

    };

    int main(){

    Book*ptr=new MyBook(“飘”);

    ptr->Printlnfo();

    return 0;

    }


    正确答案:virtual MyBook(char*s2)。
    virtual MyBook(char*s2)。

  • 第5题:

    下面程序段的运行结果是 include void main( ) {char*s="abcde"; S+=2;

    下面程序段的运行结果是 #include<iostream.h> void main( ) { char*s="abcde"; S+=2; cout<<&s;}

    A.cde

    B.字符'c'

    C.字符'c'的地址

    D.无确定的输出结果


    正确答案:C
    解析:对于字符串指针,其保留的是整个串的首地址,即为第一个字符的起始地址,当该指针做算术运算时,就是该指针根据其类型向后移动相应的存储空间。

  • 第6题:

    以下程序的输出结果是()。includeint fun (char*s){char *p=s;while (*p!='\0,) p++

    以下程序的输出结果是( )。 #include<iostream.h> int fun (char*s) { char *p=s; while (*p!='\0,) p++: return (p-s): } void main() { cout<<fun (" ABCDEF ")<<endl: }

    A.3

    B.6

    C.8

    D.0


    正确答案:B

  • 第7题:

    设有定义:char s[12]={"hello"},则cout<<strlen(s)的输出是 ______。

    A.5

    B.6

    C.11

    D.12


    正确答案:A

  • 第8题:

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

    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; // 输出什么?


    正确答案:
     

  • 第9题:

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

    char s[ ]="XYZQ";

    void main(){

    char *p;

    for(p = s; p < s+4; p++)

    cout<<p<<end1;

    }


    正确答案:XYZQ YZQ ZQ Q
    XYZQ YZQ ZQ Q

  • 第10题:

    下列程序执行后的输出结果是 include main() { char arr[2][4]; strcpy(

    下列程序执行后的输出结果是 #include<string.h> main() { char arr[2][4]; strcpy(arr, "you"); strcpy(arr[1], "me"); arr[0][3]='&'; cout<<arr<<endl; }

    A.you&me

    B.you

    C.me

    D.err


    正确答案:A
    解析:本题考察二维数组的标识方式。Arr作为数组名单独使用时表示一个指向数组首部的指针,故you放在数组第一行的前三列arr[0][0]、arr[0][1]、arr[0][2]中。Arr[1]表示指向第二行的指针,因此me放在数组第二行的前两列arr[1][0]、arr[1][1]中。而&则直接按照两维下标放到第一行的第四列中。那么输出的时候默认按照从左到右,先上后下的顺序。因此本题的正确答案为A。

  • 第11题:

    设有char *s="ABCDE";cout<< strlen(s)<< endl;输出结果是()

    • A、6
    • B、5
    • C、4
    • D、1

    正确答案:B

  • 第12题:

    单选题
    设有char *s="ABCDE";cout<< (s+1)<< endl;输出结果是()
    A

    A

    B

    B

    C

    ABCD

    D

    BCD


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

  • 第13题:

    连续执行以下命令之后,最后一条命令的输出结果是 ______。 SET EXACT OFF X="A" ?IIF("A"=X,X-"BCD",X+"BCD")

    A.A

    B.BCD

    C.ABCD

    D.ABCD


    正确答案:D
    解析:+: 前后两个字符串首尾连接形成一个新字符串。
       —:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。
       IIF函数语法:
       IIF(1Expression,eExpressionl,eExpression2)
       返回值:
       Character,Numeric,Currency,Date,Or Date Time
       题目条件"A"=X不成立,结果应是X+"BCD",值是ABCD
       SET EXACT ON|0OFF命令
       功能:用来指定在不同长度的字符串进行比较时的规则。
       ON:在比较时将忽略表达式的尾部空格,较短的字符通过添加空格来保持和较长的长度一样,然后才进行比较。
       OFF(默认值);两个表达式一个字符进行比较直到右边表达式的最后。

  • 第14题:

    请编写一个函数char*change(char instr[]),将输入字符串中的所有小写字母转换为大写字母输出。要求使用for循环实现。如输入jinfeiteng,则输出结果是JINFEITENG。

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

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

    文件test21_2.cpp的内容如下:

    char*change(char instr[]);

    include"iostream.h"

    void main()

    {

    char instr[50];

    char *outstr;

    cout<<"Input a string:"<<endl;

    cin>>instr;

    utstr=change(instr);

    cout<<"Over graded string:"<<endl;

    cout<<outstr<<endl;

    }

    char*change(char instr[])

    {

    }


    正确答案:char *change(char instr[]) { char *outstr=new char[50]; const char delta='A'-'a'; int i; for(i=0;instr[i]!='\0';i++) { if(instr[i] >='a' && instr[i] ='z') { outstr[i]=instr[i]+delta; } else { outstr[i]=instr[i]; } } outstr[i]='\0'; return outstr; }
    char *change(char instr[]) { char *outstr=new char[50]; const char delta='A'-'a'; int i; for(i=0;instr[i]!='\0';i++) { if(instr[i] >='a' && instr[i] ='z') { outstr[i]=instr[i]+delta; } else { outstr[i]=instr[i]; } } outstr[i]='\0'; return outstr; } 解析:本题考查的是考生使用for循环和一维数组的综合水平。对于大小写的ASCII码的差值可以通过delta='A'-'a'运算得到,注意在字符串的结尾加入结束标志符'\0'。

  • 第15题:

    下面程序运行输出的结果是【】。 include using namespace std; int main(){char a[]="C

    下面程序运行输出的结果是【 】。

    include <iostream>

    using namespace std;

    int main(){

    char a[]="Chinese";

    a[3]='\0';

    cout<<a<<endl;

    return 0;

    }


    正确答案:Chi
    Chi 解析:字符串的结束标识是'\0',输出字符串时,到第一个'\0'输出结束,而不管其后是否还有数据,因此本题输出为字符中的前3个字符。

  • 第16题:

    以下程序的输出结果是()。includevoid func(char**m) {++m:cout<<*m<

    以下程序的输出结果是( )。 #include<iostream.h> void func(char**m) { ++m: cout<<*m<<endl; } void main() { static char*a[]={"MORNING","AFTERTOON","EVENING"}; char**n; n=a: func(n); }

    A.为空

    B.MORNING

    C.AFTERTOON

    D.EVENING


    正确答案:C

  • 第17题:

    以下程序的输出结果是()。includeusing namespace std;void fun(char**q){++q;cout<<*

    以下程序的输出结果是( )。 #include<iostream> using namespace std; void fun(char**q) { ++q; cout<<*q<<end1; } main() { static char*s[]={"HI","HELL0","TEST"}; char**p; p=s; fun(p); system("PAUSE"); return 0; }

    A.为空

    B.HI

    C.HELL0

    D.TEST


    正确答案:C
    解析:由程序main主函数入手,调用fun函数,在fun函数中执行“cout*qend1;”语句实现程序输出。主函数中变量char*s[]为指针数组,char**p表示p指向的字符指针数据。*p就代表p指向的字符指针。语句“p=s;”表明p指向字符指针s,而**p则是s[]中的第一个字符串“HI”。主函数将变量p传值给函数fun(char**q)中的q,在函数体内部首先执行“++q”语句,就是将q的指针指向s中的下一个字符串,即“HELL0”,所以输出语句“cout*qend1;”输出该字符串值。

  • 第18题:

    下面程序的输出结果是()。includeinclude"stdng.h"void main(){ char a[]="welcome

    下面程序的输出结果是( )。 #include<iostream.h> #include"stdng.h" void main() { char a[]="welcome",b[]="well"; strcpy(a,b); cout<<a<<endl; }

    A.wellome

    B.wellcom

    C.well

    D.wellwe


    正确答案:C

  • 第19题:

    以下程序的输出结果是()。includeincludeusing namespace std;void func(cha

    以下程序的输出结果是( )。 #include<iostream> #include<stdlib> using namespace std; void func(char **m) { ++m; cout<<*m<<endl; } main() { static char *a[]={"MORNING","AFTERNOON","EVENING"); char **n; n=a; func(n); system("PAUSE"); return 0; }

    A.为空

    B.MORNING

    C.AFTERNOON

    D.EVENING


    正确答案:C

  • 第20题:

    连续执行以下命令之后,最后一条命令的输出结果是( )。

    A)A

    B)BCD

    C)ABCD

    D)A BCD


    正确答案:C

  • 第21题:

    连续执行以下命令之合,最后一条命令的输出结果是______。SETEXACTOFFX=“A”?HF(“A”;X,X-“BCD”,X+“BCD”)

    A.A

    B.BCD

    C.ABCD

    D.ABCD


    正确答案:C

  • 第22题:

    下列程序段的输出结果是_____。

    cout < < fixed < < 509.123456789 < < endl;


    正确答案:123457
    123457 解析:fixed的意义是在小数点后保留6位,所以 fixed输出为509.123457。

  • 第23题:

    单选题
    设有char *s="ABCDE";cout<< strlen(s)<< endl;输出结果是()
    A

    6

    B

    5

    C

    4

    D

    1


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