初學C 的一個問題!C 基礎問題,謝謝解答!

2023-05-31 11:50:05 字數 4729 閱讀 5010

1樓:盲然者

namespace,是指識別符號的各種可見範圍。

c++標準程式庫中的所有識別符號都被定義於一個名為std的namespace中。

由於namespace的概念,使用c++標準程式庫的任何識別符號時,可以有三種選擇:

1、直接指定識別符號。例如std::ostream而不是ostream。完整語句如下:

std::cout <2、使用using關鍵字。

using std::cout;

using std::endl;

以上程式可以寫成。

cout <3、最方便的就是使用using namespace std;這樣名稱空間std內定義的所有識別符號都有效(**)。就好像它們被宣告為全域性變數一樣。那麼以上語句可以如下寫:

cout 《因為標準庫非常的龐大,所程式設計師在選擇的類的名稱或函式名時就很有可能和標準庫中的某個名字相同。所以為了避免這種情況所造成的名字衝突,就把標準庫中的一切都被放在名字空間std中。但這又會帶來了一個新問題。

無數原有的c++**都依賴於使用了多年的偽標準庫中的功能,他們都是在全域性空間下的。

所以就有了和等等這樣的標頭檔案,一個是為了相容以前的c++**,一個是為了支援新的標準。

名稱空間std封裝的是標準程式庫的名稱,標準程式庫為了和以前的標頭檔案區別,一般不加".h"

2樓:匿名使用者

我用 sp6 編譯可以通過,0錯誤 0警告。

結果 <4,6i>

你用的是什麼編譯器?

懂得c++的麻煩看一下這倆道題

3樓:

您好,您可以發一下題目嗎。

嗯嗯。第一道題,首先定義三個變數,a b c作為輸入的值。

再定義 p q 利用公式輸出。

p q 知道後,可以利用兩根和 兩根差求出兩個根,然後輸出根。

整個過程,你只用列公式。

計算是由電腦來完成的。

第二道題它定義了四個整型變數a b c d都為0,所以a b c d都等於0

第二步 a等於5,其他變數不變。

第三步,b等於a++,所以b等於6

您稍等,我寫在紙上發給你吧。

懂得c++的麻煩看一下這倆道題

4樓:

摘要。a=5 b=6 c=0 d=- 1

懂得c++的麻煩看一下這倆道題。

您好,您可以把c++的題目發給我看一下,我幫你看看。

教教孩子吧,孩子不會c++

您好,稍等,我看看題目。

a=5 b=6 c=0 d=- 1

幫忙看看這個c++題目啦!!

5樓:匿名使用者

你的程式除了"無上陽光2"說的這個錯誤外,還有一個就是你沒判斷陣列下標是否已經越界,比如你的下標從1開始,你輸入的值也是從1開始儲存,但你判斷的時候有i-1或者j-1的下標,這時候就會訪問到下標為0的陣列元素,而這些陣列元素是未經賦值的,因此你所做的比較是不正確的。同樣i+1或j+1的錯誤也是一樣的道理。

我給你寫了個簡單的實現。

主要思想:1、每次對陣列進行一次掃描,如果發現陣列元素為'@'即為有病,則將此元素的上下左右鄰居設定為被傳染。這裡有幾個細節要注意:

a.下標判斷-首先要判斷陣列下標在合法的範圍內,我這裡下標從0開始,因此範圍為(0~n-1);

