第一章習(xí)題答案_第1頁
第一章習(xí)題答案_第2頁
第一章習(xí)題答案_第3頁
第一章習(xí)題答案_第4頁
第一章習(xí)題答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第1章 基本數(shù)據(jù)與表達(dá)式1.1 選擇題1一個(gè)最簡單的C+程序,可以只有一個(gè)( C )。(A)庫函數(shù)(B)自定義函數(shù)(C)main函數(shù)(D)空函數(shù)2用C+語言編寫的源程序要成為目標(biāo)程序必須要經(jīng)過( D )。(A)解釋(B)匯編(C)編輯(D)編譯3C+程序中的簡單語句必須以( B )結(jié)束。(A)冒號(hào)(B)分號(hào)(C)空格(D)花括號(hào)4假設(shè)有說明 int a=0; double x=5.16;,則在以下語句中,( C )屬于編譯錯(cuò)誤。(A)x=a/x;(B)x=x/a;(C)a=a%x;(D)x=x*a;5執(zhí)行C+程序時(shí)出現(xiàn)的“溢出”錯(cuò)誤屬于( C )錯(cuò)誤。(A)編譯 (B)連接 (C)運(yùn)行 (D)

2、邏輯6在下列選項(xiàng)中,全部都是C+關(guān)鍵字的選項(xiàng)為( C )。(A)while IF Static(B)break char go(C)sizeof case extern(D)switch float integer7按C+標(biāo)識(shí)符的語法規(guī)定,合法的標(biāo)識(shí)符是( A )。(A)_abc(B)new(C)(D)"age"8在C+語句中,兩個(gè)標(biāo)識(shí)符之間( A )不能作為C+的分隔符。(A)數(shù)字(B);(C):(D)+9下列正確的八進(jìn)制整型常量表示是( B )。(A)0a0(B)015(C)080(D)0x1010下列錯(cuò)誤的十六進(jìn)制整型常量表示是( C )。(A)0x11(B)0xaf

3、(C)0xg(D)0x1f11在下列選項(xiàng)中,全部都合法的浮點(diǎn)型數(shù)據(jù)的選項(xiàng)為( B )。(A)-1e3.5 15. 2e-4(B)12.34 -1e+5 0.1E-12(C)0.2e-2 -12345. e-5(D)5.0e(1+4) 0.1 8e+212在下列選項(xiàng)中,正確的字符常量為( D )。(A)"a"(B)'name'(C)a(D)'101'13在下列選項(xiàng)中,( D )不能交換變量a和b的值。(A)t=b; b=a; a=t;(B)a=a+b; b=a-b; a=ab;(C)t=a; a=b; b=t;(D)a=b; b=a; 14關(guān)于

4、下列語句,敘述錯(cuò)誤的是( A )。int i=10, *p=&i;(A)p的值為10(B)p指向整型變量i(C)*p表示變量i的值(D)p的值是變量i的地址15有以下變量說明,下面不正確的賦值語句是( B )。int a=5, b=10, c; int *p1 = &a, *p2 = &b; (A)*p2 = b;(B)p1 = a;(C)p2 = p1;(D)c = *p1 *(*p2);16有以下變量說明,下面正確的語句是( B )。 int a=10, b; int &pa=a, &pb=b; (A)&pb = a;(B)pb = pa;(

5、C)pb = &pa;(D)*pb = *pa;17執(zhí)行下面語句序列后,a和b的值分別為( B )。int a=5, b=3, t;int &ra=a;int &rb=b;t=ra; ra=rb; rb=t;(A)3和3(B)3和5(C)5和3(D)5和518在下列運(yùn)算符中,( D )優(yōu)先級(jí)最高。(A)<=(B)*=(C)+(D)*19在下列運(yùn)算符中,( D )優(yōu)先級(jí)最低。(A)! (B)&&(C)!=(D)? :20已知int i=1, j=2;,則表達(dá)式 i+j 的值為( C )。(A)1(B)2(C)3(D)421已知int i=1, j=2

6、;,則表達(dá)式 +i+j 的值為( D )。(A)1(B)2(C)3(D)422在下列表達(dá)式選項(xiàng)中,( C )是正確。(A)+(a+)(B)a+b(C)a+b(D)a+b23已知 int i=0, j=1, k=2;,則邏輯表達(dá)式 +i|- -j&&+k 的值為( B )。(A)0(B)1(C)2(D)324執(zhí)行下列語句后,x的值是( D ),y的值是( )。int x, y;x=y=1; +x | +y;(A)不確定(B)0(C)1(D)225設(shè)x為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系 1x5 的C+邏輯表達(dá)式是( A )。(A)1< x <5(B)x=2|x=

