關於c語言的幾個問題,關於C語言的幾個問題?

2022-10-17 04:12:40 字數 5705 閱讀 7965

1樓:回一句晚安

一、表示式1?表示式2:表示式;是乙個三目運算子,運算順序是先計算表示式1,若它的值為非0(真),將表示式2的值作為條件表示式的值;否則把表示式3的值作為條件表示式的值。你題目中

sign=(s[i]=="-")?-1:1; 的意思是若s[i]等於-,則sign=-1,否則sign=1;

二、這是建立結構指標的一種方法(漏了s吧,是struct),直接寫在後面,當然也可以struct node *first,*last,*p;

三、*first=pnode是調整*first所指向的位置,從指向原先的首位置改為指向插入的節點所在位置。

2樓:

第乙個問題: sigh=(s[i]=="-")?-1:1 是個判斷語句 當s[i]=="-" sigh=1 如果不等於 去-1

第二個問題: 是結構指標 而且你打錯了, 是struct node 不是ctruct node

第三個問題: 第一句只是說 pnode的下一位是*乙個叫first的指標,而沒有把pnode與鍊錶鏈結起來

第二句就是把pnode連線到鍊錶上

關於c語言的幾個問題?

3樓:

char str[10]=,占用記憶體10個位元組,前6個位元組的值是"abcde\0",字串不一定占用全部字元陣列的記憶體,因此最後會加'\0'(0值)表示字串的實際結尾。該字串實際佔據陣列的前6個單元;

char str={「abcde」},會自動根據字串長度確定占用記憶體的大小,為6個位元組。

用strlen()函式去檢視,結果都是5。

整數相除,餘數捨去,只有整數部分。

同型別運算,從左至右順次進行。

x/y=3/2=1,x/y/z=1/1=1,取整之後,還是1,化成浮點數之後是1.000000.

如果想得到小數結果,有兩種做法:

(1)在運算之前,先強制型別轉換:(float x)/(float y)/(float z);

(2)運算的第乙個數是浮點數:1.0*x/y/z;

運算時會自動選定第乙個數的格式,進行計算。

關於c語言幾個程式的問題

4樓:匿名使用者

第乙個程式(修改兩處):

#include

void main()

int qh(int x,int y)

第二個程式(修改4處):

#include

#include

void main()

else if(d>0) /*注意這裡*/

else

5樓:匿名使用者

第乙個 下面幾行格式控制有誤:

scanf("%f",&l); //輸入變數

printf("請輸入出發時間,格式為 時,分,秒\n"); //顯示輸入變數

輸入變數

printf("請輸入到達時間,格式為 時,分,秒\n"); //顯示輸入變數

輸入變數

無輸出函式 printf("平均速度=%f",&v);

自定義函式中 else z=(x-y)*3600; 應為 else z=(y-x)*3600;

建議h,h也定義成實型。並加入判定hh是否小於24大於0,mms1s2是否小於60大於0的y語句。

第二個 第二個if處缺少 x2=((-b)-sqrt(d))/(2*a);

第二個if前加else,後乙個else語句不用加花括號。應該是if(d==0);

6樓:陳

1. scanf("%f",&l); //輸入變數

2. if(d==0) /*是==,不是=*/

就上面兩個地方粗心了,程式寫的不錯

7樓:永恆心愛

if(d=0)

else if(d>0)

else }

少了個 else

c語言的幾個問題

8樓:匿名使用者

1.其實「4.3」中的「4」是有用處的,「4」代表輸出數字的寬度設定,但如果你輸出數字的寬度大於你所設定的數字寬度「4」,則數字全

部輸出,如果你輸出的數字的寬度小於你所設定的數字寬度「4」,則用空格填滿。

比如printf(「*%f,%8.3f*\n」,3.14,3.1415);

則輸出:*3.140000,---3.142*(-表示空格)[「8」正的是右對齊,負的是左對齊]

2.我後面輸出的是*d(4)=37777777776*d(5)=37777777776*d(6)=37777777776*

如果輸出的是177776的話,你的答案應該對的,應該輸出*d(4)=177776*d(5)= 177776*d(6)=177776 *;

3.我輸出的結果是

*d(1)=3.500000e+000*d(2)=3.5000e+000*d(3)=3.5000e+000*

*d(4)=-3.500000e+000*d(5)=-3.500000e+000*d(6)=-3.50000e+000*

d(3)%10.4e的「10」是指數字寬度,「4」指小數點後面四位;

4.你的意思是說把改成嗎?

那結果會輸出 x=1 x=2 x=3

10 squared is: 100

5.我輸出的結果是:5.681000e+002

e型的小數保留6位 ,指數部分保留3位

6.#include

main()

