版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同審批制度
- 2025企業(yè)財(cái)產(chǎn)抵押合同范本
- 委托珠寶維修合同范例
- 供苗木合同范例
- 咨詢費(fèi)合同范例 英文
- 苗木供應(yīng)安裝合同范例
- 公司外聘人員合同范例
- 水電物業(yè)合同范例
- 普通房子合同范例
- 租用拖車絞盤合同范例
- 食堂承包業(yè)績報(bào)告范文
- 2024年度餐飲店會員積分互換合同3篇
- 2023年冬季山東高中學(xué)業(yè)水平合格考政治試題真題(含答案)
- 物 理2024-2025學(xué)年人教版初中物理八年級上冊各章節(jié)知識點(diǎn)講解
- 急救知識與技術(shù)智慧樹知到期末考試答案章節(jié)答案2024年新疆巴音郭楞蒙古自治州衛(wèi)生學(xué)校
- 文藝復(fù)興經(jīng)典名著選讀智慧樹知到期末考試答案章節(jié)答案2024年北京大學(xué)
- 《風(fēng)電場項(xiàng)目經(jīng)濟(jì)評價(jià)規(guī)范》(NB-T 31085-2016)
- 勞務(wù)派遣勞務(wù)外包服務(wù)方案(技術(shù)方案)
- 2023年三級公共營養(yǎng)師《理論+技能》考試題庫(濃縮500多題)
- 教師考核工作登記表2013
- 【三人小品搞笑短劇本】小學(xué)生小品劇本三人
評論
0/150
提交評論