c語言基礎(chǔ)筆試題(十一篇)_第1頁
c語言基礎(chǔ)筆試題(十一篇)_第2頁
c語言基礎(chǔ)筆試題(十一篇)_第3頁
c語言基礎(chǔ)筆試題(十一篇)_第4頁
c語言基礎(chǔ)筆試題(十一篇)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——c語言基礎(chǔ)筆試題(十一篇)范文為教學中作為模范的文章,也往往用來指寫作的模板。往往用于文秘寫作的參考,也可以作為演講材料編寫前的參考。那么我們該如何寫一篇較為完美的范文呢?接下來我就給大家介紹一下優(yōu)秀的范文該怎么寫,我們一起來看一看吧。

c語言基礎(chǔ)筆試題篇一

a:本程序的main函數(shù)開始,到main函數(shù)終止

b:本程序文件的第一個函數(shù)開始,到本程序文件的最終一個函數(shù)終止

c:本程序的main函數(shù)開始,到本程序文件的最終一個函數(shù)終止

d:本程序文件的第一個函數(shù)開始,到本程序main函數(shù)終止

2.[單項選擇題]在c語言中,要求運算數(shù)必需是整型的運算符是(d)

a:/

b:++

c:!=

d:%

3.[單項選擇題]c語言中,規(guī)律“真〞等價于(c)

a:大于零的數(shù)

b:大于零的整數(shù)

c:非零的數(shù)

d:非零的整數(shù)

4.[單項選擇題]若希望當a的值為奇數(shù)時,表達式的值為“真〞,a的值為偶數(shù)時,表達式的值為“假〞。則以下不能滿足要求的表達式為(c)

a:a%2==1

b:!(a%2==0)

c:!(a%2)

d:a%2

5.[單項選擇題]以下程序的運行結(jié)果是(b)。

intmain(void){

intm=5;

if(m++5)printf(“%d/n〞,m);

elseprintf(“%d/n〞,--m);

}

a:4

b:5

c:6

d:7

6.[單項選擇題]以下對一維整型數(shù)組a的正確說明是(d)

a:inta(10)

b:intn=10,a[n]

c:intn

scanf(“%d〞,n)

inta[n]

d:#definesize10

inta[size]

7.[單項選擇題]若有說明:inta[3][4];則對a數(shù)組元素的非法引用是(d)

a:a[0][2*1]

b:a[1][3]

c:a[4-2][0]

d:a[0][4]

c語言基礎(chǔ)筆試題篇二

1.[單項選擇題]下面程序的功能是將已按升序排好序的兩個字符串a(chǎn)和b中的字符,按升序歸并到字符串c中,請為程序中的空白處選擇適當?shù)恼Z句。其次空答案(d)

#include

intmain(void)

{

chara[]=“acegikm〞;

charb[]=“bdfhjlnpq〞;

charc[80],*p;

inti=0,j=0,k=0;

while(a[i]!=/0b[j]!=‘/0)

{

if(a[i]b[j]){(①)}

else{(②)}

k++;

}

c[k]=‘/0;

if(③)p=b+j;

elsep=a+i;

strcat(c,p);

puts(c);

}

a:c[k]=a[i];i++

b:c[k]=b[j];i++

c:c[k]=a[i];j++

d:c[k]=b[j];j++

2.[單項選擇題]在一個c源程序文件中,若要定義一個只允許來源文件中所有函數(shù)使用的全局變量,則該變量需要使用的存儲類別是(d)

a:extern

b:register

c:auto

d:static

3.[單項選擇題]以下程序的正確運行結(jié)果是(d)。

#include

intf(inta);

intmain(void)

{

inta=2,i;

for(i=0;i3;i++)printf(“%4d〞,f(a));

}

intf(inta)

{

intb=0;

staticintc=3;

b++;c++;

return(a+b+c);

}

a:777

b:71013

c:7911

d:789

4.[單項選擇題]以下程序的運行結(jié)果為(b)。

voidsub(intx,inty,int*z)

{*z=y-x;}

intmain(void)

{

inta,b,c;

sub(10,5,a);

sub(7,a,b);

sub(a,b,c);

printf(“%4d,%4d,%4d/n〞,a,b,c);

}

a:5,2,3

b:-5,-12,-7

c:-5,-12,-17

d:5,-2,-7

