c語言題,填空,改錯,帶號的是有錯的,求高手解答

2022-11-20 21:55:34 字數 5619 閱讀 5620

1樓:冷明珠

填空題1.char *s

2.(s[i]<='9' )&&( s[i]>='0')3.s[j]='\0'

改錯題1.int *p=a;

2. for(i=0;i<10;i++)

3. for(i=0,p=a;i<10;i++,p++)第一個*:p獲取陣列a的首地址,所以應該改為 int *p=a;或者int *p = &a[0];兩種方法都可以,因為陣列第一個元素的地址就是陣列的首地址。

第二個*:i<10,當i=10時陣列就越界了,還要去掉後面分號,應改為for(i=0;i<10;i++);

第三個*:for(i=0,p=a;i<10;i++,p++)增加p的賦值,因為前面執行賦值結束時p已經指向了陣列最後一個元素的下一個單位,所以列印是應重新賦值一下。兩種賦值都可以 p=a;或者p = &a[0];

2樓:慕容冰綃

一:1.char *s

2.s[i]>'9' || s[i]<'0'

3.s[j]='\0'

二:1.int *p=a;

2. for(i=0;i<10;i++)//注意去掉分號3.for(i=0;i<10;i++,p--)

c語言問題,求高手解答下。氣泡排序法從大到小排。不管輸入什麼,第2個位置的資料都是錯的

3樓:匿名使用者

lz的不是標準的冒泡法**啊

不過也可以啦,我試了一下,應該是第三個for迴圈的控制條件,應該是j<9,你後面都有j+1了,10的話,不就越界了麼

4樓:匿名使用者

for(i=1;i<10;i++)

{for(j=0;j<10;j++)

改成:for(i=0;i<9;i++)

{for(j=i+1;j<10;j++)試試吧

5樓:匿名使用者

for(i=0;i<9;i++)}}

c語言試卷上的一個題目,求高手解答

6樓:湖南為什麼

中續45062088

後續40560882

中續就是先訪問左子樹然後根節點最後是右子樹後續就是先訪問左子樹然後右子樹最後訪問根

所說的先後順序都是以根節點為標準的

7樓:無聲

這是資料結構中的二叉樹遍歷,分為:前序遍歷、中序遍歷和後序遍歷三種。具體定義你可以找資料結構相關的書看。

你提問的結果是:中序:4 5 0 6 2 0 8 x 後序:

4 0 5 6 0 x 8 2 備註:x代表最右邊的數字,因為這個數字看不清,所以用x代替。希望能幫到你

8樓:匿名使用者

我覺得這個題最好寫個遞迴具體看一下如何呼叫的比較清楚.

c語言考試技巧

9樓:夜禮服假面

一.特點和注意事項 1、填空題

(1)上機填空題一般包含2個(或3個)空。 (2)要填空的位置用___、___、___表示。

(3)考生在考試時應刪除標識___、___、___後填入相應的符號。

特別要注意的是:只能在要填空的位置上進行修改,不要添行、刪除、合併或分解,不要改動程式行的順序,更不要自己另程式設計序。 2.改錯題

(1)上機改錯題中有2個(或3個)錯誤需要修改。

(2)試題中用「/******found******/」來提示在下一行(或下面第二行)有錯。 (3)錯誤的性質基本分為語法錯誤和邏輯錯誤,也有些試題要求把語句新增在下劃線處。

(4)特別要注意的是:只能在出錯的行上進行修 二.做題技巧

以下是對上機考試改錯題的做題方法和總結,改錯題的錯誤主要分為以下幾類:

一般情況,錯誤主要分為語法錯誤和邏輯錯誤。

先檢查語法錯誤,編譯程式後發現沒有錯誤及警告,說明沒有語法錯誤,只有邏輯錯誤;邏輯錯誤必須根據程式的功能及預期結果來考查。

因此,對於程式改錯題,應先編譯查詢其中的語法錯誤,通過編譯器的提示容易找到錯誤的地方及原因,然後再尋找邏輯錯誤。修改了語法錯誤後再次編譯,直到修改完所有的語法錯誤。而查詢邏輯錯誤時,需要執行程式根據結果來檢查。

1、if或while語句

若錯誤行是if或者while語句,則要注意以下點: 1)首先判斷是否正確書寫if或while關鍵字;

