⑴ 6 在計算機二級c語言中 什麼是選擇排序法
演算法要求:用選擇法對10個整數按降序排序。
演算法分析:每趟選出一個最值和無序序列的第一個數交換,n個數共選n-1趟。第i趟假設i為最值下標,然後將最值和i+1至最後一個數比較,找出最值的下標,若最值下標不為初設值,則將最值元素和下標為i的元素交換。
演算法源代碼:
#include<stdio.h>
main()
{
inta[10],i,j,k,t,n=10;
printf("Pleaseinput10numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)/*外循環控制趟數,n個數選n-1趟*/
{
k=i;/*假設當前趟的第一個數為最值,記在k中*/
for(j=i+1;j<n;j++)/*從下一個數到最後一個數之間找最值*/
if(a[k]<a[j])/*若其後有比最值更大的*/
k=j;/*則將其下標記在k中*/
if(k!=i)/*若k不為最初的i值,說明在其後找到比其更大的數*/
{t=a[k];a[k]=a[i];a[i]=t;}/*則交換最值和當前序列的第一個數*/
}
printf("Thesortednumbers:");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf(" ");
}
演算法特點:每趟是選出一個最值確定其在結果序列中的位置,確定元素的位置是從前往後,而每趟最多進行一次交換,其餘元素的相對位置不變。可進行降序排序或升序排序。
演算法分析:定義外部n-1次循環,假設第一個為最值,放在參數中,在從下一個數以後找最值若後面有比前面假設的最值更大的就放在k中,然後在對k進行分析。若k部位最初的i值。也就是假設的i不是最值,那麼就交換最值和當前序列的第一個數
⑵ c語言中排序的方法有哪些
排序演算法和語言沒有什麼關系,一般來說面試,考試就是那些
快速排序
冒泡排序
堆排序
⑶ 計算機二級c語言考試題型及分值
單項選擇題共四十題,四十分,每一個選擇分值為1分,其中單項選擇中含公共基礎知識,該部分十道題,佔10分。
二、程序填空題
程序填空題有2-3個空,佔比分值18分,該題型為上機題,其三個空佔比18分,可想而知其重要性。
三、程序改錯題
程序改錯題有2-3處錯誤,該題型分值佔比也是18分,難度比程序填空題略難。該題型也為上機題,也許重視該類題型。
四、程序設計題
程序設計題是計算機二級C語言考試重點,該題為一大題,佔比分值24分,該題型也為上機題,為考試重點,需多加練習。
註:二級公共基礎知識在各科考試選擇題中體現。程序設計部分,主要考查考生對程序設計語言使用和編程調試等基本能力,在選擇題和操作題中加以體現。
計算機二級c語言考試考試要求:
一、熟悉Visual C++2010 Express集成開發環境。
二、掌握結構化程序設計的方法,具有良好的程序設計風格。
三、掌握程序設計中簡單的數據結構和演算法並能閱讀簡單的程序。
四、在Visual C++2010 Express集成環境下,能夠編寫簡單的C程序,並具有基本的糾錯和調試程序的能力。
以上便是計算機二級c語言考試題型及分值說明。
⑷ C語言二級考試的重點
其實這些東西不需要來提問的,應為各自的能力和態度不同,方法也不盡相同。你還是要找到自己的方法來掌握重點才比較好。祝你順利通過二級!
二級考試的內容包括基礎知識和程序設計兩大部分。
基礎知識部分包括電腦基本知識、DOS基本知識和基本操作以及WINDOWS的基本概念與操作,本部分的主要難點包括電腦系統的主要技術指標及其衡量方法、電腦系統軟硬體各組成部分及其間的相互關系、數制及其相互轉換;DOS中的文件、目錄、路徑的概念及其使用方法;DOS輸入輸出重定向等。
二級考試程序設計要求報考者從5種語言(QBASIC,FORTRAN,PASCAL,C,FOXBASE)中選擇其一。包括程序設計的基本知識與基本程序設計方法兩部分內容,在基本知識中特別要注意具體語言對數據類型、表達式、基本語句和語法的規定,字元串的使用與操作,數組的定義與使用,子程序(包括函數型和過程型)的定義方法及其使用;基本程序設計要求考生熟練掌握順序、分支和循環語句的格式及正確運用,多分支與雙重循環對許多考生是難點;在語言類(QBASIC,FORTRAN,PASCAL,C)的考試中,要求考生能夠讀懂典型的程序段,掌握常用的程序設計演算法(簡單數學問題的程序設計),如求和(積)演算法,求最大值最小值及平均值演算法、基本排序演算法(選擇法、冒泡法等)、基本查找演算法等。資料庫FOXBASE的編程著重強調基本的關系資料庫操作,如分類匯總,多庫關聯,求兩個資料庫的交集、差集,在兩個資料庫中進行查詢操作等。
二級考試的上機考試包括三個部分的內容,即DOS操作題、程序修改題和程序編制題,DOS操作題的基本情況可參考本報上一期關於一級考試操作的說明,但其難度比一級考試要大,要操作的目錄往往是多級子目錄,子目錄和文件的名字也取的比較「晦澀」,特別指出的是考生應注意用COPY命令實現文件合並的操作。程序修改題是給定一個程序及其功能的簡要說明,要求改正其中的錯誤,給出的程序以「******FOUND******」的注釋行標出錯誤的大體位置,考生應特別注意不能給程序增行或減行,也不能更改程序的結構。程序編制題目一般是對某個數學問題設計演算法並編程實現。 QBASIC、PASCAL(TURBOPASCAL5?0或以上)和C(TURBOC2?0或以上)語言程序設計環境都是集成化的,考生應注意掌握在這些集成化環境中如何編輯和調試程序,FORTRAN語言的考生應特別注意FORTRAN編譯系統仍然是傳統的「編輯――編譯――連接――運行」模式。
⑸ 跪求有關國家計算機二級C語言的有關最後復習建議
我是4月剛考過的,其實2級C語言很容易過的
筆試的話把 譚浩強編的《C語言設計》搞熟就沒什麼問題了,如果不放心可以去找找《歷年考試真題》做幾套試卷找找感覺
機試就更好說了,去買正版的《南開百題》,題型其實也只有10幾種,機試就3道題,1道填空1道改錯1道編程,買正版的是因為錯誤少,要知道,錯了一點可就隔得遠了。網上也有,不過也怕會有錯誤
這些書一般書店都有的賣,建議你早點去買,然後配合電腦,多上機練習,現在復習還來得及,加油!
⑹ 二級C語言C++排序問題 求詳細講解 O(∩_∩)O謝謝
main函數第一行定義了一個整形二維數組a【4】【4】(四行四列)如下:
1,4,3,2(第0行)
8,6,5,7(第1行)
3,7,2,5(第2行)
4,8,6,1(第3行)
後邊緊接著是定義了三個整形的變數i,k,t。
接下來用for循環嵌套完成排序交換:
內層for循環完成的功能是將較小的數交換至每一行的後邊,直至最後完成行排序;
外層for循環完成的功能是使排序從第0行開始進行,一直到第3行也排完。
然後最後一句用printf將排序好的結果輸出。
至此程序結束!
不過程序第一行「=」號後邊少一個左括弧「{」,最後一行後邊少一個右括弧「}」,這樣後才完整!
⑺ 計算機二級C語言主要考點
引用。。:
數據結構與演算法
1 演算法
演算法:是指解題方案的准確而完整的描述。
演算法不等於程序,也不等計算機方法,程序的編制不可能優於演算法的設計。
演算法的基本特徵:是一組嚴謹地定義運算順序的規則,每一個規則都是有效的,是明確的,此順序將在有限的次數下終止。特徵包括:
(1)可行性;
(2)確定性,演算法中每一步驟都必須有明確定義,不充許有模稜兩可的解釋,不允許有多義性;
(3)有窮性,演算法必須能在有限的時間內做完,即能在執行有限個步驟後終止,包括合理的執行時間的含義;
(4)擁有足夠的情報。
演算法的基本要素:一是對數據對象的運算和操作;二是演算法的控制結構。
指令系統:一個計算機系統能執行的所有指令的集合。
基本運算和操作包括:算術運算、邏輯運算、關系運算、數據傳輸。
演算法的控制結構:順序結構、選擇結構、循環結構。
演算法基本設計方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術、回溯法。
演算法復雜度:演算法時間復雜度和演算法空間復雜度。
演算法時間復雜度是指執行演算法所需要的計算工作量。
演算法空間復雜度是指執行這個演算法所需要的內存空間。
2 數據結構的基本基本概念
數據結構研究的三個方面:
(1)數據集合中各數據元素之間所固有的邏輯關系,即數據的邏輯結構;
(2)在對數據進行處理時,各數據元素在計算機中的存儲關系,即數據的存儲結構;
(3)對各種數據結構進行的運算。
數據結構是指相互有關聯的數據元素的集合。
數據的邏輯結構包含:
(1)表示數據元素的信息;
(2)表示各數據元素之間的前後件關系。
數據的存儲結構有順序、鏈接、索引等。
線性結構條件:
(1)有且只有一個根結點;
(2)每一個結點最多有一個前件,也最多有一個後件。
非線性結構:不滿足線性結構條件的數據結構。
3 線性表及其順序存儲結構
線性表由一組數據元素構成,數據元素的位置只取決於自己的序號,元素之間的相對位置是線性的。
在復雜線性表中,由若干項數據元素組成的數據元素稱為記錄,而由多個記錄構成的線性表又稱為文件。
非空線性表的結構特徵:
(1)且只有一個根結點a1,它無前件;
(2)有且只有一個終端結點an,它無後件;
(3)除根結點與終端結點外,其他所有結點有且只有一個前件,也有且只有一個後件。結點個數n稱為線性表的長度,當n=0時,稱為空表。
線性表的順序存儲結構具有以下兩個基本特點:
(1)線性表中所有元素的所佔的存儲空間是連續的;
(2)線性表中各數據元素在存儲空間中是按邏輯順序依次存放的。
ai的存儲地址為:adr(ai)=adr(a1)+(i-1)k,,adr(a1)為第一個元素的地址,k代表每個元素占的位元組數。
順序表的運算:插入、刪除。 (詳見14--16頁)
4 棧和隊列
棧是限定在一端進行插入與刪除的線性表,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。
棧按照「先進後出」(filo)或「後進先出」(lifo)組織數據,棧具有記憶作用。用top表示棧頂位置,用bottom表示棧底。
棧的基本運算:(1)插入元素稱為入棧運算;(2)刪除元素稱為退棧運算;(3)讀棧頂元素是將棧頂元素賦給一個指定的變數,此時指針無變化。
隊列是指允許在一端(隊尾)進入插入,而在另一端(隊頭)進行刪除的線性表。rear指針指向隊尾,front指針指向隊頭。
隊列是「先進行出」(fifo)或「後進後出」(lilo)的線性表。
隊列運算包括(1)入隊運算:從隊尾插入一個元素;(2)退隊運算:從隊頭刪除一個元素。
循環隊列:s=0表示隊列空,s=1且front=rear表示隊列滿
5 線性鏈表
數據結構中的每一個結點對應於一個存儲單元,這種存儲單元稱為存儲結點,簡稱結點。
結點由兩部分組成:(1)用於存儲數據元素值,稱為數據域;(2)用於存放指針,稱為指針域,用於指向前一個或後一個結點。
2008-2-21 10:07 回復 鬥牛士 黛石Sara 2樓在鏈式存儲結構中,存儲數據結構的存儲空間可以不連續,各數據結點的存儲順序與數據元素之間的邏輯關系可以不一致,而數據元素之間的邏輯關系是由指針域來確定的。
鏈式存儲方式即可用於表示線性結構,也可用於表示非線性結構。
線性鏈表,head稱為頭指針,head=null(或0)稱為空表,如果是兩指針:左指針(llink)指向前件結點,右指針(rlink)指向後件結點。
線性鏈表的基本運算:查找、插入、刪除。
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)首先遍歷左子樹,然後訪問遍歷右子樹,最後訪問根結點。
7 查找技術
順序查找的使用情況:
(1)線性表為無序表;
(2)表採用鏈式存儲結構。
二分法查找只適用於順序存儲的有序表,對於長度為n的有序線性表,最壞情況只需比較log2n次。
8 排序技術
排序是指將一個無序序列整理成按值非遞減順序排列的有序序列。
交換類排序法:(1)冒泡排序法,需要比較的次數為n(n-1)/2; (2)快速排序法。
插入類排序法:(1)簡單插入排序法,最壞情況需要n(n-1)/2次比較;(2)希爾排序法,最壞情況需要o(n1.5)次比較。
選擇類排序法:(1)簡單選擇排序法,
最壞情況需要n(n-1)/2次比較;(2)堆排序法,最壞情況需要o(nlog2n)次比較。
⑻ 計算機二級c語言程序設計有哪些題型,考什麼內容
計算機二級有國考和省考兩種,我只說國考,省考是省教育考試院組織的,每個省不一樣。
全國計算機二級C語言程序設計包括40個單選題(每題一分)和三道操作題(60分)。
單選題中1~10題為二級公共基礎知識,單選題的11~40題是C語言的內容。
操作題包括程序填空(18分)、程序改錯(18分)和編程題(24分)各一題。
程序填空是將一個完整的程序,扣掉兩到三處,讓考生將它填寫完整。由於每位考生具體抽到的題目不同,程序填空有2到3個空要填。
程序改錯也是一個完整的程序,其中有2~3處錯誤要求考生將他們改正。程序改錯題會提示每一處錯誤在第幾行,在那一行的上一行有********found********標識。
編程題是要求考生編寫一個程序,然後運行出題干要求的結果。題目中主函數main()會完整給出,在主函數中將調用fun()函數,fun函數由考生自己編寫。編程題以運行結果給分,所編寫完成後必須運行,否則沒分。
二級C語言程序設計考試涉及公共基礎知識和C語言兩塊。公共基礎知識內容包括數據結構與演算法、程序設計基礎、軟體工程基礎、資料庫設計基礎四部分。考10個單選每個1分。
C語言有基礎知識(C語言概述、常量與變數、數據類型、運算符和表達式),編程三大結構(順序結構、選擇結構、循環結構),數組、函數和指針,其他內容(預處理命令、結構體和共用體、位運算、文件)四大部分內容。重點是第二、三部分。
⑼ C語言中有哪些經典的排序方法
有選擇排序法和冒泡排序法兩種,都是非常經典的排序方法,都是作為一個程序員必須掌握的排序方法。
這兩種的區別在比較的邏輯不相同,因此if中的判斷條件與for循環中的代碼也是不相同的,要根據實際情況選擇不同的排序方法。
⑽ 計算機二級C語言考試內容有那些
二級計算機是國家計算機等級考試的一部分,主要考察的是C語言的計算機編程能力。考核內容包括計算機語言與基礎程序設計能力,要求參試者掌握一門計算機語言。具體考點如下:1、C語言程序的結構。需重點了解程序的構成,main函數和其他函數,源程序的書寫格式。2、數據類型及其運算。包括C的數據類型(基本類型,構造類型,指針類型,無值類型)及其定義方法以及C運算符的種類、運算優先順序和結合性等。3、基本語句。需要了解掌握表達式語句,空語句,復合語句。以及輸入輸出函數的調用,正確輸入數據並正確設計輸出格式等。4、選擇結構程序設計,各類語句以及選擇結構嵌套。5、循環結構程序設計,理解各類循環、語句以及循環的嵌套。6、會一維數組和二維數組的定義、初始化和數組元素的引用。7、庫函數的正確調用,函數的定義方法、正確調用。8、文件操作,如文件的打開、關閉、讀寫、定位。9、地址與指針變數的概念,地址運算符與間址運算符。10、結構體與共同體。11、位運算符的含義和使用。12、編譯預處理等。