5.[單項選擇題]有如下語句inta=10,b=20,*p1,*p2;p1=ap2=b變量與指針的關(guān)系如圖1所示;若要實現(xiàn)圖2所示的存儲結(jié)構(gòu),可選用的賦值語句為(沒圖可能是b或a)

a:*p1=*p2

b:p1=p2

c:p1=*p2

d:*p1=p2

6.[單項選擇題]若已建立下面的鏈表結(jié)構(gòu),指針p、q分別指向圖中所示結(jié)點,則不能將q所指的結(jié)點插入到鏈表末尾的一組語句是()

a:q-next=null;p=p-next;p-next=q

b:p=p-next;q-next=p-next;p-next=q

c:p=p-next;q-next=p;p-next=q

d:p=(*p).next;(*q).next=(*p).next;(*p).next=q

7.[單項選擇題]以下程序的功能是:讀入一行字符(如:a,b,...y,z),按輸入時的逆序建立一個鏈接式的結(jié)點序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順序輸出,并釋放全部結(jié)點。請在空白處為程序選擇適當?shù)拇a。第一空答案(b)

#include

#definegetnode(type)①malloc(sizeof(type))

intmain(void)

{

structnode{

charinfo;

structnode*link;

}*top,*p;

charc;

top=null;

while((c=getchar()②)

{

p=getnode(structnode);

p-info=c;

p-link=top;

top=p;

}

while(top)

{

③;

top=top-link;

putchar(p-info);

free(p);

}

}

a:(type)

b:(type*)

c:type

d:type*

8.[單項選擇題]以下程序的功能是:讀入一行字符(如:a,b,...y,z),按輸入時的逆序建立一個鏈接式的結(jié)點序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順序輸出,并釋放全部結(jié)點。請在空白處為程序選擇適當?shù)拇a。其次空答案(d)

#include

#definegetnode(type)①malloc(sizeof(type))

intmain(void)

{

structnode{

charinfo;

structnode*link;

}*top,*p;

charc;

top=null;

while((c=getchar()②)

{

p=getnode(structnode);

p-info=c;

p-link=top;

top=p;

}

while(top)

{

③;

top=top-link;

putchar(p-info);

free(p);

}

}

a:==/0

b:!=/0

c:==/n

d:!=/n

9.[單項選擇題]以下程序的功能是:讀入一行字符(如:a,b,...y,z),按輸入時的逆序建立一個鏈接式的結(jié)點序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順序輸出,并釋放全部結(jié)點。請在空白處為程序選擇適當?shù)拇a。第三空答案(b)

#include

#definegetnode(type)①malloc(sizeof(type))

intmain(void)

{

structnode{

charinfo;

structnode*link;

}*top,*p;

charc;

top=null;

while((c=getchar()②)

{

p=getnode(structnode);

p-info=c;

p-link=top;

top=p;

}

while(top)

{

③;

top=top-link;

putchar(p-info);

free(p);

}

}

a:top=p

b:p=top

c:p==top

d:top==p

10.[單項選擇題]以下程序的輸出結(jié)果是(c)

#include

#definem5

#definenm+m

main

{

intk;

k=n*n*5;printf(“%d/n〞,k);

}

a:500

b:125

c:55

d:100

c語言基礎(chǔ)筆試題篇三

1.[單項選擇題]若二維數(shù)組a有m列,則計算任一元素a[i][j]在數(shù)組中位置的公式為(a)

a:i*m+j

b:j*m+i

c:i*m+j-1

d:i*m+j+1

2.[單項選擇題]以下程序的功能是將字符串s中所有的字符c刪除,那么空白處缺少的語句為:(a)。

#include

intmain(void)

{

chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!=‘/0;i++)

if(s[i]!=‘c)

;

s[j]=‘/0;

puts(s);

return0;

}

a:s[j++]=s[i]

b:s[++j]=s[i]

c:s[j]=s[i];j++

d:s[j]=s[i]

3.[單項選擇題]下面程序的功能是將已按升序排好序的兩個字符串a(chǎn)和b中的字符,按升序歸并到字符串c中,請為程序中的空白處選擇適當?shù)恼Z句。第一空答案(a)

#include

intmain(void)

