天天看點

C++刷題——基本資料類型、運算符與表達式

文章目錄

    • 1、輸出各種資料類型所占用存儲空間的大小
    • 2、下列哪一項能用作使用者自定義的辨別符
    • 3、指出下列程式中的錯誤
    • 4、給下清單達式加上全部的括号 (假設所用變量均已定義)
    • 5、請根據下列題意寫出相應的表達式
    • 6、下列選項中兩個表達式的運算結果相同的是
    • 7、下列程式的運作結果為
    • 8、求解下列各表達式的值(其中 x 的值為 100)
    • 9、下列程式運作結果為
    • 10、小型選擇題

1、輸出各種資料類型所占用存儲空間的大小

#include<bits/stdc++.h>
using namespace std;
//名額識符的各種可見範圍
//C++标準程式庫中的所有辨別符都被定義于一個名為std的namespace中

/*
使用 C++ sizeof 運算符來計算 int, float, double 和 char 
變量占用的空間大小。
*/

int main()
{
	cout << "int 變量占用的空間大小為:" << sizeof(int) << endl;
	cout << "float:" << sizeof(float) << endl;
	cout << "char:" << sizeof(char) << endl;
	cout << "double:" << sizeof(double) << endl;
	cout << "bool:" << sizeof(bool) << endl;
	cout << "long long:" << sizeof(long long) << endl;
}
           
C++刷題——基本資料類型、運算符與表達式
C++刷題——基本資料類型、運算符與表達式

2、下列哪一項能用作使用者自定義的辨別符

(a)const (b)2var (c)my name (d)var2

(a) 中 const 是關鍵字,C++關鍵字不能用于使用者自定義辨別符;

(b) 中 2var 是以數字開頭,第一個字元必須是字母或下劃線;

© 中 my name含有空格,辨別符不能含有空格。

C++刷題——基本資料類型、運算符與表達式

3、指出下列程式中的錯誤

#include<bits/stdc++.h>
using namespace std;

int main()
{
	const int x;
	x = 100;
	return 0;
}
           

const 定義的符号常量必須初始化 , 由 const 定義的常量的值不可以改變。

是以本題有兩處錯誤:

第一、沒有對符号常量 x 進行初始化;

第二、給符号常量指派是錯誤的。

C++刷題——基本資料類型、運算符與表達式

vs都指出來了,yyds!

C++刷題——基本資料類型、運算符與表達式

4、給下清單達式加上全部的括号 (假設所用變量均已定義)

(1) a+b-c–%b

(2) a>b?b:c>d?a:c<a?c:d

(3) a+=a+b||e

(4) a&b+c++

(5) -a&&b-c

(6) k=b=c=a

考察運算符的優先級

C++刷題——基本資料類型、運算符與表達式

解答:

(1) (a+b)-((c–)%b)

(2) a>b?b:(c>d?a:(c<a?c:d))

(3) a+=((a+b)||e)

(4) a&(b+(c++))

(5) (-a)&&(b-c)

(6) k=(b=(c=a))

C++刷題——基本資料類型、運算符與表達式

5、請根據下列題意寫出相應的表達式

(1) 有 a、b、c、max四個變量 a、b、c 中的最大值,并将結果放入 max中。

(2) 年齡在 1 到 100 之間(包含 1 和 100,年齡用變量 age 表示)。

(3) 判斷一年是否為閏年,年用 year 表示。滿足下列兩個條件之一即為閏年:①能被 4 整除但不能被 100 整除 ②能被 400 整除。

4、

C++刷題——基本資料類型、運算符與表達式

解答:

(1)

max = (a > b) ? (a > c ? a : c) : (b > c ? b : c);

C++刷題——基本資料類型、運算符與表達式

原諒我忘記return 0;了~

C++刷題——基本資料類型、運算符與表達式

(2)

(age >= 1 && age <= 100)

C++刷題——基本資料類型、運算符與表達式

原諒我忘記return 0;了~

(3)

(a+b)*h/2

(4)

(year%4==0&&year%100!=0)||(year%400==0)

C++刷題——基本資料類型、運算符與表達式

這次沒有忘記return 0;嗚嗚

C++刷題——基本資料類型、運算符與表達式

6、下列選項中兩個表達式的運算結果相同的是

(a)3/2 和 3.0/2.0 (b)3/2 和 3.0/2 (c)3/2.0 和 3.0/2.0 (d) 3/2.0 和 3/2

考查資料類型及表達式中資料類型的隐式轉換

3/2 中兩個操作數都為整型,運算結果仍為整型即 1;

3.0/2 和 3/2.0 中一個操作數為整型另一個為浮點型,運算時整型隐式轉換為浮點型,運算結果也為浮點型即 1.5 ;

3.0/2.0 兩個操作數均為浮點型,結果也為浮點型即 1.5 。

