C語(yǔ)言筆試題目
C語(yǔ)言是現(xiàn)今社會(huì)重要的編程語(yǔ)言之一。C語(yǔ)言筆試問(wèn)題有哪些呢?我們來(lái)看看吧。
C語(yǔ)言筆試題目:
1.Ethternet鏈接到Internet用到以下那個(gè)協(xié)議? D
A.HDLC;B.ARP;C.UDP;D.TCP;E.ID
2.屬于網(wǎng)絡(luò)層協(xié)議的是:( B C)
A.TCP;B.IP;C.ICMP;D.X.25
3.Windows消息調(diào)度機(jī)制是:(C)
A.指令隊(duì)列;B.指令堆棧;C.消息隊(duì)列;D.消息堆棧;
4.Windows下的內(nèi)存是如何管理的?
分頁(yè)管理
5.談?wù)処A32下的分頁(yè)機(jī)制
小頁(yè)(4K)兩級(jí)分頁(yè)模式,大頁(yè)(4M)一級(jí)
6.給兩個(gè)變量,如何找出一個(gè)帶環(huán)單鏈表中是什么地方出現(xiàn)環(huán)的?
一個(gè)遞增一,一個(gè)遞增二,他們指向同一個(gè)接點(diǎn)時(shí)就是環(huán)出現(xiàn)的地方
7.請(qǐng)問(wèn)以下代碼有什么問(wèn)題:
1).
int main()
{
char a;
char *str=&a;
strcpy(str,"hello");
printf(str);
return 0;
}
答;沒(méi)有為str分配內(nèi)存空間,將會(huì)發(fā)生異常
問(wèn)題出在將一個(gè)字符串復(fù)制進(jìn)一個(gè)字符變量指針?biāo)傅刂贰km然可以正確輸出結(jié)果,但因?yàn)樵浇邕M(jìn)行內(nèi)在讀寫(xiě)而導(dǎo)致程序崩潰。
Strcpy的在庫(kù)函數(shù)string.h中.程序的主要錯(cuò)誤在于越界進(jìn)行內(nèi)存讀寫(xiě)導(dǎo)致程序崩潰//
2).
char* s="AAA";
printf("%s",s);
s[0]='B';
printf("%s",s);
有什么錯(cuò)?
答: "AAA"是字符串常量。s是指針,指向這個(gè)字符串常量,所以聲明s的時(shí)候就有問(wèn)題。
cosnt char* s="AAA";
然后又因?yàn)槭浅A,所以?duì)是s[0]的賦值操作是不合法的。
8. 什么是預(yù)編譯,何時(shí)需要預(yù)編譯:
答: 就是指程序執(zhí)行前的一些預(yù)處理工作,主要指#表示的.
何時(shí)需要預(yù)編譯?
1)、總是使用不經(jīng)常改動(dòng)的大型代碼體。
2)、程序由多個(gè)模塊組成,所有模塊都使用一組標(biāo)準(zhǔn)的包含文件和相同的編譯選項(xiàng)。在這種情況下,可以將所有包含文件預(yù)編譯為一個(gè)預(yù)編譯頭。
9. 下述三個(gè)有什么區(qū)別?
char * const p;
char const * p
const char *p
解答:
char * const p; //常量指針,p的值不可以修改
char const * p;//指向常量的指針,指向的常量值不可以改
const char *p; //和char const *p
10、請(qǐng)找出下面代碼中的所有錯(cuò)誤 (題目不錯(cuò),值得一看)
說(shuō)明:以下代碼是把一個(gè)字符串倒序,如“abcd”倒序后變?yōu)?ldquo;dcba”
#include"string.h"
main()
{
char*src="hello,world";
char* dest=NULL;
int len=strlen(src);
dest=(char*)malloc(len);
char* d=dest;
char* s=src[len];
while(len--!=0)
d++=s--;
printf("%s",dest);
return 0;
}
答:
方法1:一共有4個(gè)錯(cuò)誤;
int main()
{
char* src = "hello,world";
int len = strlen(src);
char* dest = (char*)malloc(len+1);//要為分配一個(gè)空間 char* d = dest;
char* s = &src[len-1]; //指向最后一個(gè)字符
while( len-- != 0 )
*d++=*s--;
*d = 0; //尾部要加’\0’
printf("%sn",dest);
free(dest); // 使用完,應(yīng)當(dāng)釋放空間,以免造成內(nèi)存匯泄露
dest = NULL; //防止產(chǎn)生野指針
return 0;
}
方法2: (方法一需要額外的存儲(chǔ)空間,效率不高.) 不錯(cuò)的想法
#include
#include
main()
{
char str[]="hello,world";
int len=strlen(str);
char t;
for(int i=0; i
{
t=str[i];
str[i]=str[len-i-1]; //小心一點(diǎn)
str[len-i-1]=t;
}
printf("%s",str);
return 0;
}
11.對(duì)于一個(gè)頻繁使用的短小函數(shù),在C語(yǔ)言中應(yīng)用什么實(shí)現(xiàn),在C++中應(yīng)用什么實(shí)現(xiàn)?
c用宏定義,c++用inline
12.直接鏈接兩個(gè)信令點(diǎn)的一組鏈路稱作什么?
PPP點(diǎn)到點(diǎn)連接
13.接入網(wǎng)用的是什么接口?
V5接口
14.voip都用了那些協(xié)議?
H.323協(xié)議簇、SIP協(xié)議、Skype協(xié)議、H.248和MGCP協(xié)議
15.軟件測(cè)試都有那些種類(lèi)?
黑盒:針對(duì)系統(tǒng)功能的測(cè)試
白盒:測(cè)試函數(shù)功能,各函數(shù)接口
16.確定模塊的功能和模塊的接口是在軟件設(shè)計(jì)的那個(gè)隊(duì)段完成的?
概要設(shè)計(jì)階段
17.
unsigned char *p1;
unsigned long *p2;
p1=(unsigned char *)0x801000;
p2=(unsigned long *)0x810000;
請(qǐng)問(wèn)p1+5= ;
p2+5= ;
答案:0x801005(相當(dāng)于加上5位) 0x810014(相當(dāng)于加上20位);
18、關(guān)鍵字const有什么含意?
答 :1)表示常量不可以修改的`變量。
2)可以修飾參數(shù),作為輸入?yún)?shù).
3)修飾函數(shù),防止以外的改動(dòng).
4)修飾類(lèi)的成員函數(shù),不改變類(lèi)中的數(shù)據(jù)成員.
19、關(guān)鍵字volatile有什么含意?并舉出三個(gè)不同的例子?
答: 提示編譯器對(duì)象的值可能在編譯器未監(jiān)測(cè)到的情況下改變。
例子: 硬件時(shí)鐘;多線程中被多個(gè)任務(wù)共享的變量等
20. int (*s[10])(int) 表示的是什么啊
int (*s[10])(int) 函數(shù)指針數(shù)組,每個(gè)指針指向一個(gè)int func(int param)的函數(shù)。
21.有以下表達(dá)式:
int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int const *f const =&a;
請(qǐng)問(wèn)下列表達(dá)式哪些會(huì)被編譯器禁止?為什么?
答:*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;
*c 這是個(gè)什么東東,禁止
*d 說(shuō)了是const, 禁止
e = &a 說(shuō)了是const 禁止
const *f const =&a; 禁止
22.交換兩個(gè)變量的值,不使用第三個(gè)變量。即a=3,b=5,交換之后a=5,b=3;
答:有兩種解法, 一種用算術(shù)算法, 一種用^(異或)
a = a + b;
b = a - b;
a = a - b;
or
a = a^b;// 只能對(duì)int,char..
b = a^b;
a = a^b;
or
a ^= b ^= a;
23.c和c++中的struct有什么不同?
答: c和c++中struct的主要區(qū)別是c中的struct不可以含有成員函數(shù),而c++中的struct可以。c++中struct和class的主要區(qū)別在于默認(rèn)的存取權(quán)限不同,struct默認(rèn)為public,而class默認(rèn)為private.
24.#include
#include
void getmemory(char *p)
{
p=(char *) malloc(100);
}
int main( )
{
char *str=NULL;
getmemory(str);
strcpy(p,"hello world");
printf("%s/n",str);
free(str);
return 0;
}
答: 程序崩潰,getmemory中的malloc 不能返回動(dòng)態(tài)內(nèi)存, free()對(duì)str操作很危險(xiǎn)
25.char szstr[10];
strcpy(szstr,"0123456789");
產(chǎn)生什么結(jié)果?為什么?
答;正常輸出,長(zhǎng)度不一樣,會(huì)造成非法的OS,覆蓋別的內(nèi)容.
26.列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)。
答:原子操作
信號(hào)量機(jī)制
自旋鎖
管程,會(huì)合,分布式系統(tǒng)
27.進(jìn)程之間通信的途徑
答 共享存儲(chǔ)系統(tǒng)
消息傳遞系統(tǒng)
管道:以文件系統(tǒng)為基礎(chǔ)
【C語(yǔ)言筆試題目】相關(guān)文章:
C語(yǔ)言筆試題目及答案05-07
華為c語(yǔ)言筆試題07-23
有趣的C語(yǔ)言筆試題06-09
計(jì)算機(jī)二級(jí)C語(yǔ)言筆試題目05-15
關(guān)于C語(yǔ)言游戲開(kāi)發(fā)筆試題06-19
中興通訊C++/C筆試題06-20
it筆試題目07-07
會(huì)計(jì)筆試常見(jiàn)筆試題目06-20
聯(lián)想C++筆試題05-07