① 假設b是邏輯型變數,下面賦值語句中不出錯的是
B不對,這個不是bool變數,b是個字元串。
② 下面哪個賦值語句是不對的 a.float f=11.1; b.double d= 5.3e12; c.double d= 3.
A,11.1默認是double型,應該為float f=11.1f
在編譯器里的結果如圖。
C是正確答案。byte 的賦值范圍為-128~127
A.項,float f=1.3f;後面的1.3後的f要加,否則會發生自動類型轉換 換成double類型
B項,char類型在賦值時要用單引號,且只能賦值一個字元。雙引號的無論是幾個字元,都默認為字元串。
D項,boolean類型只能賦值為true 或者 false, 如果把這個選項的類型改成boolean的封裝類Boolean,即:Boolean d=null; 這個選項就會是正確的。
④ 以下賦值語句中哪些是錯誤的
456都應該有錯吧
4::既然是指針變數應該保存變數地址,而不能直接付給她數值。。
5::類型有誤。。每種指針只能包含她同類型的變數的值,。。除非強制轉換。。。
引用LS的話6::6是錯的,因為*q=&b這句只能用在聲明指針p的時候,當不是聲明的時候,就表示解引用,只時候他代表的是一個他指向的變數
⑤ 下列賦值語句錯誤的是()
float是關鍵字,不能作為變數名
double也是關鍵字
char也是關鍵字
byte b=433 需要滿足: byte有過定義,語句後面有分號,否則也錯誤
⑥ 設已有定義:float x;,則下列對指針變數 p 進行定義且賦初值的語句中正確的是 ( )。
正確答案選擇D,「float *p=&x;」,因為x是一個float型的變數,所以說要定義一個float型的指針變數來存儲x變數的地址,所以說選項D直接排除。然後C選項也可以排除,因為C選項定義的是變數,不是指針變數。
A和D選項都是指針變數,但是A選項不能作為正確的語句,不能把一個常數賦值給指針變數,所以說A是不正確,根據排除法得出D是對的,因為它定義了一個指針變數p來存放x的地址,所以說選擇答案D。
(6)下面賦值語句不會出現編譯警告或錯誤的是擴展閱讀:
指針使用注意事項:
1、不允許把一個數賦予指針變數。
2、改變形參不代表改變實參。
3、分析函數指針變數不能進行算術運算,這是與數組指針變數不同的。數組指針變數加減一個整數可使指針移動指向後面或前面的數組元素,而函數指針的移動是毫無意義的。
函數調用中「(*指針變數名)」的兩邊的括弧不可少,其中的「*」不應該理解為求值運算,在此處只是一種表示符號。要把「z=*pomax(x,y);」改成「z=(*pomax)(x,y);」。
C語言中指 針初始化是指 給所定義的指 針變數賦初值。 指針變數在被創建後, 如果不被賦值, 他的預設值是隨機的 ,它的指向是不明確的, 這樣的指針形象地稱為「野指針」。
野指針是很危險的, 容易造成程序出錯, 且程序本身無法判斷指針指向是否合法。
指針變數初始化時避免野指針的方法: 可以在指針定義後, 賦值NULL空值。
參考資料來源:網路-指針
⑦ 對於如下說明,語法和語義都正確的賦值是____。
對於如下說明,語法和語義都正確的賦值是:C、s=&a[1];
A、語法上正確(可能引起編譯警告)。若非靜態變數或全局變數,否則s沒有被初始化,是隨機值,*s的值無法確定,即沒有確定的語義;若是靜態變數或全局變數,s被初始化為0,對地址0的解引用操作沒有確定的語義。
B、錯誤。理由同上,對隨機地址的操作不具有確定的語義(s[0]等價於*s)。另外對隨機地址單元的寫操作(賦值)引起的後果不可預料。
C、正確,將a[1]的地址賦值給指針s。
D、語法錯誤,c(int)和a(const int*)的類型不匹配,會引起編譯錯誤。
(7)下面賦值語句不會出現編譯警告或錯誤的是擴展閱讀:
將確定的數值賦給變數的語句叫做賦值語句。各程序設計語言有自己的賦值語句,賦值語句也有不同的類型。所賦「值」可以是數字,也可以是字元串和表達式。
例如,給變數a賦值一個數為12,則格式為:a = 12 [注意:變數(即a)只能是一字母,而賦予的值可以是一個式子,當它是式子時,a的值就是這個式子的結果。
⑧ 1.下列關於賦值語句的說法錯誤的是( ) a.賦值語句先計算出賦值號右邊的表達式
答案:B 分 析: 此題是關於賦值語句的,賦值語句的一般格式是:變數名=表達式,賦值作用是把右邊表達式的值賦給賦值號左邊的量,故B錯誤.
⑨ C語言題目 以下非法的賦值語句是
選C,因為先進行i+1,這時候表達式已經是常量了,不能進行++運算。
C語言在賦值語句的使用中需要注意以下幾點:
1、由於在賦值符「=」右邊的表達式也可以又是一個賦值表達式, 因此,下述形式 變數=(變數=表達式); 是成立的,從而形成嵌套的情形。 其展開之後的一般形式為:變數=變數=…=表達式; 例如:a=b=c=d=e=5;按照賦值運算符的右接合性,因此實際上等效於:e=5; d=e; c=d; b=c; a=b;
2、注意在變數==說明==中給變數賦初值和賦值語句的區別。 給變數賦初值是變數說明的一部分,賦初值後的變數與其後的其它同類變數之間仍必須用逗號間隔,而賦值語句則必須用分號結尾。 例如:int a=5,b,c;
3、在變數說明中,不允許連續給多個變數賦初值。 如下述說明是錯誤的:int a=b=c=5必須寫為int a=5,b=5,c=5;而賦值語句允許連續賦值。
4、注意賦值表達式和賦值語句的區別。 賦值表達式是一種表達式,它可以出現在任何允許表達式出現的地方,而賦值語句則不能。
(9)下面賦值語句不會出現編譯警告或錯誤的是擴展閱讀:
C語言的特點
1、語言簡潔,緊湊,使用方便,靈活
2、運算符豐富
3、數據類型豐富,具有現代語言的各種數據結構
4、具有結構化的控制語句。
5、語法限制不太嚴格,程序設計自由度大。
6、C語言允許直接訪問物理地址,能進行位(bit)操作,能實現匯編語言的大部分功能,可以直接對硬體進行操作。
7、生成目標代碼質里高,程序執行效率高。
8、用C語言編寫的程序可移植性好(與匯編語言比)。
⑩ (22)有以下定義語句,編譯時會出現編譯錯誤的是char a='aa'; 這個哪裡錯了還有第23題,如下:
22. char a='aa'; a是字元變數,只能存儲一個字元!
23. %c 列印字元 %d 列印整數,至於是什麼值,請對照ASCII表查看!
33. 答案:A。 但樓上解釋均有誤!
void (*pf)(); 定義函數指針pf,指向返回值為void的函數,參數任意
pf = fun; 正確!
pf = &fun; 正確!C照樣認可這種寫法,只是不同的觀點而已!請參看《C和指針》
void *pf(); 聲明pf函數,沒有參數,但返回void *類型!只是聲明,還沒有定義!
另外,pf 本身是地址,不是變數,不可以更改!故pf = fun;錯誤!
再看這一句
D)void (*pf)(int,char);pf=&fun;
首先聲明pf為函數指針,它指向的函數返回void類型,
參數為int和char(不是char *,否則就對了)
而fun的參數2為char *類型,故兩者類型不匹配,pf=&fun; 錯誤!