{

chara[]=“acegikm〞;

charb[]=“bdfhjlnpq〞;

charc[80],*p;

inti=0,j=0,k=0;

while(a[i]!=/0b[j]!=‘/0)

{

if(a[i]b[j]){(①)}

else{(②)}

k++;

}

c[k]=‘/0;

if(③)p=b+j;

elsep=a+i;

strcat(c,p);

puts(c);

}

a:c[k]=a[i];i++

b:c[k]=b[j];i++

c:c[k]=a[i];j++

d:c[k]=a[j];j++

c語言基礎(chǔ)筆試題篇四

1.編寫my_strcpy函數(shù),實現(xiàn)與庫函數(shù)strcpy類似的功能,不能使用任何庫函數(shù);

答:char*strcpy(char*strdest,constchar*strsrc)

{

if(strdest==null||strsrc==null)

returnnull;

if(strdest==strsrc)

returnstrdest;

char*tempptr=strdest;

while((*strdest++=*strsrc++)!=‘’);

returntempptr;

}

2.頭文件中的ifndef/define/endif的作用?

答:防止該頭文件被重復(fù)引用。

3.#include與#include“file.h〞的區(qū)別?

答:前者編譯器從標準庫路徑開始探尋file.h,而后者編譯器從用戶的工作路徑開始探尋file.h。

4.在c++程序中調(diào)用被c編譯器編譯后的函數(shù),為什么要加extern“c〞?

答:extern是c/c++語言中說明函數(shù)和全局變量作用范圍(可見性)的關(guān)鍵字,其聲明的函數(shù)和變量可以在本模塊或其它模塊中使用。

尋常,在模塊的頭文件中對本模塊提供應(yīng)其它模塊引用的函數(shù)和全局變量以關(guān)鍵字extern聲明。

5.面向?qū)ο蟮娜齻€基本特征,并簡單表達之?

答:1)封裝:將客觀事物抽象成類,每個類對自身的數(shù)據(jù)和方法實行protection(private,protected,public)

2)繼承:實現(xiàn)繼承(指使用基類的屬性和方法而無需額外編碼的能力)、可視繼承(子窗體使用父窗體的外觀和實現(xiàn)代碼)、接口繼承(僅使用屬性和方法,實現(xiàn)滯后到子類實現(xiàn))。

3)多態(tài):允許將子類類型的指針賦值給父類類型的指針。

6.重載(overload)和重寫(overried,有的書也叫做“覆蓋〞)的區(qū)別?

答:從定義上來說:

重載:是指允許存在多個同名函數(shù),而這些函數(shù)的參數(shù)表不同(或許參數(shù)個數(shù)不同,或許參數(shù)類型不同,或許兩者都不同)。

重寫:是指子類重新定義復(fù)類虛函數(shù)的方法。

從實現(xiàn)原理上來說:

重載:編譯器根據(jù)函數(shù)不同的參數(shù)表,對同名函數(shù)的名稱做修飾,然后這些同名函數(shù)就成了不同的函數(shù)。

重寫:當子類重新定義了父類的虛函數(shù)后,父類指針根據(jù)賦給它的不同的子類指針,動態(tài)的調(diào)用屬于子類的該函數(shù),這樣的函數(shù)調(diào)用在編譯期間是無法確定的(調(diào)用的子類的虛函數(shù)的地址無法給出)。

7.多態(tài)的作用?

答:主要是兩個:1)隱蔽實現(xiàn)細節(jié),使得代碼能夠模塊化;擴展代碼模塊,實現(xiàn)代碼重用;2)接口重用,為了類在繼承和派生的時候,保證使用家族中任一類的實例的某一屬性時的正確調(diào)用。

8.分別寫出bool,int,float,指針類型的變量a與“零〞的對比語句。

答:bool:if(!a)orif(a)

int:if(a==0)

float:constexpressionexp=0.000001

if(aexpa-exp)

pointer:if(a!=null)orif(a==null)

9.請說出const與#define相比,有何優(yōu)點?

答案:1)const常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產(chǎn)生意料不到的錯誤。

2)有些集成化的調(diào)試工具可以對const常量進行調(diào)試,但是不能對宏常量進行調(diào)試。

10.簡述數(shù)組與指針的區(qū)別?

數(shù)組要么在靜態(tài)存儲區(qū)被創(chuàng)立(如全局數(shù)組),要么在棧上被創(chuàng)立。指針可以隨時指向任意類型的內(nèi)存塊。

