關於一道c語言題,求詳解,急求,關於一道C語言題,求詳解,急求

2021-07-30 12:59:28 字數 4075 閱讀 3065

1樓:匿名使用者

在主函式裡 是先執行fx 這個函式的,而執行這個函式得到的值x=15, 而後x=x+a=15+5=20.,a=5; 所以輸出是 20 和 5 ,主函式的x帶的是全域性變數的值是fx函式得到的x的值15,而不是定義全域性變數的初始值,也不是fx函式裡x的初值 在這個程式裡用全域性變數無非是想說明全域性變數x在不同時候是不同的值的,引用時要注意當前全域性變數的值。,以及注意區分全域性變數和區域性變數。

2樓:匿名使用者

主要是你在fx函式中沒有申明區域性變數,那麼,程式自動套用了你宣告的全域性變數。但是你的第一個列印應該是16才對,++的優先順序高於+=,p++=6,x+=6=>16

當a被fx呼叫結束是,x=16,a=6.那也就清楚了最後的列印為 22,6;

執行結果:

16 6

22 6

3樓:匿名使用者

答案對!

main()函式中,呼叫fx(a);後 x=15 a=5 如果你理解這點了,就不難理解第2次列印為什麼是20 5了!

這裡你一定奇怪,為什麼a=5而不是6,這是典型的區域性變數和全域性變數作用範圍問題。

在void fx(int p)函式裡,雖然有x+=p++; 但這裡的p++只加了fx函式內部的區域性變數,並不會修改main函式裡定義的int p;

fx(int p)內定義的p是區域性變數,main()裡定義的int a=5;也是區域性變數,作用域都在各自函式內,不能在fx()函式裡修改main函式裡的區域性變數。而x是全域性變數,作用域遍及兩個函式,兩個函式都可以訪問並修改x。

c語言一道選擇題,求詳解

4樓:紫薇參星

選b 如果b這樣寫就對了scanf("%d",&(p->age));

a 是輸入p指標取值後的屬性,即輸

專入std[0].age的值,是整型,格式符屬"%d",所以沒錯.

c 是輸入std[0].***是字元型,格式符"%c",所以沒錯.

d 是輸入p指標指向的std[0]的***屬性,相當於scanf("%c",&std[0].***);所以沒錯.

求一道c語言問題,求高手詳解,謝謝!

5樓:匿名使用者

for(i=0;str[i]!='\0';i++)if(str[i]>='0'&&str[i]<='7')number=number*8+str[i]-'0';

printf("%d\n",number);

先看這個迴圈;

第一次;i=0,str[0]="2"!='\0',執行迴圈體內語句str[0]="2">='0'&& <='7'

number=0*8+str[0]-'0'=2;

第二次迴圈;i=1;str[1]="7"!='\0',執行迴圈體內語句

str[1]="7">='0'&& <='7'

number=2*8+str[1]-'0'=16+7=23;

第三次迴圈;i=2,str[2]='\0',跳出迴圈執行輸出語句;輸出 23

看這個迴圈 for(i=0;str[i]='\0';i++)if(str[i]>='0'&&str[i]<='5')number=number*6+str[i]+str[i]-'0';

第一次;i=0,str[0]="2"!='\0',執行迴圈體內語句str[0]="2">='0'&& <='5'

number=0*8+str[0]-'0'=2;

第二次迴圈;i=1;str[1]="7"!='\0',執行迴圈體內語句

str[1]="7">='0'&& <='5'為假執行第三次迴圈

第三次迴圈;i=2,str[2]='\0',跳出迴圈執行輸出語句;輸出 2

最後螢幕輸出 232

6樓:

第2個迴圈語句中的條件是個錯誤的 要不是!= 要麼就是==

是!= 就輸出23 和190

是==就輸出23 和23

求一道c語言題,要詳解很簡單

7樓:匿名使用者

原題應該是:char a="ab\123\\\'%%";

字元數為7:

'a''b''\123'表示ascii為八進位制數123(十進位制為75)的那個字元,即大寫字母'k'

'\\'是\的轉義字元

'\''是單引號的轉義字元

兩個'%'是普通字元

一共7個

8樓:憂愁獨客

