C語言考試復習題及答案_第1頁
C語言考試復習題及答案_第2頁
C語言考試復習題及答案_第3頁
C語言考試復習題及答案_第4頁
C語言考試復習題及答案_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上一、單選題(請將正確答案寫在答題紙,120題每題1分,2135題每題2分,共50分)1. 下列關于C語言的說法不正確的是( D )。A.C語言既具有高級語言的一切功能,也具有低級語言的一些功能B.注釋可以出現在程序中任意合適的地方C.C語言中的每一條執行語句都必須用分號結束,分號是C語言的一部分D.定義函數的首行要加分號2. C語言程序的執行順序是( B )。A.從第一個函數開始執行 B.從main函數開始執行C.從任意函數開始執行 D.從第一條語句開始執行3. 以下關于注釋的敘述,正確的是( D )。A.注釋參與編譯,影響程序結果B.注釋不參與編譯,但影響程序結果C

2、.注釋參與編譯,但不影響程序結果D.注釋不參與編譯,不影響程序結果4. 以下敘述正確的是( A )。A.C語言程序可以在任意C編譯器下編譯B.C語言程序只能在TC環境下編譯C.C語言程序只能在VC或TC環境下編譯D.C語言程序只能在VC環境下編譯5. C語言中的標識符只能由字母,數字和下劃線三種字符組成,且第一個字符( B )。A.必須為字母B.必須為下劃線或字母C.必須為下劃線D.可以是字母,數字和下劃線中任一字符6. 下面四個數字常量選項中,書寫均正確的是( D )。A.016 0x8f 018 (零開頭的是八進制,不能用8) B.0312 7ff -087(8進制沒有符號)C.0xbc

3、0a7(8進制沒有a) 0xa D.070 0xf1 0x19(16進制以ox開頭)7. 若有說明語句:char c=0x7f;則變量c( B )。A.包含3個字符 B.包含1個字符C.包含2個字符 D.說明不合法,c的值不確定8. 設有int x=11;則表達式(+x*1/3)的值是( B )。(11+1再除以3)A.3 B.4 C.11 D.129. 閱讀下面程序段,輸出結果為( B )。(z-a=25)#include "stdio.h" void main() char c; c=('z'-'a')/3+'A' put

4、char(c); A.H B.J C.I D.K10. 若有定義和語句:int a=23,b=023; printf(“%x,%d n”,a,b);輸出結果是( D )。A. 17,15 B.17,18 C.18,19 D. 17,1911. 已有定義語句:int x=3,y=4,z=5;則值為0的表達式是( D )。A.y%z>=y-z B.x<=+y C.x!=y+z>y-z D.x>y+求余數4/5余數4 3小于等于5 x 3>4為假,為012. 有如下程序(1.0除以3.0)#include "stdio.h"void main()fl

5、oat x=3.0,y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf("%fn",y);該程序的輸出結果是( A )。A. 0. B.0. C. 0. D.1.*13. 有以下程序#include <stdio.h>void main() int i=5;do if (i%3=1)if (i%5=2) printf("*%d", i); break;i+; while(i!=0);printf("*%dn",i);程序的運行結果是( C )。

6、A.*2*6 B.*3*5 C.*7 D.*514. 以下程序段的變量已正確定義for(i=0;i<4;i+,i+,i+) for(k=1;k<3;k+)printf("#");程序段的輸出結果是 ( B )。A.# B.# C.# D.#15. 有以下程序(S是數組)#include <stdio.h>void main() int s12=2,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i<12;i+)csi+;for(i=1;i<5;i+)printf("%d ",ci);print

7、f("n");程序的運行結果是 ( A )。A. 3 4 3 2 B.2 3 4 4 C. 1 2 3 4 D.1 1 2 316. 有下列程序:#include <stdio.h>#include <string.h>void f(char p 10,int n) char t10; int i,j;for (i=0;i<n-1; i+)for (j=i+1; j<n; j+)if(strcmp(pi, pj)>0) strcpy(t, pi); strcpy(pi, pj); strcpy(pj, t); void main(

