798956542-譚浩強(qiáng)c語言程序設(shè)計習(xí)題集_第1頁
798956542-譚浩強(qiáng)c語言程序設(shè)計習(xí)題集_第2頁
798956542-譚浩強(qiáng)c語言程序設(shè)計習(xí)題集_第3頁
798956542-譚浩強(qiáng)c語言程序設(shè)計習(xí)題集_第4頁
798956542-譚浩強(qiáng)c語言程序設(shè)計習(xí)題集_第5頁
已閱讀5頁,還剩142頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

譚浩強(qiáng)C語言程序設(shè)計習(xí)題集

目錄

重要次重要重復(fù)或欲刪除基礎(chǔ)

第一章C語言概述

第二章數(shù)據(jù)類型、運算符與表達(dá)式

第三章最簡單的C程序設(shè)計

第四章邏輯運算和判斷選取控制

第五章循環(huán)控制

第六章數(shù)組

第七章函數(shù)

第八章編譯預(yù)處理

8.1選擇題

8.2填空題

8.3編程題

第九章指針

9.3編程題

第十章結(jié)構(gòu)體和共用體

10.1選擇題

10.2填空題

10.3編程題

第十一章位運算

11.1選擇題

11.2填空題

11.3編程題

第十二章文件

12.1選擇題

12.2填空題

12.3編程題

第一章C語言概述

1.1選擇題

*1.1一個c程序的執(zhí)行是從

A)本程序的main函數(shù)開始,到main函數(shù)結(jié)束

B)本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束

C)本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束

D)本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結(jié)束

參考答案:A

參考分析:C語言總是從main函數(shù)開始,main函數(shù)結(jié)束。但是C語言中存在一個exit(O)

函數(shù),它可以使得程序在任何時候、任何位置結(jié)束程序的運行。如果不考慮exit(O)等函數(shù)的

特殊作用,C則總是在main函數(shù)結(jié)束。

*1.2以下敘述正確的是。

A)在C程序中,main函數(shù)必須位于程序的最前面

B)在C程序的每一行只能寫一條語句

C)C語言本身沒有輸入輸出語句

D)在對一個C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤

參考答案:C

參考分析:C程序?qū)ain函數(shù)的位置沒有任何要求;其書寫格式自由,一行可以寫多條語

句,一條語句(多關(guān)鍵字語句)可以寫在多行;C語言忽略注釋,把注釋看作是一個空格,不會

對注釋中的B)必須在系統(tǒng)調(diào)用的庫函數(shù)的后面

C)可以任意D)必須在最后參考答案:C

*1.5一個C語言程序是由

A)一個主程序和若干個子程序組成B)若干函數(shù)組成

C)若干過程組成D)若干子程序組成

參考答案:B

參考分析:通常許多語言程序由主程序和子程序構(gòu)成,但是C語言是函數(shù)式語言,整個程序

由眾多函數(shù)組成。盡管有時習(xí)慣上稱main函數(shù)為主程序,顯然,嚴(yán)格地講還是B更為符合

C語言的規(guī)則。

1.2填空題

1.6C源程序的基本單位是【

參考答案:函數(shù)

1.7一個C源程序中至少應(yīng)包括一個【

參考答案:main()函數(shù)

1.8在一個C源程序中,注釋部分兩側(cè)的分界符分別為【1】和【2】。

參考答案:【1]/*[2]*/

L9在C語言中,輸入操作是由庫函數(shù)【1】完成的,輸出操作是由庫函數(shù)【2】完成的。參

考答案:【1】scanf[2]printf

第二章數(shù)據(jù)類型、運算符與表達(dá)式

2.1選擇題

**2.1C語言中(以16位PC機(jī)為例),各數(shù)據(jù)類型的存儲空間長度的排列順序為

A)char<int<long<=float<doubleB)char=int<long<=float<double

C)char<int<long=float=doubleD)char=int=long<=float<double

參考答案:A

分析:在不同的計算機(jī)系統(tǒng)中,不同的C語言系統(tǒng)中,其各種數(shù)據(jù)類型所占據(jù)的存儲空間是

不同的,但是有一個總的原則,即:char<=short<=int<=long<=float<=double,只有A

符合16位PC機(jī)中的具體環(huán)境。

*2.2若x、i、j和k都是int型變量,則計算下面表達(dá)式后,x的值為。

x=(i=4,j=16,k=32)

A)4B)16C)32D)52

參考答案:c

參考分析:逗號表達(dá)式的計算結(jié)果是最后一個表達(dá)式的值。k=23是括號B)8C)5

D)2

參考答案:B

參考分析:逗號表達(dá)式的計算結(jié)果是最后一個表達(dá)式的值。b++在所在表達(dá)式參與運算時

的值是5,該表達(dá)式計算完成后,b進(jìn)行自增運算,故a+b的值為2+6=8。

2.4下列四組選項中,均不是C語言關(guān)鍵字的選項是。

A)defineB)getcConcludeD)while

IFcharscanfgo

typeprintfcasepow

參考答案:A

參考分析:是關(guān)鍵字的有:char、case^while。

2.5下列四組選項中,均是C語言關(guān)鍵字的選項是

A)autoB)switchC)signedD)if

enumtypedefunionstruct

includecontinuescanftype

