c语言函数调用检测卷 c语言函数调用例题

C语言函数调用问题(在线等)

题目给你已知条件了

磐石网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

x定义并赋值整形

n为双进度的

因为void类型函数,没有返回值。所以D错了

c语言函数习题

1、 函数调用:strcat(strcpy(str1,str2),str3)的功能是________。

C) 将串str2复制到串str1中后再将串str3连接到串str1之后

2、 若有以下调用语句,则正确的fun函数首部是

main()

{ ∶

int a;float x;

fun(x,a);

}

B) void fun(float a,int x)

3、 有如下程序

int func(int a,int b)

{ return(a+b); }

main()

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf("%d\n",r); }

该程序的输出结果是__________。

D) 15

4、 函数pi的功能是根据以下近似公式求π值:

(π*π)/6=1+1/(2*2)+1/(3*3)+……+1/(n*n)

请你在下面程序中的划线部分填入________,完成求π的功能。

#include "math.h"

double pi(long n)

{ double s=0.0; long i;

for(i=1;i=n;i++) s=s+________;

return (sqrt(6*s)); }

A) 1.0/i/i

5、 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递

方式是________。

B) 单向值传递

6、 对于C语言的函数,下列叙述中正确的是________。

A) 函数的定义不能嵌套,但函数调用可以嵌套 (这答案有待斟酌)

7、 函数f的功能是:测定字符串的长度,空白处应填入________。

int f(char s[ ])

{ int i=0;

while(s[i]!='\0') i++;

return (________); }

main( )

{ printf("%d\n",f("goodbye!")); }

B) i

8、 若主调用函数类型为double,被调用函数定义中没有进行函数类型

说明,而return语句中的表达式类型为float型,则被调函数返回

值的类型是________。

C) double 型

9、 以下叙述中,错误的是________。

D) 形参可以是常量、变量或表达式

10、 以下叙述中,不正确的是________。

B) 在main函数体内定义的变量是全局变量

我一直搞不清楚关于c语言关于函数调用和栈的两类题,快要考试,我很紧张,希望大家帮帮我,有点复杂,

第一个问题是抄错了,

应该是void exch( int* t ){ t[0] = t[5]; }吧

指针的用法:

*p : 指针值所代表的地址里的值,和 p[0]的意思一样。

p[i] :把指针当数组用,因为数组名其实就是指针;

p[i]=*(p+i);

while ( i=4 ) { exch( x[i]); i++; }

和while ( i=4 ) { exch( x+i); i++; }

是一个意思,其实就是for(i=0;i5;i++)x[i]=x[i+5];

void fun(int *a,int *b)

{

int *c;

c=a;a=b;b=c;

这里交换了两个指针的值,可是这两个指针也是局部参数,

C语言值传递,只改变了,堆栈中复制的指针的值,相应地址中的值丝毫没有改变

}

2)

问题:

问题(1)设栈的存储空间为S(1 : 40),初始状态为bottom=0,top=0。现经过一系列入栈与出栈运算后,top=20,则当前栈中有多少个元素?

答案是20个,我不明白为啥不是21?40-20+1=21,不是吗

问题(2)就像下面这道题:假设一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有多少个元素。

答案是:49-30+1=20

解答:

堆栈是有生长方向的,正常的堆栈向下生长,指针逐渐减小;

但是,也可能会反向生长,这样的话,指针逐渐增大。

问题(1)的堆栈,是反常堆栈,堆栈向上生长,指针逐渐增大,所以元素个数n=top - bottom=top;

top =40 栈满 -----| ---------- 40 -----------------| 第40个元素

| |

压入第n个数据 -----|-----------top=20-------------| 第20个元素

↑ | ------ 。。。。。 。 -----| ↑

↑ |------ 。。。。。。 ----- | 第2个元素

压入第1个数据 top ------ | ---------First= 1 ---------- | 第1个元素

开始top= bottom =0 top -------| -------- bottom =0 ------ | top指向栈底元素的位置-1

压栈出栈算法

push(x) {S[++ top]=x;}

pop() { --top;}

问题(2)的堆栈, 是正常堆栈,堆栈向下生长,指针逐渐减小;

所以元素个数n=bottom - top;

开始top,bottom指向栈底元素 -----|-----------bottom=49-------------| 第1个元素

压入第1个数据 top ------| ------ 。。。。。。。。-----| 第2个元素

↓ |------ 。。。。。。。。----- | ↓

↓ | ------------------------------------ | 第n个元素

压入第n个数据 top --------| ---------top=49-n ------------ |

top=-1是栈满

top=bottom=49 时栈空 n=bottom-top

压栈出栈算法

push(x) {S[ top--]=x;}

pop() { top++;}

top=30时 n=49-30 =19 个元素。

那个 “答案是:49-30+1=20”,是错误的!

c语言模拟考试中"请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件"是什么意思

"请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件"的意思是在评卷的时候会在某个函数内按下面步骤执行代码: 1. 打开文件, 2. 输入数据,3,调用你考试的时候写的函数fun, 4,指定方式输出,5关闭文件。 其中1245都不用你管,你只要去按题目要求实现3里面调用的fun就可以了


当前标题:c语言函数调用检测卷 c语言函数调用例题
文章出自:http://ybzwz.com/article/dosjcso.html