陣列裡面存放的是abs\'%%,\123轉義成了s,\\轉義成了\,\'轉義成了',所以是剛剛好7

9樓:匿名使用者

a,b,\123,\\,\',%,%

\\ 反斜槓 092

\' 單引號字元 039

\ddd 任意字元 三位八進位制

一道c語言題,請大家幫幫忙,謝謝,求詳解啊

一道c語言題,請大家幫幫忙,謝謝,求詳解

10樓:匿名使用者

a錯誤,p++即p=p+1;向後移動一個儲存單元,因為16位編譯系統上,int佔兩個位元組

11樓:二麻子

選a,當指標++是都是移動一個儲存單元.....16位作業系統,這裡也就是加了一個int 2個位元組...然後p就指到a[1]了...

c語言結構體一道題習題,求詳解

12樓:匿名使用者

結構體陣列賦值後復為制:

x[0].num = 1;x[0].name="usa";

x[1].num = 2;x[1].name="usa";

x[2].num = 3;x[2].name="france";

.....

p是指向結構體的指標,p = x + 2 就相當於:p = x[0 + 2] = x[2];這時,p指向x[2]所在記憶體,p->num中->是指標訪問它的變數的運算子,p->num就是x[2].num,就是3了,(*p)就是相當於把p指向的記憶體取出裡面的資料,那麼就變成了非指標變數,然後用“.

”運算子訪問它的變數name陣列,x[2].name為"france",第一個f下標是0,那麼下標為2的字母是a,答案就出來了。。。。。。。

c語言的一道簡單題目 求詳解

13樓:鬼採

答案是25,選c。

void prty,正確來說應該寫為void prty(int x),這句是定義一個沒有返回值的函式

內。根據題容目給出的程式,該函式的作用是列印該函式的引數。在主函式(main()函式)裡,先定義了一個整型變數a,並給a賦值為25,然後把變數a當成引數呼叫prty函式,則結果是列印變數a的值,也就是25,故選c。

14樓:

你是問bai

第一行?

第一行du中的void prty(int x)其中void表示此函式

沒zhi有返回值dao。(通俗理解就是呼叫這內個函式的那個“地方容”得不到這個函式的返回值 這個函式只是被單純的呼叫 不指望它給我們帶回什麼資料)

你問:“能夠解釋下void prty 是什麼意識?”

prty不用我解釋了吧?是一個函式的名字。

這個屬於c的函式那一塊的知識了。這都是最最基礎的東西了。

15樓:東風冷雪

結果 25

那是一個函式,而已

16樓:匿名使用者

void 指的是沒有輸出 修飾prty函式

17樓:宿雨厭厭

void 是 空型別 的意思

prty 是函式的名稱

void prty(int x)的意思是:ptry 函式的參量版為 一個int的變數 x,返回值為 void(不返回任何類權型)

如果是 int prty(int),那麼返回值就是 int,在 prty(int)

中函式體就必須寫

return num;//num 必須是一個 int 變數

一道c語言程式設計題急求答案,一道C語言程式設計題 急求答案

最簡單的排序方法是氣泡排序方法。這種方法的基本思想是,將待排序的元素看作是豎著排列的 氣泡 較小的元素比較輕,從而要往上浮。在氣泡排序演算法中我們要對這個 氣泡 序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,並時刻注意兩個相鄰的元素的順序是否正確。如果發現兩個相鄰元素的順序不對,即 輕...

一道求ab的c語言題一道求AB的c語言題?

include define m 50 main 比較兩個的長短,把長的那個放到c裡,短的放到d裡 else if ia ib a 0 b 0 0 9 else 比較兩個的長短,把長的那個放到c裡,短的放到d裡 ic strlen c id strlen d 求出實際參加運算的c,d的長度 do 處...

一道c語言程式題求高人解答,一道C語言程式設計題,求大神解答,急!!!

fseek函式用copy來移動檔案內部位置指標,其呼叫形式為 fseek 檔案指標,位移量,起始點 其中 檔案指標 指向被移動的檔案。位移量 表示移動的位元組數,要求位移量是long型資料,以便在檔案長度大於64kb 時不會出錯。當用常量表示位移量時,要求加字尾 l 起始點 表示從何處開始計算位移量...