(1)修改內(nèi)容上的區(qū)別

chara=“hello〞;

a[0]=‘x’;

char*p=“world〞;//注意p指向常量字符串

p[0]=‘x’;//編譯器不能發(fā)現(xiàn)該錯誤,運行時錯誤

(2)用運算符sizeof可以計算出數(shù)組的容量(字節(jié)數(shù))。sizeof(p),p為指針得到的是一個指針變量的字節(jié)數(shù),而不是p所指的內(nèi)存容量。c++/c語言沒有方法知道指針所指的內(nèi)存容量,除非在申請內(nèi)存時記住它。注意當數(shù)組作為函數(shù)的參數(shù)進行傳遞時,該數(shù)組自動退化為同類型的指針。

chara=“helloworld〞;

char*p=a;

coutcout計算數(shù)組和指針的內(nèi)存容量

voidfunc(chara[100])

{

cout}

c語言基礎(chǔ)筆試題篇五

1.變量的聲明和定義有什么區(qū)別?

答:聲明變量不分派空間,定義變量要分派空間。聲明主要是告訴編譯器,后面的引用都按聲明的格式。定義其實包含了聲明的意思,同時要分派內(nèi)存空間。

2.解釋堆和棧的區(qū)別。

答:堆(heap)——一般由程序員分派釋放,若程序員不釋放,程序終止時可能由os回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分派方式倒是類似于鏈表。速度對比慢,而且簡單產(chǎn)生內(nèi)存碎片,不過用起來最便利。

棧(stack)——由編譯器自動分派釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。由系統(tǒng)自動分派,速度較快。但程序員是無法控制的。

3.const的作用是什么?

答:(1)可以定義const常量

(2)const可以修飾函數(shù)的參數(shù)、返回值,甚至函數(shù)的定義體。被const修飾的東西都受到強制保護,可以預(yù)防意外的變動,能提高程序的剛強性。

4.以下哪兩個是等同的

intb;

aconstint*a=b//指向常量的指針,不能通過指針改變b,但指針的地址可以改變。

bconst*inta=b//指針的地址不可以改變,但可以通過指針改變b的值

cconstint*consta=b//指針指向的值,和指針本身的地址都不能改變

dintconst*consta=b//與c一致

5.完成程序,實現(xiàn)對數(shù)組的降序排序

#include

voidsort(intarray);

intmain

{

intarray={45,56,76,234,1,34,23,2,3};//數(shù)字任//意給出

sort(array);

return0;

}

voidsort(intarray)

{____________________________________

inti,j,k;

for(i=1;i=7;i++){if(array[i]array[i-1])

{

k=array[i];

j=i-1;

do

{

array[j+1]=array[j];

j–;

}

while(karray[j]j=0);

array[j+1]=k;

}

}

—————————————————–

}

6.inti=(j=4,k=8,l=16,m=32);printf(“%d〞,i);輸出是多少?

答:相當于i=j=4;i=k=8;i=l=16;i=m=32;故最終i=32;

7.請簡述以下兩個for循環(huán)的優(yōu)缺點(5分)

1)for(i=0;i{

if(condition)

dosomething;

else

dootherthing;

}

2)if(condition)

{

for(i=0;idosomething;

}

else

{

for(i=0;i0)

{

*psto++=*psfrom++;

}

returnpvto;

}

8.c++里面如何聲明constvoidf(void)函數(shù)為c程序中的庫函數(shù)?

答:在該函數(shù)前添加extern“c〞聲明。由于編譯后的名字不同,c++程序不能直接調(diào)用c函數(shù)。

9.請寫出下面代碼在32位平臺上的運行結(jié)果,并說明sizeof的性質(zhì):

#include

#include

intmain(void)

{

chara[30];

char*b=(char*)malloc(20*sizeof(char));

printf(“%dn〞,sizeof(a));

printf(“%dn〞,sizeof(b));

printf(“%dn〞,sizeof(a[3]));

printf(“%dn〞,sizeof(b+3));

printf(“%dn〞,sizeof(*(b+4)));

return0;

}

答:在32位系統(tǒng)下(如win32),指針長度為32位。a是一個有30個元素的字符型數(shù)組;b是一個字符串指針;a[3]是字符型;b+3是指針;*(b+4)是字符型。

因此輸出:30、4、1、4、1

c語言基礎(chǔ)筆試題篇六

1.c++中,關(guān)鍵字struct和class的區(qū)別僅僅在于:

struct定義的類的缺省成員為公有的,而class定義的類的缺省成員為私有的;

2.頭文件的作用是什么?

答:1)通過頭文件來調(diào)用庫功能。2)頭文件能加強類型安全檢查。

