1樓:匿名使用者
這裡有2個知識點:
或操作"||判斷是從左至右的,即:a||b當a==1時,系統就不會再去判斷b的值,因為1或任何數都等於"真"(而系統的真用"1"表示,假用"0"表示)
所以當x=1時,後面的操作++y,++z不再進行。
+操作,x++是取數後加,即先把x的值進行或操作,再對x進行+1操作。
如果lz把x的初值設為"0"的話,結果應該是。
誠如1樓所說,這種問題只適用於考試,其他意義不大。
2樓:fever銀
ls說的對,這種題沒什麼意義。
具體說明,在進行k=x++|y&&+z;運算的時候,因為x=1,所以直接後面的都不看了,所以k=1;因為有讀過x++,所以x=2了,但是其他沒有被程式執行,所以值沒有改變。
所以答案就是 2 1 1 1了。
3樓:匿名使用者
你應該是要求解釋第二次輸出的內容吧。
運算子,只要左右2邊有一個為真,則結果為真,而且如果左邊是真的話,就不會計算右邊的值,所以。
k=x++|y&&+z;
只計算了x++,結果為真,所以++y和++z都沒有運算,所以 x=2,z=1,y=1,k=1
4樓:匿名使用者
哎,樓主保重啊,被這種題折磨!!!
5樓:華靜安
定義了變數x,y,z,k 並初始化了x=1,y=1,z=1,輸出了x,z,y
k=x++|y&&+z;是賦值語句,意思是k=x+1或者=y+1和z+1
輸出x,z,y,k
就是這樣。
6樓:匿名使用者
這個**其實主要是看k=x++|y&&+z;這條語句。
對於a||b而言,先計算a,如果a為真,直接返回,而不計算是先運算,後++的,為真值,返回1。故k=1。
後面的都沒有進行運算,故y=1,z=自增1,所以x=2。
希望對樓主有幫助。
7樓:匿名使用者
這種題實在太毒害人了,意義不大。
哪位大神幫個忙(c++)?
8樓:匿名使用者
首先根據質數篩法,用陣列prime標記0~100000中的所有質數,prime[i]==1表示i為質數。
然後將prime陣列轉為字首和陣列,即令prime[i]等於prime[0]~prime[i]之和。
表示0~i中的質數個數,這樣任意區間[a,b]中的質數個數就等於prime[b]-prime[a-1]
相應c++**和執行結果如下:
附原始碼:#include
#define n 100000
using namespace std;
int prime[n + 1]; 標記每個數是否為質數
int main()
for (int i = 1; i <=n; +i) /轉為字首和
prime[i] +prime[i - 1]; 累加為[0~i]中的質數個數
int m, a, b;
cin >>m;
int ans[m]; 儲存m組結果
for (int i = 0; i < m; +i)
for (int i = 0; i < m - 1; +i)
cout
求 c++高手 指教 ,求答案
9樓:俏姐兒
6.條件,迴圈體 (我不太確定名詞對不對),for,while (for、while可換順序)
c++問題,高手來
10樓:
作用域和可見性是不分家的。
myclass p[10]宣告得是一個10個元素的物件陣列,意思就是陣列元素是類的物件。
當p離開作用域的時候,當然要銷燬在記憶體中佔用的空間,而p是一個陣列指標,所以整個陣列的10個元素都會消耗(遇到ascii碼為0的停止),而每個元素又是物件,物件銷燬時,自動呼叫類的解構函式,處理善後工作,如釋放delete類物件的指標。
你可能會疑問,為什麼p作用域到了的時候,會自動消耗,而物件作用域到了的時候,不會自動消耗。這其實是為何需要解構函式的問題,一個類的物件,宣告定義的時候,你無法得知它具體包含多少個資料成員,所以初始化任務需要建構函式。同樣地,銷燬的時候,不知銷燬多少個資料成員(特指指標),這就需要你手動列出需要銷燬的指標,比如是銷燬一個還是銷燬二個。
以上均是拙見,正確性並非百分之百,請自行斟酌。
最好的學習方法是被實踐證明過有效的方法。建議你寫出示例程式,然後下斷,單步跟蹤除錯一下。
11樓:匿名使用者
學長給你答疑:
這句話說的太隱晦,出題的很淘氣。
陣列名字會被編譯器自動轉換為指向第一個元素的指標,因此這兒的陣列指標p就是。
指的陣列p,(我很不推薦這種叫法),這句話問的是當陣列p離開它的作用域,也就是。
離開定義它的地方,那麼編譯器將從堆疊中將陣列的空間釋放,釋放之前呼叫解構函式,有多少個元素就呼叫多少個解構函式。
2023年快樂!新年快樂!!
12樓:if渲染
陣列有幾個元素就呼叫幾次解構函式。
作用域就是說他是區域性變數還是全域性變數。
c++問題,高手來
13樓:娶個女唐僧當老婆
a。逗號表示式,最後的值是5
b。算術運算子》賦值運算子(優先順序)
c。因為a,b都是int型,賦值表示式中a=a&&b,最後的值是a的值,邏輯運算子&&沒有用到。
d。連續賦值,即a=4,b=4。
選c。不是賦值表示式。
這是我的理解。
14樓:少年遊
選ca =後面是逗號表示式,返回最後一個值,即a=5b a=6
d =是右結合的,相當於a=(b=4),即b=4,a=4c如果事先不知道a的值,賦值是不成功的。
15樓:煮酒翰林
ab不用說了。
c是a與b做邏輯與運算後賦值給a
d是把4賦值給b,再把b的值賦值給a
求c++高手
16樓:匿名使用者
首先我還是比較欽佩你**跌倒**爬起的勇氣的,但我想說的是學習c++,尤其是學好c++並不是一件容易的事情。希望我的學習c++的一點經驗能給你提供一定的幫助。
我從初中開始自學c++,到現在也有7,8年了,c++是一門語言,就像英語一樣,要學好只有多多練習,所以要學好c++最關鍵的就是多自己動手編寫程式,多上機除錯,關於參考書,對於初學者來譚浩強寫的《c++高階程式設計》還是比較適合的,這本書在市面上很流行,而且多數高校裡也是用的他寫的那本。
其他想c++ primer 屬於參考手冊類的,提供了許多c++的函式的資料也是不錯的,你初期學的話並不需要買太多的書,一兩本就足夠了。
下面簡單介紹一下c++吧,c++是建立在c語言的基礎上的,c++的前半部分基本就是c,後半部分是類和物件的一些東西,c++是一門物件導向的高階語言,物件導向是相對於程序導向來說的,像早期的一些語言,像pascal就是程序導向的。物件導向的引入主要是為了開發大型的軟體引入的,初學c++可以先不要看,先把基礎打紮實了。
c++的前半部分主要就是一些變數,迴圈,函式的一些內容。難點主要有兩個,一個是指標,一個是遞迴,這兩個是初學者都比較頭疼的。指標就是變數的地址,遞迴就是函式自己呼叫自己。
把這兩個問題搞明白了,c++的前半部分就可以輕鬆搞定了。
c++的後半部分沒有什麼特別難的地方,只是比較繁而已,多花點時間就好了。
如果以上的你都能掌握了,那麼恭喜你,你已經基本掌握c++了,你已經能用c++寫基礎的程式了。但這並不代表你能寫好程式,就像每個人都會寫文章,但是並不是每個人都能寫好文章。要提高自己的程式設計水平,除了多練習多積累,還可以一些資料結構,演算法的書。
它能幫助你的程式設計水平更上一層樓。(ps:資料結構還是很有難度的,如果說c++的難度是3分,那麼資料結構的難度至少是7分,如果c++沒學好就去學資料結構的話,那麼難度就是10分了,所以如果想學資料結構的話先把c++的基礎打好。
最後祝願你能夠成功。
17樓:匿名使用者
有什麼問題?直接hi我。
c++高手請進,求解惑
18樓:網友
這裡的關鍵是建立物件陣列,有兩種做法:
採用student *s = new student[2]建立,這需要student有預設的構造方法,因為這裡的name和score並非每個student物件都一樣,而是各自不同的四個變數。呼叫方法的時候,可以用s[0].getname()。
析構的時候,需要用delete(s)。不過這顯然不符合這個student類的設計,若要這樣做,需要增加student類的無參構造方法,且需要加上set方法,故暫且不用。
採用student *s[2]建立,建立後對s[0]和s[1]可以分別呼叫student類的帶參構造方法建立物件,即s[0] =new student(n1, a1)。呼叫方法是,由於是指標陣列,需要用s[0]->getname()方式呼叫。析構時,由於s本身是指標陣列,而陣列的每個元素是new出來的,需要單獨析構每個元素,即delete(s[0])和delete(s[1])。
這種方法符合student類的設計,可取。
student *s[2];
s[0] =new student(n1, a1);
s[1] =new student(n2, a2);
cout
cout
delete(s[0]);
delete(s[1]);
19樓:樂天
你好,根據你的要求,第五行**如下:
student s[2];
希望能幫到你。
請問c++大神這題怎麼做?
20樓:紫薇參星
選c因為c++規定,預設引數只能放在形參列表的最後,而且一旦為某個形參指定了預設值,那麼它後面的所有形參都必須有預設值。
d正確是因為預設值可以是常量、全域性變數或者全域性函式。
求高手指導C ,謝謝
潘佳傑的 易學c 我發了已經了。沒基礎的可以先看看譚浩強的,如果想學好,還是直接看 c primer 3rd edition effective c 2e 等等,這個可能開始有點難,沒事多上網找找別人的帖子,c 電子書我還沒見到過txt格式的,pdf格式的倒是滿地都是。csdn上就有的下,直接搜尋一...
c語言中結構體問題,本人菜鳥。求高手指教
typedef struct node linklist 相當於struct node typedef struct node linklist typedef的作用是重新命名 這段的意思就是把struct node重名為linklist linklist a 就相當於struct node a c...
求C 高手幫助解答,求C 高手解題
cin 產品名稱,除了將有以下的錯誤,如果字串 名稱,無論是不是新的新空間。錯誤c2679 二進位制 操作符右手運算元的型別的類std basic string的字元,結構std char traits 來,類std 分配器來 或沒有可接受的合作。n版本 我是用vc 你想幫助,我想已經與字串宣告一個...