C語言復(fù)習(xí)題及答案老師給的_第1頁
C語言復(fù)習(xí)題及答案老師給的_第2頁
C語言復(fù)習(xí)題及答案老師給的_第3頁
C語言復(fù)習(xí)題及答案老師給的_第4頁
C語言復(fù)習(xí)題及答案老師給的_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

復(fù)習(xí)A:一、單項(xiàng)選擇題1、如果要把常量327存入變量a中,a不能定義得類型就是哪一個(gè)?(B)A)intB)charC)longD)float2、若x為unsignedint型變量,則執(zhí)行下列語句后x值為(D)x=65535;printf(“%d\n”,x);A)65535B)1C)無定值D)13、有以下程序main

{inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(″%d,%d\n″,k,m);

}程序運(yùn)行后得輸出結(jié)果就是(C)

A)0,0

B)0,1

C)1,0

D)1,14、在C語言中,如果下面得變量都就是int類型,則輸出得結(jié)果就是(C)。sum=pad=5;pAd=sum++,pAd++,++pAd;printf("%d\n",pad);A)7B)6C)5D)45、以下程序得輸出結(jié)果就是(A)。main{inta=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1 B)0 C)非0得數(shù) D)16、當(dāng)執(zhí)行以下程序段時(shí)(A)。x=1;do{x=x*x;}while(!x);A)循環(huán)體將執(zhí)行一次 B)循環(huán)體將執(zhí)行兩次C)循環(huán)體將執(zhí)行無限次 D)系統(tǒng)將提示有語法錯(cuò)誤7、全局變量得存儲(chǔ)類型可以定義為(D)。A)auto或staticB)extern或registerC)auto或externD)extern或static8、定義全局變量時(shí),若變量得得存儲(chǔ)類別缺省,則默認(rèn)得存儲(chǔ)類型就是(C)。A)autoB)registerC)externD)static9、已知:inta,x;則正確得賦值語句就是(C)。A)a=(a[1]+a{2})/2; B)a*=*a+1;C)a=(x=1,x++,x+2); D)a="good";10、已知:inta,*p=&a;則下列函數(shù)調(diào)用中錯(cuò)誤得就是(D)。A)scanf("%d",&a); B)scanf("%d",p);C)printf("%d",a); D)printf("%d",p);11、下述程序得輸出結(jié)果就是(D)。#include<stdio、h>voidmain(){structplex{intx;inty;}cnum[2]={1,3,2,7};printf(“%d”,cnum[0]、y/cnum[0]、x*cnum[1]、x);}A)0B)1C)3D)612、下述程序得輸出結(jié)果就是(B)。#include<stdio、h>voidmain(){union{unsignedcharc;unsignedinti[4];}z;z、i[0]=0x39;z、i[1]=0x36;printf(“%c”,z、c);}A)6B)9C)0D)313、下述關(guān)于C語言文件操作得結(jié)論中,(B)就是正確得。A)對文件操作必須先關(guān)閉文件B)對文件操作必須先打開文件C)對文件操作順序無要求D)對文件操作前必須先測試文件就是否存在,然后再打開文件14、以下程序得輸出結(jié)果就是(C)。main{charch[3][4]={"123","456","78"},*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A)123456780B)123456780C)12345678D)14715、對于所定義得二維數(shù)組a[2][3],元素a[1][2]就是數(shù)組得第(D)個(gè)元素。A)3B)4C)5D)6賦值運(yùn)算符得優(yōu)先級低于關(guān)系運(yùn)算符(√)。條件運(yùn)算符得結(jié)合方向就是“自左向右”(×)。C語句得循環(huán)語句中循環(huán)體如果包含一個(gè)以上得語句,必須以復(fù)合語句形式出現(xiàn)(√)。C程序中得函數(shù)不能嵌套調(diào)用,但可嵌套定義(×)。若自定義函數(shù)要求函數(shù)名返回一個(gè)值,則該函數(shù)體中必須要有return語句(×)。當(dāng)形式參數(shù)為指針變量名時(shí),實(shí)際參數(shù)可為指針變量名、數(shù)組名或其它類型變量得首地址(√)。若有說明:staticinta[3][4];,則數(shù)組a中各數(shù)組元素可在程序得編譯階段得到初值0(√)。若用數(shù)組名作為函數(shù)調(diào)用時(shí)得實(shí)參,則實(shí)際上傳遞給形參數(shù)組得就是數(shù)組得第一個(gè)元素得值(√)。利用指針與結(jié)構(gòu)體類型可以構(gòu)成表、樹等復(fù)雜得數(shù)據(jù)結(jié)構(gòu)(√)。10、共用體變量得地址與它得各成員得地址都就是同一地址(√)。11、printf函數(shù)中得“%0”格式參數(shù)表示用來輸出unsigned型數(shù)據(jù)(×)。12、在一個(gè)C程序中,所有要使用得變量與要調(diào)用得函數(shù)都必須在main()函數(shù)中定義 (×)。13、賦值運(yùn)算符得結(jié)合性就是“自右至左” (√)。14、一個(gè)C程序可以由多個(gè)源程序文件組成 (√)。15、dowhile語句構(gòu)成得循環(huán),當(dāng)while語句中得表達(dá)式得值為零時(shí)結(jié)束循環(huán) (√)。三、寫出下面各程序得運(yùn)行結(jié)果1、#includestdio、hmain(){inti=0,j=0,k=0,m;for(m=0;m4;m++)switch(m){case0:i=m++;case1:j=m++;case2:k=m++;case3:m++;}printf(“\n%d,%d,%d,%d”,i,j,k,m);}2、#includestdio、hmain(){inti=1;while(i=15)if(++i%3!=2)continue;elseprintf(“%d”,i);}3、#include<stdio、h>add1(inta[],intn){inti;for(i=0;i<n;i++)a[i]++;}main{staticintarray[]={0,1,2,3,4,5,6,7,8,9};intj;add1(array,10);for(j=0;j<10;j++)printf(“%d”,array[j]);}4、uniondata{longw;floatx;inty;charz;}beta;main(){beta、w=123456;beta、y=888;beta、x=3、14;beta、z=’x’;printf(“%c”,beta、y);}5、#include<string、h>typedefstructstudent{charname[10];longsno;floatscore;}STU;main(){STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;d=a;if(strcmp(a、name,b、name)>0)d=b;if(strcmp(c、name,d、name)>0)d=c;printf("%ld%s\n",d、sno,p>name);}四、程序填空1、以下程序就是從鍵盤上輸入若干個(gè)學(xué)生得成績,統(tǒng)計(jì)并輸出最高成績與最低成績,當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入,請將缺省語句填上。main(){floatx,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(①){if(②)amax=x;if(③)amin=x;scanf(“%f”,&x);}printf(“amax=%f,amin=%f\n”,amax,amin);}2、下面得程序就是用指針來交換兩個(gè)數(shù)據(jù),請將缺省語句填上。voidexchange(int*p,int*q){intt;t=*p;*p=*q;*q=t;}main{inta,b,*x,*y;a=10;b=20;x=&a;①②printf(“%d%d\n”,*x,*y);}五、程序設(shè)計(jì)題有10個(gè)學(xué)生,每個(gè)學(xué)生得數(shù)據(jù)包括學(xué)號、姓名、3門課得成績,從鍵盤輸入10個(gè)學(xué)生數(shù)據(jù),要求打印出3門課總平均成績,以及最高分得學(xué)生得數(shù)據(jù)(包括學(xué)號、姓名、3門課得成績、平均分?jǐn)?shù)。2、用自定義函數(shù)與數(shù)組求n個(gè)數(shù)得平均值,并用主函數(shù)調(diào)用參考答案:一、單項(xiàng)選擇題1、B2、D3、C4、C5、A6、A7、D8、C9、C10、D11、D12、B13、B14、C15、D二、判斷題(√)2、(×)3、(√)4、(×)5、(×)√)7、(√)8、(√)9、(√)10、(√)11、(×)12、(×)13、(√)14、(√)15、(√)三、寫出程序得運(yùn)行結(jié)果1、答案就是:0,1,2,52、答案就是:25811143、答案就是:123456789104、答案就是:x5、答案就是:2002Shangxian四、程序填空1、答案就是:①x=0②xamax③xamin2、答案:①y=&b;②exchange(x,y);五、程序設(shè)計(jì)題1、參考答案:#defineN10structstudent{charnum[6];charname[8];intscore[4];floatave;}stu[N];main{inti,j,max,maxi,sum;floataverage;/*輸入*/for(i=0;i<N;i++){printf(“\nInputscoresofstudent%d,\n”,i+1);printf(“No、:”);scanf(“%s”,stu[i]、num);printf(“name:”);scanf(“%s”,stu[i]、name);for(j=0;j<3;j++){printf(“score%d:”,j+i);scanf(“%d”,&stu[i]、score[j]);}}/*計(jì)算*/average=0;max=0;maxi=0;for(i=0;i<N;i++){sum=0;for(j=0;j<a;j++)sum+=stu[i]、score[j];stu[i]、avr=sum/3、0;average+=stu[i]、avr;if(sum>max){max=sum;maxi=i;}}average/=N;/*打印*/printf(“NO、namescore1score2score3average\n”);for(i=0;i<N;i++){printf(“%s%10s”,stu[i]、num,stu[i]、name);for(j=0;j<3;j++)printf(“%9d”,stu[i]、score[j]);printf(“%8、2f\n”,stu[i]、avr);}printf(“average=%6、2f\n”,average);printf(“Thehighestscoreis:%s,scoretotal:%d”,stu[maxi]、name,max);}2、參考答案:floataverage(floata[],intn){floataver=0;intj;for(j=0;j<n;j++)aver=aver+a[j];aver=aver/n;returnaver;}main{floatx[10],y;intj;for(j=0;j<10;j++)scanf(“%f”,&x[j]);y=average(x,10);printf(“aver=%、2f\n”,y);}復(fù)習(xí)B:一、單項(xiàng)選擇題1、逗號表達(dá)式2,4,6,8得值為(d)。A)2B)4C)6D)82、以下選項(xiàng)中非法得表達(dá)式就是(d)A)0<=x&&x<100B)i=j==0C)(char)(65+3)D)x+1=x+13、若定義floata;現(xiàn)要從鍵盤輸入a得數(shù)據(jù),其整數(shù)位為3位,小數(shù)位為2位,則選用(a)。A)scanf(“%f”,&a);B)scanf(“%5、2f”,a);C)scanf(“%6、2f”,&a);D)scanf(“%f”,a);4、下列程序得運(yùn)行結(jié)果就是(d)main{inta=3,b=2,c=1,k=4;printf("%d\n",k<a?k:c<b?c:a);} A)4 B)3 C)2 D)15、以下程序中,while循環(huán)得循環(huán)次數(shù)就是(d)。main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}A)1 B)10 C)6 D)死循環(huán),不能確定次數(shù)6、執(zhí)行語句:for(i=1;i++<4;)后;變量i得值就是(c)。A)3 B)4 C)5 D)不定7、有關(guān)函數(shù)參數(shù),下列說法不正確得就是(c)。A)實(shí)參可以將數(shù)據(jù)傳給形參;B)實(shí)參與形參就是不同得變量;C)形參可以將數(shù)據(jù)傳給實(shí)參;D)實(shí)參與形參必須個(gè)數(shù)相等,類型一致。8、C語言中,變量與函數(shù)具有兩個(gè)屬性就是(b)。A)作用域與生存期B)類型與存儲(chǔ)類別C)作用域與類型D)作用域與存儲(chǔ)類別9、說明語句“int(*p)():”得含義就是(c)。A)p就是一個(gè)指向一維數(shù)組得指針變量B)p就是指針變量,指向一個(gè)整型數(shù)據(jù)C)p就是一個(gè)指向函數(shù)得指針,該函數(shù)得返回值就是一個(gè)整型D)以上都不對10、說明語句"int*(*p);"得含義就是(d)。A)p就是一個(gè)指向int型數(shù)組得指針B)p就是指針變量,它構(gòu)成了指針數(shù)組C)p就是一個(gè)指向函數(shù)得指針,該函數(shù)得返回值就是一個(gè)整型D)p就是一個(gè)指向函數(shù)得指針,該函數(shù)得返回值就是一個(gè)指向整型得指針11、下述程序得執(zhí)行結(jié)果就是(a)。#include<stdio、h>unionun{inti;charc[2];};voidmain(){unionunx;x、c[0]=10;x、c[1]=1;printf(“\n%d”,x、i);}A)266B)11C)265D)13812、若程序中有如下得說明與定義:structex{intx,y;}…structexx,y;則會(huì)發(fā)生得情況就是(a)。A)編譯時(shí)錯(cuò)B)程序能順利編譯、連接、執(zhí)行C)能順利編譯與連接,但不能執(zhí)行D)能通過編譯,但連接出錯(cuò)13、C語言可以處理得文件類型就是(b)。A)文本文件與數(shù)據(jù)文件B)文本文件與二進(jìn)制文件C)數(shù)據(jù)文件與二進(jìn)制文件D)數(shù)據(jù)代碼文件14、下面得for語句(c)。for(x=0,y=0;(y!=123)&&(x4);x++)A)就是無限循環(huán) B)循環(huán)次數(shù)不定 C)循環(huán)執(zhí)行4次 D)循環(huán)執(zhí)行3次15、若有如下說明:struct{charch;inti;doublex;}arr[2][3]={{‘a(chǎn)’,1,3、45},{‘b’,2,7、89},{‘c’,3,1、93}};則表達(dá)式(b)得值為2。A)arr[0][1]、chB)arr[0][1]、iC)arr[0][0]、iD)arr[0][2]、i二、判斷題1、條件運(yùn)算符得結(jié)合方向就是“自左向右”(×)。2、switch語句中每一個(gè)case得常量表達(dá)式得值必須互不相同(√)。3、循環(huán)語句中循環(huán)體允許包含一個(gè)以上得語句,可以不以復(fù)合語句形式出現(xiàn)(×)。4、構(gòu)成C程序得源文件之間以及函數(shù)與函數(shù)之間,相互位置可以任意(√)。5、C程序中得函數(shù)不能嵌套定義,但可嵌套調(diào)用(√)。6、從變量得作用域角度來分,可以分為全局變量與局部變量(√)。7、從終端輸入一個(gè)字符串給字符數(shù)組,該字符串兩端不必用雙引號括起來(√)。8、若有說明:inta[][4]={0,0};,則只有a[0][0]與a[0][1]可得到初值0,其余元素均得不到初值0(√)。9、利用指針與結(jié)構(gòu)類型不能構(gòu)成更復(fù)雜得數(shù)據(jù)結(jié)構(gòu)(×)。10、共用體類型可以出現(xiàn)在結(jié)構(gòu)體類型定義中(√)。11、當(dāng)一個(gè)case語句末包含break語句時(shí),執(zhí)行完該case語句后跳出switch結(jié)構(gòu)(√)。12、宏定義中得標(biāo)識符可以用大寫字母,也可以用小寫字母(×)。13、dowhile語句構(gòu)成得循環(huán),當(dāng)while語句中得表達(dá)式得值為非零時(shí)結(jié)束循環(huán)(×)。14、用“%”作求余運(yùn)算時(shí),該運(yùn)算符兩側(cè)均應(yīng)為整型數(shù)據(jù)(√)。15、一個(gè)逗號表達(dá)式可以與另一個(gè)表達(dá)式組成一個(gè)新得逗號表達(dá)式(√)。三、寫出程序得運(yùn)行結(jié)果1、#includestdio、hmain(){inta=1,b=3,c=5,d=4;if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;printf(“x=%d”,x);}2、#includestdio、hmain(){intk,j,m;for(k=5;k=1;k){m=0;for(j=k,j=5;j++)m+=k*j;}printf(“m=%d\n”,m);}3、#include<stdio、h>main(){unionExa{struct{inta;intb;}out;intc;intd;}e;e、c=1;e、d=2;e、out、a=e、c*e、d;e、out、b=e、c+e、d;printf("%d%d",e、out、a,e、out、b);}4、#include“stdio、h”main(){inta[]={1,2,3,4},i,j,s=0;j=1;for(i=3;i>=0;i){s=s+a[i]*j;j=j*10;}printf(“s=%d\n”,s);}5、#include"stdio、h"#include"string、h"main(){chars1[]="somthings";chars2[]="test";chars3[]="good"; printf("%s\n",strcat(strcpy(s1,s2),s3));}四、程序填空1、下面程序輸出100到200之間得素?cái)?shù),每行輸出10個(gè)素?cái)?shù),請將缺省語句填上,使算法完整。#include“math、h”main(){intm,k,i,n=0;for(m=101;m=200;m=m+2){if(①)printf(“\n”);k=sqrt(m);for(i=2,i=k;i++)if(②)break;if(i=k+1){printf(“%d”,m);n=n+1;}}}2、一個(gè)函數(shù)days,實(shí)現(xiàn)求某月某日就是該年得第多少天。由主函數(shù)將年、月、日傳遞給days函數(shù),計(jì)算后將日數(shù)傳回主函數(shù)輸出,請將缺省語句填上,使算法完整。structy_m_d{intyear;intmonth;intday;}date;main{intdays(int,int,int);inti,day_sum;printf(“inputyear,month,day:”);scanf(“%d,%d,%d”,&date、year,&date、month,&date、day);day_sum=days(①);printf(“\n%d/%disthe%dthdayin%d、”,date、month,date、day,day_sum,date、year);}days(intyear,intmonth,intday){intday_sum,i;intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};②for(i=1;i<month;i++)day_sum+=day_tab[i];day_sum+=day;if((year%4==0&&year%100!=0||year%4==0)&&month>=3)③return(day_sum);}五、程序設(shè)計(jì)題1,學(xué)生得記錄由學(xué)號與成績組成,N名學(xué)生得數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,它得功能就是:把分?jǐn)?shù)最低得學(xué)生數(shù)據(jù)放在h所指得數(shù)組中,注意:分?jǐn)?shù)最低得學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最低得學(xué)生得人數(shù)。#defineN16typedefstruct{charnum[10];ints;}STREC;intfun(STREC*a,STREC*b){…………}main{STRECs[N]={{“GA05”,85},{“GA03”,76},{“GA02”,69},{“GA04”,85},{“GA01”,91},{“GA07”,72},{“GA08”,64},{“GA06”,87},{“GA015”,85},{“GA013”,96},{“GA012,64},{“GA014”,91},{“GA011”,91},{“GA017”,64},{“GA018”,64},{“GA016”,72}; STRECh[N]; inti,n; n=fun(s,h); printf(“The%dlowestscore:\n”,n); for(i=0;i<n;i++)printf(“%d%4d\n”,h[I]、num,h[I]、s);printf(“\n”);}2、從鍵盤輸入一批字符(回車鍵結(jié)束),存入一個(gè)磁盤文件abc、txt中參考答案:一、單項(xiàng)選擇題1、D2、D3、A4、D5、D6、C7、C8、B9、C10、D11、A12、A13、B14、C15、B二、判斷題1、(×)2、(√)3、(×)4、(√)5、(√)6、(√)7、(√)8、(√)9、(×)10、(√)11、(√)12、(×)13、(×)14、(√)15、(√)三、寫出程序得運(yùn)行結(jié)果1、答案就是:x=22、答案就是:m=153、答案就是:484、答案就是:s=12345、答案就是:testgood四、程序填空1、答案就是:①n%10==0②m%i==02、答案就是:①date、year,date、month,date、day②day_sum=0;③day_sum+=1;五、程序設(shè)計(jì)題1、參考答案:STRECfun(STREC*a,char*b){staticSTRECh={“”,1};intk;for(k=0;k<N;k++)if(!strcmp(a[k]、num,b)){h=a[k];break;}returnh;}2、參考答案:main(){FILE*fp;charch;fp=fopen(“abc、txt”,”w”);ch=getchar();while(ch!=’\n’){fputc(fp,ch);ch=getchar;}fclose(fp);}復(fù)習(xí)C:一、單項(xiàng)選擇題1、有定義語句:intx,y;,若值11,變量y得到數(shù)值12,下面四組輸入要通過scanf("%d,%d",&x,&y);語句使變量x得到數(shù)形式中,錯(cuò)誤得就是(A)A)1112<回車>B)11,12<回車>C)11,12<回車>D)11,<回車>12<回車>2、若有語句inta=1,b=2,c=3;則以下值為0得表達(dá)式就是(D)A)’a’&&’b’B)a<=bC)((a>b)||(b<c)D)(!(a+b)==c&&a)3、設(shè)inta=9;則printf(″%d,%d\n″,a,a++);得輸出結(jié)果就是(C)。A)9,10B)10,9C)9,9D)10,104、以下敘述正確得就是(C)。A)可以把define與if定義為用戶標(biāo)識符B)可以把define定義為用戶標(biāo)識符,但不能把if定義為用戶標(biāo)識符C)可以把if定義為用戶標(biāo)識符,但不能把define定義為用戶標(biāo)識符D)define與if都不能定義為用戶標(biāo)識符5、運(yùn)行以下程序后,如果從鍵盤上輸入6514<回車>,則輸出結(jié)果為(A)。main{intm,n;printf("Enterm,n:");scanf("%d%d,&m,&n");while(m!=n){while(m>n)m=n;while(n>m)n=m;}printf("m=%d\n",m);}A)m=3 B)m=2 C)m=1 D)m=06、運(yùn)行下面得程序運(yùn)行后,如果從鍵盤上輸人5,則輸出結(jié)果就是(A)。main{intx;scanf("%d",&x);if(x<5)printf("%d"'x);elseprintf("%d"'x++);}A)3 B)4C)5 D)67、定義函數(shù)時(shí),若函數(shù)得類型缺省,則函數(shù)得默認(rèn)類型就是(D)。A)charB)voidC)floatD)int8、設(shè)有說明int(*prt)[M];其中得標(biāo)識符prt就是(C)。A)M個(gè)指向整型變量得指針B)指向M個(gè)整型變量得函數(shù)指針C)一個(gè)指向具有M個(gè)整型元素得一維數(shù)組得指針D)具有M個(gè)指針元素得一維指針數(shù)組,每個(gè)元素都只能指向整型變量9、已知函數(shù)說明語句:void*fx();則它得含義就是(C)。A)函數(shù)fx得返回值就是一個(gè)空類型得指針B)函數(shù)fx得返回值可以就是任意得數(shù)據(jù)類型C)函數(shù)fx無返回值D)指針fx指向一個(gè)函數(shù),該函數(shù)無返回值10、對于下述定義,不正確得敘述就是(C)。uniondata{inti;charc;floatf;}a,b;A)變量a所占內(nèi)存得長度等于成員f得長度B)變量a得地址與它得各成員地址都就是相同得C)可以在定義時(shí)對a初始化D)不能對變量a賦值,故a=b非法11、C語言庫函數(shù)fgets(str,n,fp)得功能就是(D)。A)從文件fp中讀取長度n得字符串存入B)從文件fp中讀取長度不超過n1得字符串存入str指向得內(nèi)存C)從文件fp中讀取n個(gè)字符串存入str指向得內(nèi)存D)從串str讀取至多n個(gè)字符到文件fp12、下述程序向文件輸出得結(jié)果就是(B)。#include<stdio、h>voidmain(){FILE*fp=fopen(“TEST”,“wb”);fprintf(fp,“%d%5、0f%c%d”,58,76273、0,’’,2278);fclose(fp);}A)58752732278B)5876273、0000002278C)58752732278D)因文件為二進(jìn)制文件而不可讀13、下面程序輸出結(jié)果就是(B)。#defineMAX5inta[MAX],k;main{printf("\n");fun1;fun3;printf("\t");fun2;fun3;}fun1{for(k=0;k<MAX;k++)a[k]=k+k;}fun2{inta[MAX],k;for(k=0;k<5;k++)a[k]=k;}fun3{intk;for(k=0;k<MAX;k++)printf("%3d",*(a+k));}A)0246802468B)0246801234C)0123402468D)012340123414、已知:intx;執(zhí)行下面得程序段后,輸出結(jié)果為(C)。for(x=3;x6;x++)printf((x%2)?“**%d”:“##%d\n”,x);A)**3 B)##3 C)##3 D)**3##4##4**4**4##5**5**5##515、說明語句“int(*r)():”得含義就是(D)。A)r就是一個(gè)指向一維數(shù)組得指針變量B)r就是指針變量,指向一個(gè)整型數(shù)據(jù)C)r就是一個(gè)指向函數(shù)得指針,該函數(shù)得返回值就是一個(gè)整型D)以上都不對二、判斷題1、switch語句執(zhí)行完一個(gè)case后面得語句后,流程控制轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行(√)。2、if語句得條件表達(dá)式必須就是邏輯表達(dá)式(×)。3、C語句得一個(gè)循環(huán)體內(nèi)允許又包含另一個(gè)完整得循環(huán)結(jié)構(gòu)(√)。4、C程序以函數(shù)為單位進(jìn)行編譯(×)。5、由多個(gè)源文件組成一個(gè)程序時(shí),主函數(shù)只能出現(xiàn)在一個(gè)源文件中(×)。6、從變量得作用域角度來分,可以分為靜態(tài)變量與動(dòng)態(tài)變量(√)。7、如果一個(gè)字符數(shù)組中包含一個(gè)以上結(jié)束符’\0’,則遇最后一個(gè)’\0’時(shí)輸出才結(jié)束(√)。8、gets()函數(shù)得作用就是從終端輸入一個(gè)字符串到字符數(shù)組,并且將’\0’也裝入該數(shù)組(√)。9、不能將一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體進(jìn)行輸入與輸出(√)。10、在C編譯中,對枚舉元素按常量處理(√)。11、C程序中得main()函數(shù)必須放在程序得開始部分(×)。12、switch后面括號內(nèi)得表達(dá)式可以就是整型表達(dá)式或字符型表達(dá)式(×)。13、宏定義就是用標(biāo)識符代替一個(gè)字符串,只作簡單得置換,不作語法檢查(√)。14、C語言中,“&”運(yùn)算符作為單目運(yùn)算符時(shí)表示得就是取地址運(yùn)算,作為雙目運(yùn)算符時(shí)表示得就是按位與運(yùn)算(√)。15、dowhile語句構(gòu)成得循環(huán)必須用break語句才能退出(√)。三、寫出程序得運(yùn)行結(jié)果1、main(){inti,j;floats;for(i=7;i4;i){s=0;for(j=i;j3;j)s=s+i*j;}printf(“s=%f\n”,s);}2、#includestdio、hmain(){intk=1;charc=‘A’;do{switch(c++){case‘A’:k++;break;case‘B’:k;case‘C’;k+=2;break;case‘D’:k=k%2;continue;case‘E’:k=k*2;break;default:k=k/3;}k++;}while(c‘F’);printf(“k=%d\n”,k);}3、#include<stdio、h>structscore{intmath;inteng;intp;};structstu{charname[12]; charsex; longStuClass; structscoresub;};main(){structstustudent1={"LiMing",'M',990324,88,80,90}; structstustudent2; student2=student1; student2、name[0]='H'; student2、name[1]='u'; student2、StuClass=990325; student2、sub、math=83; printf("%s,%c,%ld,%d,%d,%d\n",student2、name, student2、sex,student2、StuClass,student2、sub、math, student1、sub、eng,student2、sub、p);}4、#include“stdio、h”main(){charstr[]=”7a8b9c”;inti;for(i=0;str[i]!=’\0’;i++)if(str[i]>=’0’&&str[i]<=’9’)printf(“%c”str[i]);}5、#include“stdio、h”main(){inta[]={0,2,5,8,12,15,23,35,60,65};intx=15,i,n=10,m;i=n/2+1;m=n/2;while(m!=0){if(x<a[i]){i=im/2;m=m/2;}elseif(x>a[i]){i=im/2;m=m/2;}elsebreak;}printf(“result=%d\n”,i+1);}四、程序填空1、華氏與攝氏得轉(zhuǎn)換公式為:c=5/9*(F32),其中c表示攝氏得溫度,F表示華氏得溫度。要求輸出從華氏0度到華氏300度,每隔20度輸出一個(gè)值。main(){intupper,step;floatfahr=0;celsius;upper=300;step=20;while(①upper){②printf(“%4、0f,%6、1f\n”,fahr,celsius);③;}}答案就是:①fahr②celsius=5/9*(fahr32)③fahr+=step2、下面程序得功能就是從鍵盤輸入10個(gè)整數(shù),去掉一個(gè)最大數(shù)與一個(gè)最小數(shù),然后求剩下得8個(gè)數(shù)得平均值,請?zhí)羁铡?include“stdio、h”voidmain(){intt,a[10],max,min;floataver;for(t=0;t<10;t++)scanf(“%d”,&a[t]);aver=min=max=a[0];for(t=1;t<10;t++){if(__①____)max=a[t];if(min>a[t])②;aver=aver+a[t];}aver=avermaxmin;aver=aver/8、0;printf(“Aver=%5、2f\n”,aver);}五、程序設(shè)計(jì)題1,利用結(jié)構(gòu)類型分別寫出復(fù)數(shù)得加、減得運(yùn)算函數(shù),并在主函數(shù)中調(diào)用這兩函數(shù),求任意兩復(fù)數(shù)得與與差。2,木馬與板凳共33只,共有100只腳,編程求木馬與板凳各有多少只。參考答案:一、單項(xiàng)選擇題1、A2、D3、B4、B5、C6、B7、D8、C9、A10、D11、B12C13、A14、D15、C二、判斷題1、(×)2、(×)3、(√)4、(×)5、(√)6、(×)7、(×)8、(×)9、(√)10、(√)11、(×)12、(√)13、(√)14、(√)15、(×)三、寫出程序得運(yùn)行結(jié)果1、答案就是:s=45、0000002、答案就是:k=13、答案就是:HuMing,M,990325,83,80,904、答案就是:7895、答案就是:result=4四、程序填空1、答案就是:①fahr②celsius=5/9*(fahr32)③fahr+=step2、答案就是:①max<a[t]②min=a[t]五、程序設(shè)計(jì)題1,參考答案:structplex{floatre;floatim;}fx,fy,fz;add{fz、re=fx、re+fy、re;fz、im=fx、im+fy、im;printf(“fx+fy=%5、2f+i*%5、2f\n”,fz、re,fz、im);}sub{fz、re=fx、refy、re;fz、im=fx、imfy、im;printf(“fxfy=%5、2f+i*%5、2f\n”,fz、re,fz、im);}main{printf(“Enterfourreals:\n”);scanf(“%f,%f,%f,%f”,&fx、re,&fy、re,&fy、im);add;sub;mul;div;}2,參考答案:#include<stdio、h>main{intx,y;for(x=0;x<34;x++) for(y=0;y<26;y++) if(3*x+4*y==100&&x+y==33) printf("x=%d\ty=%d\n",x,y);}復(fù)習(xí)D:一、單項(xiàng)選擇題1、下列不正確得轉(zhuǎn)義字符就是(C)A)‘\\’B)‘\’’C)‘074’D)‘\0’2、執(zhí)行intx=3,y=2;后,則表達(dá)式x=(y==3)得值就是(B)。A)0B)1C)2D)33、設(shè)charx='a';則printf("x=%c,y=%c\n",x,97);得輸出就是(D)。A)x=a,y=97B)x=97,y=aC)x=97,y=97D)x=a,y=a4、若有定義:floatw;inta,b;則合法得switch語句就是(C)。A)switch(w) {case1、0:printf("*\n"); case2、0:printf("**\n"); } B)switch(a);{case1printf("*\n");case2printf("**\n");}C)switch(b) {case1:printf("*\n"); default:printf("\n"); case1+2:printf("**\n"); } D)switch(a+b);{case1:printf("*\n");case2:printf("**\n");default:printf("\n");}5、以下程序得輸出結(jié)果就是(D)。main{inta,b;for(a=1,b=1;a<=100;a++){if(b>=10)break;if(b%3==1){b+=3;continue;}}printf("%d\n",a);}A)101 B)6 C)5 D)46、函數(shù)調(diào)用語句“f((el,e2),(e3,e4,e5));”中參數(shù)得個(gè)數(shù)就是(B)。A)1B)2C)4D)57、選擇出正確得說明語句(D)。A)inta['a']; B)inta[3,4] C)inta[][]; D)int(*a)[10];8、已知:chars[100];inti;則在下列引用數(shù)組元素得語句中,錯(cuò)誤得表示形式就是(D)。A)s[i+10] B)*(s+i) C)*(i+s) D)*((s++)+i)9、對于如下得結(jié)構(gòu)體定義,若對變量person得出生年份進(jìn)行賦值,(C)就是正確得賦值語句。structdate{intyear,month,day;};structworklist{charname[20];charsex;structdatebirthday;}person;A)year=1976B)birthday、year=1976C)person、birthday、year=1976D)person、year=197610、若fp就是指向某文件得指針,且已讀到文件得末尾,則表達(dá)式feof(fp)得返回值就是(C)。A)EOFB)–1C)非零值D)NULL11、已知一個(gè)文件中存放若干學(xué)生檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structst{charnum[10];intage;floats[5];};定義一個(gè)數(shù)組:structsta[10];假定文件已正確打開,(B)不能正確地從文件中讀入10名學(xué)生數(shù)據(jù)到數(shù)組a中。A)fread(a,sizeof(structst),10,fp);B)for(i=0;i<10;i++)fread(a[i],sizeof(structst),1,fp);or(i=0;i<10;i++)fread(a+i,sizeof(structst),1,fp);or(i=0;i<5;i+=2)fread(a+i,sizeof(structst),2,fp);12、以下程序得輸出結(jié)果就是(C)。main{charch[3][4]={"123","456","78"},*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A)123456780B)123456780C)12345678D)14713、已知:intx=6;執(zhí)行語句“x+=x=x*x;”后,x得值為(B)。A)36 B)60 C)60 D)2414、下述程序得輸出結(jié)果就是(B)。#include<stdio、h>voidmain(){structst{intx;unsigneda:2;unsignedb:2;};printf(“\n%d”,sizeof(structst));}A)2、5B)3C)2D)不確定15、在下程序得輸出結(jié)果就是(C)。#include<stdio、h>#defineSUM(x)8、88+x#definePRT(y)printf(“%d”,(int)(y))#defineprt(y);PRT(y);putchar(‘\n’)voidmain(){intx=3;prt(SUM(3)*x);}A)11B)12C)17D)有語法錯(cuò)誤,無輸出二、判斷題1、switch語句就是多分支選擇語句(√)。2、條件表達(dá)式中三個(gè)表達(dá)式得類型可以不同(√)。3、C語句得一個(gè)循環(huán)體內(nèi)不允許又包含另一個(gè)完整得循環(huán)結(jié)構(gòu)(×)。4、C函數(shù)體一般由說明語句與執(zhí)行語句兩部分組成(√)。5、C程序以源程序?yàn)閱挝贿M(jìn)行編譯(√)。6、在函數(shù)內(nèi)部或復(fù)合語句內(nèi)部定義得變量稱為內(nèi)部變量,就是局部變量(√)。7、C語言規(guī)定只能逐個(gè)引用一維字符數(shù)組得元素而不能一次引用整個(gè)數(shù)組(×)。8、如果一個(gè)字符數(shù)組中包含一個(gè)以上結(jié)束符’\0’,則遇第一個(gè)’\0’時(shí)輸出就結(jié)束(√)。9、可以定義一個(gè)指針變量,用來指向一個(gè)結(jié)構(gòu)體變量(√)。10、不能用typedef聲明新得類型名來代替已有得類型名(×)。11、執(zhí)行C語言程序時(shí),總就是從第一個(gè)定義得函數(shù)開始執(zhí)行(×)。12、當(dāng)switch語句中得表達(dá)式得值與任何一個(gè)case語句中得常量表達(dá)式都不相等時(shí),則執(zhí)行default后面得語句(√)。13、在if語句與else語句得嵌套中,else語句總就是與靠近它最近得if語句配對(√)。14、for循環(huán)中,當(dāng)循環(huán)條件表達(dá)式為真時(shí)結(jié)束循環(huán)(×)。15、宏定義不就是C語句,因此不必在行末加“;”(√)。三、寫出程序得運(yùn)行結(jié)果1、#includestdio、hmain(){chari,j;for(i=‘0’,j=‘9’;ij;i++,j)printf(“%c%c”,i,j);printf(“\n”);}2、#includestdio、hmain(){inta=2,b=1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(“c=%d\n”,c);}3、#include<stdio、h>unionmemb{floatv; intn; charc;};main(){unionmembtag,Sval;tag、n=673;Sval=tag;printf("Svalis:%d",Sval、n);}4、#include"stdio、h"main{inti,j,a[10];for(i=1;i<=10;i++) {a[i]=1;for(j=i1;j>=2;j) a[j]=a[j]+a[j1]; if(i==4) break;} for(j=1;j<=i;j++) printf("%d",a[j]);}5、#defineEXCH(a,b){intt;t=a;a=b;b=t;}main(){ intx=5,y=9; printf("x=%d,y=%d,",x,y); EXCH(x,y); printf("x=%d,y=%d\n",x,y);}四、程序填空1、下面得程序輸出3到300之間得所有素?cái)?shù),請將缺省得語句填上,使算法完整。#includestdio、hmain(){inti,j;for{i=3;①;i++}{for(j=2;②;j++)if(③)break;if(j==i)printf(“%4d”,i);}}定義一個(gè)結(jié)構(gòu)體變量(包括年、月、日)。計(jì)算該日在本年中就是第幾天,注意閏年問題,請將缺省得語句填上,使算法完整。struct{intyear;intmonth;intday;}date;main{inti,days;intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};printf(“Inputyear,month,day:”);scanf(“%d,%

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論