3.c++函數(shù)中值的傳遞方式有哪幾種?

答:c++函數(shù)的三種傳遞方式為:值傳遞、指針傳遞和引用傳遞。

4.內(nèi)存的分派方式的分派方式有幾種?

答:1)從靜態(tài)存儲區(qū)域分派。內(nèi)存在程序編譯的時候就已經(jīng)分派好,這塊內(nèi)存在程序的整個運行期間都存在。例如全局變量。

2)在棧上創(chuàng)立。在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變量的存儲單元都可以在棧上創(chuàng)立,函數(shù)執(zhí)行終止時這些存儲單元自動被釋放。棧內(nèi)存分派運算內(nèi)置于處理器的指令集中,效率很高,但是分派的內(nèi)存容量有限。

3)從堆上分派,亦稱動態(tài)內(nèi)存分派。程序在運行的時候用malloc或new申請任意多少的內(nèi)存,程序員自己負責在何時用free或delete釋放內(nèi)存。動態(tài)內(nèi)存的生存期由我們決定,使用十分靈活,但問題也最多。

5.設(shè)計函數(shù)intatoi(char*s)。

答:intatoi(char*s)

{

inti=0,sum=0,sign;//輸入的數(shù)前面可能還有空格或制表符應(yīng)加判斷

while(*s==〞||*s==’t’)

{

i++;

}

sign=(*s==’-)?-1:1;

if(*s==’-||*s==’+)

{

i++;

}

while(*s!=’′)

{

sum=*s-’0′+sum*10;

i++;

}

returnsign*sum;

}

6.編寫strcat函數(shù)(6分)

已知strcat函數(shù)的原型是char*strcat(char*strdest,constchar*strsrc);

其中strdest是目的字符串,strsrc是源字符串。

(1)不調(diào)用c++/c的字符串庫函數(shù),請編寫函數(shù)strcat

答:

char*__cdeclstrcat(char*dst,constchar*src)

{

char*cp=dst;

while(*cp)

cp++;/*findendofdst*/

while(*cp++=*src++);/*copysrctoendofdst*/

return(dst);/*returndst*/

}

(2)strcat能把strsrc的內(nèi)容連接到strdest,為什么還要char*類型的返回值?

答:便利賦值給其他變量。

7.mfc中cstring是類型安全類么?

答:不是,其它數(shù)據(jù)類型轉(zhuǎn)換到cstring可以使用cstring的成員函數(shù)format來轉(zhuǎn)換

8.函數(shù)模板與類模板有什么區(qū)別?

答:函數(shù)模板的實例化是由編譯程序在處理函數(shù)調(diào)用時自動完成的,而類模板的實例化必需由程序員在程序中顯式地指定。

9.寫一個“標準〞宏min,這個宏輸入兩個參數(shù)并返回較小的一個。

答:#definemin(a,b)((a)=(b)?(a):(b))宏的副作用(與某些函數(shù)的混淆):least=min(*p++,b)。宏定義#definemin(a,b)((a)=(b)?(a):(b))對min(*p++,b)的作用結(jié)果是:

((*p++)=(b)?(*p++):(*p++))

10.嵌入式系統(tǒng)中經(jīng)常要用到無限循環(huán),你怎么樣用c編寫死循環(huán)呢?

答:while(1)或者for(;;)

c語言基礎(chǔ)筆試題篇七

c筆試題

1)的內(nèi)容(例如):

12

34

56

56

34

12

(逆序)

2)輸出和為一個給定整數(shù)的所有組合

例如n=5

5=1+4;5=2+3(相加的數(shù)不能重復(fù))

則輸出

1,4;2,3,

第一題,注意可增長數(shù)組的應(yīng)用.

#include

#include

intmain(void)

