background image

  

int inc(int a)

  

{

  

return(++a);

  

}

  

int multi(int*a,int*b,int*c)

  

{

  

return(*c=*a**b);

  

}

  

typedef int(FUNC1)(int in);

  

typedef int(FUNC2) (int*,int*,int*);

  

void show(FUNC2 fun,int arg1, int*arg2)

  

{

  

INCp=&inc;

  

int temp =p(arg1);

  

fun(&temp,&arg1, arg2);

  

printf("%d\n",*arg2);

  

}

  

main()

  

{

  

int a;

  

show(multi,10,&a);

  

return 0;

  

}

答:

110

12

 

、请找出下面代码中的所以错误 说明:以下代码是

把一个字符串倒序,如

abcd”

倒序后变为

dcba” 以

下是引用片段:
  

1、#include"string.h"

  

2、main()

  

3、{

  

4  

char*src="hello,world";

  

5  

char* dest=NULL;

  

6  

int len=strlen(src);

  

7  

dest=(char*)malloc(len);

  

8  

char* d=dest;

  

9  

char* s=src[len];

  

10  

while(len--!=0)

  

11  

d++=s--;

  

12  

printf("%s",dest);

  

13  

return 0;

  

14、}

  答:
  方法

1:

  以下是引用片段:
  

int main()

  

{

  

char* src ="hello,world";

  

int len = strlen(src);

  

char* dest = (char*)malloc(len+1);//要为\0

分配一个空间
  

char* d = dest;

  

char* s = &src[len-1];//指向最后一个字符

while( len-- != 0 )   
*d++=*s--;   *d = 0;//尾部要加\0 
printf("%s\n",dest);   free(dest);// 使用完,应当
释放空间,以免造成内存汇泄露
  

return 0;

  

}

  方法

2:

  以下是引用片段:
  

#include

  

#include

  

main()

  

{

  

char str[]="hello,world";

  

int len=strlen(str);

  

char t;

  

for(int i=0; i

  

{

  

t=str;

  

str=str[len-i-1]; str[len-i-1]=t;  }

  

printf("%s",str);

  

return 0;

  

}

1.-1,2,7,28,,126 请问 28 和 126 中间那个数是什么 
为什么
  第一题的答案应该是

4^3-1=63

  规律是

n^3-1(当 n 为偶数 0,2,4)n^3+1(当 n

为奇数

1,3,5)

  答案:

63

  

2.

 

用两个栈实现一个队列的功能 要求给出算法和思

!

  设

2 个栈为 A,B, 一开始均为空.

  入队

:

  将新元素

push 入栈 A;

  出队

:

  

(1)判断栈 B 是否为空;

  

(2)如果不为空,则将栈 A 中所有元素依次 pop 出

push 到栈 B;

  

(3)将栈 B 的栈顶元素 pop 出;

  这样实现的队列入队和出队的平摊复杂度都还是
O(1), 比上面的几种方法要好。3.在 c 语言库函数中将
一个字符转换成整型的函数是

atool()吗,这个函数的

原型是什么
  函数名

: atol

 

  功 能

: 把字符串转换成长整型数

 

  用 法

: long atol(const char *nptr);