计算机二级

以下程序的主函数中调用了在其前面定义的fun函数#include<stdio.h>main(){ double a[15],k;k=fun(a);...}则以下选项中错误的fun函数首部是A.double fun(double a[15])B.double fun(double *a)C.double fun(double a[])D.double fun(double a)

题目

以下程序的主函数中调用了在其前面定义的fun函数

#include<stdio.h>

main()

{ double a[15],k;

k=fun(a);

.

.

.

}

则以下选项中错误的fun函数首部是

A.double fun(double a[15])

B.double fun(double *a)

C.double fun(double a[])

D.double fun(double a)

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

试题31

以下程序的主函数中调用了在其前面定义的fun函数

#include <stdio.h>

main()

{ double a[15], k;

k=fun(a);

}

则以下选项中错误的fun函数首部是()

A.double fun(double a[15])

B.double fun(double *a)

C.double fun(double a[])

D.double fun(double a)


正确答案:D
试题31分析
a是数组名,其值不能改变,不能用作变量。
试题31答案
D

第2题:

若主函数中有以下定义和语句: main() { double a[3][4]; …… fun(a) ; } 则正确的fun函数的首部是( )

A.void fun(double *s)

B.fun(double *s[4])

C.fun(double(*s)[3])

D.void fun(double(*s)[4])


正确答案:D

第3题:

以下程序的主函数中调用了在其面前定义的fun函数 #include<stdio.h> . . . main( ) {double a[15],k; k=fun(a); . . .

} 则以下选项中错误的fun函数首部是( )。 、

A.double fun(double a[l5])

B.double fun(double *a) 。

C.double fun(double a[])

D.double fun(double a)


正确答案:A
由题可知fun的参数为变量,而a[15]为常量,所以答案为A。

第4题:

设在主函数中有以下定义和函数调用语句,且fun函数为void类型。请写出函数fun的头部,要求函数的形参为变量b。main(){ double s[10][22]; int n; …… fun(s); ……}


正确答案:void fun(double * b)
数组名是地址值,它通常可以作为指针使用,题中有被调用函数fun(s),而s为double型数组名,所以函数fun的形参类型为double *。

第5题:

下列叙述中正确的是:()

A.C语言程序中,main()函数必须在其它函数之前,函数内可以嵌套定义函数

B.C语言程序中,main()函数的位置没有限制,函数内不可以嵌套定义函数

C.C语言程序中,main()函数必须在其它函数之前,函数内不可以嵌套定义函数

D.C语言程序中,main()函数必须在其它函数之后,函数内可以嵌套定义函数


正确答案:B

第6题:

请补充函数fun(),函数fun()的功能是求7的阶乘。

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

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

include<stdio.h>

long fun(int n)

{

if(【 】)

return(n*fun(【 】);

else if(【 】)

return 1;

}

main()

{

int k=7;

printf("%d!=%ld\n", k, fun(k));

}


正确答案:n>1 n-1 n==1
n>1 n-1 n==1 解析:第一空:求阶乘时采用递归的算法,n>1和n==1这两种情况的处理方法不同,需要分开考虑。第二空:阶乘的算法是,当n>1时,n!=n*(n-1)!,即fun(n)=n*fun(n-1)。第三空:n==1是递归的终止条件,因为1!=1,所以当n=1时,返回1。

第7题:

下列给定的程序中,函数fun()的功能是:求出以下分数序列的前n项和。

2/1,3/2,5/3,8/5,13/8,21/13,…

其值通过函数值返回main()函数。例如,若输入n=5,则应输出8.391667。

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

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

[试题源程序]

include<stdio.h>

include<conio.h>

double fun(int n)

{

int a=2, b=1, c, k;

double (1) ;

for(k=1; k<=n; k++)

{

s=s+1.0 *a/b;

c=a; a+= (2) ; b=c;

}

return(d);

}

main()

{

int n=5;

printf("\nThe value of function is: %1f\n", (3) );

}


正确答案:[1] s=0.0 [2] b [3] fun(n)
[1] s=0.0 [2] b [3] fun(n) 解析:填空1:根据题目的意思,这里应该是对变量s的声明,注意到后面有对s的累加操作,所以声明之后一定要进行初始化,把s赋值为0。
填空2:根据题目的意思,此处是循环求和,由数列很容易看出后一项的分子是前一项分母与分子之和,即a=a+b或者a+=b。
填空3:由算法可以看出,此处是进行子函数调用。

第8题:

设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【13】。要求形参名为b。

main()

{double s[10][22];

int n; ┆

fun(s);

}


正确答案:
void fun(double b[][22])

第9题:

以下叙述中的是()。

A、构成C程序的基本单位是函数

B、可以在一个函数中定义另一个函数

C、main()函数必须放在其他函数之前

D、C函数定义的格式是K&R格式


参考答案:A