当前位置:首页 > C开发笔试题 - 20130812
一、 不定项选择题
1、 以下变量的定义,正确的是( C )
A. int 3man; C. int i, *pi; B. int 3man’shoes; D. short int si;
2、 对于如下的定义,说法正确的有( A) int * pb,pc;
A、pb是一个指向整数的指针,pc是一个整数 C、这个定义是错的
B、pb和pc都是指向整数的指针 D、这个定义是对的,但在编译时会出现告警
3、 以下代码的运行结果是(B )
代码Ⅰ:
unsigned int uiA;
uiA = (0×AB & θ×CD) ^ (0×EF | θ×AB); 代码Ⅱ:
unsigned int uiB
uiB =θ×AA | (θ×BB << 8) |(θ×CC<<16) | (θ×DD<<24);
A、代码Ⅰ,uiA=θ×77 C、代码Ⅱ,uiB =θ×DDCCBBAA B、代码Ⅰ,uiA=θ×66 D、代码Ⅱ,uiB =θ×AABBCCDD
4、 以下语句中,能够判断uiNum(unsigned int)可以被8整除的有( D )
A、 If (((uiNum / 8)*8)== uiNum) B、 if ((uiNum % 8)== 1) C、 if ((uiNum &θ×θ7) ==θ)
D、 if (((uiNum >> 3) << 3 )==uiNum )
5.关于以下代码,描述正确的有( B )
代码Ⅰ: const char * pcStr=”abcdefg”; char *pcStr=”abcdefg” 代码Ⅱ:
void string_sizeof(char szStr1[10]) {
char szStr2[10]=”12345”;
printf(“%u,”, sizeof(szStr1));
printf(“%u\\r\\n,”, sizeof(szStr2)); return;
}
int main( ) {
string_sizeof(”12345”); 代码Ⅲ
pcStr[3]=”a”; 代码Ⅳ
unsigned int uiA=100; printf(“%s\\r\\n,”, uiA); return 0; }
A. 代码Ⅰ,const修饰符表明pcStr指针不能再次被赋值,也就是说不能指向其他缓冲区.
B. 代码Ⅱ,程序的运行结果是“4,10”.
C. 代码Ⅲ,对pcStr[3]的赋值会导致程序访问非法地址. D. 代码Ⅳ,打印unsigned int时不应该使用“%s”,会导致程序访问非法地址。
6.关于结构的大小,以下描述正确的有(B )
struct A_S struct B_S { {
unsigned short us1; unsigned char uc1;
unsigned short us2; unsigned int uc2; unsigned short us3; unsigned short us3; }; };
union C_U union D_U { {
unsigned int ui1 unsigned char uc2;
unsigned char uc2; unsigned short us3; unsigned short us3; unsigned int ui1; }; };
A. 结构struct A_S的大小是6 B. 结构struct B_S的大小是12 C. 联合union C_U的大小是12 D. 联合union D_U的大小是12
7.以下描述正确的有( C )
A. “尾端和头端”与CPU类型没有关系,是C语言特有的 B. 由于C语言具有良好的可移植性,原来运行在32位计算机上的C语言程序,重新移植在64位计算机上,运行结果是一致的。
C. 如果用关键字register修饰一个变量,则程序在运行时会尽量把该变量保
存在寄存器,哪个寄存器由编译结果指定。
8.如果限定程序的栈的大小是1K字节,则以下代码,运行时会出错的有( C ) A.foo.c
static int iA[512]; int main( ) {return θ;}
B. foo.c
int main( ) {
static int iA[512] return θ; }
C. foo.c
int main( ) {
int iA[512] return θ; }
D. foo.c
int main( ) {
Int*piA
piA=malloc(512*sizeof(int)); return θ; }
9.以下描述正确的有( A ) A sizeof(long)等于4.
B.short类型的指针p,p++表示指向下一个字节。 C.int a=oxffffoooo,a的值为-65535. D.unsigned char类型的取值范围是0~256.
10. 以下代码正确的是(C ) A.Char a[]={“ABC”}; B.Char a=”k”;
c. char a[4]={0};
d, char a[11]=”Hello Word!”;
11.以下代码最后一次打印结果是(B ) void fun(int iInputNum) {
static int iCount=1;
iCount=iCount+iInputNum;
Print(“\\n iCount =%d”,icount+iInputNum); }
for(i=1;i<3;i++) {
Fun(i); }
A.iCount =3 B.iCount =4 C.iCount =6 D.iCount =5
12.关于以下代码,输出结果是(A ) Void Fun( ) {
Int i;
Int x[3][3]={1,2,3,4,5,6,7,8,9}; Int *p;
P=& x [1][1];
For(i=0;i<4;i+=2)
Printf(“%d”,p[i]); }
A.5 7 B.5 9 C.1 3 D.1 5
13.有如下链表和节点D,将D替换B,并删除B,以下代码正确的有单链表: AA A pstNext pstNext B C PstA pstB
D partD 双链表:
A pstNext pstNext pstPre pstPre B C PstA pstB D
pstD (C )
共分享92篇相关文档