c語言基礎練習題及復習資料_第1頁
c語言基礎練習題及復習資料_第2頁
c語言基礎練習題及復習資料_第3頁
c語言基礎練習題及復習資料_第4頁
c語言基礎練習題及復習資料_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

c語言基礎練習題及答案一、單項選擇題1.C語言源程序文件經過C編譯程序編譯連接之后生成一個后綴為__C____的文件。A、”.c”B、“.obj”C、“.exe”D、“.bas”2.以下選項中不正確的整型常量是_C____。A、12LB、-10C、1,900D、123U3.表達式___C___的值是0。A、3%5B、3/5.0C、3/5D、3<54.表達式!(x>0||y>0)等價于__D___。A、!x>0||!y>0B、!(x>0)||!(y>0)C、!x>0&&!y>0D、!(x>0)&&!(y>0)5.若變量已正確定義并賦值,表達式__D____不符合C語言語法。A、4&&3B、+aC、a=b=5D、int(3.14)6.若變量已正確定義,執(zhí)行語句scanf("%d%d%d",&k1,&k2,&k3);時,___B___是正確的輸入。A、2030,40B、203040C、20,3040D、20,30,407.執(zhí)行語句printf(”__D____”,2);將得到出錯信息。A、%dB、%oC、%xD、%f8.設變量定義為“ints[]="hello\nworld\n";”,則數組s中有__B____個元素。A、12B、13C、14D、159.設變量定義為“inta[2]={1,3},*p=&a[0]+1;”,則*p的值是___B__。A、2B、3C、4D、&a[0]+110.若變量已正確定義并賦值,表達式-k++等價于__A____。A、-(k++)B、(-k)++C、-(k+1)D、-(++k)11.在C語言程序中,在函數內部定義的變量稱為__D____。A、全局變量B、全程變量C、外部變量D、內部變量12.若x是整型變量,表達式(x=10.0/4.0)的值是__D___。A、2.5B、2.0C、3D、213.對于以下的變量定義,表達式__A____是正確的。structnode{chars[10];intk;}p[4];A、p->k=2B、p[0].s=“abc”C、p[0]->k=2D、p->s=‘a’14.下列運算符中,優(yōu)先級從高到低依次為__D___。A、&&,!,||B、||,&&,!C、&&,||,!D、!,&&,||15.下列程序段的輸出結果是__B___。/r/*p,*q,k=1,j=10;p=&j;q=&k;p=q;(*p)++;printf("%d",*q);A、1B、2C、10D、1116.以下各選項企圖說明一種新的類型名,其中正確的是水量(C)A)typedefv1int;B)typedefv2=int;C)typedefv1intv3;D)typedefv4:int;17.以下選項中,非法的字符常量是(C)A)‘\t’B)‘\17’C)“n”D)‘\xaa’18.以下程序的輸出結果是(C)main(){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);}A)258B)741C)852D)36919.以下程序的輸出結果是(B)main(){charst[20]=“hello\0\t\\\”;printf(%d%d\n”,strlen(st),sizeof(st));}A)99B)520C)1320D)202020.以下程序的輸出結果是(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)101B)6C)5D)421.以下程序的輸出結果是(D)unionmyun{struct{intx,y,z;}u;/r/k;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(%d\n”,a.u.x);}A)4B)5C)6D)022.以下程序段的輸出結果是(A)chars[]="\\141\141abc\t";printf("%d\n",strlen(s));A)9B)12C)13D)1423.以下程序的輸出結果是(B)main(){charch[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",ch[1]);}A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"24.不合法的main函數命令行參數表示形式是(C)A)main(inta,char*c[])B)main(intarc,char**arv)C)main(intargc,char*argv)D)main(intargv,char*argc[])25.有以下程序main(){char*s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結果是(C)A)n,twoB)t,oneC)w,oneD)o,two26.設有如下說明typedefstruct{intn;charc;doublex;}STD;則以下選項中,能正確定義結構體數組并賦初值的語句是(A)A)STDtt[2]={{1,'A',62},{2,'B',75}};B)STDtt[2]={1,"A",62},2,"B",75};C)structtt[2]={{1,'A'},{2,'B'}};D)structtt[2]={{1,"A",62.5},{2,"B",75.0}};27.若變量c為char類型,則能正確判斷出c為小寫字母的表達式是(D)。A)'a'<=c<='z'B)(c>='a')||(c<='z')C)('a'<=c)and('z'>=c)D)(c>='a')&&(c<='z')二、填空題1.設ch是字符型變量,判斷ch為英文字母的表達式是:(ch>=’A’&&ch,=’Z’)||(ch>=’a’&&ch<=’z’)__。2.計算下列分段函數的if語句是_if(x>0)y=1;elseif(x=0)y=0;elsey=-1;___。1x>0y=0x=0-1x<03.表達式!!5的值是__1____。4.下列程序段的輸出結果是___12___。printf("%xn",(0x19<<1)&0x17);5.下列程序段的輸出結果是__k=4s=6___。/r/k,s;for(k=0,s=0;k<10;k++)if(s>k)break;elses+=k;printf("k=%ds=%d",k,s);6.下列程序段的輸出結果是__15___。#defineMIN(x,y)(x)<(y)?(x):(y)printf("%d",10*MIN(10,15));7.下列程序在運行時可能會出錯,原因是__指針變量s未賦初值____。#includevoidmain(){char*s;gets(s);puts(s);}8.下列程序段的輸出是___60__。#includeintf(intm){staticintk=0;ints=0;for(;k<=m;k++)s++;returns;}voidmain(){ints1,s2;s1=f(5);s2=f(3);printf("%d%d\n",s1,s2);}9.下列程序段的輸出結果是__fgh___。char*st[]={"abcd","efgh","ijkl","mnop"};printf("%s",*(st+1)+1);10.用typedef定義一個含10個元素的整型數組ARR。typedefintARR[10];11.以下程序調用findmax函數返回數組中的最大值,請?zhí)羁?。findmax(int*a,intn){int*p,*s;for(p=a,s=a;p-aif(*p>*s)s=p;return(*s);}main(){intx[5]={12,21,13,6,18};printf("%d\n",findmax(x,5));}三、程序(段)填空題1.設變量x,y,z已正確定義與賦值,請仔細閱讀程序段A,然后在程序段B中填入正確的內容,使程序段A與程序段B有相同的功能。程序段A程序段Bx=x+y;y=x-y;x=x-y;z=x+y;z=x;x=y;y=z;z=x+y;2.請仔細閱讀函數f1,然后在函數f2中填入正確的內容,使函數f1與函數f2有相同的功能。char*f1(chars[],chart[]){intk;for(k=0;t[k]!='';k++)s[k]=t[k];s[k]='';returns;}char*f2(char*s,char*t){char*p=s;while((*p++=*t++)!='');returns;}===========================================================一、單項選擇題1.___D___是合法的用戶自定義標識符。A、b-bB、floatC、D、_isw2.若變量已正確定義并賦值,表達式___B___不符合C語言語法。A、a*b/c;B、3.14%2C、2,bD、a/b/c3.___C__是不正確的字符常量。A、'n'B、'1'C、"a"D、'101'4.在C程序中,用___B__表示邏輯值“真”。A、1B、非0的數C、非1的數D、大于0的數5.__C____把x、y定義成float類型變量,并賦同一初值3.14。A、floatx,y=3.14;B、floatx,y=2*3.14;C、floatx=3.14,y=x=3.14;D、floatx=y=3.14;6.若變量已正確定義,表達式___C___的值不是2。A、2&3B、1<<1C、a==2D、1^37.若變量已正確定義,語句“if(a>b)k=0;elsek=1;”與__C____等價。A、k=(a>b)?1:0;B、k=a>b;C、k=a<=b;D、a<=b?0:1;8.設變量定義為“inta,b;”,執(zhí)行下列語句時,輸入_D____,則a與b的值都是10。scanf("a=%d,b=%d",&a,&b);A、1010B、10,10C、a=10b=10D、a=10,b=109.下列程序的輸出結果是__D___。fun(inta,intb,intc){c=a*b;}voidmain(){intc;fun(2,3,c);printf(”%dn”,c);}A、0B、1C、6D、無法確定10.在C程序中,若對函數類型未加說明,則函數的隱含類型為__A___。A、intB、doubleC、voidD、char11.表達式strlen(”hello”)的值是___B____。A、4B、5C、6D、712.設變量定義為“inta[4];”,則表達式__D____不符合C語言語法。A、*aB、a[0]C、aD、a++13.設變量定義為“intx,*p=&x;”,則&*p相當于__A___。A、pB、*pC、xD、*&x14.若變量已正確定義,_A___不能使指針p成為空指針。A、p=EOFB、p=0C、p=’’D、p=NULL15.對于以下的變量定義,表達式__D____不符合C語言語法。structnode{intlen;char*pk;}x={2,"right"},*p=&x;16.有如下程序/r/runc(inta,intb){return(a+b);}main0{intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r);}該程序的輸出的結果是(D)A)12B)13C)14D)1517.對于基類型相同的兩個指針變量之間,不能進行的運算是(C)A)<B)=C)+D)-18.有如下程序longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main0{printf(“%d\n”,fib(3));該程序的輸出結果是(B)A}2B}4C}6D}819.有如下定義structperson{charname[9];intage;};strictpersonclass[10]={“Johu”,17,“Paul”,19“Mary”,18,“Adam16,};根據上述定義,能輸出字母M的語句是(D)A)prinft(“%c\n”,class[3].mane);B)pfintf(“%c\n”,class[3].name[1]);C)prinft(“%c\n”,class[2].name[1]);D)printf(“%^c\n”,class[2].name[0]);20.以下所列的C語言常量中,錯誤的是(B)A)0xFFB)1.2e0.5C)2LD)‘\72’21.有以下程序段/r/k=0while(k=1)k++;while循環(huán)執(zhí)行的次數是(A)A)無限次B)有語法錯,不能執(zhí)行C)一次也不執(zhí)行D)執(zhí)行1次22.以下程序的輸出結果是(C)A)0B)29C)31D)無定值fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(“%d”,a);}23.下列程序段的輸出結果是(A)A)2143B)1212C)1234D)2112voidfun(int*x,int*y){printf(“%d%d”,*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf(“%d%d”,x,y);}24.當調用函數時,實參是一個數組名,則向函數傳送的是(B)A)數組的長度B)數組的首地址C)數組每一個元素的地址D)數組每個元素中的值25.以下程序的輸出結果是(A)A)1B)2C)3D)4longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf(“%ld\n”,fun(3));}26.以下程序的輸出結果是(B)A)16B)2C)9D)1#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf(“d\n”,a);}27.以下函數返回a所指數組中最小的值所在的下標值fun(int*a,intn){inti,j=0,p;p=j;for(i=j;iif(a[i]return(p);}在下劃線處應填入的是(D)A)i=pB)a[p]=a[i]C)p=jD)p=i二、填空題1.表示“x≥y≥z”的C表達式是___x>=y&&y>=z____。2.下列程序段的輸出是__1____。printf("%on",010<<1^1);3.下列程序段的輸出是__6,90____。intk;floats;for(k=0,s=0;k<7;k++)s+=k/2;printf("%d,%fn",k,s);4.下列程序段的輸出是__5,25_____。#definef(a,b,x)a*x+bprintf("%d,%dn",f(3,2,1),f(6,5,f(3,2,1)));5.下列程序段的輸出是_*#*#____。main(){intk;for(k=1;k<5;k++){if(k%2)printf("*");elsecontinue;printf("#");}}6.下列程序段的輸出是__58___。#include/r/f(intx){staticy=1;y++;x+=y;returnx;}voidmain(){intk;k=f(3);printf("%d%dn",k,f(k));}7.下列程序段的輸出是___5__。/r/*p,*q,k=5,j=6;q=&k;p=q;q=&j;printf("%d",*p);8.函數voidf(chars[],chart[]){intk=0;while(s[k]=t[k])k++;}等價于voidf(char*s,char*t){while(_*s++=*t++____);}9.下列程序段的輸出是_ne,s____。char*a[2]={"one","two"},**p=a;printf("%s,",*(p++)+1);printf("%cn",**p-1);10.下列程序編譯后生成t.exe,運行tinputoutputzoooil的輸出結果是__zoo___。voidmain(intargc,char*argv[]){intk;char*p=argv[1];for(k=2;kif(strcmp(argv[k],p)>0)p=argv[k];printf("%sn",p);}11.下列程序調用swap函數交換a與b的值,并輸出交換后的a與b的值。程序的輸出結果是:Afterswap5,3。voidmain(){inta=3,b=5;swap(&a,&b);printf("Afters,%d",a,b);}swap(int*p,int*q){intt;t=*p;;*p=*q;*q=t;}一、選擇題((1)-(40)題每題1分,(41)-(50)題每題2分,共60分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)計算機的存儲器完整的應包括A)軟盤、硬盤B)磁盤、磁帶、光盤C)內存儲器、外存儲器D)RAM、ROM(2)計算機中運算器的作用是A)控制數據的輸入/輸出B)控制主存及輔存間的數據交換C)完成各種算術運算與邏輯運算D)協(xié)調與指揮整個計算機系統(tǒng)的操作(3)軟磁盤處于寫保護狀態(tài)時,其中記錄的信息A)絕對不會丟失B)不能被擦除,但能追加新信息C)不能通過寫磁盤操作被更新D)不能以常規(guī)方式被刪除,但可以通過操作系統(tǒng)的格式化功能被擦除(4)光盤根據基制造材料與記錄信息的方式不同,一般可分為A)CD、VCDB)CD、VCD、DVD、MP3C)只讀光盤、可一次性寫入光盤、可擦寫光盤D)數據盤、音頻信息盤、視頻信息盤(5)在計算機系統(tǒng)中,可執(zhí)行程序是A)源代碼B)匯編語言代碼C)機器語言代碼D)ASCII碼(6)計算機軟件系統(tǒng)包括A)操作系統(tǒng)、網絡軟件B)系統(tǒng)軟件、應用軟件C)客戶端應用軟件、服務器端系統(tǒng)軟件D)操作系統(tǒng)、應用軟件與網絡軟件(7)目前,一臺計算機要連入Internet,必須安裝的硬件是A)調制解調器或網卡B)網絡操作系統(tǒng)C)網絡查詢工具D)WWW瀏覽器(8)在多媒體計算機系統(tǒng)中,不能存儲多媒體信息的是A)光盤B)磁盤C)磁帶D)光纜(9)要將當前盤當前目錄下一個文本文件內容顯示在屏幕上,正確的命令形式是(10)下列更改文件名的命令中正確的是A)RENA:file1C:F1B)RENAMEA:A:file1C:F1C)RENA:file1F1D)RENA:file1\SUB\F1(11)已知A盤為DOS系統(tǒng)啟動盤,只有A:\DOS下有自動批處理文件,其中內容為:CD\DOSMDUSERCDUSER由A盤啟動DOS系統(tǒng)后,A盤的當前目錄是A)\DOSB)\DOS\USERC)\D)\USER(12)MS-DOS是A)分時操作系統(tǒng)B)分布式操作系統(tǒng)C)單用戶、單任務操作系統(tǒng)D)單用戶、多任務操作系統(tǒng)(13)在Windows操作系統(tǒng)中,不同文檔之間互相復制信息需要借助于A)剪切板B)記事本C)寫字板D)磁盤緩沖器(14)在Windows操作系統(tǒng)中A)同一時刻可以有多個活動窗口B)同一時刻可以有多個應用程序在運行,但只有一個活動窗口C)同一時刻只能有一個打開的窗口D)DOS應用程序窗口及Windows應用程序窗口不能同時打開著(15)下列敘述中正確的是A)所有DOS應用程序都可以在Windows操作系統(tǒng)中正確運行B)所有DOS應用程序都不能在Windows操作系統(tǒng)中正確運行C)大部分DOS應用程序可以在Windows操作系統(tǒng)中正確運行(16)下列敘述中正確的是A)C語言編譯時不檢查語法B)C語言的子程序有過程與函數兩種C)C語言的函數可以嵌套定義D)C語言所有函數都是外部函數(17)以下所列的C語言常量中,錯誤的是A)0xFFB)1.2e0.5C)2LD)'\72'(18)下列選項中,合法的C語言關鍵字是A)VARB)cherC)integerD)default(19)以下變量x.、y、z均為double類型且已正確賦值,不能正確表示數學式子的C語言表達式是A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z(20)若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是A)-3B)9C)-12D)6(21)設x、y、t均為int型變量,則執(zhí)行語句:x=y=3;t=++x||++y;后,y的值為A)不定值B)4C)3D)1(22)若變量已正確說明為float類型,要通過語句scanf("%f%f%f",&a,&b,&c);給a賦于10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是:A)10<回車>B)10.0,22.0,33.0<回車>22<回車>33<回車>C)10.0<回車>D)1022<回車>22.033.0<回車>33<回車>(23)若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結果是A)11B)10C)9D)8Main0{intn;scanf("%d",&n);if(n++<10)printf("%d\n",n);elseprintf("%d\n",n--);}(24)若a、b、c1、c2、x、y、均是整型變量,正確的switch語句是A)swich(a+b);B)switch(a*a+b*b){case1:y=a+b;break;{case3:case0:y=a-b;break;case1:y=a+b;break;}case3:y=b-a,break;}C)switchaD)switch(a-b){casec1:y=a-b;break{default:y=a*b;breakcasec2:x=a*d;breakcase3:case4:x=a+b;breakdefault:x=a+b;case10:case11:y=a-b;break;}}(25)有以下程序段/r/k=0while(k=1)k++;while循環(huán)執(zhí)行的次數是A)無限次B)有語法錯,不能執(zhí)行C)一次也不執(zhí)行D)執(zhí)行1次(26)以下程序執(zhí)行后sum的值是A)15B)14C)不確定D)0min(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}(27)有以下程序段/r/x=3do{printf("%d",x-=2);}while(!(--x));其輸出結果是A)1B)30C)1-2D)死循環(huán)(28)若變量c為char類型,能正確判斷出c為小寫字母的表達式是A)'a'<=c<='z'B)(c>='a')||(c<='z')C)('a'<=c)and('z'>=c)D)(c>='a')&&(c<='z')(29)以下所列的各函數首部中,正確的是A)voidplay(var:Integer,varb:Integer)B)voidplay(inta,b)C)voidplay(inta,intb)D)Subplay(aasinteger,basinteger)(30)以下程序的輸出結果是A)0B)29C)31D)無定值fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}(31)下列程序段的輸出結果是A)2143B)1212C)1234D)2112voidfun(int*x,int*y){printf("%d%d",*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}(32)下列程序的輸出結果是A)非法B)a[4]的地址C)5D)3main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}(33)下列程序的運行結果是A)63B)36C)編譯出錯D)00voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}(34)下面程序的輸出結果是A)0B)1C)10D)9main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}(35)當調用函數時,實參是一個數組名,則向函數傳送的是A)數組的長度B)數組的首地址C)數組每一個元素的地址D)數組每個元素中的值(36)設有以下說明語句structex{intx;floaty;charz;}example;則下面的敘述中不正確的是A)struct結構體類型的關鍵字B)example是結構體類型名C)x,y,z都是結構體成員名D)structex是結構體類型(37)以下只有在使用時才為該類型變量分配內存的存儲類說明是A)auto與staticB)auto與registerC)register與staticD)extern與register(38)若fp是指向某文件的指針,且已讀到文件末尾,則庫函數feof(fp)的返回值是A)EOFB)-1C)非零值D)NULL(39)以下程序的輸出結果是A)20B)21C)22D)23main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}(40)以下程序的輸出結果是A)1,5,9B)1,4,7C)3,5,7D)3,6,9main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}(41)以下程序的輸出結果是A)18B)19C)20D)21main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%dn",s);}(42)以下程序的輸出結果是A)ABCDB)ABCDC)EFGD)EFGHFGHEFGJKIJKLKLIJOMmain(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",w[k]);}(43)當執(zhí)行下面的程序時,如果輸入ABC,則輸出結果是A)ABC6789B)ABC67C)12345ABC6D)ABC456789#include"stdio.h"#include"string.h"main(){charss[10]="1,2,3,4,5";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}(44)假定以下程序經編譯與連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROGABCDEFGHIJKL<回車>,則輸出結果為A)ABCDEFGB)IJHLC)ABCDEFGHIJKLD)IJKLABCDEFGHmain(intargc,char*argv[])){while(--argc>0)printf("%s",argv[argc]);printf("\n");}(45)以下程序的輸出結果是A)1B)2C)3D)4longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}(46)以下程序的輸出結果是A)16B)2C)9D)1#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}(47)若定義了以下函數:voidf(……){……*p=(double*)malloc(10*sizeof(double));……}p是該函數的形參,要求通過p把動態(tài)分配存儲單元的地址傳回主調函數,則形參p的正確定義應當是A)double*pB)float**pC)double**pD)float*p(48)以下程序的輸出是A)10B)11C)51D)60structst{intx;int*y;}*p;/r/dt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){p=aa;printf("%d\n",++(p->x));}(49)假定建立了以下鏈表結構,指針p、q分別指向如圖所示的結點,則以下可以將q所指結點從鏈表中刪除并釋放該結點的語句組是A)free(q);p->next=q->next;B)(*p).next=(*q).next;free(q);C)q=(*q).next;(*p).next=q;free(q);D)q=q->next;p->next=q;p=p->next;free(p);(50)以下程序的輸出結果是A)0B)1C)2D)3main(){intx=0.5;charz='a';printf("%d\n",(x&1)&&(z<'z'));}二、填空題(每空2分,共40分)請將每一個空的正確答案寫在答題卡【1】至【20】序號的橫線上,答在試卷上不得分。(1)計算機機領域中,通常用英文單詞"Byte"表示【1】。(2)在DOS環(huán)境下,自動批處理的文件名為【2】。(3)要將當前盤當前目錄下所有擴展名為.TXT的文件內容在打印機上打印輸出,應使用的單條DOS內部命令為【3】。(4)在Windows環(huán)境下,可以利用單擊、雙擊、拖動這三種鼠標操作之一的【4】操作實現(xiàn)窗口的移動。(5)在Windows環(huán)境下,可以將窗口最小化為【5】。(6)以下程序的輸出結果是【6】main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf("%d,%d\n",a,b);}(7)下列程序的輸出結果是16.00,請?zhí)羁铡?。main(){inta=9,b=2;floatx=【7】,y=1.1,z;z=a/2+b*x/y+1/2;printf("%5.2f\n",z);}(8)用以下語句調用庫函數malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【8】;(9)下列程序段的輸出結果是【9】。main(){charb[]="Hello,you";b[5]=0;printf("%s\n",b);}(10)下列程序段的輸出結果是【10】。/r/n='c';switch(n++){default:printf("error");break;case'a':case'A':case'b':case'B':printf("good");break;case'c':case'C':printf("pass");case'd':case'D':printf("warn");}(11)以下程序通過函數指針p調用函數fun,請在填空欄內,寫出定義變量p的語句。voidfun(int*x,int*y){……}main(){inta=10,b=20;【11】;/定義變p*/p=fun;p(&a,&b);……}(12)下列程序的輸出結果是【12】。voidfun(int*n){while((*n)--);printf("%d",++(*n));}main(){inta=100;fun(&a);}(13)以下程序的輸出結果是【13】。main(){intarr[]={30,25,20,15,10,5},*p=arr;p++;printf("%d\n",*(p+3));}(14)以下程序用來輸出結構體變量ex所占存儲單元的字節(jié)數,請?zhí)羁铡tructst{charname[20];doublescore;};main(){structstex;printf("exsize:%d\n",sizeof(【14】));}(15)下面程序把從終端讀入的文本(用@作為文本結束標志)輸出到一個名為bi.dat的新文件中。請?zhí)羁铡?include"stdio.h"FILE*fp;{charch;if((fp=fopen(【15】))==NULL)exit(0);while((ch=getchar())!='@')fputc(ch,fp);fclose(fp);}(16)若變量n中的值為24,則prnt函數共輸出【16】行,最后一行有【17】個數。voidprnt(intn,intaa[]){inti;for(i=1;i<=n;i++){printf("%6d",aa[i]);if(!(i%5))printf("\n");}printf("\n");}(17)以下程序中,主函數調用了LineMax函數,實現(xiàn)在N行M列的二維數組中,找出每一行上的最大值。請?zhí)羁铡?defineN3#defineM4voidLineMax(intx[N][M]){inti,j,p;for(i=0;i{p=0;for(j=1;jif(x[i][p]printf("Themaxvalueinline%dis%d\n",i,【19】);}}main(){intx[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};【20】}一.選擇題:1.一個C語言程序的執(zhí)行是從a。a)第一個函數開始,直到最后一個函數結束.b)main函數開始,直到main函數結束。c)第一個語句開始,直到最后一個語句結束。d)main函數開始,直到最后一個函數結束。2.運算表達式!(5<9)||(6>10)的結果為(b)A)1B)0C)12D)103.設n=3;則n++的結果是(b)A)2B)3C)4D)54.已知字母A的ASCII碼是65,以下程序的執(zhí)行結果是(d)main(){charc1=’A’,c2=’Y’;printf(“%d,%d\n”,c1,c2);}A)A,YB)65,65C)65,90D)65,895.設x=2,表達式x*=3+2的結果x為(b)A)5B)10C)6D)46.C語言中規(guī)定函數的返回值的類型由(d)A)return語句中的表達式類型決定B)調用該函數時的主調函數類型所決定C)調用該函數時系統(tǒng)臨時決定D)在定義該函數時所指定的函數類型所決定7.設有說明語句:inta=1,b=0;則執(zhí)行以下語句后輸出為:(b)switch(a){case1:switch(b){case0:printf(“**0**”);break;case1:printf(“**1**”).break;}case2:printf(“**2**”);break;}A)**0**B)**0****2**C)**0****1****2**D)有錯8.選擇下列程序的運行結果dmain(){intk=4,m=1,p;p=func(k,m;p=func(k,m);printf(“%d”,p);}func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}A)14B)15C)16D)17.若有以下說明與語句:dstructworker{/r/no;char*name;}work,*p=&work;則以下引用方法不正確的是A)work.noB)(*p).noC)p->noD)work->no10.數組

溫馨提示

  • 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

提交評論