參考答案:B

參考分析:不是關(guān)鍵字的:include、scanfstype

*2.6下面四個選項中,均是不合法的用戶標(biāo)識符的選項是。

A)AB)floatC)b-aD)_123

P_0laOgototemp

doAintINT

參考答案:C

參考分析:合法的有:A、P_0、laO、_A、」23、temp、INT?

**2.7C語言中的標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字

符。

A)必須為字母B)必須為下劃線C)必須為字母或下劃線

D)可以是字母、數(shù)字和下劃線中的任一種字符

參考答案:C

參考分析:教材中只是強(qiáng)調(diào)首字符必須為字母,我們應(yīng)當(dāng)知道,在語言系統(tǒng)中,下劃線和字母

具有同等的一法律效力IIo

*2.8下面四個選項中,均是合法整型常量的選項是。

A)160B)-0xcdfC)-01D)-0x48a

-OxffifOla986,0122e5

OilOxe0668Ox

參考答案:A

參考分析:不合法的B2,C2,C3,D2。解釋:A2:-0xffff十六進(jìn)制數(shù)本身已經(jīng)包含了符號位,

一般不前面加符號位,但加上符號位也不錯誤:C3:0668在有些C系統(tǒng)中,八進(jìn)制數(shù)中允許出

現(xiàn)8,但是通常不允許使用8;D3:0x顯然后面缺少數(shù)值,但在TC中是允許的。*2.9下面四個

選項中,均是不合法的整型常量的選項是。

A)-0fIB)-0XcdfC)-()I8D)-0x48eg

-OxfffF017999-068

001112,4565e203f

參考答案:D

參考分析:不合法的A1,B3,C1,C3,D。解釋:Al:-Ofl十六進(jìn)制數(shù)沒有Ox,顯然不合法,這里

需要討論的是常量前面允許不允許加上一號,是否可以負(fù)負(fù)得正,顯然不可以,-在C中是自減

運算,它只適用于變量;BLOXcdfX大寫也可以!C3:5e2是個實型數(shù)。*2.10下面四個選

項中,均是不合法的浮點數(shù)的選項是。

A)160.B)123C)-.18D)-e3

0.122e4.2123e4.234

e3.e50.0le3

參考答案:B

參考分析:不合法的有A3,B,DI。部分解釋:A1,D2:C語言中小數(shù)點前面或后面的0可以

省略。但是不能只有小數(shù)點自身;A3,B3,Dl:e的前后必須有合法數(shù)字。l.e2,le2合法,.e2

不合法;BE23是整型數(shù),不是浮點數(shù)。

*2.11下面四個選項中,均是合法的浮點數(shù)的選項是。

A)+le+lB)-.6OC)123eD)-e3

5e-9.412e-41.2e-,4,8e-4

03e2-8e5+2e-l5.e-0

參考答案:B

參考分析:不合法的有A2:階碼不能為小數(shù);A3:浮點數(shù)的尾數(shù)及階碼不能用八進(jìn)制數(shù)表示;

Cl:e后必須有整數(shù),C2:階碼不能為小數(shù):D1:缺少尾數(shù)。

*2.12下面四個選項中,均是合法轉(zhuǎn)義符的選項是

A),\"B),VC),\018,D)N(T

'\\''\oi7''\f'i\ior

''n''\"''xab''xlf'

參考答案:A

參考分析:&quoC"后面的數(shù)字,c總是按照八或十六進(jìn)制解釋。由于c支持?jǐn)U展ASCII

字符集,所以,八進(jìn)制數(shù)范圍在0?377,十六進(jìn)制數(shù)范圍在00?ff。*2.13下面四個選項中,

均是不合法的轉(zhuǎn)義符的選項是。

A)'\"'B),\1011,C)'\0irD)'\abc'

‘Vi\r'Mor

'\xf'\a'、}''xlf'

參考答案:B

參考分析:不合法的有B1,B2,B3,C3,D1,D3;但B3和C3值得討論,實際上,中是一個轉(zhuǎn)義

字符(07beep)。C中只有少數(shù)字母是轉(zhuǎn)義字符,大多數(shù)字母不是。像'\c,就不是,它就是字符c

自身,非轉(zhuǎn)義字母加"\"也僅表示它本身。C3、,也表示自身。本題的命題人顯然不

知道也是轉(zhuǎn)義字符。

*2.14下面正確的字符常量是。

A)"c"C)'W'D)""

參考答案:C*2.15下面四個選項中,均是不正確的八進(jìn)制或十六進(jìn)制數(shù)的選項是。

A)016B)OabcC)010D)0al2

Ox8f017-0x117ff

018Oxa0x16-123

參考答案:D

參考分析:不正確的有A3:非法八進(jìn)制數(shù);Bl、Dl、D2:缺少x;D3是十進(jìn)制數(shù)。2.16

下面四個選項中,均是正確的八進(jìn)制或十六進(jìn)制數(shù)的選項是。

A)-10B)0abcC)0010D)0al2

0x8f-017-0x11-0x123

-OilOxcOxfl-Oxa

參考答案:C

參考分析:不正確的有Al:這是十進(jìn)制數(shù);Bl、DI:缺少x2.17下面四個選項中,均是

正確的數(shù)值常量或字符常量的選項是。

