兩道C語言看程式謝結果題不會,哪位高手能幫忙解釋一下,直接給答案就算了,我是新手

時間 2021-10-14 23:03:19

1樓:匿名使用者

1 f函式為遞迴函式, putchar(x%10+'0'); 為取x的個位字元並輸出。

f(x/10) /10以後再遞迴。也就是將12340輸出到螢幕。

2考的是變數作用域問題。

但**不正確,如i=4 應為i==4,

printf("%d%d",j);中少一變數。

k未初始化,debug與release 結果會不同。

2樓:匿名使用者

第一題是講輸入的12340反向列印出來,即螢幕上顯示的結果為04321.

putchar(x%10+'0')是將x除以十之後的餘數以字元的形式列印出來,即後面加'0'的意義。

第二題**有問題,請仔細檢視題目後再提問。

3樓:匿名使用者

孩子 自己上機執行不就解決了

4樓:積雪小草

第一道題:04321

第二道題感覺有點問題

計算機二級c語言最後一道程式設計題漏洞技巧?哪位親,知道謝謝啦!

5樓:蜻蜓點水

去年研究過,考場上好像我也見到那個東西能用了,不過還是自己做的,其實很簡單的,下面是我的一篇日誌,希望對你有用

二級c的程式設計題作弊方法

網上碰到有二級c的作弊方法,提到了通過更改out.dat檔案的內容,達到作弊的目的,自己也在二級c語言的模擬考試環境下測試過,可用,滿分,24分就來了,至於真正的二級c考試,有人說能用,也有人說,不能用,只有試試就知道了,第一次考二級,也沒試過,所以不知道是不是能用

#include

void fun(char p1, char p2)

main()

void nono ()

fclose(rf) ;

fclose(wf) ;

}這個程式的函式fun的功能是連線字串si和s2的,直接看除錯程式的最後一段,開啟了兩個資料流,然後從檔案in.dat的那個流中,讀出來了s1和s2字串的內容,在呼叫了 fun函式,將s2連線到s1的後面,最後就是將連線好的s1輸出到out.dat這個檔案中

那麼就是說,只要你的程式是正確的,那麼,人家的測試程式最後會在out.dat寫出乙個特定的內容,因為in.dat是固定的

如果閱卷真的是僅僅檢測out.dat 的內容,那麼這種方法是可行的,這個程式是通過in.dat和out.dat來檢測的,具體的換別的程式也是不一定的

找到自己的考試資料夾,一般會有提示的,進去之後,會看到in.dat檔案,複製in.dat將其重新命名為out.dat檔案

然後就是按照程式的思路更改檔案的內容了

這個程式是連線字串的 ,所以肯定是將in.dat的某些東西連線了在輸出到out。dat裡面去了

下面是in.dat檔案的內容,要用記事本開啟才行,開啟方式更改

12345

67890

kjhjkhkjkl

kljkljkl

jkhjkhjkh

987689

kjhjkh

lmjnklj

sdsfsdfds

fsdfdsf

fsdfsdf

345234

423423

423423

7547dvgdf

5634

gdefgdf

tyerter

34563

565764

按照程式的設計思路,最後的程式測試階段,是for迴圈十次,然後每次讀取兩行,連線成乙個字串之後再寫入out。put

這麼最後就是謝了10次,共有10行

那麼,只需要把,12,連線一起,34,連線一起,這個程式的out.dat是下面這樣字的,組後,閱卷,這道題是滿分,當然是模擬軟體

1234567890

kjhjkhkjklkljkljkl

jkhjkhjkh987689

kjhjkhlmjnklj

sdsfsdfdsfsdfdsf

fsdfsdf345234

423423423423

7547dvgdf5634

gdefgdftyerter

34563565764

這個方法在二級c不一定能用,但是多少會有點用,不過要能看懂最後測試程式的內容,依據程式的原理,新建或者改檔案

還是有風險的,遇到**老師就不好說了,實在不會做的時候或許能用這個方法 。

6樓:h愛不絕跡

網上碰到有二級c的作弊方法,提到了通過更改out.dat檔案的內容,達到作弊的目的,自己也在二級c語言的模擬考試環境下測試過,可用,滿分,24分就來了,至於真正的二級c考試,有人說能用,也有人說,不能用,只有試試就知道了,第一次考二級,也沒試過,所以不知道是不是能用。

具體如下:

電腦常見問題解決

1、無法自動識別硬碟控制器

使用非正版的個別作業系統光碟,在安裝系統時,容易出現此錯誤。原因是非正版光碟自動載入的硬碟控制器驅動不符合電腦自身需要的驅動。這種情況就建議換正版光碟安裝作業系統。

2、手動更新錯誤的驅動程式

windows作業系統正常使用,但手動更新驅動程式把硬碟控制器的驅動程式更新錯誤,導致此故障。解決方法是進入windows系統高階選單,選擇最後一次的正常配置,即可正常進入系統。

3、bios設定變化後所導致

windows作業系統正常,但是由於某些原因,使用者修改了bios設定,導致0x0000007b故障。

7樓:想象2000樂

最好不要採取此類違背考試道德的方法。守信用是很重要的。

誠信是金誠信,這關係著乙個人的生活、學習、工作……,乙個人如果失去了誠信,將在社會上沒有立足之地。

從字面上說,「誠信」就是誠實守信。孔子說:「人而無信,不知其可也」。因而,說到「誠信」與否,很多人都認為是道德方面的問題,只是乙個人在社會的安身立命之本。

