當前位置:首頁 » 編程語言 » c語言公共基礎知識

c語言公共基礎知識

發布時間: 2023-06-16 23:47:31

『壹』 計算機二級(c語言)都考哪些內容

C語言程序設計

(1)單項選擇題,40題,40分(含公共基礎知識部分10分);

(2)程序填空題,2~3個空,18分;

(3)程序改錯題,2~3處錯誤,18分;

(4)程序設計題,1題,24分。

計算機二級考試是全國計算機等級考試(National Computer Rank Examination,簡稱NCRE)四個等級中的一個等級,考核計算機基礎知識和使用一種高級計算機語言編寫程序以及上機調試的基本技能。計算機二級考試採用全國統一命題、統一考試的形式。

(1)c語言公共基礎知識擴展閱讀

時間安排

2018年NCRE將舉辦三次考試,時間分別為3月24日至26日(第51次)、9月15日至17日(第52次)及12月8日(第53次)。其中3月份和9月份考試開考全部級別全部科目,12月份考試開考一、二級的全部科目。各省級承辦機構可根據實際情況決定是否開考12月份考試。

二級考試時間為120分鍾;

系統環境:Windows 7、Visual C++2010 學習版(Visual C++ 2010 Express)、Visual Basic6.0、Access2010、NetBeans、My SQL(Community 5.5.16);Visual Studio 2010、MS Office2010、Python3.5.2 版本及以上 IDLE。

考試科目

據了解,教育部考試中心確定從2013年上半年開始,實施無紙化的NCRE,二級6個科目是:二級C,二級VB,二級VFP、二級JAVA、二級ACCESS、二級C++。[3]取消「Delphi語言程序設計」科目(代碼:62)。

自2018年3月考試起,NCRE將執行2018版考試大綱,二級取消「Visual FoxPro 資料庫程序設計」科目(代碼:27),2017年 12 月是其最後一次組考。新增「Python 語言程序設計」科目(代碼:66),考試時長:120 分鍾,2018 年 9 月首次開考。

『貳』 計算機二級C語言考試要不要考二級的公共基礎知識

需要考的,二級考核內容包括公共基礎知識和程序設計。

程序設計從語言程序設計類(C、C++、Java、Visual Basic、Web、Python)、資料庫程序設計類(Access、MySQL)、辦公軟體高級應用(MS Office 高級應用)這九個科目中選擇一個參加考試並過關即可。

二級定位為程序員,考核內容包括公共基礎知識和程序設計。所有科目對基礎知識作統一要求,使用統一的公共基礎知識考試大綱和教程。二級公共基礎知識在各科考試選擇題中體現。程序設計部分,主要考查考生對程序設計語言使用和編程調試等基本能力,在選擇題和操作題中加以體現。

(2)c語言公共基礎知識擴展閱讀

NCRE考試實行百分制計分,但以等第通知考生成績。等第共分優秀、良好、及格、不及格四等。90~100分為優秀、80~89分為良好、60~79分為及格、0~59分為不及格。

成績在及格以上者,由教育部考試中心頒發合格證書。成績優秀者,合格證書上會註明優秀字樣;成績良好的,合格證書上會註明良好字樣。對四級科目,只有所含兩門課程分別達到30分,該科才算合格。

一般在考後 30 個工作日內由教育部考試中心將成績處理結果下發給各省級承辦機構。考後 50 個工作日,考生可登錄教育部考試中心綜合查詢網(chaxun.neea.e.cn)進行成績查詢。部分省市如江蘇、黑龍江等也可通過省市考試院或者人事考試中心進行查詢。

『叄』 全國計算機等級考試二級c語言的公共基礎知識都考什麼考不考ms office知識