A)0.0B)"a"C)3D)+001

Of3.9e-2.5OilOxabcd

8.9eleiOxFFOO2e2

,&',\"'0a50.

參考答案:D

參考分析:不正確的有A2、C4:不是ox打頭;A3:e后不是整數(shù);B1是字符串;B2:

2.5不是整數(shù)。

2.18下面不正確的字符串常量是。

A)'abc'B)"12,12"C)"0"D)""

參考答案:A

參考分析:與PASCAL不同,B)字符串。

exp(x*x/2)/sqr(2*3.14159)

72n

B)%()1.0/2.0*(a*x+(a+x)/(4*a))

C)Ysinx2.5sqrt((pow(sin(x*3.14159/180),2.5))

D)x2-e5x*x-exp(5.0)

參考答案:C

2.20若有代數(shù)式3ae/bc,則不正確的C語言表達(dá)式是

A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3

參考答案:C

參考分析:注意表達(dá)式的計算順序

2.21已知各變量的類型說明如下,則不符合C語言語法規(guī)定的表達(dá)式是。intk,a,b;

unsignedlongw=5;

doublex=1.42;

A)x%(-3)B)w+=-2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)

參考答案:A

參考分析:不符合C語法規(guī)定的只有A,因為X為實型數(shù)。

2.22已知各變量說明如下,則符合C語言語法規(guī)定的表達(dá)式是。

inti=8,k,a,b;

unsignedlongw=5;

doublex=1.42,y=5.2;

A)a+=a-=(b=4)*(a=3)B)a=a*3=2C)x%(-3)D)y=float(i)

參考答案:A

參考分析:B)表達(dá)式不能出現(xiàn)在賦值號右側(cè);C)x是實型數(shù),不能進(jìn)行取余運算;D)應(yīng)將

float用括號擴(kuò)起來(強(qiáng)制類型轉(zhuǎn)換)。

*2.23以下不正確的敘述是。

A)在C程序中,逗號運算符的優(yōu)先級最低

B)在C程序中,APH和aph是兩個不同的變量

C)若a和b類型相同,在計算表達(dá)式a=b后,b的值將放入a中,而b中的值不變

D)當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值

參考答案:D

參考分析:整型變量可以輸入實型數(shù)值,實型變量也可以輸入整型數(shù)值

2.24以下正確的敘述是。

A)在C程序中,每行只能寫一條語句

B)若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數(shù)

C)在C程序中,無論是整數(shù)還是實數(shù),都能被準(zhǔn)確無誤地表示

D)在C程序中,%是只能用于整數(shù)運算的運算符

參考答案:D

參考分析:注意它的描述,是只能用于整數(shù)運算,而不是整型數(shù)運算。

*2.25以下符合C語言語法的有賦值能力的表達(dá)式是

A)d=9+e+f=d+9B)d=9+e,f=d+9

C)d=9+e,e++,d+9D)d=9+e++=d+7

參考答案:B

參考分析:C不是賦值表達(dá)式,是逗號表達(dá)式,賦值僅是其中的一部分。嚴(yán)格說來,B也不是

賦值表達(dá)式,它是由兩個賦值表達(dá)式組成的逗號表達(dá)式。

**2.26已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語句c2=K+6-3;

后,c2的值為。

A)DB)68C)不確定的值D)C

參考答案:A參考分析:表達(dá)式中的各字符以各自的ASCH碼參與運算.

*2.27在C語言中,要求運算數(shù)必須是整型(數(shù))的運算符是。

A)/B)++C)!=D)%

參考答案:D

參考分析:理論上++運算都是針對整型(含字符型)的,盡管現(xiàn)在很多系統(tǒng)提供了對實型變量

的增量運算。

*2.28若以下變量均是整型,且num=sum=7;則計算表達(dá)式sUM=num++,sUM++,++num后

sum的值為。

A)7B)8C)0D)10

參考答案:A參考分析:注意sum和sUM不是一個變量(區(qū)分大小寫)。

*2.29在C語言中,int、char和short三種類型數(shù)據(jù)在B)均為兩個字節(jié)

C)是任意的D)由所用機(jī)器的字長決定

參考答案:D

參考分析:參考答案很明確地表明了,C語言中各種類型在B)包含2個字符。

C)包含3個字符。D)說明不合法,c的值不確定。

參考答案:A

參考分析:轉(zhuǎn)義字符'\72,為字符,:,。

2.31若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是

A)2.500000B)2.750000C)3.500000D)0.000000

參考答案:A

參考分析:計算時要注意其結(jié)合性和優(yōu)先級。

*2.32sizeof(float)是。

A)一個雙精度型表達(dá)式B)一個整型表達(dá)式

C)一種函數(shù)調(diào)用D)一個不合法的表達(dá)式

參考答案:B參考分析:算術(shù)表達(dá)式的類型由表達(dá)式計算結(jié)果的類型決定

*2.33設(shè)變量a是整型,f是實型,i是雙精度型,則表達(dá)式10+'a,+i*f值的數(shù)據(jù)類型為

A)intB)floatC)doubleD)不確定

參考答案:C

參考分析:實型只要參與運算就自動轉(zhuǎn)換為double型.

2.34下面四個選項中,均是非法常量的選項是

