更多“有如下程序段:其中会产生编译错误的语句是(  )。”相关问题
  • 第1题:

    有如下程序段int i=0,j=1;int &r=i; //①r=j; //②int*p=&i; //③*p=&r; //④其中会产生编译错误的语句是

    A.④

    B.③

    C.②

    D.①


    正确答案:A
    解析:本题考查的知识点是:指针和引用。指针声明的一般形式为: 数据类型>*声明的指针变量名>;
    引用声明的一般形式为:
    数据类型>&声明的引用变量名>=被引用的变量名>;
    引用声明时必须初始化,而指针则可有可无。通过引用来改变其所引用的对象,直接赋值即可,而通过指针改变其所指对象则须使用一元运算符“*”。在本题中,语句①就是一条合法的引用声明语句,使变量i被r所引用。语句②通过引用r将变量j的值赋给变量i。语句③声明了指针变量p,并初始化指向变量i。而语句④中的*p代表了变量i,欲将&r(变量r的地址值)赋给*p(变量i),这会引起VC6编译器产生一条类型不匹配的错误“无法将类型int*转换为int”。故本题应该选择A。

  • 第2题:

    对下列程序的叙述中,正确的是( )。 A.第1行会产生编译错误B.第6行会产生编译错程SXB

    对下列程序的叙述中,正确的是( )。

    A.第1行会产生编译错误

    B.第6行会产生编译错程

    C.第6行会产生运行错误

    D.程序正常运行


    正确答案:D
    程序正常运行打印thisisrun()。用Thread类的构造方法Thread(Runnabletarget)创建线程对象时,构造方法中的参数必须是-个具体的对象,该对象称作线程的目标对象,创建的目标对象的类必须实现Runna-ble接口。

  • 第3题:

    有如下程序:

    #include<iostream>

    #include<cmath>

    using std::cout;

    class Point{

    public:

    friend double distance(const Point &p); //P距原点的距离

    Point(int xx=0,int yy=0):x(xx),Y(YY){}//①

    private:

    int x,y;

    };

    double distance(const Point &p){ //②

    return sqrt(P.x*P.x+P.y*P.y);

    }

    int main(){

    Point p1(3,4);

    cout<<distance(p1);

    return 0; //③

    }

    下列叙述中正确的是

    A.程序编译正确

    B.程序编译时语句①出错

    C.程序编译时语句②出错

    D.程序编译时语句③出错


    正确答案:A

  • 第4题:

    有如下程序段: includedefine Max(a,b) a>b?a:bmain(){int a=5,b=6,c=4,d;d=c+Max(a,

    有如下程序段: #include<stdio.h> #define Max(a,b) a>b?a:b main() { int a=5,b=6,c=4,d; d=c+Max(a,b); printf("%d",d); } 其输出结果为______。

    A.10

    B.5

    C.6

    D.编译错误


    正确答案:B
    解析:在C语言中,宏定义是直接替换的,所以在c+a>b?a:b这个条件表达式中,c+a>b为真,所以用a的值作为整个表达式的值,而a的值为5,所以整个表达式的值为5。

  • 第5题:

    有以下定义语句,编译时会出现编译错误的是( )。

    A.A

    B.B

    C.C

    D.D


    正确答案:A
    A)选项:再能将一个字符串赋值给一个字符变量,所以选择A)。

  • 第6题:

    下面各项语句中会产生编译错误的是( )。

    A.float F=4096.0 F;

    B.double D=4096.0;

    C.byte B=4096;

    D.char C=4096;


    正确答案:C
    解析:该题考查对基本数据类型的定义及具取值范围的掌握。选项A正确,Java语言默认的实型数的形式是double类型的,要把它赋给float类型的变量,必须在实型数后面加上f或F字母;选项B是正确的:选项C是错误的, 4069已经超出了byte类型所能容许的范围 -128~127;选项D是正确的。因为在Java语言里,字符是用双字节表示的,4096在它能允许的范围之内。故本题答案是C。

  • 第7题:

    对下列程序的叙述中,正确的是( )。 A.第1行会产生编译错误B.第6行会产生编译错误SXB

    对下列程序的叙述中,正确的是( )。

    A.第1行会产生编译错误

    B.第6行会产生编译错误

    C.第6行会产生运行错误

    D.程序正常运行


    正确答案:D
    程序正常运行打印thisisrun()。用Thread类的构造方法Thread(Runnabletarget)创建线程对象时,构造方法中的参数必须是一个具体的对象,该对象称作线程的目标对象,创建的目标对象的类必须实现Runnable接口。

  • 第8题:

    下面各项语句中会产生编译错误的是( )。

    A.float F=4096.0F;

    B.double D=4096.0;

    C.byte B=4096;

    D.char C=4096;


    正确答案:C
    解析:该题考查对基本数据类型的定义及其取值范围的掌握。选项A正确,Java语言默认的实型数的形式是double类型的,要把它赋给float类型的变量,必须在实型数后面加上f或F字母;选项B是正确的;选项C是错误的, 4069已经超出了byte类型所能容许的范围 -128~127;选项D是正确的。因为在Java语言里,字符是用双字节表示的,4096在它能允许的范围之内。故本题答案是C。

  • 第9题:

    有如下程序: Class Base{ publiC: int data; }; Class Derivedl:publiC Base{}; Class Derived2:proteCted Base{}; int main( ) { Derivedl dl; Derived2 d2; dl.data=0;//① d2.data=0;//② retum 0; } 下列关于程序编译结果的描述中,正确的是( )。

    A.①②皆无编译错误

    B.①有编译错误,②无编译错误

    C.①无编译错误,②有编译错误

    D.①②皆有编译错误


    正确答案:C
    本题考查公用继承和保护继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有、稿.受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有。本题中Derived1公用继承Base.所以①编译正确,Derived2保护继承Base,所以②编译不正确。

  • 第10题:

    如下程序编译时发生错误,错误的原因是show函数实现语句错误,则正确的语句应该为______。

    include<iostream.h>

    class test

    {

    private:

    int hum;

    public:

    test(int);

    void show( );

    };

    test::test(int n){num=n;}

    test::show( ){cout<<num<<endl;}

    void main( )

    {

    test T(10):

    T.show( );

    }


    正确答案:void test::show( ){coutnumendl;}
    void test::show( ){coutnumendl;} 解析:show成员函数的声明和实现不一致,即实现部分应有void修饰符,这样才能编译通过。

  • 第11题:

    关于以下程序段的说法正确的是()。 1.publicclassMyar{ 2.publicstaticvoidmain(Stringargv[]){ 3.int[]i=newint[5] 4.System.out.println(i[5]) 5.}

    • A、第2行编译出错
    • B、第4行编译出错
    • C、编译时产生错误
    • D、编译时没有产生错误,运行时发生异常

    正确答案:D

  • 第12题:

    单选题
    关于以下程序段的说法正确的是()。 1.publicclassMyar{ 2.publicstaticvoidmain(Stringargv[]){ 3.int[]i=newint[5] 4.System.out.println(i[5]) 5.}
    A

    第2行编译出错

    B

    第4行编译出错

    C

    编译时产生错误

    D

    编译时没有产生错误,运行时发生异常


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

  • 第13题:

    对于已经被定义过可能抛出异常的语句,在编译时()。

    A.必须使用try/catch语句处理异常

    B.如果程序错误,则必须使用try/catch语句处理异常

    C.不使用try/catch语句会出现编译错误

    D.不使用try/catch语句不会出现编译错误


    正确答案:B

  • 第14题:

    有如下程序段,其中会产生编译错误的语句是 inti=0,j=1; int &r=i; //① r=j; //② int * p=&i; //③ * p=&r; //④

    A.④

    B.③

    C.②

    D.①


    正确答案:A
    解析:赋值运算符不能将int地址(指针)赋值给int变量。 

  • 第15题:

    有如下程序:

    #include<iostream>

    using namespace std;

    class Music{

    public:

    void setTitle(char*str){strcpy(title,str);}

    protected:

    char type[10];

    private:

    char title[20];

    };

    class Jazz:public Music{

    public:

    void set(char*str){

    strcpy(type,”Jazz”); //①

    strcpy(title,str); //②

    }

    };

    下列叙述中正确的是

    A.程序编译正确

    B.程序编译时语句①出错

    C.程序编译时语句②出错

    D.程序编译时语句①和②都出错


    正确答案:C
    解析:数据成员title在基类中声明为私有成员,派生类不能访问基类中的私有成员,故语句②在编译时出错。本题选C。

  • 第16题:

    下列程序编译时发现pb->f(10);语句出现错误,其原因是______。 include class Base {

    下列程序编译时发现pb->f(10);语句出现错误,其原因是______。

    include<iostream.h>

    class Base

    {

    public:

    void f(int x){cout<<"Base:"<<x<<endl;)

    };

    class Derived:public Base

    {

    public:

    void f(char*str){cout<<"Derived:"<<str<<endl;}

    };

    void main(void)

    {

    Derived*pd=new Derived;

    Pd->f(10);

    }


    正确答案:数据类型不匹配
    数据类型不匹配 解析:pd为派生类Derived的指针,指向派生类的成员函数f(char*Str),不指向基类的f(intx)。

  • 第17题:

    有如下程序段: int i=0,J=1; nt&r=i;//④ ’ r=j;//② int * P=&i;//③ * P=&r;//④ 其中会产生编译错误的语句是( )。

    A.④

    B.③

    C.②

    D.①


    正确答案:A
    本题考查指针和引用。①为引用,使用正确;④中&r表示一个地址,而*P已经是-一个值了,不能将一个指针赋值给一个值,所以编译错误。

  • 第18题:

    阅读以下程序

    该程序在编译时产生错误,其出错原因是( )。

    A.定义语句出错,case是关键字,不能用作用户自定义标识符

    B.定义语句出错,printF不能用作用户自定义标识符

    C.定义语句无错,scanf不能作为输入函数使用

    D.定义语句无错,scanf不能输出case的值


    正确答案:A
    用户自定义标识符不能使用关键字,Case是关键字之一,所以选择A)。

  • 第19题:

    现有如下程序段,此程序段编译有错误,则程序段的错误出在includemain(){int a=30,b=40,

    现有如下程序段,此程序段编译有错误,则程序段的错误出在 #include<stdio.h> main() { int a=30,b=40,c=50,d; d=a>30? b:c; swish(d) { case a: Printf("%d,",a); case b: printf("%d,",b); case c: printf("%d,",c); default printf("#");}}

    A.default:printf("#");这个语句

    B.d=a>30? b:c;这个语句

    C.case a:printf("%d,",a);case b:printf("%d,",b);case c:printf("%d,",c);这三个语句

    D.switch(d)这个语句


    正确答案:C
    解析:case也是关键字,与其后面的常量表达式合称case语句标号,常量表达式的类型必须与switch后的表达式类型相同。这个程序段主要考查的是case后是常量表达式。

  • 第20题:

    有以下定义语句,编译时会出现编译错误的是( )。 A)B)

    A.

    B.


    正确答案:C
    aa是字符串,字符串的表示要用双引号,可以赋值给字符数组和字符指针变量,但字符串不能赋值给字符变量,只能给字符变量赋值单个字符。

  • 第21题:

    有如下程序段:include define Max(a,b) a>b?a:bmain(){int a=5,b=6,c=4,d;d=c+Max(a,

    有如下程序段: #include <stdio.h> #define Max(a,b) a>b?a:b main() { int a=5,b=6,c=4,d; d=c+Max(a,b) ; printf("%d",d) ; } 其输出结果为______。

    A.10

    B.5

    C.6

    D.编译错误


    正确答案:B
    解析:在C语言中,宏定义是直接替换的,所以在c+a>b?a:b这个条件表达式中,c+a>b为真,所以用a的值作为整个表达式的值,而a的值为5,所以整个表达式的值为5。

  • 第22题:

    某程序对一组源语言语句进行编辑,以便发现语法错误,同时将语句翻译成目标程序,该程序是:()

    • A、翻译程序
    • B、编译程序
    • C、调式程序
    • D、加密程序

    正确答案:B

  • 第23题:

    下列语句哪一个正确()

    • A、Java程序经编译后会产生machine code
    • B、Java程序经编译后会产生byte code
    • C、Java程序经编译后会产生DLL
    • D、以上都不正确

    正确答案:B

  • 第24题:

    单选题
    有如下程序段:其中会产生编译错误的语句是(  )。
    A

    B

    C

    D


    正确答案: A
    解析:
    语句①是合法的引用声明语句,变量i被r引用;语句②通过引用r将变量j的值赋给变量i;语句③声明了指针变量p,并初始化指向变量i;语句④中*p代表了变量i的值,是数值常量,不能放在赋值表达式的左端。