全國C語言2級考試大綱_第1頁
全國C語言2級考試大綱_第2頁
全國C語言2級考試大綱_第3頁
全國C語言2級考試大綱_第4頁
全國C語言2級考試大綱_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、文檔供參考,可復制、編制,期待您的好評與關注! 基本要求 1.熟悉Visual C+ 6.0集成開發環境。 2.掌握結構化程序設計的方法,具有良好的程序設計風格。 3.掌握程序設計中簡單的數據結構和算法并能閱讀簡單的程序。 4.在Visual C+ 6.0集成環境下,能夠編寫簡單的C程序,并具有基本的糾錯和調試程序的能力。 考試內容 一、C語言程序的結構 1.程序的構成,main函數和其他函數。 2.頭文件,數據說明,函數的開始和結束標志以及程序中的注釋。 3.源程序的書寫格式。 4.C語言的風格。 二、數據類型及其運算 1.C的數據類型(基本類型,構造類型,指針類型,無值類型)及其定義方法。

2、 2.C運算符的種類、運算優先級和結合性。 3.不同類型數據間的轉換與運算。 4.C表達式類型(賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式)和求值規則。 三、基本語句 1.表達式語句,空語句,復合語句。 2.輸入輸出函數的調用,正確輸入數據并正確設計輸出格式。 四、選擇結構程序設計 1.用if語句實現選擇結構。 2.用switch語句實現多分支選擇結構。 3.選擇結構的嵌套。 五、循環結構程序設計 1.for循環結構。 2.while和do-while循環結構。 3.continue語句break語句。 4.循環的嵌套。 六、數組的定義和引用 1.一維數組和二維數組

3、的定義、初始化和數組元素的引用。 2.字符串與字符數組。 七、函數 1.庫函數的正確調用。 2.函數的定義方法。 3.函數的類型和返回值。 4.形式參數與實在參數,參數值的傳遞。 5.函數的正確調用,嵌套調用,遞歸調用。 6.局部變量和全局變量。 7.變量的存儲類別(自動,靜態,寄存器,外部),變量的作用域和生存期。 八、編譯預處理 1.宏定義和調用(不帶參數的宏,帶參數的宏)。 2.“文件包含”處理。 九、指針 1.地址與指針變量的概念,地址運算符與間址運算符。 2.一維。二維數組和字符串的地址以及指向變量、數組、字符串、函數、結構體的指針變量的定義。通過指針引用以上各類型數據。 3.用指針

4、作函數參數。 4.返回地址值的函數。 5.指針數組,指向指針的指針。 十、結構體(即“結構”)與共同體(即:“聯合”) 1.用typedef說明一個新類型。 2.結構體和共用體類型數據的定義和成員的引用。 3.通過結構體構成鏈表,單向鏈表的建立,結點數據的輸出、刪除與插入。 十一、位運算 1.位運算符的含義和使用。 2.簡單的位運算。 十二、文件操作 只要求緩沖文件系統(即高級磁盤I/O系統),對非標準緩沖文件系統(即低級磁盤I/O系統)不要求。 1.文件類型指針(FILE類型指針)。 2.文件的打開與關閉(fopen,fclose)。 3.文件的讀寫(fputc,fgetc,fputs,fg

5、ets,fread,fwrite,fprintf,fscanf函數的應用),文件的定位(rewind,fseek函數的應用)。 考試方式 1.筆試:120分鐘,滿分100分,其中含公共基礎知識部分的30分。 2.上機:60分鐘,滿分100分。 上機操作包括: (1)填空。 (2)改錯。 (3)編程。一、選擇題(1)下列敘述中正確的是A)對長度為n的有序鏈表進行查找,最壞清況下需要的比較次數為nB)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(n/2)C)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(log2n)D)對長度為n的有序鏈表進行對分查找,最壞情況下需要

6、的比較次數為(nlog2n)(2)算法的時間復雜度是指A)算法的執行時間B)算法所處理的數據量C)算法程序中的語句或指令條數D)算法在執行過程中所需要的基本運算次數(3)軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于系統軟件的是A)編輯軟件B)操作系統C)教務管理系統D)瀏覽器(4)軟件(程序)調試的任務是A)診斷和改正程序中的錯誤B)盡可能多地發現程序中的錯誤C)發現并改正程序中的所有錯誤D)確定程序中錯誤的性質(5)數據流程圖(DFD圖)是A)軟件概要設計的工具B)軟件詳細設計的工具C)結構化方法的需求分析工具D)面向對象方法的需求分析工具(6)軟件生命周期可分為

