




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、選擇題1. 在每個C程序中都必須包含有這樣一個函數,該函數的函數名為 。A. main B. MAIN C. name D. function2. 在以下關于C語言的注釋的敘述中,不正確的是 。 A注釋可用/*、*/形式表示,也可用/形式表示 B編譯器在編譯一個程序時,將跳過注釋,不對其進行處理 C編譯器在編譯一個程序時,可發現注釋中的單詞拼寫錯誤 D程序中注釋的多少不會影響所生成的可執行文件的長度3. 以下敘述不正確的是 。 A在C程序中,嚴格區分大小寫字母 B一個C源程序有且僅有一個main函數 C在C程序中,注釋只能位于一條語句的后面 D一個C程序總是從main函數開始執行4. 下列
2、合法的標識符為 A. abde+ B. #KDJF C. 67KDJ D. DK3_5. 關于字符串和字符的關系正確的是 A. “A”與A是相同的B. 字符串是常量,字符是變量C. “A”與A是不同的D. “A ”與“A”是相同的if (xy)z=x; s=z*z;elsez=y;s=1/(z*z);if (xy)z=x; s=z*z;elsez=y;s=1/(z*z);6. 下面關于語句的說法正確的是 A. 下面這兩段程序的執行效果是一致的B. 空語句是只有一個分號的語句,它其實什么也不干C. 語句的構成不一定需要分號D. 語句的書寫對程序的運行不起作用,因此可以隨便寫都可以7. 以下各標識
3、符中,合法的用戶標識符組為 。A. PAd,P#d,b-b,abc,_0123,ssipedB. cin,a10,CPP,float,del_word,signedC. void,max,hiy,list,*jerD. a,temp,_isw,INT,keep,wind8. 字符串“”EOF= -61”的長度是 。A 8 B 9 C 12 D 非法字符串9. 數學式在C程序中對應的不正確的表達式為 。 Asqrt(sin(x)0?sin(x):-sin(x) Bsqrt(fabs(sinx) Csqrt(sqrt(sinx*sinx) Dfabs(sqrt(sin(x)10. 下列 是C語言的
4、有效標識符?A_No1BNo.1 C12345 Dint11. C語言中,表示一條語句結束的標號是 A# B; C/ D12. 每個C程序中都必須有且僅有一個 A類B預處理命令 C主函數D語句13. 下列數據類型不是C語言基本數據類型的是 。A字符型 B整型 C實型 D數組14. 下列字符列中,可作為C語言程序自定義標識符是 。 Aswitch Bfile Cbreak Ddo 15. 運算符 +、=、=、% 中,優先級最低的運算符是 。 A + Bb?a大于b:a小于b; printf(%sn, s1); A. a大于b B. a小于b C. 1 D. 輸出語句有錯24. int k=10;
5、while(k=0) k=k-1;則下面描述正確的是 。A. while循環執行10次 B. 循環是無限循環C. 循環體語句一次也不執行 D. 循環體語句執行一次25. int a=1,b=2,c=2,t;while(ab) t=a;a=b;b=t;c-;printf(%d,%d,%dn,a,b,c);運行結果為 。A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,126. int x=-1;do x=x*x;while(!x);下列說法正確的是 。A. 是死循環 B. 循環執行兩次C. 循環執行一次 D. 有語法錯誤27. 以下能正確計算1*2*3*10的程序段是 。A.
6、do i=1;s=1; B. do i=1;s=0;s=s*i; i+; s=s*i;i+; while(i=10); while(i=10);C. i=1;s=1; D. i=1;s=0; do s=s*i; dos=s*i;i+; i+;while(i=10); while(i=10);28. 以下描述正確的是 。A. 由于do-while循環中循環體語句只是一條可執行語句,所以循環體內不能使用復合語句B. do-while循環由do開始,用while結束,在while(表達式)后面不能寫分號C. 在do-while循環體中,一定要有能使while后面表達式的值變為零(“假”)的操作D.
7、do-while循環中,根據情況可以省略while29. while和do-while循環的主要區別是 。A. do-while的循環體至少無條件執行一次B. while的循環控制條件比do-while的循環控制條件嚴格C. do-while允許從外部轉到循環體內D. do-while的循環體不能是復合語句30. 下面有關for循環的正確描述是 。A. for循環只能用于循環次數已經確定的情況B. for循環是先執行循環體語句,后判斷表達式C. for循環中,不能用break語句跳出循環體D. for循環的循環體語句中,可以包含多條語句,但必須用花括號括起來31. 對for(表達式1; ;表達
8、式3)可理解為 。A. for(表達式1;0;表達式3) B. for(表達式1;1;表達式3)C. for(表達式1;表達式1;表達式3)D. or(表達式1;表達式3;表達式3)32. 在C編程語言中,以下正確的描述是 。A. continue語句的作用是結束整個循環的執行B. 只能在循環體內和switch語句體內使用break語句C. 在循壞體內使用break語句或continue語句的作用相同D. 從多層循環嵌套中退出,只能使用goto語句33. 下面程序段 。for(t=1;t=100;t+) scanf(%d,&x); if(x0) continue; printf(%dn,t);
9、A. 當x=0時什么也不輸出C. cout永遠也不執行 D. 最多允許輸出100個非負整數34. 定義一個函數實現交換x和y的值,并將結果正確返回。能夠實現此功能的是 。A. swap(int x, int y) int t; t=x; x=y; y=t; B. swap(int *x, int *y) int t; t=x; x=y; y=t; C. swap(int *x, int *y) int t; t= *x; *x = *y; *y=t; D. swap(int *x, int *y) int *t; t=x; x=y; y=t; 35. 若有代數式3ae/bc,則不正確的C語言表
10、達式是 。A. a/b/c*e*3 B. 3*a*e/b/cC. 3*a*e/b*c D. a*e/c/b*336. 以下表達式值為3的是 。A. 16-13%10 B. 2+3/2C. 14/3-2 D. (2+6)/(12-9)37. 設有說明語句,int k=7, x=12;則以下能使值為3的表達式是 。A. x%=(k%=5) B. x%=(k-k%5)C. x%= k-k%5 D. (x%=k)-(k%=5)38. 若有條件表達式(exp)? A+: b-,則以下表達式中能完全等價于表達式(exp)的是 。A. (exp= =0) B. (exp!=0) C. (exp= =1) D
11、. (exp!=1)39. 設有以下語句:typedef struct REC char c; int a4; REC1;則下面敘述中正確的是 。A可以用REC定義結構體變量BREC1是struct REC類型的變量CREC是struct類型的變量D可以用REC1定義結構體變量40. 下列關于結構的語法錯誤的是A結構是由用戶自定義的一種數據類型B結構中可設定若干個不同數據類型的成員C結構中成員的數據類型可以是另一個已定義的結構D在定義結構時,可以為成員設置默認值41. 以下關于結構體的敘述中,錯誤的是 。A結構體是一種可由用戶構造的數據類型B結構體中的成員可以具有不同的數據類型C結構體中的成員
12、不可以與結構體變量同名D結構體中的成員可以是指向自身結構的指針類型42. 說明一個結構體變量時,系統分配給它的內存是 。A各成員所需內存量的總和B結構中第一個成員所需內存量C成員中占內存量最大者所需的容量D結構中最后一個成員所需內存量43. 設有以下說明語句:struct stu int a; float b; stutype;則下面的敘述不正確的是 。Astruct是結構體類型的關鍵字Bstruct stu是用戶定義的結構體類型名Cstutype是用戶定義的結構體類型名Da 和 b都是結構體成員名44. 若有如下定義struct data int x,y; test1=10,20, test
13、2;則以下賦值語句中錯誤的是 。A. test2=test1; B. test2.x=test1.x;C. test2.x=test1.y D. test2=30,40;45. 以下對結構體變量stu1中成員age的非法引用是 。struct student int age; int num; stu1,*p;p=&stu1;A. stu1.age B. student.age C. p-age D. (*p).age46. 當說明一個共用體變量時,系統分配給它的內存是 。A. 各成員所需內存量的總合B結構中第一個成員所需內存量C成員中占內存量最大者所需的容量D結構中最后一個成員所需內存量47
14、. 以下對C語言中共用體類型數據的敘述正確的是 。A可以對共用體變量名直接賦值B一個共用體變量中可以同時存放其所有成員C一個共用體變量中不能同時存放其所有成員D共用體類型定義中不能出現結構體類型的成員48. 若有以下定義和語句:union data int i; char c; float f; a;int n;則以下語句正確的是 。Aa=5; B. a=2,a,1.2C. printf(“%dn”,a); D. n=1;49. 設有以下說明,則下面不正確的敘述是 。union int i; char c; float f; un;A. un所占的內存長度等于成員f的長度Bun的地址和它的成員
15、地址都是同一地址Cun可以作為函數參數D不能對un賦值,但可以在定義un時對它初始化50. C語言共用體類型變量在程序運行期間A所有成員一直駐留在內存中B只有一個成員駐留在內存中C部分成員駐留在內存中D沒有成員駐留在內存中51. 使用typedef定義一個新類型的正確步驟是 。A(2)、(4)、(1)、(3) B. (1)、(3)、(2)、(4)C(2)、(1)、(4)、(3) D. (4)、(2)、(3)、(1)(1) 把變量名換成新類型名(2) 按定義變量的方法寫出定義體(3) 用新類型名定義變量(4) 在最前面加上關鍵則typedef52. 下面對typedef的敘述中不正確的是 。A用
16、typedef可以定義各種類型名,但不能用來定義變量B用typedef可以增加新類型C用typedef只是將已存在的類型用一個新的標識符來代表D使用typedef有利于程序的通用和移植53. 下面試圖為double說明一個新類型名real的語句中,正確定是 。Atypedef real double;B. typedef double real;C. typedef real=double;D. typedef double=real;54. 下面能正確進行字符串賦值操作的是 。A. char s5=“ABCDE”; B. char s5=A, B, C, D, E;C. char *s; s
17、=“ABCDE”; D. char *s; scanf(“%s”,s);55. 下面程序段的運行結果是 。char *s=”abcde”;s+=2; printf(“%d”,s);A. cde B. 字符c C. 字符c的地址 D. 無確定的輸出結果56. 下面程序段的運行結果是 。char str =”ABC”, *p=str;printf(“%dn”, *(p+3);A. 67 B. 0 C. 字符C的地址 D.字符C57. 下面程序段的運行結果是 。char a =”language”, *p;p=a;while(*p!=u)printf(“%c”,*p-32); p+;A. LANGU
18、AGE B. language C. LANG D. langUAGE58. 有如下說明語句,則以下不正確的敘述是 。char a =”It is mine”;char *p=”It is mine”;A. a+1表示的是字符t所在存儲單元的地址Bp指向另外的字符串時,字符串的長度不受限制Cp變量中存放的地址值可以改變Da中只能存放10個字符答案:1A 2C 3C 4D 5C 6B 7D 8A9B 10A 11B 12C 13D 14B 15C 16B 17A 18D 19A 20C 21D 22B 23A24C 25D 26C 27C 28C 29A 30D 31B32B 33D 34C35
19、C 36B 37. D 38. B 39. D 40. D 41. C 42. A43. C 44. D 45. B 46.C 47.C 48.B 49.C 50.B 51.C52. B 53. B 54.C 55.C 56. B 57. C 58. D二、填空題1. 程序的三種基本的控制結構是: 、 、 。2. C語言中的每條基本語句以 作為結束符,每條復合語句以作為結束符。3. 關系表達式x+y5的相反表達式為 。4. 下面的程序段中循環體的執行次數是 。a=10;b=0;dob+=2;a-=2+b; while(a=0);5. 下面程序段的運行結果為 。x=2;doprintf(*);
20、x-; while(!x=0);6. 已知int a32=3, 2, 1; 則表達式“a00/a01”的值是 。7. 若用數組名作為函數調用時的實參,則實際上傳遞給形參的是 。8. 如果一個函數無返回值,定義它時函數類型應是 。9. 預處理命令以 開頭。10. 指針類型變量用于存儲 ,在內存中它占有一個存儲空間。11. 賦值語句在執行時先計算 ,再將該值轉換成與 一致的值,并將值賦給左部變量。12. 在程序中else總是與 的if配對,而不管程序的書寫格式如何。13. 在函數中使用 語句返回值。14. 函數的形參在未被調用前 分配空間,函數形參的 要和實參相同。15. 函數調用一般分 、 ,前
21、者的特點是形參和實參各有獨立的存儲空間,形參的存儲空間在函數被調用時才分配,形參內容的變化不影響實參,后者的特點是形參實參共用一個存儲空間,形參內容的改變可以改變實參值。16. 在傳值調用中,實際是把實參的 傳給形參。17. int a3=3; 則a2= 。18. int a3=1, 3, 5, 7; 則 。19. 數組由 和 構成,其數組元素的數據類型是 。20. 聲明長度為10的float型數組a,且初始化為0的語句是: 。21. 指針是存放一個變量的 的變量。22. 當數組名作形參時,相當于 。23. 要訪問數組元素可以采用 、 、 。24. 定義一個指針p,它指向一個有6個整型元素的一
22、維數組,定義語句為 。25. 定義一個指針數組p,它有4個元素,每個指針指向一個整型數據,定義語句為 。26. 指針可以指向字符串,在定義一個字符型指針時,可以給它初始化,目的是把字符串的 放入指針變量。27. 指針可以指向函數,這時它所指的是函數的 。28. C語言的源程序必須通過 和 后,才能被計算機執行。29. C語言源程序文件的后綴是 ;經過編譯后,生成文件的后綴是 ;經過連接后,生成文件的后綴是 。30. 在C語言中,表示邏輯“真”值用 。31. 設y為int型變量,請寫出描述“y是奇數”的表達式 。32. C語言提供的3種邏輯運算符是 、 和 。33. 若x、y、z均為int型變量
23、,則描述“x或y中有一個小于z”的表達式是 。34. 設a、b、c均為int型變量且a=7.5, b=2,c=3.6, 則表達式ab & ca | ab 的值是 。35. 設a、b、c均為int型變量且a=6, b=4,c=2, 則表達式!(a-b)+c-1 & b+c/2的值是 。36. 設a、b均為int型變量且a=2, b=4, 則表達式!(x=a) | (y=b) & 0的值是 。37. 設a、b、c均為int型變量且a=1, b=4,c=3, 則表達式!(ab) | !c & 1的值是 。38. 若有條件“2x3或x-10”,其對應的C語言表達式是 。答案:1. 順序結構 選擇結構
24、循環結構2. ; 3. x+y=54. 35. *6. 17. 數組首地址8. 內置函數9. #10. 所指變量的地址11. 表達式的值 左部變量類型12. 它前面最近且未配對13. return14. 不 類型及數量15. 傳值調用 傳址調用16. 值17. 018. 會出錯19. 數組名 下標 相同的20. float a10=0;21. 地址22. 指針23. 下標法 地址法 指針法24. int (*p)625. int *p426. 首地址27. 入口地址28. 編譯 連接29. c obj exe30. 非0數字31. (y%2)= =132. & | !33. xz | yz34
25、. 035. 136. 037. 038. x2 | x-10三、填空完成下面的程序1. 以下程序的功能是:輸出x,y,z三個數中的最大者。請填空。#include int main( ) int x=4, y=6, z=7; int u,v ; if( xy ) u=x; else u=y; if( uz ) v=u; else v=z; printf(“v=%d”,v); return 0;2.以下程序的功能是:輸入3個整數,按從大到小的順序進行輸出。請填空。#include int main( ) int x,y,z,c; scanf(“%d%d%d”,&x,&y,&z); if( yz
26、 ) c=y;y=z;z=c; if( xz ) c=x;x=z;z=c; if( xy ) c=x;x=y;y=c; printf(“%d,%d,%d”,x,y,z); return 0;3.以下程序的功能是:輸入一個字符,如果它是一個大寫字母,則把它變成小寫字母;如果它是一個小寫字母,則把它變成大寫字母;其他字符不變。請填空。#include int main( ) char ch; scanf(“%c”,&ch); if( ch=A & ch=a & ch=z ) ch=ch-32; printf(“%c”,ch); return 0;4.以下程序的功能是:根據輸入的三角形的三條邊,判斷
27、是否能組成三角形,若可以則輸出它的面積和三角形的類型。請填空。#include #includeint main( ) float a,b,c; float s,area; scanf(“%f%f%f”,&a,&b,&c); if( a+bc & b+ca & a+cb ) s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“%f”,area); if( a= =b & b= =c ) printf(“等邊三角形”); else if ( (a= =b & b!=c) | (a= =c & c!=b) | (c= =b & a!=c) ) p
28、rintf(“等腰三角形”); else if(a*a+b*b=c*c) | (a*a+c*c=b*b) | (b*b+c*c=a*a) printf(“直角三角形”); else printf(“一般三角形”); else printf(“不能組成三角形”); return 0;5. 將以下含有switch語句的程序段改寫成對應的含有非嵌套if語句的程序段。請填空。含有switch語句的程序段:int x,y,m;y=(int)(x/10);switch(y) case 10: m=5;break;case 9: m=4;break;case 8: m=3;break;case 7: m=2
29、;break;case 6: m=1;break;default: m=0;含有非嵌套if語句的程序段:int x,m;if( x=100 ) m=5;if(x=90) m=4;if(x=80) m=3;if(x=70) m=2;if(x=60) m=1;if( x=110 ) m=0; 6. 根據以下給出的嵌套if語句,填寫對應的switch語句,使它完成相同的功能。(假設mark的取值在1100之間。)if語句:if(mar60) k=1;else if( mark70) k=2;else if( mark80) k=3;else if( mark90) k=4;else if( mark
30、=100) k=5;switch語句:switch( (int)(mark/10) )case 0: case 1: case 2: case 3: case 4: case 5: k=1;break;case 6: k=2; break;case 7: k=3;break;case 8: k=4;break;case 9: case 10: k=5; 7. 下面程序的功能是從鍵盤輸入若干學號,然后輸出學號中百位數字是3的學號(輸入0時結束循環),請填空。#include int main( ) long int num; scanf(“%ld”,&num); do if (num/100%/
31、10= =3) pringf(“%ld”,num);scanf(“%ld”,&num); while (num!=0) ;return 0;8. 下面程序的功能是計算正整數2345的各位數字的平方和,請填空。#include int main( ) int n=2345,sum=0; do sum=sum+ (n%10)*(n%10) ;n= n/10 ;while(n);printf(“sum=%d”,sum);return 0;9. 下面程序的功能是求算式xyz+yzz=532中的x,y,z的值(其中xyz和yzz分別表示一個三位數),請填空。#include int main( ) in
32、t x,y,z,I,result=532; for(x=1;x10;x+)for(y=1;y10;y+) for( z=0 ; z10; z+) i=100*x+10*y+z+100*y+10*z+z; if (i= =result) printf(“x=%d,y=%d,z=%dn”,x,y,z); return 0;10.有1020個西瓜,第一天賣一半多兩個,以后每天賣剩下的一半多兩個,下面的程序統計買完所需的天數,請填空。#include int main( ) int day=0, x1=1020, x2; while (x1) x2= x1/2-2 ;x1=x2;day+; print
33、f(“day=%dn”,day);return 0;11.下面的程序的功能是用do-while語句求11000之間滿足“用3除余2,用5除余3,用7除余2”的數,且一行只打印5個數,請填空。#include int main( ) int i=1,j=0; do if (i%3= =2 & i%5= =3 & I%7= =2) printf(“%4d”,i); j+; if (j%5= =0) printf(“n”); i=i+1; while(i1000);return 0;12.下面程序的功能是求1000以內的所有完全數。請填空。(說明:一個數如果恰好等于它的因子之和(除自身外),則稱該數
34、為完全數。例如:6=1+2+3,6為完全數)#include int main( ) int a,k,m; for(a=1;a=1000;+) for( m=0, k=1 ; k=a/2;k+) if(!(a%k) m=m+k; if(m= =a) printf(“%4d”,a); return 0;13.下面的程序是從鍵盤輸入的10個整數中,找出一個能被7正處的數,若找到,打印次數;若未找到,打印not exist。請填空。#include int main( ) int k,a; for(k=1;k=10;k+) scanf(“%d”,&a); if(a%7= =0) break; if
35、(k=10) printf(“%dn”,a); else printf(“not existn”);return 0;四、給出下列程序運行后的輸出結果1. 當a=1,b=3,c=5,d=4時,執行以下程序段后x的值是 2 。if (ab) if(cd) x=1; elseif(ac) if(bd) x=2; else x=3;else x=6; else x=7;2. 以下程序的輸出是 -1 。#include int main( ) int a=100,x=10,y=20,ok1=5,ok2=0; if(xy) if(y!=10)if(!ok1) a=1;else if(ok2) a=10;
36、 a=-1; printf(“%dn”,a);return 0;3. 以下程序的輸出是 2 。#include int main( ) int x=2,y=-1,z=2; if(xy)if(y0) z=0;else z+=1; printf(“%dn”,z);return 0;4. 以下程序的輸出是 OK 。#include int main( ) int x=1; if(x=2)printf(“OK”); else if(x2) pirntf(“%dn”,x); else printf(“Quit”);return 0;5. 若運行時為變量x輸入12,則以下程序的運行結果是 0 。#incl
37、ude int main( ) int x, y; scanf(“%d”,&x); y=x12? X+10: x-12; printf(“%dn”,y);return 0;6. 若運行時輸入:2,則以下程序的運行結果是 2nd class postage is 14p 。#include int main( ) char class;printf(“Enter 1 for 1st class post or 2 for 2nd post”);scanf(“%c”,&class);if(calss= =1) printf(“1st class postage is 19p”);else printf(“2nd class postage is 14p”);return 0;7. 若運行時輸入4.4,則以下程序的運行結果是 Selling Price(0.3)$ 5.72 。#include int main( ) float costPrice, sellingPrice; printf(“Enter costPrice $:”); scanf(“%f”,&costPrice); if( costPrice=5 )sellingPrice=costPrice+costPrice*0.25; p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北交所科技成長產業跟蹤第二十八期:小馬智行與廣州公交集團合作推動自駕技術商業化應用關注北交所無人車概念企業
- 基于2025年農村人居環境整治的社會穩定風險評估與城鄉融合發展報告
- 智能化改造對城市污水處理廠運營效率提升的影響報告
- 線下演出市場2025年演出市場政策法規解讀與合規報告
- 商業地產項目數字化運營策略與客戶體驗反饋機制優化報告
- 食品行業食品安全追溯體系與RFID技術應用現狀與發展趨勢報告
- 工業互聯網平臺2025年異構數據庫融合技術在化工行業中的化工行業市場前景分析報告
- 智慧養老服務平臺項目投資回報率分析與可行性報告
- 答題萬能公式概要1
- 2025年二手電商平臺信用體系建設與信用教育普及報告
- 工程勘察設計收費標準使用手冊
- 網絡暴力主題班會PPT課件講義
- 《工程管理指導書》word版
- 合理低價法得分計算
- 關于涉農企業稅收風險管理的實踐和思考
- 05S502閥門井圖集
- 輪扣式支架模板施工方案
- 雙門通道控制(共20頁)
- 圖像的頻域增強
- 瓦利安離子注入機工作原理
- 《數控加工技術說課》
評論
0/150
提交評論