更多“假定一个函数的二维数组参数说明为char w[][N],与之等价的指针参数说明为()。”相关问题
  • 第1题:

    当一个成员函数被声明为虚函数后,其派生类中的具有相同参数类型和相同参数个数类型的相同类型的同名函数也是虚函数。()


    参考答案:正确

  • 第2题:

    请编写函数fun(),该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

    例如,若二维数组中的数据为:

    W WWW

    S S S S

    H H H H

    则字符串中的内容应是WSHWSHWSHWSH。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<stdio.h>

    define M 3

    define N 4

    void fun(char (*s)[N],char *b)

    {

    }

    main()

    {

    char a[100],w[M][N]={{ 'W', 'W', 'W', 'W'},

    {'S', 'S', 'S', 'S'},{'H', 'H', 'H', 'H'}};

    int i,j;

    printf("The matrix:\n");

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

    { for(j=0;j<N;j++)

    printf("%3c",w[i][j]);

    printf("\n");

    }

    fun(w,a);

    printf("The A string:In");

    puts(a);

    printf("\n\n");

    }


    正确答案:void fun(char (*s) [N]char *b) { int i j k=0; for (i=0; iN; i++) /*按列的顺序依次放到一个字符串中*/ for (j=0; jM; j++) b [k++] =s [j] [i]; b[k]='\0'; }
    void fun(char (*s) [N],char *b) { int i, j, k=0; for (i=0; iN; i++) /*按列的顺序依次放到一个字符串中*/ for (j=0; jM; j++) b [k++] =s [j] [i]; b[k]='\0'; } 解析:看到程序后,我们很容易便能想到用循环嵌套的方法,本题中按列的顺序依次放到一个字符串中,所以列标变化慢,行标变化快。注意其中第1个循环条件为iN(即列),第2个循环的条件为JM(即行),这是因为在循环的嵌套中越在内层,循环变化就越快。另外,在编写程序中注意是s[j][i]而非s[i][j]。

  • 第3题:

    阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    [说明1]

    函数void fun(char*w,char x,int*n)用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n指存储单元中存放数组中数据的个数,插入后数组中的数仍有序。

    [C函数1]

    void fun(char*W,char x,int*n)

    { int i,P;

    p=0;

    w[*n]=x;

    while(x>w[p]) (1) ;

    for(i=*n,i>p;i--)w[i]=(2);

    w[p]=x;

    ++*n;

    }

    [说明2]

    函数void revstr(char*s)将字符串s逆置。例如:字符串“abcde”,经过逆置后变为“edcba”。

    [C函数2]

    void revstr(char*s)

    { char*p,c;

    if(s==NULL)return;

    p=(3); /*p指向字符串s的最后一个有效字符*/

    while(s<p){ /*交换并移动指针*/

    C=*s;

    (4)=*p;

    (5)=c;

    }

    }


    正确答案:(1) p++ (2) w[i-1] (3) s+strlen(s)-1 (4) *s++或*(s++) (5) *p-或*(p--)
    (1) p++ (2) w[i-1] (3) s+strlen(s)-1 (4) *s++或*(s++) (5) *p-或*(p--) 解析:函数1的fun()中的while循环是为了找到x的插入位置,因此(1)填“p++”,for循环是移动数组中的元素,因此(2)填“w[i-1]”。
    对于函数2,设字符串的长度为n,则该函数的思想为将*(s+j)与*(s+n-1+i)对换,i=0....n/2。采用指针来实现,s为起始地址,p定位为最后一个字符的位置,所以空(3)应填“s+strlen(s)-1”;采用*s与*p交换后为s++与P--。即空(4)填“*s++”或“*(s++)”,空(5)填“*p-”或“*(p--)”。

  • 第4题:

    语句Char(*P)说明了( )。

    A.P是指向函数的指针,该函数返回一个Char型数据

    B.P是指向Char型数据的指针变量

    C.P是指向数组的指针变量

    D.P是一个函数名,该函数的返回值是指向Char型数据的指针


    正确答案:A
    P是指向函数的指针,该函数返回一个char型数据。

  • 第5题:

    已知函数原型声明为:char*www(chara,charb);该函数的类型为( )。

    A.指向字符型的指针

    B.字符型

    C.整型

    D.指向整型的指针


    正确答案:A

  • 第6题:

    假定二维数组的定义为“char a[M][N];”,则该数组所占存储空间的字节数为()。
    M*N

  • 第7题:

    假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为()。
    M*N

  • 第8题:

    数据结构里,函数参数为哪项时,参数传递属于值传递。()

    • A、数组
    • B、指针
    • C、字符数组
    • D、int型

    正确答案:D

  • 第9题:

    函数viodfun(doublea[],int*n){………}叙述中正确的是()。()

    • A、调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
    • B、形参a和n都是指针变量
    • C、形参a是一个数组名,n是指针变量
    • D、调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组

    正确答案:C

  • 第10题:

    单选题
    若有函数声明:void fun(float array[],int*ptr);以下叙述正确的是(  )。
    A

    函数参数array,ptr都是指针变量

    B

    函数参数array不是指针变量,ptr是指针变量

    C

    调用函数时,实参数组的值将一一复制给array数组

    D

    调用函数时,array是按值传送,ptr是按地址传送


    正确答案: D
    解析:
    数组名为数组的首地址,也是指向数组的指针,所以array和ptr都是指针,A项正确,B项错误。调用函数时,将实参数组首地址赋给指针array,而不是传递整个数组元素,C项错误。调用函数时,array与ptr都是按地址传送的,D项错误。答案选择A选项。

  • 第11题:

    单选题
    假定一个函数的二维数组参数说明为char w[][N],与之等价的指针参数说明为()。
    A

    char (*w)[N]

    B

    char *w[N]

    C

    char (*w)N

    D

    char**a


    正确答案: B
    解析: 暂无解析

  • 第12题:

    单选题
    假定一个函数的数组参数说明为char a[],与之等价的指针参数说明为()。
    A

    char a

    B

    char* a

    C

    char& a

    D

    char**a


    正确答案: A
    解析: 暂无解析

  • 第13题:

    假定二维数组的定义为“char a[M][N];”,则该数组共包含有___个字符

    元素。


    参考答案M*N

  • 第14题:

    若有函数

    Void fun( double a[ ],int *n)

    { …… }

    以下叙述中正确的是

    A)调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

    B)形参a和n都是指针变量

    C)形参a是一个数组名,n是指针变量

    D)调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组


    正确答案:C
    【答案】C
    【知识点】函数参数传递
    【解析】a是形参数组的名字,接收从调用函数中传过来的实参数组的首地址,n是指针变量。

  • 第15题:

    下面关于数组的描述错误的是( )。 A.在C++语言中数组的名字就是指向该数组第一个元素的指针SXB

    下面关于数组的描述错误的是( )。

    A.在C++语言中数组的名字就是指向该数组第一个元素的指针

    B.长度为n的数组,下标的范围是0~n-1

    C.数组的大小必须在编译时确定

    D.数组只能通过值参数和引用参数两种方式传递给函数


    正确答案:D
    本题考查的是数组的基本使用,数组还可以通过对应的指针调用传递参数,其余选项的说法都是正确的。

  • 第16题:

    当需要将一个函数bool isnumber(char C.声明为内联函数时,则此内联函数的函数原型为( )。


    正确答案:C

  • 第17题:

    假定一个函数的数组参数说明为char a[],与之等价的指针参数说明为()。

    Achar a

    Bchar* a

    Cchar& a

    Dchar**a


    B

  • 第18题:

    假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为M+N。()

    A

    B



  • 第19题:

    在初始化一个稀疏矩阵的函数定义中,矩阵形参应说明为()参数。


    正确答案:引用(或指针)

  • 第20题:

    数据结构里,函数参数为()时,参数传递属于地址传递。

    • A、数组
    • B、指针
    • C、字符数组
    • D、int型

    正确答案:A,B,C

  • 第21题:

    填空题
    假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为()。

    正确答案: M*N
    解析: 暂无解析

  • 第22题:

    填空题
    在初始化一个稀疏矩阵的函数定义中,矩阵形参应说明为()参数。

    正确答案: 引用(或指针)
    解析: 暂无解析

  • 第23题:

    判断题
    假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为M+N。()
    A

    B


    正确答案:
    解析: 暂无解析