7、定義階段,開發階段和維護階段。詳細設計屬于A)定義階段B)開發階段C)維護階段D)上述三個階段(7)數據庫管理系統中負責數據模式定義的語言是A)數據定義語言B)數據管理語言C)數據操縱語言D)數據控制語言(8)在學生管理的關系數據庫中,存取一個學生信息的數據單位是A)文件B)數據庫C)字段D)記錄(9)數據庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數據庫設計的A)需求分析階段B)邏輯設計階段C)概念設計階段D)物理設計階段(10)有兩個關系R和T如下: 則由關系K得到關系T的操作是A)選擇B)投影C)交D)并 (11)以下敘述正確的是A)C語言程序是由過程和函數組成

8、的B)C語言函數可以嵌套調用,例如:fun(fun(x)C)C語言函數不可以單獨編譯D)C語言中除了main函數,其他函數不可作為單獨文件形式存在(12)以下關于C語言的敘述中正確的是A)C語言中的注釋不可以夾在變量名或關鍵字的中間B)C語言中的變量可以在使用之前的任何位置進行定義C)在C語言算術表達式的書寫中,運算符兩側的運算數類型必須一致D)C語言的數值常量中夾帶空格不影響常量值的正確表示(13)以下C語言用戶標識符中,不合法的是A)_1B)AaBcC)a_bD)a-b(14)若有定義:double a=22;int i=0,k=18;,則不符合C語言規定的賦值語句是A)a=a+,i+;B

9、)i=(a+k)=(i+k);C)i=a%11;D)i!a;(15)有以下程序includemain() char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%cn”,a,b,c,d);當執行程序時,按下列方式輸入數據(從第1列開始,代表回車,注意:回車也是一個字符)1234則輸出結果是A)1234B)12C)12 3D)12 34(16)以i關于C語言數據類型使用的敘述中錯誤的是A)若要準確無誤差的表示自然數,應使用整數類型B)若要保存帶有多位小數的數據,應使用雙精度類型C)若要處理如“人員信息”等含

10、有不同類型的相關數據,應自定義結構體類型D)若只處理“真”和“假”兩種邏輯值,應使用邏輯類型(17)若a是數值類型,則邏輯表達式(a=1)|(a!=1)的值是A)1B)0C)2D)不知道a的值,不能確定(18)以下選項中與if(a=1)a=b; else a+;語句功能不同的switch語句是A)switch(a)case:a=b;break;default:a+;B)switch(a=1)case 0:a=b;break;case 1:a+;C)switch(a)default:a+;break;case 1:a=b;D)switch(a=1)case 1:a=b;break;case 0:

11、a+;(19)有如下嵌套的if語句if (ab)if(ac)k=a;else k=c;elseif(bc) k=b;else k=c;以下選項中與上述if語句等價的語句是A)k(ab)?a:b;k(bc)?b:c;B)k(ab)?(bc)?a:b):(bc)?b:c);C)k(ab)?(ae)?a:e):(be)?b:c);D)k(ab)?a:b;k=(ac)?a:c;(20)有以下程序includes七dio.hmain()in i,j,m=1;for(i=1;i3;i+)for(j=3;jO;j-)if(i*j)3)break;m=i*j;printf(m=%dn,m);程序運行后的輸出結

12、果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序include(stdio.hmain()int al;b2;for(;a8;a+) b+=a;a+=2;printf(%d,%dn,a,b);程序運行后的輸出結果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值為八進制數#include main()int k011;printf(%dn,k+);程序運行后的輸出結果是A)12B)11C)10D)9(23)下列語句組中,正確的是A)char *s;s=Olympic;B)char s7;s=Olympic;C)char *s;s=Olympic;

13、D)char s7;s=Olympic;(24)以下關于return語句的敘述中正確的是A)一個自定義函數中必須有一條return語句B)一個自定義函數中可以根據不同情況設置多條return語句C)定義成void類型的函數中可以有帶返回值的return語句D)沒有return語句的自定義函數在執行結束時不能返回到調用處(25)下列選項中,能正確定義數組的語句是A)int num0.2008;B)int num;C)int N=2008; int numN;D)#define N 2008 int numN;(26)有以下程序#include void fun(char *c,int d)*c=

14、*c+1;d=d+1;printf(%c,%c,*c,d);main()char b=a,a=A;fun(&b,a);printf(%e,%en,b,a);程序運行后的輸出結果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定義int(*Pt)3;,則下列說法正確的是A)定義了基類型為int的三個指針變量B)定義了基類型為int的具有三個元素的指針數組ptC)定義了一個名為*pt、具有三個元素的整型數組D)定義了一個名為pt的指針變量,它可以指向每行有三個整數元素的二維數組(28)設有定義double a10,*s=a;,以下能夠代表數組元素a3的是A)(

15、*s)3B)*(s+3)C)*s3D)*s+3(29)有以下程序include(stdio.h)main()int a5=1,2,3,4,5,b5O,2,1,3,0,i,s0;for(i0;i5;i+) ss+abi);printf(%dn, s);程序運行后的輸出結果是A)6B)10C)11D)15(30)有以下程序include main()int b 33=O,1,2,0,1,2,O,1,2,i,j,t=1;for(i=0;i3;i+)for(j=ij=1;j+) t+=bibji;printf(%dn,t);程序運行后的輸出結果是A)1B)3C)4D)9(31)若有以下定義和語句cha