2)然後看有沒有用小括號把整個表示式括起來,若沒有則加上小括號; 3)若條件表示式中有指標變數而且沒有指標運算子時,則加上指標運算子; 4)若if條件表示式中只有一個等於號即數學等號(=),則要改寫成兩個等於號即邏輯等號(==);

若if條件表示式為其他的比較運算子,則一般是進行逆轉或加一個等於號; 2、for語句

若錯誤行是for語句,則要注意以下幾點: 1)首先判斷for有沒有書寫正確;

2)然後看for中的表示式是不是用分號(;)隔開,若不是則改為分號。 3、記住是分號(;),不是逗號(,)!

再者,分析for中的三個表示式,是否符合題意; 第一個表示式表示起始條件, 第二個表示式表示終止條件,

第三個表示式表示迴圈變數的變化。 4、return語句

若錯誤行為return語句,則要注意以下幾點: 1)首先看是不是正確書寫return關鍵字;

2)然後看是不是缺少分號,若是則加上分號即可;

3)再者判斷return後的變數或表示式是否正確;

這種錯誤需要根據題意來分析,分析返回變數或表示式的值和型別。 5、賦值語句

若錯誤行是賦值語句,則要看賦值是否正確,然後看賦值運算子是否寫正確。 6、定義語句

若錯誤行是定義語句,則要注意: 1)首先分析變數型別是否符合;

2)然後分析賦初值是否正確,求和初值賦0,求積初值賦1;

3)若以上均不是,則看是不是少定義了某個變數或少了花括號; 7、關鍵字拼寫錯誤。如:main-mian(錯誤) printf - pirntf (錯誤)

return- return(錯誤) while- while (錯誤)

8、表示式錯誤問題

表示式錯誤佔的份量最多,並且沒有統一的改法,我們只能通過題目要求來分析並修改),

1)若錯誤行中有整數1除以某個表示式或變數時,必須把整數1改為1.0;若變數或表示式是整型時,則只能進行強制型別轉換。

2)變數必須先賦值,後才參與運算,沒有賦值就不能參與運算;例如,long k;k*=num%10;

3)運算子書寫錯誤,例如,把/寫成\(num\=10);,==寫成=。 4)丟失括號() 9、字串類問題

1)若錯誤行中有字串結束符,則特別要要注意結束符有沒有寫錯(『\0』不要寫成"\0」)。

2)新組建的字串一定要加結束識別符號(『\0』); 3)要區分清楚字元『o』和數字『0』。

4)字串複製、比較必須使用用字串處理函式(strcpy或strcmp)實現,不能用賦值語句或關係運算子。 10、指標類問題

若錯誤行中有指標變數,並且該變數名之前沒有指標運算子,則般都是加上指標運算子;即注意p和*p的區別; 11、函式首部類問題:

若錯誤行是函式首部,則要注意:

1)首先看該行最後有沒有分號,若有則刪掉分號;若中間有分號則要改為逗號;

2)形參和實參型別不一致問題

① 若實參是個地址或陣列名或指標變數名,則對應的形參肯定是指標或陣列;

②若實參是二維陣列名,則對應的形參應該是指標陣列或是二維陣列; ③若後面用到形參時有指標運算子,則該形參應為指標型別;

④若形參是二維陣列或指向m 個元素的指標變數,則該二維的長度必須與main中對於陣列的第二維的長度相同。 3)函式型別不一致問題

①若函式中沒有return語句,則函式型別為void;

②若函式中有ret urn語句,則函式的型別必須與rerun後的變數型別一致;

記住,呼叫函式的型別與main中的該函式的型別一致! 12、語法錯誤問題:

1)語句缺少分號。若錯誤號中語句沒有以分號結束則加上分號;

2)變數名不一致。c語言是區分大小寫的,若錯誤行中有大寫字母一般都改為小寫字母;

3)若錯誤行中有一條橫線,則必須將橫線刪除再填空。填空題中亦是如此。 13、邏輯錯誤問題:

這種題型主要是表示式錯誤,佔的題量比較多而且沒有統一的做題方法,需要我們具體問題具體分析。對於邏輯錯誤,可按下列步驟查詢:

①先讀試題,看清題目的功能要求。

②通讀程式,看懂程式中演算法的實現方法。 ③細看程式,發現常見錯誤點。 14、書寫錯誤問題:

特別注意我們的註釋部分,註釋是以/*開始,以*/結尾,不能有多餘的,有也只能在/*和*/裡面。注意,比如「/***註釋部分*****/*/」是錯誤的!