不考ms office 知識。
1)前面的選擇題是基礎知識 ,二級C語言知識點分布包括:數據結構與演算法 、程序設計基礎1,軟體工程基礎,資料庫設計基礎,C程序設計的初步知識,順序結構設計,選擇結構程序設計。循環結構程序設計,函數,指針與數組,編譯與處理與動態存儲分配,結構體與共用體),位運算,文件操作,考查的知識點比較細致,例如PAD圖,線性結構與非線性結構、程序的編譯與解釋、if語句的邏輯判斷、C程序的執行過程、格式控制、循環執行次數,指針與數組的應用,if語句的嵌套,數組的應用,靜態局部變數,預處理,結構體指針變數,位運算等等。
(2)考試的常見知識點:例如基本的數據結構,資料庫的基本概念,軟體生命周期概念,查找和排序演算法。程序設計的方法與風格,結構化的分析方法,數據流圖,數據字典和軟體需求規格說明書,結構化分析方法,總體設計和詳細設計,軟體測試,關系運算,C程序的構成與格式,常用數據類型,運算符和表達式,輸入輸出函數,if語句和switch語句,while,for語句的使用,函數的基本概念,函數的返回值,參數傳遞中的傳值方法與傳地址方法,靜態存儲變數,指針與數組的基礎知識,字元串的應用,指針與數組的關系,預處理與動態存儲分配,結構體的定義和變數的引用,文件操作。
需要注意的是不要以為C語言就是單純的考C語言程序,也要注意關於編程的一些基礎知識和計算機的知識,對裡面的程序題要特別的小心才是,

『肆』 計算機國二c語言,考試內容是什麼有哪些知識點說詳細點!

