2023年在線筆試題語言及部分答案_第1頁
2023年在線筆試題語言及部分答案_第2頁
2023年在線筆試題語言及部分答案_第3頁
2023年在線筆試題語言及部分答案_第4頁
2023年在線筆試題語言及部分答案_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C試題

類型:C試題|試題:55道試題(50道選擇題,5道問答題)?注意:答題過程假如您不提交答案,或者關(guān)閉瀏覽器退出,我們將不再允許您再次答題。

謝謝!

試題選項(xiàng)

Question1.(單選)

在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關(guān)鍵碼值11,所需的關(guān)鍵碼比

較次數(shù)為(3)??1.2?2.3

3.4

4.5?

Question2.(單選)

設(shè)散列表的存儲空間大小為19,所用散列函數(shù)為h(key)=keymod19,用開地址線性探查法解?決碰撞。散列表的當(dāng)前

狀態(tài)如下:012345678910111213141516171819019476855958239

3208.現(xiàn)要將關(guān)鍵碼

?值75插入到該散列表中,其地址應(yīng)為(1)

?1.1

2.11?3.5?4.15?

Question3.(單選)?作業(yè)管理的重要任務(wù)涉及作業(yè)輸入、作業(yè)解決和作業(yè)輸出。其中作業(yè)解決的工作是Ⅰ.作業(yè)

調(diào)度Ⅱ.作業(yè)控制Ⅲ.

?作業(yè)后備(3)?

1.只有Ⅰ

2.只有Ⅱ?3.Ⅰ和Ⅱ

4.都是??Question4.(單選)