A)'as'B)'\\'C)-0xl8D)0xabc

-Offf'\01'01177'\0'

''0xa'12,456Oxf"a"

參考答案:A參考分析:A3轉(zhuǎn)義字符以十六進(jìn)制描述時,前面不能加0。非法的還有B3

*2.35若有代數(shù)式心則正確的C語言表達(dá)式是

A)sqrt(fabs(pow(y,x)+loglO(y)))

B)sqrt(abs(pow(y,x)+log10(Y)))

C)sqrt(fabs(pow(x,y)+loglO(y)))

D)sqrt(abs(pow(x,y)+logl0(y)))

參考答案:A

參考分析:c語言中整型和實型的絕對值函數(shù)各自獨立,為abs和fhbs;pow為一系統(tǒng)函數(shù)

pow(y,x)=>yx?

2.36若有代數(shù)式|x3+lgx],則正確的C語言表達(dá)式是。

A)fabs(x*3+logl0(x))

B)abs(pow(x,3)+log10(x))

C)abs(pow(x,30)+log10(x))

D)fabs(pow(x,3.0)+log10(x))

參考答案:D

參考分析:以上兩題均未說明x,y的類型,從表達(dá)式的性質(zhì)可分析隱含為實型,因此應(yīng)使

用fabso

*2.37在C語言中,char型數(shù)據(jù)在B)反碼C)原碼D)ASCII碼參考答案:

D

參考分析:計算機(jī)系統(tǒng)不能存儲字符本身,存儲的是字符的ASCII碼。

*2.38設(shè)變量n為float,m為int類型,則以下能實現(xiàn)將n中的數(shù)值保留小數(shù)點后兩位,第三位

進(jìn)行四舍五入的表達(dá)式是。

A)n=(n*100+0.5)/100.0B)m=n*l00+0.5,n=m/100.0

C)n=n*l00+0.5/100.0D)n=(n/100+0.5)*100.0

參考答案:B

參考分析:m=n*100+0.5賦值過程中有實型轉(zhuǎn)整型的自動轉(zhuǎn)換。

2.39表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為

A)intB)floatC)doubleD)不確定

參考答案:C

參考分析:表達(dá)式的類型由表達(dá)式結(jié)果的類型決定。

2.40設(shè)C語言中,一個int型數(shù)據(jù)在內(nèi)存中占2個字節(jié),則unsignedint型數(shù)據(jù)的取值范圍

為。

A)0-255B)0-32767C)0-65535D)0-2147483647

參考答案:C

參考分析:各種數(shù)據(jù)類型的取值范圍是由其字長決定,字長確定的情況下,有符號數(shù)與無符

號數(shù)的范圍應(yīng)當(dāng)容易計算得知。

2.41設(shè)有說明:charw;intx;floaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為

A)floatB)charC)intD)double

參考答案:D

參考分析:表達(dá)式的類型由表達(dá)式結(jié)果的類型決定。雖然本題各變量沒有具體的變量值,

由于參與運算的變量中z變量為double型,表達(dá)式計算的結(jié)果肯定為double型。

2.42若有以下定義,則能使值為3的表達(dá)式是

intk=7,x=12;

A)x%=k%=5B)x%=k-k%5

C)x%=(k-k%5)D)(x%=k)-(k%=5)

參考答案:D

參考分析:A的值為0,B、C兩個表達(dá)式相同,值為2,只有D的值為3。

2.43設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是。

A)x=y=6,x+y,x+1B)x=y=6,x+y,y+1

C)x=6,x+1,y=6,x+yD)y=6,y+1,x=y,x+1

參考答案:C

參考分析:經(jīng)計算可知,只有C的值為12,不為7。

2.2填空題

2.44在C語言中(以16位PC機(jī)為例),一個char型數(shù)據(jù)在【2】2

2.45在C語言中(以16位PC機(jī)為例),一個float型數(shù)據(jù)在【2】8

2.46若有以下定義,intm=5,y=2;則計算表達(dá)式y(tǒng)+=y-=m*=y后y的值是[參考答案:

-16

2.47設(shè)C語言中,一個int型數(shù)據(jù)在【2】double

*2.49C語言所提供的基本數(shù)據(jù)類型包括:單精度型、雙精度型、【1】、【2】和【3】。參

考答案:字符型整型枚舉

參考分析:基本類型又稱簡單類型,若分為四種則為字符、整型、實型和枚舉,若分為五

種,則將實型分為單精度型和雙精度型兩種。

*2.50若s是int型變量,則表達(dá)式s%2+(s+l)%2的值為【工

參考答案:1

參考分析:無論s是奇數(shù)還是偶數(shù)表達(dá)式的值只能是1。

*2.51若a是int型變量,則表達(dá)式(a=4*5,a*2),a+6的值為【L

參考答案:26

*2.52若x和a均是整型變量,則計算表達(dá)式(1)后的x值為【1],計算表達(dá)式(2)后x的

值為(21

(l)x=(a=4,6*2)

(2)x=a=4,6*2

參考答案:【1】12[2]4

2.53若a、b和c均是int型變量,則計算表達(dá)式a=(b=4)+(c=2)后,a的值為【1],b的值

