c語言試題題庫_第1頁
c語言試題題庫_第2頁
c語言試題題庫_第3頁
c語言試題題庫_第4頁
c語言試題題庫_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言(科目)題庫故本題答案為D。

一、選擇(共80題)3、能正確表示a和b同時為正或同時為負的邏輯表達式

1、c語言中下列敘述正確的是。是o

不能使用do-while語句構成循環(huán)(a>=0||b>=0)&&(a<0b<0)

do-while語句構成的循環(huán),必須用break語句才能退出(a>=0&&b>=0)&&(a<0&&b<0)

do-whi1e語句構成的循環(huán),當whi1e語句中的表達式值(a+b>0)&&(a+b<=0)

為非零時結束循環(huán)a*b>0

do-whi1e語句構成的循環(huán),當whiIe語句中的表達式值D

為零時結束循環(huán)4、邏輯表達式是指用邏輯運算符將關系表達式或邏輯量

D連接起來。

2、本題的考杳點是do-while語句。選項A中,表達式表示的是a,b為異號;

選項A是錯誤的,C語言支持do-while語句:選項B是選項B中,表達式表示的是0,因為沒有滿足條件的

錯誤的,do-while構成的循環(huán),當while語句中的表達值;

式值為零時結束循環(huán),而不是非零;選項C也是錯誤的。選項C中,表達式表示的是0,因為沒有滿足條件的

值;①中的void和define都和C語言的關鍵字重名,不合

選項D表示的是a和b為同號。法;

故本題答案為D。③中的case和C語言的關鍵字重名,不合法;

5、請選出可用作C語言用戶標識符的一組標識符<,④中的2a是數(shù)字打頭而且sizeof和C語言的關鍵字

①void②a3_b3③For.重名,不合法。

④2a故本題答案為B。

define123_abc7、若x和y都是int型變量,x=100.y=200,且有下面的

DO程序片段

WORDIFcaseprintf(飛d”,(x,y));

sizeof上面程序片段的輸出結果是o

1234B200100200,100輸入格式符不夠,

6、本題的考行點是C語言的標識符.輸出不確定的值A

c語言規(guī)定標識符只能由字母、數(shù)字和卜.劃線三種符本題的考查點是逗號表達式。

號組成,而且第一個字符必須是字母或下劃線。在(x,y

main()故本題答案為B。

{inta,b,s;9、設ch是char型變量,其值為A,且有下面的表達式

scanf(飛d%d”,&a,&b):ch=(ch>=,A'&&ch<=,Z')?(ch+32):ch

s=a;上面表達式的值是o

if(a<b)s=b;AaZZB

s=s*s;本題的考查點是條件運算符。

printf(飛d\n”,s);條件表達式的?般形式為:表達式1?表達式2:表達

}式3,條件運算符的執(zhí)行順序:先求解表達式1,若非0則

則輸出是O求解表達式2,此時表達式2的值就作為整個表達式的值,

14161820B若表達式1的值為0,則求解表達式3,此時表達式3的值

8、本題的考杳點是給變量賦值。就作為整個表達式的值。本題中,表達式1的值為1,所

用戶輸入的3和4分別賦給了a和b,在if語句進行判以整個表達式的值為表達式(ch+32)的值,即為a。

斷時,因為表達式的值為真,所以b的值將賦給s,s*s=16,故本題答案為B。

最后的打印結果為16。10、設有以卜.語句,其中不是對a數(shù)組元索的正確引用的

9n—;

沒第4行第6行第8行Cprintf("%d”,n);

本題的考查點是函數(shù)scanf()的格式輸入。)

根據(jù)函數(shù)scanf()的語法可知,在函數(shù)中的參數(shù)表列)

部分,應當是欲賦值變量的內存地址,象第六行這樣,該程序的輸出結果是O

將數(shù)組元素直接放在參數(shù)表列中是無法達到給數(shù)組元素98787687659876B

賦值的目的。本題考杳點是Whi1e語句循環(huán)次數(shù)的問題。