解析:printf(「##%*d\n」,i,i);中的第乙個 i是設定輸出數字的寬度,第二個i是輸出的數字;

號的作用是【可以使同一輸出語句中的輸出寬度得以改變】

for迴圈內,每次迴圈先輸出##然後設定要輸出的數字寬度,再輸出數字,因為你的寬度i是正的,所以輸出數字是右對齊。

7.很奇怪,你的輸出結果怎麼和我的不一樣呢,我輸出的就是

3.1415926000##

3.1415926000 ##

你自己再試試看~

8.你好,我輸出的結果是:a=+00325(中間1個空格)x=+3.141593e+000

a=+00325因為你輸出設定的寬度為6,其中「+」也算在其中的;而x=+3.141593e+000在上面第四題已解釋

9.我輸出的答案基本和你所猜想的一致,是

(1) x=7281,x= 7281,x= 16161,x= 1c71,x= 7281

(3) x=+7281,x= +7281,x=+0007281

只有(3)有點不一樣,自己再檢查檢查吧,問題跟上面的都差不多,我想你應該能夠解決的!

希望我的答案能讓你滿意!謝謝~

9樓:股海小堅果

怎麼還沒人回答,我時間少了些,不染到幫你下,還有你題目有點不 明白

關於c語言的兩個問題

10樓:匿名使用者

1巨集定義,可以理解為複製貼上,就是在編譯的時候簡單替換,用struct address_list替換所有nod出現的地方

2這個在結構體共用體或者類中用到,指示結構體下面的子項

11樓:鬼扯石室

1、通過巨集定義語句#define nod struct address_list

在下文中用nod代表結構體address_list2、->是間接引用符

temp應該是乙個指向結構體的指標

next是此結構體中的乙個成員變數

temp->next就是用指標temp呼叫結構體中的next變數temp->next=p就是將p的值賦給結構體物件中的next變數

12樓:聶振華東羅

一、用for也可以;也可以不用break;

intarea=0;

intr=1;

floatpi=

3.14;

for(r;

r<=10;r

++)二、如下:

for(inti=

1; ;

i++)

巢狀結構,遇到break,跳出其邏輯上的迴圈結構也就是裡面的for迴圈,然後繼續執行外面的for。}

關於c語言的乙個問題

13樓:

你不覺得你每個for迴圈中都加上;i<=max-1||i

14樓:匿名使用者

燙說明少了字串結束標識'\0'

c語言的幾個問題

15樓:匿名使用者

估計你是弄混了

1.在定義的時候 *+指標變數= 乙個指標變數。char *p; p就是 乙個指標變數,指向型別為char.

在用的時候 *+指標變數= 乙個數值。準確的說是把該指標指向的值取出來。比如:

int *p;

int d=2;

int a;

p=&d;

a=*p;

2.關於int (*p)()

定義乙個指標p,指向乙個引數為void,返回型別為int的函式舉個例子:

int fun1()

int fun2()

int main()

3.for(;x=3;)

你要知道for迴圈的過程

1)初始化,就是第乙個分號之前語句的作用

2)條件判斷,就是第二個分號之前語句的作用3)迴圈之前要做的工作,就是第二個分號之後語句的作用for(;x=3;):沒有初始化,x=3條件是真,沒有迴圈之前要做的工作。

所以是死迴圈。

16樓:匿名使用者

指標就是位址值,掌握這一點就ok,你看的啥書呀,搞那麼多亂七八糟的概念,誤導呀!

int (*p)()比如有乙個函式定義

int fun()

那對p操作時就可以這樣p=fun,就是取函式的入口位址。

呼叫時就可以(*p)()或是fun(),兩者等價。

for( ;x=3 ; );for的中間是限制條件,只要條件成立for就會一直執行,這句實際上是給x賦值3,然後判斷這個表示式的真假,因為3是非0 ,為真,這是個死迴圈

17樓:

1『、關於指標

剛開始學習第一章的時候,書本寫道:*+指標變數 = 乙個數值但是越學越後的時候就變成: *+指標變數= 乙個指標變數這倒是怎麼回事,我弄混了還是?

===>

記住一點,不管=號右邊是什麼,指標變數最後的內容都是乙個記憶體位址2、關於int(*p)( )

這種指標函式我很不理解,請問你可以幫幫忙列乙個例子嗎?書本都沒介紹===》

要仔細看看書,函式指標作為引數時,這個情況就很常見了(例如**函式)3、關於for迴圈

for( ;x=3 ; );代表的意義是?

===》

x==3的時候迴圈結束

但是你寫的x=3 這個迴圈就不會停止,進入死迴圈狀態,弄清楚"="與"=="的區別

C語言錯誤,關於C語言程式的問題

呵呵,粗心了哦 62616964757a686964616fe58685e5aeb931333238646331 for i 1 i,直到字串尾的。你的 中從i 1開始給字元陣列賦值,就導致第0個字元一直沒有被賦值,並且由於 char line 1000 陣列沒有進行初始化,所以line 0 中就是...

c語言關於陣列賦初值的問題,C語言關於陣列賦初值的問題char buff

char buff 5 這樣寫賦初值,雖說沒有給buff 1 buff 4 賦值,但是預設是賦值0的,這樣寫沒問題。很多教材上都有的。char buff 10 是可以把這個陣列的所有元素的賦值成0的。不信你用下面的 測試一下。include void main int i for i 0 i 4 i...

關於c語言鍊錶的問題,關於C語言鍊錶的問題

slist是你定義的結構體的名稱,你寫的動態記憶體分配,意思是申請乙個指向slist的slist記憶體空間的指標,沒有這個名稱,就相當於乙個人沒了名字,幹什麼都不方便 slist就是nde的別名 因為你用到關鍵字typedef typedef是給型別取別名之意 如 typedef unsigned ...