可是,在市場經濟社會,道德和利益往往是相鄰而居的。不管是乙個人還是乙個地方,重視道德,講究誠信,往往可以在經濟上得到豐厚的收益。反之,不但會在道德上遭至譴責,受到法律的嚴懲,更難以在經濟上獲得長久的利益。

就誠信的重要性而言,說「誠信是金」應是不為過的。

8樓:匿名使用者

作揖抓腳背~~~~一舉兩得

9樓:匿名使用者

the old colleges at

c語言的4個選擇題,幫忙解釋一下答案,謝謝!

10樓:匿名使用者

1. 緩衝區中輸入「2473」

while第一次迴圈:c=2,執行case 0;因為沒有break,所以順序執行case 1: putchar(c+4);【輸出6】 仍然沒有break ,繼續執行case 2:

putchar(c+4);break;【輸出6】break跳出本次迴圈;

while第二次迴圈:c=4,執行case 2: putchar(c+4);break;【輸出8】break跳出本次迴圈;

while第三次迴圈:c=7,執行default: putchar(c+2);break;【輸出9】break跳出本次迴圈;

while第四次迴圈:c=3,執行case 1: putchar(c+4);【輸出7】沒有break ,繼續執行case 2:

putchar(c+4);break;【輸出7】break跳出本次迴圈;

本題主重點是switch,case語句中如果case後沒有break語句,則順序執行,直至break跳出。

while迴圈結束,輸出換行符,程式結束,最後顯示的就是668977.

2. 程式的意思是i的初始值為2,如果i的值為0,則輸出i後i-1,直至i不為0,跳出迴圈,程式結束。因為i的初始值就不符合迴圈條件,所以執行次數為0。

本題的重點是for迴圈語句是先判斷執行條件後執行迴圈。

3.程式的意思是i的初始值為0,如果x>8,則輸出x,y後,x=x-1, i=i+1,y=i。

第一次 i=0 , x=10, y=10,

第二次 i=1, x=9, y=1

第三次,x=8,不符合迴圈條件,不執行迴圈體,跳出迴圈。

本題的重點是for迴圈語句的執行順序:首先變數賦初值【第乙個分號前的語句】然後判斷迴圈條件【兩個分號中間的語句】如果為假,跳出迴圈,反之執行迴圈體,最後執行第二個分號後的語句,然後重新判斷是否迴圈。

4. x為二維陣列,其值如下:

x[0][0]=9, x[0][1]=8, x[0][2]=7

x[1][0]=6 ,x[1][1]=5, x[1][2]=4

x[2][0]=3, x[2][1]=2, x[2][2]=1

p[0]指向x[1][1]=5,p[1]順序下推,指向x[1][2]=4,p[2]指向x[2][0]=3在迴圈中輸出p[0]和p[2]

結果為5,3

本題關鍵在於在c語言中二維陣列的值是按行連續存放的,而指標陣列如果只給p[0]賦值。其他沒有具體賦值,那麼指標p[i]指向的位址是p[0]+指標型別所佔的空間數×i,本題中陣列和指標都為int,所以p[i]中i每加1就相當於沿陣列行移動乙個

11樓:任我行

第一題:

c=getchar()表示計算機獲得乙個輸入的字元並把它賦給int型的c(在1~256之間int和char可以相互賦值).首先接收字元2,把2賦給c,while(c=getchar())!='\n')表示只要輸入的字元不是enter鍵就執行while裡面的迴圈體。

switch(c-『2』)

的執行過程是這樣的:首先計算『c'-2的值,只要該值與下面的那個case 後的表示式相同就執行其後的語句,比如說讀入的第乙個字元2,2-2=0,此時執行case 0 後面的語句,而case 0與case 1後面的語句是同乙個語句,所以執行 putchar(c+4);輸出6,由於

case 1: putchar(c+4);後面沒有break;語句,所以繼續執行其後語句,直到遇到break語句或執行完所有語句為止,為此第二個也輸出6,因為case 2後有break語句,所以結束第一次迴圈,之後輸入的473的原理也是這樣的。

第二題:

for迴圈的一般形式是for(表示式1;表示式2;表示式3){迴圈體}表示式1相當於賦初值,其作用只有一次,而表示式2是判斷條件,只要表示式2不為0就執行迴圈體,執行完迴圈體後在執行表示式3,這是乙個完整的迴圈,接著又判斷表示式2的值是否為零,不為零,又執行迴圈體,......

因為此題中i=2不等於0,所以表示式2 的值為0;因此一次也不執行。

第三題:

參閱第二題解析。

第四題:

*p=&x[1][1];表示把元素5的位址賦給了指標p;

for(i=0;i<4;i+=2)printf("%d ",p[i]);

第一次,i=0;輸出p[1][1],第二次i=2,此時使p向後移動兩個元素,因此輸出3

求解兩道C 的題,謝謝大家,求助兩道C 程式設計題,謝謝!

include include include include include include include bool check and msg bool cdt,const char true msg 0,const char false msg 0 else return cdt bool ...

這兩道數學題我都不會,哪位高手幫幫我

1 敲5下,共4個時間段,用了8秒鐘時間。8 5 1 8 4 2秒。每兩下之間用時2秒。9點鐘敲9下。共8個時間段。2 9 1 2 8 16秒。9點鐘時敲9下,需要16秒鐘時間。2 栽樹問題中,開始的一棵樹要加上。80 4 1 20 1 21棵,一邊栽樹21棵21 2 42棵,兩邊栽樹就需要42棵。...

有兩道題 求c語言大神指導,求c語言大神解答下面這道題!!!

這些英文理解起來真費勁呢,不過我知道了 include long factorial int n 計算階乘 double xx double x,int i 計算x的整數次方 double power int x 計算上述級數 return result main else include incl...