更多“单选题若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为()A 4B 5C 6D 7”相关问题
  • 第1题:

    若类A和类B的定义如下

    class A

    {

    int i,j;

    public:

    int geti( )

    {

    return i;

    }

    };

    class B:public A

    {

    int k:

    public:

    void make( )

    {

    k=i*j;

    }

    };

    则上述定义中非法的语句是

    A.k=i*j

    B.int k;

    C.return i;

    D.void make()


    正确答案:A
    解析:本题考核派生类的定义和访问权限。变量i和j都是基类A的私有变量,它们是隐蔽的,在派生类中不能直接访问。

  • 第2题:

    有以下程序: include using namespace std; int f(int); int main() {int i;for(i=0;

    有以下程序:

    include <iostream>

    using namespace std;

    int f(int);

    int main()

    {

    int i;

    for(i=0;i<5;i++)

    cout<<f(i)<<" ";

    return 0;

    }

    int f(int i)

    {

    static int k=1;

    for(;i>0;i--)

    k+=i;


    正确答案:1 2 5 11 21
    1 2 5 11 21 解析:函数f()中定义了一个内部静态变量k,其作用域仍在定义它的函数内。但该类型变量采用静态存储分配,当函数执行完,返回调用点时,该变量并不撤销,其值将继续保留,若下次再进入该函数时,其值仍然存在。内部静态变量有隐含初值0,并且只在编译时初始化一次。

  • 第3题:

    下列程序执行之后,输出的结果是______。 public class exl0 { public static void main(String[] args) { int j=0; a1: for (int i=3;i>0; i--) { j+=i; a2: for (int k=l; k<3; k++) { j*=k; if(i==k) break a1; } } System.out.println(j); } }

    A.18

    B.16

    C.14

    D.0


    正确答案:B

  • 第4题:

    有以下程序:includeusing namespace std;class MyClass{public: MyClass(); ~MyClass

    有以下程序: #include<iostream> using namespace std; class MyClass { public: MyClass(); ~MyClass(); void SetValue(int val); private: static int i; }; int MyClass::i=0; MyClass::MyClass() { i++; cout<<i; } MyClass::~MyClass() { i--; cout<<i; } void MyClass::SetValue(int val) { i=val; } int main() { MyClass*my[2]; int k; for(k=0;k<2;k++) my[k]=new MyClass; for(k=0;k<2;k++) delete my[k]; return 0; } 运行后的输出结果是( )。

    A.1210

    B.1100

    C.1234

    D.输出结果不确定


    正确答案:A
    解析:类MyClass中变量i是静态数据成员,它被MyClass类的所有对象共享,但它不属于任何一个对象,它的作用域是类范围。程序i是用来统计类MyClass所创建对象的个数,每创建一个对象i加1,每删除MyClass类对象i减1。

  • 第5题:

    定义数组char a[]=}'0','1','2','3');,则将该数组中元素按反序转换成整数,正确的程序段是______。

    A.int k=0,i; for(i=0;i<4;i++) k=k*10+a[i]-48;

    B.int k=0,i; for(i=3;i>=0;i--) k=k*10+a[i]-'0';

    C.int k=0,i; for(i=3;i>=0;i--) k=k+a[i]-'0';

    D.int k,i; for(i=3;i>=0;i--) k=k*10+a[i]-'0';


    正确答案:B
    解析:将字符数组中的元素按反序转换成整数,数组第一个元素应当是四位整数的个位,依次类推,字符数字转换为数字的基本方法是将该字符的ASCII码值减去字符0的ASCII码值,程序的输出结果是3210。

  • 第6题:

    若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为()

    A.4

    B.5

    C.6

    D.7


    参考答案:C

  • 第7题:

    下列会出错的代码是______。 (1) public void modify( ){ (2) int I,j,k; (3) i=100; (4) while(i>0){ (5) j=i*2; (6) System.out.println("The value of j is"+j); (7) k=k+1; (8) } (9) i--; (10) }

    A.第4行

    B.第6行

    C.第7行

    D.第8行


    正确答案:C
    解析: 由于在Java中声明变量并未分配内存空间,必须通过初始化才能使用变量。在第7行中,变量k并没有进行初始化,所以不能使用。

  • 第8题:

    已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、i的值为2、k的值为3,以下选项中正确

    已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、i的值为2、k的值为3,以下选项中正确的输入语句是

    A.scanf(“%2d%2d%2d”,&i,&j,&k);

    B.scanf(“%d %d %d”,&i,&j,&k);

    C.scanf(“%d,%d,%d”,&i,&j,&k);

    D.scanf(“i=%d, j=%d,k=%d”,&i,&j,&k);


    正确答案:C
    解析:本题考查的知识点是输入函数scanf()基本用法。使用该语句时,要求除格式控制符以外的字符都要原样输入,“,”为非格式符,要原样输入。选项A,输入格式描述为“%2d%2d%2d”,输入要用空格隔开,不满足键盘输入1,2,3的条件,故A错误:选项B中,输入格式描述符为“%d%d%d”,输入也要用空格隔开,故错误:选项D中,输入格式描述符为“i=%d,i=%d,k=%d”,应该从键盘输入i=1,j=2,k=3,才能使得i,j,k的值为1,2,3,故选项D错误。4个选项中C正确。

  • 第9题:

    若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为()

    • A、1
    • B、0
    • C、6
    • D、7

    正确答案:B

  • 第10题:

    若有int i=10, j=0;则执行完语句 if (j=0)i++; else i--; i的值为11.


    正确答案:错误

  • 第11题:

    单选题
    若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为()
    A

    1

    B

    0

    C

    6

    D

    7


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

  • 第12题:

    单选题
    有以下程序:#include void fun(int *x,int s,int n){ int i; for(i=s;i>=n;i--)  *(x+i+3)=*(x+i);}main(){ int m[]={0,1,2,3,4,5,6,7,8,9},k; fun(m,10-4,3); for(k=0;k  printf("%d",m[k]);}程序的运行结果是(  )。
    A

    0123456345

    B

    0123453456

    C

    0123456666

    D

    0123454569


    正确答案: C
    解析:
    程序的执行过程为:定义数组m,并为其赋初值,数组长度为10。调用函数fun(m,6,3)。函数实现对数组m[6]~m[9]的重新赋值,令m[9]=m[6],m[8]=m[5],m[7]=m[4],m[6]=m[3],for循环结束之后数组为m= {0,1,2,3,4,5,3,4,5,6}。依次输出数组元素,答案选择B选项。

  • 第13题:

    若有以下定义及初始化语句:

    int i=100;

    int *ip=& i;

    int k=*ip;

    并假设整型数i的地址为0x12345678,指针中的地址为0x21000000,则k的值为【 】。


    正确答案:100
    100

  • 第14题:

    已知数组a中有n个元素,下列语句将数组a中从下标x1开始的k个元素移动到从下标x2开始的k个元素中,其中O<=xl<x2<n,x2+k<n,请将下列语句补充完整。

    For(int i=x1+k-1;i>=x1;i--)

    a[______]=a[i];


    正确答案:X2+k-1
    X2+k-1 解析:此题考查的是数组的操作。a[i]表示从下标x1开始的第i个元素,若为第一次循环,则i为xt+k-1,按照题目将数组a中从下标x1开始的k个元素移动到从下标x2开始的k个元素中的要求,所以将a[i]赋值给下标为X2+k-1的元素。

  • 第15题:

    若类A和类B的定义如下: class A { int i,j; public: int geti () { return i; } }; class B : public A { int k; public: void make () { k=i*j; } }; 则上述定义中非法的语句是

    A.k=i*j;

    B.int k;

    C.return i;

    D.void make()


    正确答案:A
    解析:本题考核派生类的定义和访问权限。变量i和j都是基类A的私有变量,它们是隐蔽的,在派生类中不能直接访问。

  • 第16题:

    下列语句序列执行后,j的值是( )。 int j=9,i=6; while(i-->3)--j;

    A.5

    B.6

    C.7

    D.8


    正确答案:B

  • 第17题:

    已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确

    已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是

    A.scanf(“%2d%2d%2d”,&i,&j,&k);

    B.scanf(“%d%d%d”,&i,&j,&k);

    C.scant(“%d,%d,%d”,&i,&j,&k);

    D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);


    正确答案:C
    解析:输入函数scanf使用该语句时,要求除格式控制符以外的字符都要原样输入,“,”为非格式符,要原样输入。选项A,输入格式描述为“%2d%2d%2d”,输入要用空格隔开,不满足键盘输入1,2,3的条件;选项B中,输入格式描述符为“%d %。 d %d”,输入也要用空格隔开;选项D中,输入格式描述符为“i=%d,j=%d,k=%d”,应该从键盘输入i=1,j=2,k=3,才能使得i,j,k的值为1,2,3。

  • 第18题:

    若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为()

    A.1

    B.0

    C.6

    D.7


    参考答案:B

  • 第19题:

    现有定义int k=1;则执行语句while(++k<4);后,k的值为( )


    正确答案:A
    while循环是先判断循环条件之后再进入循环体。这个题目的循环体是空语句,每次做的仅仅是判断循环的条件,由于++运算优先于,所以每次都先++,后比较。

  • 第20题:

    设i、j、k均为int型变量,则执行完for(i=0,j=10;i<=j;i++,j--) k=i+j;语句后,k的值为______。


    正确答案:10
    10 解析:该for语句以i为0、j为10初始化,循环条件是i=j,每次循环后i增1、j减1,循环体是将i与j的和赋给k。这样变量k将保存的是最后一次赋给它的值。一次循环后i为1、j为9,二次循环后i为2、j为 8,……,五次循环后i为5、j为5,继续第六次循环,将i与j的和10存于k后,i为6、j为4,结束循环。所以循环执行后k为10。

  • 第21题:

    若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为()

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

    正确答案:C

  • 第22题:

    Given the following code:     1) public void modify() {     2) int i, j, k;     3) i = 100;     4) while ( i > 0 ) {     5) j = i * 2;  6) System.out.println (" The value of j is " + j );     7) k = k + 1;     8) i--;     9) }  10) }  Which line might cause an error during compilation?()   

    • A、 line 4
    • B、 line 6
    • C、 line 7
    • D、 line 8

    正确答案:C

  • 第23题:

    单选题
    若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为()
    A

    4

    B

    5

    C

    6

    D

    7


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

  • 第24题:

    单选题
    Given the following code:     1) public void modify() {     2) int i, j, k;     3) i = 100;     4) while ( i > 0 ) {     5) j = i * 2;  6) System.out.println (" The value of j is " + j );     7) k = k + 1;     8) i--;     9) }  10) }  Which line might cause an error during compilation?()
    A

     line 4

    B

     line 6

    C

     line 7

    D

     line 8


    正确答案: B
    解析: 这个问题在前面有关变量的类型及其作用域的问题中讨论过,局部变量在使用前必须显式初始化,而代码中的变量k在使用前没有。