c語言題目不理解哪位給解釋下,C語言的一些題目 不太理解程式碼,求詳細解釋,手寫部分看不懂

時間 2021-09-05 20:04:53

1樓:匿名使用者

*str主要是判斷字串是否到了末尾一個字元'\0'

1。首先c語言運算子的優先順序,關係運算子「!=」大於邏輯運算子「&&」

所以(*str&&*str!=ch) 等價於*str&&(*str!=ch)。

2。來看一看while迴圈中內容的意思。&&是必須兩個變數的值都為1才為真,才會執行while迴圈內內容。

而*str是一個字串的內容,字串只有當末尾'\0'才為0;*str==ch的時候為0

舉例:例1。s="12"; c='3'

第1次迴圈: *str='1', '1'!='3'都成立,所以進入迴圈str++;

第2次迴圈: *str='2', '2'!='3'都成立,所以進入迴圈str++;

第3次迴圈: *str='\0'=0, '0'!='3';因為*str=0所以判斷結果為0,不再進入迴圈;

進入if判斷:*str=0;ch='3', 所以滿足條件。因為現在str指向原字串末尾,所以str[0]=ch表示把源字串末尾替換為新的字元,str[1]='\0'表示在新字串末尾再加個結束符'\0';

例2。s="123"; c='2'

第1次迴圈: *str='1', '1'!='2'都成立,所以進入迴圈str++;

第1次迴圈: *str='2', '2'!='2',因為'2'=='2'所以判斷結果為0,不再進入迴圈;

進入if判斷:*str='2';ch='2',二者相等,所以不滿足條件,不進入判斷。

所以不會改變原來字串模樣。

總結:思路是:在字串中找一個字元,如果沒有找到就操作最後結束符,把新字元補充在該位置。如果找到,就退出此函式,什麼事也不做。

判斷字元在不在裡面就是用個指標移動指向字串的位置,然後用*str!=ch來判斷,如果相同指標就不再指向下一個位置,並且不進入if判斷。

怎麼將最後的字元插在最後面的見我舉例的例1

c語言的一些題目:不太理解**,求詳細解釋,手寫部分看不懂 10

2樓:

首先main()是主函式,通俗來說就是一個程式的入口,只能先執行main函式。

而題中的fun在main中被呼叫了,並且傳入的引數值是500從題目中得知,需要取 被13或17整除的數字下圖紅框可知,k就是那個除數,也就是500,所以int fun括號中輸入的應該是k

所以填入int k

最後題目要求最大十個,我也懶得說了

3樓:匿名使用者

main是主函式,fun是呼叫函式,按照這個思路去看就能明白了

哪位大蝦可以幫我解釋一道c語言的題目?我看不懂啊...給我讀讀這個程式 說的什麼意思呢??

4樓:匿名使用者

#include"stdio.h"

main()

//這裡沒有"break",繼續下一個"case "

case 1:switch(c) }}

//整個程式好像不是很完整。以上純屬個人理解。你看看

c語言的問題,不太理解這個函式,大神給解釋一下

5樓:自我程式設計

fgets函式原型

char *fgets(char *buf, int bufsize, file *stream);

引數*buf: 字元型指標,指向用來儲存所得資料的地址。

bufsize: 整型資料,指明儲存資料的大小。

*stream: 檔案結構體指標,將要讀取的檔案流。

含義:從檔案結構體指標stream中讀取資料,每次讀取一行。讀取的資料儲存在buf指向的字元陣列中,每次最多讀取bufsize-1個字元(第bufsize個字元賦'\0'),如果檔案中的該行,不足bufsize個字元,則讀完該行就結束。

如若該行(包括最後一個換行符)的字元數超過bufsize-1,則fgets只返回一個不完整的行,但是,緩衝區總是以null字元結尾,對fgets的下一次呼叫會繼續讀該行。函式成功將返回buf,失敗或讀到檔案結尾返回null。

下面我對你這個**補充說明:

stdin是c語言中標準輸入流,一般用於獲取鍵盤輸入所以** ret_val = fgets(st, n, stdin); 這裡意思:

從鍵盤讀入n位字元+結束'\0』存放到st陣列中。

而判斷if (ret_val)

輸入9個字元。列印前5個。

輸入4個字元。列印全部。

6樓:

char * s_gets(char *st, int n)

return ret_val;//返回}

7樓:匿名使用者

大致意思是一次從stdin讀取一行,最多n個字元, 如果n個裡面包含回車,擷取回車前面的

如果不包含回車,一致讀直到讀到回車

8樓:匿名使用者

返回一個指向字串的指標

求c語言題目,答案是1, 2,求解釋

如果while y 1 這個迴圈的結構體沒有錯的話,那麼要結束這個迴圈的條件是y 1。也就是說判斷之後執行y 得到y的結果是 2.內部while y 執行之前y的值就應該是0,再向前判斷,a y後a的值就是0,然後a 得到a的值就是1.前面那個迴圈條件就是當y不等於 1時,y自減1帶入下面運算,所以...

哪位高手幫忙改一下C語言程式,題目是(排序查詢),16,17有錯誤已標記出

你宣告函式時宣告的格式,和下面你定義時的格式不一樣啊 定義的格式和你用的格式一樣 你只要改了你宣告的格式就行了,宣告 定義和應用的格式要一樣才行啊。void sort int n,int score void seek int n,int score,int y void sort int n,in...

c語言題,幫忙詳細解釋一下,c語言的題,幫忙解釋一下,謝謝!!!

i 5時開始執行 if 語句 if i 4 printlf d i 輸出5i 表示先取i操作,再自增1 1表示先自增1,再取i操作所以這裡輸出 5 i 6 break 跳出for迴圈 不執行for語句裡的 i 跳出執行 printf d i i 6 i 表示先取i操作 所以輸出 6 最後i的值是7輸...