niusouti.com
更多“单选题若有以下程序 #include #defineS(x)x*x #defineT(x)S(x)*S(x) main() {  intk=5,j=2;  printf(%d,%d,S(k+j),T(k+j)); } 则程序的输出结果是(  )。A 17,37B 49,2401C 17,289D 49,289”相关问题
  • 第1题:

    有以下程序:

    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。

  • 第2题:

    以下程序运行后,输出结果是______。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。

  • 第3题:

    执行下列程序后,输出的结果是()。 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。

  • 第4题:

    有以下程序includedefine PT3.5;define S(x)PT*x*x;main(){inta=1,b2;printf("%4.1f

    有以下程序 #include<stdio.h> #define PT3.5; #define S(x)PT*x*x; main() { inta=1,b2; printf("%4.1f\n",S(a+b); } 程序运行后的输出结果是______。

    A.14.0

    B.31.5

    C.7.5

    D.程序有错无输出结果


    正确答案:D
    解析:本题考查的是宏定义。带参数的宏定义是按#define命令行中指定的字符串从左到右进行转换,其定义的—般形式为:#define宏名(参数表)字符串,因此在程序中宏定义后面不能有分号“;”,所以程序运行出错,没有输出结果, 因此,选项D是正确的。

  • 第5题:

    有以下程序

    #include <stdio.h>

    #define S(x) (x)*x*2

    main( )

    { int k=5, j=2;

    printf( "%d,”,s(k+j) ); printf(”%d\n”,s( (k-j) ) );

    }

    程序运行后的输出结果是

    A) 98,18

    B) 39,11

    C) 39,18

    D) 98,11


    正确答案:C
    【答案】C
    【知识点】带参数的宏定义
    【解析】第一次打印的值为(k+j)*k+j*2=7*5+2*2=39。第二次打印的值为(3)*3*2=18。

  • 第6题:

    有以下程序: #include<stdi0.h> #define S(x)(x)"x"2 main( ) { int k一5,j=2; Drintf("%printf,",S(k+j));printf("%printf\n",S((k—j))); } 程序运行后的输出结果是( )。

    A.98,18

    B.39,11

    C.39,18

    D.98,11


    正确答案:B
    S(k+j)=(k+j)*k+j*2=(5+2)*5+2*2=39,同理S(k-1)=(k+j)*k+j*2=(5-2)*5-2*2=11,所以答案选择B。

  • 第7题:

    若有以下程序

    则程序的输出结果是

    A.17,289

    B.49,2401

    C.17,37

    D.49,289


    正确答案:C
    本题考查宏定义,宏定义只是做个简单的替换,执行S(k+j)=k+j*k+j=17,T(k+j)=S(k+j)*S(k+j)=k+j*k+j*k+j$k+j=37,选项C正确。

  • 第8题:

    有以下程序:include void swap(char * x,ehar * y){ char t;t= *x; *x: *y; *y=t;main

    有以下程序:#include <stdio.h>void swap(char * x,ehar * y){ char t; t= *x; *x: *y; *y=t;main ( ){ char *s1 ="abc", * s2 ="123"; swap(s1 ,s2); printf("%s,%s \n" ,s1 ,s2);}程序执行后的输出结果是( )。

    A.123,abe

    B.abe,123

    C.1bc,a23

    D.321,cba


    正确答案:C
    解析:C语言中,字符串常量在内存中是以字符数组的形式存放的,形参字符指针x和y指向的是各字符串的首地址,在swap函数中,*x与*y交换的是字符串的第一个字符,即字符'a'与'1'的交换,而字符串中其他字符保持不变。

  • 第9题:

    以下程序的输出结果是______。 include main() { char*a="abcdefghi";int k fun(a);p

    以下程序的输出结果是______。 #include <string.h> main() { char*a="abcdefghi";int k fun(a);puts(a); } fun(char*s) { int x,y; char c for(x=0,y=strlen(s)-1;x<y:x++,y--) {c=s[y];s[y]=s[x];s[x]=c;} }

    A.ihgfedcba

    B.abcdefghi

    C.abcdedeba

    D.ihgfefghi


    正确答案:A

  • 第10题:

    单选题
    有以下程序:#include 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,s);}程序运行后的输出结果是(  )。
    A

    0

    B

    1

    C

    4

    D

    8


    正确答案: C
    解析:
    对局部静态变量在编译时赋初值,以后每次调用函数时一直保持不变,只是保留上次函数调用结束时的值。在主函数中调用了两次fun()函数,第一次调用时x初值为1,执行x*=2后,x=2;第二次调用时初值为2,执行x*=2后,x=4。答案选择C选项。

  • 第11题:

    单选题
    有以下函数: #include  #define S(x)(x)*x*2 main() {  int k=5,j=2;  printf(%d,,S(k+j));  printf(%d,S(k-j)); } 程序运行后的输出结果是(  )。
    A

    98,18

    B

    39,11

    C

    39,18

    D

    98,11


    正确答案: D
    解析:
    根根据该宏的定义,S(k+j) = (k+j)*k+j*2 = 39,S(k-j) = (k-j)*k-j*2 = 11,答案选择B选项。

  • 第12题:

    单选题
    有以下程序:#include int fun(){ static int x=1; x*=2; return x;}main(){ int i,s=1; for(i=1;i<=3;i++)s*=fun(); printf(%d,s);}程序运行后的输出结果是(  )。
    A

    0

    B

    10

    C

    30

    D

    64


    正确答案: A
    解析:
    在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久性的存储单元,可以继续使用存储单元中原来的值。此题中第一次循环时,调用fun函数后x的值为2,s的值为2;第二次循环时,调用fun函数后x的值为4,s的值为2*4=8;第三次循环时,调用fun函数后x的值为8,s的值为8*8=64。答案选择D选项。

  • 第13题:

    执行下列程序后,输出的结果是()。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来访问结构体变量中的成员。

  • 第14题:

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

  • 第15题:

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

  • 第16题:

    以下程序运行后,输出结果是______。 define P4.5 define S(x)P*x*x include main() {

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

    A.49.5

    B.112.5

    C.18

    D.24


    正确答案:C

  • 第17题:

    以下程序运行后,输出结果是() include define PT5.5 define S (x)PT* x * x

    以下程序运行后,输出结果是 ( ) # include<stdio.h> # define PT5.5 # define 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

  • 第18题:

    有以下程序:include main(){union{charch[2];int d;} s;s.d=0x4321;printf("%x,%x\n",

    有以下程序: #include <stdio.h> main() { union { charch[2]; int d; } s; s.d=0x4321; printf("%x,%x\n",s.ch[0],s.ch[1]); } 在16位编译系统上,程序执行后的输出结果是( )。

    A.21,43

    B.43,21

    C.43,00

    D.21,00


    正确答案:A
    解析:int型变量和字符数组ch共用两个字节的存储单元,通常ch[0]位于低字节,ch[1]位于高字节,所以s.ch[0]=21,s.c[1]=43。

  • 第19题:

    下列程序的输出结果是______。include main(){union {int k;char i[2]; }*S,a; s=&

    下列程序的输出结果是______。#include <stdio.h>main(){ union { int k; char i[2]; } *S,a; s=&a; s->i[0]=0x39; s->i[1]=0x38; printf("%x\n",s->k);}

    A.3839

    B.3938

    C.380039

    D.390038


    正确答案:A

  • 第20题:

    执行下列程序后,输出的结果是()。 include define S(X)X*X void main() {iht a=9,k=3,

    执行下列程序后,输出的结果是( )。

    #include<stdio.h>

    #define S(X)X*X

    void main()

    { iht 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。

  • 第21题:

    (35)有以下程序

    #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

  • 第22题:

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

    11,2

    B

    25,2

    C

    11,12

    D

    25,26


    正确答案: A
    解析:
    S(k+j)展开后是(3+2)*(3+2) = 25,T(k+j)展开后是(3+2)*(3+2)/(3+2)*(3+2)+1 = 26。答案选择D选项。

  • 第23题:

    单选题
    有以下程序: #include  #define S(x)4*(x)*x+1 main() {  int k=5,j=2;  printf(%d,S(k+j)); } 程序运行后的输出结果是(  )。
    A

    197

    B

    143

    C

    33

    D

    28


    正确答案: D
    解析:
    根据宏定义的规定,题中S(k+j) = 4*(k+j)*k+j+1,分别代入k、j的值后求出的结果为143。答案选择B选项。