omni在上个贴子中说
引用:
不过网络管理员其要UNDERSTAND的是什么呢??
具体 程度?
AND 何为DBA
安全,,
DBA->数据库管理员
下面是一家公司招聘的考题,,如果能答的上来70%
对50%的回答有把握的话你就是个好的开发工程师的苗苗了:)
问题主要还是考对WEB编程相关基本概念和操作的认知程度的,,
1、用C语言实现一个函数:将大写字母转换成小写字母('A' = 65, 'a' = 97)。
char tolower(char ch)
{
// 你的实现
}
2、下面的代码用memset将三个局部变量置为0,请问可能会有什么问题?
void DoSomeThing(...)
{
int i;
int j;
int k;
memset(&k, 0, 3*sizeof(int)); // 将i,j,k置为0
...
}
3、作为开发团队的一员,你需要实现一些库函数提供给其他人使用。假设你实现的一个函数原型如下:
int DoSomeThing(char* pParam)
{
...
}
你们约定好参数pParam不能为NULL,但为了防止调用者错误传递NULL,你需要在你的函数里做判断处理。
请问你会选择那种方式,并说明原因?
(a) if (!pParam)
return 0;
(b) if (!pParam)
return ERROR_PARAM;
(c) if (!pParam)
pParam = "";
...
(d) if (!pParam)
throw EXCEPTION_ERROR_PARAM;
(e) if (!pParam)
MessageBox(...);
(f) assert(!pParam);
4、定义结构如下:
typedef struct
{
char c1;
char c2;
int n;
} stru;
请问sizeof(stru)等于多少?并说明理由。
5、下面是C语言中两种if语句判断方式。请问哪种写法更好?为什么?
int n;
if (n == 10) // 第一种判断方式
if (10 == n) // 第二种判断方式
6、下面的memset函数实现有什么问题?
void *memset(void *pv, byte b, size_t size)
{
byte *pb = (byte *)pv;
unsigned long l;
size_t sizeSize;
l = (b << 8) | b; /* 用4个字节拼成一个long */
l = (l << 16) | l;
pb = (byte *)longfill((long *)pb, l, size/4);
size = size % 4;
while (size-- > 0)
*pb++ = b;
return (pv);
}
7、下面的代码有什么问题?
void DoSomeThing(...)
{
char* p;
...
p = malloc(1024); // 分配1K的空间
if (NULL == p)
return;
...
p = realloc(p, 2048); // 空间不够,重新分配到2K
if (NULL == p)
return;
...
}
8、下面的代码有什么问题?
char *DoSomeThing(...)
{
char str[16];
...
return str;
}
9、下面的代码有什么问题?
char *_strdup( const char *strSource )
{
static char str[MAX_STR_LEN];
strcpy(str, strSource);
return str;
}
10、实现一个函数:取出一个全路径文件名中的全路径。
/* [in] pszFullPath 全路径文件名
[out] pszPathName 接收全路径的缓冲区
[out] nCount 缓冲区大小
*/
int ExtractFilePath(char* pszFullPath, char* pszPathName, int nCount)
{
...
}
11、实现一个函数:取出一个url中的domain。
/* [in] pszUrl url
[out] pszDomain 接收domain的缓冲区
[out] nCount 缓冲区大小
*/
int ExtractDomain(char* pszUrl, char* pszDomain, int nCount)
{
...
}
12、下面的代码有什么问题?并请给出正确的写法。
try
{
FILE* fp = fopen("c:\\1.dat");
if (NULL != fp)
{
...
}
fclose(fp);
}
except(EXCEPTION_EXECUTE_HANDLER)
{
}
13、下面的代码有什么问题?并请给出正确的写法。
void DoSomeThing(char* p)
{
char str[16];
int n;
assert(NULL != p);
sscanf(p, "%s%d", str, n);
if (0 == strcmp(str, "something"))
{
...
}
}
14、sql查询时,如果在user表的username字段上作了索引,以下哪些sql语句能使用索引?哪些不能?为什么?
(a) select * from user where username = "abc";
(b) select * from user where username like "abc%";
(c) select * from user where username like "%abc";
(d) select * from user where username = "abc" or password = "123";
15、设计一个双向链表:给出数据结构的定义,并给出插入、删除的算法。
16、用数据库设计一个树结构。请给出你的表设计,并给出枚举根节点的子节点的sql语句。
17、实现一个邮件客户端的收件箱功能:储存接收到的Email,并对外提供操作Email的API接口。
请设计Email文件存储结构和对外提供的API接口?