b.標記問題-若該陣列元素為有病(值為'@'不能簡單的將其鄰居也標記為'@'這就是「無上陽光2」說的那個問題,我採用的方法是將其鄰居標記為'*'陣列掃描完後,再掃描一次陣列,將所有被標記為'*'的陣列元素置為『@』另外,要對其鄰居進行判斷,若其也為『@』則不能將其標記為'*'了(否則,本來這個鄰居的鄰居應該被傳染的,結果會變成未傳染)。

#include

#include

int main()

printf("輸入m的值: "

scanf("%d",&m);

while(--m > 0) /輸入的陣列已經是第一天的情況了,所以這裡要設定為前自減。

for( i = 0; i < n; i++)

for( j = 0; j < n; j++)

if(sickman[i][j] =

sickman[i][j] =

int sum = 0;

for( i = 0; i < n; i++)

for( j = 0; j < n; j++)

if(sickman[i][j] =

sum;printf("得流感的人數為: %d",sum);

return 0;}

6樓:無上陽光

當然是錯的。。這麼說吧,錯誤的地方在於你每天在更新的時候,更新的範圍不對。。比方說開始的時候吧,(1,1)房間有病,但是(1,2)沒病,你開始的時候就把(1,2)弄成有病的了,同一天的時候接下來你就掃描(1,2)去了,發現這個有病於是你就更新了(1,3).。

明白嗎。。。

c++基礎問題,謝謝解答!

7樓:網友

第一題:12,13

其中注意,\"表示的是一個"字元,\\表示的是一個\字元,不要把它們當成2個,之所以這樣是為了區分字串結束。

所以一共4個符號,8個字母,12個字元。

佔用位元組就應該最後加一個結束標記\0,13個第二題:

a"代表字串,儲存時候,除了a字元本身,還有一個標記結束的\0,佔用2位元組。引用時候也需要用字元陣列或者指標。

a'代表一個字元,只會儲存它本身,佔用1位元組。引用時候可以用字元變數,也可以用字元指標。

c++問題,高手來

8樓:

作用域和可見性是不分家的。

myclass p[10]宣告得是一個10個元素的物件陣列,意思就是陣列元素是類的物件。

當p離開作用域的時候,當然要銷燬在記憶體中佔用的空間,而p是一個陣列指標,所以整個陣列的10個元素都會消耗(遇到ascii碼為0的停止),而每個元素又是物件,物件銷燬時,自動呼叫類的解構函式,處理善後工作,如釋放delete類物件的指標。

你可能會疑問,為什麼p作用域到了的時候,會自動消耗,而物件作用域到了的時候,不會自動消耗。這其實是為何需要解構函式的問題,一個類的物件,宣告定義的時候,你無法得知它具體包含多少個資料成員,所以初始化任務需要建構函式。同樣地,銷燬的時候,不知銷燬多少個資料成員(特指指標),這就需要你手動列出需要銷燬的指標,比如是銷燬一個還是銷燬二個。

以上均是拙見,正確性並非百分之百,請自行斟酌。

最好的學習方法是被實踐證明過有效的方法。建議你寫出示例程式,然後下斷,單步跟蹤除錯一下。

9樓:匿名使用者

學長給你答疑:

這句話說的太隱晦,出題的很淘氣。

陣列名字會被編譯器自動轉換為指向第一個元素的指標,因此這兒的陣列指標p就是。

指的陣列p,(我很不推薦這種叫法),這句話問的是當陣列p離開它的作用域,也就是。

離開定義它的地方,那麼編譯器將從堆疊中將陣列的空間釋放,釋放之前呼叫解構函式,有多少個元素就呼叫多少個解構函式。

2023年快樂!新年快樂!!

10樓:if渲染

陣列有幾個元素就呼叫幾次解構函式。

作用域就是說他是區域性變數還是全域性變數。

一個c++的問題,求高手幫忙!

11樓:網友

看到上面的資料,我想你會很輕鬆得發現某一月的兔子的數量正好是前2月兔子數量的和,也就是。

f[n] =f[n-1] +f[n-2];

那麼這個程式中什麼意思呢?

最開始 f1= f2 = 1 就是 第一月 和 第二月 兔子的數量然後輸出 f1,f2;

之後對 f1 = f1+f2 ; 根據公式就可以知道 現在的 f1 是 第三月的 數量。

那麼 此時 f2 = f1+f2; f1 是 第三月的數量 f2 是 第二月的數量 ,相加就是 第四月的數量。

同理 這樣迴圈,就可以輸出之後幾個月的數量了。

12樓:匿名使用者

int main()

return 0;

按照這個題目而言,這個程式是錯誤的。

按照樓下的解釋,的確可以解釋**裡的資料。但問題是第一個月和第二個月的兔子是1對,也就是2只,第三個月的是2對,也就是4只,這個程式中的公式從開始計算就錯了。

求教c++方面的問題,謝謝

13樓:匿名使用者

一般都是資料越界造成的,例如定義了int a[100];但你有訪問a[100]=0;的時候。

定義a[100]後下標是從0-99的,這種會越界,有時候越界也沒事,有時候就不行,主要是記憶體分配不同造成的。

還有連結串列儲存訪問的情況,當連結串列沒有初始化或者已經銷燬的,去訪問就會出問題。

其他的情況也有,但都是程式中資料應用的邏輯問題,要限制好。

建議你用除錯方法試驗程式,設定幾個節點,用f5看在哪個節點位置出問題,然後下次到這個節點後用f10一步一步執行,看為什麼出問題。

sxt19840210

14樓:匿名使用者

沒有**,無法判斷。

15樓:追求小林

檢查你的**,能編譯只能說明語法正確,但你的程式邏輯出錯了。

16樓:匿名使用者

記憶體非法操作了,只有仔細檢查**的邏輯了。

有C 基礎的進初學者求救,C 初學者,有一個問題

針對第一個問題 是逗號表示式的問題。首先要知道 逗號表示式的值為最後一個表示式的值。這個表示式 a 3 5,a 4,a 5 的值為 a 5 的值,但是通看整個表示式,對 a 賦值只有 a 3 15,所以 執行 a 3 5,a 4,a 5 後 a 的值是15 而表示式的值就該是20,因此也可以知道執行...

C語言問題,謝謝,一個C語言問題,謝謝

這是一個輸出1000以內因子加和等於本身的數的程式 如果放在定義的時候,程式編譯是沒有錯誤的,但因為m會一直累加而不被重新歸零,執行始終沒有達成m s的條件,所以不會在控制檯輸出結果 如果在定義裡面賦初值,那麼在做迴圈 for s 2 s 1000 s 第一次的時候的確是零,而到了第二次,m的初值之...

關於C 的問題,關於C 的一個問題?

size type應該是c 為例如string類和許多其他庫型別定義的配套型別,使這些庫型別的使用與機器無關.所以不能單獨用。具體如下 size type是為string類型別和vector類型別定義的型別,用以儲存任意string物件或vector物件的長度,標準庫型別將size type定義為u...