8、) char p510="1ha", "abbdfg", "aabd", "dcdbe", "cd"f(p, 5);printf("%dn", strlen(p0);程序運行后的輸出結果是 ( D )。A.2 B.4 C.6 D.317. 有下列程序:#include <stdio.h>#include <string.h>void main() char p20='a', 'b', 'c', '

9、d', q="ab", r="abcde"strcpy(p+strlen(q), r); strcat(p, q);printf("%d %dn", sizeof(p), strlen(p);程序運行后的輸出結果是 ( A )。A.20 9 B.9 9 C.20 11 D.11 1118. 以下正確的函數定義(函數的功能求兩數之和)是 ( C )。A.int fun(int x, int y) z=x+y ; return z ; (Z沒有定義)B.fun (int x,int y) double z ;z=x+y ; ret

10、urn z ; (沒定義)C.int fun(int x,y) int z ; return z ; (沒運算)D.int fun (int x, int y) double z ;return z ; 19. 以下func函數的調用中實參的個數是( B )。func(exp1,exp2),(exp3,exp4,exp5);A.1 B.2 C.5 D.320. 有以下程序:#include <stdio.h>int fun1(double a)return a*=a; int fun2(double x,double y) double a=0,b=0; a=fun1(x); b=

11、fun1(y); return (int)(a+b); void main() double w; w=fun2(2.2,2.0);程序執行后變量w中的值是( D )。A.8.84 B.5.0 C.8 D.8.021. 若有以下程序:#include<stdio.h>void f(int n);void main() void f(int n);f(5); void f(int n)printf("%dn",n); 則以下敘述中不正確的是( D )。A.若只在主函數中對函數f進行說明,則只能在主函數中正確調用函數fB.函數f無返回值,所以可用void將其類型定義

12、為無值型C.對于以上程序,編譯時系統不會提示出錯信息:提示對f函數重復說明D.若在主函數前對函數f進行說明,則在主函數和其他函數中都可以正確調用函數f22. 以下敘述不正確的是( A )。A.在函數內復合語句中定義的變量也可在本函數范圍內有效B.函數中的形式參數是局部變量C.在函數內定義的變量只在本函數范圍內有效D.在不同的函數中可以使用同名的變量23. 若有以下定義,則對a數組元素地址的正確引用是( C )。int a10,*p=a;A.p+10 B.*a+1 C.&a9 D.&a+125. 下面程序段的運行結果是( D )。char *s="abcde"

13、s+=3; printf("%d",s);A.cde B.字符'c' C.無確定的輸出結果 D.字符'd'的地址26. 已定義以下函數 fun(char *pa, char *pb) while(*pb=*pa)!='0')pa+;pb+; 函數的功能是( D )。A.檢查pa和pb兩個指針所指字符串中是否有'0'B.將pa所指字符串的地址賦給指針pbC.對pa和pb兩個指針所指字符串進行比較D.將pa所指字符串復制到pb所指內存空間中27. 表達式y=(12>13?15:6>7?8:9)的值為(

14、C )。A.1 B.8 C.9 D.1528. 下列能正確定義字符串的語句是( B )。A.char str ='x6f' B.char str ="1010" C.char str="k" D.char str="29. 有下列程序:#include <stdio.h>#include<string.h>void main() char p ='a', 'b', 'c',q10= 'a', 'b', 'c'p

