C語言--精選文檔_第1頁
C語言--精選文檔_第2頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、練習(xí)1. 下面的字符序列中哪些不是合法的變量名: -abc_aaforpp.288to beIBM/PCms-c#microm%usttihswhiler24_s25_a_babc_3452. 假設(shè)整型變量a的值是1,b的值是2,c的值是3,在這種情況下分別執(zhí)行下面各個語句,寫出執(zhí)行對應(yīng)語句后整型變量u的值。 1) u = a ? b : c;2) u = (a = 2) ? b + a : c + a;3. 假設(shè)整型變量a的值是1,b的值是2,c的值是0,寫出下面各個表達(dá)式的值。 1) a & !(b | c) & !a) 2) !(a & b) | c ? a | b : a & b &

2、c3) !(a + b c) & b = c * a - b4. 下面程序在執(zhí)行時,哪些地方將發(fā)生類型轉(zhuǎn)換?程序打印的值是什么? int f (int n, float m) return (m + n) / 4;int main (void) float y = 3;printf(%dn, f(y, y + 1);return 0;5. 寫一個簡單程序,它輸出從1到10的整數(shù)。 。 C語言部分一、語言基礎(chǔ)單項選擇題(每題2分,共30分) (一) C程序是由_和 _構(gòu)成的。 1A)主函數(shù)與子程序 B)主函數(shù)與若干子函數(shù) C)一個主函數(shù)與一個其它函數(shù) D)主程序與子程序 (二) 以下選項中合法的

3、常量是_D_。 2A) Internet B)E3 C) 02x D) 0xfeL (三) 以下選項中合法的用戶標(biāo)識符是_C_。 3A)for B)3Dmax C)_123Test D)B.dat4A)d=8+a+f=d+8 B)d=(a+8)+ C)d=(8+e,e+,d+8) D)d=8+e+=d+7 (五) 設(shè)x,y,a,b,c為int型變量,且值均為0,在Turbo C環(huán)境下執(zhí)行 (x=a=b)|(y=c=b)后,x,y的值是_C_。 5A) 0,0 B) 0,1 C) 1,0 D) 1,1 (六) 設(shè)有int i=011,j=10;則printf(“%d,%dn”,+i,j-);的輸

4、出結(jié)果是_C_。 6A)011,9 B)012,9 C) 10,10 D) 10,9 (七) 以下選項中,與k=i+完全等價的表達(dá)式是_A_。 7A)k=i,i=i+1 B)i=i+1,k=i C)k=i+1 D)k+=i+1 (八) 有以下程序段 int n=0,p; do scanf(“%d”,&p); n+; while(p!=123&n(b)?(a):(b) main() int i=10,j=15;printf(“%dn”,10*M(i,j); 后輸出的結(jié)果是_A_。11A) 10 B) 15 C) 100 D) 150 (十二) 若有說明:int i,j=5, *p=&i,則與i=

5、j;等價的語句是_B_ 。 12A)i=*p; B) *p=*&j; C) i=&j; D) i=*p;(十三) 設(shè)有如下定義,則對data中的a成員的正確引用是_B_ 。 struct sk int a; float b; data,*p=&data; 13A) (*p).data.a B) (*p).a C )p-data.a D) p.data.a (十四) 若有如下定義,則printf(“%dn”,sizeof(them);的輸出是_D_ 。 typedef union long x2; int y4; char z8; MYTYPE; MYTYPE them; 14A) 32 B)2

6、4 C)16 D) 8(十五) 若需要打開一個已經(jīng)存在的非空文件file進(jìn)行修改,正確的打開語句是_B_ 。A) fp=fopen(“file”,”r”) B) fp=fopen(“file”,”r+”)C) fp=fopen(“file”,”w”) D) fp=fopen(“file”,”rb+”)二、閱讀下列程序,寫出運行結(jié)果(每題4分,共20分)程序1 #include main() char sl10,s210,s310,s410; 運行結(jié)果: scanf(“%s%s”,s1,s2); aaaa gets(s3); gets(s4); l234 puts(s1); puts(s2);