C++刷題——基本資料類型、運算符與表達式

7、下列程式的運作結果為

#include<bits/stdc++.h> 
using namespace std;
void main()
{
	int a = 2, b = 4, i = 0, x;
	x = a > b && ++i;
	cout << "x :" << x << endl;
	cout << "i :" << i << endl;
}
           

考查“短路”表達式

對于表達式中的“與”運算而言,隻要有一個操作數為假,結果為假。是以當第一個操作數為假時,不在求解其它操作數。對于表達式中的“或”運算而言,隻要有一個操作數為真,則結果為真。是以當第一個操作數為真時,不在求解其它操作數。本題中 a>b 為假,是以表達式 a>b&&++i 為假,而++i 沒有執行。故i:0,x:0。

C++刷題——基本資料類型、運算符與表達式
C++刷題——基本資料類型、運算符與表達式

8、求解下列各表達式的值(其中 x 的值為 100)

(1) (a=1,b=2,c=3)

(2) 1|3<<5

(3) ‘a’+3&&!0%1

(4) x%2?“ odd”: ” even ”

解答:

(1)逗号表達式的值是其最後一個表達式的值。

C++刷題——基本資料類型、運算符與表達式

(2)<<運算符的優先級高于 | 運算符,是以先算 3<<5 結果為96(二進制 1100000),然後與 1 做按位與運算則結果為 97(二進制 1100001)。答案為: 97

C++刷題——基本資料類型、運算符與表達式

(3)按優先級由高到低依次是: ! 運算符、算術運算符、邏輯運算符。 !0%1 即 1%1結果為 0,‘a’+3 時字元型首先隐式轉換成整型然後相加結果為 100,100&&0結果為 0。答案為: 0

C++刷題——基本資料類型、運算符與表達式

(4)害,卡出了

C++刷題——基本資料類型、運算符與表達式

vs嗚嗚,之前顯示的錯誤後來改了,可能下面還是會顯示錯誤,需要重新運作才不顯示。

考英語~odd奇數,even偶數

C++刷題——基本資料類型、運算符與表達式
C++刷題——基本資料類型、運算符與表達式

9、下列程式運作結果為

#include<bits/stdc++.h>
void main() 
{ 
 int a=23; 
 double b=23.123456789; 
 cout<<a<<'\t'<<b<<endl; 
 cout<<setprecision(0)<<b<<endl; 
 cout<<setiosflags(ios::fixed)<<setprecision(7)<<b<<endl; 
 cout<<setiosflags(ios::scientific)<<b<<endl; 
 cout<<setprecision(6); 
 cout<<setiosflags(ios::showbase); 
 cout<<hex<<a<<'\t'<<a<<endl; 
 cout<<dec; 
 cout<<setw(10)<<setfill('*')<<setiosflags(ios::left)<<a<<endl; 
cout<<setfill(' '); 
}
           

解答:

C++刷題——基本資料類型、運算符與表達式

10、小型選擇題

(1)下列資料類型不是 C++語言基本資料類型的是( )

A、字元型 B、整型 C、浮點型 D、數組

解析:數組是複合資料類型。

(2) 下列字元列中,可作為 C++語言程式自定義辨別符是( )

A、x B、-var C、new D、3i

解析:辨別符不能以-和數字開頭,new是關鍵字,不能作為辨別符。

(3)下列數中哪一個是 8 進制數( )

A、0x1g B、010 C、080 D、01b

(4)已知 a=1,b=2,c=3 ,則表達是 ++a||-b&&++c 的值為( )

A、0 B、1 C、2 D、3

解析:這個看優先級啦!

(5)下清單達式選項中, ( )是正确的

A、++(a++) B、a++b C、a+++b D、a++++b

解析:(a++)+b 和a+++b兩個表達式概念是一樣的,a++,++在後面的時候,先保留a的運算,a全部運算完後a才自加。(雖然++的優先級比+的高)(有點坑)

C++刷題——基本資料類型、運算符與表達式
C++刷題——基本資料類型、運算符與表達式
C++刷題——基本資料類型、運算符與表達式

(6)已知枚舉類型定義語句為: ( )

enum color{RED,BLUE,PINK=6,YELLOW,GREEN,PURPLE=15};

則下列叙述中錯誤的是( )。

A、枚舉常量 RED的值為 1 B、枚舉常量 BLUE的值為 1

C、 枚舉常量 YELLOW的值為 7 D、枚舉常量 PURPLE的值為15

解析:預設情況下,第一個名稱的值為 0,第二個名稱的值為 1,第三個名稱的值為 2,以此類推。但是,您也可以給名稱賦予一個特殊的值,隻需要添加一個初始值即可。但在第6題的情況下RED仍然為0,YELLOW的值為 7,GREEN的值為8。

繼續閱讀