7、3|x=4(C)1<x && x<5(D)! (x<=1)&&! (x>=5)26已知 int x=5;,執(zhí)行下列語句后,x的值為( C )。x+=x-=x*x; (A)25(B)40(C)40(D)2027設(shè) int a=1, b=2, c=3, d=4;,則以下條件表達(dá)式的值為( A )。a<b?a:c<d?c:d(A)1(B)2(C)3(D)428以下逗號(hào)表達(dá)式的值為( D )。(x=4*5, x*5), x+25 (A)25(B)20(C)100(D)451.2 根據(jù)下列數(shù)學(xué)表達(dá)式寫出C+算術(shù)表達(dá)式1 2xxx(ax+

8、b)+c+d+e3ln 45cot 6lg(a2+ab+b2) 【解答】1. 1/(1 + 1/(1 + 1/(x + y)2. x * ( x * ( x * ( a * x + b ) + c ) + d ) + e3. log( 1 + pow( fabs( ( a + b )/( a b ) ),10)4. sqrt( 1 + 3.14159/2 * cos( 48 * 3.14159/180 ) )5. 1/tan( ( 1 - x*x )/( 1 + x*x)或者 cos( ( 1 - x*x )/( 1 + x*x ) )/sin( ( 1 - x*x )/( 1 + x*x )

9、 )6. log10( a * a + a * b + b * b )1.3 用邏輯表達(dá)式表示下列條件1i 被j整除2n是小于正整數(shù)k的偶數(shù)31x104x、y其中有一個(gè)小于z5y100,10,并且 y10,1006坐標(biāo)點(diǎn)(x, y)落在以(10, 20)為圓心,以35為半徑的圓內(nèi)7三條邊a,b和c構(gòu)成三角形8年份Year能被4整除,但不能被100整除,或者能被400整除【解答】1. i%j = 02.(n<k)&&(n%2 = 0)3. 1<=x && x<10 4. x<z|y<z5. !( y>=-100 &&am

10、p; y<=-10 ) && !( y>=10 && y<=100 )6. sqrt(pow(x-10),2) + pow(y-20),2)< 357. a+b>c && b+c>a && c+a>b8. (year%4 = 0) && (year%100!=0)|(year%400=0)1.4 閱讀下列程序,寫出運(yùn)行結(jié)果1#include <iostream>using namespace std;int main() int a = 1, b = 2; bo

11、ol x, y; cout << (a+)+(+b) << endl; cout << a % b << endl; x = !a>b; y = a- && b; cout << x << endl; cout << y << endl;【解答】42012#include <iostream>using namespace std;int main() int x,y,z,f; x = y = z = 1; f = -x | y- && z+; co

12、ut << "x = " << x << endl; cout << "y = " << y << endl; cout << "z = " << z << endl; cout << "f = " << f << endl;【解答】 x=0 y=0 z=2 f=13#include <iostream>#include<iomanip>using

13、namespace std;int main() int a=123; int &ra=a; int *pa=&a; cout<<setw(5)<<dec<<a<<setw(5)<<oct<<ra<<setw(5)<<hex<<*pa<<endl;【解答】 123 173 7b1.5 思考題1什么是數(shù)據(jù)類型?變量的類型定義有什么作用?【解答】數(shù)據(jù)“類型”是對(duì)數(shù)據(jù)的抽象。類型相同的數(shù)據(jù)有相同的表示形式、存儲(chǔ)格式以及相關(guān)的操作。定義一個(gè)變量時(shí),計(jì)算機(jī)根據(jù)變量的類型

14、分配存儲(chǔ)空間,并以該類型解釋存放的數(shù)據(jù)。2普通數(shù)據(jù)類型變量和指針類型變量的定義、存儲(chǔ)和使用方式有何區(qū)別?請(qǐng)編寫一個(gè)程序驗(yàn)證之?!窘獯稹孔兞款愋投x存儲(chǔ)使用方式數(shù)據(jù)類型 標(biāo)識(shí)符數(shù)據(jù)值通過名訪問即直接訪問對(duì)變量內(nèi)容操作指針類型 * 標(biāo)識(shí)符地址值通過指針變量的地址值間址訪問對(duì)象驗(yàn)證程序:#include<iostream>using namespace std;int main() int a,b,c; cout<<"a,b,c= " cin>>a>>b>>c;/對(duì)普通數(shù)據(jù)類型變量賦值 int *pa=&a,*p

15、b=&b,*pc=&c;/用變量地址值初始化指針變量 cout<<"a,b,c= "<<a<<", "<<b<<", "<<c<<endl;/名訪問,輸出a,b,c的值 cout<<"pa,pb,pc= "<<pa<<", "<<pb<<", "<<pc<<endl; /輸出指針變量的地址值 /

16、間址訪問,輸出pa,pb,pc指向的變量的賦值 cout<<"*pa,*pb,*pc= "<<*pa<<", "<<*pb<<", "<<*pc<<endl; 3什么是數(shù)據(jù)對(duì)象的引用?對(duì)象的引用和對(duì)象的指針有什么區(qū)別?請(qǐng)用一個(gè)驗(yàn)證程序說明之?!窘獯稹恳檬菫閿?shù)據(jù)對(duì)象定義別名。引用與指針有以下幾點(diǎn)區(qū)別:(1)引用名不是內(nèi)存變量,而指針變量要開辟內(nèi)存空間。(2)引用名需要在變量定義與變量名綁定,并且不能重定義;指針變量可以在程序中賦給不同的地址值,改變指向

17、。(3)程序中用變量名和引用名訪問對(duì)象的形式和效果一樣;指針變量通過間址訪問對(duì)象。驗(yàn)證程序:#include<iostream>using namespace std;int main () int a; cout<<"a="cin>>a; int ra=a; int *pa=&a; cout<<"a的值:"<<a<<endl; cout<<"a的地址:"<<&a<<endl; cout<<"

18、;ra的值:"<<ra<<endl; cout<<"ra的地址:"<<&ra<<endl; cout<<"pa所指向的變量的值:"<<*pa<<endl; cout<<"pa的地址:"<<pa<<endl;4數(shù)據(jù)對(duì)象在C+中有幾種不同的訪問方式?請(qǐng)編寫一個(gè)程序驗(yàn)證之?!窘獯稹繑?shù)據(jù)對(duì)象在C+中的訪問方式有:名訪問,引用(別名)訪問,間址訪問。驗(yàn)證程序:#include<iostrea

19、m>using namespace std;int main() int a; cout<<"a=" cin>>a; a=a+5; /名訪問 cout<<&a<<endl;/輸出變量地址 cout<<*(&a)<<endl;/地址訪問,輸出變量值 int *pa=&a;/說明指針變量,指向變量a cout<<*pa<<endl;/間址訪問,輸出變量值 int &ra=a;/ra是a的引用 cout<<ra<<endl;

20、/引用訪問,輸出變量a的值5為了約束對(duì)數(shù)據(jù)對(duì)象的值進(jìn)行只讀操作,C+采用什么方式?請(qǐng)進(jìn)行簡要?dú)w納。【解答】約束數(shù)據(jù)對(duì)象只讀形式如下:約束對(duì)象說明形式標(biāo)識(shí)常量const 類型 常量標(biāo)識(shí)符=常量表達(dá)式;指針常量類型 * const 指針;指向常量的指針const 類型 * 指針; 或者 類型 const * 指針;指向常量的指針常量const 類型 * const 指針; 或者 類型 const * const 指針;常引用const 類型 & 引用名 = 對(duì)象名;6什么是表達(dá)式?表達(dá)式值的類型由什么因素決定?使用不同運(yùn)算符連接以下3個(gè)變量,請(qǐng)寫出5個(gè)以上獲得值為true的表達(dá)式。int

21、a=1, b=2; double x=0.5;【解答】表達(dá)式是由數(shù)據(jù)和運(yùn)算符,按求值規(guī)則,表達(dá)一個(gè)值的式子。表達(dá)式值的類型的決定因素為操作數(shù)的類型。(1)如果運(yùn)算符左右操作數(shù)類型相同,運(yùn)算結(jié)果也是相同類型。(2)如果運(yùn)算符左右操作數(shù)類型不同,首先把類型較低(存儲(chǔ)要求,示數(shù)能力較低)的數(shù)據(jù)轉(zhuǎn)換成類型較高的數(shù)據(jù),然后運(yùn)算。(3)賦值表達(dá)式的類型由被賦值變量的類型決定。當(dāng)把一個(gè)表達(dá)式的值賦給一個(gè)變量時(shí),系統(tǒng)首先強(qiáng)制把運(yùn)算值轉(zhuǎn)換成變量的類型,然后執(zhí)行寫操作。6個(gè)值等于true的表達(dá)式:(1)b>a && a>x(2)(a+b)!=x(3)a|(b+x)(4)a=(b*x)(

22、5)a-b<x(6)(a/x=b)7閱讀以下程序,分析下面語句序列中每一個(gè)字符“*”和“&”的含義,并寫出輸出結(jié)果。#include <iostream>using namespace std;int main() int a=10, b=20; int *p = &a, *q = &b; *p = *p * *q; int & ra = a; ra=a; int * & rt = q; *rt = 30; cout<<"a="<<a<<"nb="<<

23、;b<<"n*p="<<*p<<"n*q="<<*q <<"nra="<<ra<<"n*rt="<<*rt<<endl;【解答】字符“*”和“&”的意義見程序中添加的注釋。#include <iostream>using namespace std;int main() int a=10, b=20; int *p = &a, *q = &b;/“*”是指針類型說明符,“&

24、amp;”是取址運(yùn)算符 *p = *p * *q;/第1、2、4個(gè)“*”是間址訪問符,第3個(gè)“*”算術(shù)乘運(yùn)算符 int & ra = a;/“&”是引用說明符 ra=a; int * & rt = q;/“*”是指針類型說明符,“&”是引用說明符 *rt = 30;/“*”是間址訪問符/輸出語句中的“*”是間址訪問符cout<<"a="<<a<<"nb="<<b<<"n*p="<<*p<<"n*q="<<*q <<"nra="<<ra<<"n*rt="<<*rt<<endl;程序輸出結(jié)果為:a=200b=30*p=200*q=30ra=200*rt=301.6 編程題1輸入一個(gè)3位整數(shù),將它反向輸出?!窘獯稹?include <iostr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論