故本題答案為C。符合門刀的門只有7方,力所以循環(huán)次數(shù)為3。選項C、

13、有如下程序D可以排除。又因n在輸出之前要執(zhí)行n一,所以輸出結果

main()只能是876。

不題答案為

intn=9;14、若變量已正確定義并賦值,下面符合C語言的表達

while(n>6)式是_____。

a:=b+la=b=c+2int18.5%3

a=a+7=c+bB該程序輸出結果是_____O

選項A和C顯然錯誤;對于表達式a=a+7r+b(答案D),0.0000000.2500000.500000

是先執(zhí)行賦值表達式a+7=c+b,再把這個表達式的值賦給1.000000C

a,顯然,表達式a+7=c+b非法,因為賦值表達式的左值本題考查的是IF…ELSE語句的使用。x=2.0,符合第二個

不能為常量或表達式。IF語句的條件x<10.0,所以執(zhí)行y=1.0/x語句,即

本題答案為B。y=1.0/2.0=0.500000c

15、有如下程序本題答案為C。

main()16、有如下程序段

{floatx=2.0,y;int*p,a=10,b=l;

if(x<0.0)y=0.0;p=&a;a=*p+b;

elseif(x<10.0)y=l.0/x;執(zhí)行該程序段后,a的值為______。

elsey=l.0;121110編譯出錯B

printf("%f\n”,y);執(zhí)行p=&a;后,p指向整數(shù)a,的目標變量,也就

)是a;所以a=*p+b等價于a=a+b,可知a的值最終為

11cstructpersonclass[10]={"John”,17,

本題答案為B?!癙aul”,19,

17.有如下程序“Mary",18,

mainO“Adam”,16,};

(根據(jù)上述定義,能輸出字母M的語句是。

intn[5]={0,0,0},i,k=2printf(w%c\n,z,class⑶.name);

for(i=0;i<k;i++)n[i]=n[i]+1;printf("與c\n”,class[3].name[l]);

printf(z,%d\nw,n[k]);printfC*%c\n*?class[2].name[1]);

)printf("與c\n”,class[2].name[0]);

該程序的輸出結果是。D

不確定的值210D結構體和共用體類型數(shù)據(jù)的定義方法和引用方法

一維數(shù)組和多維數(shù)組的定義、初始叱和引用19、以下列出C語言常量中,錯誤的是。

18、有如下定義OxFF1.2e0.52L'\72'

structperson{charname[9];intage;};B

7

C的數(shù)據(jù)類型及其定義方法構體類里B

20、以下變量x、y、z均為double類型且已正確賦值,結構體和共用體類型數(shù)據(jù)的定義方法和引用方法

不能正確表示數(shù)學式子x/(y*z)的C語言表達式是22、X、Y、Z被定義為int型變量,若從凝盤給X、Y、Z輸

入數(shù)據(jù),正確的輸入語句是。

x/y*zx*(l/(y*z))x/y*l/zINPUTX,Y.Z;scanfC%d%d%d\&X,&Y,&Z);

x/y/zAscanf(飛d$d%d”,X,Y,Z);

CF勺數(shù)據(jù)類型及其定義方法read(飛豳d*d",&X,&Y,&Z);B

21、設有以下說明語句本題考杳C語言的格式化輸入語句。

structexC語言中沒有INPUT與read語句,scanf()語句的格式

{intx;floaty;charz;}example;為:

則下面的敘述中不正確的是.scanf("格式字符串”,變量地址1,變量地址2,...);

struct是結構體類型的關鍵字example是結構本題答案C中,應為變量地址。

體類型名本題答案為

x,y,z都是結構體成員名structex是結23、t為int類型,進入下面的循環(huán)之前,t的值為0,

while(t=l)staticintc=3;

{……}b++;c++;

則以下敘述中正確的是oreturn(a+b+c);

循環(huán)控制表達式的值為0循環(huán)控制表達式的值為)

1如果在下面的程序中調用該函數(shù),則輸出結果是

循環(huán)控制表達式不合法以上說法都不對

Bmain()

本題考查C語言的while循環(huán)語句。(in:a=2,i;

本題的t=l是一個賦值表達式,其值為變量的值,所for(i=0;i<3;i++)printf("%d\n”.f(a))

以岫ile語句的循環(huán)控制表達式的值為1。)

本題答案為屏A)B)0D)