為【2】,c的值為[31

參考答案:【1】6[214[3]2

2.54若a是int型變量,且a的初值為6,則計算表達(dá)式a+=a-=a*a后a的值為【參

考答案:一60

2.55若a是int型變量,則計算表達(dá)式a=25/3%3后a的值為【

參考答案:2

2.56若x和n均是int型變量,且x和n的初值均為5,則計算表達(dá)式x+=n++后x的值為

[11.n的值為[21

參考答案:【1】10[2]6

2.57若有定義:intb=7;floata=2.5,c=4.7;則表達(dá)式a+(int)(b/3*(int)(a+c)/2)%4的值為[]?參

考答案:5.5

2.58若有定義:inta=2,b=3;floatx=3.5,y=2.5;則表達(dá)式(float)(a+b)/2+(int)x%(int)y的值為

[

參考答案:3.5

2.59若有定義:chare/\01(T;則變量c中包含的字符個數(shù)為【

參考答案:1

2.60若有定義:intx=3,y=2;floata=2.5,b=3.5;則表達(dá)式(x+y)%2+(int)a/(int)b的值為【】。參

考答案:1

2.61若有定義:intx=12,n=5;則計算表達(dá)式x%=(n%=2)后x的值為【

參考答案:0

2.62若有定義:inta,b;表達(dá)式a=2,b=5,a++,b++,a+b的值為【】。

參考答案:9

2.63C語言中的標(biāo)識符只能由三種字符組成,它們是[1】、【2】和【3】。參考答案:【1】

字符【2】數(shù)字[3]下劃線

*2.64已知字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)式ch=3+8-3

的值為11

參考答案:f

參考分析:表達(dá)式計算中取各個字符的ASCH碼值進(jìn)行計算,但ch的值是以計算結(jié)果為

碼值的字符。

2.65把以下多項式寫成只含七次乘法運算,其余皆為加、減運算的表達(dá)式為[)參考

答案:((((((5*x+3)*x-4)*x+2)*x+l)*x-6)*x+l)*x+10

2.66若doublex=3.0,y=2.0;則表達(dá)式pow(y,fabs(x))的值為【

參考答案:8.0

2.67若有定義:inte=l,f=4,g=2;floatm=10.5,n=4.0,k;則計算表達(dá)式k=(e+f)/g+

sqrt((double)n)*1.2/g+m后k的值是[參考答案:13.7

2.68表達(dá)式表4*(int)2.5/(int)(1.25*(3.7+23))值的數(shù)據(jù)類型為()。

參考答案:int型

*2.69表達(dá)式pow(2.8,sqrt(double(x)))值的數(shù)據(jù)類型為【

參考答案:double型

*2.70假設(shè)m是一個三位數(shù),從左到右用a、b、c表示各位的數(shù)字,則從左到右各個數(shù)字

是bac的三位數(shù)表達(dá)式是1]0

參考答案:m/10%10*100+m/100*10+m%10

參考分析:數(shù)字各個位的分離可以先整除再取余,也可以先取余再整除。

第三章最簡單的C程序設(shè)計

3.1選擇題

3.1putchar函數(shù)可以向終端輸出一個

A)整型變量表達(dá)式B)實型變量值

C)字符串D)字符或字符型變量值

參考答案:D參考分析:putchar函數(shù)的作用是輸出一個字符,可以是常量或變量。

*3.2以下程序的輸出結(jié)果是。

printfl(&qiiot;\n*sl=%15s*","chinabeijing");

printf("\n*s2=%-5s*","chi");

A)*sl=chinabeijingnaD*B)*sl=chinabeijingann*

*s2=**chi**s2=chi□口*

C)*sl=DDchinabeijing*D)*s1=□□achinabeijing*

*S2=Dachi**s2=chia□*

參考答案:D

參考分析:?:數(shù)據(jù)左齊,右補(bǔ)空格。

3.3printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5歹限如果字符串長度

大于5,則輸出按方式【1】;如果字符串長度小于5,則輸出按方式[2]o

A)從左起輸出該字符串,右補(bǔ)空格B)按原字符串長從左向右全部輸出

C)右對齊輸出該字符串,左補(bǔ)空格D)輸出錯誤信息參考答案:【1]B[2]C

*3.4己有定義inta=?2;和輸出語句:printf("%81x",a);以下正確的敘述是

A)整型變量的輸出格式符只有%d一種

B)%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)

C)%x是格式符的一種,其變量的值按十六進(jìn)制輸出,但%81x是錯誤的

D)%81x不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度參考答案:D

參考分析:答案B基本上是正確的,但是%x不能正確的輸出長整型數(shù)據(jù)。*3.5以下C程

序正確的運行結(jié)果是

main()

{longy=-43456;

printf("y=%-81d\n",y);

printf("y=%-081d\n",y);

printf("y=%081d\n",y);

printf("y=%+8Id\n",y);

A)y=nn-43456B)y=-43456

¥=-□□43456y=-43456

y=-0043456y=-0043456

y=-43456丫=+口-43456

C)y=-43456D)y=an-43456

y=-43456y=-0043456

y=-0043456y=00043456

¥=□□-43456y=+43456

參考答案:C

參考分析:0:數(shù)據(jù)左側(cè)必須充滿,給定數(shù)據(jù)不足時,前面補(bǔ)0。

