更多“有以下程序 main(){intm=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);) 程序运 ”相关问题
  • 第1题:

    有以下程序 include main() { int n,*p=NULL; *p=&n; printf("

    有以下程序 #include <stdio.h> main() { int n,*p=NULL; *p=&n; printf("Input n:");scanf("%d",&p);printf("output n:");printf("%d\n",p); } 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是

    A.int n,*p=NULL;

    B.*p=&n;

    C.scanf("%d",&p)

    D.printf("%d\n",p);


    正确答案:A
    解析:指针变量在定义时需要加星号,而在赋值时则不用,故选项B)错误。本题中,scanf()函数和printf()函数都是要对指针变量p指向的地址处的数据进行访问,不是变量本身。选项C)中多了取地址运算符,选项D)中少了指针运算符。

  • 第2题:

    有以下程序: main() {int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是 ______。

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:执行“printf("%d%d",m++,++n);”后,输出的是m和n+l的值1235,接着执行“printf("%d%d\n"n++,++m);”输出n和m+1的值3514。

  • 第3题:

    有以下程序

    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时,不再执行循环体中尚未执行的语句,而直接跳转到for语句中执行表达式3(本程序中为空),再判断nk是否成立。

  • 第4题:

    有以下程序 main() { int m=3 n=4,X; X=-m++; x=x+8/++n; printf("%d\n",x); } 程序运行后的输出结果是

    A.3

    B.5

    C.-1

    D.-2


    正确答案:D
    解析:本题考核的知识点是运算符的优先级。主函数中首先定义了整型变量m、n和x,并给m和n赋初值为3和4,接着执行两条赋值语句,第一条x=-m++等价于x=-(m++),其值即为-3,第二条x=x+8/++n等价于X=X+8/(++n),即为x=-3+8/5=-2,因此最后输出x的值为-2。所以,4个选项中选项D符合题意。

  • 第5题:

    有以下程序main() { int m=14,n=24; printf("%d,%d",m++,++n); printf("%d,%d\n",n++,++m); }程序运行后的输出结果是A.15252616 B.14252515 C.14252516 D.14252615


    正确答案:C
    本题考查自增运算符的使用。
    自增运算符与变量的结合方向为自右向左。题目中用两个printf函数进行变量的输出,第一个printf函数需要输出的变量为m++和++n,m的初始值为14,n的初始值为24,m++操作表示先将m的值进行输出,再进行++操作,输出m的值为14,进行++操作后,m的值变为15。++n操作是将n的值加1后再输出,输出值为25。同理,对于第二个printf函数,有输出25,16。结果为14252516。

  • 第6题:

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

  • 第7题:

    有以下程序: include main( ){ int m =12,n=34;printf( "% d% d" ,m++ , ++n);printf(

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

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:程序执行printf("%d%d",m++,++n);后,输出的是m和n+1的值1235,然后m+1=13,再执行printf("%d%d\n",n++,++m);输出n和m+1的值3514,之后n+1=36。这里要注意的是m++和++m的区别:m++是先输出m的值,再执行m++;++m是先执行++m,再输出m的值。

  • 第8题:

    写出下列程序的运行结果。 main { int n; For(n=3; n<=10; n++) { if(n%6= =0) break; Printf(“%d”,n); } }


    正确答案:
    3 4 5

  • 第9题:

    有以下程序

    #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
    解析:static变量用于局部变量中有记忆功能和全局生存期。函数中的静态变量的特点是每次调用函数,静态变量的值是上次调用完该函数后的静态变量值,所以在此题中,第一调用函数,返回1,此时函数中的静态变量n的值为l,所以第二次调用函数时,返回值为2。

  • 第10题:

    有以下程序 main() { int i,n=0; for(i=2;i<5;i++) { do {if(i%3)continue; n++; }while(!i); n++; } printf("n=%d\n",n); } 程序执行后输出结果是

    A.n=5

    B.n=2

    C.n=3

    D.n=4


    正确答案:D
    解析:do…while的结构形式为:do循环体,while(条件表达式),当程序执行到do后,先执行循环体一次,然后才对条件表达式进行计算、判断。若条件表达式的值为真,则重复执行一次循环体;否则退出,与while结构相比,do…while结构至少要执行一次循环体;运算符%是求模运算,即求两个数相除的余数。continue语句的作用时结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中,当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1,当i=3时,执行do循环。由于if(3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3;当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断 while循环条件为假,故退出while循环,执行n++,此时n的值为4;当i=5时,退出for循环,因此最后输出的n的值为4。

  • 第11题:

    试题33

    有以下程序

    #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
    试题33分析
    n=0,f(++n)),n先增1,调用f,n=0+1=1,输出n;f(n++))先取n的值1调用,n=1+1=2,然后输出n,最后n增1,变成3;所以第一次输出为1,第二次输出为2;
    试题33答案
    A

  • 第12题:

    单选题
    有以下程序:#include int a=2; int f(){ static int n;  int m;  m=n=0;  n++; a++; m++; return m+n+a; }main(){ int k;  for(k=0;k<3;k++)  printf(%d, ,f()); printf(); }程序的运行结果是(  )。
    A

    5,6,7,

    B

    5,7,9,

    C

    5,8,11,

    D

    5,5,5,


    正确答案: B
    解析:
    static变量编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元,即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值是上一次函数调用结束时的值。程序执行过程为:k=0,a=2,n=0,m=0;n=1,a=3,m=1,返回5;k=1,a=3,n=0,m=0;n=1,a=4,m=1,返回6;k=2,a=4,n=0,m=0;n=1,a=5,m=1,返回7;k=3退出循环。答案选择A选项。

  • 第13题:

    有以下程序: main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; }while(!i); n++; } printf("n=%d\n",n); } 程序执行后的输出结果是( )。

    A.n=5

    B.n=2

    C.n=3

    D.n=4


    正确答案:D
    解析:for循环当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1。当i=3时,执行do循环,由于if{3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3。当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++,此时n的值为4。当i=5时,退出for循环,因此最后输出的n值为4。所以,4个选项中选项D符合题意。

  • 第14题:

    下列程序的运行结果为______。main(){ int n; for (n=1;n<=10;n++) { if(n%3==0) continue; printf("%d",n); }}

    A.12457810

    B.369

    C.12

    D.12345678910


    正确答案:A

  • 第15题:

    下列程序的输出结果是______。 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

  • 第16题:

    设有如下程序: #include"stdio.h" main() { char c; int m=0,n=0; while((c=getchar())!='\n') {if(c>='A'&&c<='Z') m++; else if(c>='a'&&c<='z')n++;} printf("m=%d,n=%d",m,n);} 如果从键盘上输入:AbCdefGHj<回车>,则程序运行后的输出结果是( )

    A.m=5,n=4

    B.m=4,n=5

    C.m=9,n=0

    D.无确定值


    正确答案:B

  • 第17题:

    有以下程序:include main( ){int m =0256,n =256;printf( "% o % o \n" ,m,n); 程序

    有以下程序: #include <stdio, h> main( ) { int m =0256,n =256; printf( "% o % o \n" ,m,n); 程序运行后的输出结果是( ) 。

    A.0256 0400

    B.0256 256

    C.256 400

    D.400 400


    正确答案:C
    解析:o格式符是以八进制形式输出整数。此题m已是八进制数(256前面的0表示此数是八进制数),n是十进制数,所以输出时,直接输出m的值,n的值需要转换成八进制数400后再输出。

  • 第18题:

    有以下程序的输出结果是( ) main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); }

    A.n=5

    B.n=2

    C.n=3

    D.n=4


    正确答案:D
    解析:程序执行过程为:
      i (i%3) continue (!i) n
      ①2  2  执行  0 1
      ②3  0  不执行 0 3
      ③4  1  执行  0 4
      ④5循环结束。

  • 第19题:

    以下程序运行后的输出结果是main{ int i,m=0,n=0,k=0; for(i=9;i<=11;i++) switch(i/10) { case 0: m++;n++;break;  case 1: n++;break;  default:k++;n++; } printf("%d %d %d\n",m,n,k);}


    正确答案:1 3 0
    在本题中,程序首先定义了四个整型变量,其中变量i为循环变量,其他三个变量都被初始化为0。然后执行循环,从循环变量i的初值和结束条件我们可以看出,循环运行了三次。
    第一次循环,当i=9时,执行switch(i/10),由于变量i和10都是整型数值,按照C语言的规定,计算结果也应为整型,因此,i/10的结果为0,执行case 0结构,即变量m和n的值分别加1,然后执行break语句结束switch结构。
    第二次循环时,i=10,此时i/10=1,执行case 1结构,变量n的值再增加1,然后执行break语句结束switch结构。
    第三次循环时,i=11,此时i/10的结果仍然为1,执行case 1结构,变量n的值再增加1,然后执行break语句结束switch结构。
    循环结束,此时,变量m、n和k的值分别为1、3、0,然后执行输出语句,分别输出这几个变量的值,因此,程序最后的输出结果是1 3 0。

  • 第20题:

    若执行以下程序时从键盘上输入9,则输出结果是( )。

    main() { int n; scanf("%d",&n); if(n++<10) printf("%d\n",n); else printf("%d\n",n--); }

    A.11

    B.10

    C.9

    D.8


    正确答案:B
    解析:程序的功能是从键盘输入一个整数,然后执行if语句的条件表达式n++10。表达式n++10,先执行n10,后对n加1。程序中从键盘输入的n值为9,910,判断的条件为真,然后n加1,即n的值变为10,程序执行后面的printf语句输出n的值为10,所以,选项B正确。

  • 第21题:

    有以下程序:include main(){ int i,n=0;for(i=2;i<5;i++){do {if(i%3) continue;n++;

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

    A.n=5

    B.n=2

    C.n=3

    D.n=4


    正确答案:D
    解析:for循环中,当i=2时,i%3为真,结束本次while循环,!i为假,执行n++,n为1;当i=3时,i%3=0,执行n++,n为2,!i为假,执行n++,n为3;当i=4时,i%3为真,结束本次while循环,!i为假,执行n++,n为4;当i=5时,for循环结束。这时输出n=4。

  • 第22题:

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

    A.1,1

    B.2,2

    C.3,3

    D.4,4


    正确答案:C
    解析:在本程序的for循环中,用到了一个continue语句,continue语句的作用是停止本次循环,即不执行循环体内continue语句后面的其他语句,继续下次循环的条件判断。首先在for循环中n自加1(值变为1),然后执行后面的if语句,由于if语句后面括号的表达式(1%3!=0)的值为真,程序执行continue语句,回到for循环的开始部分,并且判断for循环中的条件表达式(nk)为真,重复执行“n++”;”语句,如此循环直到n=3时,if语句判定条件中表达式(3%3!=0)的值为假,程序执行if语句后面的“k--”语句,此时k的值为3,不满足“nk”,退出for循环。故最后的k和n的值为3和3,选项C符合题意。

  • 第23题:

    以下程序的运行结果是()  main( )  {  int n;      for(n=1;n<=10;n++)          {            if(n%3==0) continue;            printf("%d",n);         }  }

    • A、12457810
    • B、369
    • C、12
    • D、1234567890

    正确答案:A

  • 第24题:

    单选题
    有以下程序: #include  int f(int m) {  static int n=0;  n+=m;  return n; } main() {  int n=0;  printf(%d,f(++n));  printf(%d,f(n++)); } 程序运行后的输出结果是(  )。
    A

    12

    B

    11

    C

    23

    D

    33


    正确答案: C
    解析:
    在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久性的存储单元,可以继续使用存储单元中原来的值。程序先执行++n,即n先自增1,再调用f函数,函数中进行n+=m运算,结果仍为1,即第一个输出值即为1;第二次调用f函数时,执行n+=m运算,结果为2,返回输出,即输出值为2,然后n再++。答案选择A选项。