24、設有以下函數(shù);7777

f(inta)89107

{intb=0;911137

ABCDmain()

A{inti,a[10];

本題考查的是C語言的靜態(tài)數(shù)據(jù)類型。靜態(tài)數(shù)據(jù)類型的變for(i=9;i>=0;i―)a[i]=10-i;

量的值在退出了函數(shù)時依然存放在內存中,且只初始化printf("%d%d%d”,a[2],a[5],a[8]);

一次。)

本題答案為A。258741852369

25、以下定義語句中,錯誤的是oC

int=2}:char*a[3];char本題使循環(huán)語句給數(shù)組元素賦值。

s[10]="test";intn=5,a[n];DC語言中for循環(huán)語句的一般形式為:

本題考查C語言數(shù)組的定義與初始化。for(表達式1;表達式2;表達式3)

在C語言中數(shù)組的初始化可以這部分元素,數(shù)組的定(

義,不能含有變量。語句部分;

本題答案為九}

26、以下程序的輸出結果是.本題答案為C。

10

27、以下程序的輸出結果是,本題答案為D。

main()CONTINUE語句和BREAK語句

{inta,b:28、以下程序的結果是。

for(a=l,b=l:a<=100;a++)inta,b;

{if(b>=10)break;voidfun()

if(b%3==l){a=100;b=200;}

{b+=3;continue;}main()

){inta=5,b=7;

printfa);:un();

)printf(飛d%d\n”,a,b);

101654D)

木題主要考杳考生對C語言中的循環(huán)語句和程序的執(zhí)行1002005720010075

邏輯。木題中for循環(huán)語句共執(zhí)行3次,所以a的值累加3B

次,結果為4。局部變量和全局變量

29、以下敘述中正確的是_____o31、有以下程序

C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)structSTU

打開一個已存在的文件并進行了寫悚作后,原有文件中{charnum[10];floatscore[3];}

的全部數(shù)據(jù)必定被覆蓋main()

