单选题有以下程序: #include int f(int x); main() {int a,b=0;for(a=0;a<3;a++){b=b+f(a);putchar('A'+b);} } int f(int x) {return x*x+1; } 程序运行后的输出结果是(  )。A ABEB BDIC BCFD BCD

题目
单选题
有以下程序: #include  int f(int x); main() {  int a,b=0;  for(a=0;a<3;a++)  {   b=b+f(a);   putchar('A'+b);  } } int f(int x) {  return x*x+1; } 程序运行后的输出结果是(  )。
A

ABE

B

BDI

C

BCF

D

BCD


相似考题
更多“单选题有以下程序: #include intf(intx); main() {  inta,b=0;  for(a=0;a3;a++)  {   b=b+f(a);   putchar('A'+b);  } } intf(intx) {  returnx*x+1; } 程序运行后的输出结果是(  )。A ABEB BDIC BCFD BCD”相关问题
  • 第1题:

    下列程序的输出结果是()。includemain(){iut a=2,b=3,p;p=f(a,B) printf("%d",p);}intf

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

    #include<stdio.h>

    main()

    {iut a=2,b=3,p;

    p=f(a,B)

    printf("%d",p);

    }

    intf(a,b)

    {int c;

    if(a>B) c=1;

    e1Seif(a==B) c=0;

    else(3=-1;

    return(C) ;

    }

    A.-1

    B.0

    C.1

    D.2


    正确答案:A
    解析: 本题考查if else语句。在intf(a,B)中:第一个if语句,先判断条件,发现a>b条件不成立,则执行与其配对的else语句:第二个if语句,先判断条件,发现a==b条件不成立,则执行与其配对的else语句,c=-1。

  • 第2题:

    下面程序的运行结果为【】。 include void fun(intx=0,iot y=0) {cout<

    下面程序的运行结果为【 】。

    include<iostream.h>

    void fun(intx=0,iot y=0)

    {

    cout<<X<<y;

    }

    Void main()

    {

    fun(5);

    }


    正确答案:50
    50 解析:本题考查的是函数的默认参数,如果一个函数中有多个参数,则默认参数应从右至左逐个定义,所以题目中x使用参数5,y使用默认参数0。

  • 第3题:

    有以下程序includeintf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}m

    有以下程序 #include <stdio.h> intf(int x) { int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } main() { int z; z=f(3); printf("%d\n",z); } 程序的运行结果是

    A.0

    B.9

    C.6

    D.8


    正确答案:C
    解析: 函数int f(int x)是一个递归函数调用,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x-2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9=f(1)=9-3=6。

  • 第4题:

    有以下程序: #include<stdio.h> int f(int x); main( ) { int a,b=0; for(a=0;a<3;a++) { b=b+f(a);putchar(A+b);} } int f(int x) { return x * x1; } 程序运行后的输出结果是( )。

    A.ABE

    B.BDI

    C.BCF

    D.BCD


    正确答案:B
    第一次循环时,b=1,输出结果为B;第二次循环时,b=3,输出结果为D;第三次循环时,b=8,输出结果为I。

  • 第5题:

    下列程序的运行结果是()。 include class A { inta; public: A(){a=0:} A(int aa) {

    下列程序的运行结果是( )。 #include<iostream.h> class A { inta; public: A(){a=0:} A(int aa) { a=aa; cout<<a++; } }; void main() { A x,y(2),z(3); cout<<endl; }

    A.0

    B.23

    C.34

    D.25


    正确答案:B

  • 第6题:

    有下列程序: #include<stdi0.h> intf(intx) { inty; if(x==0‖x==1)return(3); y=x*x-f(X-2); returny; } voidmain( ) { intZ; z=f(3);printf("%d\n",z); } 程序的运行结果是( )。

    A.0

    B.9

    C.6

    D.8


    正确答案:C
    C。【解析】本题考查了函数的调用,在f函数中将实参传给X,判断if语句为假。接着执行y=3*3=f(1),再执行f(1)而f(1)满足if条件语句,所以f(1)的值为3,那么代入y=3*3-f(1)=9-3=6,故选项C正确。

  • 第7题:

    main() {intx=3,i; for(i=0;i<3;i++)printf(""%d"",f(x)); } intf(inta) {intb=0; staticc=3; b++;c++; return(a+b+c); } 执行此程序后屏幕上显示的结果是什么:()

    • A、8、10、10
    • B、7、9、10
    • C、8、9、11
    • D、8、9、10

    正确答案:D

  • 第8题:

    单选题
    有以下程序: #include  int m1(int x,int y) {  return x<=y?x:y; } int m2(int x,int y) {  return x<=y?y:x; } int fun(int a,int b) {  return a+b; } main() {  int x=2,y=3,z=1;  printf(%d,fun(m1(x,y),m2(y,z))); } 程序的运行结果是(  )。
    A

    6

    B

    5

    C

    4

    D

    3


    正确答案: D
    解析:
    条件运算符“?:”语法形式为:exp1?exp2:exp3。执行规则为:计算表达式exp1的值,测试其是否为0;如果exp1的值非0,则对exp2求值,并把这个值作为条件表达式的结果输出,不计算exp3;如果exp1的值为0,则对exp3求值,并把这个值作为条件表达式的结果输出,不计算exp2。函数m1实现返回传入两个参数中的最小值。函数m2实现返回传入两个参数中的最大值。函数fun实现返回传入两个参数之和。程序执行过程为:调用m1(2,3)返回2,调用m2(3,1)返回3,调用fun(2,3)返回5,输出结果5,答案选择B选项。

  • 第9题:

    单选题
    有以下程序:#include int disp(char *str){ while(*str) putchar(*str++); putchar('#'); return *str;}main(){ printf(%d,disp(C##123));}程序运行后的输出结果是(  )。
    A

    C##123#0

    B

    C##1230

    C

    C##0

    D

    C##123#\0


    正确答案: B
    解析:
    disp函数中,存在while循环,当指针指向地址单元存储的字符不等于空字符'\0',输出此字符,否则退出循环,输出'#'。在主函数中调用disp函数时,字符串"C##123"先全部输出,当指针指向字符串最后的空字符时,退出循环,输出'#',并且再将'\0'返回输出。由于disp函数返回类型为int,所以返回'\0'的ASCII码0,答案选择A选项。

  • 第10题:

    单选题
    有如下程序: #include main() {  int x=0x13;  printf(%d,x+1); } 程序运行后的输出结果是(  )。
    A

    12

    B

    14

    C

    20

    D

    13


    正确答案: A
    解析:
    整型常量中,十进制整常量没有前缀,输出格式控制符为%d;八进制整常量以0作为前缀,输出格式控制符为%o;十六进制整常量以0X或0x作为前缀,输出格式控制符为%x。十六进制数0x13表示成十进制数为19,以十进制格式输出x+1=19+1=20,答案选择C选项。

  • 第11题:

    单选题
    main() {intx=3,i; for(i=0;i<3;i++)printf(""%d"",f(x)); } intf(inta) {intb=0; staticc=3; b++;c++; return(a+b+c); } 执行此程序后屏幕上显示的结果是什么:()
    A

    8、10、10

    B

    7、9、10

    C

    8、9、11

    D

    8、9、10


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

  • 第12题:

    单选题
    有以下程序 #include  void fun(int x,int y,int *c,int *d) {  *c=x+y;  *d=x-y; } main() {  int a=4,b=3,c=0,d=0;   fun(a,b,&c,&d);   printf("%d %d",c,d);  } 程序的输出结果是(  )。
    A

    7 1

    B

    4 3

    C

    3 4

    D

    0 0


    正确答案: D
    解析:
    main函数中变量c和d以传地址的方式传递参数,形参的改变会导致实参的改变。答案选择A选项。

  • 第13题:

    有以下程序includestdio.hintf(intt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,4);printf(“%d\n“,s);}intf(intt[],intn){if(n0)returnt[n-1]+f(t,n-1);elsereturn0;}程序运行后的输出结果是()。

    A、4

    B、10

    C、14

    D、6


    参考答案:B

  • 第14题:

    有以下程序:include main(){ printf("%d\n",NULL);}程序运行后的输出结果是()。A.0B.1C

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

    A.0

    B.1

    C.-1

    D.NULL没定义,出错


    正确答案:A
    解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数为0。所以,4个选项中选项A符合愿意。

  • 第15题:

    有以下程序includevoid main(){int a=1,b=0;printf("%d,",b=(a++)+(a++));pfintf("%d\

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

    A.4,6

    B.2,5

    C.3,5

    D.2,6


    正确答案:B

  • 第16题:

    有以下程序

    #include <stdio.h>

    main( )

    { char a,b,c;

    b=’1’; c=’A’;

    for(a=0; a<6; a++)

    { if (a%2) putchar(b+a);

    else putchar(c+a);

    }

    }

    程序运行后的输出结果是

    A) 1B3D5F

    B) ABCDEF

    C) A2C4E6

    D) 123456


    正确答案:C
    【答案】C
    【知识点】for循环与取模运算
    【解析】第一次循环a的值为0 ,a%2也为0 ,条件不满足所以打印的是(c+a)即变量c的值“A”。第二次a的值为1,条件a%2的值为1,条件满足打印字符(b+a)即字符 “2”。第三次a的值为2,条件不满足,打印(a+c)即字符”C”。同理打印后续字符为“4E6”。

  • 第17题:

    下列程序的输出结果是______。 include main() {intx=10,y=10,i; for(i=0;x>8;y=++) pri

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

    include<stdio.h>

    main()

    { intx=10,y=10,i;

    for(i=0;x>8;y=++)

    printf("%d%d",X--,y);

    }


    正确答案:101091
    101091 解析:for(表达式1;表达式2;表达式3) 语句的功能是:首先计算表达式1的值,然后检测表达式2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式3的值。然后再检测表达式2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环;第 1次循环x>8成立,输出x=10,y=10后,x的值减1,i=1,执行y=++i操作,y的值变为1;判断条件还成立,输出x=9,y=1,然后x的值减1,循环条件不成立,则退出循环。

  • 第18题:

    写出程序的运行结果。 main( ) { int a=0; for ( a=0;a<3;a++ ); printf ( " %d/n", a ); } 输出结果是()。


    正确答案:3

  • 第19题:

    单选题
    有以下程序: #include  int f(int x); main() {  int a,b=0;  for(a=0;a<3;a++)  {   b=b+f(a);   putchar('A'+b);  } } int f(int x) {  return x*x+1; } 程序运行后的输出结果是(  )。
    A

    ABE

    B

    BDI

    C

    BCF

    D

    BCD


    正确答案: A
    解析:
    第一次调用函数f,返回0*0+1=1,'A'+1为B,输出B;第二次调用函数f,返回f(1)=2,b=1+2=3,输出D;第三次为调用函数f,返回f(2)=5,b=3+5=8,输出I。答案选择B选项。

  • 第20题:

    单选题
    有以下程序:#include void fun(int n){ int i; if((i=n/10)!=0)  fun(i); putchar(n%10+'0');}main(){ fun(256);}程序运行后的输出结果是(  )。
    A

    256

    B

    652

    C

    2560

    D

    52


    正确答案: C
    解析:
    程序的执行过程为:调用函数fun(256),i=25,即i!=0,if条件成立,调用fun(25),i=2,即i!=0,if条件成立,调用fun(2),i=0,if条件不成立,输出字符'2',返回fun(25),输出字符'5',返回fun(256),输出字符'6',函数调用结束。答案选择A选项。

  • 第21题:

    单选题
    有如下程序#include main() { if('\0'== 0)putchar('X'); if('0'== 0)putchar('Y'); if('a'>'b')putchar('Z'); printf();}程序运行后的输出结果是(  )。
    A

    X

    B

    XYZ

    C

    YZ

    D

    Y


    正确答案: C
    解析:
    考查ASCII字符,字符'\0'、'0'、'a'、'b'的ASCII码值分别为0、48、97、98。putchar函数是向标准输出设备上输出一个字符。程序执行过程为:判断'\0'==0成立,输出X;判断'0'==0不成立,不输出;判断'a'>'b'不成立,不输出。答案选择A选项。

  • 第22题:

    单选题
    有以下程序 #include  #define SUB(X,Y)(X+1)*Y main() {  int a=3,b=4;  printf(%d,SUB(a++,b++)); } 程序运行后的输出结果是(  )。
    A

    20

    B

    16

    C

    12

    D

    25


    正确答案: B
    解析:
    SUB(a++,b++)展开后是(a+++1)*b++ = (3+1)*4 = 16,答案选择B选项。

  • 第23题:

    单选题
    有以下程序#include main(){ int a=1, b=0; for(; a<5;a++) {  if(a%2 == 0)break;  continue;  b += a; } printf(%d ,b);}程序运行后的输出结果是(  )。
    A

    0

    B

    1

    C

    10

    D

    4


    正确答案: A
    解析:
    该程序的for循环中,如果循环变量a为偶数,则执行break语句直接跳出循环;如果a为奇数,则直接执行continue语句进入下一次循环。因此无论a取何值,语句b+=a都不会执行,即b没有改变,最后输出0。答案选择A选项。

  • 第24题:

    单选题
    有以下程序 #include  int f(int n) {  int t=0,a=5;  if(n/2)  {   int a=6;   t+=a++;  }  else  {   int a=7;   t+=a++;  }  return t+a++; } main() {  int s=0,i=0;  for(;i<2;i++) s+=f(i);  printf(%d,s); } 程序运行后的输出结果是(  )。
    A

    24

    B

    28

    C

    32

    D

    36


    正确答案: B
    解析:
    本题中需要注意在函数f中,最后的return语句中的变量a是函数初始定义的a,它的值始终是5,与if和else的执行语句中的a不是同一个变量。要注意区分变量的有效范围。执行for循环,i=0时,s=s+f(0)=0+f(0),f(0)=12,s=12;i=1时,s=s+f(1)=12+f(1),f(1)=12,s=24;i=2时循环结束。答案选择A选项。