+:數(shù)據(jù)前面顯示符號位。

*3.6以下C程序正確運行的結(jié)果是

main()

{inty=2456;

printf("y=%3o\n",y);

printf^"y=%8o\n",y);

printf("y=%#8o\n",y);

A)y=naa2456B)y=DDa4630

¥=□□□□□□□□2456¥=□□□□□□□□4630

y=########2456y=########4630

C)y=2456D)y=4630

¥=□□□□2456¥=□□□□4630

y=aan02456¥=□□□04630

參考答案:D

參考分析:#要求輸出數(shù)據(jù)的類型特征符號。

3.7以下C程序正確的運行結(jié)果是

main()

{longy=23456;

printfi("y=%31x\n",y);

printf("y=%81x\n",y);

printf^"y=%#81x\n",y);

A)y=5ba0B)y=DDa5baO

y=nnDD5baO

y=no0x5ba0y=aaOx5baO

C)y=5ba0D)y=5baO

y=5ba0y=DDDa5baO

y=0x5ba0y=####5baO

參考答案:A

分析:長整型數(shù)據(jù)輸出應(yīng)當(dāng)加修正字符1,如果不加1僅能輸出數(shù)據(jù)的低兩個字節(jié),高字節(jié)

數(shù)據(jù)不能輸出。

*3.8若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語句是。

A)scanf("%d%lx,%le",&x,&y,&z);

B)scanf("%2d*%d%lf",&x,&y,&z);

C)scanf("%x%*d%o",&x,&y);

D)scanf("%x%o%6.2f",&x,&y,&z);

參考答案:D

參考分析:A)首先讀第一個十進(jìn)制數(shù)賦給變量x,讀第二個長十六進(jìn)制數(shù)賦給變量y(此時有

自動賦值轉(zhuǎn)換),再讀入格式規(guī)定的第二和第三個數(shù)據(jù)間的間隔符號逗號,最后讀入第三個

double型數(shù)據(jù)賦給變量zoB)首先讀入2個寬度的十進(jìn)制數(shù)賦給變量x,再讀入格式規(guī)定的第

一和第二數(shù)據(jù)間的間隔符號星號,然后讀入第二個十進(jìn)制整數(shù)賦給變量y,然

后讀入第三個double型數(shù)據(jù)賦給變量zoC)讀入第一個十六進(jìn)制數(shù)賦給變量x,然后虛讀一

個十進(jìn)制數(shù)不賦給任何變量,最后讀入一個八進(jìn)制數(shù)賦給變量y。D)%6.2f不符合格式規(guī)定,

即不能規(guī)定讀入數(shù)據(jù)的小數(shù)點后的數(shù)字位數(shù)。

*3.9已有如下定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20,A和B,當(dāng)從第

一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是。

intal,a2;charcl,c2;

scanfi("%d%c%d%c",&al,&cl,&a2,&c2);

A)10Aa20B<CR>B)10nAn20DB<CR>

C)10aA20B<CR>D)10A20oB<CR>參考答案:A

*3.10已有定義intx;floaty;且執(zhí)行scanf("%3d%f",&x,&y);語句時,從

第一列開始輸入數(shù)據(jù)12345M78<CR>,則x的值為⑴,y的值為⑵。

(1)A)12345B)123C)45D)345

⑵A)無定值B)45.0C)678.0D)123.0

參考答案:BB參考分析:讀取數(shù)據(jù)格式中規(guī)定域?qū)挄r,系統(tǒng)僅讀取指定寬度的數(shù)據(jù)。

**3.11已有如下定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20,A和B,當(dāng)從第

一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是。

intal,a2;charcl,c2;

scanf("%d%d",&a1,&a2);

scanf{"%c%c",&cl,&c2);

A)1020AB<CR>B)10a20<CR>AB<CR>

C)10an20naAB<CR>D)l0o20AB<CR>

參考答案:D

參考分析:A)al為1020,a2為隨機(jī)值,cl為A,c2為B.B)al為10,a2為20,cl為<CR>,c2

為A。C)al為10,a2為20,cl、c2均為口。

3.12已有程序段和輸入數(shù)據(jù)的形式,程序中輸入語句的正確形式應(yīng)當(dāng)為。

main()

{inta;floatf;

printfi("Inputnumber:");

(輸入語句)

printf("\nf=%f,a=%d\n",f,a);

)

Inputnumber:4.5an2<CR>

A)scanfi("%d,%f(",&a,&f);

B)scanf("%f>%d",&f,&a);

C)scnafi("%d%f(",&a,&f);

D)scanf^"%f%d",&f,&a);

參考答案:D

3.13根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為。

已有定義:floatfl,f2;

數(shù)據(jù)的輸入方式:4.52

3.5

A)scanf("%f,%f",&fl,&f2);

B)scanfi("%f%f",&fl,&f2);

C)scanf("%3.2f%2.1f",&f1,&f2);

D)scanf("%3.2f%2.1f",&fl,&f2);參考答案:B

*3.14閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為:25,13,10<CR>,正確的輸出結(jié)果為

main()

{intx,y,z;

scanfi("%d%d%d",&x,&y,&z);

printf("x+y+z=%d\n",x+y+z);

}

A)x+y+z=48B)x+y+z=35C)x+z=35D)不確定的值