{intmax=10;

int*a=(int*)malloc(max*sizeof(int));

int*b;

file*fp1;

file*fp2;

fp1=fopen(“〞,〞r〞);

if(fp1==null)

{printf(“error1″);

exit(-1);

}

fp2=fopen(“〞,〞w〞);

if(fp2==null)

{printf(“error2″);

exit(-1);

}

inti=0;

intj=0;

while(fscanf(fp1,〞%d〞,a[i])!=eof)

{i++;

j++;

if(i=max)

{

max=2*max;

b=(int*)realloc(a,max*sizeof(int));

if(b==null)

{printf(“error3″);

exit(-1);

}a=b;

}}

for(;–j=0;)

fprintf(fp2,〞%dn〞,a[j]);

fclose(fp1);

fclose(fp2);

return0;

}

其次題.

#include

intmain(void)

{unsignedlonginti,j,k;

printf(“pleaseinputthenumbern〞);

scanf(“%d〞,i);

if(i%2==0)

j=i/2;

else

j=i/2+1;

printf(“theresultisn〞);

for(k=0;kj;k++)

printf(“%d=%d+%dn〞,i,k,i–k);

return0;

}

#include

voidmain()

{unsignedlonginta,i=1;

scanf(“%d〞,a);

if(a%2==0)

{for(i=1;iprintf(“%d〞,a,a-i);

}

else

for(i=1;i=a/2;i++)

printf(〞%d,%d〞,i,a-i);

}

兄弟,這樣的.題目若是做不出來實在是有些不應(yīng)當,給你一個遞規(guī)反向輸出字符串的例子,可謂是反序的經(jīng)典例程.

voidinverse(char*p)

{if(*p==‘′)

return;

inverse(p+1);

printf(“%c〞,*p);

}

intmain(intargc,char*argv[])

{

inverse(“abc″);

return0;

}

借簽了樓上的“遞規(guī)反向輸出〞

#include

voidtest(file*fread,file*fwrite)

{charbuf[1024]={0};

if(!fgets(buf,sizeof(buf),fread))

return;

test(fread,fwrite);

fputs(buf,fwrite);

}

intmain(intargc,char*argv[])

{file*fr=null;

file*fw=null;

fr=fopen(“data〞,“rb〞);

fw=fopen(“dataout〞,“wb〞);

test(fr,fw);

fclose(fr);

fclose(fw);

return0;

}

在對齊為4的狀況下

structbbb

{longnum;

char*name;

shortintdata;

charha;

shortba[5];

}*p;

p=0×1000000;

p+0×200=____;

(ulong)p+0×200=____;

(char*)p+0×200=____;

解答:假設(shè)在32位cpu上,

sizeof(long)=4bytes

sizeof(char*)=4bytes

sizeof(shortint)=sizeof(short)=2bytes

sizeof(char)=1bytes

由于是4字節(jié)對齊,

sizeof(structbbb)=sizeof(*p)

=4+4+2+1+1/*補齊*/+2*5+2/*補齊*/=24bytes(經(jīng)dev-c++驗證)

p=0×1000000;

p+0×200=____;

=0×1000000+0×200*24

(ulong)p+0×200=____;

=0×1000000+0×200

(char*)p+0×200=____;

=0×1000000+0×200*4

你可以參考一下指針運算的細節(jié)

c語言基礎(chǔ)筆試題篇八

寫出二分查找的代碼:

intbinary_search(int*arr,intkey,intsize)

{

intmid;

intlow=0;

inthigh=size-1;

while(low=high)

{

mid=(low+high)/2;

if(arr[mid]key)

high=mid-1;

elseif(arr[mid]

low=mid+1;

else

returnmid;

}

return-1;

}

請編寫一個c函數(shù),該函數(shù)在一個字符串中找到可能的最長的子字符串,該字符串是由同一字符組成的。

#include

#include

#include

intchildstring(char*p)

{

char*q=p;

intstringlen=0,i=0,j=1,len=0,maxlen=1;

//stringlen=strlen(p);

while(*q!=)//不能用strlen,求得長stringlen

{

stringlen++;

q++;

}

while(istringlen)

{

if(*(p+i)==*(p+j)jstringlen)

{

len++;//統(tǒng)計子串長度

i++;

j++;

}

else

{

if(len=maxlen)//統(tǒng)計最大子串長度

{

maxlen=len+1;

len=0;

}

else

len=0;

i++;

j++;

}

}

returnmaxlen;

}

intmain(intargc,char*argv)

{

chararr[11];

intlen;

printf(“pleaseinputchararr(10):n〞);

scanf(“%s〞,arr);

len=childstring(arr);

printf(“thelenofchildarris:%dn〞,len);

return1;

}

c語言基礎(chǔ)筆試題篇九

有一浮點型數(shù)組a,用c語言寫一函數(shù)實現(xiàn)對浮點數(shù)組a進行降序排序,并輸出結(jié)果,要求要以數(shù)組a作為函數(shù)的入口.(建議用冒泡排序法)

#include

#include

voidbubblesort(intarr,intn)

{

inti,j;

intexchange=1;//交換標志,提高算法效率;

inttemp;

for(i=0;i

{

exchange=0;//本趟排序開始前,交換標志應(yīng)為假

for(j=0;j

{

if(arr[j+1]arr[j])

{

temp=arr[j+1];

arr[j+1]=arr[j];

arr[j]=temp;

exchange=1;//發(fā)生了交換,故將交換標志置為真

}

}

if(!exchange)//本趟排序未發(fā)生交換,提前終止算法

return;

}

}

intmain(intargc,char*argv)

{

intarr[5]={1,4,2,6,5};

inti;

bubblesort(arr,5);

printf(“aftersort,arris:n〞);

for(i=0;i5;i++)

{

printf(“%3d〞,arr[i]);

}

return1;

}

c語言基礎(chǔ)筆試題篇十

有兩個磁盤文件a和b,各存放一行字母,要求把這兩個文件中的信息合并(按字母順序排列),輸出到一個新文件c中.

#include

#include

intmain(intargc,char*argv)

{

file*fp;

inti,j,k,num,num;

charc[50],t,ch;

if((fp=fopen(“a〞,“r〞))==null)

/*canbereplacedbyopen

*intfd=open(“a〞,o_rdonly|o_creat);*/

{

printf(“fileacannotbeopenedn〞);

exit(0);

}

printf(“nacontentsare:n〞);

for(i=0;(ch=fgetc(fp))!=eof;i++)/*一個字符一個字符讀*/

{

c[i]=ch;

putchar(c[i]);

}

num=i+1;

fclose(fp);

if((fp=fopen(“b〞,“r〞))==null)

{

printf(“filebcannotbeopenedn〞);

exit(0);

}

printf(“nbcontentsare:n〞);

for(i=0;(ch=fgetc(fp))!=eof;i++)

{

c[num+i]=ch;

putchar(c[num+i]);

}

fclose(fp);

num=num+i+1;

for(k=0;k

{

for(j=0;j

{

if(c[j]c[j+1])

{

t=c[j];

c[j]=c[j+1];

c[j+1]=t;

}

}

}

printf(“ncfileis:n〞);

fp=fopen(“c〞,“w〞);

for(i=0;i

{

putc(c[i],fp);/*將字符一個個寫入文件中*/

putchar(c[i]);/*一個個輸出字符*/

}

fclose(fp);

return1;

}

c語言基礎(chǔ)筆試題篇十一

c語言基礎(chǔ)筆試題

1、c語言程序的基本單位是____a)程序行b)語句c)函數(shù)d)字符、c、1

2、c語言程序的三種基本結(jié)構(gòu)是____a、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)b、遞歸結(jié)構(gòu),循環(huán)結(jié)構(gòu),轉(zhuǎn)移結(jié)構(gòu)c、嵌套結(jié)構(gòu),遞歸結(jié)構(gòu),順序結(jié)構(gòu)d、循環(huán)結(jié)構(gòu),轉(zhuǎn)移結(jié)構(gòu),順序結(jié)構(gòu)、a、1

3、c語言規(guī)定,程序中各函數(shù)之間a)既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用b)不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用c)允許直接遞歸調(diào)用不允許間接遞歸調(diào)用d)不允許直接遞歸調(diào)用允許間接遞歸調(diào)用、a、1

