版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、練習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,寫出下面各個表達式的值。 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 (三) 以下選項中合法的用戶標識符是_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+完全等價的表達式是_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進行修改,正確的打開語句是_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 三、閱讀分析下列程序,在_線處填上適當內(nèi)容,使程序(或函數(shù))完整。 (每空2分,共18分) 1有以下程序,其功能是將從鍵盤輸入的小寫字母轉(zhuǎn)換成大寫字母輸出, 當輸入為“#”時,結(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)在計算機中,一個字節(jié)所包含二進制位的個數(shù)是 A)2 B)
13、4 C)8 D)16 (2)在多媒體計算機中,CD-ROM屬于 A)存儲媒體 B)傳輸媒體 C)表現(xiàn)媒體 D)表示媒體(3)在Windows系統(tǒng)中,不同文檔之間互相復制信息需要借助于 A)磁盤緩沖區(qū) B)寫字板 C)剪貼板 D)記事本 (4)十六進制數(shù)100轉(zhuǎn)換為十進制數(shù)為 A)256 B)512 C)1024 D)64 (5)能將高級語言編寫的源程序轉(zhuǎn)換為目標程序的軟件是 A)匯編程序 B)編輯程序 C)解釋程序 D)編譯程序 (6)在Internet中,用于在計算機之間傳輸文件的協(xié)議是 A) TELNET B)BBS C)FTP D)WWW (7)在Windows環(huán)境下,資源管理器左窗口中
14、的某文件夾左邊標有“+”標記表示 A)該文件夾為空 B)該文件夾中含有子文件夾 C)該文件夾中只包含有可執(zhí)行文件 D)該文件夾中包含系統(tǒng)文件(8)在Windows環(huán)境下,下列敘述中正確的是 A)在“開始”菜單中可以增加項目,也可以刪除項目 B)在“開始”菜單中不能增加項目,也不能刪除項目 C)在“開始”菜單中可以增加項目,但不能刪除項目 D)在“開始”菜單中不能增加項目,但可以刪除項目 (9) 從Windows環(huán)境進入DOS方式后,返回Windows環(huán)境的命令為 A)QUIT B)WIN C)EXIT D)ESC(10) 下列敘述中正確的是 A)計算機病毒只感染可執(zhí)行文件 B)計算機病毒只感染
15、文本文件 C)計算機病毒只能通過軟件復制的方式進行傳播 D)計算機病毒可以通過讀寫磁盤或網(wǎng)絡(luò)等方式進行傳播(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)以下不能定義為用戶標識符的是 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)以下選項中非法的表達式是 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é)果錯誤,導致錯誤結(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)函數(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;語句后,表達式:*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所指字符串復制到p2所指內(nèi)存空間 B)將p1所指字符串的地址賦給指針p2 C)對p1和p2兩個指針所指字符串進行比較 D)檢查p1和p2兩個指針所指字符串中是否有0(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已正確定義并指向某個文件,當未遇到該文件結(jié)束標志時函數(shù)feof(fp)的值為 A)0 B)1 C)-1 D)一個非0值(48)下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是 A)文件由ASCII碼字符序列組成,C語言只能讀寫文本文件 B)文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件 C)文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件 D)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機械設(shè)備海上運輸合同范本
- 軟件開發(fā)技術(shù)施工方案
- 室內(nèi)設(shè)計工作室裝修協(xié)議
- 個性化咖啡館裝修合同模板
- 親子酒店陽臺裝修合同
- 民宿藝術(shù)館裝修合同范本
- 機械設(shè)備物流合同范本
- 長寧防靜電地坪施工方案
- 合同范本政府蓋章
- 公寓短租租房合同范例
- 醫(yī)藥高等數(shù)學知到智慧樹章節(jié)測試課后答案2024年秋浙江中醫(yī)藥大學
- 2024年云南省中考物理真題含解析
- 2025年中國艾草行業(yè)市場現(xiàn)狀、發(fā)展概況、未來前景分析報告
- 2024年濰坊工程職業(yè)學院單招職業(yè)適應(yīng)性測試題庫完美版
- GB/T 44823-2024綠色礦山評價通則
- 人教版英語高考試卷與參考答案(2024年)
- 河砂、碎石生產(chǎn)質(zhì)量保證措施方案
- 三位數(shù)除以兩位數(shù)過關(guān)練習口算題大全附答案
- 紅樓夢服飾文化
- 湖北省2024年村干部定向考試真題
- 2024年沙石材料運輸合同
評論
0/150
提交評論