當(dāng)前位置:高考升學(xué)網(wǎng) > 招聘筆試題 > 正文
三 問(wèn)答題
電影《達(dá)芬奇密碼》中講到了一個(gè)非常有意思的數(shù)字序列—菲波拉契序列。請(qǐng)用任意計(jì)算機(jī)語(yǔ)言實(shí)現(xiàn)一段小程序,該程序在屏幕上輸出1到1000之間的非波拉契序列。
非波拉契序列:1,1,2,3,5,8,13,21,34,……
要求:用程序描述 核心算法。語(yǔ)言不限。
1. C++中如何阻止一個(gè)類被實(shí)例化?
2. 一般在什么時(shí)候構(gòu)造函數(shù)被聲明成private呢?
3. 什么時(shí)候編譯器會(huì)生成默認(rèn)的copy constructor呢?
4. 如果你已經(jīng)寫了一個(gè)構(gòu)造函數(shù),編譯器還會(huì)生成copy constructor嗎?
5. struct和class有什么區(qū)別?
答:默認(rèn)的訪問(wèn)級(jí)別不同,struct是public,class是private
6. 沒(méi)有別的不同了嗎?
7. 為什么說(shuō)如果一個(gè)類作為基類,則它的析構(gòu)函數(shù)要聲明成virtual的?
8. inline的函數(shù)和#define有什么區(qū)別?
9. inline是什么意思?
10. 那你說(shuō)說(shuō)什么時(shí)候會(huì)真的被inline,什么時(shí)候不會(huì)呢?
11. 如果把一個(gè)類的成員函數(shù)寫在類的聲明中是什么意思?
12. public繼承和private繼承有什么架構(gòu)上的區(qū)別?
13. 在多繼承的時(shí)候,如果一個(gè)類繼承同時(shí)繼承自class A和class B,而class A和
B中都有一個(gè)函數(shù)叫foo(),如何明確的在子類中指出override哪個(gè)父類的foo()?
14. 虛擬繼承的語(yǔ)法是什么?
15. 部分模版特例化
1.什么是平衡二叉樹?編寫一個(gè)刪除平衡二叉樹的程序?
2.寫一個(gè)程序,求有向有權(quán)圖兩點(diǎn)之間的最小權(quán)?
3.根據(jù)你的理解,寫出Cstring類的構(gòu)造函數(shù)和析構(gòu)函數(shù)?
4.使用C語(yǔ)言實(shí)現(xiàn)對(duì)ini文件的訪問(wèn),使程序可以對(duì)int,double,字符串類進(jìn)行讀寫。
5.n×n個(gè)方格(n為任意整數(shù)),定義若兩個(gè)格有公共邊則稱兩個(gè)格相鄰,F(xiàn)將 個(gè)格中的N個(gè)格子圖黑,使每個(gè)格子都與黑格子相鄰。試編程,使N最小。
1
#define pi 3.14
#define Area(R) piRR
main()
{
int r1=5,r2=2;
double s=0;
s=Area(r1-r2);
printf(“The area is %f”,s);
}
求結(jié)果
2
函數(shù) int compare(int a,int b),定義為該函數(shù)的函數(shù)指針P:為_______________
3
#include
void sub(chars,int num)
{
int i ,j=num;
char t;
while(j–>1)
{
for(i=0;i{
if(s[i]{
t=s[i];
s[i]=s[i+1];
s[i+1]=t;
}
}
}
}
main()
{
chars=”CEAeded”;
sub(s,6);
printf(“%s\n”,s)
}
求結(jié)果
4
交換兩個(gè)變量的值,不使用第三個(gè)變量,即a=3,b=5交換
后b=3,a=5
unsigned char a=3,b=5;
5
#define N 100
void GetMemory1(charp)
{
p=(char)malloc(sizeof(char)N);
strcpy(p,”Have a good day!”);
}
charGetMemory2(void)
{
char p[]=”Have a good day!”;
return p;
}
void main(void)
{
charstr1=NULL,str2=NULL;
GetMemory1(str1);
GetMemory2(str2);
printf(“\nstr1:%s”,str1);
printf(“\nstr2:%s”,str2);
6
構(gòu)造N個(gè)結(jié)點(diǎn)的單鏈表返回鏈表頭指針,要求鏈表中各結(jié)點(diǎn)順序
與結(jié)點(diǎn)數(shù)據(jù)輸入順序相反,例如輸入1,2,3,4,5,形成的鏈表為
head->5 4 3 2 1 ,補(bǔ)充程序
#define N 10
typedef struct Node
{
int data;
struct Nodenext;
}NODE;
int Get_Data(int i);定義省略
NodeCreate_u()
{
int i;
NODEp,Head=NULL;
for(i=0;i{
VP=New NODE;
P->Data=Get_Data(i);
________________;
________________;
}
return Head;
}
7
N個(gè)結(jié)點(diǎn)鏈表,每個(gè)結(jié)點(diǎn)中存放一個(gè)字符,判斷鏈表存放的字符是否
中心對(duì)稱,即a b c c b a或a b c b a,補(bǔ)充程序
typedef struct Node
{
int data;
struct Nodenext;
}NODE;
bool Is_symmeic(NODEhead,int n)
{
char D[N];
int i,d;
__________;
for(i=0;i{
D[i]=head->data;
head=head->next;
}
if(__________)
{
head=head->next;
}
while(head)
{
_______________;
if(D[i]!=head->data)
{
return false;
}
head=head->next;
}
return true;
}
8
str中只含有大寫和小寫字母函數(shù)change_move(charstr)將字符串中大寫改成并
移到前面小寫后返回的個(gè)數(shù)
如AabBdcYY改為abd,返回5
int chang_move(charstr)
{
int len,i,curstr=-1;
len=strlen(str);
for(i=len-1;i>=0;i–)
{
if(str[i]>=’A'&&str[i]<=’Z')
{
str[i]=’';
if(cursor==-1)
{
cursor=i;
}
else if(cursor>i)
{
_____________;
str[i]=’';
_____________;
}
}
return____________;
}
9
求兩個(gè)字符串的第一個(gè)公共子串,并返回該子串
如:”a b c d e f g e h i” “a a c d e f g e h i”
第一個(gè)為”c d e f”;不許用strcmp()
charMaxf(charstr1,charstr2)
{
}
2020年河北新聞網(wǎng)兩學(xué)一做
時(shí)間:2023-09-18 07:0:242020年河北新聞網(wǎng)兩學(xué)一做
時(shí)間:2023-09-15 11:0:59兩學(xué)一做學(xué)習(xí)教育知
時(shí)間:2023-09-21 06:0:302020年開展兩學(xué)一做學(xué)習(xí)教
時(shí)間:2023-09-19 21:0:30