4、c語言中可處理的文件類型是()a)文本文件和數(shù)據(jù)文件b)文本文件和二進制文件c)數(shù)據(jù)文件和二進制文件d)數(shù)據(jù)代碼文件、b、1

5、c語言可執(zhí)行程序的開始執(zhí)行點是()a)程序中第一條可執(zhí)行語句b)程序中第一個函數(shù)c)程序中的main函數(shù)d)包含文件中的第一個函數(shù)、c、1

6、c語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是a)doubleb)shortc)integerd)char、b、1

7、c語言中,運算對象必需是整型數(shù)的運算符是a)%b)c)%和d)**、a、1

8、c語言中函數(shù)返回值的類型是由()決定,a)return語句中的表達式類型b)調(diào)用函數(shù)的主調(diào)函數(shù)類型c)調(diào)用函數(shù)時臨時d)定義函數(shù)時所指定的函數(shù)類型、d、1

9、c語言中數(shù)組名作為參數(shù)傳遞給函數(shù),作為實在參數(shù)的數(shù)組名被處理為_____。a、該數(shù)組的長度。b、該數(shù)組的元素個數(shù)。c、該數(shù)組中各元素的值。d、該數(shù)組的首地址。、d、1

10、c語言中數(shù)組下標的下限是________。a、1b、0c、視具體狀況d、無固定下限、b、1

