C語言各章練習題1.doc_第1頁
C語言各章練習題1.doc_第2頁
C語言各章練習題1.doc_第3頁
C語言各章練習題1.doc_第4頁
C語言各章練習題1.doc_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章 練習題選擇題1 一個C程序的執(zhí)行是從 。A) 本程序的main函數(shù)開始,到main函數(shù)結(jié)束B) 本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束C) 本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結(jié)束D) 本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束2 以下敘述不正確的是 。A) 一個C源程序必須包含一個main函數(shù)B) 一個C源程序可由一個或多個函數(shù)組成C) C程序的基本組成單位是函數(shù)D) 在C程序中,注釋說明只能位于一條語句的后面3 以下敘述正確的是 。A) 在對一個C程序進行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤B) 在C程序中,main函數(shù)必須位于程序的最前面C) C語言本身沒有輸入輸出語句D) C程序的每行中只能寫一條語句4 一個C語言程序是由 。A)一個主程序和若干個子程序組成B) 函數(shù)組成C) 若干過程組成D) 若干子程序組成5. C語言規(guī)定:在一個源程序中,main函數(shù)的位置( )。A)必須在最后 B)必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C)必須在最開始 D)可以任意第三章 練習題(一)選擇題1 若x、i、j、k都是int型變量,則計算下面表達式后,x的值為 。 x=(i=4,j=16,k=32)A) 4B) 16C) 32D) 522 下列四組選項中,均不是C語言關鍵字的選項是 。A) define IF typeB) getc char printfC) includecasescanfD) whilegopow3 下列四組選項中,均是不合法的用戶標識符的選項是 。A) W P_0 doB) b-a goto intC) floatla0_AD) -123abcTEMP4 下列四組選項中,均是合法轉(zhuǎn)義字符的選項是 。A) ”nB) 017”C) 018fxabD) 0101xlf5 下面正確的字符常量是 。A) “c”B) C) D) K6.下列選項中字符串和字符常量都正確的是( )。A)china 和 ”a” B)12 和 C)”string” 和 S D)”678” 和 0787 以下敘述正確的是 。A) 在C程序中,每行只能寫一條語句B) 若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數(shù)C) 在C程序中,%是只能用于整數(shù)運算的運算符D) 在C程序中,無論是整數(shù)還是實數(shù),都能被準確無誤地表示8 已知字母A的ASCII碼為十進制數(shù)65,且c2為字符型,則執(zhí)行語句c2A+6-3后,c2中的值為 。A) DB) 68 C) 不確定的值 D) C9 sizeof(float)是 。A) 一個雙精度型表達式 B) 一個整型表達式C) 一種函數(shù)表達式 D) 一個不合法的表達式10設有說明:char w; int x; float y; double z;則表達式w*x+z-y值的數(shù)據(jù)類型為 。A) float B) char C) int D) double11設以下變量均為int類型,則值不等于7的表達式是 。A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1) C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1) (二)填空題1 若有以下定義,則計算表達式y(tǒng)+=y-=m*=y后的y值是【1】。 int m=5,y=2;2. 在C語言中,一個int型數(shù)據(jù)在內(nèi)存中占2個字節(jié),則int型數(shù)據(jù)的取值范圍為【2】。3 若s是int型變量,且s6,則下面表達式的值為【3】。s%2+(s+1)%24. 若a是int型變量,則下面表達式的值為【4】。 (a=4*5,a*2),a+65 若x和a均是int型變量,則計算表達式(1)后的x值為【5】,計算表達式(2)后的x 值為【6】。 (1) x=(a=4,6*2)(2) x=a=4,6*26. 若a是int型變量,則計算下面表達式后a的值為【7】。 A=25/3%37 若x和n均是int型變量,且x和n的初值均為5,則計算表達式后x的值為【8】,n的值為【9】。x+=n+8. 若有定義:char c=010;則變量c中包含的字符個數(shù)為【10】。9 若有定義:int x=3,y=2;float a=2.5,b=3.5;則下面表達式的值為【11】 (x+y)%2+(int)a/(int)b10. 已知字母a的ASCII碼為十進制數(shù)97,且設ch為字符型變量,則表達式ch=a+8-3的值為【12】。第四章 練習題(一)選擇題1 putchar函數(shù)可以向終端輸出一個 。A) 整型變量表達式 B) 實型變量值C) 字符串 D) 字符或字符型變量值2. 有以下語句:int b;char c10; ,則正確的輸入語句是( )。A)scanf(%d%s,&b,c); B) scanf(%d%s,b,c);C)scanf(%d%s,&b,&c); D) scanf(%d%s,b,&c);3 閱讀以下程序,當輸入數(shù)據(jù)的形式為:25,13,10(注:表示回車),則正確的輸出結(jié)果為 。 main() int x,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%dn”,x+y+z);A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不確定值4 根據(jù)下面的程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式應該為 。main() char ch1,ch2,ch3; 輸入語句 printf(“%c%c%c”,ch1,ch2,ch3); 輸出形式:A B C 輸入形式:A BA) scanf(“%c%c%c”,&ch1,&ch2,&ch3);B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);/PC) scanf(“%c %c %c”,&ch1,&ch2,&ch3);D) scanf(“%c%c”,&ch1,&ch2,&ch3);5 已知ch是字符型變量,下面正確的賦值語句是 。A) ch=a+b; B) ch=0; C) ch=7+9;D)ch=5+9;(二)填空題1 以下的輸出結(jié)果是【1】。main() short i; i=-4; printf(“ni:dec=%d,oct=%o,hex=%x,unsigned=%un”,i,i,i,i);2. 以下的輸出結(jié)果是【2】。main() char c=x; printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%cn”,c,c,c,c);3 以下的輸出結(jié)果是【3】。main() int x=1,y=2; printf(“x=%d y=%d * sum * =%dn”,x,y,x+y); printf(“10 Squared is : %dn”,10*10);第五章 練習題(一)選擇題1 邏輯運算符兩側(cè)運算對象三數(shù)據(jù)類型 。A) 只能是0和1 B) 只能是0或非0正數(shù)C) 只能是整型或字符型數(shù)據(jù) D) 可以是任何類型的數(shù)據(jù)2 判斷char型變量ch是否為大寫字母的正確表達式是 。A) A=ch=A)&(ch=A)&(ch=Z) D) (A= ch)3 若希望當A的值為奇數(shù)時,表達式的值為“真”,A的值為偶數(shù)時,表達式的值為“假”。則以下不能滿足要求的表達式是 。 A) A%2=1 B) !(A%2=0) C) !(A%2) D) A%24 設有:int a=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=ab)&(n=cd)后n的值為 。 A) 1 B) 2 C) 3 D) 45 以下程序的運行結(jié)果是 。main() int a,b,d=241; a=d/100%9; b=(-1)&(-1); printf(“%d,%d”,a,b);A) 6,1 B) 2,1 C) 6,0 D) 2,06 已知int x=10,y=20,z=30;以下語句執(zhí)行后x,y,z的值是 。 if(xy) z=x; x=y; y=z;A) x=10, y=20, z=30 B) x=20, y=30, z=30C) x=20, y=30, z=10 D) x=20, y=30, z=20/P7 以下程序的運行結(jié)果是 。main() int m=5; if(m+5) printf(“%dn”,m); else; printf(“%dn”,m-);A) 4 B) 5 C) 6 D) 78 若運行時給變量x輸入12,則以下程序的運行結(jié)果是 。main() int x,y; scanf(“%d”,&x); y=x12 ? x+10 : x-12;printf(“%dn”,y);A) 4 B) 3 C) 2 D) 1第6章 練習題(一)選擇題1設有程序段 int k=10; while(k=0)k=k-1; 這下面描述中正確的是_. a)while循環(huán)執(zhí)行10次 b)循環(huán)是無限循環(huán) c)循環(huán)體語句以此也不執(zhí)行 d)循環(huán)體語句執(zhí)行一次2語句while(!E);中的表達式!E等價于_. a)E=0 b)E!=1 c)E!=0 d)E=13下面程序段的運行結(jié)果是_. int n=0; while(n+=2);printf(%d,n); a)2 b)3 c)4 d)有語法錯4下面程序的運行結(jié)果是_. #include main() int num=0; while(num=2) num+; printf(%dn,num); a)1 b)1 c)1 d)1 2 2 2 3 3 45以下程序段_. x=-1; do x=x*x; while(!x); a)是死循環(huán) b)循環(huán)執(zhí)行二次 c)循環(huán)執(zhí)行一次 d)有語法錯誤6若有如下語句 int x=3; doprintf(%dn,x-=2);while(!(-x); 則上面程序段_. a)輸出的是1 b)輸出的是1和-2 c)輸出的是3和0 d)是死循環(huán)7下面程序的運行結(jié)果是_. #include/Pmain() int y=10; doy-;while(-y); printf(%dn,y-); a)-1 b)1 c)8 d)08若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是_. for(i=2;i=0;)printf(%d,i-); a)無限次 b)0次 c)1次 d)2次9.以下循環(huán)體的執(zhí)行次數(shù)是( )。main() int i,j; for(i=0,j=1; i=j+1; i+=2, j-) printf(%d n,i);a) 3 b) 2 c) 1 d) 010以下正確的描述是_. a)continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行 b)只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句 c)在循環(huán)體內(nèi)使用break語句或continue語句的作用相同 d)從多層循環(huán)嵌套中退出時,只能使用goto語句11、有以下程序main( ) int i,s=0; for(i=1;i10;i+=2) s+=i+1; printf(“%dn”,s); 程序執(zhí)行后的輸出結(jié)果是( )。a)自然數(shù)19的累加和 b)自然數(shù)110的累加和 c)自然數(shù)19中的奇數(shù)之和 d)自然數(shù)110中的偶數(shù)之和(二)、填空題 1下面程序的功能是用輾轉(zhuǎn)相除法求兩個正整數(shù)的最大公約數(shù)。請?zhí)羁铡?#include main() int r,m,n; scanf(%d%d,&m,&n); if(mn)_; r=m%n; while(r)m=n;n=r;r=_; printf(%dn,n); 2下面程序的運行結(jié)果是_. #include main() int a,s,n,count; a=2;s=0;n=1;count=1; while(count=7)n=n*a;s=s+n;+count; printf(s=%d,s); 第七章 練習題1.以下為一維整型數(shù)組a的正確說明是_. a)int a(10); b)int n=10,an; c)int n; d)#define SIZE 10; scanf(%d,&n); int aSIZE; int an;2以下對二維數(shù)組進行正確初始化的是_.a) int a23=1,2,3,4,5,6; b) int a3=1,2,3,4,5,6; c) int a2=1,2,3,4,5,6;d) int a2=1,2,3,4;3若二維數(shù)組a有m列,則計算任一元素aij在數(shù)組中位置的公式為_.(假設a00位于數(shù)組的第一個位置上。) a)i*m+j b)j*m+i c)i*m+j-1 d)i*m+j+14若二維數(shù)組a有m列,則在aij前的元素個數(shù)為_. a)j*m+i b)i*m+j c)i*m+j-1 d)i*m+j+1525.若有以下程序段:int a=4,0,2,3,1,i,j,t; for(i=1;i=0&taj) aj+1=aj;j-; aj+1=t; . . 則該程序段的功能是_. a)對數(shù)組a進行插入排序(升序) b)對數(shù)組a進行插入排序(降序) c)對數(shù)組a進行選擇排序(升序) d)對數(shù)組a進行選擇排序(降序)6有兩個字符數(shù)組a、b,則以下正確的輸入語句是_. a)gets(a,b); b)scanf(%s%s,a,b); c)scanf(%s%s,&a,&b); d)gets(a),gets(b);7已有定義:char a=xyz,b=x,y,z;,以下敘述中正確的是( )。a) 數(shù)組a和b的長度相同 b) a數(shù)組長度小于b數(shù)組長度 c)a數(shù)組長度大于b數(shù)組長度 d) 上述說法都不對8判斷字符串s1是否大于字符串s2,應當使用_. a)if(s1s2) b)if(strcmp(s1,s2) c)if(strcmp(s2,s1)0) d)if(strcmp(s1,s2)0)二、填空題1 若有定義:double x35;則x數(shù)組中行下標的下限為_,列下標的上限為_.2下面程序以每行4個數(shù)據(jù)的形式輸出a數(shù)組,請?zhí)羁铡?#define N 20 main() int aN,i; for(i=0;iN;i+)scanf(%d,_); for(i=0i=0;i-) s=s+ai*j; j=j*10; printf(s=%dn,s); 第八章 練習題一、選擇題1.以下正確的說法是_. 建立函數(shù)的目的之一是 a)提高程序的執(zhí)行效率 b)提高程序的可讀性 c)減少程序的篇幅 d)減少程序文件所占內(nèi)存2以下正確的函數(shù)定義形式是_. a)double fun(int x,int y) b)double fun(int x; int y) c)double fun(int x, int y); d)double fun(int x,y);3C語言規(guī)定,簡單變量做實參時,它和對應形參之間的數(shù)據(jù)傳遞方式為_. A)地址傳遞 B)單向值傳遞 C)由實參傳給形參,再由形參傳回給實參 D)由用戶指定傳遞方式 4C語言允許函數(shù)值類型缺省定義,此時該函數(shù)值隱含的類型是_. a)float b)int c)long d)double5已有以下數(shù)組定義和f函數(shù)調(diào)用語句,則在f函數(shù)的說明中,對形參數(shù)組array的錯誤定義方式為_. int a34; f(a); a)f(int array6) b)f(int array3) c)f(int array4) d)f(int array25)6以下程序的正確運行結(jié)果是_. #include void num()extern int x,y;int a=15,b=10; x=a-b; y=a+b; int x,y; main() int a=7,b=5; x=a+b; y=a-b; num(); printf(%d,%dn,x,y); a)12,2 b)不確定 c)5,25 d)1,12/P二、填空題1以下程序的運行結(jié)果是_. #include main() int a=1,b=2,c; c=max(a,b); printf(max is %dn,c); max(int x,int y) int x; z=(xy)?x:y; return(z); 2.以下程序的運行結(jié)果是: void func(int x) x=20; main() int x=10;func(x);printf(“%d”,x);3函數(shù)gongyu的作用是求整數(shù)num1和num2的最大公約數(shù),并返回該值。請?zhí)羁铡?gongyu(int num1,int num2) int temp,a,b; if(num1(_) num2) temp=num1;num1=num2;num2=temp; a=num1;b=num2; while(_) temp=a%b;a=b;b=temp; return(a);3以下程序的運行結(jié)果是_. int a=5;int b=7; main() int a=4,b=5,c; c=plus(a,b); printf(A+B=%dn,c); plus(int x,int y) int z; z=x+y; return(x); 第10章 指針一、選擇題1變量的指針,其含義是指該變量的_. a)值 b)地址 c)名 d)一個標志2若有語句int *point,a=4;和point=&a;下面均代表地址的一組選項是_. a)a,point,*&a b)&*a,&a,*point c)*&point,*point,&a d)&a,&*point ,point 3若有說明;int *p,m=5,n;以下正確的程序段的是_. a)p=&n; b)p=&n; scanf(%d,&p); scanf(%d,*p); c)scanf(%d,&n); d)p=&n; *p=n; *p=m; 4下面程序段的運行結(jié)果是_. char *s=abcde; s+=2;printf(%d,s); a)cde b)字符c c)字符c的地址 d)無確定的輸出結(jié)果5設p1和p2是指向同一個字符串的指針變量,c為字符變量,則以下不能正確執(zhí)行的賦值語句是_.a)c=*p1+*p2; b)p2=c c)p1=p2 d)c=*p1*(*p2);6以下正確的程序段是_. a)char str20; b)char *p; scanf(%s,&str); scanf(%s,p); c)char str20; d)char str20,*p=str; scanf(%s,&str2); scanf(%s,p2);7若有說明語句 char a=It is mine; char *p=It is mine; 則以下不正確的敘述是_. a)a+1表示的是字符t的地址 b)p指向另外的字符串時,字符串的長度不受限制 c)p變量中存放的地址值可以改變 d)a中只能存放10個字符 8下面程序的運行結(jié)果是_. #include #include main() char *s1=AbDeG; char *s2=AbdEg; s1+=2;s2+=2; printf(%dn,strcmp(s1,s2); a)正數(shù) b)負數(shù) c)零 d)不確定的值9.設有說明:char *str10;則標識符的意義是( )。a)str是一個指向有10個元素的數(shù)組的指針b)str 是一個有10個元素的數(shù)組,數(shù)組元素的數(shù)據(jù)類型是指向char型的指針c)str是一個指向char型函數(shù)的指針d)str是具有10個指針元素的一維指針數(shù)組,每個元素都只能指向整型變量 10若有以下定義,則對a數(shù)組元素的正確引用是_. int a5,*p=a; a)*&a5 b)a+2 c)*(p+5) d)*(a+2) 11若有定義:int a23,則對a數(shù)組的第i行j列元素地址的正確引用為_. a)*(ai+j) b)(a+i) c)*(a+j) d)ai+j 12若有以下定義,則p+5表示_. int a10,*p=a; a)元素a5的地址 b)元素a5的值 c)元素a6的地址 d)元素a6的值2下面程序段的運行結(jié)果是_. #includeint f(char *s) char *p=s;while( *p!=0) p+;return(p-s);main()printf(%dn,f(ABCDEF);3下面程序段的運行結(jié)果是_. char str=abc0def0ghi,*p=str; printf(%s,p+5);4若有定義:int a=2,4,6,8,10,12,*p=a;則*(p+1)的值是_. *(a+5)的值是_.5若有以下定義:int a23=2,4,6,8,10,12

溫馨提示

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

評論

0/150

提交評論