1樓:gta小雞
a[2][3]是一個兩行三列的二維結構體陣列,在初始化列表中只給出了前三個元素的初值,分別賦予a[0][0],a[0][1]和a[0][2]。陣列a剩下的元素都保持預設值。
我們要找的整數2是第二個元素的成員i,因此先用a[0][1]定位到第二個元素,然後用.i取得其成員i的值。合起來就是a[0][1].i。
2樓:漢秀梅夕羅
後面定義的是二維陣列
初始賦值了3個值預設在前三個元素[0][0][0][1]
[0][2]
剩下元素省略
而2在[0][1]元素中
而結構宣告中寫出第一個是字元形變數ch
第二個是整形變數i
第三個是雙精度x
2在結構中是第二個整形變數
所以選b
3樓:阿米不迷
a[2][3],2行3列,二維陣列a[2][3]可分解為2個一維陣列,它們的陣列名分別為 a[0]、a[1],
這2個一維陣列可以直接拿來使用。這2個一維陣列都有 3個元素,比如,一維陣列 a[0] 的元素為 a[0][0]、a[0][1]、a[0][2],a[1]的元素為 a[1][0]、a[1][1]、a[1][2],就是橫的一行是一組ch,i和x
答案考慮的是初始化,預設值只給出前三個初值,剩下元素省略了所以選b
c語音,求教大神 若a、b、c、d都是int型別變數且初值為0,以下選項中不正確的賦值語句是
4樓:墨汁諾
c因為baix>5返回值是0或1,永遠小於10
a選項無可du異議zhi,即賦值a、b、c均為dao100。回
b的答答案為d的原值加2。假設d為2,d++為4。
c選項的錯誤太明顯,c+d均沒有賦值
因為沒有變數的值改變了。而且有個warning: '+' :
operator has no effect; expected operator with side-effect。a=b=c=100;是賦zhi值語句首先執行的c=100;然後是b=c;再是a=b;。
5樓:匿名使用者
問題答案是c,
追問答案是a,因為x>5返回值是0或1,永遠小於10
6樓:
c錯誤,選c——a+c;並沒有將結果賦給任何變數,也就是沒有完成「賦值」任務,所以錯誤。
c語言題目 對二維陣列的正確說明是:
7樓:匿名使用者
c是正確的。
二維陣列初始化的形式為:
資料型別 陣列名[整常量表示式][ 整常量表示式]=;
在中給出各陣列元素的初值,各初值之間用逗號分開。把中的初值依次賦給各陣列元素。
有如下幾種初始化方式:
⑴ 分行進行初始化
int a[2][3]=,};
在內部再用把各行分開,第一對中的初值1,2,3是0行的3個元素的初值。第二對中的初值4,5,6是1行的3個元素的初值。相當於執行如下語句:
int a[2][3];
a[0][0]=1;a[0][1]=2;a[0][2]=3;a[1][0]=4;a[1][1]=5;a[1][2]=6;
注意,初始化的資料個數不能超過陣列元素的個數,否則出錯。
⑵ 不分行的初始化
int a[2][3]=;
把中的資料依次賦給a陣列各元素(按行賦值)。即a[0][0]=1; a[0][1]=2;a[0][2]=3;a[1][0]=4;a[1][1]=5;a[1][2]=6;
⑶ 為部分陣列元素初始化
static int a[2][3]=,};
第一行只有2個初值,按順序分別賦給a[0][0]和a[0][1];第二行的初值4賦給a[1][0]。由於儲存型別是static,故其它陣列元素的初值為0。注:
某些c語言系統(如:turbo c)中,儲存型別不是static的變數或陣列的初值也是0。
static int a[2][3]=;
只有2個初值,即a[0][0]=1,a[0][1]=2,其餘陣列元素的初值均為0。
⑷ 可以省略第一維的定義,但不能省略第二維的定義。系統根據初始化的資料個數和第2維的長度可以確定第一維的長度。
int a[ ][3]=;
a陣列的第一維的定義被省略,初始化資料共6個,第二維的長度為3,即每行3個數,所以a陣列的第一維是2。
一般,省略第一維的定義時,第一維的大小按如下規則確定:
初值個數能被第二維整除,所得的商就是第一維的大小;若不能整除,則第一維的大小為商再加1。例如,int a[ ][3]=;等價於:int a[2][3]=;
若分行初始化,也可以省略第一維的定義。下列的陣列定義中有兩對,已經表示a陣列有兩行。
static int a[ ][3]=,};
來自
8樓:
c是對的,可以編譯通過。
d顯然格式就不對,排除。
而abc呢,c語言二維陣列初始化時,第一維可以不指定數字,但第二維必須指定數字。語言規則。沒什麼解釋的。可以自己揣摩一下為什麼是這個規則。
c語言問題——未初始化int變數的初值
9樓:
c語言問題未初始化int變數的初值是設定錯誤造成的,解決方法為:
1、首先我們開啟我們的編譯器,在main函式中寫。
2、然後我們宣告定義變數的型別,比如int(整形)double(雙精度)float(浮點型)char(字元型),已 int整形為例。
3、之後要有個空格。
4、接下來寫我們的變數名,注意區分大小寫,大小寫在c語言中是不一樣的。
5、如果想宣告一個型別的多個變數中間要加上逗號。
6、以宣告a,b兩個變數為例,注意在結束時不要忘記了分號。
10樓:風若遠去何人留
int變數未初始化的預設初值,和變數的型別有關。
1 區域性變數,在未初始化情況下,初值為隨機值。c規範對該初值並沒有做規定,具體實現由編譯器決定。如vc/vs等編譯器,會將初始值值為0xcccccccc, 而gcc等編譯器則是不可預知的隨機值。
2 靜態區域性變數,即帶static修飾的區域性變數。
全域性變數和靜態全域性變數,即定義在函式外,不屬於任何一個函式的變數。
這幾種預設初值為0.
11樓:匿名使用者
沒有初始化,記憶體上的值是任意的,但只要你宣告瞭變數,變數的地址就是固定的了,因此裡面的值,無論你重啟編譯器多少次,結果都是一樣的。如果你在下面再定義一個int型別的變數,再列印看看,它的值也許就跟你上面的值不同
不初始化就參與運算是很危險的,有的編譯器是不允許這樣操作的,因此變數最好要初始化
12樓:匿名使用者
在debug配置中,vc++自動把未初始化的空間填充了0xcc,int型的就是0xcccccccc,按有符號整數列印,就是-858993460了
13樓:匿名使用者
全域性是0
區域性的int預設的是-858993460,即0xcccccccc。
14樓:
你有沒有初始化?沒有的話 系統預設分配最大值
15樓:
你重啟電腦,說不定就不一樣了
c語言中,若在函式內部定義變數時沒有給變數賦予初值,如int a;,則a的初始值為
16樓:匿名使用者
區域性變數未初始化就是一個隨機值,如果宣告的int為全域性變數會預設初始化為0
17樓:匿名使用者
變數的定義實際是指定了一個記憶體的單元而已,如果剛開機也許是0大多不確定,是個隨機數
而其他的語言大多是0,
這就是c 的特別之處,一般都要預先賦初值,語言省事了,程式設計的人麻煩一點點
18樓:**
不可預知的數, 即隨機數。
19樓:言不由衷
0xcccccccc
c語言選擇題 以下能正確定義且賦初值的語句是? a.int a=b=10;
20樓:匿名使用者
選b,a選項中變數b未申明,選項b中賦給字元型變數c的是一個ascii碼值
21樓:斯文大男人
b a. int a,b;
a=10;
b=a;
c語言陣列的初始化表示方法
22樓:匿名使用者
在c語言中,陣列的初始化有以下幾種方式:
1、定義的時候同時初始化:
int array[10] = ;
2、定義的時候不指定陣列大小,由初始化的陣列元素來確定大小:
int array = ;
3、先定義變數,然後初始化.注意點:定義變數時必須制定陣列的大小.此時只能對陣列變數成員元素逐一賦值,不能批量賦值.
// int array; //錯誤用法
int array[12];
// array = ; //錯誤用法.
array[0] = 1;
array[1] = 2;
array[2] = 3;
4、只有一種情況,在作為方法的形式引數時,可以不指定陣列的大小.這時傳入方法的是陣列的首地址,所以在方法內部是無法得到陣列長度的,陣列長度必須作為引數傳入函式.
void test()
;int length = sizeof(array)/sizeof(int);
int result = sumofarray(array, length);
printf("%d",result);
}int sumofarray(int array, int length)
return result;
}擴充套件資料
c語言陣列構建:
1、遵循原則
申請的時候從外層往裡層,逐層申請;
釋放的時候從裡層往外層,逐層釋放。
2、構建所需指標
對於構建一維動態陣列,需要一維指標;
對於二維,則需要一維,二維指標;
三維需要一,二,三維指標;
依此類推。
參考資料
23樓:文望刃
不是inta 而是例如int a[10]這種。括號內一定要有個常量數字。
我們可以這樣定義
#define n 5
int a[n]
這表明了陣列名為a;陣列有5個元素;分別是a[0]到a[4];
對於陣列來說;陣列是變數的集合,因此陣列也具有與變數相同的資料型別和儲存型別。陣列的型別就是它所有的變數的型別。在定義陣列時,應在陣列名前對陣列的型別加以確定。
如上面的int a[10];則表明了陣列內元素均為整形。
所有當表示浮點型可以定義為例如float a[10]。 舉例如下:
陣列名是由使用者命名的c語言識別符號,要遵循識別符號命名規則。陣列名錶示陣列儲存區域的首地址。陣列的首地址也就是第一個元素的地址。陣列名是一個地址常量,不能對它賦值。
陣列名後是由方括號括起來的常量表示式,不能使用其他括號
24樓:臺式小情歌
c語言陣列的初始化表示方法有4種,分別是:
1、定義的同時進行初始
化,我們同樣用陣列的初始化引出結構體的初始化,我們知道陣列在定義的同時進行初始化的**如下:
int nums = ;
由此可推出結構體在定義的同時進行初始化的**如下:
struct person p = ;
2、先定義再進行初始化,這種初始化方法其實昨天的內容裡已經寫過了,**如下:
struct person p;
p.name = "lee";
p.age = 23;
p.height = 1.8;
我們知道資料定義好後就不能對其進行一次性初始化了,比如如下**是編譯不通過的。
int nums[3];
num =
3、第三種結構體比較例外,它可以這樣做,只不過需要對其進行一下強制型別轉換,**如下:
struct person p;
p = (struct person)
4、指定將資料賦值給指定的屬性,陣列中我們見過這種寫法,**如下:
int nums[3] = ;
我們可以為不同的索引指定值,並不需要一定要按順序來,所以陣列可以,結構體是否可以呢,當然,**如下:
struct person p = ;
若有定義intp3則對以下敘述正確的選項是
選擇答案c p是一個指標,它可以指向一個含有3個整型元素的一維陣列。陣列指標,回指的是數 答組名的指標,即陣列首元素地址的指標。即是指向陣列的指標。例 int p 10 p即為指向陣列的指標,又稱陣列指標。陣列指標是指向陣列地址的指標,其本質為指標 指標陣列是陣列元素為指標的陣列 例如 int p ...
簡要說明三頻段中的高頻段對控制系統的效能有什麼影響
中頻段與系統動態效能和穩定性有關。此段特性主要反映了閉環系統的動態效能。希望此段中的斜率為 20db dec,並且截止頻率大,這樣系統響應速度快,動態過程中的超調量小 過渡過程時間短。簡要說明三頻段中的低頻段對控制系統的效能有什麼影響 低頻段通常是指開環對數幅頻特性曲線的漸進線的第一個轉折頻率之前的...
舉例說明闡述一下你對藝術中的再現與表現的認識,以及兩者間有什麼
在現,嚴格的講不是藝術,是一種藝術技術能力。比如我可以把這裡的景色在現在畫紙上,這個不是藝術作品知識塑造形象的技能。表現,就不一樣了,這是一種具有主動性的表達,是藝術的作品的一種特質,所以這兩者是不一樣的 但是這兩者確實關係密切,藝術創作也就是藝術表現是需要藝術技術來支撐的,比如再好的曲子,如果你不...