重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
题目给你已知条件了
磐石网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
x定义并赋值整形
n为双进度的
因为void类型函数,没有返回值。所以D错了
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函数体内定义的变量是全局变量
第一个问题是抄错了,
应该是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”,是错误的!
"请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件"的意思是在评卷的时候会在某个函数内按下面步骤执行代码: 1. 打开文件, 2. 输入数据,3,调用你考试的时候写的函数fun, 4,指定方式输出,5关闭文件。 其中1245都不用你管,你只要去按题目要求实现3里面调用的fun就可以了