somethings

bluestar2009bak 2010-12-09 10:58:23
C语言编程基础测试题(请将答案写在白纸上,Thanks)

[考前说明]本题目中不考虑头文件引用问题(假定已经包含正确的头文件),C语言的标准函数都可用.

一.选择:
1.有以下程序段
char acArr[]= "ABCDE";
char *pcPtr;
for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++)
{
printf("%s\n", pcPtr);
}
return;
输出结果是( )
A) ABCD B) A C) E D) ABCDE
B D BCDE
C C CDE
D B DE
E A E
2.void example()
{
int i;
char acNew[20];

for(i = 0; i < 10; i++)
{
acNew[i] = '0';
}
printf("%d\n", strlen(acNew));
return;
}
的输出为( )
A 0 B 10 C 11 D不确定

3.switch(c)中的c的数据类型可以是char、long、float、unsigned、bool. ( )
A. 正确 B. 错误

...全文
255 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
漫步者、 2010-12-09
  • 打赏
  • 举报
回复
作业题!!!
luciferisnotsatan 2010-12-09
  • 打赏
  • 举报
回复
整张考卷......
ouyh12345 2010-12-09
  • 打赏
  • 举报
回复
bluestar2009 2010-12-09
  • 打赏
  • 举报
回复
一、选择:
D、D、B、B、B、C、D、B、D、

二、填空:
1、5,12
2、8,80
3、6,4
4、12,12,16
5、1,7
6、8,17
7、5
8、ABCD567890,ABCD
9、typedef MIN(a,b) ((a)<(b))?a:b
10、(*p)(a,b)

三、改错:

#define MAX_GT_LENGTH (128)
typedef unsigned char VOS_UINT8;

void TMP_EexampleFunc( VOS_UINT8 ucGtLen, VOS_UINT8 * pucGtCode )
{
VOS_UINT8 * pucGtBuf; -----没有初始化

-----没有对入参pucGtCode的有效性进行判断if(NULL == pucGtCode)
pucGtBuf = (VOS_UINT8 *) malloc(MAX_GT_LENGTH); -----没有对指针是否为NULL进行判断
if (ucGtLen <= MAX_GT_LENGTH)
{
strncpy(pucGtBuf, pucGtCode, ucGtLen );
... // other program code
free( pucGtBuf );
return;
}
-----没有释放 pucGtBuf
}

bluestar2009 2010-12-09
  • 打赏
  • 举报
回复
9、写一个“标准”宏MIN ,这个宏输入两个参数并返回较小的一个:________________________________
10、若有函数max(a,b),并且函数指针变量p已指向函数,当调用该函数时正确的调用方法是:__________

三、改错题:
下面的代码中有错误和不符合编程规范的地方,请找出来并改正:

#define MAX_GT_LENGTH (128)
typedef unsigned char VOS_UINT8;

void TMP_EexampleFunc( VOS_UINT8 ucGtLen, VOS_UINT8 * pucGtCode )
{
VOS_UINT8 * pucGtBuf;
pucGtBuf = (VOS_UINT8 *) malloc(MAX_GT_LENGTH);
if (ucGtLen <= MAX_GT_LENGTH)
{
strncpy(pucGtBuf, pucGtCode, ucGtLen );
... // other program code
free( pucGtBuf );
return;
}
}


四、编程题

1、请写一个冒泡排序算法,按照从大到小的顺序排列(假设有10个数);
bluestar2009 2010-12-09
  • 打赏
  • 举报
回复
5. enum ENUM_A
{
X1,
Y1,
Z1 = 5,
A1,
B1
};
enum ENUM_A enumA = Y1;
enum ENUM_A enumB = B1;
请问 enumA = ____; enumB = ______;

6.以下程序的输出结果是________.
#include <stdio.h>
int fun(int x,int y)
{
static int m = 0;
static int i = 2;
i += m + 1;
m = i + x + y;
return m;
}
void main()
{
int j = 4;
int m = 1;
int k;
k = fun(j, m);
printf("%d,", k);
k=fun(j, m);
printf("%d\n", k);
return;
}

7.以下程序的输出结果为________
#define CIR(r) r*r /*请注意这种定义的缺陷,不允许这么定义*/
void main()
{
int a = 1;
int b = 2;
int t;
t = CIR(a + b);
printf("%d\n", t);
return;
}

