C語言程序設(shè)計復(fù)習(xí)題_第1頁
C語言程序設(shè)計復(fù)習(xí)題_第2頁
C語言程序設(shè)計復(fù)習(xí)題_第3頁
C語言程序設(shè)計復(fù)習(xí)題_第4頁
C語言程序設(shè)計復(fù)習(xí)題_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計復(fù)習(xí)題一、選擇題1、以下不是C語言的特點的是( B )A. C語言簡潔、緊湊B能夠編制出功能復(fù)雜的程序C. C語言可以直接對硬件進(jìn)行操作DC語言移植性好2、以下不正確的C語言標(biāo)識符是( D )AABC Babc Ca_bc Dab.c3、以下正確的c語言標(biāo)識符是( C )Ax Ba十b Ca123 Dtest!4、一個c程序的執(zhí)行是從( A )Amain( )函數(shù)開始,直到main( )函數(shù)結(jié)束B第一個函數(shù)開始,直到最后一個函數(shù)結(jié)束C.第一個語句開始,直到最后一個語句結(jié)束Dmain( )函數(shù)開始,直到最后一個函數(shù)結(jié)束5、以下結(jié)果為整數(shù)的表達(dá)式(設(shè)有int i;char c;flo

2、at f;)( B ).Ai十f Bi*c Cc十f Di十c十f6、以下不正確的語句(設(shè)有int p,q)是( D )AP*3; B.pq; C.p十3; Dpq;7、以下使i的運(yùn)算結(jié)果為4的表達(dá)式是( D )Aint i=0,j=0; (i3,(j十十)十i);Bint i=1,j=0; ji(i=3)*2);C.int i=0,j=1; (j1)?(i1);(i3);Dint i1,j1; i+j十2;8、下面四個選項中,均是不正確的八進(jìn)制數(shù)或十六進(jìn)制數(shù)的選項是( D ). A)016 B)oabc C)010 D)0a12 0x8f 017 -0x11 7ff 018 0xa 0x16

3、 -1239、下面四個選項中,均是正確的八進(jìn)制數(shù)或十六進(jìn)制數(shù)的選項是( B ). A)-10B)0abc C)0010 D)0a12 0x8f -017 -0x11 -0x123 -011 0xc 0xf1 -0xa10、下面四個選項中,均是正確的數(shù)值常量或字符常量的選項是( A ). A)0.0B)”a” C)3 D)+001 0x8f 3.9E-2.5 011 0xabcd 8.9e 1e1 0xFF00 2e2 & 0a 50.11、下面不正確的字符串常量是( A ) A)abc B)”1212” C)”0” D) “ ”12、已知各變量的類型說明如下:( C ) Int i=8,k,a

4、,b; Unsigned long w=5; Double x=1.42,y=5.2; 則以下符合C語言語法的表達(dá)式是( C ) A)a+=A-=(b=4)*(a=3) B)a=a*3=2 C)x%(-3) D)y=float ( )13、以下不正確的敘述是( D )A)在C程序中,逗號運(yùn)算符的優(yōu)先級最低B)在C程序中,APH和aph是兩個不同的變量C)若a和b類型相同,在計算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變D)當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整形變量只能輸入整形數(shù)值,對于實型變量只能輸入實型數(shù)值14、若要求的值分別為、,正確的數(shù)據(jù)輸入是( B )。 A)10A 20B B)10

5、 A 20 B C)10 A20B D)10A20 B15、有如下程序,若要求a1、a2、c1、c2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入是( B )main()int a1,a2;char c1,c2;scanf(%d%d,&a1,&a2);scanf(%c%c,&c1,&c2):A)1020ABB)10 20 ABC)10 20 ABCD)10 20AB16、有如下程序,輸入數(shù)據(jù):12M345CR后,x的值是(),y的值是( B ).#includemain( )int x;float y;scanf(%3d%f,&x,&y);1,A.12 B.123 C.12345 D.017、以

6、下C程序正確的運(yùn)行結(jié)果是( C ). main() long y=-43456; printf(“y=%-8ldn”,y); printf(“y=%-08ldn”,y);printf(“y=%08ldn”,y);printf(“y=%+8ldn”,y); A)y= -43456 B)y=-43456 y=- 43456 y=-43456 y=-0043456 y=-0043456y=-43456 y=+ 43456C) y=-43456 D) y= -43456y=-43456 y=-0043456y=-0043456 y=00043456 y= -43456 y=+4345618、 以下C程

