文档名称 文档密级
char *get_buffer(int msg_len) {
char *ptr=NULL; int len =msg_len; ptr=(char *)malloc(len); if(NULL == ptr ) {
return NULL; } return ptr; }
int main(int argc, char* argv[]) {
int msg_len ; char *pMsg;
if(TRUE == MaxMsgFlag)
{
msg_len = MaxMsgLen;
}
pMsg = get_buffer(msg_len); if(NULL != pMsg ) {
strcpy(pMsg,\ printf(\ free(pMsg); } return 0;
}
上面的程序存在问题,下面描述正确的是( )
A、函数get_buffer没有判断入参msg_len是否大于等于0。 B、函数main中pMsg没有赋初值
C、函数main中msg_len没有赋初值
D、函数main中free(pMsg)后,没有把pMsg置为NULL。
45、 请指出下面程序的错误:( ) void Test(void)
{
char *szStr = (char *) malloc(100); if(NULL == szStr) {
return; }
strcpy(szStr, \
21
文档名称 文档密级
free(szStr); if(NULL != szStr)
{
strcpy(szStr, \ printf(szStr); }
return; }
A、strcpy没有将结尾符拷贝到szStr中 B、对释放空间的指针进行拷贝操作 C、printf随机打印
D、没有返回值
46、 定义结构体时有下面几种说法,请指出正确的___
A、结构体中的每个部分,最好进行四字节对齐; B、结构体的总长度最好是四字节对齐;
C、结构中成员的存放不用考虑字节对齐情况;
47、 下列定义正确的有( )
A: char *pcPtr = \ B: char pc[4]= \ C: char pc[] = \
D: char pc[] = 'abcd';
E: char pc[] = {'a','b','c','d','\\0'}; F: char pc[] = 'a' 'b' 'c' 'd';
三、填空:
48、 char *pcColor = \
char acColor[] = \strlen(pcColor) = _____ strlen(acColor) = _____ sizeof(pcColor) = _____ sizeof(acColor) = _____ 5 5 4 6
49、 char str[] = \
char *p = str; int n = 1000; 请计算
sizeof (str ) = ____________ sizeof ( p ) = ______________ sizeof ( n ) = ______________ 3 4 4
22
文档名称 文档密级
50、 UCHAR *pucCharArray[10][10];
typedef union unRec {
ULONG ulIndex; USHORT UCHAR
usLevel[6]; ucPos;
}REC_S;
REC_S stMax,*pstMax;
四字节对齐方式时: sizeof(pucCharArray) = ______, sizeof(stMax)=_______, sizeof(pstMax)=________,sizeof(*pstMax)=________.
400 12 4 12 {
51、 typedef union unHead
UCHAR aucSrc [6]; struct tagContent {
UCHAR ucFlag[3]; ULONG ulNext; }Content; }HEAD_S;
32CPU,VC编译环境下:
在强制一字节对齐情况下,请指出sizeof(HEAD_S) = ________; 在强制二字节对齐情况下,请指出sizeof(HEAD_S) = ________; 在强制四字节对齐情况下,请指出sizeof(HEAD_S) = ________; 7 8 8
52、 UCHAR *pszTest = \
UCHAR aucTest[] = \
请问 sizeof(pszTest) = _____ , sizeof(*pszTest) = ______, sizeof(aucTest) = ______.
4 1 6
53、 struct BBB
{
long lNum; char *pcName; short sDate; char cHa[2]; short sBa[6]; }*p;
p = 0x100000;
23
文档名称 文档密级
p + 0x1 = 0x____
(unsigned long)p + 0x1 = 0x______ (unsigned long *)p + 0x1 = 0x______ (char *)p + 0x1 = 0x______ 100018 100001 100004 100001
54、 在4字节对齐的情况:
typedef struct tagRec {
long lA1; char cA2; char cA3; long lA4; long lA5; } REC_S;
void main(int argc, char *argv[]) {
REC_S stMax ;
printf(\ return; }
输出结果为: sizeof(stMax)=____ 16
55、 void main ()
{
unsigned long ulA = 0x11000000;
printf(\ return; }
输出结果为: 0
56、 在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 ) ))
24
文档名称 文档密级
{
return NULL; }
while(ulLength && (*pcPoint = *szSrc))/*这里采用了在判断语句中赋值的方式(*pcPoint = *szSrc),建议尽量不使用*/
{
pcPoint++; szSrc++; ulLength--; }
if(!ulLength) {
*pcPoint = '\\0'; }
return pcDest; }
VOID main(VOID) {
CHAR szStrBuf[ ] = \ CHAR szStrBuf1[ ] = \
strncpy(szStrBuf, \
VOS_strncpy(szStrBuf1, \ printf(\}
输出结果为: ABCD567890 ABCD
57、 char acHello[] = \
char acNew[15] = {0}; strcpy(acNew,acHello); strlen(acNew) = _____ sizeof(acHello) = ______ 5 12
58、 typedef struct tagTest
{
UCHAR ULONG }TEST_S;
25 ucFlag; ulLen;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言编程基础考试试题(5)在线全文阅读。
相关推荐: