小編今天為大家提供的試題多為C語言、數據結構方面的試題,符合嵌入式公司出題模式!希望對大家有所幫助。
1、現在有以下語句:
struct _THUNDER{
int iVersion;
char cTag;
char cAdv;
int iUser;
char cEnd;
}Thunder;
int sz = sizeof(Thunder);
則執(zhí)行后,變量sz的值將得到
A.11
B.12
C.13
D.16
2、關于內聯函數正確的是()
A.類的私有成員函數不能作為內聯函數
B.在所有類說明中內部定義的成員函數都是內聯函數
C.類的保護成員函數不能作為內聯函數
D.使用內聯函數的地方會在運行階段用內聯函數體替換掉
3、若一個棧以向量V[1…n]存儲,初始棧頂指針top為n+1,則下面x入棧的正確操作是()
A.top:=top+1;V[top]:=x
B.V[top]:=x;top:=top+1
C.top:=top-1;V[top]:=x
D.V[top]:=x;top:=top-1
4、下述有關棧和隊列的區(qū)別,說法錯誤的是?
A.棧是限定只能在表的一端進行插入和刪除操作。
B.隊列是限定只能在表的一端進行插入和在另一端進行刪除操作。
C.棧和隊列都屬于線性表
D.棧的插入操作時間復雜度都是o(1),隊列的插入操作時間復雜度是o(n)
5、下面關于多態(tài)性的描述,錯誤的是:
A.C++語言的多態(tài)性分為編譯時的多態(tài)性和運行時的多態(tài)性
B.編譯時的多態(tài)性可通過函數重載實現
C.運行時的多態(tài)性可通過模板和虛函數實現
D.實現運行時多態(tài)性的機制稱為動態(tài)綁定
6、下列對函數double add(int a , int b)進行重載,正確的是()
A.int add(int a ,int b ,int c)
B.int add(double a , double b)
C.double add(double a , double b)
D.int add(int a , int b)
7、下面算法中可以判斷出一個有向圖是否有環(huán)的是:()
A.求短路徑
B.深度優(yōu)先遍歷
C.廣度優(yōu)先遍歷
D.拓撲排序
8、全局變量可不可以定義在可被多個.C文件包含的頭文件中?為什么?
9、寫出下列代碼的輸出內容 ___
int inc(int a)
{
return(++a);
}
int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
typedef int(FUNC1)(int in);
typedef int(FUNC2) (int*,int*,int*);
void show(FUNC2 fun,int arg1, int*arg2)
{
FUNC1 * p=&inc;
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf("%d\n",*arg2);
}
main( )
{
int a;
show(multi,10,&a);
return 0;
}
10、static有什么用途?(請至少說明兩種)
參考答案:
1~5:DBCDC 6~7:ABC BD
8:可以,在不同的C文件中以static形式來聲明同名全局變量。
可以在不同的C文件中聲明同名的全局變量,前提是其中只能有一個C文件中對此變量賦初值,此
時連接不會出錯
9:110
10:類型聲明符在C語言里面主要有三個用途:
1.聲明靜態(tài)局部變量
2.聲明靜態(tài)外部全局變量
3.聲明靜態(tài)外部函數