7、序正確的運(yùn)行結(jié)果是( D ). main() int y=2456;printf(“y=%3on”,y);printf(“y=%8on”,y);printf(“y=%#8o|n”,y);A)y= 2456 B)y= 4630 y= 2456 y= 4630 y=#2456 y=#4630 C)y=2456 D)y=4630 y= 2456 y= 4630 y= 02456 y= 0463019、 若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語句是( D ).A) scanf(“%d%d1x,%1e”,&x,&y,&z);B) scanf(“%2d*%d%1f

8、”,&x,&y,&z);C) scanf(“%x%*d%o”,&x,&Y);D) scanf(“%x%o%6.2f”, &x,&y,&z);20、以下程序的執(zhí)行結(jié)果是( A )#includemain()int sum,pad;sum=pad=5;pad=sum+;pad+;+pad;printf(%dn,pad);A.7 B.6 C.5 D.421、以下程序的執(zhí)行結(jié)果是( B )#includeint i=010,j=10;printf(%d,%dn,+i,j-);A.11,10 B.9,10 C.010,9 D.10,922、為了避免嵌套的if-else語句的二義性,c語言規(guī)定else總是

9、與( C )組成配對關(guān)系。A)縮排位置相同的ifB)在其之前末配對的ifC)在其之前未配對的最近的ifD)同一行上的if23、選擇出合法的if語句(設(shè)int x,a,b,c;)( A )A)if(a=b)x十十;B)if(ab)x十+;C)if(ab)x十十;D)if(ab)x十十;24、 邏輯運(yùn)算符兩側(cè)運(yùn)算對象的數(shù)據(jù)類型( D ). A)能是0或1 B)只能是0或非0正數(shù) C)只能是整型或字符型數(shù)據(jù) D)可以是任何類型的數(shù)據(jù)25、 下列運(yùn)算符中優(yōu)先級最高的是( C )A) B十 C% D!26、已知x43,chA,y0;則表達(dá)式(xy6&ch(B &! Y)的在值是( B ).A)0 B)語

10、法錯 C)1 D)“假”27、若希望當(dāng)A的值為奇數(shù)時,表達(dá)式的值為“真”,A的值為偶數(shù)時,表達(dá)式的值為“假”。則以下不能滿足要求的表達(dá)式是( C ).A)A21 B)!(A20) C)!(A2) D)A228、 沒有,int a1,b2,c3,d4,m2,n2執(zhí)行 (mab&(ncd)后n的值為( B ).A)1 B)2 C)3 D)429、 判斷char型變量cl是否為小寫字母的正確表達(dá)式為( D ).A)ac1fz B)(c1a)&(c1z)C)(a=c1) (zc1) D)(c1a)&(c1z)30、執(zhí)行以下語句后a的值為(B),b的值為( A )iu a=5,b=6,w=1,x=2,y

11、=3,z=4;(awx)&(byz);1 A)5 B)0 C)2 D11 A)6 B)0 C)1 D431、已知int x10,y20,z30;以下語句執(zhí)行后x,y,z的值是( ).if(xy)z=x;x=y; yz;答案為:x=20,y=30,z=30A)xl0,y20,z=30 B)x20,y30,z=20C)x20,y30,z10 D)x20,y30,z=2032、C語言用( C )表示邏輯“真”值。A)true B)t或y C)非零整數(shù)值 D)整數(shù)33、語句while(!e);中的條件!e等價于( A ) A)e0 B)e!1 C)e!0 D)e34、以下for循環(huán)是( C )。for

12、(x0,y0;(y!=123)&(x4);x+);A)無限循環(huán) B)循環(huán)次數(shù)不定)執(zhí)行4次 D)執(zhí)行3次35、下面有關(guān)for循環(huán)的正確描述是( D )A)for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況B)for循環(huán)是先執(zhí)行循環(huán)體語句,后判定表達(dá)式C)在for循環(huán)中,不能用break語句跳出循環(huán)體D)for循環(huán)體語句中,可以包含多條語句,但要用花括號括起來36、對于for(表達(dá)式1;表達(dá)式3)可理解為( A )A)for(表達(dá)式1;1;表達(dá)式3)B)for(表達(dá)式1:1;表達(dá)式3)C)for(表達(dá)式1;表達(dá)式1;表達(dá)式3)D)for(表達(dá)式1;表達(dá)式3;表達(dá)式3)37、下面程序段的運(yùn)行結(jié)果是( D )