7、puts(s3); puts(s4); bbbb 5678 程序運行時輸入數(shù)據(jù)為: aaaa l234 bbbb 5678程序2 main() int a=13,b=21,m=0; 運行結(jié)果:3 switch(a%3) case 0: m+; break; case 1: m+; switch(b%2) default: m+; case 0: m+; break; printf(“%dn”,m); 程序3 #include 運行結(jié)果:54 main() int a34= 0,2,4,6,8,10,12,14,16,18,20,22 ; int (*p)4=a,i,j,k=0; for(i=0

8、;i3;i+) for(j=0;j2;j+) k=k+*(*(p+i)+j); printf(“%dn”,k); 程序 4 #include s(int n) 運行結(jié)果:22 static int i=1; 32 int j=1; 42 if(n0) +i; j+; printf(“%d%dn”,i,j); s(n-1); main() int k=3; s(k); 程序5 #include 運行結(jié)果:data=1468 main() char c; int i,data=0; for(i=0;i4;i+) c=getchar(); if(c9) break; data=data*lO+c-0

9、; /*字符轉(zhuǎn)成數(shù)字*/ printf(“data=%dn”,data); 程序運行時輸入數(shù)據(jù)為:1468 三、閱讀分析下列程序,在_線處填上適當(dāng)內(nèi)容,使程序(或函數(shù))完整。 (每空2分,共18分) 1有以下程序,其功能是將從鍵盤輸入的小寫字母轉(zhuǎn)換成大寫字母輸出, 當(dāng)輸入為“#”時,結(jié)束轉(zhuǎn)換。 main() char ch; scanf(“%c”,&ch); while( ch!=# ) if(ch=a&ch2 main() static int n,f20= 1,1 ; for(n=2;n20;n+) fn= fn-1+fn-2 ; for(n=0;n20;n+) if(n%5=0) pri

10、ntf(“n”); printf(“%lOd”,fn); 3輸入10個數(shù),從小到大排序。 main() int i,j,p,q,s,a10; printf(“n input l0 unmbers: n”); for(i=0;i10;i+) scanf(“%d”,&ai); for(i=0;i9;i+) p=i; q= ai ; for(j=i+1;jaj ) p=j; q=aj; if(i!=p) s=ai; ai=ap ; ap=s; printf(“n%d”,ai); 4下列程序的功能是輸入一個字符串存人字符數(shù)組a中,然后將其中的所有字符刪除后再存入字符數(shù)組b,最后將字符數(shù)組b中的字符串輸

11、出。 #include #include main() char a81,b81,*p1=a, *p2=b; gets(p1); while(*p1!=0) if(*p1=) p1+ ; else *p2+=*p1+ ;puts(b);四、編寫程序題(共22分)1求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。(6分)main()int a,m,n,t; scanf(%d%d,&m,&n); a=m*n; while(t=m%n )!=0) m=n;n=t; printf(greatest common divisor= %dn,n); printf(least common multiple= %dn,

12、a/n);2. 編寫一程序,輸出如下圖形。(8分) * * * *main()int m,n; for(n=1;n=5;n+) for(m=1;m0long fun(int x,int n)long int y; if(n=0) y=1; else y=x*fun(x,n-1); return y;main()int x,n;scanf(“%d%d”,&x,&n);printf(“%ld”,fun(x,n); 基礎(chǔ)知識和C語言程序設(shè)計一、選擇題(每題1分,共50分) 下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。 (1)在計算機(jī)中,一個字節(jié)所包含二進(jìn)制位的個數(shù)是 A)2 B)

13、4 C)8 D)16 (2)在多媒體計算機(jī)中,CD-ROM屬于 A)存儲媒體 B)傳輸媒體 C)表現(xiàn)媒體 D)表示媒體(3)在Windows系統(tǒng)中,不同文檔之間互相復(fù)制信息需要借助于 A)磁盤緩沖區(qū) B)寫字板 C)剪貼板 D)記事本 (4)十六進(jìn)制數(shù)100轉(zhuǎn)換為十進(jìn)制數(shù)為 A)256 B)512 C)1024 D)64 (5)能將高級語言編寫的源程序轉(zhuǎn)換為目標(biāo)程序的軟件是 A)匯編程序 B)編輯程序 C)解釋程序 D)編譯程序 (6)在Internet中,用于在計算機(jī)之間傳輸文件的協(xié)議是 A) TELNET B)BBS C)FTP D)WWW (7)在Windows環(huán)境下,資源管理器左窗口中