15、rintf("%d%dn",strlen(p),strlen(q);下列敘述中正確的是( D )。A.在給p 和q 數組賦初值時,系統會自動添加字符串結束符,故輸出的長度都為3B.由于q 數組中沒有字符串結束符,長度不能確定,但p 數組中字符串長度為3C.由于p 和q 數組中都沒有字符串結束符,故長度都不能確定D.由于p 數組中沒有字符串結束符,長度不能確定,但q 數組中字符串長度為330. C語言程序由函數組成,它的( A )。A.主函數可以在其它函數之后,函數內不可以嵌套定義函數B.主函數必須在其它函數之前,函數內可以嵌套定義函數C.主函數必須在其它函數之前,函數內不可

16、以嵌套定義函數D.主函數必須在其它函數之后,函數內可以嵌套定義函數31. 在一個C源程序文件中所定義的全局變量,其作用域為( B )。A.所在文件的全部范圍 B.由具體定義位置和extern說明來決定范圍C.所在函數的全部范圍 D.所在程序的全部范圍32. 以下程序的輸出結果是( A )。#include<stdio.h>int f() static int i=1; int s=1; s+=i;i+; return s;void main() int i,a=0; for(i=0;i<5;i+) a+=f(); printf("%dn",a);A.20

17、B.24 C.25 D.1533. 下面程序應能對兩個整型變量的值進行交換。以下正確的說法是( C )。main() int a=10,b=20; printf("(1)a=%d,b=%dn",a,b); swap(&a,&b); printf("(2)a=%d,b=%dn",a,b); swap(int p,int q) int t; t=p;p=q;q=t;A.該程序完全正確B.該程序有錯,只要將語句swap(&a,&b); 中的參數改為a,b即可C.該程序有錯, 只要將swap()函數中的形參p和q以及t均定義為指針

18、(并對執行語句作相應修改) 即可D.以上說法都不正確34. 以下程序中調用scanf函數給變量b輸入數值的方法是錯誤的,其錯誤原因是( D )。main()int *p,b; p=&b; printf("input b:"); scanf("%d",*p);A.*p表示的是指針變量P的地址B.*p表示的是指針變量p的值C.*p只能用來說明p是一個指針變量D.*p表示的是變量b的值,而不是變量b的地址35已有定義:char a = "123", b = '1','2','3' 以下

19、敘述中正確的是( B )A.數組a和b的長度相同B.a數組長度大于b數組長度C.a數組長度小于b數組長度D.上述說法都不對二、填空題(請將正確答案寫在答題紙對應位置橫線上,每空2分,共20分)1. 以下程序段的輸出結果是 6 。int x=17,y=31;printf ("%d",y/=(x%=6);2. 執行下列程序后的輸出結果是 a=17 。main( ) int a=10;a=(3*5,a+7); printf("a=%dn",a);3. 下列程序的輸出結果是 12345 。#include <stdio.h>main() int n=

20、54321,d;while(n!=0) d=n%10;printf("%d",d);n/=10; 4. 下列程序的功能是輸入任意整數給n 后,輸出n 行由大寫字母A 開始構成的三角形字符陣列圖形。例如,輸入整數5 時(注意:n 不得大于10),程序運行結果如下:A B C D EF G H IJ K LM NO請填空完成該程序。#include <stdio.h>void main()int i,j,n; char ch='A'scanf("%d",&n);if(n<11)for(i=1;i<=n;i+)f

21、or(j=1; j<=n-i+1;j+) printf("%2c",ch); ch+; printf("n");else printf("n is too large!n");printf("n");5. 下列程序的輸出結果是 ABCDE 。#include <stdio.h>main( ) int i;for(i='a'i<'f'i+) printf("%c",i-'a'+'A');printf("

22、;n");6. 當執行下列程序時,輸入<CR>,則其中while 循環體將執行 2 次。#include<stdio.h>main( ) char ch;while(ch=getchar()='0')printf("#");7. 以下程序段運行后,b的值是 4 。 int a = 1, b; for (b = 1; b <= 10; b+)if (a >= 8) break; if (a % 2 = 1) a += 5; continue; a -= 3;8. 下面的程序執行完后,n=_42_。int n=22;

23、main()static int x=5;int y;y=n;func();func();func()static int x=4;int y=10;x=x+2;n=n+10;y=y+n;9. 該程序運行的結果是 7 13 14 。 #include<stdio.h>#define M 100void fun(int m, int *a, int *n) int i,j=0;for(i=1;i<=m;i+)if(i%7=0|i%13=0)aj+=i;*n=j;void main() int aaM,n,k;fun(20,aa,&n);for(k=0;k<n;k+

24、)if(k+1)%20=0)printf("n");else printf("%4d",aak);printf("n");10. 以下程序中函數fun的功能是:統計person所指結構體數組中所有性別(sex)為F的記錄的個數,存入變量n中,并做為函數值返回。請填空: #include<stdio.h> #define N 3 struct ss int num;char nam10; char sex; int fun(struct ss person) int i,n=0; for(i=0;i<N;i+) if(_personi.sex_ =F ) n+; return n; void main() struct ss WN=1,”AA1”,F,2,”BB1”,M,3,”

溫馨提示

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

評論

0/150

提交評論