參考答案:D

參考分析:由于提供數(shù)據(jù)的格式與規(guī)定格式不一致,變量y,z不能獲取正確的數(shù)據(jù),均為隨

機(jī)值,故三變量之和也是隨機(jī)數(shù)。

3.15根據(jù)題目中已給出的數(shù)據(jù)輸入和輸出形式,程序中輸入輸出語句的正確。

main()

{intx;floaty;

printf("enterx,y:");

輸入語句

輸出語句

}

輸入形式:enterx,y:23.4

輸出形式:x+y=5.40

A)scanf("%d,%f",&x,&y);

B)scanfl("%d%f<",&x,&y);

printf("\nx+y=%4.2f",x+y);printf("\nx+y=%4.2f",x+y);

C)scanfi("%d%f<",&x,&y);

D)scanf("%d%3.1f",&x,&y);

printfif"\nx+y=%6.1f",x-?-y);printf("\nx+y=%4.2f",x+y);

參考答案:B

3.16以下說法正確的是

A)輸入項可以為一個實型常量,如scanf("%f",3.5);

B)只有格式控制,沒有輸入項,也能進(jìn)行正確輸入,如scanf("a=%d,b=%d");

C)當(dāng)輸入一個實型數(shù)據(jù)時,格式控制部分應(yīng)規(guī)定小數(shù)點后的位數(shù),如

scanfi("%4.2f",&f);

D)當(dāng)輸入數(shù)據(jù)時,必須指明變量的地址,scanf("%f",&f);參考答案:D

*3.17根據(jù)下面程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式應(yīng)該為。

main()

{charchl,ch2,ch3;

輸入語句

printf("%c%c%c",chI,ch2,ch3);

}

輸入形式:AOBDC

輸出形式:AnB

A)scanf^"%c%c%c",&ch1,&ch2,&ch3);

B)scanf("%c,%c,%c",&ch1,&ch2,&ch3);

C)scanf^"%c%c%c",&ch1,&ch2,&aiTip;ch3);

D)scanf("%c%c",&ch1,&ch2,&ch3);

參考答案:A

參考分析:字符控制格式中有無空格對數(shù)據(jù)的讀取有影響,B)chl讀取A,ch2和ch3為隨

機(jī)字符。C)三個變量分別為A、B、CoD)ch3為隨機(jī)字符。

3.18有輸入語句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);為使變量

a的值為1,b為3,c為2,從鍵盤輸入數(shù)據(jù)的正確形式應(yīng)當(dāng)是。

A)132<CR>B)l,3,2<CR>

C)a=lob=3oc=2<CR>D)a=l,b=3,c=2<CR>

參考答案:D

3.19以下能正確地定義整型變量a,b和c并為其賦初值5的語句是

A)inta=b=c=5;B)inta,b,c=5;C)inta=5,b=5,c=5;D)a=b=c=5;參考答案:C

*3.20已知ch是字符型變量,下面不正確的賦值語句是

A)ch='a+b';B)ch='\0';C)ch='7'+'9';D)ch=5+9

參考答案:A

參考分析:B)為轉(zhuǎn)義字符。C)為7和9兩個字符ASCII碼值之和的字符。D)為碼值為14

的字符(控制字符)。

3.21已知ch是字符型變量,下面正確的賦值語句是

A)ch='123';B)ch='\xff';C)ch='\08';D)ch="\";

參考答案:B

3.22若有以下定義,則正確的賺值語句是

inta,b;floatx;

A)a=l,b=2,B)b++;C)a=b=5D)b=int(x);

參考答案:B

參考分析:這里強(qiáng)調(diào)的是賦值語句,請注意賦值表達(dá)式與賦值語句的區(qū)別。

3.23設(shè)x、y均為float型變量,則以下不合法的賦值語句為。

A)++x;B)y=(x%2)/10;C)x*=y+8D)x=y=0參考答案:B

*3.24設(shè)x、y和z均為int型變量,則執(zhí)行語句x=(y=(z=10)+5)-5;后,x、y和z的值是。

A)x=10B)x=10C)x=10D)x=10

y=15y=10y=10y=5

z=10z=10z=15z=10參考答案:A

3.25設(shè)有說明:doubley=0.5,z=1.5;intx=10;則能夠正確使用C語言庫函數(shù)的賦值語句

是。

A)z=exp(y)+fabs(x);

B)y=log10(y)+pow(y);

C)z=sqrt(y-z);

D)x=(int)(atan2((double)x,y)+exp(y-0.2));

參考答案:D

參考分析:本題有些偏,其他選項錯誤的原因為A)fhbs(x),x不是double型。B)pow(y)其格

式原型為doublepow(doubley,doublex)。C)y-z為負(fù)數(shù)。

3.2填空題

*3.26以下程序的輸出結(jié)果為()?

main()

