更多“现有int a,*b;,b=&a;,则下列运算错误的是()。”相关问题
  • 第1题:

    下列关于单目运算符++、--的叙述中正确的是

    A.它们的运算对象可以是任何变量和常量

    B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

    C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

    D.它们的运算对象可以是char型变量、int型变量和float型变量


    正确答案:D
    解析:“++”和“--”运算符都是单目运算符,其运算对象可以是整型变量,也可以是实型变量,但不能是常量或表达式。当运算对象是字符型时,系统自动将其转换成该字符所对应的ASCII码值。

  • 第2题:

    现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是

    A.p=&a;

    B.q=&b;

    C.p=q;

    D.p=a;


    正确答案:D

  • 第3题:

    在下列叙述中,正确的一条是( )

    A.语句int *pt中的*pt是指针变量名

    B.语句"int *p=a;"等价于"int *p;p=&a[0];”

    C.运算符*和&都是取变量地址的运算符

    D.已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值


    正确答案:D

  • 第4题:

    在某类的公共部分有声明string operator++( );和string operator++(int);则说明

    A.string operator++( );是前置自增运算符声明

    B.string( )perator++( );是后置自增运算符声明

    C.string operator++(int);是前置自增运算符声明

    D.两条语句无区别


    正确答案:A
    解析:在重载单操作符的过程中,++既可以是前缀运算符,又可以是后缀运算符,C++规定重载后缀++时必须多一个虚拟参数int,则不带虚拟参数int的为前缀运算符。

  • 第5题:

    有如下的运算符重载函数定义:double operator+(int i,int k){return double(i+k);}但定义有错误,对这个错误最准确的描述是( )。

    A.#NAME?

    B.两个int型参数的和也应该是int型,而这里将+的返回类型声明为double

    C.没有将运算符重载函数声明为某个类的友元

    D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符


    正确答案:D
    解析:此题考查的是运算符的重载。c++语言规定,不能作为非成员函数重载的运算符有=、[]、()、->以及所有的类型转换运算符,故选项A)错误;运算符重载对返回值类型没有限制,故选项B)错误;C++并不强制要求非成员重载的运算符一定是某个类的友元,所以选项C)错误:题目中重载的“+”运算符的两个参数都是int类型,而C++已经提供了求两个血型数据之和的运算符+,编译器无法区分应该调用哪一个,所以应该选择选项D)。

  • 第6题:

    已知有定义:

    const int D=5;

    int i=1;

    double f=0.32;

    char c=15;

    则下列选项错误的是

    A.++i;

    B.D--;

    C.c++;

    D.--f;


    正确答案:B
    解析:“++”,“--”运算符不能用于常量。

  • 第7题:

    下列运算符函数中肯定不属于类FunNumber的成员函数的是( )。 A.int operator一(FunNumber);S

    下列运算符函数中肯定不属于类FunNumber的成员函数的是( )。

    A.int operator一(FunNumber);

    B.FunNumber operator一;

    C.FunNumber operator一(int);

    D.int operator一(FunNumber,FunNumber);


    正确答案:D
    本题考查运算符重载的一些规则:①一般情况下,单目运算符最好重载为类的成员函数,双目运算符则最好重载为类的友元函数;②双目运算符=、、[]、->不能重载为类的友元函数;③类型转换函数只能定义为一个类的成员函数,而不能定义为类的友元函数;④若一个运算符的操作需要修改对象的状态,选择重载为成员函数较好;⑤若运算符所需的操作数(尤其是第一个操作数)希望有隐式类型转换,则只能选用友元函数;⑥当运算符函数是一个成员函数时,最左边的操作数(或者只有最左边的操作数)必须是运算符类的一个类对象(或者是对该类对象的引用);如果左边的操作数必须是一个不同类的对象,或者是一个内部类型的对象,该运算符函数必须作为一个友元函数来实现。所以答案为D。

  • 第8题:

    av9功能是求整形数组中的前若干个元素的平均值,设数组元素个数最多不超过则下列函数说明语句错误的是( )。

    A.int avg(int*a,int n);

    B.int avg(int a[lO],int n);

    C.int avg(int a,int n);

    D.int avg(int a[],int n);


    正确答案:C
    对于数组参数传递时C语言中内部都使用指针进行传递,而C选项中形参为两个int型的值,所以答案选择C。

  • 第9题:

    设有定义int a=1;float f=1.2;char C=a;,则下列表示错误的是( )。 A.++a;B.f一一;SXB

    设有定义int a=1;float f=1.2;char C=a;,则下列表示错误的是( )。

    A.++a;

    B.f一一;

    C.c++;

    D.8++;


    正确答案:D
    ++、--运算符不能用于常量表达式。

  • 第10题:

    有如下的运算符重载函数定义:double operator+(int i,int k){return double (i+ k);}但定义有错误,对这个错误最准确的描述是( )。

    A.“+”只能作为成员函数重载,而这里的“+”是作为非成员函数重载的

    B.两个int型参数的和也应该是int型,而这里将“+”的返回类型声明为double

    C.没有将运算符重载函数声明为某个类的友元

    D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符


    正确答案:D

  • 第11题:

    设a为int变量,b为float变量,则a+b的运算结果为()型数据。


    正确答案:double

  • 第12题:

    单选题
    avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是(  )。
    A

    int avg(int *a,int n);

    B

    int avg(int a[10],int n);

    C

    int avg(int a,int n);

    D

    int avg(int a[],int n);


    正确答案: C
    解析:
    C项,函数第一个形参的数据类型是int型,只能传递单个整型数值。而a表示整型数组的首地址,不能直接传递给它,因此不符合题目要求,声明不正确。答案选择C选项。

  • 第13题:

    设有以下程序段:

    int a[5]={0},*p,*q;

    p=a;

    q=a;

    则下列选项目,合法的运算是

    A.p+q;

    B.p-q

    C.p*q

    D.p%q


    正确答案:B
    解析:本题考核指针的运算。C++语言中,指向同一字符串的指针之间可以,也只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。

  • 第14题:

    现有如下程序段

    #include "stdio.h"

    int aa(int x,int y);

    main()

    {int a=24,b=16,c;

    c=aa(a,b);

    printf("%d\n",c);}

    int aa(int x,int y)

    {int w;

    while(y)

    {w=x%y;

    x=y;

    y=w;}

    return x;}

    则程序段的输出结果是

    A.8

    B.7

    C.6

    D.5


    正确答案:A

  • 第15题:

    若要对a进行++运算,则a应具有下面说明

    A.int a[3][2];

    B.char*a[]{"12","ab"};

    C.char(*a)[3];

    D.int b[10],*a=b;


    正确答案:A
    解析:左移1位,相当于乘以2,题中的x的值是一个八进制,转换为+进制数是32,再乘以2,x的值为64,以%。八进制形式输出,显示为100。

  • 第16题:

    设有定义语句:int a=12;,则表达式a*=2+3的运算结果是______。


    正确答案:60
    60 解析:本题考核C++运算符运算优先级和结合性。表达式"a*=2+3,"先计算“2+3”得到5,然后计算a*=5,得到a的值为60。

  • 第17题:

    设有以下程序段: int a[5]={0},*p,*q; p=a; q=a; 则下列选项中,合法的运算是

    A.p*q

    B.p-q

    C.p*q

    D.p%q


    正确答案:B
    解析:本题考核指针的运算。 C++语言中,指向同一字符串的指针之间可以,也只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。

  • 第18题:

    avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是

    A)int avg(jnt *a,int n.);

    B)int avg(int a[10],int n);

    C)int avg(int a,int n);

    D)int avg(int a[ ],int n);


    正确答案:C
    【答案】C
    【知识点】数组名作为函数参数的使用方法
    【解析】C语句中的两个形参均为整形变量不能接收数组元素中的值。

  • 第19题:

    若有定义“int a=5,b=7;”,则表达式a%-(b%2) 运算后,a的值为( )。A.0B.1C.11S

    若有定义“int a=5,b=7;”,则表达式a%-(b%2) 运算后,a的值为( )。

    A.0

    B.1

    C.11

    D.3


    正确答案:A
    本题考查“%”运算符的使用。运算符“%”是整数除法的余数。本题中表达式a%=(b%2)等价于a=a%(b%2)=5%(7%2)=5%1=0。

  • 第20题:

    若变量已正确定义为int型,要通过语句:scanf(”%d,%d,%d”,&a,&b,&C.;给a赋值l、给b赋值2、给

    若变量已正确定义为int型,要通过语句:scanf(”%d,%d,%d”,&;a,&;b,&C.;给a赋值l、给b赋值2、给C赋值3,以下输入形式中错误的是( )。(注:口代表一个空格符)


    正确答案:D
    scanf()的格式控制串可以使用其他非空白字符,如本题中的逗号,但在输入时必须输入这些字符;以保证匹配。所以逗号必须输入。

  • 第21题:

    设有以下程序段:int a[5]={0),*p,*q;p=a;q=a;则下列选项中,合法的运算是( )。

    A.p+q

    B.p-q

    C.p*q

    D.p%q


    正确答案:B

  • 第22题:

    现有一个int类型的整数和一个double类型的数进行加法运算,则得到的结果类型为:

    A.int类型

    B. double类型

    C. float类型

    D. long类型


    正确答案:B

  • 第23题:

    赋值运算符常用的运算符,下列赋值正确的是()。

    • A、int a=1;
    • B、char b=’a’;
    • C、float c=3.1;
    • D、int a=b=1;

    正确答案:A,B,C

  • 第24题:

    填空题
    设a为int变量,b为float变量,则a+b的运算结果为()型数据。

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