c++軟件開發(fā)筆試題目
C++代碼· C++設(shè)計(jì)成靜態(tài)類型、和C同樣高效且可移植的多用途程序設(shè)計(jì)語言。下面就由學(xué)習(xí)啦小編為大家介紹一下c++軟件開發(fā)筆試題目的文章,歡迎閱讀。
c++軟件開發(fā)筆試題目篇1
1、(4分)用變量a給出下面的定義
a) 一個(gè)整型數(shù);
b)一個(gè)指向整型數(shù)的指針;
c)一個(gè)指向指針的指針,它指向的指針是指向一個(gè)整型數(shù);
d)一個(gè)有10個(gè)整型的數(shù)組;
e)一個(gè)有10個(gè)指針的數(shù)組,該指針是指向一個(gè)整型數(shù);
f)一個(gè)指向有10個(gè)整型數(shù)數(shù)組的指針;
g)一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù);
h)一個(gè)有10個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)
答案:
a)int a
b)int *a;
c)int **a;
d)int a[10];
e)int *a [10];
f) int (*a)[10]
g)int (*a)(int)
h) int( *a[10])(int)
2、(4分)請(qǐng)寫出以下語句的輸出結(jié)果:
Int i=43;
Int j=5;
Double f=25.45181;
a) printf(“i=%d,j=%d,f=%3.2f”,i,j,f);
b) printf(“i=%x,j=%06d,i/j=%d”,i,j,i/j);
答案:
A)i=43,j=5,f=25.45
(說明:本來應(yīng)該輸出最小3位有效數(shù)字,25.5,但是由于限定了2位小數(shù),所以強(qiáng)制有2位小數(shù),有效數(shù)字的個(gè)數(shù)就起不到強(qiáng)制作用了。如果是%3.1,則輸出為25.5)
B)i=2B ,j=000005,i/j=8
(%x顯示的是一個(gè)無符號(hào)的0x 16進(jìn)制的整數(shù),%06d輸出的是6位數(shù),不夠6位數(shù),前面補(bǔ)0,i/j兩個(gè)整數(shù)相除,只取商的整數(shù)值)
3、(2分)請(qǐng)完成以下宏定義:
a)用預(yù)處理指令#define 聲明一個(gè)常數(shù),用以表明1年中有多少個(gè)秒(忽略閏年問題) b)寫一個(gè)“標(biāo)準(zhǔn)”宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)
答案:
a)#define SECONDS (365*24*60*60)UL
b) #define MIN(a,b) ((A)<(B)?(A):(B))
擴(kuò)展:MAX宏 #define MAX ((A)>(B)?(A):(B))
ABS宏 #define ABS (((X)>0)?(X):(-(X)))
4、(6分)以下為32為windows下的c++程序,請(qǐng)計(jì)算:
a)
char str[]=”hello”;
char *p=str;
請(qǐng)計(jì)算:
sizeof(str)=6
sizeof(p)=4
strlen(p)=5
答案:6,字符串?dāng)?shù)組以
c++軟件開發(fā)筆試題目
C++代碼· C++設(shè)計(jì)成靜態(tài)類型、和C同樣高效且可移植的多用途程序設(shè)計(jì)語言。下面就由學(xué)習(xí)啦小編為大家介紹一下c++軟件開發(fā)筆試題目的文章,歡迎閱讀。
c++軟件開發(fā)筆試題目篇1
1、(4分)用變量a給出下面的定義
a) 一個(gè)整型數(shù);
b)一個(gè)指向整型數(shù)的指針;
c)一個(gè)指向指針的指針,它指向的指針是指向一個(gè)整型數(shù);
d)一個(gè)有10個(gè)整型的數(shù)組;
e)一個(gè)有10個(gè)指針的數(shù)組,該指針是指向一個(gè)整型數(shù);
f)一個(gè)指向有10個(gè)整型數(shù)數(shù)組的指針;
g)一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù);
h)一個(gè)有10個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)
答案:
a)int a
b)int *a;
c)int **a;
d)int a[10];
e)int *a [10];
f) int (*a)[10]
g)int (*a)(int)
h) int( *a[10])(int)
2、(4分)請(qǐng)寫出以下語句的輸出結(jié)果:
Int i=43;
Int j=5;
Double f=25.45181;
a) printf(“i=%d,j=%d,f=%3.2f”,i,j,f);
b) printf(“i=%x,j=%06d,i/j=%d”,i,j,i/j);
答案:
A)i=43,j=5,f=25.45
(說明:本來應(yīng)該輸出最小3位有效數(shù)字,25.5,但是由于限定了2位小數(shù),所以強(qiáng)制有2位小數(shù),有效數(shù)字的個(gè)數(shù)就起不到強(qiáng)制作用了。如果是%3.1,則輸出為25.5)
B)i=2B ,j=000005,i/j=8
(%x顯示的是一個(gè)無符號(hào)的0x 16進(jìn)制的整數(shù),%06d輸出的是6位數(shù),不夠6位數(shù),前面補(bǔ)0,i/j兩個(gè)整數(shù)相除,只取商的整數(shù)值)
3、(2分)請(qǐng)完成以下宏定義:
a)用預(yù)處理指令#define 聲明一個(gè)常數(shù),用以表明1年中有多少個(gè)秒(忽略閏年問題) b)寫一個(gè)“標(biāo)準(zhǔn)”宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)
答案:
a)#define SECONDS (365*24*60*60)UL
b) #define MIN(a,b) ((A)<(B)?(A):(B))
擴(kuò)展:MAX宏 #define MAX ((A)>(B)?(A):(B))
ABS宏 #define ABS (((X)>0)?(X):(-(X)))
4、(6分)以下為32為windows下的c++程序,請(qǐng)計(jì)算:
a)
char str[]=”hello”;
char *p=str;
請(qǐng)計(jì)算:
sizeof(str)=6
sizeof(p)=4
strlen(p)=5
答案:6,字符串?dāng)?shù)組以\0(空格為結(jié)尾,所以str數(shù)組空間大小為5+1)
4,計(jì)算的是指針的長(zhǎng)度。
5,strlen函數(shù)區(qū)的字符指針str的長(zhǎng)度,不包括空字符。
b)
void func(char str[100])
{
Void *p=malloc(100);
}
請(qǐng)計(jì)算:
sizeof(str)=100,:表示在內(nèi)存中預(yù)分配的內(nèi)存大小。
sizeof (p)=4
c)
int a[3]={1,2,3};
int b=sizeof(a)/sizeof(a[0]); sizeof(a)求的是數(shù)組的大小。
請(qǐng)計(jì)算:
b=3,對(duì)的。
5、(2分) 設(shè)有定義:int n=0,*p=&n,**q=&p; 則以下選項(xiàng)中,正確的賦值語句是(d) a)p=1; b)*q=2; c)q=p; d)*p=5;
(c)改成q=&p; 才對(duì)。
6、(2分)const關(guān)鍵字的用途?(至少說明兩種)
答案:
(1)可以定義 const 常量
(2)const 可以修飾函數(shù)的參數(shù)、返回值,甚至函數(shù)的定義體。被const 修飾的東 西都受到強(qiáng)制保護(hù),可以預(yù)防意外的變動(dòng),能提高程序的健壯性。
(3)const可以用來修飾指針變量,控制指針變量的存取規(guī)則。
c++軟件開發(fā)筆試題目篇2
1、(2分)typedef的c語言中頻繁用以聲明一個(gè)已經(jīng)存在的數(shù)據(jù)類型的同義詞。也可以用以預(yù)處理器做類似的事情。例如:
#define dps struct s*
Typedef struct s * tps;
以上兩種情況的意圖都是要定義dps和tps作為一個(gè)指向結(jié)構(gòu)s指針。哪種方法更好一些呢?(如果有的話)為什么? 考慮安全性還是用typedef好,宏定義在編譯時(shí)是不檢查的,只是簡(jiǎn)單替換,而typedef編譯時(shí)要檢查的 typedef,而且typedef,define并非等價(jià),如#define string1 char *
typedef char *string2;第二種才能達(dá)到預(yù)想效果, string1 a,b;
得到的b是char
define是做替換的,typedef 則是重新定義一種數(shù)據(jù)類型的。可以向int型一樣使用的。
#define FIND(struct,e) (size_t) &(((struct*)0)->e)
typedef是語句( 以';'結(jié)尾)
Typedef。它在自己的作用域內(nèi)給一個(gè)已經(jīng)存在的類型一個(gè)別名
2、(8分) 以下是一組有關(guān)內(nèi)存知識(shí)的問題,請(qǐng)仔細(xì)看題,回答:
Void GetMemory(char *p)
{
P=(char *)malloc(100);
}
Void Test(void)
{
Char *str=Null;
GetMemory(str);
Strcpy(str,”hello world”);
Printf(str);
}
請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)果?
a)__________程序崩潰,運(yùn)行時(shí)錯(cuò)誤___________________________
char *GetMemory(void)
{
Char p[]=”hello world”);
Return p;
}
Void Test(void)
{
Char *str=NULL;
Str=GetMemory();
Printf(str);
}
請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么結(jié)果?
b)_______________ hello world ________________________________
void GetMemory2(char **p,int num)
{
*p=(char *)malloc(num);
}
Void Test(void)
{
Char *str=NULL;
GetMemory(&str,100);
Strcpy(str,”hello”);
Printf(str);
}
請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么結(jié)果?
c)_______ hello __________________________________________
void Test(void)
{
Char *str=(char *)malloc(100);
Strcpy(str,”hello”);
Free(str);
If(str!=NULL)
{
Strcpy(str,”world”);
Printf(str);
}
}、
請(qǐng)問運(yùn)行test函數(shù)會(huì)有什么樣的結(jié)果?
d)_______程序崩潰:因?yàn)獒尫舠tr指針后,沒有將指針置為null,所以指針變?yōu)橐爸羔樍?。再?zhí)行cpy時(shí)會(huì)因?yàn)檎也坏街羔樀闹赶蚨鴮?dǎo)致程序崩潰,請(qǐng)編程時(shí),注意這一點(diǎn)。 __________________________________________
3、(6分)請(qǐng)寫出以下程序的輸出結(jié)果:
Class A
{
Public:
A()
{ Printf(“A constructed.\n”);}
Virtual ~A()
{printf(“A deconstructed.\n”);}
Virtual void Fn()
{printf(“A fn called.\n”);} };
Class B:public A
{
Public:
B()
{printf(“B constructed.\n”);} Virtual ~B()
{printf(“B deconstructed.\n”);} Virtual void Fn()
{printf(“B fn called.\n”);} };
Class C:public B
{
Public:
C()
{printf(“C constructed.\n”);} Virtual ~C()
{printf(“C deconstructed.\n”);} Virtual void Fn()
{printf(“C fn called.\n”);} };
Void main(int argc,char* grgv[]) {
A *pA=new B;
If(pA!=NULL)
pA->fn();
B *pB=static_cast(pA);
If(pB!=NULL)
pB->fn();
C * pC=static_cast(pA); If(pC!=NULL)
pC->fn();
delete pA;
}
Answer:
A constructed
B constructed
B fn called
B fn called
B fn called
B deconstructed
A deconstructed
c++軟件開發(fā)筆試題目篇3
1.(2分)以下說法錯(cuò)誤的是:()
A)指針和引用作為函數(shù)參數(shù)都可以改變實(shí)參
B)指針和引用都可以在定義后任意的改變指向,引用是不可以改變的。
C)引用必須在創(chuàng)建的時(shí)候初始化,而指針則不需要
D)不能空引用,但是可以有空指針
2、(2分) 運(yùn)算符的重載形式有兩種,重載為_重載為類的內(nèi)部成員函數(shù)____________和_重載為類的友元函數(shù)______________________
3、(2分) main主函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼?請(qǐng)說明理由? 可以使用注冊(cè)函數(shù)讓程序在推出main之后,程序終止之前執(zhí)行自定義的一些代碼!
全局對(duì)象的構(gòu)造函數(shù)會(huì)在main 函數(shù)之前執(zhí)行
利用atexit()函數(shù)可以在程序終止前完成一些“清理”工作——如果將指向一組函數(shù)的指針傳遞給atexit()函數(shù),那么在程序退出main()函數(shù)后(此時(shí)程序還未終止)就能自動(dòng)調(diào)用這組函數(shù)。在使用atexit()函數(shù)時(shí)你要注意這樣兩點(diǎn):
main 之前:預(yù)編譯 全局變量的初始化等
main 之后:全局變量的釋放
main函數(shù)執(zhí)行之前,主要就是初始化系統(tǒng)相關(guān)資源
mainCRTStartup中被調(diào)用的
在main之前會(huì)調(diào)用一系列初始化函數(shù)來初始化這個(gè)進(jìn)程
而在main之后會(huì)調(diào)用exit(int)來進(jìn)行進(jìn)程的清理工作。可以用_onexit 注冊(cè)一個(gè)函數(shù)
,可以用_onexit 注冊(cè)一個(gè)函數(shù),它會(huì)在main 之后執(zhí)行int fn1(void), fn2(void), fn3(void), fn4 (void);
可能會(huì)執(zhí)行一些注冊(cè)過的Hook
注意,atexit()以棧的方式注冊(cè)函數(shù),后注冊(cè)的函數(shù)會(huì)先執(zhí)行。
_onexit和atexit()一樣是以占的方式注冊(cè)函數(shù)的,后注冊(cè)的函數(shù)會(huì)被先執(zhí)行。
void main( void )
4,計(jì)算的是指針的長(zhǎng)度。
5,strlen函數(shù)區(qū)的字符指針str的長(zhǎng)度,不包括空字符。
b)
void func(char str[100])
{
Void *p=malloc(100);
}
請(qǐng)計(jì)算:
sizeof(str)=100,:表示在內(nèi)存中預(yù)分配的內(nèi)存大小。
sizeof (p)=4
c)
int a[3]={1,2,3};
int b=sizeof(a)/sizeof(a[0]); sizeof(a)求的是數(shù)組的大小。
請(qǐng)計(jì)算:
b=3,對(duì)的。
5、(2分) 設(shè)有定義:int n=0,*p=&n,**q=&p; 則以下選項(xiàng)中,正確的賦值語句是(d) a)p=1; b)*q=2; c)q=p; d)*p=5;
(c)改成q=&p; 才對(duì)。
6、(2分)const關(guān)鍵字的用途?(至少說明兩種)
答案:
(1)可以定義 const 常量
(2)const 可以修飾函數(shù)的參數(shù)、返回值,甚至函數(shù)的定義體。被const 修飾的東 西都受到強(qiáng)制保護(hù),可以預(yù)防意外的變動(dòng),能提高程序的健壯性。
(3)const可以用來修飾指針變量,控制指針變量的存取規(guī)則。
c++軟件開發(fā)筆試題目篇2
1、(2分)typedef的c語言中頻繁用以聲明一個(gè)已經(jīng)存在的數(shù)據(jù)類型的同義詞。也可以用以預(yù)處理器做類似的事情。例如:
#define dps struct s*
Typedef struct s * tps;
以上兩種情況的意圖都是要定義dps和tps作為一個(gè)指向結(jié)構(gòu)s指針。哪種方法更好一些呢?(如果有的話)為什么? 考慮安全性還是用typedef好,宏定義在編譯時(shí)是不檢查的,只是簡(jiǎn)單替換,而typedef編譯時(shí)要檢查的 typedef,而且typedef,define并非等價(jià),如#define string1 char *
typedef char *string2;第二種才能達(dá)到預(yù)想效果, string1 a,b;
得到的b是char
define是做替換的,typedef 則是重新定義一種數(shù)據(jù)類型的??梢韵騣nt型一樣使用的。
#define FIND(struct,e) (size_t) &(((struct*)0)->e)
typedef是語句( 以';'結(jié)尾)
Typedef。它在自己的作用域內(nèi)給一個(gè)已經(jīng)存在的類型一個(gè)別名
2、(8分) 以下是一組有關(guān)內(nèi)存知識(shí)的問題,請(qǐng)仔細(xì)看題,回答:
Void GetMemory(char *p)
{
P=(char *)malloc(100);
}
Void Test(void)
{
Char *str=Null;
GetMemory(str);
Strcpy(str,”hello world”);
Printf(str);
}
請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)果?
a)__________程序崩潰,運(yùn)行時(shí)錯(cuò)誤___________________________
char *GetMemory(void)
{
Char p[]=”hello world”);
Return p;
}
Void Test(void)
{
Char *str=NULL;
Str=GetMemory();
Printf(str);
}
請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么結(jié)果?
b)_______________ hello world ________________________________
void GetMemory2(char **p,int num)
{
*p=(char *)malloc(num);
}
Void Test(void)
{
Char *str=NULL;
GetMemory(&str,100);
Strcpy(str,”hello”);
Printf(str);
}
請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么結(jié)果?
c)_______ hello __________________________________________
void Test(void)
{
Char *str=(char *)malloc(100);
Strcpy(str,”hello”);
Free(str);
If(str!=NULL)
{
Strcpy(str,”world”);
Printf(str);
}
}、
請(qǐng)問運(yùn)行test函數(shù)會(huì)有什么樣的結(jié)果?
d)_______程序崩潰:因?yàn)獒尫舠tr指針后,沒有將指針置為null,所以指針變?yōu)橐爸羔樍?。再?zhí)行cpy時(shí)會(huì)因?yàn)檎也坏街羔樀闹赶蚨鴮?dǎo)致程序崩潰,請(qǐng)編程時(shí),注意這一點(diǎn)。 __________________________________________
3、(6分)請(qǐng)寫出以下程序的輸出結(jié)果:
Class A
{
Public:
A()
{ Printf(“A constructed.\n”);}
Virtual ~A()
{printf(“A deconstructed.\n”);}
Virtual void Fn()
{printf(“A fn called.\n”);} };
Class B:public A
{
Public:
B()
{printf(“B constructed.\n”);} Virtual ~B()
{printf(“B deconstructed.\n”);} Virtual void Fn()
{printf(“B fn called.\n”);} };
Class C:public B
{
Public:
C()
{printf(“C constructed.\n”);} Virtual ~C()
{printf(“C deconstructed.\n”);} Virtual void Fn()
{printf(“C fn called.\n”);} };
Void main(int argc,char* grgv[]) {
A *pA=new B;
If(pA!=NULL)
pA->fn();
B *pB=static_cast(pA);
If(pB!=NULL)
pB->fn();
C * pC=static_cast(pA); If(pC!=NULL)
pC->fn();
delete pA;
}
Answer:
A constructed
B constructed
B fn called
B fn called
B fn called
B deconstructed
A deconstructed
c++軟件開發(fā)筆試題目篇3
1.(2分)以下說法錯(cuò)誤的是:()
A)指針和引用作為函數(shù)參數(shù)都可以改變實(shí)參
B)指針和引用都可以在定義后任意的改變指向,引用是不可以改變的。
C)引用必須在創(chuàng)建的時(shí)候初始化,而指針則不需要
D)不能空引用,但是可以有空指針
2、(2分) 運(yùn)算符的重載形式有兩種,重載為_重載為類的內(nèi)部成員函數(shù)____________和_重載為類的友元函數(shù)______________________
3、(2分) main主函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼?請(qǐng)說明理由? 可以使用注冊(cè)函數(shù)讓程序在推出main之后,程序終止之前執(zhí)行自定義的一些代碼!
全局對(duì)象的構(gòu)造函數(shù)會(huì)在main 函數(shù)之前執(zhí)行
利用atexit()函數(shù)可以在程序終止前完成一些“清理”工作——如果將指向一組函數(shù)的指針傳遞給atexit()函數(shù),那么在程序退出main()函數(shù)后(此時(shí)程序還未終止)就能自動(dòng)調(diào)用這組函數(shù)。在使用atexit()函數(shù)時(shí)你要注意這樣兩點(diǎn):
main 之前:預(yù)編譯 全局變量的初始化等
main 之后:全局變量的釋放
main函數(shù)執(zhí)行之前,主要就是初始化系統(tǒng)相關(guān)資源
mainCRTStartup中被調(diào)用的
在main之前會(huì)調(diào)用一系列初始化函數(shù)來初始化這個(gè)進(jìn)程
而在main之后會(huì)調(diào)用exit(int)來進(jìn)行進(jìn)程的清理工作??梢杂胈onexit 注冊(cè)一個(gè)函數(shù)
,可以用_onexit 注冊(cè)一個(gè)函數(shù),它會(huì)在main 之后執(zhí)行int fn1(void), fn2(void), fn3(void), fn4 (void);
可能會(huì)執(zhí)行一些注冊(cè)過的Hook
注意,atexit()以棧的方式注冊(cè)函數(shù),后注冊(cè)的函數(shù)會(huì)先執(zhí)行。
_onexit和atexit()一樣是以占的方式注冊(cè)函數(shù)的,后注冊(cè)的函數(shù)會(huì)被先執(zhí)行。
void main( void )
熱門文章
-
雅思考試語言、筆試、口語都需OK
最新軟件開發(fā)服務(wù)合同
軟件開發(fā)委托合同協(xié)議書
考研復(fù)試專業(yè)課筆試該如何做好備考準(zhǔn)備?
2019年廣東省考筆試時(shí)間和考試科目具體是怎樣的?
國(guó)考筆試成績(jī)落后,如何在面試中實(shí)現(xiàn)逆襲?
2019國(guó)考筆試合格分?jǐn)?shù)線是多少?面試名單出了沒?
2019國(guó)考筆試成績(jī)已公布 2019國(guó)考筆試成績(jī)查詢之后還要做哪些事情
2019國(guó)考筆試成績(jī)查詢時(shí),忘記準(zhǔn)考證號(hào)該怎么辦?
2019年浙江公務(wù)員考試將推遲舉行是真的嗎,筆試時(shí)間是什么