您好,SA團隊給出的答案(直接給你試題看看吧,這樣比較詳細)2009年9月全國計算機等級考試筆試試卷
二級公共基礎知識和C語言程序設計
(考試時間90分鍾,滿分100分)
一、選擇題((1)~(10)、(21)~(40)每題2分,(11)~(20)每題1分,70分)
(1)下列數據結構中,屬於非線性結構的是( )。
A)循環隊列 B)帶鏈隊列
C)二叉樹 D)帶鏈棧
(2)下列數據結構中,能夠按照「先進後出」原則存取數據的是( )。
A)循環隊列 B)棧
C)隊列 D)二叉樹
(3)對於循環隊列,下列敘述中正確的是( )。
A)隊頭指針是固定不變的
B)隊頭指針一定大於隊尾指針
C)隊頭指針一定小於隊尾指針
D)隊頭指針可以大於隊尾指針,也可以小於隊尾指針
(4)演算法的空間復雜度是指( )。
A)演算法在執行過程中所需要的計算機存儲空間
B)演算法所處理的數據量
C)演算法程序中的語句或指令條數
D)演算法在執行過程中所需要的臨時工作單元數
(5)軟體設計中劃分模塊的一個准則是( )。
A)低內聚低耦合B)高內聚低耦合
C)低內聚高耦合D)高內聚高耦合
(6)下列選項中不屬於結構化程序設計原則的是( )。
A)可封裝 B)自頂向下 C)模塊化 D)逐步求精
(7)軟體詳細設計產生的圖如下:
begin
1
該圖是( )。
A)N-S圖 B)PAD圖
C)程序流程圖D)E-R圖
(8)資料庫管理系統是( )。
A)操作系統的一部分B)在操作系統支持下的系統軟體
C)一種編譯系統D)一種操作系統
(9)在E-R圖中,用來表示實體聯系的圖形是( )。
A)橢圓形 B)矩形 C)菱形 D)三角形
(10)有三個關系R,S和T如下:
2
R S T
A
B
C
A
B
C
A
B
C
a
1
2
d
3
2
a
1
2
b
2
1
b
2
1
c
3
1
c
3
1
d
3
2
其中關系T由關系R和S通過某種操作得到,該操作為( )。
A)選擇 B)投影 C)交 D)並
(11)以下敘述中正確的是( )。
A)程序設計的任務就是編寫程序代碼並上機調試
B)程序設計的任務就是確定所用數據結構
C)程序設計的任務就是確定所用演算法
D)以上三種說法都不完整
(12)以下選項中,能用作用戶標識符的是( )。
A)void B)8_8 C)_0_ D)unsigned
(13)閱讀以下程序
# include <stdio.h>
main()
{ int case; float printF;
printf ("請輸入2個數:");
scanf ("%d %f", &case, &printF);
printf ("%d %f\n", case, printF);
}
該程序在編譯時產生錯誤,其出錯原因是( )。
A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符
B)定義語句出錯,printF不能用作用戶自定義標識符
C)定義語句無錯,scanf不能作為輸入函數使用
D)定義語句無錯,printf不能輸出case的值
(14)表達式:(int)((double)9/2)-(9)%2的值是( )。
A)0 B)3 C)4 D)5
(15)若有定義語句:int x=10;,則表達式x-=x+x的值為( )。
A)-20 B)-10 C)0 D)10
(16)有以下程序
# include <stdio.h>
main()
{ int a=l, b=0;
printf ("%d,", b=a+b);
printf ("%d\n", a=2*b);
}
程序運行後的輸出結果是( )。
A)0,0 B)1,0 C)3,2 D)1,2
(17)設有定義:int a=l, b=2, c=3;,以下語句中執行效果與其它三個不同的是( )。
A)if(a>b)c=a,a=b,b=c; B)if(a>b){c=a,a=b,b=c;}
C)if(a>b)c=a;a-b;b=c; D)if(a>b){c=a;a-b;b=c;}
(18)有以下程序
# include <stdio.h>
3
main()
{ int c=0, k,
for(k=1; k<3; k++)
switch (k)
{ default: c+=k;
case 2: c++; break;
case 4: c+=2; break;
}
printf("%d\n", c);
}
程序運行後的輸出結果是( )。
A)3 B)5 C)7 D)9
(19)以下程序段中,與語句:k=a>b?(b>c ? 1 : 0) : 0;功能相同的是( )。
A)if((a>b) && (b>c)) k=l; B)if((a>b)||(b>c))k=l;
else k=0; else k=0;
C)if(a<=b)k=0; D)if(a>b) k=l;
else if(b<=c)k=1; else if(b>c)k=1;
else k=0;
(20)有以下程序
# include <stdio.h>
main()
{ char s[]={"012xy"}; int i, n=0;
for (i=0; s[i]!=0; i++)
if(S[i]>='a' &&s[i]<='z') n++;
printf("%d\n",n);
}
程序運行後的輸出結果是( )。
A)0 B)2 C)3 D)5
(21)有以下程序
# include <stdio.h>
main()
{ int n=2,k=0;
while (k++ &&n++>2);
printf("%d %d\n",k,n);
}
程序運行後的輸出結果是( )。
A)0 2 B)1 3 C)5 7 D)l 2
(22)有以下定義語句,編譯時會出現編譯錯誤的是( )。
A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\x2d';
(23)有以下程序
# include <stdio.h>
main()
{ char c1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
4
}
已知字母A的ASCII碼為65,程序運行後的輸出結果是( )。
A)E,68 B)D,69 C)E,D D)輸出無定值
(24)有以下程序
# include <stdio.h>
void fun (int p)
{ int d=2;
p=d++; printf("%d",p);}
main()
{ int a=1;
fun(a); printf("%d\n",a);}
程序運行後的輸出結果是( )。
A)32 B)12 C)21 D)22
(25)以下函數findmax擬實現在數組中查找最大值並作為函數值返回,但程序中有錯導致不能實現預定功能。
# define MIN -2147483647
int findmax (int x[],int n)
{ int i,max;
for(i=0;i<n;i++)
{ max=MIN;
if(max<x[i]) max=x[i];}
return max;
}
造成錯誤的原因是( )。
A)定義語句int i,max;中max未賦初值
B)賦值語句max=MIN;中,不應給max賦MIN值
C)語句if(max<X[i])max=X[i];中判斷條件設置錯誤
D)賦值語句max=MIN;放錯了位置
(26)有以下程序
# include <stdio.h>
main()
{ int m=1, n=2, *p=&m, *q=&n, *r;
r=p; p=q; q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序運行後的輸出結果是( )。
A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2
(27)若有定義語句:int a[4][10],*p,*q[4];且0≤i<4,則錯誤的賦值是( )。
A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1]
(28)有以下程序
# include <stdio.h>
# include <string.h>
main()
{ char str[][20]={"One*World","One*Dream!"},*p=str[1];
printf("%d,",strlen(p));printf("%s\n",p);
}
5
程序運行後的輸出結果是( )。
A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World
(29)有以下程序
# include <stdio.h>
main()
{ int a[]={2, 3, 5, 4}, i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0 : switch(a[i]%2)
{case 0 : a[i]++;break;<br>case 1 : a[i]--;<br>}break;
case 1 : a[i]=0;
}
for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");
}
程序運行後的輸出結果是( )。
A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4
(30)有以下程序
# include <stdio.h>
# include <string.h>
main()
{ char a[10]="abcd";
printf("%d,%d\n",strlen(a),sizeof(a));
}
程序運行後的輸出結果是( )。
A)7,4 B)4,10 C)8,8 D)10,10
(31)下面是有關C語言字元數組的描述,其中錯誤的是( )。
A)不可以用賦值語句給字元數組名賦字元串
B)可以用輸入語句把字元串整體輸入給字元數組
C)字元數組中的內容不一定是字元串
D)字元數組只能存放字元串
(32)下列函數的功能是( )。
fun(char *a,char *b)
{ while((*b=*a)!='\0') {a++; b++;} }
A)將a所指字元串賦給b所指空間
B)使指針b指向a所指字元串
C)將a所指字元串和b所指字元串進行比較
D)檢查a和b所指字元串中是否有'\0'
(33)設有以下函數:
void fun(int n,char *s) {……}
則下面對函數指針的定義和賦值均正確的是( )。
A)void (*pf)(); pf=fun; B)void *pf(); pf=fun;
C)void *pr(); *pf=fun; D)void(*pf)(int,char);pf=&fun;
(34)有以下程序
# include <stdio.h>
6
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運行後的輸出結果是( )。
A)7 B)8 C)9 D)10
(35)有以下程序
# include <stdio.h>
# define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n",s,t);
}
程序運行後的輸出結果是( )。
A)10,64 B)10,10 C)64,10 D)64,64
(36)下面結構體的定義語句中,錯誤的是( )。
A)struct ord {int x; int y; int z;}; struct ord a;
B)struct ord {int x; int y; int z;} struct ord a;
C)struct ord {int x; int y; int z;}a;
D)struct {int x; int y; int z;} a;
(37)設有定義:char *c;,以下選項中能夠使字元型指針c正確指向一個字元串的是( )。
A)char str[]="string";c=str; B)scanf("%s",c);
C)c=getchar(); D)*c=*string";
(38)有以下程序
# include <stdio.h>
# include <string.h>
Struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main()
{ struct A a={1001,"ZhangDa",1098.0};
a=f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
struct A f(Struct A t)
{ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;return t;}
程序運行後的輸出結果是( )。
A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0
C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0
(39)若有以下程序段
7
int r=8;
printf("%d\n",r>>1);
輸出結果是( )。
A)16 B)8 C)4 D)2
(40)下列關於C語言文件的敘述中正確的是( )。
A)文件由一系列數據依次排列組成,只能構成二進制文件
B)文件由結構序列組成,可以構成二進制文件或文本文件
C)文件由數據序列組成,可以構成二進制文件或文本文件
D)文件由字元序列組成,其類型只能是文本文件
二、填空題(每空2分,共30分)
(1)某二叉樹有5個度為2的結點以及3個度為1的結點,則該二叉樹中共有【1】個結點。
(2)程序流程圖中的菱形框表示的是【2】。
(3)軟體開發過程主要分為需求分析、設計、編碼與測試四個階段,其中【3】階段產生「軟體需求規格說明書」。
(4)在資料庫技術中,實體集之間的聯系可以是一對一或一對多或多對多的,那麼「學生」和「可選課程」的聯系為【4】。
(5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關鍵字的是【5】。
(6)若有定義語句:int a=5;,則表達式:a++的值是【6】。
(7)若有語句double x=17; int y;,當執行y=(int)(x/5)%2;之後y的值為【7】。
(8)以下程序運行後的輸出結果是【8】。
# include <stdio.h>
main()
{ int x=20;
printf("%d",0<x<20);
printf("%d\n",0<x && x<20); }
(9)以下程序運行後的輸出結果是【9】。
# include <stdio.h>
main()
{ int a=1,b=7;
do {
b=b/2; a+=b;
} while (b>1);
printf ("%d\n",a); }
(10)有以下程序
# include <stdio.h>
main()
{ int f,fl,f2,i;
f1=0; f2=1;
printf("%d %d",fl,f2);
for(i=3;i<=5;i++)
{ f=fl+f2; printf("%d",f);
f1=f2; f2=f;
}
printf("\n");
}
程序運行後的輸出結果是【10】。
8
(11)有以下程序
# include <stdio.h>
int a=5;
void fun(int b)
{ int a=10;
a+=b; printf("%d",a);
}
main()
{ int c=20;
fun(c); a+=c; printf("%d\n",a);
}
程序運行後的輸出結果是【11】。
(12)設有定義:
struct person
{ int ID; char name[12];}p;
請將scanf("%d", 【12】); 語句補充完整,使其能夠為結構體變數p的成員ID正確讀入數據。
(13)有以下程序
# include <stdio.h>
main()
{ char a[20]="How are you?",b[20];
scanf("%s",b); printf("%s %s\n",a,b);
}
程序運行時從鍵盤輸入:How are you?<回車>
則輸出結果為【13】。
(14)有以下程序
# include <stdio.h>
typedef struct
{ int num; double s; } REC;
void funl(REC x) {x.num=23; x.s=88.5;}
main()
{ REC a={16,90.0};
funl (a);
printf("%d\n",a.num);
}
程序運行後的輸出結果是【14】。
(15)有以下程序
# include <stdio.h>
fun(int x)
{ if(x/2>0) fun(x/2);
printf("%d", x);
}
main()
{ fun(6); printf("\n"); }
程序運行後的輸出結果是【15】。

『伍』 全國計算機等級考試二級c語言公共基礎知識

第一章數據結構與演算法
1.1 演算法
演算法:是指解題方案的准確而完整的描述。
演算法不等於程序,也不等計算機方法,程序的編制不可能優於演算法的設計。
演算法的基本特徵:是一組嚴謹地定義運算順序的規則,每一個規則都是有效的,是明確的,此順序將在有限的次數下終止。特徵包括:
(1)可行性;
(2)確定性,演算法中每一步驟都必須有明確定義,不充許有模稜兩可的解釋,不允許有多義性;
(3)有窮性,演算法必須能在有限的時間內做完,即能在執行有限個步驟後終止,包括合理的執行時間的含義;
(4)擁有足夠的情報。
演算法的基本要素:一是對數據對象的運算和操作;二是演算法的控制結構。
指令系統:一個計算機系統能執行的所有指令的集合。
基本運算和操作包括:算術運算、邏輯運算、關系運算、數據傳輸。
演算法的控制結構:順序結構、選擇結構、循環結構。
演算法基本設計方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術、回溯法。
演算法復雜度:演算法時間復雜度和演算法空間復雜度。
演算法時間復雜度是指執行演算法所需要的計算工作量。
演算法空間復雜度是指執行這個演算法所需要的內存空間。
1.2 數據結構的基本基本概念
數據結構研究的三個方面:
(1)數據集合中各數據元素之間所固有的邏輯關系,即數據的邏輯結構;
(2)在對數據進行處理時,各數據元素在計算機中的存儲關系,即數據的存儲結構;
(3)對各種數據結構進行的運算。
數據結構是指相互有關聯的數據元素的集合。
數據的邏輯結構包含:
(1)表示數據元素的信息;
(2)表示各數據元素之間的前後件關系。
數據的存儲結構有順序、鏈接、索引等。
線性結構條件:
(1)有且只有一個根結點;
(2)每一個結點最多有一個前件,也最多有一個後件。
非線性結構:不滿足線性結構條件的數據結構。
1.3 線性表及其順序存儲結構
線性表由一組數據元素構成,數據元素的位置只取決於自己的序號,元素之間的相對位置是線性的。
在復雜線性表中,由若干項數據元素組成的數據元素稱為記錄,而由多個記錄構成的線性表又稱為文件。
非空線性表的結構特徵:
(1)且只有一個根結點a1,它無前件;
(2)有且只有一個終端結點an,它無後件;
(3)除根結點與終端結點外,其他所有結點有且只有一個前件,也有且只有一個後件。結點個數n稱為線性表的長度,當n=0時,稱為空表。
線性表的順序存儲結構具有以下兩個基本特點:
(1)線性表中所有元素的所佔的存儲空間是連續的;
(2)線性表中各數據元素在存儲空間中是按邏輯順序依次存放的。
ai的存儲地址為:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)為第一個元素的地址,k代表每個元素占的位元組數。
順序表的運算:插入、刪除。 (詳見14--16頁)
1.4 棧和隊列
棧是限定在一端進行插入與刪除的線性表,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。
棧按照「先進後出」(FILO)或「後進先出」(LIFO)組織數據,棧具有記憶作用。用top表示棧頂位置,用bottom表示棧底。
棧的基本運算:(1)插入元素稱為入棧運算;(2)刪除元素稱為退棧運算;(3)讀棧頂元素是將棧頂元素賦給一個指定的變數,此時指針無變化。
隊列是指允許在一端(隊尾)進入插入,而在另一端(隊頭)進行刪除的線性表。Rear指針指向隊尾,front指針指向隊頭。
隊列是「先進行出」(FIFO)或「後進後出」(LILO)的線性表。
隊列運算包括(1)入隊運算:從隊尾插入一個元素;(2)退隊運算:從隊頭刪除一個元素。
循環隊列:s=0表示隊列空,s=1且front=rear表示隊列滿
1.5 線性鏈表
數據結構中的每一個結點對應於一個存儲單元,這種存儲單元稱為存儲結點,簡稱結點。
結點由兩部分組成:(1)用於存儲數據元素值,稱為數據域;(2)用於存放指針,稱為指針域,用於指向前一個或後一個結點。
在鏈式存儲結構中,存儲數據結構的存儲空間可以不連續,各數據結點的存儲順序與數據元素之間的邏輯關系可以不一致,而數據元素之間的邏輯關系是由指針域來確定的。
鏈式存儲方式即可用於表示線性結構,也可用於表示非線性結構。
線性鏈表,HEAD稱為頭指針,HEAD=NULL(或0)稱為空表,如果是兩指針:左指針(Llink)指向前件結點,右指針(Rlink)指向後件結點。
線性鏈表的基本運算:查找、插入、刪除。
1.6 樹與二*樹
樹是一種簡單的非線性結構,所有元素之間具有明顯的層次特性。
在樹結構中,每一個結點只有一個前件,稱為父結點,沒有前件的結點只有一個,稱為樹的根結點,簡稱樹的根。每一個結點可以有多個後件,稱為該結點的子結點。沒有後件的結點稱為葉子結點。
在樹結構中,一個結點所擁有的後件的個數稱為該結點的度,所有結點中最大的度稱為樹的度。樹的最大層次稱為樹的深度。
二*樹的特點:(1)非空二*樹只有一個根結點;(2)每一個結點最多有兩棵子樹,且分別稱為該結點的左子樹與右子樹。
二*樹的基本性質:
(1)在二*樹的第k層上,最多有2k-1(k≥1)個結點;
(2)深度為m的二*樹最多有2m-1個結點;
(3)度為0的結點(即葉子結點)總是比度為2的結點多一個;
(4)具有n個結點的二*樹,其深度至少為[log2n]+1,其中[log2n]表示取log2n的整數部分;
(5)具有n個結點的完全二*樹的深度為[log2n]+1;
(6)設完全二*樹共有n個結點。如果從根結點開始,按層序(每一層從左到右)用自然數1,2,….n給結點進行編號(k=1,2….n),有以下結論:
①若k=1,則該結點為根結點,它沒有父結點;若k>1,則該結點的父結點編號為INT(k/2);
②若2k≤n,則編號為k的結點的左子結點編號為2k;否則該結點無左子結點(也無右子結點);
③若2k+1≤n,則編號為k的結點的右子結點編號為2k+1;否則該結點無右子結點。
滿二*樹是指除最後一層外,每一層上的所有結點有兩個子結點,則k層上有2k-1個結點深度為m的滿二*樹有2m-1個結點。
完全二*樹是指除最後一層外,每一層上的結點數均達到最大值,在最後一層上只缺少右邊的若干結點。
二*樹存儲結構採用鏈式存儲結構,對於滿二*樹與完全二*樹可以按層序進行順序存儲。
二*樹的遍歷:
(1)前序遍歷(DLR),首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹;
(2)中序遍歷(LDR),首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹;
(3)後序遍歷(LRD)首先遍歷左子樹,然後訪問遍歷右子樹,最後訪問根結點。
1.7 查找技術
順序查找的使用情況:
(1)線性表為無序表;
(2)表採用鏈式存儲結構。
二分法查找只適用於順序存儲的有序表,對於長度為n的有序線性表,最壞情況只需比較log2n次。
1.8 排序技術
排序是指將一個無序序列整理成按值非遞減順序排列的有序序列。
交換類排序法:(1)冒泡排序法,需要比較的次數為n(n-1)/2; (2)快速排序法。
插入類排序法:(1)簡單插入排序法,最壞情況需要n(n-1)/2次比較;(2)希爾排序法,最壞情況需要O(n1.5)次比較。
選擇類排序法:(1)簡單選擇排序法,
最壞情況需要n(n-1)/2次比較;(2)堆排序法,最壞情況需要O(nlog2n)次比較。第二章程序設計基礎
2.1 程序設計設計方法和風格
如何形成良好的程序設計風格
1、源程序文檔化; 2、數據說明的方法;
3、語句的結構; 4、輸入和輸出。
注釋分序言性注釋和功能性注釋,語句結構清晰第一、效率第二。
2.2 結構化程序設計
結構化程序設計方法的四條原則是:1. 自頂向下;2. 逐步求精;3.模塊化;4.限制使用goto語句。
結構化程序的基本結構和特點:
(1)順序結構:一種簡單的程序設計,最基本、最常用的結構;
(2)選擇結構:又稱分支結構,包括簡單選擇和多分支選擇結構,可根據條件,判斷應該選擇哪一條分支來執行相應的語句序列;
(3)重復結構:又稱循環結構,可根據給定條件,判斷是否需要重復執行某一相同程序段。
2.3 面向對象的程序設計
面向對象的程序設計:以60年代末挪威奧斯陸大學和挪威計算機中心研製的SIMULA語言為標志。
面向對象方法的優點:
(1)與人類習慣的思維方法一致;
(2)穩定性好;
(3)可重用性好;
(4)易於開發大型軟體產品;
(5)可維護性好。
對象是面向對象方法中最基本的概念,可以用來表示客觀世界中的任何實體,對象是實體的抽象。
面向對象的程序設計方法中的對象是系統中用來描述客觀事物的一個實體,是構成系統的一個基本單位,由一組表示其靜態特徵的屬性和它可執行的一組操作組成。
屬性即對象所包含的信息,操作描述了對象執行的功能,操作也稱為方法或服務。
對象的基本特點:
(1)標識惟一性;
(2)分類性;
(3)多態性;
(4)封裝性;
(5)模塊獨立性好。
類是指具有共同屬性、共同方法的對象的集合。所以類是對象的抽象,對象是對應類的一個實例。
消息是一個實例與另一個實例之間傳遞的信息。
消息的組成包括(1)接收消息的對象的名稱;(2)消息標識符,也稱消息名;(3)零個或多個參數。
繼承是指能夠直接獲得已有的性質和特徵,而不必重復定義他們。
繼承分單繼承和多重繼承。單繼承指一個類只允許有一個父類,多重繼承指一個類允許有多個父類。
多態性是指同樣的消息被不同的對象接受時可導致完全不同的行動的現象。

