-
-
[旧帖]
[原创]科锐培训三道测试题---参考解答...
0.00雪花
-
发表于:
2007-10-24 22:50
5398
-
[旧帖] [原创]科锐培训三道测试题---参考解答...
0.00雪花
刚才吃方便面看了那三道题 ...
第一道 用嵌入汇编就可以了
第二道 数组越界....
第三道 附C语言源代码...
/// Maked by CCDeath
#include"stdio.h"
#include"string.h"
#include "stdarg.h"
int add(int ,...);//
int main(int argc, char* argv[])
{
// printf("woia");
int b=add(100,700,200,0);
printf("%d\n",b);
return 0;
}
int add(int a,...)
{
va_list argp;//定义保存函数参数的结构
int argno=0;//记录参数的个数
int CCDeath;//存放取出的int 类型参数
int total=0;//返回总求和
va_start(argp,a);//指向第一个参数 开始与后面va_end()配对
total=a;
while(1)
{
CCDeath = va_arg(argp,int );//记得这是从第二个参数开始
if(CCDeath==0)//最后一个参数必须为0,才能退出
break;
total+=CCDeath;
argno++;//取下一个
}
va_end(argp);//清空
return total;//返回总和
}
记得最后一个参数必须是0才能退出循环...
对于三道题 还有其他的做法:
比如
forever的做法:
int add(int a,...)
{
int total;
int *param;
param = &a;
total = 0;
while( *param != 0 )
{
total += *param;
param ++;
}
return total;
}
大家请多多指教....
[课程]FART 脱壳王!加量不加价!FART作者讲授!