在一個程序中當對文件進行了寫操;乍后,必須先關閉該{structSTUs[3]={{"20021”,90,95,85},

文件然后再打開,才能讀到第1個數(shù)據(jù){"20022”,95,80,75},

當對文件的讀(寫)操作完成之后,必須將它關閉,否{“20023”,100,95.90}},*p=s;

則可能導致數(shù)據(jù)丟失inti;floatsum=0;

Dfor(i=0;i<3;i++)

文件的打開與關閉(FOPEN,FCLOSE)sum=sum+p->score[i];

30、C語言中,函數(shù)值類型的定義可以缺省,此時函數(shù)值printf(*%6.2f\n”,sum);

的隱含類型是。}

VoidintfloatdoubleB程序運行后的輸出結果是______。

函數(shù)的類型和返回值260.00270.00280.00285.00

Bx=x*100+0.5/100.0;x=(x*100+0.5)/100.0

結構體和共用體類型數(shù)據(jù)的定義方法和引用方法x=(in:)(x*100+0.5)/100.0;

32、有以下程序x=(x/100+0.5)/100.0;C

mainO表達式沿句,空語句,復合語句

{intp[7]={ll>13,14,15,16,17,18},i=0,k=0;34、有以下程序

while(i<7&&p[i]%2){k=k+p[i];i++;}main()

printf("%d\n",k);{inti,s=0;

)for(i=l;i<10;i+=2)s+=i+l;

執(zhí)行后輸出的結果是。printf(w%d\n,z,s);

58564524D)

一維數(shù)組和多維數(shù)組的定義、初始化和引用自然數(shù)1?9的累加和自然數(shù)1?1。的累加和

33、設變量x為門oat型且已賦值,則以卜語句中能將x中自然數(shù)I?9中奇數(shù)之和自然數(shù)1?10中偶數(shù)之和

的數(shù)值保留到小數(shù)點后兩位,并將第三位四舍五入的是D

FOR循環(huán)結構

35、若程序中定義了以下函數(shù)括弧,不包括形參和函數(shù)體。對被調函數(shù)進行說明的作

doublemyadd(doublea,doubleb;用是告訴系統(tǒng):在本函數(shù)中將要用到的某函數(shù)是XX類型。

{return(a+b);}也就是說明該函數(shù)的返回值的類型,以便在主調函數(shù)中

并將其放在調用語句之后,則在調用之前應該對函數(shù)進按此類里對函數(shù)值作相應的處理。

行說明,以下選項中錯誤的說明是。本題選項A中,對?變量b的類型沒有說明,默認的為

doublemyadd(doublea,b);double整型,不合題意。

myadd(doub1e,doubIe);故本題答案為A。

doublemyadd(doubleb,doublea);double36、下面程序的功能是輸出以下形式的金字塔圖案:

myadd(doublex,doubley);A*

時函數(shù)的“定義”和“說明”不是一回事。"定義''是指對函數(shù)***

功能的確立,包括指定函數(shù)名,函數(shù)值類型、形參及其*****

類型、函I數(shù)體等,它是一個完整的、獨立的函數(shù)單位。*******

而“說明''則是對己定義的函數(shù)的返回值進行類型說明(或main()

稱,?申明”),它只包括函數(shù)名、函數(shù)類型、以及一個空的{inti,j;

14

for(i=l;i<=4;i++))

:for(j=l;j<=4-i;j++)printfC");main(){

for(j=l:j<=;j++)printf(〃*〃);inta,b,c;

printfC\n*);sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

)printf("%d,%d,%d\n*,a,b,c);

})

在下劃線處應填入的是。5,2,3-5,-12,-7-5,-12,-17

T2*i-l2*i+li+25,-2,-7B

B用指針作函數(shù)參數(shù)

循環(huán)的嵌套38、請選出以下程序段的輸出結果o

37、請選出以下程序的輸出結果。#include<stdio.h>

#include<stdio.h>^defineMIN(x,y)(x<y)?x:y

sub(intx,inty,int*z){main()

*z=y-x;

15

inti,j,k;字符串與字符數(shù)組

i=10;j=15;本題的考查點是字符數(shù)組的結束標志。

k=10*MIN(i,j);ptr=str實際上是將串str的首地址賦給了指針變量

printf("先d\n",k);ptr,所以ptr+5將指向str串的第六個數(shù)組元素,即是串

}的隱含結束標志''0',*(ptr+5)=>\0\最后的結果為

1510010150C'\0'。

宏定義:不帶參數(shù)的宏定義;帶參數(shù)的宏定義故本題答案為B。

39、設有如下的程序段40、已有定義:charc;,程序前面已在命令中包含

charstr口=“Heilo”;ctype.h文件。不能用于判斷c中的字符是否為大寫字母

char*ptr;的表達式是。

ptr=str;isupper(c)'A><=c<=,1''A*<=c&&c<=,Z'

執(zhí)行完上面的程序段后,*(ptr+5)的值為c<=('z'-32)&&('a'-32)〈=cB

‘?!?\0'不確定的值'?!疌運算符的種類、運算優(yōu)先級和結合性

的地址B41、下面程序的輸出是。

16

intm=13;故本題答案為B。

intfun2(intx,inty)42、有以下程序

{intm=3;^include<stdio.h>

return(x*y-m);intfun(chars[])

){in7n=0;

main()while(*s<=,9'&&*s>=,0>)

{inta=7,b=5;{n=10*n+*s」O';s++;}

printf("/d\n”,fun2(a,b)/m):}return(n);

12710B)

本題的考杳點是函數(shù)的調用。main()

函數(shù)「un2()的作用是將形參x和y的值相乘后-3,在chars[10]={'6',''9',

fun2()中的變量m是一個局部變量,它的值在fun2()函數(shù)'O','*'};

內有效,在主函數(shù)中的m指的是全局變量,其值為13,所printf("刎\n",fun(s));

以fun2(a,b)/m的值為(7*5-3)/13,即2。}

程序的運行結果是_C_O(n=10*6+'l'」0'),故n=61;指針變量繼續(xù)后移一位,

961490615*s-,所以while(*s<='9'&&*s〉='O')不成立,返回

字符串與字符數(shù)組n=61的直。故本題程序輸出結果是61。

本題考查的是指針的應用。本題答案為C。

本題主函數(shù)中定義了一個字符型數(shù)組s,當調用fun43、以下函數(shù)返回a所指數(shù)組中最小值所在的下標值。

函數(shù)時,將字符型數(shù)組s的地址指向形參字符數(shù)組s,則fun(int*a,intn)

形參與實參共用占同一存儲單元,其值也相等。在函數(shù)(

fun中,第一次執(zhí)行while循環(huán)時,*s='6',所以inti,j=0,p;

while(*s<='9'&&*s>='0')成立,執(zhí)行n=10*n+*s-'0';P=j;

即『10*0+'6'」0',其中字符'6'和'0'均代入ASCH碼進:or(i=j;i<n;j++)

行運算,所以"6;if(a⑴<a[p]);

S++表示指針變量S后移一位,即*s='l',所以return(p);

while(*s<='9'&&*s>='0')成立,執(zhí)行n=10*n+*s」0';由)

于前一次循環(huán)執(zhí)行后的n的值為6,此時的等式為在下劃線處應填入的是。

i=Pa[p]=a[i]P=J

D該程序的輸出結果是O

一維數(shù)組和多維數(shù)組的定義、初始叱和引用2468B

44、有如下程序:函數(shù)的正確調用,嵌套調用,遞歸調用

longfib(intn)45、若fp是指向某文件的指針,且已讀到此文件的末尾,

(則函數(shù)feof(fp)的返回值是。

if(n>2)EOF0非零值NULL

return(fib(n-l)+fib(n-2));C

else本題的考杳點是文件結束符的返回值問題。

return(2);函數(shù)feof是用來判斷文件是否已讀到末尾,如果已

)讀到末尾則返回非零值,否則返回0。

main()木題答案為C。

文件的實寫,文件的定位

printf(*%d\n*,fib(3));46、有如下程序

intfunc(inta,intb)b=a&&(-1);

return(a+b);}prin:f(w%d,%d\n/z,a,b);

main()

{intx=2,y=5,z=8,r;程序運行后的輸出結果是o

r=func(func(x,y),z);6,12,16,02,0B

printf(飛d\n”,r);本題考查的是算術運算符。

)如果算術運算符中參與運算的變量都是整型變

該程序的輸出結果是。量,則""表示整除運算,"%”表示求余。本題中

12131415D,za=d/10%9;”的值為25/10%9=2:"b=a&&(-1);“為

函數(shù)的正確調用,嵌套調用,遞歸調用2&&(-1)=1(注意:-1表示真,只有0才表示假),所以a,b

47、有以下程序的值分別為2,1。

main()故本題答案為B。

{inta,b,d=25;48、下列程序段的輸出結果是_____。

a=d/10%9;voidfun(int*x,int*y)

{printf(*%d%d",*x,*y):*x=3;*y=4;}49、以下程序的輸出結果是o

main()longfun(intn)

{intx=l,y=2;{longs;

fun(&y,&x);if(n==l||n==2)s=2;

printf(*%d%dz,,x,y):elses=n-fun(n-l);

)returns;

)

2143121212342main()

112A{pi'intf("%1d'n”,fun(3));)

用指針作函數(shù)參數(shù)1234A

本題中函數(shù)傳遞的是變量的地址,如果形參變量所指函數(shù)的正確調用,嵌套調用,遞歸調用

向的存儲空間的內容在函數(shù)中發(fā)生改變,相對應的實參50、有以下結構體說明和變量定義,如圖所示:

變量所指向的存儲空間的內容也就發(fā)生改變。structnode

本題答案為A。{intdata;structnode*next;)*p,*q,*r;

datanextditanextchkne

y---------->---------->---------->----------?

才qw-main()

現(xiàn)要將q所指結點從鏈表中刪除,同時要保持鏈表的連

續(xù),以下不能完成指定操作的語句是oWriteStrC,tl.dat","start");

p->next=q->next;p->next=p->next->next;WriteStr(^tl.dat","end");

p->next=r;p=q->next;D)

結構體和共用體類型數(shù)據(jù)的定義方法和引用方法程序運行后,文件11.dal中的內容是o

51、有以下程序StartendstartendendrtB

#include<stdio.h>本題考杳的是文件操作。

voidWriteStr(chai'*fn,char*str)題中"fopen(fn,"w")”的作用是打開fn所指向的文件,

{FILE*fp;使用文件方式為"寫入";"fputs(str.fp)”的作用是將字符str

fp=fopen(fn,"w");的值輸出到fp所指向的文件中去。在程序中,兩次使用”

fputs(str,fp);寫入”的方式打開同一個文件,在第二次打開時,文件指

fclose(fp);針指向文件頭,所以此次寫入的數(shù)據(jù)覆蓋了文件原有的

22

數(shù)據(jù),故本題中11.dat的內容為end。句中使,書了非法變量D

故本題答案為B。53、有以下程序

52、以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的main()

圓面積s,程序在編譯時出錯。{int

main()a[10]={l,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;

w,,

/*Beginning*/printf(%d\n,*p+*q);

{intr;floats;)

scanf&r);程序運行后的輸出結果是。

s=*n*r*r;printf("s二%f\n”,s):161086B

)指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)

出借的原因是______。本題考直的是指向數(shù)組的指針變量。

注釋語句書寫位置錯誤存放圓半徑的變量r不應該數(shù)阻a各元素a[0]?a[9]的值依次為1?10;在程序

定義為整型的說明部分,指針變量P初始化為&a[3],即*p的值為4;

輸出語句中格式描述符非法計算圓面積的賦值語指針變量q初始化為P+2,即&a[3]+2,所以*q的值為6,

所以*p+*q的值為10。故本題答案為Breturns;

54、若要打開A盤上的user子目錄下名為abc.txt的文)

本文件進行讀、寫操作,下面符合此要求的函數(shù)調用是main()

(intx,a[]={l,2,3,4,5,6,7,8,9};

fopen("A:\user\abc.txt","r")x=f(a,3,7);

fopen(z,/\:\\user\\abc.txt","r+";prinif("先d\n",x);

fopen(,z/\:\user\abc.txt","rb"))

fopen(,ZA:\\user\\abc.txt","'v")1018815A

B用指針作函數(shù)參數(shù)

文件的打開與關閉(FOPEN,FCLOSE)56、有以下程序

55、以下程序的輸出結果是,main()

f(intb[],intm,intn){int

{inti,s=0;aa[4][4]={{l,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9

for(i=m;i<n;i=i+2)s=s+b[i]6));

24

inti,s=0;prin:f(w%d,%d,%d\n”,a,b,c);

for(i=0;i<4;i++)s+=aa[i][1]:)

printf("%d\n",s);執(zhí)行后輸出的結果是o

3,4,55,3,45,4,34,3,5D

程序運行后的輸出結果是O形式參數(shù)與實在參數(shù),參數(shù)值的傳遞

維數(shù)組和多維數(shù)組的定義、初始化和引用58、有以下程序

57、有以下程序main()

voidf(intx,inty){inta=7,b=8,*p,*q,*r;

{intt;

溫馨提示

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

評論

0/150

提交評論