14、的某文件夾左邊標(biāo)有“+”標(biāo)記表示 A)該文件夾為空 B)該文件夾中含有子文件夾 C)該文件夾中只包含有可執(zhí)行文件 D)該文件夾中包含系統(tǒng)文件(8)在Windows環(huán)境下,下列敘述中正確的是 A)在“開始”菜單中可以增加項目,也可以刪除項目 B)在“開始”菜單中不能增加項目,也不能刪除項目 C)在“開始”菜單中可以增加項目,但不能刪除項目 D)在“開始”菜單中不能增加項目,但可以刪除項目 (9) 從Windows環(huán)境進(jìn)入DOS方式后,返回Windows環(huán)境的命令為 A)QUIT B)WIN C)EXIT D)ESC(10) 下列敘述中正確的是 A)計算機(jī)病毒只感染可執(zhí)行文件 B)計算機(jī)病毒只感染

15、文本文件 C)計算機(jī)病毒只能通過軟件復(fù)制的方式進(jìn)行傳播 D)計算機(jī)病毒可以通過讀寫磁盤或網(wǎng)絡(luò)等方式進(jìn)行傳播(11)以下敘述中正確的是 A)C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方 B)花括號“”和“”只能作為函數(shù)體的定界符 C)構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名 D)分號是C語句之間的分隔符,不是語句的一部分(12)以下選項中可作為C語言合法整數(shù)的是 A)10110B B)0386 C)0Xffa D)x2a2(13)以下不能定義為用戶標(biāo)識符的是 A)scanf B)Void C) _3com_ D)int(14)有以下程序 main() int a; char c=

16、10; float f=100.0; double x; a=f/=c*=(x=6.5); printf(”%d %d %3.1f3.1fn”,a,c,f,x); 程序運行后的輸出結(jié)果是 A)1 65 1 6.5 B)1 65 1.5 6.5 C)1 65 1.0 6.5 D)2 65 1.5 6.5 (15)以下選項中非法的表達(dá)式是 A)O=xa)|(m=ab); printf(”%d,%dn”,k,m); 程序運行后的輸出結(jié)果是 A)0,0 B)0,1 C)1,0 D)1,1(17)有定義語句:int x,y;,若要通過scanf(“%d,%d”,&x,&y);語句使變量x得到數(shù)值11,變

17、量y得到數(shù)值12,下面四組輸入形式中,錯誤的是 A)11 12 B)11, 12 C)11,12 D)11, 12(18)設(shè)有如下程序段: int x=2002,y=2003; printf(%dn,(x,y); 則以下敘述中正確的是 A)輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出 B)運行時產(chǎn)生出錯信息 C)輸出值為2002 D)輸出值為2003(19)設(shè)變量x為float型且已賦值,則以下語句中能將x中的數(shù)值保留到小數(shù)點后兩位,并將第三位四舍五入的是 A)x=x*100+0.5100.0; B)x=(x*100+0.5)100.0; C)x=(int)(x*100+0.5)/

18、100.0; D)x=(x/100+0.5)*100.0;(20)有定義語句:int a=1,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x的值不為3的是 A)if(ca) x=l; B) if(a3) x=3; else if(ba) x=2; else if(a2) x=2; else x=3; else x=l; C) if(a3) x=3; D) if(ab) x=b; if(a2) x=2; if(bc) x=c; if(a1) x=l; if(ca) x=a; (21)有以下程序 main() int s=O,a=l,n; scanf(”%d”,&n); do s+=1; a

