TCL集團校園招聘C/C++方向筆試題
TCL集團2013年校園招聘筆試題[C/C++方向]
提示:本測試題總分100分,請60分鐘內完成測試,
TCL集團校園招聘C/C++方向筆試題
。一、判斷題(正確的打√,錯誤的打×,每題1分,合計1x10=10分)
1. C語言中,016218表示為一個八進制整數。()
2. switch(c)語句中,c可以是int, long, unsigned char, char, unsigned int類型。()
3. 有數組定義int a1[2][2]={{1,2},{2}};則a1[1][1]的值為不確定的。()
4. 有#define MYPRINT(x) printf("#x") 則MYPRINT(test)的輸出結果為test.()
5. a=(b=4)+(c=6)是一個合法的賦值表達式。()
6. 自增運算符(++)和自減運算符(--)只能用于變量,不能用于常量和表達式。()
7. 若有說明static int a[3][4];?則數組a中各元素可在程序的編譯階段得到初值0。()
8. char const * const p;與const char * const p;是一樣,但是char * const p;與char const *p;是不一樣的。()
9. C++中const成員函數對于任何本類的數據成員都不能進行寫操作。()
10. C++中所有的函數都是純虛函數的才是純虛類。()
二、填空題(20分)
注:以下填空題目都是以32位機為主
1. 給定結構
#pragma pack(4)
struct A{
int a1:30;
char a2:2;
int a3:16;
int a4:16;
char a5;
int a6:3;
};
union B{
int b1:16;
char b2:2;
};
則
sizeof(A)= _____________
sizeof(B)= _____________
(5分)
2、 下面代碼實現統計一個整數二進制格式中包含多少個'1'請補充完整(5分)
int GetBitNumber(int number)
{
int cnt=0;
while(number!=0)
{
__________________________;
__________________________;
}
return cnt;
}
3、 有如下定義
char *a1[]={"hello!","tclmob"};
char a2[]="\thello\0";
char a3[][8]={"hello!","tclmob"};
char *p1="hello";
char **p2=a1;
char a4[]={'h','e','l','l','o','\0'};
int a5[]={'h','e','l','l','o','\0'};
請問
sizeof(a1)= _____________
sizeof(a2)= _____________
strlen(a2)= _____________
sizeof(a3)= _____________
sizeof(p1)= _____________
sizeof(p2)= _____________
sizeof(a4)= _____________
sizeof(a5)= _____________
(4分)
4、 在一棵二叉樹上第8層的結點數最多是____個。(2分)
5、 進程之間通信的.途徑有____._____._____._____.(4分)
三、單/多項選擇題(每題2分,合計2*15=30分)
1、 對于浮點變量f,能實現對f中的值在小數點后第三位進行四舍五入的表達式有_____
A)f=(f*100+0.5)/100.0 B)f=(f*100+0.5)/100
C)f=(int)(f*100+0.5)/100.0 D)f=((int)(f*100+0.5))/100.0
2、 若x、b、m、n均為int型變量,執行下面語句后b的值為_____
m=20;n=6;
x=(--m==n++)?--m:++n
b=m++;
A)11 B)6 C)19 D)18
3、 下列選項中可以將變量n清零的表達式有____
A)n=~n&~n B)n=n&~n C)n=n^n D)n=n|n
4、 若有以下說明int a[5][9]; 則下列選項中對數組元素a[i][j]的正確引用有________(0<=i<4,0<=j<0)
A)*(&a[0][0]+9*i+j) B)*(a+i)(j)
C)*(*(a+i)+j) D)*(a[i]+j)
5、 下列選項中沒有構成死循環的程序段有______
A)int i=100; B)for( ; ; )
while(1)
{ i=i%100+1;
if(i>=100) break;}
C)int k=0; D)int s=36; while(s);--s;
do{++k;}while(k>=0);
6、 有如下程序:
void fun(int i)
{
printf("%d,",i);
}
void main()
{
int i=5;
fun(i);
fun;
}
則運行結果是_____
A)5,0, B)5, C)5,5, D)5,隨機值 E)可能出現運行異常
7、 若變量已正確定義,要求程序段完成求5!的計算,下列選項中能完成此操作的程序段
A)for (i=1,p=1;i<=5;i++) p*=i;
B)for (i=1;i<=5;i++) {p=1;p*=i;}
C)i=1;p=1;while(i<=5) p*=i;i++;
D)i=1;p=1;do{p*=i;i++;}while(i<=5);
8、 有如下代碼:
int a,b,c;a=b=c=0;
0>1?a++:1>0?b++:c++;
printf("%d%d%d\n",a,b,c);
則輸出結果是_________
A)010 B)110 C)111 D)語法錯誤
9、 OSI模型中,會話層的主要任務有______
A)向用戶提供可靠的端到端服務,透明地傳送報文
B)組織兩個會話進程之間的通信,并管理數據的交換
C)處理兩個通信系統中交換信息的表示方式
D)確定進程之間通信的性質,以滿足用戶的需要
10、有以下程序
main()
{
int x=102,y=012;
printf("%2d,%2d\n",x^y,x|y);
}
執行后輸出結果是是()
A)4,110 B)002,112 D)108,110 D)106,110
11、設有如下的程序段:
char str[]="Hello";
char *ptr;
ptr=str;
執行上面的程序段后,*(ptr+5)的值為______
A)'o' B)'\0' C)不確定的值 D)'o'的地址
12、一個棧的輸入序列為1 2 3,則可能是棧的輸出序列的是_____
A)231 B)321 C)312 D)123
13、下面關于完全二叉樹的敘述中,正確的有______
A)除了最后一層外,每一層上的結點數均達到最大值,
資料共享平臺
《TCL集團校園招聘C/C++方向筆試題》(http://salifelink.com)。B)可缺少若干個左右葉子結點
C)完全二叉樹一般不是滿二叉樹
D)具有結點的完全二叉樹的深度為[log2n]+1
14、下面概念中,屬于面向對象方法的有___________
A)對象、消息 B)繼承、多態 C)類、封裝 D)過程調用
15、在下列幾種排序方法中,要求內存量最大的是__________.
A)插入排序 B)選擇排序 C)快速排序 D)歸并排序
四、簡答題(每題5分,合計5x4=20分)
1、 寫出程序執行結果,并解釋原因(5分)
void getstr(char *p)
{
p=(char *)malloc(100);
strcpy(p,"TCL");
}
void main()
{
char *str;
getstr(str);
if(str)
{
str[3]='0';
printf("%s,%d\n",strlen(str));
free(str);
}
}
2、 寫一個“標準”宏,這個宏返回一個數組最高維的下標(如數組a[2][4][6],執行宏之后結果是2)。(5分)
3、 比較說明什么是Big-Endian,Little-Endian,網絡字節序。(5分)
4、 下面程序
main()
{
char *p1="abc", *p2="ABC", str[8]="xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s \n",str);
}
運行結果是什么?為什么?(5分)
五、編程題(20分)
有兩個單向鏈表,函數find_node作用是判斷兩個鏈表是否有交點(兩個鏈表有相同的節點),如果有返回第一個交點。請編程實現。
type struct tag_node
{
int key;
struct tag_node *next;
}node;
函數原型:
node* find_node(node *head1,node *head2)
入參說明:
head1,head2:待檢查的兩個鏈表
返回:
相交的節點
【TCL集團校園招聘C/C++方向筆試題】相關文章:
5.C/C++筆試題
6.C++筆試題
8.網易C++筆試題