若定义int i,a,k,s; 是死循环的是A.for (i=1;;i++) { if(i=-10) break; s=s+i; }B.k=0; do { k++; }while(k>0);C.i=0; while (1) { i++; if(i==20) break; }D.a=1; while(a<10) { if(a<5) continue; a++; }

题目

若定义int i,a,k,s; 是死循环的是

A.for (i=1;;i++) { if(i=-10) break; s=s+i; }

B.k=0; do { k++; }while(k>0);

C.i=0; while (1) { i++; if(i==20) break; }

D.a=1; while(a<10) { if(a<5) continue; a++; }


相似考题
更多“若定义int i,a,k,s; 是死循环的是”相关问题
  • 第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题:

    下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数: 876 675 896 101 301 401 980 431 451 777 #include<conio.h> #include<stdio.h> int fun(int *s,int t,int *k) { int i; *k=0; for(i=0;i<t;i++) if(s[*k]<s[i])*k=i; return s[*k];} main() { int a[10]={876,675,896,101,301,401,980,431,45l,777},k; clrscr(); fun(a,10,&k); printf("%d,%d\n",k,a[k]);} 则输出结果为

    A.7,431

    B.6

    C.980

    D.6,980


    正确答案:D
    解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。

  • 第3题:

    若类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的私有变量,它们是隐蔽的,在派生类中不能直接访问。

  • 第4题:

    下列程序是用来判断数组中特定元素的位置所在,则输出结果为includeinclude

    下列程序是用来判断数组中特定元素的位置所在,则输出结果为 #include<conio.h> #include<iostream.h> int fun(int * s,int t,int * k) { int i; *k=0; for(i=0;i<t;i++) if(s[ * k] <s[i] ) *k=i; retum s[ * k] ;} void main( ) { int a[10] ={876,675,896,101,301,401,980,431,451,777},k; fun(a,10,&k) ; cout < < k < < ',' < < a[k] ;}

    A.7,431

    B.6

    C.980

    D.6,980


    正确答案:D
    解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应认为
    * k的值为数组中的某一下标值,即 * k=0。

  • 第5题:

    主程序调用findmax函数求出数组中最大元素在数组中的下标,( )中需填写的内容是。 #include<stdio.h> findmax(int*s,int t,int*k) { int p; for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])( );} main() { int a[10],i,k; for(i=0;i<10;i++)scanf("%d",&a[i]); findmax(a,10,&k); printf("%d%d\n" ,k,a[k]);}

    A.k=p

    B.*k=p

    C.k=p-s

    D.*k=p-s


    正确答案:B
    解析:数组元素可以通过数组首地址和下标的方式来引用,数组元素的下标是从0开始的,也可以将数组首地址赋给一个指针变量,通过指针和下标的方式来引用数组元素。注意:通过数组的首地址引用数组元素。

  • 第6题:

    有以下程序 include int fun(int (*s)[4],int n,int k) {int m,i;

    有以下程序 #include <stdio.h> int fun(int (*s)[4],int n,int k) {int m,i; m=s[0][kl; for(i=1;i<n;i++) if(s[i][k]>m) m=s[i][k]; return m; } main() { int a[4][4]={{1,2,3,4},{11,12,13,14}, {21,22,23,24}, {31,32,33,34}}; printf("%d\n",fun(a,4,0)); } 程序的运行结果是______。

    A.4

    B.34

    C.31

    D.32


    正确答案:C
    解析:在主函数中,定义并初始化了4行4列的二维数组a,并通过调用fun函数,将fun函数中指向一维数组的指针变量s指向了二维数组a的首地址,使得指针变量s与数组a共用同一存储单元。在fun函数中,通过for循环,求得了数组a第0列中最大的值,并赋给m返回主函数。由于数组a第0列的值分别为1、11、21、31,故其最大值是31。

  • 第7题:

    有下列程序: include void fun(int * s,int n1,int n2) { int i,j,

    有下列程序: #include <stdio.h> void fun(int * s,int n1,int n2) { int i,j,t; i=n1;j=n2; while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]);printf("\n"); } 程序的运行结果是( )。

    A.987654321

    B.4321098765

    C.5678901234

    D.987651234


    正确答案:C
    解析:从题目的主函数入手,定义了一个一维数组并赋韧值,接着调用函数fun(),fun()函数的功能为使数组中的元素逆序,当调用 fun(a,0,3),将实参传递给形参实现数组a中a[0]-a[3]这4个元素逆序;同理调用fun(a,4,9)是将上步排列好的a数组中a[4]-a[9]这6个元素逆序;调用fun(a,0,9)是将数组中a[0]-a[9]这10个元素在逆序,再用printf()函数输出结果为5678901234,故选项C)正确。

  • 第8题:

    在下列选项中,没有构成死循环的是( )。

    A.int i=100; while(1) { i==i0+1; if(i>100) break; }

    B.for(;;);

    C.int k=10000; do{k++;}while(k>10000);

    D.int s=36; while (s) --s;


    正确答案:D

  • 第9题:

    以下for语句中不是死循环的是A.for(int i=0;i<1;++i);B.for(int i=0;;++i);C.for(int i=1;i>0;++

    以下for语句中不是死循环的是

    A.for(int i=0;i<1;++i);

    B.for(int i=0;;++i);

    C.for(int i=1;i>0;++i);

    D.for(;;);


    正确答案:A

  • 第10题:

    若类A和类B的定义如下: class A { public: int i,j; void get(); }; class B:A{ int i, j; protected; int k; public: void make(); }; void B: :make()(k=i*j;} 则其中 ______ 是非法的表达式。

    A.void get();

    B.int k;

    C.void make();

    D.k=i*j;


    正确答案:D

  • 第11题:

    以下for语句中不是死循环的是A.for(int i=0;i<1;++i;B.for(int i=0;;++i;C.for(int i=1;i>0;++i;

    以下for语句中不是死循环的是

    A.for(int i=0;i<1;++i;

    B.for(int i=0;;++i;

    C.for(int i=1;i>0;++i;

    D.for(;;);


    正确答案:A
    解析:for循环的一般格式为for(初始化部分;终止条件判断部分;迭代部分){循环体;}说明如下:for循环开始时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。注意:在for语句中,如果省略了终止条件判断部分,并且在语句中没有break,或者是终止条件判断部分始终没有终止,都将出现死循环。注意:for循环语句可由while循环语句来代替。

  • 第12题:

    下面程序段不是死循环的是()

    • A、 int  j=100; while(1){j=j%100+2;if(j>100)break;}
    • B、 for( ; ; );
    • C、 int k=0; do{ ++k;}while(k>=0);
    • D、 int s=36; while(s);--s;

    正确答案:A

  • 第13题:

    #include <conio.h>

    #include <stdio.h>

    int fun(int *s, int t, int *k)

    { int i;

    *k=0;

    【15】

    if(s[*k]<s[i])*k=i;

    return【16】;

    }

    main()

    {

    int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;

    clrscr();

    fun(a, 10, &k);

    printf("%d, %d\n ", k, a[k]);

    }


    正确答案:
    for(i=0;i<t;i++);0

  • 第14题:

    以下程序的输出结果是( )。

    main

    { int i=0,S=0;

    for(;;)

    {

    if(i==3 ||i==5)continue;

    if(i==6)break;

    i++;

    s+=i:

    };

    printf("%d\n",s);

    }

    A.10

    B.13

    C.21

    D.程序陷入死循环


    正确答案:D
    当i一0时,两个if都不满足,所以都不执行,直接执行i++语句,此时i为1,S为l,返回for循环中;当i=1时,同样不执行两个if语句,执行i++后,i=2,s=3,返回for循环中;i=2时也不执行if语句,执行i++后,i=3,s=6,接着又执行for循环,此时符合第一个if语句,执行到continue时不再执行i++了,continue是跳出本次循环,接着下次循环。永远这样执行下去,i的值永远为3,故选择D选项。

  • 第15题:

    若类A和类B的定义如下:includeclass A{int i*j;public:int geti(){return i;}};class

    若类A和类B的定义如下: #include<malloc.h> 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(默认情况下,成员的属性为私有),所以表达式k=i*j是非法的。其余的访问权限都是许可的。

  • 第16题:

    下列程序是用来判断数组中特定元素的位置所在的。includeincludeint fun(int

    下列程序是用来判断数组中特定元素的位置所在的。 #include<conio.h> #include<stdio.h> int fun(int *s,int t,int *k) {int i; *k=0; for(i=0;i<t;i++) if(s[*k]<s[i])*k=i; returns[*k];} main() { int a[10]={876,675,896,101,301,401,980,431,451,777},k; fun

    A.7,431

    B.6

    C.980

    D.6,980


    正确答案:D
    解析: 本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。

  • 第17题:

    若类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的私有变量,它们是隐蔽的,在派生类中不能直接访问。

  • 第18题:

    下列各循环语句中,不是死循环的是( )。

    A.int i=100; while(1){ i=i%100+1; if(i==20) break; }

    B.int i,sum=0; for(i=1;;i++) sum=sum+1;

    C.int k=0; do{ ++k; }while(k>=0);

    D.int s=3379; while(s++%2+3%2) s++;


    正确答案:A
    解析:分析各个选项。选项A中,当变量i的值等于20时,会执行break;语句,即退出整个while循环体。所以选项A的循环语句不是死循环。其他各个选项的循环语句中,没有循环退出点,所以都是死循环。

  • 第19题:

    以下for语句中不是死循环的是A.for(int i=0;i<1;++);B.for(int i=0∷++);C.for(int i=1;i>0;++i);

    以下for语句中不是死循环的是

    A.for(int i=0;i<1;++);

    B.for(int i=0∷++);

    C.for(int i=1;i>0;++i);

    D.for( ;;);


    正确答案:A
    解析:for循环的一般格式为for(初始化部分;终止条件判断部分;迭代部分){循环体;}说明如下:for循环开始时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。注意:在for语句中,如果省略了终止条件判断部分,开且在语句中没有break,或者是终止条件判断部分始终没有终止,都将出现死循环。注意:for循环语句可由while循环语句来代替。

  • 第20题:

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

    A.4

    B.5

    C.6

    D.7


    参考答案:C

  • 第21题:

    下列程序段中,不是死循环的是_______。

    A.int i=100;

    B.unsigned k=0; while(1) do { { i=i%100+1; ++k if(i>=100)break; } } while(k>=0);

    C.for(;;);

    D.int s=3379; while(s++%2+s%2)s++;


    正确答案:A
    解析:当表达式为非0值时,执行while语句中的内嵌语句,可用break语句跳出循环,用continue语句结束本次循环。选项A不是死循环,当i=100时跳出循环。选项C为空循环语句。

  • 第22题:

    若类A和类B的定义如下: class A { int i,j; public: void get(); //… } ; class B:A//默认为私有派生 { int k; public: void make(); //… }; void B::make() { k=i*j; } 则上述定义中, ( )是非法的表达式。

    A.void get();

    B.int k;

    C.void make();

    D.k=i*j;


    正确答案:D

  • 第23题:

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

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

    正确答案:C

  • 第24题:

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

    4

    B

    5

    C

    6

    D

    7


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