更多“下列语句序列执行后,k 的值是()。 int x = 6, y = 10, k = 5; switch (x % y) { case 0: k = x * y; case 6: k = x / y; case 12: k = x - y; default: k = x * y - x; }”相关问题
  • 第1题:

    阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。

    [说明]

    下面的程序利用递归算法计算x和y的最大公约数。

    [函数2.1]

    main ( )

    { int x,y,k,t;

    scanf(" % d% d" , &x, &y);

    if(x>y) { t=x;x=y; y=t;}

    (1);

    while(k! =0){

    y=x;

    (2);

    k=y%x;

    }

    prinff( "% d" ,x); }

    [函数2.2说明]

    函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。

    [函数2.2]

    fun(ehar * str, char * substr)

    { int x,y,z;

    (3);

    for(x=0;str[ x] ! = '\O';x + + )

    for(y=x,z=0;sabstr[z] = =str[y];(4),y+ +)

    if((5)= ='\0') {

    num + +;

    break;

    }

    return(num);

    }


    正确答案:(1)k=y%x (2)x=k (3)int num=0 (4)z++ (5)substr[z+1]
    (1)k=y%x (2)x=k (3)int num=0 (4)z++ (5)substr[z+1] 解析:(1)~(2)使用递归算法计算x和y的最大公约数时,不妨令yx,如果y除x余数得。则x即为所求;否则令y←x,x←余数,继续上述判断。
    (3)此处应声明变量num并初始化;
    (4)次循环的功能是从str的第y个位置起与substr做比较,循环过程中y和z应同时增1;
    (5)若上面的循环重复执行,直到到达substr结束,则表示substr在str中出现一次。

  • 第2题:

    若a,b,c1,c2,x,y均是整型变量,正确的switch语句是______。

    A.switch(a+b); {case 1:y=a+b;break; case 0:y=a-b;break; }

    B.switch(a*a+b*b) {case 3; case 1:y=a+b;break; case 3:y=b-a;break; }

    C.switch a {case c1:y=a-b;break; case c2;x=a*b;break; default:x=a+b; }

    D.switch(a-b) {default:y=a*b;break; case 3:case 4:x=a+b;break; case 10:case11:y=a-b;break; }


    正确答案:D
    解析:由switch语句的格式排除A、C项,选项B中出现了两个相同的case标号。

  • 第3题:

    下列语句序列执行后,k的值是______。 int x=10,y=30; do{ y-=x; X++; }while(x++<y--);

    A.0次

    B.1次

    C.2次

    D.3次


    正确答案:C
    解析:题目中的循环为“直到型”循环,至少做1次,选项A可以被排除;程序首先执行循环体,得到x=11,y=20,然后计算终止条件值为true,而x和y的值分别改变为12和19:接着进行第二次循环,执行循环体,得到x=13,y=7,然后计算终止条件值为false,退出循环,因此执行了2次循环,答案为选项C。

  • 第4题:

    下列程序执行之后,将输出 public class exl9 { public static void main(string[] args) { int x=3; int y=7; switch(y/x){ case 1: y*=2; break; case 2: y*=3; break; case 3: y*=4; break; default: y=0; } System.out.print(y); } }

    A.28

    B.21

    C.14

    D.0


    正确答案:B

  • 第5题:

    有以下程序#include "stdio.h"#define M(x,y) (x)*(y) #define N(x,y) (x)/(y) main(){ int a=5,b=6,c=8,k; k=N(M(a,b),c); printf("%d\n",k);} 程序的运行结果是A.3 B.5C.6 D.8


    正确答案:A
    带参数的宏定义的一般形式为#define 宏名(参数表)字符串。题目中定义了两个宏“#define M(x,y) (x)*(y)”、“#define N(x,y) (x)/(y)”,即可以用M(x,y) 表示(x)*(y)运算,N(x,y)表示(x)/(y)运算。主函数main中关键是计算k=N(M(a,b),c),根据前述的宏,有k=a*b/c,计算后有k=30/8,取整后得到3。

  • 第6题:

    若a、b、c1、c2、x、y均是整型变量,则正确的switch语句是( )。

    A.switch(a+b); { casel:y=a+b;break; case0:y=a-b;break; }

    B.switch(a*a+b*b) { case 3: case 1:y=a+b;break; case 3:y=b-a;break; }

    C.switch a {case c1:y=a-b;break; case c2:x=a*d;break; default:x=a+b; }

    D.switch(a-b) {default:y=a*b;break; case 3:case 4:x=a+b;break; case 10:case 11:y=a—b;break; }


    正确答案:D
    解析:switch语句后不能有分号,故选项A错误;switch语句中的常量不能在分支重复出现,故选项B错误;选项C中, switch后的表达式必须要加括号,case后的表达式必须是常量,故选项C错误;因此只有选项D正确。

  • 第7题:

    以下程序的运行结果是()。includedefine MIN(x,y) (x)<(y)? (x):(y)main(){int i=10,j

    以下程序的运行结果是( )。 #include <stdio.h> #define MIN(x,y) (x)<(y)? (x):(y) main() { int i=10,j=15,k; k=10*MIN(i,j); printf("%d\n",k); }

    A.10

    B.15

    C.100

    D.150


    正确答案:B
    解析:该题考查函数的宏定义及三目运算符。表达式10*MIN(i,j)利用宏展开后为:10*ij?i:j,即10015?10:15,其值为15,然后将15赋给k。

  • 第8题:

    若a,b,c1,c2,x,y均是整型变量,正确的switch语句是( )。

    A.switch(a+b)

    B.switch(a*a+b*b) { case:y=a+b;break; { case 3: case:y=a-b;break; case 1:y=a+b;break; } case 3:y=b-a;break; }

    C.switcha

    D.switch(a-b) { casec1:y=a-b;break; { default:y=a*b;break; casec2:x=a*b;break; case 3:case4:x=a+b;break; default:x=a+b; case 10:case 11:y=a-b;break; } }


    正确答案:D
    解析:本题考查switch语句的语法规则。使用switch语句应该注意的问题:①整型表达式包括字符型或枚举型表达式。②在同一switch语句中,各个常量表达式的值不能相同。③每个case分支可以有多条语句,但不必用{}。④每个case语句只是一个入口标号,并不能确定执行的终点,因此每个case分支的最后应该加break语句,用来结束这个switch结构,否则会从入口点开始一直执行到switch结构的结束点。⑤当若干个分支需要执行相同操作时,可以使多个case分支共用一组语句。⑥如果在switch语句中使用字符常数,则它们自动被转换成整型值。根据以上注意点以及switch的语法规则,可知:对于选项A,case后面少了整型常量表达式>,故不正确。对于选项B,出现两个case后面的整型常量表达式>的值相等,故也不正确。对于选项C,switch后面的整型表达式>应该用括号括起来,故也不正确

  • 第9题:

    若有如下程序: main() { int k,x=0,y=0; for(k=0;k<=2;k++) switch(k) { case 0: X++; case 1: y++; case 2: X++;y++; } printf("%d,"d\n",x,y); } 则程序运行后的输出结果是( )。

    A.3,3

    B.2,2

    C.4,5

    D.2,3


    正确答案:C
    解析:本题使用了一个for循环,循环变量k从0递增到2共循环3次,循环体是一个switch语句,第一次循环k为0,所以从case0:处开始执行,变量x和y都自增两次。然后分别从case1:和case2:处执行,变量x共自增两次,y共自增3次,所以最后输出的结果是4,5。故应该选择C。

  • 第10题:

    阅读下面程序,下列选项中,能够完成语句覆盖的测试用例是() if((x>4)||(z<7)) { k=x*y-1; j=sqrt(k); } if((x==8)&&(y>5)) { j=x%y+2; } j=j%3;

    • A、x=2,y=6,z=5
    • B、x=6,y=6,z=5
    • C、x=8,y=6,z=4
    • D、x=8,y=5,z=5

    正确答案:C

  • 第11题:

    齐次坐标(x,y,z,k)表示()。

    • A、二维空间点(x,y)
    • B、二维空间点(x/k,y/k)
    • C、三维空间点(x,y,z)
    • D、三维空间点(x/k,y/k,z/k)

    正确答案:D

  • 第12题:

    单选题
    执行int x,y,z.k;x=(y=4,z=16,k=32)后,x的值是()
    A

    4

    B

    16

    C

    32

    D

    52


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

  • 第13题:

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

    【说明】Point是平面坐标系上的点类,Line是从Point派生出来的直线类。

    include <iostream.h>

    class Point

    {public:

    Point (int x, int y) ;

    Point (Point &p) ;

    ~Point();

    void set (double x, double y) ;

    void print();

    private:double X,Y;

    };

    Point::Point (int x, int y) //Point 构造函数

    {X=x; Y=y; }

    Point::Point ( (1) ) //Point 拷贝构造函数

    {X=p.X; Y=p.Y;}

    void Point::set (double x, double y)

    {X=x; Y=y; }

    void Point::print()

    {cout<<' ('<<X<<","<<Y<<") "<<endl; }

    Point::~Point()

    {cout<<"Point 的析构函数被调用! "<<endl;

    class Line: public Point

    {public:

    Line (int x, int y, int k) ;

    Line (Line &s) ;

    ~Line();

    void set (double x, double y, double k)

    void print();

    private:double K;

    };

    (2)//Line 构造函数实现

    { K=k;}

    (3)//Line 拷贝构造函数实现

    {K=s.K;}

    void Line::set (double x, double y, double k)

    { (4);

    K=k;

    }

    void Line::print()

    {cout<<" 直线经过点";

    (5);

    cout<<"斜率为: k="<<K<<endl;

    }

    Line: :~Line()

    {cout<<"Line 析构函数被调用! "<<endl;

    }

    void main()

    {Line 11 (1,1,2) ;

    11 .print();

    Linel2 (11) ;

    12.set (3,2,1) ;

    12.print();

    }


    正确答案:(1)Point &p (2)Linc::Line(int xint y int k):Point(xy) (3)Line::Line(Line &s):Point(s) (4)Point::set(x y) (5)Point::print()
    (1)Point &p (2)Linc::Line(int x,int y, int k):Point(x,y) (3)Line::Line(Line &s):Point(s) (4)Point::set(x, y) (5)Point::print() 解析:(1)Point &p
    Point拷贝构造函数的形参必须是Point对象的引用。
    (2)Linc::Line(int x,int y, int k):Point(x,y)
    Line的构造函数必须先调用Point构造函数构造Line的基类Point。
    (3)Line::Line(Line &s):Point(s)
    Line的拷贝构造函数必须先调用Point拷贝构造函数来构造并复制Line对象的基类 Point部分。
    (4)Point::set(x, y)
    Line的set成员函数必须通过Point的set成员函数才能访问基类的私有成员。而且在 set名前必须加成员名限定Point::,以区别Line的set函数。
    (5)Point::print()
    Line的print成员函数必须通过Point的print成员函数才能访问打印基类的私有成员。而且在print名前必须加成员名限定Point::,以区别Line的print函数。

  • 第14题:

    有以下程序段:includedefine MAX(x,y)(x)>(y)?(x):(y)void main(){ int i,j,k; i=

    有以下程序段: #include<iostream.h> #define MAX(x,y)(x)>(y)?(x):(y) void main() { int i,j,k; i=10; j=15;k=MAX(i,j)*10; cout<<k<<end1; } 程序执行后的输出结果是( )。

    A.15

    B.100

    C.150

    D.10


    正确答案:C

  • 第15题:

    有以下程序段:include define MIN(x,y)(x)<(y)?(x):(y) void main() { int i,j,K; i

    有以下程序段:

    include<iostream.h>

    define MIN(x,y) (x)<(y)?(x):(y)

    void main()

    {

    int i,j,K;

    i=10;j=15;

    k=10*MIN (i,j);

    cout<<k<<endl;

    }

    程序执行后的输出结果是______。


    正确答案:15
    15

  • 第16题:

    若a、b、c1、c2、x、y均是整型变量,则正确的switch语句是______。

    A.swich(a+b); { case 1:y=a+b;break; case 0:y=a-b;break; } case 3:y=b-a, break;

    B.switch(a*a+b*b) { case 3: case 1:y=a+b;break; }

    C.switch a { case c1:y=a-b;break; case c2:x=a*d;break; default:x=a+b; }

    D.switch(a-b) { default:y=a*b;break; case 3:case 4:x=a+b;break; case 10:case 11:y=a-b;break; }


    正确答案:D

  • 第17题:

    执行下面的程序后,输出的结果是 K=1 For j=1 To 4 X=X - 1: y=0 For k=1 To 4 X=X + 1: y=y + 1 Next k Next j Print X;y

    A.1 4

    B.13 4

    C.12 8

    D.20 6


    正确答案:B
    解析:本题是一个多重循环语句,是For…Next结构的两重迭用,根据“拨皮法”,一层一层分析可知,最后x=13,y=4。

  • 第18题:

    设x、y\z和k都是int型变量,执行表达式x=(y=4,z=16,k=32)后,x的值为______。

    A.4

    B.16

    C.32

    D.52


    正确答案:C

  • 第19题:

    以下程序的输出结果是( )。 union myun { struct {int x,y,z;)u; int k: }a; main { a.u.x=4;a.u.y=5;a.u.z=6; k=0; printf(%d\n",a.u.x); }

    A.4

    B.5

    C.6

    D.0


    正确答案:D
    因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。

  • 第20题:

    在下面程序运行后,输出结果为 ______。includevoid count(int x[],int n,int &y

    在下面程序运行后,输出结果为 ______。 #include<iostream.h> void count(int x[],int n,int &y){ int k; y=0; for(k=0:k<n;k++) if(x[k]<0) y++; } void main(){ int b[]={2,1,-8,-3,7,2,4,6,0,-13}; int x; count(b,10,x); cout<<“x”<<x<<end1; }

    A.x=3

    B.x=5

    C.出错

    D.x=0


    正确答案:A

  • 第21题:

    下列程序的运行结果是()。void fun(int*a,int*b){int *k;k=a;a=b;b=k;}main(){int a=3,b=6,*x=&am

    下列程序的运行结果是( )。 void fun(int*a,int*b) { int *k; k=a; a=b; b=k; } main() { int a=3,b=6,*x=&a,*y=&b; fun(x,y); printf("%d%d",a,b); }

    A.63

    B.36

    C.编译出错

    D.0 0


    正确答案:B
    解析:在C语言中,调用函数时是将实参复制一份给形参,所以无论怎么改变形参的值,都不会影响到实参,即传值调用。即使形参是指针变量,也没有改变C语言传值调用这个事实,实参指针也还是复制了一份给形参指针,无论怎么改变形参指针的内容(注意:不是形参指针所指向的内容),也不会影响实参指针的内容。但它们两个现在的值一样,即指向的是同一个内存地址,所以改变形参指针所指向的内容,也就改变了实参指针所指向的内容,C语言就是这样实现传址调用的。本题中fun()函数的形参就是两个指针,但函数中没有任何语句改变这两个指针所指向的内容,只是交换了两个参数的内容,所以该函数不会对传递给它的实参以及实参所指向的内容造成任何影响,故a,b初始化时为3,6,输出结果亦为3和6。应该选择B。

  • 第22题:

    执行int x,y,z.k;x=(y=4,z=16,k=32)后,x的值是()

    • A、4
    • B、16
    • C、32
    • D、52

    正确答案:C

  • 第23题:

    已知直线经过(x1,y1)点,斜率为k(k≠0),则直线方程为()。

    • A、y-y1=k(x-x1)
    • B、y=5kx+3
    • C、y=9k(x-x1)
    • D、y=4x+b

    正确答案:A

  • 第24题:

    单选题
    齐次坐标(x,y,z,k)表示()。
    A

    二维空间点(x,y)

    B

    二维空间点(x/k,y/k)

    C

    三维空间点(x,y,z)

    D

    三维空间点(x/k,y/k,z/k)


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