更多“若i=3,则printf("%d",-i++);输出的值为 -4.”相关问题
  • 第1题:

    下列程序的输出结果是______。 main() { int i; for(i=1; i+1; i++) { if(i>4){printf("%d",i++);break;} } printf("%d",i++); }

    A.55

    B.56

    C.程序错误,没有输出

    D.循环条件永远为真,死循环


    正确答案:B
    解析:本程序中有个for循环,但注意到for循环的条件是“i+1”,也就是只要i+1的值为真(非零值均为真),就执行循环。当i=1的时,i+1的值为真,判断if条件不成立,执行i++,输出i的值为5。

  • 第2题:

    下列程序段中的变量已正确定义: for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*&qu

    下列程序段中的变量已正确定义:

    for(i=0;i<4;i++,i++)

    for(k=1;k<3;k++);printf("*");

    程序段的输出结果是( )。

    A.********

    B.****

    C.**

    D.*


    正确答案:D
    D。【解析】本题中第二个for循环语句的后面有一个分号,所以两个for循环语句的执行语句为空。当两个for循环语句执行完后,再执行printf语句输出一个星号。所以正确答案为选项D。

  • 第3题:

    下列程序的输出结果是______。include main(){ int i=1,j=3; printf("%d,",i++); {int

    下列程序的输出结果是______。#include <stdio.h>main (){ int i=1,j=3; printf("%d,",i++); { int i=0; i+=j*2; printf("%d,%d,",i,j); } printf("%d,%d\n",i,j);}

    A.1,6,3,1,3

    B.1,6,3,2,3

    C.1,6,3,6,3

    D.1,7,3,2,3


    正确答案:B

  • 第4题:

    有以下程序 main() { int a [3][2]={0},(* ptr [2],i,j; for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);pb++;} for(i=0;i<3;i++) { for(j=0;j<2;j++)printf("%2d",a[i][j]); printf("\n"); } } 若运行时输入:123<回车>,则输出结果是 ______。

    A.产生错误信息

    B.10

    C.12

    D.10 20 30 20 00 00 30


    正确答案:B
    解析:二维数组a,通过a[3][2]={0}将数组中的各个元素初始化为0,指针变量ptr,指向包含2个元素的一维数组。a[0][0]=1,a[1][0]=2,故本题的输出选B。

  • 第5题:

    有以下程序

    #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,按照循环,打印五个*号后结束循环,再打印一个#号。

  • 第6题:

    有以下程序 main() { int a[3][2]={0},(*ptr)[2],i,i; for(i=0; i<2; i++) { ptr=a+i; scanf("%d",ptr); ptr+++; } for(i=0;i<3;i++) { foil(j=0;j<2;j++) printf("%2d",a[i][j]); printf("\n"); } 若运行时输入:1 2 3<回车>,则输出结果为

    A.产生错误信息

    B.1 0 2 0 0 0

    C.1 2 3 0 0 0

    D.1 0 2 0 3 0


    正确答案:D
    解析:本题主要考查的是scanf()函数的输入原理。scanf()函数执行时,先从键盘缓冲区中读取用户输入的数据,若缓冲区为空或输入数据少于所需数据,则暂停程序等待用户的输入,直到用户敲入回车,scanf()将继续到键盘缓冲区中读取输入,如此反复直到满足scanf()函数所需数据,程序才继续执行下面的语句,而scanf()没有取完的数据仍然会保存在键盘缓冲区内,到程序结束时还没取完就会被释放掉,不会影响其他的程序运行。另外,scanf()函数将取到的数据匹配给第2个及其后面的指针参数所指的内存地址中去,而不检查该参数的类型是否匹配。所以在本题中考生不要被指针ptr的定义所迷惑,它所做的只不过是临时保存一下a+i的值,然后送到scanf()函数中去。题目首先定义了一个二维数组a[3][2]并用{0}初始化之,因为当所赋初值少于所定义数组的元素个数时,将自动给后面的元素朴以初值0,所以数组a[3][2]中所有的元素都被初始化为0了。在主程序的第一个for循环体中有三条语句,该循环体会被执行两次,每次执行时i的值分别为0和1。第1条语句让ptr的值分别为a+0(即元素a[0])[0])的地址)和a+1(即元素a[1][0]的地址);第2条语句是一条输入语句,它每次接受一个十进制整数存入到ptr所指的内存地址中,题目要求输入的数据为“123<回车>”,所以两次scanf()函数的调用使a[0][0]和a[1][0]分别被赋为1和2。笫3条语句让ptr自增1在这里没有起到任何作用,因为每次进入循环体ptr都会被重新赋值。最后,程序用一个两重循环按行列输出二维数组a中的所有元素。所以,选项B符合题意。

  • 第7题:

    下列关于i的输出值,正确的是()。A.include using namespace std; void main() { for(i

    下列关于i的输出值,正确的是( )。

    A.#include<iostream> using namespace std; void main() { for(int i=0;i<=3;i++) i++; cout<<i; { 则输出值为5。

    B.A程序的输出值为6

    C.#include<iostream> using namespace std; void main() { for(int i=0;i<=3;i++) { i++; cout<<i; } } 则输出值为13。

    D.C程序的输出值为5


    正确答案:C
    解析:选项A的程序输出4,i等于4不满足循环条件,退出循环;选项C的程序共执行了两次循环体,第1次输出i等于1,第2次循环输出i等于3,所以选项C输出值为13。

  • 第8题:

    以下程序的输出结果是( )。main(){ int i; for(i=0;i<3;i++) switch(i) { case 0:printf(&quo

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

    main()

    { int i;

    for(i=0;i<3;i++)

    switch(i)

    { case 0:printf("%d",i);

    case 2:printf("%d",i);

    default:printf("%d",i); }

    }

    A.000102

    B.000020

    C.000122

    D.000111


    正确答案:C
    当i=0时,执行switch语句,对应的执行case0,输出0,因为没有break,接着执行case2的语句,又输出一个0,接着执行default语句,再输出一个0,返回i++;i=1时,没有case语句,执行default语句,输出一个1,接着又返回i++;当i=2时执行case2和default语句分别输出一个2,此时又返回i++,i变为3,for循环不成立,终止,最后输出000122。

  • 第9题:

    以下程序的输出结果是_[12]_______.

    #include <stido.h>

    main()

    { int i;

    for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'A');

    printf("\n");

    }


    正确答案:

    ACE 

  • 第10题:

    若所用变量均已正确定义,则执行下面程序段后的值是() for(i=0 ; i<2 ; i++ ) printf("YES"); printf("/n");


    正确答案:YESYES

  • 第11题:

    以下程序的输出结果是main(){inti;for(i=1;i<6;i++){if(i%2){printf(""#"");continue;}printf(""*"");}printf(""/n"");}

    • A、#*#*#
    • B、#####
    • C、*****
    • D、*#*#*

    正确答案:A

  • 第12题:

    有以下程序 main() { int x[3][2]={0},i; for(i=0;i<3;i++) scanf("%d",x[i]); printf("%3d%3d%3d/n",x[0][0],x[0][1],x[1][0]); } 若运行时输入:246<回车>,则输出结果为()

    • A、200
    • B、204
    • C、240
    • D、246

    正确答案:B

  • 第13题:

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

    main()

    { int i;

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

    { if(i>4)

    { printf("%d\n",i);

    break;}

    printf("%d\n",i++);}}


    正确答案:1 3 5
    1 3 5 解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf("%d \n",i++);输出1,同时i自加1;执行第二次for循环时,i:3;同样的if语句条件不满足,所以直接执行 printf("%d\n",i++);输出3,同时i自加1执行第三次for循环时,i=5,讧语句条件满足,所以执行printf ("%d\n",i)输出5,然后break语句跳出了for循环。

  • 第14题:

    有以下程序 main() { int a[3][2]={0},(*pb)[2],i,j; for(i=0;i<2;i++) { ptr=a+i; scanf("%d",ptr);ptr++; } for(i=0;i<3;i++) { for(j=0; j<2;j++) printf("%2d",a[i][j]); printf("\n"); } } 若运行时输入:1 2 3<回车>,则输出结果是______。

    A.产生错误信息

    B.1 0 2 0 0 0

    C.1 2 3 0 0 0

    D.1 0 2 0 3 0


    正确答案:D

  • 第15题:

    有以下程序: #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。

  • 第16题:

    若变量n中的值为24,则print()函数共输出行,最后一行有个数。void print (int n,int aa[]){ int i; for(i=1; i<1;i++) { printf("%6d",aa[i]); if(!(i%5)) printf("\n"); } printf ("\n");}


    正确答案:5,4
    语句if(!(i%))printf("\n");是将每5个数输出一行,因为n的值为24,所以共输出5行,最后一行有4个数。

  • 第17题:

    以下程序的输出结果是( )。 main { int i; for(i=0;i<3;i++) switch(i){case 0:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } }

    A.000102

    B.000020

    C.000122

    D.000111


    正确答案:C
    当i=0时,执行switch语句,对应的执行case0,输出0,因为没有break,接着执行case2的语句,又输出一个0,接着执行default语句,再输出一个0,返回i++;i=1时,没有case语句,执行default语句,输出一个1,接着又返回i++;当i=2时执行case2和default语句分别输出一个2,此时又返回i++,i变为3,for循环不成立,终止,最后输出000122。

  • 第18题:

    定义变量和数组如下:int i;int x[3][3]=(1,2,3,4,5,6,7,8,9);则语句for(i=0;i<3;i++)printf(”%d”,x[1][2-i]);的输出结果是 ( )


    正确答案:C

  • 第19题:

    若变量已正确定义,有以下程序段i—o;do printf("%d,",i);while(i++);printf("%d&q

    若变量已正确定义,有以下程序段

    i—o;

    do printf("%d,",i);while(i++);

    printf("%d",i)

    其输出结果是( )。

    A.0,0

    B.0,1

    C.1,1

    D.程序进入无限循环


    正确答案:B
    本题中,变量i的初始值等于0,执行循环体中的语句后,输出i的值为0。while后面括号中表达式i++的值为0,循环结束。此时变量i自加1,所以再次“1”。

  • 第20题:

    ( 11 )有以下程序

    #include <stdio.h>

    main ()

    { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

    int b[3]={0},i;

    for ( i=0;i<3;i++ ) b[i]=a[i][2]+a[2][i];

    for ( i=0;i<3;i++ ) printf ( " %d " ,b[i] ) ;

    printf ( " \n " ) ;

    }

    程序运行后的输出结果是 【 11 】 。


    正确答案:

  • 第21题:

    试题12

    有以下程序

    #include <stdio.h>

    main()

    { int c[3]={0}, k, i;

    while((k=getchar())!=’\n’)

    c[k-‘A’]++;

    for(i=0; i<3; i++) printf(“%d”, c[i]); printf(“\n”);

    }

    若程序运行时从键盘输入ABCACC<回车>, 则输出结果为______.


    正确答案:
    试题12分析
    ABCACC使得k-‘A’有两个为0,3个位2,1个为1,即c[0]自增2次,c[1]自增1次,c[3]自增3次。
    试题12答案
      213

  • 第22题:

    若所用变量都已正确定义,请填写以下程序段的输出结果() for(i=1;i<=5;i++);       printf("OK/n");


    正确答案:OK

  • 第23题:

    若i =3,则printf("%d",-i++);输出的值为 -4.


    正确答案:错误

  • 第24题:

    单选题
    有以下程序段,若变量已正确定义并赋值  if(a>b)printf(x=%d,,x);  else printf(y=%d,,y);  if(a<=b)i++;  else j++; 则与此程序段功能相同的选项是(  )。
    A



    if(a>b)
    {
     printf(x=%d,,x);
     j++
    }
    else
    {
     printf(y=%d,,y);
     i++
    }

    B



    if(a>b)
    {
     printf(x=%d,,x);
     i++
    }
    else
    {
     printf(y=%d,,y);
     j++
    }

    C



    if(a<=b)
    {
     printf(x=%d,,x);
     i++
    }
    else
    {
     printf(y=%d,,y);
     j++
    }

    D



    if(a>=b)
    {
     printf(x=%d,,x);
     i++
    }
    else
    {
     printf(y=%d,,y);
     j++
    }


    正确答案: A
    解析:
    程序段执行过程为:如果a>b,输出x,否则输出y;如果a<=b,i加1,否则j加1。A项如果a>b,输出x且j加1,否则输出y且i加1,与题目中功能相同,A项正确。B项如果a>b,输出x且i加1,否则输出y且j加1,与题目中功能不相同,B项错误。C项如果a<=b,输出x且i加1,否则输出y且j加1,与题目中功能不相同,C项错误。D项判断条件为a>=b,多了a=b,D项错误。答案选择A选项。