C语言程序设计

单选题若有以下程序 #include #define S(x)x*x #define T(x)S(x)*S(x) main() {int k=5,j=2;printf(%d,%d,S(k+j),T(k+j)); } 则程序的输出结果是(  )。A 17,37B 49,2401C 17,289D 49,289

题目
单选题
若有以下程序 #include  #define S(x)x*x #define T(x)S(x)*S(x) main() {  int k=5,j=2;  printf(%d,%d,S(k+j),T(k+j)); } 则程序的输出结果是(  )。
A

17,37

B

49,2401

C

17,289

D

49,289

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

(36)有以下程序

#include <stdio.h>

#define PT 3.5;

#define S(x) PT*x*x;

main()

{ int a=1, b=2; printf(“%4.1f\n”,S(a+b));}

程序运行后输出的结果是

A)14.0 B)31.5 C)7.5 D)程序有错无输出结果


正确答案:C

第2题:

有以下程序:

include<stdio.h>

define S(x)4*(x)*x+1

main( )

{int k=5,j=2;

printf("%d\n",S(k+j));

}

程序运行后的输出结果是( )。

A.197

B.143

C.33

D.28


正确答案:B

此程序考查带参数的宏定义,S(k+j)展开后即4*(k+j)*k+j+1,所以结果为l43,答案为B。

第3题:

( 34 )有以下程序

#include <stdio.h>

int fun ()

{ static int x=1;

x*2; return x;

}

main ()

{ int i,s=1 ,

for ( i=1;i<=2;i++ ) s=fun () ;

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

程序运行后的输出结果是

A ) O

B ) 1

C ) 4

D ) 8


正确答案:C

第4题:

执行下列程序后,输出的结果是()。 includedefine S(X) X*Xvoid main(){int a=9,k=3,m=

执行下列程序后,输出的结果是( )。 #include<stdio.h> #define S(X) X*X void main() { int a=9,k=3,m=2; a/=S(k+m)/S(k+m); printf("%d",a); }

A.1

B.4

C.9

D.0


正确答案:D
解析:本题主要是考查带参数的宏定义及其相关运算。本题中宏运算过程如下:a=a/S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m=9/(3+2*3+2/3+2*3+2)=0。

第5题:

以下程序运行后,输出结果是______。includedefine PT 5.5difine S(x) PT*x*xmain(){i

以下程序运行后,输出结果是______。 #include<stdio.h> #define PT 5.5 #difine S(x) PT*x*x main() { int a=1,b=2; printf("%4.1f/n",S(a+b)); }

A.49.5

B.9.5

C.22

D.45


正确答案:B
解析:C语言中宏替换只是字符替换,因此:S(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5。

第6题:

以下程序运行后,输出结果是define PT5.5define S(x)PT*x*xincludemain(){int a=1,b=

以下程序运行后,输出结果是 #define PT 5.5 #define S(x) PT*x*x #include<stdio.h> main() { int a=1,b=2; printf("%4.1f\n",s(a+b));}

A.49.5

B.9.5

C.22

D.45.0


正确答案:A

第7题:

执行下列程序后,输出的结果是()。includedefine S(X)X*Xvoid main(){int a=9,k=3,m=2;

执行下列程序后,输出的结果是( )。 #include<stdio.h> #define S(X)X*X void main() { int a=9,k=3,m=2; a/=S(k+m)/S(k+m); printf("%d",a); }

A.(*p) .data.a

B.(*p) .a;

C.p->data.a

D.p.data.a


正确答案:B
解析: 本题主要考查结构指针:p=&data,访问结构体的成员,可以通过结构变量访问,即data.a,也可以用等价的指针形式:(*p).a和p->a来访问结构体变量中的成员。

第8题:

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

#include <stdio.h>

int fun(int x)

{ static int t=0;

return(t+=x);

}

main()

{ int s,i;

for(i=1;i<=5;i++) s=fun(i);

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

}


正确答案:

第9题:

以下程序的输出结果是( )。 include void fun(int x) {if(x/2>0)fun(x/2); printf("%d",

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

include<stdio.h>

void fun(int x)

{ if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(3);printf("\n");

}


正确答案:13
13 解析:函数fun是一个递归函数。执行fun(3);,x=3,x/2=1>0,又调用f(1),此时,x=1,x/2=0,不满足继续递归调用的条件,输出1,返回到fun(3)中,输出3。所以本题的输出结果为13。

第10题:

以下程序的输出结果是【 】。include int fun(int x) {static int t=0; return(t+=x); }

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

include <stdio.h>

int fun(int x)

{ static int t=0;

return(t+=x);

}

main()

int s,i;

for(i=1 ;i<=5;i++) s=fun(i);

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


正确答案:15
15 解析:static类型的变量是静态变量,本题中的静态变量t为静态局部变量。静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用时的值。本题在多次调用fun函数的过程中,只在第一次调用时t的初值为0,以后每次调用函数时不再重新赋初值,而只是保留上次函数调用结束时的值,所以本程序的作用相当于将1到5数字进行累加,故输出结果为15。

更多相关问题