13、 x=y=0; while(x15) y+, x+=+y; printf(“%d,%d”yx);A)20,7 B)6,12 C)20,8 D)8,2038、 下面程序段的運(yùn)行結(jié)果是( C ) int n=0; while(n+bc 的值是( 0 ).12、當(dāng)a=5,b=4,c=2時,表達(dá)式 ab! =c的值是( 1 )13、 在C語言中,表示邏輯“真”值用( 1 )14、 設(shè)y為int 型變量,請寫出描述“y是奇數(shù)”的表達(dá)式( y%2=1 ).15、 C語言提供的3種邏輯運(yùn)算符是( ! & | )16、 設(shè)x,y,z均為int型變量,請寫出描述“x或y中有一個小于z“的表達(dá)式( xz|yz )

14、 17、下列程序運(yùn)行后的輸出結(jié)果是( s=7 )#includemain()int s=0,k;for(k=7;k=0;k-)switch(k)case 1:case 4:case 7:s+;break;case 2;case 3;case 6;break;case 0:case 5:s+=2;break;printf(s=%dn,s);18、下列程序運(yùn)行后的輸出結(jié)果是 ( )* * * * * * * #includemain()int i,j;for(i=4;i=1;i-)printf(*);for(j=1;j=4-i;j+)printf(*);printf(n);19、在C語言中,二維數(shù)

15、組的定義方式為:類型說明符數(shù)組名(常量表達(dá)式1)、(常量表達(dá)式2)20、在C語言中,二維數(shù)組元素的內(nèi)存中的存放順序是(按行序優(yōu)先存放)21、 若有定義:double x35;則x數(shù)組中行下標(biāo)的下限為( 0 ),列下標(biāo)的上限為( 4 )22、若二維數(shù)組a有m列,則計算任一元素aij在數(shù)組中位置的公式為:( i*m+j+1 )(假設(shè)a00位于數(shù)組的第一個位置上。)23、C語言規(guī)定,可執(zhí)行程序的開始執(zhí)行點是( 程序中的main函數(shù) )24、在C 語言中,一個函數(shù)一般由兩個部分組成,它們是( 函數(shù)首部 )和( 函數(shù)體 )。25、設(shè)有以下宏定義:#define WIDTH 80#define LENGT

16、H WIDTH+40 則執(zhí)行賦值語句:;(v為int型變量)后,k的制式( )k的值是( 880 )26、設(shè)有以下宏定義:define WIDTH 80 #define LENGTH (WIDTH+40) 則執(zhí)行賦值語句:k=LENGTH*20;(k為int 型變量)后,k的值是( 2400 )。27、下面程序運(yùn)行結(jié)果是( 5 )。define DOUBLE(r) r*r main() int x=1 ,y=2,t; t=DOUBLE(x+y); printf(“%dn”,t); 28、以下的運(yùn)行結(jié)果是( 4 )。 #includemain()int I,k; for(I=0;I4;I+);

17、k=sub(&I); printf(“%3d”,K); printf(“n”);sub(int *s)static int t=0; t=*s+t;29、以下的運(yùn)行結(jié)果是( (2) 2 6 6 (!) 1 6 6 )。(2) 2 6 6 (!) 1 6 6#include”string.h”int *P;main()int a=1,b=2,c=3;p=&b;pp(a+c,&b);printf(“(!) %d %d %d n”,a,b,*p);pp(inta ,int *b)int c=4;*p=*b+c;a=*p-c;printf(“(2) %d %d %d n”,a,*b,*p);30、以下

18、程序的運(yùn)行結(jié)果是 ( 10,x )10,x struct n int x; char c; ; main() struct n a=10,x; func(a);printf(“%d,%c”,a.x,a.c);func(struct n b)b.x=20;b.c=y;31、 以下程序的運(yùn)行結(jié)果是( 2,3 )2,3Main ( )struct EXAMPLEstructint x;int y;in;int a;int b;e;e.a=1;e.b=2;printf(“%d,%d”32、 以下程序輸入若干人員的姓名(六位字母)機(jī)器電話號碼(七位數(shù)字),以字符#結(jié)束輸入。然后輸入姓名,查找該人的電話號

19、碼。數(shù)據(jù)從s1開始存放。請在【】內(nèi)填入正確內(nèi)容。 #include #include #define MAX 101 struct aa char name5; char tel8; main()sturct aa sMAX; int num; char name5; readin( s,&num ); printf(“Enter a name: ”);gets( name ); search( s,name,num );reading( struct aa *a ,int *n ) int i=1 ;gets( );gets( ai.tel);while ( strcmp(【

20、】, “#”) ) i+;gets( );gets( ai.tel ); *n= i;search(【struct aa*b】, char *x, int n) int i ; strcpy(,x); i=n;while( strcmp(,x) )i-;if(【i或i!=0】)printf(“name:%s tel:%sn”,,bi.tel );else printf(“Not been found !”);node33、以下程序的功能是統(tǒng)計鏈表中結(jié)點的個數(shù),其中first為指向第一個結(jié)點的指針(鏈表不帶結(jié)點)。請在 內(nèi)填

21、入正確內(nèi)容。stuct linkchar data;stuct link*next;stuct link*p,*first;int c=0;p=first;while(p!=NULL)c+;p=p-next;34、已知head指向一個帶頭結(jié)點的單向鏈表,鏈表中每個結(jié)點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈接點域的和值,作為函數(shù)值返回。請在 內(nèi)填入正確內(nèi)容。stuct link int data; stuct link*nextmain() stuct link *head;sum(head);sum(struct link*head); stuct

22、link *p; ints=0; p=head-next; while(p) s +=-data ;p=p-next;return(3);三、編程題1、 編寫程序,從鍵盤上輸入兩個電阻的值,求它們并聯(lián)和串聯(lián)的電阻值,輸出結(jié)果保留兩位小數(shù)。解:#include void main()float r1,r2;float cuan,bin;printf(請輸入兩個電阻值:);scanf(%f%f,&r1,&r2);cuan=r1+r2;bin=1.0/(1.0/r1+1.0/r2);printf(兩個電阻串聯(lián)電阻值為:%.2fn,cuan);printf(兩個電阻并聯(lián)電阻值為:%.2fn,bin);

23、2、 編程計算1!+2!+3!+n!,驗證對前10項求得的結(jié)果是否正確?當(dāng)n=20時,結(jié)果是否正確?如果出錯,弄清原因,并修改程序。解:/編程計算1!+2!+3!+n!#include void main()int n,i,j;long sum=0,mather=1;printf(請輸入n的值:);scanf(%d,&n);for(i=1;i=n;i+)mather=1;for(j=1;j=i;j+)mather*=j;sum+=mather;printf(1!+2!+.+%d!=%ld,n,sum);3、編制程序要求輸入整數(shù)a和b,若a*a+b*b大于100,則輸出a*a+b*b百位以上的數(shù)

24、字,否則輸出兩數(shù)的和。解:/編制程序要求輸入整數(shù)a和b,若a*a+b*b大于100,則輸出a*a+b*b百/位以上的數(shù)字,否則輸出兩數(shù)的和#include void main()int a,b;int sum;printf(請輸入a,b的值:);scanf(%d%d,&a,&b);sum=a*a+b*b;if(sum100)printf(a*a+b*b的值為:%d,百位以上的數(shù)字為:%dn,sum,sum/100);elseprintf(a+b的值為:%dn,a+b);4、試編程判斷輸入的正整數(shù)是否既是5又是7的正倍數(shù)。若是,則輸出yes;否則輸出no。解:/試編程判斷輸入的正整數(shù)是否既是5又

25、是7的正倍數(shù)。若是,則輸出yes;/否則輸出no#include void main()int num;printf(請輸入一個能被5整除又能被7整除的整數(shù):);scanf(%d,&num);if(num%5=0)&(num%7=0)printf(yes!n);elseprintf(no!n);5、設(shè)計函數(shù),從鍵盤輸入一行字符,返回最長單詞的長度,同時輸出該單詞的位置。解:/設(shè)計函數(shù),從鍵盤輸入一行字符,返回最長單詞的長度,同時輸出該單詞的位置。#include #include #include int longest(int *longlen) char string100;int len=0,i,length=0,flag=1,place,point;printf(請輸入一行字符:);gets(string);for(i=0;ilength) length=len;place=point;len=0; *longlen=length;return(pla

溫馨提示

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

評論

0/150

提交評論