『陸』 計算機二級C語言公共基礎知識復習重點是什麼

  1. 計算機二級C語言考試的流程:
    1. 筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。
    2. 上機操作:90分鍾,滿分100分。
    上機操作包括:
    (1) 基本操作。
    (2) 簡單應用。
    (3) 綜合應用。

  2. 計算機二級C語言考試內容 :
    一、C語言程序的結構
    1.程序的構成,main函數和其他函數。
    2.頭文件,數據說明,函數的開始和結束標志以及程序中的注釋。
    3.源程序的書寫格式。
    4.C語言的風格。

    二、數據類型及其運算
    1.C的數據類型(基本類型,構造類型,指針類型,無值類型)及其定義方法。
    2.C運算符的種類、運算優先順序和結合性。
    3.不同類型數據間的轉換與運算。
    4.C表達式類型(賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式)和求值規則。

    三、基本語句
    1.表達式語句,空語句,復合語句。
    2.輸入輸出函數的調用,正確輸入數據並正確設計輸出格式。

    四、選擇結構程序設計
    1.用if語句實現選擇結構。
    2.用switch語句實現多分支選擇結構。
    3.選擇結構的嵌套。

    五、循環結構程序設計
    1.for循環結構。
    2.while和do-while循環結構。
    3.continue語句break語句。
    4.循環的嵌套。

    六、數組的定義和引用
    1.一維數組和二維數組的定義、初始化和數組元素的引用。
    2.字元串與字元數組。

    七、函數
    1.庫函數的正確調用。
    2.函數的定義方法。
    3.函數的類型和返回值。
    4.形式參數與實在參數,參數值的傳遞。
    5.函數的正確調用,嵌套調用,遞歸調用。
    6.局部變數和全局變數。
    7.變數的存儲類別(自動,靜態,寄存器,外部),變數的作用域和生存期。

    八、編譯預處理
    1.宏定義和調用(不帶參數的宏,帶參數的宏)。
    2.「文件包含」處理。

    九、指針
    1.地址與指針變數的概念,地址運算符與間址運算符。
    2.一維。二維數組和字元串的地址以及指向變數、數組、字元串、函數、結構體的指針變數的定義。通過指針引用以上各類型數據。
    3.用指針作函數參數。
    4.返回地址值的函數。
    5.指針數組,指向指針的指針。

    十、結構體(即「結構」)與共同體(即:「聯合」)
    1.用typedef說明一個新類型。
    2.結構體和共用體類型數據的定義和成員的引用。
    3.通過結構體構成鏈表,單向鏈表的建立,結點數據的輸出、刪除與插入。

    十一、位運算
    1.位運算符的含義和使用。
    2.簡單的位運算。

    十二、文件操作
    只要求緩沖文件系統(即高級磁碟I/O系統),對非標准緩沖文件系統(即低級磁碟I/O系統)不要求。
    1.文件類型指針(FILE類型指針)。
    2.文件的打開與關閉(fopen,fclose)。
    3.文件的讀寫(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數的應用),文件的定位(rewind,fseek函數的應用)。

熱點內容
androidweb框架 發布:2025-02-12 17:32:45 瀏覽:75
安卓編程賀卡 發布:2025-02-12 17:32:44 瀏覽:837
php獲取資料庫的欄位 發布:2025-02-12 17:29:02 瀏覽:765
伺服器地址消失 發布:2025-02-12 17:23:36 瀏覽:950
後台執行php腳本 發布:2025-02-12 17:21:45 瀏覽:470
spring編程式事務 發布:2025-02-12 17:16:55 瀏覽:397
nginx禁止ip訪問 發布:2025-02-12 17:15:14 瀏覽:273
外網訪問埠 發布:2025-02-12 17:09:09 瀏覽:541
威蘭達四驅豪華版都有哪些配置 發布:2025-02-12 16:54:34 瀏覽:120
nokia恢復出廠密碼是多少 發布:2025-02-12 16:49:03 瀏覽:276