有以下程序 prt(int *m,int n) {int i; for(i=0;i<n;i++)m[i]++; } main() { int a[]={1,2,3,4,5},i; prt(a,5); for(i=0;i<5;i++) printf("%d,",a[i]); } 程序运行后的输出结果是A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1,

题目

有以下程序 prt(int *m,int n) {int i; for(i=0;i<n;i++)m[i]++; } main() { int a[]={1,2,3,4,5},i; prt(a,5); for(i=0;i<5;i++) printf("%d,",a[i]); } 程序运行后的输出结果是

A.1,2,3,4,5,

B.2,3,4,5,6,

C.3,4,5,6,7,

D.2,3,4,5,1,


相似考题
更多“有以下程序prt(int *m,int n){int i;for(i=0;i<n;i++)m[i]++;}main(){int a[]={1,2,3,4,5},i;prt ”相关问题
  • 第1题:

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

  • 第2题:

    有以下程序prt (int *m, int n){ int i; for (i=0; i<n; i++) m [i]++;}main (){ int a[]={1,2,3,4,5},i; prt{a, 5); for [i=0;i<5;i++) printf ("%d ",a[i]);} 程序运行后输出结果是

    A.1,2,3,4,5,

    B.2,3,4,5,6,

    C.3,4,5,6,7,

    D.2,3,4,5,1


    正确答案:B
    解析:本题考查的是数组名作函数的参数。数组名实际上是一个指向该数组首地址的指针常量,所以数组名作函数的参数和用同类型的指针作参数没有区别.题目首先定义了一个函数,该函数通过一个for循环将指针m到m+n-1所指内存中的数据自增1,所以主函数中执行了prt(a,5);语句后,数组a中的所有元素被自增1。所以,4个选项中选项B符合题意。

  • 第3题:

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

    void prt(int*m.int n)

    {int i;

    for(i=0;i<n;i++)m[i]++;)

    main

    { int a[]={1,2,3,4,5),i;

    prt(a,5);

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

    printf("%d,",a[i]);)

    A.1,2,3,4,5

    B.2,3,4,5,6

    C.3,4,5,6,7

    D.2,3,4,5,1


    正确答案:B
    函数调用时,prt函数的作用是为使m数组中的数自增l,因此数组下标从0开始,每个元素都自加l。

  • 第4题:

    有以下程序prt(int *m,int n){ int i; for(i=0;i<n;i++) m[i]++;}main(){ int a[]={1,2,3,4,5},i; prt(a,5); for(i=0;i<5;i++) printf("%d,",a[i]);}程序运行后的输出结果是A.1,2,3,4,5, B.3,4,5,6,7,C.2,3,4,5,6, D.2,3,4,5,1,


    正确答案:C
    用数组名作为函数实参时,不是把数组的值传递给形参,而是把实参数组的起始地址传递给形参数组,这样两个数组就共同占用同一段内存单元。本题通过“prt(a,5);”将数组a的首地址传递给了指针变量m,使指针变量m指向数组a的首地址,那么,对指针变量所指向的存储单元的内容的改变就是对数组a中的元素的改变。题中函数prt的作用是将指针变量m所指向的存储单元中的元素值各加上1,故数组a中的值也随之变化,所以。输出的数组元素的值为2,3,4,5,6,。

  • 第5题:

    以下程序的输出结果是( )。 void prt(int*m.int n) {int i; for(i=0;i<n;i++)m[i]++;) main { int a[]={1,2,3,4,5),i; prt(a,5); for(i=0;i<5;i++) printf("%d,",a[i]);)

    A.1,2,3,4,5

    B.2,3,4,5,6

    C.3,4,5,6,7

    D.2,3,4,5,1


    正确答案:B
    函数调用时,prt函数的作用是为使m数组中的数自增l,因此数组下标从0开始,每个元素都自加l。