更多“有以下程序 main() {intt=1,i=5; for( ; i>=0;i--) t*=i; printf("%d\n",t); } 执行后输出结果是 ”相关问题
  • 第1题:

    有以下程序:void main(){int t=1,i=5; for( ;i=0;) i--;t*=i; printf("%d\n",t);}执行后输出结果是。


    正确答案:×
    赋值符号将i赋值为0,即使得表达式的值为0,不执行循环体,t=t*i=0,所以输出为0.

  • 第2题:

    有以下程序

    main()

    {int i,s=0,t[]={l,2,3,4,5,6,7,8,9};

    for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}

    程序执行后的输出结果是

    A.45

    B.20

    C.25

    D.36


    正确答案:C
    解析:统计1~9九个数中的奇数和,此题考察指向数组的指针。C语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第i+1个元素。程序运行的结果是1+2+3+4+5+6+7+8+9=25。

  • 第3题:

    有以下程序: void sum(int *a) { a[0]= a[1]; } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--)sum(&aa[i]); printf("%d\n",aa[0]); } 执行后的输出结果是 ______。

    A.4

    B.3

    C.2

    D.1


    正确答案:A
    解析:分析函数调用即得。

  • 第4题:

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

    main()

    { char *p[]={" BOOL","OPK","H","SP"};

    int i;

    for(i=3; i>0;i--,i--)printf(" %c",*p[i]);

    printf("\n");}


    正确答案:SO
    SO 解析:考查用指针引用字符串数组中元素的方法。题中需要注意两个问题:一是for循环的修正表达式共执行两次"i--"操作;二是*p[i]是对某个字符的引用。

  • 第5题:

    有以下程序 main() {int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i-0;i<3;i++) printf("%d",t[2-i][i]); } 程序执行后的输出结果是______。

    A.753

    B.357

    C.369

    D.751


    正确答案:B
    解析:此题考核的是二维数组的应用,将初始值放在—对大括号内,按数组元素排列的顺序对各元素赋值,二维数组中行下标可以省略,但列下标必须要指定,由此题可以看出数组t是一个三行三列的二维数组,执行for循环语句t[2-i][i]分别为t[2][0],t[1][1],t[0][2],得出输出结果为357。

  • 第6题:

    以下程序的输出结果是( )。 include main() {int i=10,j=0; do {j=j+i; i--; }while(i>5

    以下程序的输出结果是( )。 include<stdio.h> main() {int i=10,j=0; do {j=j+i; i--; }while(i>5); printf("%d\n",j); }


    正确答案:40
    40 解析:分析程序,初始时i=10,j=0,这时do循环中的“i=j+i”

  • 第7题:

    有以下程序

    main()

    { int i;

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

    { if(i++%5==0)

    if(++i%8==0) printf("%d",i);

    }

    printf("\n");

    }

    执行后的输出结果是

    A.5

    B.24

    C.32

    D.40


    正确答案:C
    解析:当for循环执行到第30次时,i的值为30能被5整除,然后继续执行两次if语句,i经过两次自加1运算,值变为32,能被8整除,故此时第一次执行"printf("%d",i);"语句,即输出32。

  • 第8题:

    有下列程序: main {int i,s=0,t[]={1,2,3,4,5,6,7,8,9); for(i=0;i<9;i+=2)s+=*(t+i); printf("%d\n",s); } 程序执行后的输出结果是( )。

    A.45

    B.20

    C.25

    D.36


    正确答案:C
    在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。

  • 第9题:

    有以下程序 main() {int i; for(i=1;i<=40;i++) {if(i++%5==0) if(++i%8==0) pfintf("%d",i); } printf("\n"); } 执行后的输出结果是

    A.5

    B.24

    C.32

    D.40


    正确答案:C
    解析: 当for循环执行到第30次时,i的值为30能被5整除,然后继续执行两次if语句,i经过两次自加1运算,值变为32,能被8整除,故此时第一次执行“printf("%d",i);”语句,即输出32。

  • 第10题:

    有以下程序: fun(char p[][10]) { int n=0,i; for(i=0;i<7;i++) if(P[i][0]=='T')n++; return n; } main() {char str[][10]={"Mon","Tue","wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str)); } 程序执行后的输出结果是( )。

    A.1

    B.2

    C.3

    D.0


    正确答案:B
    解析:fun()函数实现的功能为查找二维字符数组第一列中为字符T的个数。二维数组的地址作为函数的实参。

  • 第11题:

    有以下程序 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++)t=t+b[i][b][j][j]]; printf("%d\n",t); } 程序运行后的输出结果是( )

    A.3

    B.4

    C.1

    D.9


    正确答案:B

  • 第12题:

    单选题
    有以下程序 #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选项。

  • 第13题:

    以下程序运行后的输出结果是【】。main(){int i=10,j=0;do{j=j+i;i--;}while(i>2);printf("%d\n",j);}


    正确答案:52
    执行的结果其实就是10+9+8+7+6+5+4+3=52;

  • 第14题:

    有下列程序:

    main()

    {inti;

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

    {if(i+ +%5==0)

    if(++i%8==0) printf("%d",i);

    }

    printf("\n");

    } 执行后的输出结果是( )

    A.5

    B.24

    C.32

    D.40


    正确答案:C
    解析:在for循环体中,首先判断自变量i能否被 5整除,然后再自加两次,最后判断i能否被8整除。当 for循环执行到第30次时,i的值为30能被5整除,然后 i经过两次自加1运算,值变为32,能被8整除,故执行“printf("%d",i);语句,即输出32。本题的答案为选项C)

  • 第15题:

    有下列程序:main{int i,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(&qu

    有下列程序:

    main

    {int i,s=0,t[]={1,2,3,4,5,6,7,8,9};

    for(i=0;i<9;i+=2)s+=*(t+i);

    printf("%d\n",s);

    }

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

    A.A.45

    B.20

    C.25

    D.36


    正确答案:C
    在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。

  • 第16题:

    有以下程序: # define N 20 fun(int a[], int n, int m) { int i, j; for(i=m; i>=n; i--)a[i+1]=a[i]; } main() { int i, a[N]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; fun(a, 2, 9); for(i=0; i<5; i++)printf("% d", a[i]); } 程序运行后的输出结果是______。

    A.10234

    B.12344

    C.12334

    D.12234


    正确答案:C
    解析:由于用了宏定义a[10]~a[19]均为0。函数fun的功能是把从a[n]到a[m]中的元素依次赋给后面的一个元素。调用了fun(a, 2, 9)以后,a[N]={1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10}。

  • 第17题:

    以下程序运行后的输出结果是()。includevoid reverse(int a[],int n){int i,t;for(i=0;

    以下程序运行后的输出结果是( )。 #include<stdio.h> void reverse(int a[],int n) {int i,t; for(i=0;i<n/2;i++) {t==a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() {int b[10]={10,9,8,7,6,5,4,3,2,1};int i,s=0; reverse(b,10); for(i=0;i<3;i++)s+=b[i]; printf("%d\n",s); }

    A.27

    B.6

    C.25

    D.30


    正确答案:B
    解析:本题考查函数调用时的参数传递。函数reverse将数组b进行了逆置,此时b[10]={10,9,8,7,6,5,4,3,2,1),后面for语句的功能是将b中的后3个数累加,并将结果放在s中,最后将s输出,结果s=1+2+3=6。

  • 第18题:

    有以下程序include main(){ int.i=0,a=0;while(i<20){for(;;) {if((i%10)==0)break;el

    有以下程序 #include <stdio.h> main() { int.i=0,a=0; while(i<20) { for(;;) { if((i%10)==0) break; else i--; } i+=11; a+=i; } printf("%d\n",a) ; } 程序运行后的输出结果是( )

    A.21

    B.32

    C.33

    D.11


    正确答案:B

  • 第19题:

    有以下程序: void sum(int *A) {a[0]=a[1];} main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=1;i>0;i--)sum(&aa[i]); printf("%d\n",aa[0]); } 程序运行后的输出结果是______。

    A.4

    B.3

    C.2

    D.1


    正确答案:D
    解析:C语言规定,实参变量对形参变量的数据传递是“值传递”,只由实参传给形参,而不能由形参传回来给实参。函数调用结束后,形参单元被释放,实参单元仍保留并维持原值。本题要求输出aa[0]的值,结果应为1。

  • 第20题:

    有下列程序: main () { int i; for (i=1;i<=40; i++) { if (i++%5==0) if(++i%8==0) printf("%d",i); } printf ("\n"); } 执行后的输出结果是( )。

    A.5

    B.24

    C.32

    D.40


    正确答案:C
    解析:在for循环体中,首先判断自变量i能否被5整除,然后再自加两次,最后判断i能否被8整除。当for循环执行到第30次时, i的值为30能被5整除,然后i经过两次自加1运算,值变为32,能被8整除,故执行“pnntf("%d",i);"语句,即输出32。本题的答案为选项C)。

  • 第21题:

    有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

    有以下程序,程序执行后,输出结果是【 】

    include<stdio.h>

    void fun(int*A)

    { a[0]=a[1];}

    main()

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

    for(i=2;i>1=0;i-) fun(&a[i]);

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

    printf("\n");

    }


    正确答案:7777654321
    7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

  • 第22题:

    有以下程序 main() { int i:10,j=1; printf("%d,%d\n",i--,++j); } 执行后输出结果是

    A.9,2

    B.10,2

    C.9,1,

    D.10,1


    正确答案:B
    解析:++、--运算符在变量之前是先使变量的值加1或减1,然后再使用变量的值;如果在变量之后则先使用变量之前的值,再把变量的值加1或减1。显然,程序中表达式“i--”的值为10,“++j”的值为2,所以最后输出的值为10和2。

  • 第23题:

    有以下程序: main() { int i=10,j=1; printf("%d,%d\n",i--,++j); } 执行后输出结果是( )。

    A.9,2

    B.10,2

    C.9,1

    D.10,1


    正确答案:B
    解析:++、--运算符在变量之前是先使变量的值加1或减1,然后再使用变量的值;如果在变量之后则先使用变量之前的值,再把变量的值加1或减1。显然,程序中表达式i--的值为10,++j的值为2,所以最后输出的值为10和2,故B选项为所选。