19、=a-2; while(a!=n); printf(”%dn”,s); 若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入的值是 A)-1 B)-3 C)-5 D)0 (22)若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0) s=a; for(b=1;b=c;b+) s=s+l; 則與上述程序段功能等價的賦值語句是 A) s=a+b; B)s=a+c; C)s=s+c; D)s=b+c; (23)有以下程序 main() int k=4,n=O; for(;nl;n-) s=s+l/n; printf(”%6.4fn”,s); 程序運行后輸出結(jié)果錯誤,導(dǎo)致錯誤結(jié)果的

20、程序行是 A)s=1.0; B)for(n=10;nl;n-) C)s=s+l/n; D)printf(%6.4fn,s);(25)已定義ch為字符型變量,以下賦值語句中錯誤的是 A)ch=; B)ch=62+3; C)ch=NULL; D)ch=xaa;(26)若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是 A)函數(shù)調(diào)用可以作為獨立的語句存在 B)函數(shù)調(diào)用可以作為一個函數(shù)的實參 C)函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中 D)函數(shù)調(diào)用可以作為一個函數(shù)的形參(27)有以下函數(shù)定義: void fun(int n,double x) 若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun的正確調(diào)

21、用語句是 A)fun(int y,double m); B)k=fun(10,12.5); C)fun(x,n); D)void fun(n,x);(28)有以下程序 void fun(char *a,char *b) a=b; (*a)+; main() char c1=A,c2=a,*p1,*p2; p1=&c1; p2=&c2; fun(p1,p2); printf(”%c%cn”,c1,c2); 程序運行后的輸出結(jié)果是 A)Ab B)aa C)Aa D)Bb(29)若程序中已包含頭文件stdio.h,以下選項中,正確運用指針變量的程序段是 A)int *i=NULL; B)float

22、*f=NULL; scanf(”%d”,i); *f=10.5; C)char t=m,*c=&t; D) long *L; *c=&t; L=0;(30)有以下程序 #include main() printf(”%dn”,NULL); 程序運行后的輸出結(jié)果是 A)0 B)1 C)-1 D)NULL沒定義,出錯(31)已定義c為字符型變量,則下列語句中正確的是A)c=97; B)c=”97”; C)c=97; D)c=”a”;(32)以下不能正確定義二維數(shù)組的選項是 A)int a22=1,2; B)int a2=1,2,3,4; C)int a22=1,2,3; D)int a2=1,2,

23、3,4;(33)以下選項中不能正確把c1定義成結(jié)構(gòu)體變量的是 A)typedef struct B)struct color cl int red; int red; int green; int green; int blue; int blue; COLOR; ; COLOR cl; C)struct color D)struct int red; int red; int green; int green; int blue; int blue; cl; cl;(34)以下能正確定義一維數(shù)組的選項是 A)int num: B)#define N 100 int numN; C)int n

24、um0100; D) int N=100; int numN;(35)下列選項中正確的語句組是 A)char s8; s=”Beijing”; B)char *s; s=”Beijing”; C)char s8; s=”Beijing”; D)char *s; s=”Beijing”;(36)已定義以下函數(shù) fun(int *p) return *p; 該函數(shù)的返回值是 A)不確定的值 B)形參p中存放的值 C)形參p所指存儲單元中的值 D)形參p的地址值 (37)下列函數(shù)定義中,會出現(xiàn)編譯錯誤的是 A)max(int x,int y,int *z) B)int max(int x,y) *z

25、=xy ?x:y; int z; z=xy ? x:y; return z; C)max(int x,int y) D)int max(int x,int y) int z; return(xy?x:y); z=xy?x:y; return(z); (38)有以下程序 #include #define F(X,Y) (X)*(Y) main() int a=3,b=4; printf(”%dn”,F(xiàn)(a+,b+); 程序運行后的輸出結(jié)果是 A) 12 B) 15 C) 16 D)20 (39)有以下程序 fun(int a,int b) if(ab) return(a): else retur

