itgle.com

有以下程序: include main( ){ int m =3,n =4,x; x= -m++; x=x+8/++n; prinff(" % d有以下程序: #include <stdio. h > main( ) { int m =3,n =4,x; x= -m++; x=x+8/++n; prinff(" % d \n" ,x); } 程序运行后的输出结果是( )。A.3B.5C.-1D.-2

题目
有以下程序: include main( ){ int m =3,n =4,x; x= -m++; x=x+8/++n; prinff(" % d

有以下程序: #include <stdio. h > main( ) { int m =3,n =4,x; x= -m++; x=x+8/++n; prinff(" % d \n" ,x); } 程序运行后的输出结果是( )。

A.3

B.5

C.-1

D.-2


相似考题
更多“有以下程序: #include <stdio. h >main( ){ int m =3,n =4,x; x= -m++; x=x+8/++n; prinff(" % d ”相关问题
  • 第1题:

    有以下程序:include defineF(X, Y)(X)*(Y)main ( ){int a=3,b=4;printf("%d\n",F(

    有以下程序:#include <studio. h >#define F(X, Y) (X)*(Y)main ( ){ int a=3, b=4; printf("%d\n", F(a++, b++));}

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:本题考核的知识点是宏与自增运算符的综合运用.在程序中先用表达式将宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。

  • 第2题:

    有以下程序: include difine F(X, Y)(X)*(Y)main(){int a=3, b=4; print("% d\n",

    有以下程序: # include<stdio. h> # difine F(X, Y) (X)*(Y) main() { int a=3, b=4; print("% d\n", F(a++, b++)); } 程序运行后的输出结果是______。

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:F(a++,b++)的宏展开为:F(a++,b++)=(a++)*(b++)=a*b=3×4=12,因此printf函数的输出结果是12。

  • 第3题:

    有以下程序 main() { int m=3 n=4,X; X=-m++; x=x+8/++n; printf("%d\n",x); } 程序运行后的输出结果是

    A.3

    B.5

    C.-1

    D.-2


    正确答案:D
    解析:本题考核的知识点是运算符的优先级。主函数中首先定义了整型变量m、n和x,并给m和n赋初值为3和4,接着执行两条赋值语句,第一条x=-m++等价于x=-(m++),其值即为-3,第二条x=x+8/++n等价于X=X+8/(++n),即为x=-3+8/5=-2,因此最后输出x的值为-2。所以,4个选项中选项D符合题意。

  • 第4题:

    有以下程序: include main ( ){int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k;for(i =0;i<3;i

    有以下程序: #include <stdio. h> main ( ) { int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k; for(i =0;i<3;i ++ ) for (j =2;j> = i;j — ) if( x[j + 1 ] > x[j] ) { k = x[j] ;x[j] = x[j + 1 ] ;x[j + 1 ] = k; } for (i =0;i<3;i++) for(j =4;j <7-i;j ++) if(x[j] >x[j+1]){ k=x[j];x[j] =x[j+1];x[j+1] =k;} for (i=0;i<8;i ++) printf("%d" ,x[i]); prinff("\n" );}程序运行后的输出结果是( )。

    A.75310246

    B.1234567

    C.76310462

    D.13570246


    正确答案:A
    解析:本题考查的是排序算法。for(i=0;i3;i++)for(j=2;j>i;j--)if(x[j+1],x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;}该段程序的作用是将数组元素x[0]~x[3]中的数由大到小排列,得到x[]{7,5,3,1,2,4,6,0}。for(i=0;i3;i++)for(j=4;j7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}该段程序的作用是将数组元素x[4]~x[7]中的数由小到大排列,得到x[]={7,5,3,1,0,2,4,6}。因此输出结果为75310246。

  • 第5题:

    下列程序的输出结果是 #include"stdio.h" #define M(x,y) x%y main() { int a,m=12,n=100; a=M(n,m); printf("%d\n",a--);}

    A.2

    B.3

    C.4

    D.5


    正确答案:C
    解析: 带参数的宏定义命令行形式如下:
    #define宏名(形参表)替换文本
    在编译的时候编译预处理程序用“替换文本”来替换宏,即M(n,m)被替换为n%m,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。

  • 第6题:

    下列程序的运行结果是()。includevoid sub(int*s,int*y){static int m=4;*y=s[0];m++;}

    下列程序的运行结果是( )。 #include<stdio.h> void sub(int*s,int*y) {static int m=4; *y=s[0]; m++; } void main() {int a[]={1,2,3,4,5},k; int x; printf("\n"); for(k=0;k<=4;k++) {sub(a,&x); printf("%d,",x); } }

    A.1,1,1,1,1,

    B.1,2,3,4,5,

    C.0,0,0,0,0,

    D.4,4,4,4,4,


    正确答案:A
    解析:本题中sub(int*s,int*y)函数的参数是两个指针型变量,在函数体内将数组s的第一个元素赋给y。主程序内,首先定义了一维数组并赋初值,然后通过for循环,5次调用sub(a,&x)函数,每一次调用都是将数组a的第一个元素1赋给x,并输出。

  • 第7题:

    有以下程序:includeint fun(int x,int y){if(x==y)return(x);else return((x+y)/2);}m

    有以下程序: #include<stdio.h> int fun(int x,int y) {if(x==y)return(x); else return((x+y)/2); } main() {int a=1,b=2,c=3; printf("%d\n",fun(2*a,fun(b,C))); } 程序运行后的输出结果是( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:A

  • 第8题:

    有以下程序:includedefine N 8void fun(int*x,int i){*x=*(x+i)+1;}main(){int a[N]=

    有以下程序: #include<stdio.h> #define N 8 void fun(int*x,int i) {*x=*(x+i)+1;} main() {int a[N]={1,2,3,4,5,6,7,8},i; fun(a,2); for(i=0;i<N/2;i++) {printf("%d",a[i]);} printf("\n"); } 程序运行后的输出结果是( )。

    A.1 3 1 3

    B.3 2 3 4

    C.4 2 3 4

    D.1 2 3 4


    正确答案:C
    解析:函数fun(int*x,int i)的功能是把数组元素x[i]的值加1赋给x[0]。所以在主函数中执行fun(a,2)后,数组元数a[0]的值等于4。然后在for循环语句中,输出数组a中的前4个元素的值,分别是4,2,3,4。

  • 第9题:

    有以下程序#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。

  • 第10题:

    有以下程序:include int f(int a)return a% 2; }main( )int s[8] = {1,3,5,2,4,6} ,i

    有以下程序: #include <stdio. h> int f(int a) return a% 2; } main( ) int s[8] = {1,3,5,2,4,6} ,i,d =0; for (i=0;f(s[i]);i++) d+ =s[i]; prinff( "% d \n", d); 程序运行后的输出的结果是( ).

    A.9

    B.11

    C.19

    D.21


    正确答案:A
    解析:在主函数main中,f(s[i])为for语句的循环终止条件,当f函数返回非零值时,则继续执行循环,否则终止循环,输出d的值。程序的运行步骤为:当i=0时,f(s[i])返回值为1,执行d+=1,d=1;当i=1时,将s[1];3传给形参变量s,f函数返回a%2=1,执行d=d+s[1]=1+3=4;当i=2时,将s[2]=5传给形参变量a,f函数返回a%2=1,执行d=d+s[2]=4+5=9;当i=3时,将a[3]=2传给形参变量a,f函数返回a%2=0,终止循环,输出d的值9。

  • 第11题:

    有以下程序: include main() {int a=6,b=7,m=1;switch(a%2){ case 0:m++;break;case 1

    有以下程序: #include<stdio.h> main() { int a=6,b=7,m=1; switch(a%2) { case 0:m++;break; case 1 :m++; switch(b%2) { defaut:m++; case0:m++;break; } } printf("%d\n",m); }

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析:本题考查swish语句。第一个switch语句,因为a=6,a%2=0,所以执行case 0,将m加1,遇到break语句跳出switch语句,结束循环。

  • 第12题:

    单选题
    有以下程序:#include int f(int x); main(){ int n=1,m;  m=f(f(f(n))); printf(%d,m); }int f(int x) { return x*2;} 程序运行后的输出结果是(  )。
    A

    4

    B

    2

    C

    8

    D

    1


    正确答案: D
    解析:
    考查函数嵌套调用,第一次调用的是最内层的f(n),即f(1)返回值2。第二次调用中间的f(f(n)),即f(2)返回值4。最后调用最外层的f(f(f(n))),即f(4)返回值8,最后打印输出。答案选择C选项。

  • 第13题:

    有以下程序:include int fun(int n){if(n == 1) return 1;else return( n + fun( n -

    有以下程序:#include <stdio.h>int fun(int n){ if(n == 1) return 1; else return( n + fun( n - 1 ) );}main( ){ int x; seanf("% d" ,&X) ;x = fun(x) ;pfinff( "% d \n" ,x);} 执行程序时,给变量x输入10,程序的输出结果是( )。

    A.55

    B.54

    C.65

    D.45


    正确答案:A
    解析:函数调用将实参x=10传给形参n,语句n=1不成立,执行else语句,递归调用fun函数。fun函数共被调用8次,即fun(9),fun(8),…,fun(2),由此可得n=10+9+…+1=55,所以x=55。

  • 第14题:

    有以下程序 include main() { int a=1, b=2, c=3, x; x=(a^b)&c; pri

    有以下程序 #include <stdio.h> main() { int a=1, b=2, c=3, x; x=(a^b)&c; printf("%d\n",x); } 程序的运行结果是

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:在C语言中,整型数据在内存中是按二进制形式存放的,位运算就是直接对这些二进制进行操作的一系列运算符。例如题目中a、 b、c的值分别为1、2、3,那它们在内存中存放的样子就是:0001、0010、0011(由于数据不大,int类型本来要占4字节也就是32位二进制的,这里就省写为4位了)。
    “^”运算符的作用是:按位异或。意思是:两个操作数对应的二进制位如果相异,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0001^0010=0011。“&”运算符的作用是:位与。意思是:如果两个操作数对应的二进制位同时为1,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0011&0011=0011,也就是十进制的3,故本题最终输出结果为3,应该选择D。

  • 第15题:

    有以下程序:includedefmeF(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b++

    有以下程序: #include<studio.h> #defme F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:在程序中先用表达式将宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。

  • 第16题:

    有以下程序 main() { iht m=3,n=r,x; x=-m++; X=x+8/++n;printf("%d\n",x); } 程序运行后的输出结果是

    A.3

    B.5

    C.-1

    D.-2


    正确答案:D
    解析:主函数中首先定义了整型变量m、n和x,并给m和n赋初值为3和 4,接着执行两条赋值语句,第一条x=-m++等价于x=-(m++),其值即为-3,第二条x=x+ 8/++n等价于x=x+8/(++n),即为x=-3+8/5=-2,因此最后输出x的值为-2。

  • 第17题:

    以下程序的输出结果为______。 include main() { int m=7,n=4; float a=20.0,b=10.0,x;

    以下程序的输出结果为______。 #include<stdio.h> main() { int m=7,n=4; float a=20.0,b=10.0,x; x=m/2+n*a/b+1/4; printf("%f\n",x); }

    A.11

    B.11

    C.11.25

    D.11.75


    正确答案:A

  • 第18题:

    以下程序的输出结果是( )。 include main()fint x=0; sub(&x,16,2); printf("%d\n",

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

    include<stdio.h>

    main()

    fint x=0;

    sub(&x,16,2);

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

    }

    sub(int*a,int n,int k)

    {if(k<=n) sub(a,n/2,2*k);

    *a+=k;

    }


    正确答案:14
    14 解析:本题考查递归函数的调用。在主函数中调用sub(&x,16,2)函数,此时n=16,k=2,if语句的控制的条件k=n成立,所以执行下面的语句,调用sub(x,8,4),此时n=8,k=4,if语句的控制条件k=n成立,所以执行下面的语句,调用sub(x,4,8),此时n=4,k=8,if语句控制的条件k=n不成立,因此,最后得x=2+4+8=14。

  • 第19题:

    有以下程序: include main( ){ int m =12,n=34;printf( "% d% d" ,m++ , ++n);printf(

    有以下程序: #include <stdio.h>main( ){ int m =12,n=34; printf( "% d% d" ,m++ , ++n); printf("% d% d \n" ,n ++ , ++m); }程序运行后的输出结果是( )。

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:程序执行printf("%d%d",m++,++n);后,输出的是m和n+1的值1235,然后m+1=13,再执行printf("%d%d\n",n++,++m);输出n和m+1的值3514,之后n+1=36。这里要注意的是m++和++m的区别:m++是先输出m的值,再执行m++;++m是先执行++m,再输出m的值。

  • 第20题:

    以下程序的执行结果是 ______。 include int &max(int &x,int &y) { ret

    以下程序的执行结果是 ______。

    include<iostream.h>

    int &max(int &x,int &y)

    {

    return(x>y? x:y);

    }

    void main()

    {

    int n=2,m=10;

    max(n,m)--;

    cout<<"n="<<n<<",m="<<m<<endl;

    }


    正确答案:n=2m=9
    n=2,m=9

  • 第21题:

    有以下程序: #include<stdio.h> int f(int x): main {int n=1,m; m=f(f(f(n)));printf("%d\n",m); } int f(int x) {return x*2;) 程序运行后的输出结果是( )。

    A.1

    B.2

    C.4

    D.8


    正确答案:D
    本题考查函数返回值作参数,最初n=1,f(n)=f(1)=2,将f(n)的结果代入第二个f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

  • 第22题:

    有以下程序:include define F(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b

    有以下程序: #include <stdio.h> #define F(X,Y)(X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:在程序中先将表达式中的宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。

  • 第23题:

    下列程序的输出结果为______。 include int&max(int&x,int&y) {return(x

    下列程序的输出结果为______。

    include<iostream.h>

    int&max(int&x,int&y)

    {return(x>y? x:y);)

    void main( )

    {

    int n=3,m=12;

    max(m,n)++;

    cout<<"m="<<m<<",n=<<n<<endl;

    }


    正确答案:m=13n=3
    m=13,n=3 解析:本题考察引用作为形参进行参数传递的知识。max函数的功能是返回较大的那个数,而max(m, n)++的作用是将较大值再进行增一运算。