1樓:丁丁愛璐璐
#include //標頭檔案
main()
列印出a的所有數權值
} void sort(int x,int n) }
2樓:匿名使用者
void sort(int x,int n);
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++) }定義陣列
抄 及指向
襲陣列的指標
輸入數值 並輸出sort
void sort(int x,int n)對數值進行起泡排序
c語言一道求程式執行結果題,一直看不懂,求大蝦詳細解釋下!謝謝了! 5
3樓:匿名使用者
把y轉化為d進製,
dowhile(x);
4樓:匿名使用者
converse(m,n) 將十進位制數 m 轉為 n進製數 並輸出
思路是m =x1 * n^0 + x2 * n^1 +x3 * n^2 +````````+xk * n^k
輸出的 xk xk-1 xk-2`````x2 x1 這一串 便是 十進位制數 m 轉為 n進製數得到的結果了
5樓:匿名使用者
converse(int y, int d)實現將變數y中的資料,按 d 中進製,進行字元化輸出。
如題:converse(20,2), 就是將十進位制數 20 的以二進位制形式進行輸入。
一道c語言題 知道解答過程 看不懂 求解釋 我 初學 麻煩解釋清楚點 謝謝
6樓:匿名使用者
你好!先說明一下,s是不能指向字串的,只能指向字串的首字元。
說一下s++ 和 ++s的區別:s++ 是使用了s再遞增,++s是遞增後使用。
在這裡,先判斷*p是否是空格,判斷結束後*p遞增(即指向下乙個字元),這時的*p已經是指向前面的*p後面的位置了,可以看似一輛開動的車,然後再判斷是否是空格。謝謝!
7樓:匿名使用者
s++是先賦值再自加 如:
int s=1;
s=s++;
執行後:
s=1;
但下一次接受s就不是等於1了 等於2了 賦值之後自加了所以 s++和s不相等
8樓:匿名使用者
假設s指向字串" word"
語句if(*s++==' '&& *s!=' ')第乙個s指向" word",此時*s=' '(空格)然後s++,s指向"word",此時*s='w'
9樓:隨楓輕逝
lz的這句if(*s++==' '&& *s!=' ')的意思是:先看*s的值是不是=空格,如果=就再把s++使其指向下一位,再看*s的值是不是=空格,如果不=空格就說明條件成立了
c語言的一道程式題!!!看不懂為什麼!!求解釋詳細,謝謝!! 5
10樓:召走刀文
這個主要涉及到變數作用域的問題,兩個原則
區域性變數與全域性變數重名時,遮蔽全域性變數
{}裡宣告的區域性變數的作用域就是{}的範圍。本質上跟函式的{}是乙個道理
**中,會遮蔽掉外面的全域性變數a,此時函式f的引數是5,所以計算後s 為5。
之後的s+=f(&a);中,a是全域性變數a(因為int a=5的作用範圍是那個{}),所以s為7
在printf中的a是全域性變數的a,因為經過上面f函式的計算,所以a為3
11樓:周潔倫之謎
注意3點:全域性變數和區域性變數(區域性變數優先順序高),傳位址和傳引數,++操作
int f(int *a) //傳位址,會改變傳入的引數比如 int c = 2; int d = f(&c); 結果d=2,c=3
所以:int s=0;
s+=f(&a); s=7,a=3;這裡是全域性aprintf("%d %d\n",a,s);
12樓:w休息的風
首先你定義了乙個全域性變數int a=2;
然後函式f(int *a)目的是把你傳遞過來的實引數加1.注意:return (*a)++;這句是先執行返回,先把指標a指向的值返回,然後再把該指向的物件進行加1操作。
主函式裡面是這樣執行的,
定義了乙個s,後面有個括號,裡面又定義了個區域性變數a,初始化為5;然後你呼叫函式f,執行完以後,s的值變成5,而臨時變數a的值變成了6,繼續執行,臨時變數的a被釋放了。後面又呼叫了函式f,但是這個變數a是你定義的全域性變數,值為2,呼叫完以後,s的值就變成了7,而a的值加1變成了3.所以最後輸出值為:
3 7.
明白了嗎?
注意兩點:1是函式f返回值那,是先返回後,再把指向的物件加1,2、就是主函式裡面的區域性變數a,和全域性變數a的區別和使用。
13樓:匿名使用者
#include
#include
int a = 2;
int f(int *a)
void main()
中起作用
內起作用。建議寫程式不要寫成與全域性變數同名。
s+=f(&a); //在這個{}內,s = s + f(&a)= 0 + 5 = 5
//然後(*a)內值再加1,此時在這個{}內a 變成了 6}s=s+f(&a); //此時s = 5,整個檔案內全域性變數int a = 2 ,在上乙個{}內區域性變數不起作用了。
//s = s + f(&a) = 5 + 2 = 7//此時(*a)內值加所以輸出結果a = 3 ,s = 7
}以下是codeblock內執行結果
a=3 s=7
14樓:匿名使用者
這部分裡面重新宣告了變數a,使用的就是區域性的這個變數;
出了}之後,這個a的生命期結束,再使用變數a時用的就是外面宣告的全域性變數。
return(*a)++;
++在後,返回值是自加之前的值,然後自身加1,所以第一次返回5,然後區域性變數a變成6,第二句函式f返回2,加上5就是7,全域性變數a變成3。
15樓:吳龍
主要還是定義的變數作用域的問題。
還有乙個容易忽略的問題,return (*a)++;這句話的意思是 先返回*a,然後*a++,即最後*a增一。不是直接返回(*a)++。
進入main函式,定義變數s=0;
下面這裡有個,相當於乙個作用域,也就是裡定義的變數只在這裡面有效,出了,針對的就是外乙個作用域。由於在定義變數a=5,是區域性變數,所以s+=f(&a),s=0+5=5,同時內的a加以1,a=6;然後出了,作用域消失,內定義的a,銷毀。
然後s+=f(&a),此時的a就是全域性變數的a=2,所以s+=f(&a),s=5+2=7,同時a+1=3;
最後輸出,a=3,s=7.
16樓:匿名使用者
這裡有2個a變數 乙個是全域性
變數 乙個是函式內的變數。
第一行全域性變數a=0 (下面我們用a1表示他)在main函式中
int a=5;
s+=f(&a);
這個a = 5 是區域性變數 (我們用a2表示)經過上面計算後 s=5 ;a2=6, ; 下面s+=f(&a);
printf("%d %d\n",a,s);
都是a1 ;所以s = 7 ,a1 = 3了結果就是c答案
17樓:周生
這涉及到兩個問題
1 return之後是不會再執行++操作的
2 區域性優先原則,但是區域性變數只在宣告他的區域性有效,出了這個區域性就失效了
18樓:匿名使用者
在main函式中{}中的int a的作用域僅限於這個{}內,所以出了這{}後s=5,而a仍然等於2,然後s+=f(&a); 就使得s=7,a=3了。這題主要考察的是變數的定義域,第乙個a=2是全域性的,第二個是區域性的,只限於那個{}內。起始說白了就是
int a;
}這種情況,區域性定義有效,但是出了{}就是外層的定義有效了。
19樓:使者
輸出的a是全域性的a,第乙個s+ 計算的s= 0 + 5;第二個s = 5 +2
20樓:匿名使用者
這是一道函式呼叫題,void main()為主函式。程式先執行主函式,所以到第乙個 s+=f(&a);又因為它是呼叫的,要看到這裡 int f(int *a)
實參把a=5;賦給形參,由於是return(*a)++;所以s=5;
到第二個 s+=f(&a);
而第乙個 int a=2; 是全域性變數
所以s=7;
第乙個 int a=2; 經過 return(*a)++;後也變成3了
21樓:小拇指亦有愛
int a=2; 全域性變數
int f(int *a)
void main()
//區域性失去作用,
s+=f(&a); //相當於s=5+2 ,然後a+1=2+1=3
printf("%d %d\n",a,s);
}a:2 7
b:2 10
c:3 7
d:3 11
22樓:匿名使用者
我認為是3,9,求大神解答
23樓:張祿
在看看指標和引用那裡
24樓:匿名使用者
區域性變數全域性變數 呵呵 上面解釋的很清楚
25樓:pprain_水杯
第二個s+=f(&a);使a+1
c語言程式設計 有程式 看不懂 求解釋
26樓:vancouver華
步驟分解:
設 1 為亮,0 為滅。
將燈全部關閉。
將凡是2和2的倍數的燈開啟。
將凡是自身的倍數(包括自身)的燈作相反處理。
重複 3 直至結束。
遍歷所有亮的燈泡輸出。
我對**進行了一點可讀化處理。
#include
#include
int main()
; // 這裡相當於步驟 1,同時也相當於第乙個將燈泡關閉的人。
int i,j,n,w; // w 是廢的變數,無意義。
w=0;
scanf("%d",&n);
for(j=2;j<=n;j++) // 迴圈的第一次是步驟 2,之後的迴圈都屬於步驟 3。
else a[i]=a[i]; // 這一句跟樓上說的一樣,寫了些什麼鬼。}}
for(i=1;i<=n;i++) // 這裡是最後的遍歷輸出,遍歷所有等於值 1 的燈泡輸出即可。
return 0;
}最後,原**非常非常非常難以閱讀,記住**是寫出來給人看的,不要隨意忽略花括號,如果 if-else 語句為了帥氣要忽略花括號的話,請務必只寫一行,並且一定要放在同一行。
27樓:聽不清啊
#include
#include
int main()
; //這裡賦值要注意,,表示第一人已把所有燈都關了int i,j,n,w;
w=0;
scanf("%d",&n);
for(j=2;j<=n;j++) //如樓上所說從2開始就好,第j個人操作開關
}for(i=1;i<=n;i++) //操作完畢,檢查所有的燈,a[i]==1的是開啟的
return 0;}
c語言問題,這道題看不懂,求大神解釋,謝謝
28樓:雲戰天涯
指標題:p指標是指向第乙個節點的,也就是e,s指標指向g,題目要求把g插入到f後面,下面的四個方法中選出不能把g插入到f後面的乙個。
對於a選項:p=p->next:表示p指標指向f
:s->next=p:表示s的next指向f,而這裡s->next應該為\0,所以錯誤
一道C語言程式題求解,一道C語言程式設計題求解
float y w 就是每一項的值,即 1 2 1 4 1 8,要加項小於10的 6,也就是要 float y w的絕對值大於10的 6才迴圈,在不用abs函式的求絕對值的時候,假定要x的絕對值 x可能為正數或負數 大於10的 6,那麼自然就是x z1 同為正數 或者x z1 同為負數 其實這題 太...
求解一道C語言程式設計題目,求一道C語言程式設計題
說一下思想 先定義乙個int min 1000000 或者其他大於4的數,因為陣列 專最大就4,按行屬列遍歷陣列所有元素,min min a i j a i j min 輸出的min即為所求 include define n 2 int getmin int a n int m,int n int ...
一道C語言程式設計題求解一道簡單的C語言程式設計題
樓主,抄樓上不太會說話,不要理,bai等等我貼出 沒有其他語言基礎du的c語言初學者起zhi步是慢了一dao點,但是要渣油 include int main return 0 dim arr斐波 那契數bai 列du 19 as integer arr斐波那 zhi契數dao列回 答 0 1 arr...