{shorti;

i=-4;

printfl("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);

}參考答案:i:dec=?4,oct=177774,hex=fffc,unsigned=65532

*3.27以下程序的輸出結(jié)果為()o

main()

{printf("*%f,%4.3f*\n",3.14,3.1415);

}

參考答案:*3.140000,3.142*

分析:不能輸出的位會向前一位四舍五入輸出。

3.28以下程序的輸出結(jié)果為()。

main()

{charc='x';

printf("c:dec=%d,oct=%o,hex=%x,ASCII=%c\n",c,c,c,c);

}參考答案:c:dec=120,oct=170,hex=78,ASCII=x

*3.29已有定義intd=?2;執(zhí)行以下語句后的輸出結(jié)果是()。

printf("*d(l)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);

printf("*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n",d,d,d);

參考答案:*d(l)=-2*d(2)=n-2*d(3)=-2D*

*d(4)=177776*d(5)=n177776*d(6)=l77776a*

3.30已有定義intd=-2;執(zhí)行以下語句后的輸出結(jié)果是()。

printf("*d(l)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);

printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d);

參考答案:*d(l)=-2*d(2)=o-2*d(3)=?2口**d(4)=fTfe*d(5)=Dafffe*d(6)=ffIeaD*

*3.31已有定義floatdl=3.5,d2=?3.5;執(zhí)行以下語句后的輸出結(jié)果是()。

printfif"*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n",dl,dl,dl);

printfi("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n",d2,d2,d2);

參考答案:*d(l)=3.50000e+00*d(2)=3.500e+00*d(3)=a3.500e+00*

*d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00a*

參考分析:通過本題應(yīng)注意%可口%?在規(guī)定小數(shù)點后位數(shù)的區(qū)別。%e小數(shù)位后面位數(shù)含e

*小志。

3.32以下程序的輸出結(jié)果是()。

main()

{intx=l,y=2;

printfi["x=%dy=%d*sum*=%d\n",x,y,x+y);

printf("10Squaredis:%d\n",10*10);

}

參考答案:x=ly=2*sum*=3

10Squaredis:100

*3.33以下程序的輸出結(jié)果是()o

#include<stdio.h>

main()

{intx=10;floatpi=3.1416;

printf("(1)%d\n",x);

printf("(2)%6d\n",x);

printf("(3)%f\n",56.1);

printf("(4)%14f\n",pi);

printf("(5)%e\n",568.1);

printf("(6)%14e\n",pi);

printf^"(7)%g\n",pi);

printf("(8)%12g\n",pi);

}

參考答案:(1)10

(2)DDDD10

(3)56.100000

(4)□□□□□□3.141600

(5)5.68100e+02

(6)□□□3.14160e+00

(7)3.1416

(8)□□□□□□3.1416

參考分析:采用g格式輸出數(shù)據(jù)時,當(dāng)數(shù)據(jù)<=10?5或>=107時,按指數(shù)方式輸出(缺

省正數(shù)11位,負(fù)數(shù)12位),否則按小數(shù)方式輸出(缺省含小數(shù)點總寬度最多7位)。且不輸

出無意義的0(后面)和小數(shù)點。

3.34以下程序的輸出結(jié)果是()。

#include<stdio.h>

main()

{floata=123.456;doubleb=8765.4567;

printf("(1)%f\ii",a);

printf{"(2)%14.3f\n",a);

printfi("(3)%6.4f\n",a);

printf("(4)%lf\n",b);

printf{"(5)%14.31f\n",b);

printf("(6)%8.41f\n",b);

printfi("(7)%.41f\n",b);

)

參考答案:(1)123.456000

(2)□□□□□□□123.456

(3)123.4560

(4)8765.456700

(5)□□□□□□8765.456

(6)8765.4560(7)8765.4560

*3.35以下printf語句中*的作用是(),輸出結(jié)果是()。

#include<stdio.h>

main()

{inti=l;

printfi("##%*d\n",i,i);

i++;

printf("##%*d\n",i,i);

i";

printf("##%*d\n",i,i);

)

參考答案:

(1)可使同一或相同輸出格式數(shù)據(jù)輸出寬度得以改變(動態(tài)域?qū)捒刂?

(2)##1

##□2

##□口3

3.36以下printf語句中的"-"的作用是(),該程序的輸出結(jié)果是()。

#include&It;stdio.h>

main()

{intx=12;doublea=3.1415926;

printf("%6d##\n",x);

printf("%-6d##\n",x);

printf("%14.101f##\n",a);

printf("%-14.101f##\n",a);

)

參考答案:

(1)輸出數(shù)據(jù)左對齊

(2)口口口口12##

12□□□□##

□□3.1415926000##

3.1415926000DD##

*3.37以下程序的輸出結(jié)果是()o

#include<stdio.h>

main()

{inta=325;doublex=3.1415926;

printf("a=%+06dx=%+e\n",a,x);

}參考答案:a=+00325x=+3.14159e+00

*3.38以下程序的輸出結(jié)果是()。

#include<stdio.h>

main()

{inta=252;

printf("a=%oa=%#o\n",a,a);

printfi("a=%xa=%#x\n",a,a);

)

參考答案:a=374aaa=0374

a=fcaaa=0xfc

3.39以下程序的輸出結(jié)果是()o

intx=7281;

printf("(l)x=%3d,x=%6d,x=%o,x=%6x,x=%6u\n",x,x,x,x,x);

printf("(2)x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n",x,x,x,x,x);

printf("(3)x=%+3d,x=%+6d,x=%+08d\n",x,x,x);

printfl(&qiiot;(4)x=%o,x

溫馨提示

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

評論

0/150

提交評論