二、程式設計時容易犯的錯誤

1.書寫識別符號時,忽略了大小寫的區別

c語言認為大些字母和小寫字母時兩個不同的字元,如在編譯程式過程中,系統會把a和認為時兩個不同的變數名。習慣上,符號常量名用大寫表示,變數名用小寫表示,以增加程式的可能性。

2.忽略了變數的型別,進行了不合法的運算

3.忽略了「=」與「= =」的區別;c語言中,「=」是賦值運算子,「= =」是關係運算子

4.忘記加分號

考生應特別注意這種情況,分號是c語言中不可缺少的一部分,語句末尾必須有分號,但有時候千萬不能加;

5.輸入變數時忘記加地址運算子「&」,而在不應加「&」的位置加了地址運算子

(1)忘記加「&」的情況。

如int a,b; scanf(「%d%d」,a,b);

此時,無法正確給a和b讀入資料。scanf函式的作用是:按照a、b在記憶體中所分配的地址將a、b的值存進去。

「&a」指a在記憶體中的地址,因此正確的書寫格式為scanf(「%d%d」,&a,&b);。

(2)多加「&」的情況。如

c語言編譯程式對陣列名的處理是:陣列名代表陣列的起始地址,scanf函式中的輸入項是字元陣列名,因此不必再加地址符&,應該去掉。

6.輸入資料的方式餘要求格式(萬用字元)不符。例如:scanf(「%d,%d」,&a,&b);

c規定:如果在「格式控制」字串中,除了格式說明以外還有其他字元,則在輸入資料時應輸入與這些字元相同的字元。下面輸入是合法的:3,4

此時不用逗號而用空格或其他字元是不對的,如:3 4(中間為空格)3:4(中間為冒號);

三、相關概念

(1)素數:定義是除了能被1和自身整除外,不存在其他任何能整除該數的自然數。因此,在判斷一個數是否為素數時,只要有除了1和本身能整除它,還有一個數能整除它,就判定此數不是素數。

(2)判斷一個年份是否為閏年:如果年份能被4 整除但是不能被100整除,或者能被400整除,這兩種情況滿足之一都是閏年。

(3)利用選擇法進行從小到大的排序。選擇法的思路為:把第一個元素與其後面的元素比較,如果比後面的大,則交換,比較完所有的元素後,第一個位置的元素是最小的元素;在把第二個元素與其後面的元素進行比較,結果是除了第一個元素外,第二個元素是最小的元素;以此類推。

(4)數的按位分離演算法是:對10取模求個位上的數字,整除10後再對10取模求十位上的數字,整除100後再對10取模求百位上的數字。

(5)最大公約數的演算法是:(1)若n>m,則用n除以m求餘數r;(2)若r=0,則m為最大公約數,若r≠0,則將r賦值於m,m賦值於n,繼續用n除以m求餘數r;(3)直到r=0,m為最大公約數。根據演算法判斷每一條語句是否正確。

(6)求最小公倍數的演算法:等於兩個數的乘積除以它們的最大公約數。 (7)矩陣時以行為外迴圈,列為內迴圈,可以同時計算周邊元素的和。

二級C語言機試我做了填空題和改錯題,都執行出結果了,並顯示沒錯誤為什麼還是不及格啊

可能有警告 這個是要扣分的 一般回扣5 10分 結果要對,並不是可以執行就算對!計算機二級c語言上機三道題都編譯執行出結果,而且結果都正確了為什麼還沒過 全國計算機等級考試二級c的程式題共有三道,分別是填空 改錯 程式設計,分值方面填空佔18分,改錯18分,程式設計24分,總分60分。而卷面總分 選...

幫幫c語言程式填空的,幫幫,C語言程式填空的

include stdio.h define n 10 void main x,i,p printf 請輸入x的值 scanf d x for i 0,p n i賦值 給i 直接結束這個迴圈,也可以用break 跳出迴圈 for i n 1 i p i 自減版程式a i 1 a i a p x 將x...

一道C語言填空題,高手進來看看,一道C語言的填空和一道程式設計題,高手過來看看啊

開啟c語言的執行bai程式du 定義檔名為cmod111就行了 zhidao 複製以版下程式就行了 include main 執行一下就權行啦 include int main return 0 這個可來不是源 填空題吧 include void main printf n 輸出結果 一道c語言的填...