剛剛接觸C語言,書上的這個看不懂,求詳細解釋,謝謝

2021-03-03 20:27:37 字數 2974 閱讀 4762

1樓:匿名使用者

我推薦學習c語言bai的書籍是: c primer plus中文版du

開發工具是: vs2008 或者 vs2010如果zhi有條件,可以找一dao個好老師或者好師傅回.

我認答為一本好書和

2樓:夏天的雪

剛接觸正常,多看幾遍就好了

c語言問題。這道題看不懂啊,求大神詳細解釋下,謝謝

3樓:煙火夜空

這是 統計 字串 中字元個數的。

還有 goodbye 寫錯了。如果 中間沒有 空格,那麼 這個結果應該是 8;

4樓:

s中存放的是字串的首地址,指標p從字串開始搜尋到末尾,返回p—s就是字串的長度

c語言看不懂**,求一步步解釋,謝謝

5樓:

答案正確啊。*(a+1)就是a[1],*(ptr-1)就是ptr[-1](用負數表示下標是非法的,這裡只表示從ptr所指的地方向左移一個元素的位置)。那麼——

void main( void )

;//使a[0]==1,a[1]==2 ,a[2]==3 ,a[3]==4 ,a[4]==5

int *ptr=(int *)(&a+1);//宣告指標ptr並用(int *)(&a+1)初始化到指向陣列a的元素5的後面一個元素,由於&a是(*)[5]型,所以要用(int *)強制為int *以便與prt型別匹配

printf("%d,%d",a[1],*(ptr-1)); //return;}

c語言的一道程式題!!!看不懂為什麼!!求解釋詳細,謝謝!!

6樓:我是比丘猴

int a=2;

int f(int *a)

void main()

s+=f(&a); //s是外部定義的所以還存在,此時再執行f(),返回外部定義的a的值,即2

//所以s=s+2=5+2=7,但注意a此時還有效,所以指標的值自加一後,a變成3

printf("%d %d\n",a,s); //因此輸出是3 7}

7樓:bei極星願

int f(int *a)

這個函式,你傳進去多少,傳出來還是多少。return (*a)++ 就是先返回a的值,在自增1

void main()

//--!>

s+=f(&a); //到這裡的a是全域性變數。。相當於s=s+2 變成7了,全域性a自增一,變成3了。

printf("%d %d\n",a,s);}

8樓:召走刀文

這個主要涉及到變數作用域的問題,兩個原則

區域性變數與全域性變數重名時,遮蔽全域性變數

{}裡宣告的區域性變數的作用域就是{}的範圍。本質上跟函式的{}是一個道理

**中,會遮蔽掉外面的全域性變數a,此時函式f的引數是5,所以計算後s 為5。

之後的s+=f(&a);中,a是全域性變數a(因為int a=5的作用範圍是那個{}),所以s為7

在printf中的a是全域性變數的a,因為經過上面f函式的計算,所以a為3

9樓:匿名使用者

其實這裡考查的是自增運算 a++ 與 ++a 的運算執**況以及變數a的作用域。

int a=2;

int f(int *a)

void main()

s+=f(&a); //全域性變數a的作用域生效,所以這裡傳遞的a是2,所以s+=2使得s=7,a自增變為3

printf("%d %d\n",a,s);}

10樓:匿名使用者

執行完之後s=5;這個沒問題,在{}中的a在{}外已經不在有作用於,所以a為全域性變數的a=2;執行

s+=f(&a)時可認為是s=s+(a++);所以s=7;a=3

11樓:王海洺

int a =5是他外圍的那個小的大括號範圍內的作用,s = s+a = 5 ,return了一個(*a)++,將指標往前推了一步,a的值變成了6, 然後在外圍時候a=6失效,因為有全域性定義a =2 ,s = s+a = 7,return了一個(*a)++,將指標再往前推了一步,a的值變成了3.

c語言題目。這道題看不懂。。求大神詳細解釋下,謝謝

12樓:匿名使用者

答案選b。

定義結構體陣列c

未執行f(c)時,c[0]為 qian,f,95,92 c[1]為 sun,m,98,99

執行f(c)時,將c作引數傳遞

執行f(c)後將c[1]的值改變為 zhao,m,85,90f()函式作用就是對c[1]重新賦值

c語言一道求程式執行結果題,一直看不懂,求大蝦詳細解釋下!謝謝了!

13樓:匿名使用者

tt(int *a,int *b)

while(r); //迴圈執行的過程:

// x=y=36; y=r=28; r=x%y=36%28=8(36除以28的餘數); r不等於0,繼續迴圈

// x=y=28; y=r=8; r=x%y=28%8=4; r不等於0,繼續迴圈

// x=y=8; y=r=4; r=x%y=8%4=0; r等於0,結束迴圈

*a/=y; // 即u/=y; u=28/4=7*b/=y; // v/=y; v=36/4=9}main()

14樓:匿名使用者

dowhile(r);

輾轉相除法 得到x和y的最大公約數 y (此處y= 4)tt(int *a,int *b) 形參為指標tt(&u,&v); 將存放ū和v的記憶體地址作為實參傳出

15樓:狼族遺孤

沒有標頭檔案也可以執行?

c語言看不懂,,為什麼後面i m

將 格式化,你應該就看明白了!最終if i m 的目的是為了判定,當前的m值,是否不可以被全部的小於m的數整除。如果i m就說明for i 2 i m進行判定。include main 是求 100,200 之間的素數,i m 是指一個數比如是130,求其素數,如果大於130了就不可以了,設定了程式...

作為c語言小白,完全看不懂這個程式,誰能給我詳細點解釋一

x的n次方 等於x x x 乘了n次。求c語言大神解釋一下這個程式,我看不懂.100 math代表常用數學函式的標頭檔案 convert方法傳入一個十六進位制的數字的字串,比如 1aec 其中1代表1,abcdef分別代表11,12,13,14,15,16。和十進位制類似,十進位制每16進一位。co...

有個c語言程式看不懂了求大神詳解

for 表示式1 表示式2 表示式3 在表示式2值為真 1 的時候繼續執行。首先讀入ch 0 ch 0 6 ch i 0 是吧字元的數字轉換為int數字,所以s s 10 6,此時s 6然而,i 之後i 2,此時a 2 a 表示式2不成立退出迴圈,於是酒輸出6 只執行了一次for迴圈,因為當i 2的...