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);