一道國家二級計算機c語言題目,我看不懂,求大神解釋下程式

2021-04-02 12:47:04 字數 5339 閱讀 8362

1樓:匿名使用者

sort函式是排序,在排序過程中,要用到交換兩個數,交換兩個數由swap函式完成。

(9) 由於swap函式定義出現呼叫之後,所以要在呼叫之前先對swap函式宣告,函式宣告是函式首行後加分號,所以選擇c。

(10) sort函式是排序,要傳過來陣列,和陣列的大小。

(11) 對swap函式進行呼叫,根據函式定義首行,需要兩個整型位址。

(12) 對sort函式進行呼叫,要傳排序的陣列名,和陣列的大小

一道c語言程式設計題,看不懂,求解釋

2樓:丁丁愛璐璐

#include //標頭檔案

main()

列印出a的所有數權值

} void sort(int x,int n) }

3樓:匿名使用者

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語言大神解釋一下這個程式,我看不懂... 100

4樓:紛採

math代表常用數學函式的標頭檔案

convert方法傳入乙個十六進製制的數字的字串,比如"1aec",其中1代表1,abcdef分別代表11,12,13,14,15,16。和十進位制類似,十進位制每16進一位。convert主要思想:

把輸入的字串作為字元陣列來迴圈,每次迴圈算出該位數代表的值,並加到num裡去。

5樓:匿名使用者

#include是包含math頭文

件的意思, .h是標頭檔案的副檔名(h是head,標頭檔案),這一句宣告了本程式要用到標準庫中的 math.h檔案。

math.h標頭檔案中宣告了常用的一些數**算,比如乘方,開方運算等等,這些標頭檔案還有很多,都存放在vc軟體的安裝目錄下。

6樓:

那個pow就是在math裡面

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

7樓:召走刀文

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

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

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

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

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

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

8樓:周潔倫之謎

注意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);

9樓: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的區別和使用。

10樓:匿名使用者

#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

11樓:匿名使用者

這部分裡面重新宣告了變數a,使用的就是區域性的這個變數;

出了}之後,這個a的生命期結束,再使用變數a時用的就是外面宣告的全域性變數。

return(*a)++;

++在後,返回值是自加之前的值,然後自身加1,所以第一次返回5,然後區域性變數a變成6,第二句函式f返回2,加上5就是7,全域性變數a變成3。

12樓:吳龍

主要還是定義的變數作用域的問題。

還有乙個容易忽略的問題,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.

13樓:匿名使用者

這裡有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答案

14樓:周生

這涉及到兩個問題

1 return之後是不會再執行++操作的

2 區域性優先原則,但是區域性變數只在宣告他的區域性有效,出了這個區域性就失效了

15樓:匿名使用者

在main函式中{}中的int a的作用域僅限於這個{}內,所以出了這{}後s=5,而a仍然等於2,然後s+=f(&a); 就使得s=7,a=3了。這題主要考察的是變數的定義域,第乙個a=2是全域性的,第二個是區域性的,只限於那個{}內。起始說白了就是

int a;

}這種情況,區域性定義有效,但是出了{}就是外層的定義有效了。

16樓:使者

輸出的a是全域性的a,第乙個s+ 計算的s= 0 + 5;第二個s = 5 +2

17樓:匿名使用者

這是一道函式呼叫題,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了

18樓:小拇指亦有愛

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

19樓:匿名使用者

我認為是3,9,求大神解答

20樓:張祿

在看看指標和引用那裡

21樓:匿名使用者

區域性變數全域性變數 呵呵 上面解釋的很清楚

22樓:pprain_水杯

第二個s+=f(&a);使a+1

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

23樓:匿名使用者

答案選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語言程式填充題,問題如下,我看不懂為什麼這麼填,請詳細解釋一下,謝謝!

24樓:寂靜深闌斜

說下這段**思路。a、b兩個陣列,總有乙個陣列元素最先被使用完,那麼之後存入c陣列的元素只能是另乙個陣列的。i和j作為角標,就是用來表明a、b陣列各用了多少元素。

如果a、b陣列都沒用完,那麼就要判斷a、b誰出的元素小,小的存入c中(根據要求知c中元素由小到大排列)。

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

25樓:煙火夜空

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

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

26樓:

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

計算機二級c語言最後一道大題是怎麼給分的

按結果計分,結果不對就沒有分。機試的經驗 多上機練習 題型歸類 如果把歷年的題型拿來分析,你會發現基本上常考的就那麼幾類題 字串 迴圈控制變數 變數型別 還有一些簡單的演算法。練習很重要,練得多了,對一些常見的錯誤就會很熟悉,例如 if i 1 或者 i i 之類的錯誤,這樣的錯誤考試中經常出現。總...

國家計算機二級c語言考試要買什麼教材

是這樣,考試分兩部分,筆試和上機 筆試中c語言佔70 基礎知識佔30 共100分。上機考三道c語言題目,100分。所以教材也分兩部分 1 公共基礎知識 高等教育出版社 2 c語言相關書籍,推薦你用譚浩強的 c程式設計 那本書經典,比較適合學習。最後,建議你做做 c語言南開100題 那個相當於是題庫,...

全國計算機等級考試二級C語言與全國計算機等級考試二級VB的區別

全bai國計算機等級考試二級c語言與duvb區別如下 zhi 這二者都市程式開dao發語言專,c語言不支援視覺化屬程式設計,vb支援視覺化程式設計,從功能上考慮,二者均可完成任何一種開發需求,但是對於做介面,c會變得很麻煩,vb則相對簡單。vb語言的語法要求不嚴格,可以不事先宣告變數 當然是個人設定...