1、兩個等價線程并發的執行下列程序,a為全局變量,初始為0,假設printf、++、--操作都是原子性的,則輸出肯定不是哪個?
void foo() {
if(a <= 0) {
a++;
}
else {
a--;
}
printf("%d", a);
}
A 01
B 10
C 12
D 22
2、在有序表(5,8,36,48,50,58,88)中二分查找字58時所需進行的關鍵字比較次數是(),對應的判定樹高度為()。
A 2,2
B 2,3
C 3,2
D 3,3
3、對于一個已經不被任何變量引用的對象,當垃圾回收器準備回收該對象所占用的內存時,將自動調用該對象的哪個方法()
A finalize
B notify
C notifyAll
D hashCode
4、#include
void test(void *data) {
unsigned int value = (此處應填入)
printf("%u", value);
}
using namespace std;
int main() {
unsigned int value = 10;
test(&value);
return 0;
}
A *data
B (unsigned int)(*data)
C (unsigned*)data
D *((unsigned int *)data)
5、將一個遞歸算法改為對應的非遞歸算法時,通常需要使用( )。
A 優先隊列
B 隊列
C 循環隊列
D 棧
6、關于linux的I/O復用接口select和epoll,下列說法錯誤的是()
A select調用時會進行線性遍歷,epoll采用回調函數機制,不需要線性遍歷
B select的大連接數為FD_SETSIZE
C select較適合于有大量并發連接,且活躍鏈接較多的場景
D epoll較適用于有大量并發連接,但活躍連接不多的場景
E epoll的效率不隨FD數目增加而線性下降
F epoll通過共享存儲實現內核和用戶的數據交互
7、請說出const與#define 相比,有何優點 ?
A 宏常量有數據類型,而const常量沒有數據類型
B 有些集成化的調試工具可以對const 常量進行調試,但是不能對宏常量進行調試
C 編譯器可以對const進行類型安全檢查。而對#define只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產生意料不到的錯誤。
8、稀疏矩陣壓縮的存儲方法是:()
A 三元組
B 二維數組
C 散列
D 十字鏈表
9、文件aaa的訪問權限為rw-r--r--,現要增加所有用戶的執行權限和同組用戶的寫權限,下列哪些命令是正確的?
A chmod a+x g+w aaa
B chmod 764 aaa
C chmod 775 aaa
D chmod o+x g+w aaa
10、下列說法錯誤的是 ()
A 利用一組地址連續的存儲單元依次存放自棧底到棧頂的數據元素,這種形式的棧也稱為順序棧
B top=0 時為空棧,元素進棧時指針 top 不斷地減 1
C 當top等于數組的大下標值時則棧滿
D 棧不能對輸入序列部分或全局起求逆作用
參考答案:
一、1~5:ABADD 6~10:C BC AD AC BD