A. 在c語言中,若有下列定義:char a[]=」123456」;
經過賦值,實際上通過編譯程序生成的數組a[7]={ '1','2','3','4','5','6',0 }; b[6]={ '1','2','3','4','5','6' };
因為雙引號引起來的字元串默認最後多一個字元串結束符0
所以A不對
B也不對
C也不對,因為b數組中沒有字元串結尾標志的0,b中存放的是不合格的字元串,也叫非法字元串
D是對的
B. C語言的數組問題,若有定義:int a[2][3];以下選項中對a數組元素正確引用的是 A.a[2][!1] B.a[2][3]
選D。
一個二維數組可以被認為是一個帶有 x 行和 y 列的表格。下面是一個二維數組,包含 2 行和 3列:
(2)在c語言若有定義擴展閱讀:
數組使用規則:
1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。
2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;(請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。)
3.如不給可初始化的數組賦初值,則全部元素均為0值。
4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
網路-數組
C. 在c語言中,若有定義:int a=5,b=2,c=1;則表達式a-b<c | |b = =c的值
先計算 a-b<c 即 5-2<1 不成立 值為假。
然後計算b==c 即 2==1 不成立, 值為假。
||兩側都是假。 結果為假。 即0.
D. 在C語言中,若有定義:static int x[2][3]={2,3,4,5,6,7},則表達式*x[1]的值為多少
答案該是5。
int x[2][3]表示2行3列
2 3 4
5 6 7
X[0]就表示第0行第0列的數
X[1]表示 第1行第0列的數
(4)在c語言若有定義擴展閱讀
C語言的運算符主要用於構成表達式,同一個符號在不同的表達式中,其作用並不一致。下面按計算的優先順序,分別說明不同作用的表達式。需要特別指出,在C語言標准中,並沒有結合性的說法。
相同優先順序運算符,從左至右依次運算。注意後綴運算優先順序高於前綴。因此++i++應解釋為++(i++)。
而與或非的運算優先順序都不一樣,因此a && b || b && c解釋為(a && b) || (b && c)
合理使用優先順序可以極大簡化表達式。
E. 在C語言中,若有定義:int a=8,b=5,c;執行語句c=a/b+0.4;後,c的值為多少
c=1,因為a/b默認是取整計算!即5/8=1,c=1+0.4=1。計算過程中小數點之後的全部捨去。不是按四捨五入計算!
int類型在內存中佔用了4個位元組,也就是32位。int類型是有符號的,因此,32位並不會全部用來存儲數據,使用最高位來存儲符號,最高位是0,提示數據是正數,最高位是1,表示數據是負數,使用其他的31位來存儲數據。
(5)在c語言若有定義擴展閱讀:
C語言沒有規定各種整數類型的表示範圍,也就是說,沒有規定各種整數的二進制編碼長度,對於int和long,只規定了long類型的表示範圍不小於int,但也允許它們的表示範圍相同。具體C語言會對整型和長整型規定表示方式和表示範圍。
標准函數INT(X)其基本功能是得到一個不大於X的最大整數,如INT(3.59)=3,INT(-2.01)=-3。INT函數是一個用途很廣的函數,在教學中能有目的的分列其使用技巧。
F. C語言問題:若有定義
結果應該是:A
*(p++)->s 可以理解為 *((p++)->s)
而p++是先取值,所以取的是第一個結構體,s是一個char[].
所以 *((p++)->s) 是取第一個結構的s的第一個字母。
白寫了半天,你採納的是錯的。
按照採納的說法 *(p++)->s 應該解釋為 (*(p++))->s
這時是不能使用 -> 操作符的,因為前邊(*(p++))不是一個指針。
G. 在c語言中,若有定義:int a=5,b=4,c=3,x;x=a>b>c;則輸出x的值為什麼為0
a>b為true,然而C中沒有true,只有-1,false為0。-1>c為false,自然就是0了。