騰訊C語言筆試題
1.static有什么用途?(請至少說明兩種)
1)在函數體,一個被聲明為靜態的變量在這一函數被調用過程中維持其值不變。
2) 在模塊內(但在函數體外),一個被聲明為靜態的變量可以被模塊內所用函數訪問,但不能被模塊外其它函數訪問。它是一個本地的全局變量。
3) 在模塊內,一個被聲明為靜態的函數只可被這一模塊內的其它函數調用。那就是,這個函數被限制在聲明它的模塊的本地范圍內使用
2.引用與指針有什么區別?
1) 引用必須被初始化,指針不必。
2) 引用初始化以后不能被改變,指針可以改變所指的對象。
3) 不存在指向空值的引用,但是存在指向空值的指針。
3.描述實時系統的基本特性
在特定時間內完成特定的任務,實時性與可靠性。
4.全局變量和局部變量在內存中是否有區別?如果有,是什么區別?
全局變量儲存在靜態全局數據段,局部變量在堆棧。
5.什么是平衡二叉樹?
左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對值不大于1。
6.堆棧溢出一般是由什么原因導致的?
沒有回收垃圾資源。
7.什么函數不能聲明為虛函數?
constructor函數不能聲明為虛函數。
8.冒泡排序算法的時間復雜度是什么?
時間復雜度是O(n^2)。
9.寫出float x 與“零值”比較的if語句。
if(x>0.000001&&x<-0.000001)
10.Internet采用哪種網絡協議?該協議的主要層次結構?
Tcp/Ip協議
主要層次結構為: 應用層/傳輸層/網絡層/數據鏈路層/物理層。
11.Internet物理地址和IP地址轉換采用什么協議?
ARP (Address Resolution Protocol)(地址解析協議)
12.IP地址的編碼分為哪倆部分?
IP地址由兩部分組成,網絡號和主機號。不過是要和“子網掩碼”按位與上之后才能區分哪些是網絡位哪些是主機位。
13.用戶輸入M,N值,從1至N開始順序循環數數,每數到M輸出該數值,直至全部輸出。寫出C程序。
循環鏈表,用取余操作做
14.不能做switch()的`參數類型是:
switch的參數不能為實型。
一、判斷題(對的寫T,錯的寫F并說明原因,每小題4分,共20分)
1、有數組定義int a[2][2]={{1},{2,3}};則a[0][1]的值為0。( T )
2、int (*ptr) (),則ptr是一維數組的名字。( F )
3、指針在任何情況下都可進行>, <, >=, <=, = =運算。( F )
4、switch(c) 語句中c可以是int, long, char, float, unsigned int 類型。(F )
5、#define print(x) printf("the no, "#x",is ") ( T )
二、填空題(共30分)
1、在windows下,寫出運行結果,每空2分,共10分。
char str[ ]= "Hello";
char *p=str;
int n=10;
sizeof(str)=( 6 )
sizeof(p)=( 4 )
sizeof(n)=( 4 )
void func(char str[100])
{ }
sizeof(str)=( 4 )
2、
void setmemory(char **p, int num)
{ *p=(char *) malloc(num);}
void test(void)
{ char *str=NULL;
getmemory(&str,100);
strcpy(str,"hello");
printf(str);
}
運行test函數有什么結果?( hello )10分
3、設
int arr[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++)+=123;
printf("%d,%d",*ptr,*(++ptr));
|
( 8,8 ) 10分
二、編程題(第一小題20,第二小題30分)
1、 不使用庫函數,編寫函數int strcmp(char *source, char *dest)
相等返回0,不等返回-1;
int strcmp(char *source,char *dest)
{
if((source == NULL) && (dest == NULL))
{
return 0;
}
while((*source != '\0') && (*dest != '\0'))
{
if(*source != *dest)
{
return 1;
}
else
{
source ++;
dest ++;
}
}
if((*source == '\0') && (*dest == '\0'))
{
return 0;
}
else
{
return 1;
}
}
int strcmp(char *source,char *dest)
{
if((source == NULL) && (dest == NULL))
{
return 0;
}
while((*source != '\0') && (*dest != '\0'))
{
if(*source != *dest)
{
return 1;
}
else
{
source ++;
dest ++;
}
}
if((*source == '\0') && (*dest == '\0'))
{
return 0;
}
else
{
return 1;
}
}
2、 寫一函數int fun(char *p)判斷一字符串是否為回文,是返回1,不是返回0,出錯返回-1
int fun(char *p)
{
if(p == NULL)
{
return -1;
}
char *pBegin = p;
char *pEnd = p;
while(*pEnd != '\0')
{
pEnd ++;
}
pEnd --;
while(pBegin < pEnd)
{
if(*pBegin != *pEnd)
{
return 0;
}
else
{
pBegin ++;
pEnd --;
}
}
return 1;
}
int fun(char *p)
{
if(p == NULL)
{
return -1;
}
char *pBegin = p;
char *pEnd = p;
while(*pEnd != '\0')
{
pEnd ++;
}
pEnd --;
while(pBegin < pEnd)
{
if(*pBegin != *pEnd)
{
return 0;
}
else
{
pBegin ++;
pEnd --;
}
}
return 1;
}
【騰訊C語言筆試題】相關文章:
C語言基礎筆試題11-24
C語言筆試題集錦11-24
外企C語言筆試題11-23
C語言筆試題回憶11-23
C語言筆試題總結11-23
c語言常見筆試題總結11-23
C語言常用筆試題11-23
華為C語言上機試題及答案11-12
上海貝爾c語言筆試題07-03
C語言游戲開發筆試題06-15