16、r s110=abcd!,*s2=n123;printf(%d %dn, strlen(s1),strlen(s2);則輸出結果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include #define N 8void fun(int *x,int i)*x=*(xi);main()int aN=1,2,3,4,5,6,7,8,i;fun(a,2);for(i=O;iN2;i+)printf(%d,ai);printf(n);程序運行后的輸出結果是A)1313B)2234C)3234D)1234(33)有以下程序#include int f(int t,int n);ma

17、in int a4=1,2,3,4,s;s=f(a,4); printf(%dn,s);int f(int t,int n) if(n0) return tn-1+f(t,n-1);else return 0;程序運行后的輸出結果是A)4B)1OC)14D)6(34)有以下程序#include int fun() static int x=1;x*2; return x;main()int i,s=1,for(i=1;i=2;i+) s=fun();printf(%dn,s);程序運行后的輸出結果是A)OB)1C)4D)8(35)有以下程序#include #define SUB(a) (a)

18、-(a)main() int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(%dn,d);程序運行后的輸出結果是A)0B)-12C)-20D)10(36)設有定義:struct complex int real,unreal; data1=1,8,data2;則以下賦值語句中錯誤的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include #include struct A int a; char b10; double c;void f(

19、struct A t);main() struct A a=1001,ZhangDa,1098.0;f(a); printf(%d,%s,%6.1fn,a.a,a.b,a.c);void f(struct A t) t.a=1002; strcpy(t.b,ChangRong);t.c=1202.0;程序運行后的輸出結果是A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0 (38)有以下定義和語句struct workers int num;char name20;ch

20、ar c;structint day; int month; int year; s;struct workers w,*pw;pw&w;能給w中year成員賦1980的語句是A)*pw.year198O;B)w.year=1980;C)pw-year=1980;D)w.s.year=1980;(39)有以下程序#include main() int a=2,b=2,c=2;printf(%dn,a/b&c);程序運行后的輸出結果是A)OB)1C)2D)3(40)有以下程序#include main() FILE *fp;char str10;fp=fopen(myfile.dat,w);fp

21、uts(abc,fp);fclose(fp);fpfopen(myfile.data,a+);fprintf(fp,%d,28);rewind(fp);fscanf(fp,%s,str); puts(str);fclose(fp);程序運行后的輸出結果是A)abcB) 28cC) abc28D)因類型不一致而出錯 二、填空題(1)一個隊列的初始狀態為空。現將元素A,B,C,D,E,F,5,4,3,2,1依次入隊,然后再依次退隊,則元素退隊的順序為 【1】 。(2)設某循環隊列的容量為50,如果頭指針front=45(指向隊頭元素的前一位置),尾指針rear=10(指向隊尾元素),則該循環隊列中

22、共有 【2】 個元素。(3)設二叉樹如下:對該二叉樹進行后序遍歷的結果為 【3】 。(4)軟件是 【4】 、數據和文檔的集合。(5)有一個學生選課的關系,其中學生的關系模式為:學生(學號,姓名,班級,年齡),課程的關系模式為:課程(課號,課程名,學時),其中兩個關系模式的鍵分別是學號和課號,則關系模式選課可定義為:選課(學號, 【5】 ,成績)。 (6)設x為int型變量,請寫出一個關系表達式 【6】 ,用以判斷x同時為3和7的倍數時,關系表達式的值為真。(7)有以下程序#include main() int a=1,b=2,c=3,d=0;if(a=1)if(b!=2)if(c=3) d=1

23、;else d=2;else if(c!=3) d=3;else d=4;else d=5;printf(“%dn”,d);程序運行后的輸出結果是 【7】 。(8)有以下程序#include main() int m,n;scanf(%d%d,&m,&n);while(m!=n) while(mn) m=m-n;while(mn) n=n-m;printf(“%dn”,m);程序運行后,當輸入14 63 時,輸出結果是 【8】 。(9)有以下程序#include main() int i,j,a3=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)for(j=i;j3;j+) printf(“%d%,aij);printf(n);程序運行后的輸出結果是 【9】 。 (10)有以下程序#include main() int a=1,2,3,4,5,6,*k3,i=0;while(i3) ki=&a2*i;printf(%d,*ki);i+;程序運行后的輸出結果是 【10】 。(1

溫馨提示

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

評論

0/150

提交評論