8.在VRP中,实现了strncpy类似的函数,定义如下:
#define CHAR char
#define ULONG unsigned long
#define VOID void
CHAR *VOS_strncpy(CHAR *pcDest, const CHAR *szSrc, ULONG ulLength)
{
CHAR *pcPoint = pcDest;

if(( NULL == szSrc ) || ( NULL == pcDest ) ))
{
return NULL;
}

while(ulLength && (*pcPoint = *szSrc))/*这里采用了在判断语句中赋值的方式(*pcPoint = *szSrc),建议尽量不使用*/
{
pcPoint++;
szSrc++;
ulLength--;
}
if(!ulLength)
{
*pcPoint = '\0';
}
return pcDest;
}

VOID main(VOID)
{
CHAR szStrBuf[ ] = "1234567890";
CHAR szStrBuf1[ ] = "1234567890";
strncpy(szStrBuf, "ABCD", strlen("ABCD"));
VOS_strncpy(szStrBuf1, "ABCD", strlen("ABCD"));
printf("Str1 = %s\nStr2 = %s", szStrBuf, szStrBuf1);
}
程序的输出结果为________
bluestar2009bak 2010-12-09
  • 打赏
  • 举报
回复
二、填空:
1.
char acHello[] = "hello\0world";
char acNew[15] = {0};
strcpy(acNew,acHello);
strlen(acNew) = _____
sizeof(acHello) = ______

2.typedef struct tagTest
{
UCHAR ucFlag;
ULONG ulLen;
}TEST_S;

TEST_S test[10];

四字节对齐方式时: sizeof(TEST_S) = ______, sizeof(test)________.

3、char * pucStr = "abcde"; 则字符串指针pucStr指向的字符串在内存中占用的空间至少是____
字符串指针pucStr在内存中占用的空间是____。


4.#pragma pack(4)/*编译选项,表示4字节对齐*/
int main(int argc, char* argv[])
{
struct tagTest1
{
short a;
char d;
long b;
long c;
};
struct tagTest2
{
long b;
short c;
char d;
long a;
};
struct tagTest3
{
short c;
long b;
char d;
long a;
};
struct tagTest1 stT1;
struct tagTest2 stT2;
struct tagTest3 stT3;

printf("%d %d %d", sizeof(stT1), sizeof(stT2), sizeof(stT3));
return 0;
}
#pragma pack()(编译选项结束)
请问输出结果是:_________
bluestar2009bak 2010-12-09
  • 打赏
  • 举报
回复
4.全局变量可以定义在被多个.C文件包含着的头文件中。
A. 正确 B. 错误


5、头文件头部和尾部的如下预编译条件语句的作用是_____。
#ifndef _FILENAME_H
#define _FILENAME_H
. . .
#endif
A)说明文件的名称 B)防止头文件被重复包含
C) 编译器要求这样做的 D)使程序看起来规范


6.以下程序运行后,输出结果是( )
void main( )
{
char *szStr = "abcde";
szStr += 2;
printf("%lu \n",szStr);
return;
}
A cde B 字符c的ASCLL码值
C "abcde"这个常串中字符c所在的地址 D 出错

7. 在X86下,有下列程序
#include <stdio.h>
void main()
{
union
{
int k;
char i[2];
}*s,a;
s = &a;
s->i[0] = 0x39;
s->i[1] = 0x38;
printf("%x\n", a.k);
}
输出结果是( )
A) 3839 B) 3938 C) 380039 D) 不可预知

8.网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是
大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。
A. 正确 B.错误

9、断言的格式是这样的:
ASSERT(逻辑表达式);
一个正确使用的断言,括号内的表达式的值在______时有可能会为假。
A)系统非常繁忙
B)系统资源非常紧张
C)用户输入或者网络输入非法
D)程序的设计和编码中存在错误
bluestar2009 2010-12-09
  • 打赏
  • 举报
回复
你们猜猜 这个是哪个公司的面试题
walkersfaint 2010-12-09
  • 打赏
  • 举报
回复
考题。。。。。。。。
bluestar2009bak 2010-12-09
  • 打赏
  • 举报
回复
http://haixun.blog.zj.com/blog/d-303344.html

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