1樓:匿名使用者
分析return alien_say("betho! altec oh liryom(a loadjudas!) dowd."), 0;
//逗號表示式,是取最右邊的結果,此句相當於兩句//alien_say("betho! altec oh liryom(a loadjudas!) dowd.");
//return 0;
現在來看
void alien_say(char * p)先來看輸出的第一個字元 *(p+=*(p+1)-*p)));
裡面的表示式 p+=*(p+1)-*p; 其中*(p+1)為e, *p為b, e-b結果是3
所以p+=3; p向後移動3個位置,指向第4個字元 h再進行上面的運算 *(p+1)為o, *p為 h o-h結果為6p+=6指標再向後移動6個位置,指向 e...
and so on....
2樓:泡望笑
輸出確實是:hello world!
關鍵是對 *(p += *(p + 1) - *p) 的理解。其中p+=*(p + 1) - *p表示指標的移動,而移動的位置由指標當前位置後一個字母減當前所指字母所得。如迴圈第一次時,由*(p + 1) - *p即 e-b得到3,所以p+=*(p + 1) - *p也就相當於p+=3,即指標向後移動3個位置,第一個輸出字母即為h。
照此類推。。。
3樓:
結果是這樣的
「hc」中的「h
」c「是」altec「中的
接著就是空格,停止
4樓:匿名使用者
hc應該是從betho! altec oh liryom(a loadjudas!) dowd這個字串裡出來的
⊙﹏⊙b汗(我這執行輸出地是hello world!)。 我用的cfree5.0
有一個關於c語言的問題,很迷惑啊!希望大家能解釋下,謝謝!
5樓:匿名使用者
確實是5行3列。但是你讀入的語句
scanf("%d", &a[j][i]);
i是外層迴圈,j是內層迴圈,所以讀入的次序是:a[0][0],a[1][0],a[2][0],a[3][0],a[4][0],a[0][1],a[1][1],...也就是先把第一列的5個數都讀入,再讀入第2列,然後是第3列。
所以你輸入時每5個數一組,而不是每3個數一組。
6樓:
for(i=0; i<3; i++) /* 各科 */
{for (j=0; j<5; j++) /* 各人 */
你看這個迴圈外層是以for(i=0; i<3; i++) 即以列為條件的,所以看起來是輸入3行5列,其實是3列5行。
7樓:匿名使用者
a[5][3]是5列3行。
c語言的,求解第十題,能幫我解釋一下嗎?謝謝了
8樓:擺渡人生
25解釋:
輸入後 x=15 然後是條件賦值語句
15>12 所以為真 就執行 x+10 即25否則執行x-12 為3
誰能幫忙具體分析一下這段c語言中的if語句?50分,誰分析的詳細給誰哦~~
9樓:
第一行:age也就是年齡小於18歲進入迴圈第二行:輸出「you cannot vote yet」 你現在不能投票
第三行:yrs的值等於18-age,也就是差幾歲到18第四行:輸出you can vote in yrs years。就是說還差幾年可以投票
哪兒不明白?
if語句的意思是當小括號內的條件成立的時候,就執行下面的大括號裡的語句。
10樓:心翼學吧
就是判斷輸出某人是否可以投票,如果不能則輸出還要多少年可以投票。
例如:張三今年15,age=15,15<18列印:you cannot vote yetyrs=18-age=18-15=3,不就是3年後張三就可以投票了。
因此列印:you can vote in 3 years.
11樓:幻☆天芒
if (age < 18)
判斷年齡是否滿足條件。如果小於18,就執行if下的語句。一句一句執行。
先輸出you cannot vote yet\n,然後計算yrs=18-age,繼續 printf("you can vote in %d years.\n",yrs);你在多久之後可以投票(大概是這個意思)
12樓:匿名使用者
if (age < 18) //如果年齡小於18歲,則繼續看大括號內的語句
13樓:
程式都是順序執行的,除了函式呼叫外,在執行完if語句之後當然就是執行跟在其後的語句,你教材中「無論發生什麼,一旦if完成了他的工作,程式都將從跟在if的主體之後的語句繼續執行下去」這句話有點多餘,寫的有不怎麼樣,會讓人迷惑。
而if就是條件選擇語句,if(條件){執行語句}當條件為真時,就執行{}中的語句,如果為假,就不執行了。
希望解釋清楚了
14樓:匿名使用者
當if語句成立的時候,輸出you cannot vote yet.
這時候將age與18間的差值在you can bote in %d years語句當中的%d位置顯示。
實際上此if判斷語句是判斷投票者的實際年齡與到達擁有投票權利年齡間的差距,只適用於age低於18歲的投票者。
另外,當if判斷語句執行完畢以後,就繼續執行下一語句,其實不管語句執行或否,也一定會執行下一語句,因為if語句本身就只是判斷語句,並不帶迴圈功能。
15樓:匿名使用者
這是一個判斷是否符合投票年齡的if語句。
if (age < 18) 判斷是否小於18歲,如果小於18所,不能投票
輸出:再有幾年就可以投票了。
有精通c語言的嗎?幫我解釋下下面這條語句。
16樓:匿名使用者
u8 usart_rx_buf[usart_rec_len] __attribute__ ((at(0x20001000)));
這句話可以這麼理解:正常應該這麼寫:u8 usart_rx_buf[usart_rec_len];
u8 是型別,指 8位無符號型。後面是陣列名及陣列長度,這都好理解。
難理解的是__attribute__ ((at(0x20001000))),這個應該是每個c編譯器對標準語言的擴充,及強制指定陣列的起始記憶體地址。編譯語法可能是: 《型別》 變數名<[陣列長度]> [擴充編譯屬性]
c語言問題,可以的話最好把整個程式解釋一下。謝謝!
17樓:
void main()
{float a[10],min; //定義a是一個存放10個浮點數的陣列,
int i=0; //題目中有誤,將用於存放陣列下標的變數應該是整數,下面馬上用到a[i],所以在此應該先給i初值0
float min;
scanf("%f",&a[i]); //從鍵盤輸入一個實數給 a[0];
min=a[0]; //a[0]在上一句才獲得,所以min的值應該在這賦
for(i=1;i<10;i++)
這一句在程式序中漏了,從鍵盤輸入a[1]到a[9]的值;
if ............
//後面的內容就沒什麼問題和需要解釋的了
18樓:
你這個程式有問題。
第二行scanf("%f",&a[i])中的i沒有賦值,這句話肯定會報錯.
第二句肯定是
for(i = 0; i < 10; i++) //就是給陣列a中的每個元素賦值
程式的意思就是找出陣列a中最小的數,賦值給min首先將a[0]賦值給min,然後將min跟a[1]~a[9]進行比較,將小的數賦值給min,所以最終min就是輸入資料中最小的數
19樓:萢萢
整個程式就是求10個數中的最小值。但是這個程式不算正確的,輸入部分應該需要一個迴圈。如果是.c檔案的話,float min需要放到scanf前面。
20樓:子玉
首先這個輸入語句不完整,應該是for(i=0;i<10;i++)scanf("%f",&a[i]); 接下來的語句是先令min等於a[0],再把a[1]到a[9]與min即與a[0]比較,如果min比較大,就把min替換成a[i]
不知道解決了麼
c語言中,幫我解釋下這個語句意思,t*=i
21樓:匿名使用者
你的想法正確,先是t=t*i=1*2,將2的值賦予t,i遞增接著再乘t。該語句打到的效果就是t=1*2*3*4*5,5的階乘
22樓:
t*=i意思是t=t*i,全句的意思是,i=2開始,直到5截止迴圈,過程如下:
t=1;
first:t=1*2=2
second:t=2*3
third:t=6*4
^………………
不知這樣說你清楚了沒?
23樓:匿名使用者
t=t*i;
1*2=2給t ,i變成3,
2*3=6 給t ,i 變成4.
你理解 的沒錯
24樓:匿名使用者
t*=i 等於 t=t*i=t*2=1*2=2;
然後執行i++;
誰能幫我解釋一下這幾個c語言語句是什麼意思,具體有什麼區別??
25樓:匿名使用者
1,定義了一個int型陣列,和一個int型指標變數p,並給其初始化為陣列x首元素地址。陣列名只代表陣列首元素地址。
2,這個語句是錯誤的
3,這個語句也是錯的
char同理
能解釋下這一段C語言的意思嗎,能解釋下這一段C語言的意思嗎?
聽不清啊 所給出的並不能叫做一個程式。因為它只有輸入,並沒有輸出。修改以後的程式才能執行。程式不能在這提交 它用於讀入一串字元,過濾其中的非數字,以空格作為分隔,把數字豐入到陣列中,最後輸出這些數字。 浮華崽崽 所謂namespace,是指識別符號的各種可見範圍。c 標準程式庫中的所有識別符號都被定...
誰能解釋一下什麼叫“數獨遊戲”啊
樑丘霜 我要說的樓上都說了 但我更想說的是,數獨好比網路遊戲,會使人沉迷下去我以前玩數獨的時候,也很有興趣,因為它的答案只有一個,獨字就體現在這裡 說實了,就是用排除法猜數字,後覺很無聊,猜對了也沒有意義,所以沒沉迷下去無聊或有空的時候玩玩倒沒所謂,主要是不讓它耽誤學習或工作就可以了,因為不值得 好...
誰能解釋一下C 的這個棧的遍歷的函式
爺已戒菸很多年 這是把 濃縮了,可能這樣寫你就能明白 void visit int e cout 這裡你的棧必須是連續的,而且base指向的是低地址,top指向的是高地址,如果是一個類的話,那你必須重新構造迭代器,為你的base過載一個 的方法,因為棧的定義是從棧頂開始訪問的,但是從棧底訪問可是可以...