26、n(b); main() int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(”%dn,r); 程序運行后的輸出結(jié)果是 A) 3 B) 6 C) 8 D) 12(40)若有定義:int *p3;,則以下敘述中正確的是 A)定義了一個基類型為int的指針變量p,該變量具有三個指針 B)定義了一個指針數(shù)組p,該數(shù)組含有三個元素,每個元素都是基類型為int的指針 C)定義了一個名為*p的整型數(shù)組,該數(shù)組含有三個int類型元素 D)定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個int類型元素(41)以下程序中函數(shù)scmp的功能是返回形參指針s1和

27、s2所指字符串中較小字符串的首地址 #include #include char *scmp(char *s1,char *s2) if(strcmp(s1,s2)0) return(s1); else return(s2); main() int i; char string20,str320; for(i=0; ix); 程序運行后的輸出結(jié)果是 A) 10 B) 11 C) 20 D) 21 (43)有以下程序段 main() int a=5,*b,*c;c=&b; b=&a; 程序在執(zhí)行了c=&b;b=&a;語句后,表達(dá)式:*c的值是 A)變量a的地址 B)變量b中的值 C)變量a中的值

28、 D)變量b的地址 (44)有以下程序 #include main() char str20=”Hello”,”Beijing”,*p=str; printf(”%dn”,strlen(p+20); 程序運行后的輸出結(jié)果是 A) 0 B) 5 C) 7 D) 20 (45)已定義以下函數(shù) fun(char *p2,char *p1) while(*p2=*p1)!=0)p1+; p2+; 函數(shù)的功能是 A)將p1所指字符串復(fù)制到p2所指內(nèi)存空間 B)將p1所指字符串的地址賦給指針p2 C)對p1和p2兩個指針?biāo)缸址M(jìn)行比較 D)檢查p1和p2兩個指針?biāo)缸址惺欠裼?(46)有以下程序

29、main() int x=3,y=2,z=l; printf(”%dn”,x/y&z); 程序運行后的輸出結(jié)果是 A) 3 B) 2 C) 1 D) 0(47)若fp已正確定義并指向某個文件,當(dāng)未遇到該文件結(jié)束標(biāo)志時函數(shù)feof(fp)的值為 A)0 B)1 C)-1 D)一個非0值(48)下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是 A)文件由ASCII碼字符序列組成,C語言只能讀寫文本文件 B)文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件 C)文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件 D)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件(49)有以下程

30、序 main() int a33,*p,i; p=&a00; for(i=0;i0 ? p/10:p%3); (2)以下程序運行后的輸出結(jié)果是 。 main() char m; m=B+32; printf(”%cn”,m); (3)以下程序運行后的輸出結(jié)果是 。 main() int a=1,b=3,c=5; if(c=a+b) printf(”yesn”); else printf(”non”); (4)以下程序運行后的輸出結(jié)果 。 main() int i,m=0,n=O,k=O; for(i=9;i=ll;i+) switch(i/10) case 0: m+;n+; break; c

31、ase 10: n+;break; default: k+;n+; printf(”%d %d %dn”,m,n,k); (5)執(zhí)行以下程序后,輸出#號的個數(shù)是 。 #include main() int i,j; for(i=1;i5;i+) for(j=2;j=i;j+) putchar(#);(6)以下程序的功能是調(diào)用函數(shù)fun計算:m=l-2+3-4+9-10,并輸出結(jié)果。請?zhí)羁铡?int fun(int n) int m=O,f=l,i; for(i=1;i=n;i+) m+=i*f; f= ; return m; main()printf(”m=%dn”, ); (7)以下程序運行

32、后的輸出結(jié)果是 main() int i,n=0,0,0,0,0; for(i=1;i=4;i+) ni=ni-1*2+1; printf(”%d ”,ni); (8)以下程序運行后的輸出結(jié)果 main() int i,j,a3=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) for(j=i+1;j3;j+) aji=0; for(i=0;i3;i+) for(j=0;jb?a:b);(11)以下程序運行后輸入:3,abcde,則輸出結(jié)果是 #include move(char *str,int n) char temp; int i; temp=strn-1; for(i=n-1;i0;i-) stri=stri-1; str0=temp; main() char s50; int n,i,z; scanf(”%d,%s”,&n,s); z=

溫馨提示

  • 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

提交評論