更多“请阅读以下程序:main(){ int a=5,b=0,c=0; if(a=bc)printf(”"***\n");else printf("$$$\n");}以 ”相关问题
  • 第1题:

    阅读下面语句,则程序的执行结果是 【7】 。

    #include "stdio.h"

    main()

    { int a=-1,b=1,k;

    if((++a <0)&&!(b--<=0))

    printf("%d,%d\n",a,b);

    else printf( "%d,%d\n",b,a);}


    正确答案:
    1,0

  • 第2题:

    有以下程序 void change(int k[]){k[0]=k[5];} main() { int x[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4) { change(&x[n]); n++;} for(n=0;n<5;n++) printf("%d",x[n]); printf("\n"); } 程序运行后输出的结果是______。

    A.678910

    B.13579

    C.12345

    D.62345


    正确答案:A
    解析:本题考点为数组名作函数参数,当n=O时,把x[0]的地址传绐被调函数change,即将形参k与实参x指向同一个存储单元x[0],执行被调函数后,k[0]=6,即x[0]=6:当n=1时,形参k指向x数组的第1个数组元素所在单元,即 k[0]与x[1]共用同一存储单元,执行被调函数后,k[0]=7,即x[1]=7,依次类推得出x[0]到x[4]的值分别为6、7、8、 9、10。

  • 第3题:

    该程序运行的结果是( )。

    #include

    #include

    #define M 100

    void fun(int m, int *a, int *n)

    { int i,j=0;

    for(i=1;i<=m;i++)

    if(i%7==0||i==0)

    a[j++]=i;

    *n=j;}

    main()

    { int aa[M],n,k;

    clrscr();

    fun(10,aa,&n);

    for(k=0;k

    if((k+1) ==0)printf("\n");

    else printf("M",aa[k]);

    printf("\n");}


    正确答案:
    7

  • 第4题:

    以下程序的运行结果是( )。

    main()

    (int a=2,b=7,c=5;

    switch(a>0)

    {case 1:switch(b<0)

    {case 1:switch(");break;

    case 2:printf("!");break;

    }

    case 0:switch(c==5)

    {case 0:printf("*");break;

    case 1:printf("");break;

    case 2:printf("$");break;

    }

    default:printf ("&");

    }

    printf("\n");

    }


    正确答案:#&
    #& 解析:刚开始时,switch后面的表达式a>0为真(1),与case1匹配,然后执行case1后面的switch语句,表达式b0值为0,没有与其匹配的语句,返回外层,因为外层没有break语句,顺序执行case 0后面的switch语句,表达式“c==5”值为1,与其后面的case1匹配,因此输出#,遇到break返回外层,又因为外层没有break语句,顺序执行default后的语句,输出&。

  • 第5题:

    以下程序的输出结果是( )。 includefun(){ int a=0;a+=3;printf("%d",A); } main() {int

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

    include<stdio.h>

    fun()

    { int a=0;

    a+=3;

    printf("%d",A);

    }

    main()

    { int cc;

    for(cc=1;cc<=4;cc++)

    fun();

    printf("\n");

    }


    正确答案:3 3 3 3
    3 3 3 3 解析:本题考查for循环,for(cc=1;cc=4;cc++)表示循环4次,a+=3表示每次a的值增加3,但是子函数中没有将变量a定义为static类型,所以每次调用完子函数之后,变量a所做的改变都不能保存,这样在下一次调用子函数时,a的初值仍是0,所以不管调用多少次,子函数输出始终是3。

  • 第6题:

    下列程序的输出结果是______。 main() { int x=0,a=0,b=2; if(x=a+b) printf("****\n"); else printf("####\n"); }

    A.有语法错,不能通过编译

    B.通过编译,但不能连接

    C.****

    D.####


    正确答案:C
    解析:if语句中的条件表达式是赋值表达式,a+b值为2,赋给x,x值非0,输出****。

  • 第7题:

    有以下程序

    #include <stdio.h>

    void func(int n)

    { int i;

    for(i=0;i<=n;i++) printf(”*”);

    printf(”#”).

    }

    main( )

    { func(3); printf(”???? ”); func(4); printf(”\n”); }

    程序运行后的输出结果是

    A)****#????***#

    B)***# ????*** *#

    C)**#????*****#

    D)****#????*****#


    正确答案:D
    【答案】D
    【知识点】函数调用中形参与实参的关系
    【解析】第一次调用实参为3,所以形参变量n为3,打印四个*号后打印一个#号。然后在主函数中打印四个?。再次调用func函数,实参值为4,所以形参n的值为4,按照循环,打印五个*号后结束循环,再打印一个#号。

  • 第8题:

    以下程序的输出结果是#include <conio.h>#include <stdio.h>#define M 100void fun(int m, int *a, int *n){ int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;}main(){ int aa[M],n,k; clrscr(); fun(100,aa,&n); for(k=0;k<n;k++) if((k+1)%20==0)printf("\n"); else printf("%d",aa[k]); printf("\n"); }


    正确答案:77
    在本题中,程序首先定义一个宏M,然后定义一个fun函数,函数带有三个形参,分别是一个整型形参m和两个整型指针形参a、n。在函数体中,首先定义两整型变量i和j,并给j赋初值为0,然后执行循环,循环体中首先是一个条件判断语句,如果结果为真,则说明变量i能同时被7和11整除,并将变量i保存到数组中,循环结束后,将数组中元素的个数通过指针变量n进行返回。通过分析可以知道,fun函数的作用是求取1到m中能同时被7和11整除的整数,并将结果保存到数组a中。
    在主函数中,首先定义了两个整型变量和一个整型数组aa,然后调用clrscr()函数对文本模式窗口进行清除操作。接着调用fun函数,根据上面我们对fun函数的分析,要计算1~100之间能同时被7和11整除的整数,很显然,这样的数只有77一个,那么此时数组aa中只有一个元素为77,而n的值是1。
    接着执行for循环,从程序中不难看出循环的作用是将数组aa中的元素按一定的规则输出,其规则为每行最多只能输出20个值。结合上面的分析,数组aa中只有一个元素为77,因此,本题程序的最终输出结果为77。

  • 第9题:

    有以下程序: void f(int n,int * r) {int r1=0; if(n%3==0)r1=n/3; else if(n%5==0)r1=n/5; else f(--n,&r1); *r=r1;} main() {intm=7,r; f(m,&r);printf("%d\n",r);} 程序运行后的输出结果是______。

    A.2

    B.1

    C.3

    D.0


    正确答案:A
    解析: 题目中定义了一个指针变量r作为形参f()的函数。在主函数main()中定义了两个变量m和r,同时给m赋初值7,调用函数f(m, &r)并执行,函数f()通过指针r将最后的值返回。

  • 第10题:

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

    A.1,2

    B.1,1

    C.2,3

    D.3,3


    正确答案:A
    由题可知,输出是调用了f函数,其中有f(++n)和f(n++),其中n=0,所以输出的结果为l,2。

  • 第11题:

    下列程序的输出结果是______。main(){ int a=-1,b=1,k; if((++a<0)&& ! (b--<=0)) printf("%d %d\n",a,b); else printf("%d %d\n",b,a);}

    A.-1 1

    B.0 1

    C.1 0

    D.0


    正确答案:C

  • 第12题:

    单选题
    有以下程序:#include int f(int x[],int n){ if(n>1) {  f(&x[1],n-1);  printf(%d,,x[0]); } else  printf(%d,,x[0]);}main(){ int z[6]={1,2,3,4,5,6}; f(z,6); printf();}程序的运行结果是(  )。
    A

    6,5,4,3,2,1,

    B

    1,1

    C

    1,1,1,1,1,1,

    D

    1,2,3,4,5,6,


    正确答案: D
    解析:
    本题中递归函数调用执行过程为:f(z,6)→f(&z[1],5)→f(&z[2],4)→f(&z[3],3)→f(&z[4],2)→f(&z[5],1),输出x[0],也即z[5]=6,返回执行f(&z[4],2)之后的输出x[0]语句,即z[4]=5,同理再返回上一个f函数,依次输出4,3,2,1,答案选择A选项。

  • 第13题:

    请阅读以下程序:

    main()

    { int a=5,b=0,c=0;

    if(a=b+c)printf("***\n");

    else printf("$$$\n");

    }

    以上程序

    A.有语法错不能通过编译

    B.可以通过编译但不能通过连接

    C.输出***

    D.输出$$$


    正确答案:D

  • 第14题:

    有以下程序 void f(int n,int *r) { int r1=0; if(n%3==0) r1=n/3; else if(n%5==0) r1=n/5; else f(--n,&r1); *r=r1; } main() { int m=7,r; f(m,&r);printf("%d",r); } 程序运行后的输出结果是

    A.2

    B.1

    C.3

    D.0


    正确答案:A
    解析:本题考查了函数的递归调用。在f函数中,当m=7时,程序执行“f(--n,&r1);”语句,递归调用f(6,&r1),程序执行“r1=n/3;”语句,即r1= 6/3=2,然后执行“*r=r1;”语句,所以输出结果为2。

  • 第15题:

    以下程序的输出结果是()。includemain(){int a=-1,b=1,k; if((++a<0)&&! (b--

    以下程序的输出结果是( )。 #include <stdio.h> main() { int a=-1,b=1,k; if((++a<0)&&! (b-- <=0)) printf("%d %d\n",a,b); else printf("%d %d\n",b,a); }

    A.-1 1

    B.0 1

    C.1 0

    D.0 0


    正确答案:C
    解析:本题考查if语句。++a是先自增后使用,b--是先使用后自减。执行++a后,a值为0,不满足条件,所以a为0,b仍为1,接下去执行else语句,输出10。

  • 第16题:

    以下程序输出结果是( )。 main { int m=5; if(m++>5)printf("%d\n",m): else printf("%d\n",m--); }

    A.7

    B.6

    C.5

    D.4


    正确答案:B
    m++的意思是先用m的值再自加1,所以表达式的值为5,m为6,此时if语句条件m++>5不成立,执行else语句,则输出m--的值为6,而此时m为5,故选择B选项。

  • 第17题:

    假如整数数列中的数不重复,并存放在数组中。下列给定的程序中,函数fun()的功能是:删除数列中值为X的元素。 N中存放的是数列中元素的个数。

    请改正程序中的错误,使它能够得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include<stdio.h>

    define N 20

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

    {int p=0,i;

    a[n]=x;

    while (x!=a[p])

    p=p+1;

    if(p==n) return -1;

    else

    {for (i=p;i<n;i++)

    /*************found**************/

    a[i+1]=a[i];

    return n-1;

    }

    }

    main()

    {int w[N]={-3,0,1,5,7,99,10,15,30,90},

    x,n,i;

    n=10;

    printf("The original data :\n");

    for (i=0;i<n;i++) printf("%5d",w[i]);

    printf("\nInput x (to delete ): ");

    scanf("%d",&x);

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

    n=fun(w,n,x);

    if (n==-1) printf("***No be found!

    ***\n\n");

    else

    {printf("The data after deleted:\n");

    for (i=0;i<n;i++) printf("%5d",

    w[i]);printf("\n\n");

    }

    }


    正确答案:错误:a[i+1]=a[i]; 正确:a[i]=a[i+1];
    错误:a[i+1]=a[i]; 正确:a[i]=a[i+1]; 解析:上机改错题有一个优势,就是我们可以执行该程序,根据错误的提示再一步一步实现改错的目的,我们先不看程序是什么意思,甚至不用看它在求什么。按Ctrl+F9快捷键,然后看看屏幕提示。另外,审题时我们必须要注意“不要改动main()函数,不得增行或减行,也不得更改程序结构”,这样;对我们来说,只要读懂题意,对程序执行部分:
    {int p=0,i;
    a[n]=x;
    while (x!=a[p])
    p=p+1;
    if (p==n) return -1;
    else
    { for (i=p;in;i++)
    a[i+1]=a[i];
    return n-1;
    }
    逐步分析,再应用平时的常识加以区分,琢磨,相信答案不攻自破,这种考题,按Ctrl+F9快捷键后,屏幕一般都不会提示错误,否则就显得太儿科了一点,所以,我们并不需要着急去找错误,而是把程序读懂。

  • 第18题:

    有以下程序: #include<stdio.h> void func(int n) { int i; for(i=0;i<=n;i++)printf("*"): printf("#"); } main( ) {func(3);printf("????");func(4);printf("n\"); 程序运行后的输出结果( )。

    A.****#????***#

    B.***#????****#

    C.**#????****#

    D.****#????*****#


    正确答案:D
    本题考查简单的for循环,func(3)由于i是从0开始,所以会输出四个“*”和一个“#”,然后打印四个“?”func(4),会输出五个“*”和一个“#”,所以答案选择D。

  • 第19题:

    以下程序的输出结果是______。 main() { int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); }

    A.7

    B.6

    C.5

    D.4


    正确答案:B
    解析:注意自增和自减运算符在变量的左右侧的不同用法。本题条件表达式m++>5,即5>5不成立,此时m=6,执行else后面的语句,输出6后再m--使得m又等于5了。

  • 第20题:

    若有以下程序main(){ int p=5,a=5; if(p=1!=0) printf("%d\n",p); else printf("%d\n",p+2);}程序执行后的输出结果是


    正确答案:√
    在本题中,程序首先定义两个整型变量p和a,都被初始化为5,然后执行if语句,该语句的判断条件为p=1!=0,这也是求解这个题目的关键,由于运算符!=的优先级比运算符=高,因此,本判断条件表达式等价于p=(1!=0),很明显,1是不等于0的,返回的是一个真值结果1,因此,此时变量p的值为1,那么条件为真,if语句返回的结果也为真,因此,执行printf("%d\n",p);语句,由于此时变量p的值已经变为1,因此,程序运行后的输出结果为1。

  • 第21题:

    以下程序的输出结果是_______。 main() { int a=-1,b=1,k; if(++a<0)&&!(b-<=0)) printf("%d %d\n",a,b) ; else printf("%d %d\n",b,a) ; }

    A.-1 1

    B.0 1

    C.1 0

    D.0 0


    正确答案:C
    解析:逻辑运算符的优先次序如下:!(非)→&&(与)→||(或),但本题特别注意的是短路的概念。

  • 第22题:

    有以下程序: include int fun(int n) { if(n)return fun(n-1)+n; else return 0; } main( ) { printf("%d\n",fun(3));} 程序的运行结果是( )。

    A.4

    B.5

    C.6

    D.7


    答案:C
    解析:fun函数是一个递归函数,调用f(3),参数n=3,返回f(3-1)+3=f(2)+3=f(1)+2+3=f(0)+1+2+3=0+6=6。

  • 第23题:

    阅读下面语句,则程序的执行结果是【 】。

    include "stdio.h"

    main()

    { int a=-1,b=1,k;

    if((++a<0)&&!(b--<=0))

    printf("%d,%d\",a,b);

    else printf("%d,%d\n",b,a);}


    正确答案:10
    1,0 解析:与运算两边的语句必须同时为真时,结果才为真。当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。

  • 第24题:

    单选题
    有以下程序:#include int fun(int n){ if(n)return fun(n-1)+n; else return 0;}main(){ printf(%d,fun(3));}程序的运行结果是(  )。
    A

    4

    B

    5

    C

    6

    D

    7


    正确答案: C
    解析:
    fun函数是一个递归函数,调用f(3),参数n=3,返回f(3-1)+3 = f(2)+3 = f(1)+2+3 = f(0)+1+2+3 = 0+6 = 6。答案选择C选项。