执行以下程序的输出结果是( )。 include<stdio.h>define M 5define N M+M main(){int k; k=N*N*5;

题目
执行以下程序的输出结果是( )。 includedefine M 5define N M+M main(){int k; k=N*N*5;

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

include<stdio.h>

define M 5

define N M+M

main()

{ int k;

k=N*N*5;printf(”%d\n" ,k);

}

参考答案和解析
正确答案:55
55 解析:本题考查的重点是对宏定义的理解。#define指令定义一个标识符和一个串,编译程序在对C源程序处理时.发现该标识符都用该串替换,因此,在语句k=N*N*5将替换成k=M+M*M+M*5后,M被替换成5,从而k=5+5*5+5*5=55。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序的输出结果是()。includeint fan(int);main(){int w=5; fun(w);printf("\n");}

以下程序的输出结果是( )。 #include <stdio.h> int fan(int); main() { int w=5; fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }

A.5 4 3 2 1

B.0 1 2 3 4 5

C.1 2 3 4 5

D.5 4 3 2 1 0


正确答案:B
解析:本题考查函数的递归调用。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函数调用的,其余是在fun函数中调用的。

第2题:

以下程序的输出结果是#include "stdio.h"int *fun(int *a,int *b){ int m; m=*a; m+=*b-3; return(&m);}main(){ int x=21,y=35,*a=&x,*b=&y; int *k; k=fun(a,b); printf("%d\n",*k);}


正确答案:53
本题考查指针函数的使用。题目给出的程序包括两个部分,一个为指针函数fun,一个为主函数main。主函数main部分给出两个整型变量x和y,并给出相应的赋值。main函数的执行结果为输出*k的值,而*k的值即*fun的值。fun函数包括两个整型指针形参*a和*b。通过对*a、*b进行操作,得到结果m,并将m值返回,整个程序的实际输出即为m的值。初始时,m=*a=21。随后令m=m+*b-3,得m=53。整个程序的输出结果即为53。

第3题:

有以下程序:includemain(){int k=4,n=0; for( ;n

有以下程序: #include <stdio.h> main() { int k=4,n=0; for( ;n<k;) { n++; if(n%3! =0) continue; k--;} printf("%d,%d\n",k,n); } 程序运行后的输出结果是( )。

A.1,1

B.2,2

C.3,3

D.4,4


正确答案:C
解析:本题考查循环和continue语句,continue语句的功能是结束本次循环。n从0开始循环,判断n%3!=0是否成立,如果成立,结束本次循环,继续下一次for循环;否则执行k--,并继续下一次for循环,直至循环结束。在程序中,当n取1,2时,不执行k--,当n取3时,执行k--,k变为3,循环结束,输出k,n的值分别为3,3。

第4题:

有以下程序:includemain(){int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a

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

A.0,0

B.0,1

C.1,0

D.1,1


正确答案:C
解析:本题考查逻辑或运算。因为b>a为真,即n=1,则m不需再计算,保持原值,因此k值为1,m值仍为0。

第5题:

以下程序的输出结果是( )。 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。

第6题:

以下程序执行后的输出结果是【】。includemain(){int i, m=0,n=0,k=0;for(i=9;i<= 11 ;

以下程序执行后的输出结果是【 】。

include<iostream.h>

main()

{

int i, m=0,n=0,k=0;

for(i=9;i<= 11 ;i++)

switch(i/10)

{

case 0: m++; n++; break;

case 10: n++; break;

default: k++; n++;

}

cout<<m<<n<<k;

}


正确答案:132
132

第7题:

以下程序的输出结果是【 】。include defineN 5 int fun(int *s,int a,int n) {int j; *s=

以下程序的输出结果是【 】。

include <stdio.h>

define N 5

int fun(int *s,int a,int n)

{ int j;

*s=a j=n;

while(a!=s[j]) j-;

return j;

main()

{ int s[N+1]; int k:

for(k=1 ;k<=N;k++) s[k]=k+1:

print f("%d\n",fun(s,4,N));

}


正确答案:3
3 解析:本题主函数中定义了一个一维数组s,并通过for循环给s[1]到s[5]的元素分别赋值为2、3、4、5、6。然后调用 fun函数,使指针变量s与数组s共用同一存储单元。在函数fun中,a=4,n=5,所以while的条件表达式首先判断的是 4!=s[5]是否成立,由于s[5]=6,所以成立,执行j-;接着判断4!=s[4]是否成立,由于s[4]=5,所以成立,执行j-;然后判断4!=s[3]是否成立,由于s[3]=4,所以条件表达式不成立,返回j的值3。

第8题:

现有如下程序段

#include "stdio.h"

int fun(int k,int *m)

{if(k%3)*m=k*k;

else *m=k/3;}

main()

{ int (*p)(int,int *),m;

p=fun;

(*p)(78, &m);

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

则程序段的输出结果为

A.24

B.25

C.26

D.27


正确答案:C

第9题:

阅读下列程序,程序的输出结果是

#include "stdio.h"

main()

{

int m,n;

float k;

for(m=6;m>2;m--)

{ k=0;

for(n=m;n>1;n--)

k=k+m*n;

}

printf("%f\n",k);

}

A.5.000000

B.15.000000

C.25.000000

D.35.000000


正确答案:B