系統(tǒng)為了管理文獻(xiàn),設(shè)立了專門的數(shù)據(jù)結(jié)構(gòu)----文獻(xiàn)控制塊(FCB。FCB是在執(zhí)行下列哪一個(gè)系?統(tǒng)調(diào)用時(shí)建立的?(1)

1.create?2.open?3.read?4.write

?Question5.(單選)

下面關(guān)于通道的敘述中,對的的是Ⅰ.通道相稱于一個(gè)功能簡樸的解決機(jī)Ⅱ.通道完畢數(shù)據(jù)輸

入輸出工作Ⅲ.通道與

?CPU共用一個(gè)內(nèi)存(4)??1.Ⅰ和Ⅱ

2.Ⅰ和Ⅲ

3.Ⅱ和Ⅲ?4.都是??Question6.(單選)

互操作性是指在不同環(huán)境下的應(yīng)用程序可以互相操作,互換信息。要使采用不同數(shù)據(jù)格式的?各種計(jì)算機(jī)之間可以相

互理解,這一功能是由下面哪一層來實(shí)現(xiàn)的?(2)??1.應(yīng)用層

2.表達(dá)層?3.會話層?4.傳輸層??Question7.(單選)

在UNIX的Shell程序中,可以使用位置變量。若要指明Shell引用的最近后臺進(jìn)程的號碼,可?以使用位置變量(2)

1.$$?2.$!

3.$#

4.$-??Question8.(單選)

設(shè)二叉樹根結(jié)點(diǎn)的層次為0,一棵深度(高度)為k的滿二叉樹和同樣深度的完全二叉樹各有

f個(gè)結(jié)點(diǎn)和c個(gè)結(jié)點(diǎn),下列

關(guān)系式不對的的是:(2)

?1.f>=c

2.c>f

3.f=2k+1-1

4.C>2k-1

?Question9.(單選)

單鏈表的每個(gè)結(jié)點(diǎn)中涉及一個(gè)指針link,它指向該結(jié)點(diǎn)的后繼結(jié)點(diǎn)?,F(xiàn)要將指針q指向的新

結(jié)點(diǎn)插入到指針p指向的

?單鏈表結(jié)點(diǎn)之后,下面的操作序列中哪一個(gè)是對的的?(3)??1.q:=p^.link;p^.link:=q^.link?2.p^.link:=q^.link;q:=P^.link

3.q^.link:=p^.link;p^.link:=q;

4.p^.link:=q;q^.link:=p^,link??Question10.(單選)?某二叉樹結(jié)點(diǎn)的對稱序序列(中序列序列)為A、B、C、D、E、F、G,后序序列為B、D、C、A、F、G、E。

該二叉樹結(jié)點(diǎn)的前序序??列為(2)

?1.E、G、F、A、C、D、B?2.E、A、C、B、D、G、F?3.E、A、G、C、F、B、D

4.E、G、A、C、D、F、B

Question11.(單選)?某二叉樹結(jié)點(diǎn)的對稱序序列為A、B、C、D、E、F、G,后序序列為B、D、C、A、F、G、E。?該二叉樹相應(yīng)的樹林包?

括多少棵樹?(2)

?1.1

2.2?3.3

4.4?

Question12.(單選)?某二叉樹結(jié)點(diǎn)的對稱序序列為A、B、C、D、E、F、G,后序序列為B、D、C、A、F、G、E。

該二叉樹相應(yīng)的樹林結(jié)

?點(diǎn)的層次順序序列為(1)?

1.E、G、F、A、C、D、B?2.E、A、C、B、D、G、F

3.E、A、G、C、F、B、D?4.E、G、A、C、D、F、B??Question13.(單選)

假設(shè)就緒隊(duì)列中有10個(gè)進(jìn)程,系統(tǒng)將時(shí)間片設(shè)為200ms,CPU進(jìn)行進(jìn)程切換要花費(fèi)10ms。則?系統(tǒng)開銷所占的比率約?

為(2)

?1.1%?2.5%

3.10%?4.20%??yahoo在線筆試題(c語言)及部分答案

Question14.(單選)

長度相同但格式不同的2種浮點(diǎn)數(shù),假設(shè)前者階碼長、尾數(shù)短,后者階碼短、尾數(shù)長,其它

規(guī)定均相同,則它們可?

表達(dá)的數(shù)的范圍和精度為:(2)

1.兩者可表達(dá)的數(shù)的范圍和精度相同

2.前者可表達(dá)的數(shù)的范圍大但精度低?3.后者可表達(dá)的數(shù)的范圍大且精度高?4.前者可表達(dá)的數(shù)的范圍大且精度高?

Question15.(單選)?所謂“變號操作”是指將一個(gè)整數(shù)變成絕對值相同但符號相反的另一個(gè)整數(shù)。假設(shè)使用補(bǔ)

碼表達(dá)的8位整數(shù)??X=10010101,則通過變號操作后結(jié)果為:(4)??1.1101010?2.10101

3.11101010?4.1101011

?Question16.(單選)

設(shè)有一個(gè)用數(shù)組Q[1..m」表達(dá)的環(huán)形隊(duì)列,約定f為當(dāng)前隊(duì)頭元素在數(shù)組中的位置,r為隊(duì)

尾元素的后一位置(按順

時(shí)針方向),若隊(duì)列非空,則計(jì)算隊(duì)列中元素個(gè)數(shù)的公式應(yīng)為:(2)?

1.r-f

2.(m+r-f)modm?3.(m-r+f)modm?4.(m-r-f)modm

Question17.(單選)?計(jì)算機(jī)最重要的工作特點(diǎn)是(2)

1.存儲程序與自動(dòng)控制

2.高速度與高精度

3.可靠性與可用性?4.有記憶能力

Question18.(單選)

計(jì)算機(jī)中數(shù)據(jù)的表達(dá)形式是(3)

1.八進(jìn)制

2.十進(jìn)制?3.二進(jìn)制?4.十六進(jìn)制?

Question19.(單選)?下面列出的四種存儲器中,易失性存儲器是(1)??1.RAM?2.ROM

3.PROM?4.CD-ROM??Question20.(單選)?I/O接口位于(2)??1.總線和設(shè)備之間?2.CPU和I/O設(shè)備之間

3.主機(jī)和總線之間?4.CPU和主存儲器之間??Question21.(單選)?計(jì)算機(jī)硬件能直接辨認(rèn)和執(zhí)行的只有(4)

1.高級語言

2.符號語言?3.匯編語言

4.機(jī)器語言?

Question22.(單選)?具有多媒體功能的微型計(jì)算機(jī)系統(tǒng)中,常用的CD-ROM是(2)

1.只讀型大容量軟盤

2.只讀型光盤?3.只讀型硬盤?4.半導(dǎo)體只讀存儲器

Question23.(單選)

微機(jī)中1K字節(jié)表達(dá)的二進(jìn)制位數(shù)是(4)??1.1000?2.8x1000

3.1024?4.8x1024?

Question24.(單選)

下列字符中,ASCII碼值最小的是(2)?

1.a?2.A?3.x?4.Y??Question25.(單選)

OSI(開放系統(tǒng)互聯(lián))參考模型的最低層是(3)

?1.傳輸層

2.網(wǎng)絡(luò)層?3.物理層

4.應(yīng)用層

?Question26.(單選)?在面向?qū)ο蟮南到y(tǒng)中,系統(tǒng)責(zé)任的良好分派原則是(3)

1.在類之間均勻分派

2.集中分派在少數(shù)控制類中

3.根據(jù)交互圖的消息進(jìn)行分派

4.根據(jù)個(gè)人喜好進(jìn)行分派??yahoo在線筆試題(c語言)及部分答案?Question27.(單選)

在CMM模型中,對軟件成熟度有以下5個(gè)級別,請從低到高排序?a初始級:?軟件過程的特點(diǎn)是無秩序的,偶爾甚至是混亂的。幾乎沒有什么過程是通過定義的,成功依?賴于個(gè)人的努力。

b優(yōu)化級:?運(yùn)用來自過程和來自新思想、新技術(shù)的先導(dǎo)性實(shí)驗(yàn)的定量反饋信息,使連續(xù)過程改善成為?也許。??c已定義級:

管理活動(dòng)和工程活動(dòng)兩方面的軟件過程均已文檔化、標(biāo)準(zhǔn)化、并集成到組織的標(biāo)準(zhǔn)軟件過?程。

d已管理級:

已采集具體的有關(guān)軟件過程和產(chǎn)品質(zhì)量的度量,無論軟件過程還是產(chǎn)品均得到定量了解和控

制。?

e可反復(fù)級:

已建立基本的項(xiàng)目管理過程去跟蹤成本、進(jìn)度和功能性。必要的過程紀(jì)律已經(jīng)就位,使具?有類似應(yīng)用的項(xiàng)目。能重

?復(fù)以前的成功。

(3)??1.a(chǎn)cdbe

2.adceb?3.aecdb?4.abcde

Question28.(單選)

在下面所列舉的邏輯測試覆蓋中,測試覆蓋最強(qiáng)的是(3)

?1.條件覆蓋?2.條件組合覆蓋?3.語句覆蓋

4.條件及鑒定覆蓋?

Question29.(單選)?一般來說,在軟件維護(hù)過程中,大部分工作是由什么引起的(3)

?1.適應(yīng)新的軟件環(huán)境?2.適應(yīng)新的硬件環(huán)境

3.用戶的需求改變?4.程序的可靠性

?Question30.(單選)(2)?PSP是???1.團(tuán)隊(duì)軟件過程

2.個(gè)體軟件過程?3.過程改善過程

4.質(zhì)量管理過程

Question31.(單選)?假定a和b為int型變量,則執(zhí)行以下語句后b的值為(4)

a=1;b=10;?do{b-=a;a++;}while(b--<0);

1.9?2.-2?3.-1?4.8?

Question32.(單選)

設(shè)有以下宏定義:

#defineN3?#defineY(n)((N+1)*n)?則執(zhí)行語句:z=2*(N+Y(5+1));后,z的值為(3)?

1.犯錯(cuò)

2.42?3.48

4.54

?Question33.(單選)

執(zhí)行以下程序段后,m的值為(1)?inta[2][3]={{1,2,3},{4,5,6}};?intm,*p;?p=&a[0][0];?m=(*p)*(*(p+2))*(*(p+4));

1.15

2.14

3.13

4.12?

Question34.(單選)

有以下程序?main()?{chara[]=\"programming\",b[]=\"language\";?char*p1,*p2;?inti;?p1=a;p2=b;

for(i=0;i<7;i++)

if(*(p1+i)==*(p2+i))printf(\"%c\",*(p1+i));

}?輸出結(jié)果是(4)??1.gm

2.rg?3.or

4.ga??Question35.(單選)

有以下程序

intfun(intx,inty,int*cp,int*dp)?{*cp=x+y;*dp=x-y;}?main()

{inta,b,c,d;

a=30;b=50;?fun(a,b,&c,&d);

printf(\"%d,%d

\",c,d);?}?輸出結(jié)果是(3)??1.50,30

2.30,50?3.80,-20

4.80,20

Question36.(單選)?下述標(biāo)記符中,合法的用戶標(biāo)記符是(4)?

1.A#C?2.getch?3.void

4.sizeOf

yahoo在線筆試題(c語言)及部分答案?Question37.(單選)

以下選項(xiàng)中合法的字符常量是(3)??1.A?2.\'10\'

3.68?4.D

Question38.(單選)

以下敘述對的的是(3)

1.在C程序中,main函數(shù)必須位于程序的最前面?2.C程序的每行中只能寫一條語句?3.C語言自身沒有輸入輸出語句?4.在對一個(gè)C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤

Question39.(單選)?以下敘述中不對的的是(4)

?1.在不同的函數(shù)中可以使用相同名字的變量

2.函數(shù)中的形式參數(shù)是局部變量?3.在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

4.在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效?

Question40.(單選)?設(shè)int類型的數(shù)據(jù)長度為2個(gè)字節(jié),則unsignedint類型數(shù)據(jù)的取值范圍是(2)

?1.0~255

2.0~65535?3.-32768~32767?4.-256~255

Question41.(單選)

某文獻(xiàn)中定義的靜態(tài)全局變量(或稱靜態(tài)外部變量)其作用域是(2)??1.只限某個(gè)函數(shù)?2.本文獻(xiàn)

3.跨文獻(xiàn)

4.不限制作用域??Question42.(單選)?語句:printf(\"%d?\",12&012);的輸出結(jié)果是(3)

1.12

2.012

3.8?4.6??Question43.(單選)

設(shè)intx=4;則執(zhí)行以下語句:x+=x-=x-x;后,x的值為(3)

1.0?2.4?3.8

4.12??Question44.(單選)?while(!x)中的(!x)與下面條件等價(jià)。(4)

1.x==1

2.x!=1

3.x!=0?4.x==0?

Question45.(單選)

已知inti,a;執(zhí)行語句:i=(a=2*3,a*5),a+6;后,變量i的值是(3)??1.6

2.12

3.30?4.36?Question46.(單選)?整型變量x和y的值相等、且為非0值,則以下選項(xiàng)中,結(jié)果為零的表達(dá)式是(4)

1.x||y?2.x|y?3.x&y?4.x^y

Question47.(單選)?x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),對的的輸入語句是(2)??1.INPUTx、y、z;?2.scanf(\"%d%d%d\",&x,&y,&z);

3.scanf(\"%d%d%d\",x,y,z);

4.read(\"%d%d%d\",x,y,z);?

Question48.(單選)?以下各選項(xiàng)企圖說明一種新的類型名,其中對的的是(2)

?1.typedefv1int;?2.typedefintv3;?3.typedefv4:int;?4.typedefv2=int;??Question49.(單選)

charx=3,y=6,z;

z=x^y<<2;

則z的二進(jìn)制值是(2)??1.10100

2.11011

3.11100?4.11000

Question50.(單選)?若有說明:inti,j=2,*p=&i;,則能完畢i=j(luò)賦值功能的語句是(2)

?1.i=*p;?2.*p=*&j;?3.i=&j;?4.i=**p;

?Question51.(問答)?給定一個(gè)整型變量a,寫兩段代碼,第一個(gè)設(shè)立a的bit3,第二個(gè)清除a的bit3。在以上兩

個(gè)操作中,要保持其它

?位不變。??a|=0x4;

?intb=a&0x7;

a>>=4;

a=(a<<4)|b;?

Question52.(問答)?有雙向循環(huán)鏈表結(jié)點(diǎn)定義為:

structnode?{intdata;?structnode*front,*next;

};

有兩個(gè)雙向循環(huán)鏈表A,B,知道其頭指針為:pHeadA,pHeadB,請寫一函數(shù)將兩鏈表中dat

a值相同的結(jié)點(diǎn)刪除

structnode?{intdata;

structnode*front,*next;

};

node*del(node*pHead){

if(pHead==pHead->next){?free(pHead);

returnNULL;?}

node*p=pHead;

pHead->next->front=pHead->front;?pHead->front給定字符串A和B,輸出A和B中的最大公共子串。

比如A="aocdfe"B="pmcdfa"則輸出"cdf"?*/?//Author:azhen?#include<stdio.h>?#include<stdlib.h>

#include<string.h>

?char*commanstring(charshortstring[],charlongstring[])?{?inti,j;

?char*substring=malloc(256);??if(strstr(longstring,shortstring)!=NULL)//假如……,那么返回shortstring

returnshortstring;?

for(i=strlen(shortstring)-1;i>0;i--)//否則,開始循環(huán)計(jì)算

{?for(j=0;j<=strlen(shortstring)-i;j++){

memcpy(substring,&shortstring[j],i);?substring[i]='\0';

if(strstr(longstring,substring)!=NULL)?returnsubstring;

}?}

returnNULL;

}

?main()?{

char*str1=malloc(256);

char*str2=malloc(256);

char*comman=NULL;

?gets(str1);?gets(str2);?

if(strlen(str1)>strlen(str2))//將短的字符串放前面

comman=commanstring(str2,str1);

else

comman=commanstring(str1,str2);?

printf("thelongestcommanstringis:%s\n",comman);?}???11.寫一個(gè)函數(shù)比較兩個(gè)字符串str1和str2的大小,若相等返回0,若str1大于

str2返回1,若str1小于str2返回-1

intstrcmp(constchar*src,constchar*dst)?{

intret=0;?while(!(ret=*(unsignedchar*)src-*(unsignedchar*)dst)&&*dst)?{

++src;

++dst;

}?if(ret<0)?ret=-1;

elseif(ret>0)?ret=1;?return(ret);

}

3,求1000!的未尾有幾個(gè)0(用素?cái)?shù)相乘的方法來做,如72=2*2*2*3*3);?求出1->1000里,能被5整除的數(shù)的個(gè)數(shù)n1,能被25整除的數(shù)的個(gè)數(shù)n2,能被125整除的數(shù)的個(gè)數(shù)n3,?能被625整除的數(shù)的個(gè)數(shù)n4.

1000!末尾的零的個(gè)數(shù)=n1+n2+n3+n4;

#include<stdio.h>?#defineNUM1000?

intfind5(intnum){?intret=0;

while(num%5==0){?num/=5;?ret++;?}

returnret;?}

intmain(){?intresult=0;

inti;?for(i=5;i<=NUM;i+=5)?{?result+=find5(i);

}?printf("thetotalzeronumberis%d\n",result);?return0;

??

1.有雙向循環(huán)鏈表結(jié)點(diǎn)定義為:

structnode?{intdata;

structnode*front,*next;

};?有兩個(gè)雙向循環(huán)鏈表A,B,知道其頭指針為:pHeadA,pHeadB,請寫一函數(shù)將兩鏈表中data值相同的結(jié)點(diǎn)刪除

BOOLDeteleNode(Node*pHeader,DataTypeValue)?{

if(pHeader==NULL)return;??BOOLbRet=FALSE;

Node*pNode=pHead;

while(pNode!=NULL)

{?if(pNode->data==Value)

{

if(pNode->front==NULL)?{?pHeader=pNode->next;

pHeader->front=NULL;

}?else?{?if(pNode->next?。絅ULL)

{?pNode->next->front=pNode->front;?}

pNode->front->next=pNode->next;?}??Node*pNextNode=pNode->next;?deletepNode;?pNode=pNextNode;?

bRet=TRUE;?//不要break或return,刪除所有?}

else?{

pNode=pNode->next;

}?}

returnbRet;?}?

voidDE(Node*pHeadA,Node*pHeadB)?{?if(pHeadA==NULL||pHeadB==NULL)

return;?}?

Node*pNode=pHeadA;?while(pNode!=NULL)?{?if(DeteleNode(pHeadB,pNode->data))?{

if(pNode->front==NULL)?{

pHeadA=pNode->next;?pHeadA->front=NULL;

}

else?{

pNode->front->next=pNode->next;

if(pNode->next!=NULL)?{

pNode->next->front=pNode->front;

}?}?Node*pNextNode=pNode->next;?deletepNode;

pNode=pNextNode;?}

else

{

pNode=pNode->next;?}

}

2.編程實(shí)現(xiàn):找出兩個(gè)字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串為"cad"

intGetCommon(char*s1,char*s2,char**r1,char**r2)?{?intlen1=strlen(s1);?intlen2=strlen(s2);?intmaxlen=0;

?for(inti=0;i<len1;i++)

{

for(intj=0;j<len2;j++)

{

if(s1[i]==s2[j])

{?intas=i,bs=j(luò),count=1;?while(as+1<len1&&bs+1<len2&&s1[++as]==s2[++bs])?count++;?

if(count>maxlen)

{?maxlen=count;

*r1=s1+i;

*r2=s2+j;?}?}

}

}

3.編程實(shí)現(xiàn):把十進(jìn)制數(shù)(long型)分別以二進(jìn)制和十六進(jìn)制形式輸出,不能使用printf系列庫函數(shù)?char*test3(longnum){

char*buffer=(char*)malloc(11);?buffer[0]='0';

buffer[1]='x';?buffer[10]='\0';??char*temp=buffer+2;?for(inti=0;i<8;i++){?temp[i]=(char)(num<<4*i>>28);

temp[i]=temp[i]>=0?temp[i]:temp[i]+16;

temp[i]=temp[i]<10?temp[i]+48:temp[i]+55;?}?returnbuffer;?}??

?

輸入N,打印N*N矩陣?比如N=3,打印:?

123?894?765??N=4,打印:??1234

1213145?1116156?10987?解答:

1#defineN15

ints[N][N];

voidmain()?{?intk=0,i=0,j=0;

inta=1;

for(;k<(N+1)/2;k++)

{

while(j<N-k)s[i][j++]=a++;i++;j--;?while(i<N-k)s[i++][j]=a++;i--;j--;

while(j>k-1)s[i][j--]=a++;i--;j++;

while(i>k)s[i--][j]=a++;i++;j++;?}

for(i=0;i<N;i++)

{?for(j=0;j<N;j++)

cout<<s[i][j]<<'\t';?cout<<endl;

}

2defineMAX_N100

intmatrix[MAX_N][MAX_N];

/*?*(x,y):第一個(gè)元素的坐標(biāo)

*start:第一個(gè)元素的值

*n:矩陣的大小

*/

voidSetMatrix(intx,inty,intstart,intn){

inti,j;??if(n<=0)//遞歸結(jié)束條件?return;

if(n==1){//矩陣大小為1時(shí)?matrix[x][y]=start;?return;?}?for(i=x;i<x+n-1;i++)//矩陣上部

matrix[y][i]=start++;

?for(j=y(tǒng);j<y+n-1;j++)//右部

mat(yī)rix[j][x+n-1]=start++;??for(i=x+n-1;i>x;i--)//底部

matrix[y+n-1][i]=start++;??for(j=y+n-1;j>y;j--)//左部?matrix[j][x]=start++;

?SetMatrix(x+1,y+1,start,n-2);//遞歸?}

?voidmain(){?inti,j;

intn;

?scanf("%d",&n);?SetMatrix(0,0,1,n);??//打印螺旋矩陣

for(i=0;i<n;i++){?for(j=0;j<n;j++)

printf("%4d",matrix[i][j]);

printf("\n");

}

}

?

斐波拉契數(shù)列遞歸實(shí)現(xiàn)的方法如下:

intFunct(intn)?{?if(n==0)return1;?if(n==1)return1;

retrurnFunct(n-1)+Funct(n-2);?}

請問,如何不使用遞歸,來實(shí)現(xiàn)上述函數(shù)??請教各位高手!

解答:intFunct(intn)//n為非負(fù)整數(shù)

inta=0;?intb=1;

intc;

if(n==0)c=1;

elseif(n==1)c=1;?elsefor(inti=2;i<=n;i++)//應(yīng)當(dāng)n從2開始算起?{

c=a+b;?a=b;

b=c;?}?returnc;?}

解答:

現(xiàn)在大多數(shù)系統(tǒng)都是將低字位放在前面,而結(jié)構(gòu)體中位域的申明一般是先聲明高位。?100的二進(jìn)制是001100100

低位在前高位在后

001----s3?100----s2

100----s1?所以結(jié)果應(yīng)當(dāng)是1

假如先申明的在低位則:

001----s1

100----s2

100----s3

結(jié)果是4?1、原題跟little-endian,big-endian沒有關(guān)系

2、原題跟位域的存儲空間分派有關(guān),到底是從低字節(jié)分派還是從高字節(jié)分派,從DevC++和VC7.1上看,都是從低字節(jié)開始分派,并且連續(xù)分派,中間不空,不像譚的書那樣會留空位?3、原題跟編譯器有關(guān),編譯器在未用堆??臻g的默認(rèn)值分派上有所不同,DevC++未用空間分派為

01110111b,VC7.1下為11001100b,所以在DevC++下的結(jié)果為5,在VC7.1下為1。

注:PC一般采用little-endian,即高高低低,但在網(wǎng)絡(luò)傳輸上,一般采用big-endian,即高低低高,華為是做網(wǎng)絡(luò)的,所以也許考慮big-endian模式,這樣輸出結(jié)果也許為4

?判斷一個(gè)字符串是不是回文

intIsReverseStr(char*aStr)?{

inti,j;?intfound=1;

if(aStr==NULL)

return-1;

j=strlen(aStr);

for(i=0;i<j/2;i++)

if(*(aStr+i)!=*(aStr+j-i-1))?{

found=0;

break;?}

returnfound;

Josephu問題為:設(shè)編號為1,2,…n的n個(gè)人圍坐一圈,約定編號為k(1<=k<=n)的人從1開始報(bào)數(shù),數(shù)到m的那個(gè)人出列,它的下一位又從1開始報(bào)數(shù),數(shù)到m的那個(gè)人又出列,依次類推,直到所有人出列為止,由此產(chǎn)生一個(gè)出隊(duì)編號的序列。

數(shù)組實(shí)現(xiàn):?#include<stdio.h>

#include<malloc.h>?intJosephu(intn,intm)

{

intflag,i,j=0;

int*arr=(int*)malloc(n*sizeof(int));?for(i=0;i<n;++i)?arr[i]=1;?for(i=1;i<n;++i)

{?flag=0;?while(flag<m)

{

if(j==n)?j=0;?if(arr[j])

++flag;

++j;?}

arr[j-1]=0;?printf("第%4d個(gè)出局的人是:%4d號\n",i,j);?}

free(arr);?returnj;?}?intmain()?{?intn,m;

scanf("%d%d",&n,&m);

printf("最后勝利的是%d號!\n",Josephu(n,m));?system("pause");

return0;

}

鏈表實(shí)現(xiàn):

#include<stdio.h>

#include<malloc.h>?typedefstructNode

intindex;

structNode*next;

}JosephuNode;?intJosephu(intn,intm)?{

inti,j;

JosephuNode*head,*tail;?head=tail=(JosephuNode*)malloc(sizeof(JosephuNode));

for(i=1;i<n;++i)?{?tail->index=i;?tail->next=(JosephuNode*)malloc(sizeof(JosephuNode));?tail=tail->next;?}

tail->index=i;

tail->next=head;

for(i=1;tail!=head;++i)?{

for(j=1;j<m;++j)

{

tail=head;?head=head->next;

}

tail->next=head->next;?printf("第

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論