itgle.com

有以下程序:include define N 20fun(int a[] ,int n,int m){int i,j;for(i=m;i> :n;i有以下程序: #include <stdio.h> #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.] = 11,2.3,4,5,6,7,8,9,10[; fun( a,2,9) for(i =0;i

题目
有以下程序:include define N 20fun(int a[] ,int n,int m){int i,j;for(i=m;i> :n;i

有以下程序: #include <stdio.h> #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.] = 11,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


相似考题
更多“有以下程序:#include <stdio.h>#define N 20fun(int a[] ,int n,int m){int i,j;for(i=m;i> :n;i ”相关问题
  • 第1题:

    设有如下程序includemain(){int **k, *j,i=100;j=&i; k=&j;printf("%d\n"”,**

    设有如下程序 #include<stdio.h> main() { int **k, *j,i=100; j=&i; k=&j; printf("%d\n"”,**k); } 上述程序的输出结果是______。

    A.运行错误

    B.100

    C.i的地址

    D.j的地址


    正确答案:B
    解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

  • 第2题:

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

  • 第3题:

    设有如下程序includemain(){int**k,*j,i=100j=&i;k=&j;printf("%d\n",**k);}

    设有如下程序 #include<stdio.h> main() { int**k,*j,i=100 j=&i; k=&j; printf("%d\n",**k); } 上述程序的输出结果是______。

    A.运行错误

    B.100

    C.i的地址

    D.j的地址


    正确答案:B
    解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

  • 第4题:

    有以下程序: #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
    解析:本题函数fun的作用是将指定的数组元素(从下标n到下标m)向后移一位。由函数调用“fun(a,2,9);”可知,函数fun用于将a[2]到a[9]的各元素依次向后移一位,移完后,a数组中各元素的值分别为1,2,3,4,5,6,7,8,9,10,故输出的前5个数组元素为12334。

  • 第5题:

    有如下程序段#include "stdio.h"void fun(int *a,int *b,int *c,int *d,int *e){ int i,j,k,m; for(i=0;i< *a;i++) for(j=0;j< *b;j++)  for(k=0;k<*c;k++)  for(m=0;m< *d;m++)  ++*e;}main(){ int a=10,b=10,c=10,d=10,e=0; fun(&a,&b,&c,&d,&e); printf("%d\n",e);} 则程序段的输出结果是A.10000 B.1000 C.100 D.0


    正确答案:A
    在本题中,程序首先定义了一个无返回值的函数fun,该函数带有五个整型的指针形参变量,然后通过一个四层循环来操作++*e;语句,由于*与++运算符的优先级一样,它们都是自右至左结合的操作,因此,++*e等价于++(*e),这个操作可描述为:先用地址取值,然后对其进行自加,由于是通过传址传值法的,因此,还需要将相加后的结果传递到实参中。
    在主函数中,定义五个整型变量并分别赋初值,然后调用fun函数,传递的参数是刚定义的五个整型变量的地址,采用的是传址传值法,能为实参带回一个结果值。从fun函数中我们不难看出,当变量a,b,c,d分别为10时,循环总共执行10000次,即自加进行了10000次,而且每次自加后都改变了实参的结果。因此,循环结束后,变量e的值为10000。本题的正确答案是A。

  • 第6题:

    假设用下列语句申请了一片动态内存空间,并用指针变量指p向了它,用这片内存保存m×n个int型数据,即作为一个二维动态数组来使用,那么下面通过p访问这个二维动态数组第i行第j列元素的方法中正确的是()。 int *p; p=(int *)malloc(m*n*sizeof(int)); 或 int *p; p=(int *)calloc(m*n,sizeof(int));

    A.*(p+i*n+j)

    B.p+i*n+j

    C.p[j*n+i]

    D.p[i][j]


    C