// pstPinData->00000001 <-puc[0] // 00000000 <-puc[1] // 00000000 <-puc[2] // 00000000 <-puc[3] pstPimData->ucData0 = 2;
//执行完此步后,内存状况为: // pstPinData->00000001 <-puc[0] // 00000000 <-puc[1] //因为ucData0只有1bit的空间而2的二进制为10,所以只保存了0,1溢出,丢掉 // 00000000 <-puc[2] // 00000000 <-puc[3] pstPimData->ucData1 = 3;
//执行完此步后,内存状况为: // pstPinData->00000001 <-puc[0] // 00000110 <-puc[1] 3为11 // 00000000 <-puc[2] // 00000000 <-puc[3] pstPimData->ucData2 = 4;
//执行完此步后,内存状况为: // pstPinData->00000001 <-puc[0] // 00100110 <-puc[1] 4为100 // 00000000 <-puc[2] // 00000000 <-puc[3] //所以至此puc[1]中为00100110,所以转换为16进制为26
printf(\
//输出为: 01 26 00 00 return 0;
}
#pragma pack()/*恢复缺省对齐方式*/
13.下面的代码中,函数Test执行完毕后,打印的结果是 _____。 unsigned long g_ulGlobal = 0; void GlobalInit(unsigned long ulArg) {
ulArg = 0x01;
return; }
void Test() {
GlobalInit(g_ulGlobal); printf(\
return; }
14.void main () {
unsigned long ulA = 0x11000000; printf(\ return; }
输出结果为: 15.struct tagABC {
char cB; short sC; char cD; long lA; }*pAbc;
pAbc = 0x100000;
那么pAbc+0x100 = 0x_________; (ULONG)pAbc + 0x100 = 0x_________;(ULONG *)pAbc + 0x100 = 0x_________;(char *)pAbc + 0x100 = 0x_______; 16.unsigned long FuncC ( unsigned long ulAction ) {
unsigned long ulResult = 0 ;
switch ( ulAction ) {
case ACTION_A: {
ulResult += 1 ; break ; }
case ACTION_B: {
ulResult += 1 ; } default: {
ulResult += 1 ; } }
printf( \
return ulResult ;
}
当输入为ACTION_B时,输出结果为: ulResult = _________; 17.在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[ ] = \ CHAR szStrBuf1[ ] = \
strncpy(szStrBuf, \ VOS_strncpy(szStrBuf1, \ printf(\}
输出结果为: 18.
char acHello[] = \char acNew[15] = {0}; strcpy(acNew,acHello); strlen(acNew) = _____ sizeof(acHello) = ______
19.
char acHello[] = \char acNew[15] = {0}; memcpy(acNew,acHello,12); strlen(acNew) = _____ sizeof(acHello) = _____
20.以下程序的输出结果是________. #include
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(\ k=fun(j, m); printf(\ return; }
21.以下程序的输出的结果是___________ int x = 3; void Incre(); void main() { int i;
for (i = 1; i < x; i++) { Incre(); } return; }
void Incre() {
static int x = 1; x *= (x + 1); printf(\
return; }
22.以下程序的输出结果为________
#define CIR(r) r*r /*请注意这种定义的缺陷,不允许这么定义*/ void main() {
int a = 1; int b = 2; int t;
t = CIR(a + b); printf(\ return; }
23. enum ENUM_A {
X1, Y1, Z1 = 5, A1, B1 };
enum ENUM_A enumA = Y1; enum ENUM_A enumB = B1;
请问 enumA = ____; enumB = ______; 24、enum NEW_SERV_ID {
NSID_SERV_NULL = 0, ...
NSID_SERV254 = 254, NSID_SERV255 , NSID_BUTT };
unsigned char GetNsid(char nsid) {
return (nsid); }
GetNsid(NSID_SERV_NULL) = _____; GetNsid(NSID_SERV255) = _______; GetNsid(NSID_BUTT) = __.
答案 一:单项选择题
1 A 2A 3D 4B 5B 6D 7A 8A 9AC 10C 11A 12B 13D 14C 15C 16D 17B 18A 19B 20A 21A 22B 23B 24D 25D 26B 27A 28A 29D 30B 31C 32C 33D 34D 35D 36D 37D
二:多项选择题
1.AB 2AC 3ABC 4BC 5BCD 6ACE 7ABC 8AD 9AC
二:填空题 1. 5 5 4 6 2. 3 4 4
3. 400 12 4 12 4. 4 1 6 5. 8 80 6. 7 8 8
7. 100018
100001 100004 100001 8. 16
9. 9 12 10. 12 12 16 11. 4 6 8 8 8 12
12. 01 26 00 00 13. 0 14. 0
15. 100C00
100100 100400 100100 16. 2
17. Str1 = ABCD567890
Str2 = ABCD 18. 5 12 19. 5 12 20. 8, 17 21. 2 6 22. 5 23. 1,7
24. 0,255,0
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C_C++语言笔试面试题目含答案(6)在线全文阅读。
相关推荐: