C語言考試題及答案(一) | IT人

文章推薦指數: 80 %
投票人數:10人

C語言(一) 一選擇題(7分,每小題0.5分) 1.C語言源程式的基本單位是( )。

A 過程B 函式C 子程式D 識別符號2.下列程式的輸出結果是( c)。

main( ) ... Togglenavigation IT人 IT人 C語言考試題及答案(一) 養生護髮發表於 2020-09-30 C語言(一)一選擇題(7分,每小題0.5分)1.C語言源程式的基本單位是()。

A過程B函式C子程式D識別符號2.下列程式的輸出結果是(c)。

main(){inta=7,b=5;printf("%d\n",b=b/a);}A5B1C0D不確定值3.假設變數a,b均為整型,表示式(a=5,b=2,a>b?a++:b++,a+b)的值是(b)。

A7B8C9D24.設a為int型變數,執行下列賦值語句後,a的取值分別是(b)。

a=125.534;a=(int)125.521%4;a=5<<2;A125,31,1B125,1,20C125,31,20D125.534,2,205.設有如下程式段,下面描述中正確的是(C)。

intk=10;while(k=0)k=k-1;A迴圈執行一次B迴圈是無限迴圈C迴圈體語句一次也不執行D迴圈體語句執行一次6.以下程式的輸出結果為(A)。

inti;voidprt(){for(i=5;i<8;i++)printf("%c",’*’);printf("\t");}main(){for(i=5;i<=8;i++)prt();}A***B************C******D***7.在C語言程式中,以下說法正確的是(B)。

A函式的定義可以巢狀,但函式的呼叫不可以巢狀B函式的定義不可以巢狀,但函式的呼叫可以巢狀C函式的定義和函式的呼叫都不可以巢狀D函式的定義和函式的呼叫都可以巢狀 8.以下函式呼叫語句中含有(A)個實參。

func((e1,e2),(e3,e4,e5));A2B3C5D語法錯誤9.以下程式的輸出結果為(A)。

#defineADD(x)x*xmain(){inta=4,b=6,c=7,d=ADD(a+b)*c;printf(“d=%d”,d);}Ad=70Bd=80Cd=140Dd=70010.已知職工記錄描述如下,在TurboC中,系統為變數w分配(C)位元組的空間。

structworker{intno;charname[20];charsex;union{intday;intmonth;intyear;}birth;}w;A29B20C25D611.設有以下定義,值為5的列舉常量是(A)。

enumweek{sun,mon=4,tue,wed,thu,fri,sat}w;AtueBsatCfriDthu12.下面選項中正確的賦值語句是(設chara[5],*p=a;)(A)。

Ap=“abcd”;Ba=“abcd”;C*p=“abcd”;D*a=“abcd”;13.設有以下程式段,則值為6的表示式是(B)。

structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,0},*p;p=&a[0];Ap+±>nB++p->nCp->n++D(*p).n++14.C語言中的檔案型別只有(D)。

A索引檔案和文字檔案兩種B文字檔案一種C二進位制檔案一種DASCII碼檔案和二進位制檔案兩種二判斷對錯,對的劃“√”,錯的劃“×”(5分,每小題0.5分)1.在TurboC中,整型資料在記憶體中佔2個位元組。

()2.inti=20;switch(i/10){case2:printf(“A”);case1:printf(“B”);}的輸出結果為A。

()3.break語句用在迴圈體中,可結束本層迴圈,continue語句用在迴圈體中,可結束本次迴圈。

()4.函式的遞迴呼叫不過是一個函式直接或間接地呼叫它自身。

()5.函式strlen(“ASDFG\n”)的值是7。

()6.通過return語句,函式可以帶回一個或一個以上的返回值。

()7.結構體型別只有一種。

()8.char*p=“girl”;的含義是定義字元型指標變數p,p的值是字串"girl"。

()9.若有定義:char*p(chara[10]);則p是函式名。

()10.用fopen(“file”,“r+”);開啟的檔案"file"可以進行修改。

() 三寫出下列程式的執行結果(10分,每小題2分) 1.floataverage(floatarray[10]){inti;floataver,sum=array[0];for(i=1;i<10;i++)sum=sum+array[i];aver=sum/10;return(aver);}main(){floatscore[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver;inti;aver=average(score);printf(“averagescoreis%5.2f\n”,aver);}2.main(){chara[5]={‘A’,‘B’,‘C’,‘D’,‘E’},p=a,pa;for(p=0;p=20)break;if(b%31){b+=3;continue;}b-=5;}printf(“a=%d\tb=%d\n”,a,b);}4.main(){printf(“main():%d\n”,fact(5));fact(-5);}fact(intvalue){intf;if(value<0){printf(“Argerror\n");return(-1);}elseif(value1||value==0)f=1;elsef=valuefact(value-1)+1;printf(“Thiscalledvalue=%d\n”,f);returnf;}5.main(){inta=012,b=0x12,k=12;charc=‘\102’,d=‘\r’;printf(“a=%d\tb=%d\tk=%d\n”,a,b,k);printf(“c=%c,d=%c%o\n”,c,d,a);a=‘A’;c=49;printf(“a=%d\tc=%c\n”,a,c);}四閱讀下列程式,在處填入適當內容,使程式完整(8分,每個空1分)1.有一個3*4矩陣,求其中的最大元素。

max_value((1)){inti,j,max;max=array[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++)if(array[i][j]>max)max=array[i][j];(2);}main(){inta[3][4],i,j;for(i=0;i<3;i++)for(j=0;j<4;j++)(3);printf(“maxvalueis%d\n”,max_value(a));} 2.輸入x、y兩個整數,按先大後小的順序輸出x、y。

#include“stdio.h”main(){intx,y,*px,*py,(4);scanf(“%d%d”,&x,&y);(5);(6);if(xa[k])k=j;if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}}printf(“Thesortednumbers:\n”);for(i=1;i<11;i++)printf("%d",a[i]);}答案(一)一選擇題(7分,每小題0.5分) B2.C3.B4.B5.CA7.B8.A9.A10.CA12.A13.B14.D二判斷對錯,對的劃“√”,錯的劃“×”(5分,每小題0.5分)1.×2.×3.√4.√5.×6.×7.×8.×9.√10.√四閱讀下列程式,在處填入適當內容,使程式完整(8分,每個空1分)1.(1)intarray[3][4](intarray[][4])(2)return(max)(3)scanf(“%d”,&a[i][j])2.(4)*p(5)px=&x(py=&y)(6)py=&y(px=&x)3.(7)(8) C語言(二)一選擇題(24分,每小題2分)1.已知函式fread的呼叫形式為fread(buffer,size,count,fp),其中buffer代表的是()。

A存放讀入資料項的儲存區B存放讀入資料的地址或指向此地址的指標C一個指向所讀檔案的檔案指標D一個整形變數,代表要讀入的資料項總數2.以下程式的輸出結果為()。

main(){inti=010,j=10;printf("%d,%d\n",i++,j–);}A11,9B9,10C8,10D9,93.設a為int型變數,執行下列賦值語句後,a的取值分別是()。

a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;A125,6,31,1B125,6,1,20C125,6.666666,31,20D125.534,6.666666,2,204.設i和k都是int型別,則for迴圈語句()。

for(i=0,k=-1;k=1;i++,k++)printf("****\n");A迴圈結束的條件不合法B迴圈體一次也不執行C迴圈體只執行一次D是無限迴圈5.以下程式的輸出結果為()。

main(){charc;inti;for(i=65;i<68;i++){c=i+32;switch©{case‘a’:case‘b’:case‘c’:printf("%c,",c);break;default:printf(“end”);}}}Aa,b,c,endBa,a,a,endCa,a,a,Da,b,c,6.函式呼叫語句:fseek(fp,-10L,2);的含義是()。

A將檔案位置指標從檔案末尾處向檔案頭的方向移動10個位元組B將檔案位置指標從當前位置向檔案頭的方向移動10個位元組C將檔案位置指標從當前位置向檔案末尾方向移動10個位元組D將檔案位置指標移到距離檔案頭10個位元組處 7.以下程式的輸出結果為()。

main(){chars1[40]=“country”,s2[20]=“side”;inti=0,j=0;while(s1[i]!=’\0’)i++;while(s2[j]!=’\0’)s1[i++]=s2[j++];s1[i]=0;printf("%s\n",s1);}AsideBcountryCsidetryDcountryside8.下列說法不正確的是()。

A主函式main中定義的變數在整個檔案或程式中有效B不同函式中,可以使用相同名字的變數C形式引數是區域性變數D在一個函式內部,可以在複合語句中定義變數,這些變數只在本複合語句中有效9.在下列程式段中,列舉變數c1的值是()。

enumcolor{red,yellow,blue=4,green,white}c1;c1=yellow;c1=white;A1B3C5D610.設有說明int(*ptr)();其中識別符號ptr是()。

A是一個指向整形變數的指標B是一個指標,它指向一個函式值是int的函式C是一個函式名D定義不合法11.定義由n個指向整形資料的指標組成的陣列p,其正確的方式為()。

Aintp;Bint(*p)[n];Cint*p[n];Dint(*p)();12.具有相同型別的指標型別變數p與陣列a,不能進行的操作是()。

Ap=a;B*p=a[0];Cp=&a[0];Dp=&a;二判斷對錯,對的劃“√”,錯的劃“×”(20分,每小題2分)1.參加位運算的資料可以是任何型別的資料。

()2.若有定義和語句:inta;charc;floatf;scanf("%d,%c,%f",&a,&c,&f);若通過鍵盤輸入:10,A,12.5,則a=10,c=‘A’,f=12.5。

()3.C語言把檔案看作是一個字元(位元組)的序列。

()4.若有巨集定義:#defineS(a,b)t=a;a=b;b=t由於變數t沒定義,所以此巨集定義是錯誤的。

()5.在TurboC中,下面的定義和語句是合法的:file*fp;fp=fopen(“a.txt”,“r”)😭)6.若有定義:chars[]="china";則TurboC系統為陣列s開闢6個位元組的記憶體單元。

()7.若有定義和語句:inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++)sum+=a[i][2-i];則sum=21。

()8.若有定義和語句:structstudent{intnum;charname[10];floatscore;}s[5]={{1,“lili”,98.5},{9,“xiaohua”,66}},*p=s;printf("%d",p++);輸出結果是1。

()9.在程式中定義了一個結構體型別後,可以多次用它來定義具有該型別的變數。

()10.在TurboC中,此定義和語句是合法的:enumaa{a=5,b,c}bb;bb=(enumaa)5;()三寫出下列程式的執行結果(36分,每小題6分)1.main(){inti=29,j=6,k=2,s;s=i+i/j%k-9;printf(“s=%d\n”,s);}2.main(){intx=31,y=2,s=0;do{s-=xy;x+=2;y-=3;}while(x%3==0);printf(“x=%d\ty=%d\ts=%d\n”,x,y,s);}3.main(){inta[6]={10,20,30,40,50,60},i;invert(a,0,5);for(i=0;i<6;i++)printf(“%d,”,a[i]);printf(“\n”);}invert(ints[],inti,intj){intt;if(imain(){charstr[]=“TheCprogram”,c;inti;for(i=2;(c=str[i])!=‘\0’;i++){switch©{case‘g’:++i;break;case‘o’:continue;default:printf(“%c”,c);continue;}printf(“*”);}printf(“\n”);}5.structw{charlow;charhigh;};unionu{structwbyte;shortword;}uw;main(){intresult;uw.word=0x1234;printf(“wordvalue:%04x\n”,uw.word);printf(“highbyte:%02x\n”,uw.byte.high);printf(“lowbyte:%02x\n”,uw.byte.low);uw.byte.low=0x74;printf(“wordvalue:%04x\n”,uw.word);result=uw.word+0x2a34;printf(“theresult:%04x\n”,result);}6.main(){char*s2=“IloveChina!”,**s1=&s2;char*s3,c,*s4=“w”;s3=&c;*s3=‘H’;s2=s2+2;printf(“%s\t%c\t%s\t%c\n”,s2,*s3,s4,**s1);}四閱讀下列程式,在處填入適當內容,使程式完整(20分,每個空2分) 百馬百擔問題:有100匹馬,馱100擔貨,大馬馱3擔,中馬馱2擔,兩匹小馬馱1擔,問大、中、小馬各多少匹?main(){inthb,hm,hl,n=0;for(hb=0;hb<=100;hb+=(1))for(hm=0;hm<=100-hb;hm+=(2)){hl=100-hb-(3)if(hb/3+hm/2+2*(3)100){n++;printf(“hb=%d,hm=%d,hl=%d\n”,hb/3,hm/2,2*hl);}}printf(“n=%d\n”,n);}2.用“起泡法”對輸入的10個字元排序後按從小到大的次序輸出。

#defineN10charstr[N];main(){inti,flag;for(flag=1;flag1;){scanf("%s",str);flag=0;printf("\n");}sort(___(4)___);for(i=0;istr[i+1]){t=str[i];(5);(6);}}3.以下程式是一個函式,功能是求二階矩陣(m行n列矩陣)的所有靠外側的各元素值之和。

(本程式中二階矩陣用一維陣列來表示。

)例如,矩陣為:300325731042則所有靠外側的各元素值之和為3+0+0+3+2+3+1+0+4+2=18。

add(intm,intn,intarr[]){inti,j,sum=0;for(i=0;i*pt1)(9)if(arr[i]標籤的妙用 DAST黑盒漏洞掃描器第五篇:漏洞掃描引擎與服務能力 02CSS塊級元素和行內元素 CMU15445之Project#0-C++Primer詳解 你真的懂Python命名嗎? 數字格式化的js庫 SpringIOC為什麼能降低耦合 程式分析與優化-8暫存器分配



請為這篇文章評分?