11、c語言中提供的合法關(guān)鍵字是____a、swithb、cherc、cased、default、d、1

12、c語言中文件的.存取方式是________。a、順序存取b、隨機存取c、順序存取、隨機存取均可d、順序存取、隨機存取均不可、c、1

13、c語言中最簡單的數(shù)據(jù)類型包括a)整型、實型、規(guī)律型b)整型、實型、字符型c)整型、字符型、規(guī)律型d)整型、實型、規(guī)律型、字符型、b、1

14、sizeof(float)是()a)一種函數(shù)調(diào)用b)一個不合法的表示形式c)一個整型表達式d)一個浮點表達式、c、1

15、x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),正確的輸入語句是a)inputx,y,z;b)scanf(“%d%d%d〞,x,y,z);c)scanf(“%d%d%d〞,x,y,z);d)read(“%d%d%d〞,x,y,z);、b、1

16、表達式:10!=9的值是a)trueb)非零值c)0d)1、d、1

17、表示關(guān)系x=y=z的c語言表達式為a)(x=y)(y=z)b)(x=y)and(y=z)c)(x=y=z)d)(x=y)(y=z)、a、1

18、程序片段:在tc20中,inti=65536;printf(“%d〞,i);的輸出結(jié)果是____a)65536b)0c)有語法錯誤,無輸出結(jié)果d)-1、b、1

19、當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是____a)數(shù)組的長度b)數(shù)組的首地址c)數(shù)組每一個元素的地址d)數(shù)組每個元素中的值、b、1

20、對嵌套子程序調(diào)用說法正確的是____。a、外層子程序可以調(diào)用所有的內(nèi)層子程序b、內(nèi)層了程序只可以調(diào)用包含本身的外層子程序,不可以隔層調(diào)用c、外分程序必需能完全套住內(nèi)分程序d、以上說法均不正確、c、1

21、對于基類型一致的兩個指針變量之間,不能進行的運算是a)b)=c)+d)-、c、1

22、合法的c語言中,合法的長整型常數(shù)是a)tb)“a〞c)65d)a、a、1

23、假定int類型變量占用兩個字節(jié),其有定義:intx[10]={0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是a)3b)6c)10d)20、d、1

24、假定有以下變量定義:intk=7,x=12;則能使值為3的表達式是ax%=(k%=5)bx%=(k-k%5)cx%=k-k%5d(x%=k)-(k%=5)、d、1

25、請讀程序片段(字符串內(nèi)沒有空格):printf(“%d〞,strlen(“ats0121〞));的輸出結(jié)果是a)11b)10c)9d)8、c、1

26、請選出合法的c語言賦值語句a)a=b=58b)i++;c)a=58,b=58d)k=int(a+b);、b、1

27、若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是a)-3b)9c)-12d)6、c、1

28、若int類型占兩個字節(jié),則以下語句輸出為________。intk=-1;printf(“%d,u%〞,k,k);a、-1,-1b、-1,65536c、-1,32768d、-1,65535、d、1

29、若變量a是int類型,并執(zhí)行了語句:a=‘a(chǎn)+1、6;,則正確的表達是a)a的值是字符cb)a的值是浮點型c)不允許字符型和浮點型相加d)a的值是字符‘a(chǎn)’的ascii值加上1,

、d、1

30、若變量已正確說明為float類型,要通過語句scanf(“%f%f%f〞,a,b,c);給a賦于10、0,b賦予22、0,c賦予33、0,不正確的輸入形式是:a)10b)10、0,22、0,3

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論