C語言練習(xí)題(譚浩強(qiáng)第四版)附有答案_第1頁
C語言練習(xí)題(譚浩強(qiáng)第四版)附有答案_第2頁
C語言練習(xí)題(譚浩強(qiáng)第四版)附有答案_第3頁
C語言練習(xí)題(譚浩強(qiáng)第四版)附有答案_第4頁
C語言練習(xí)題(譚浩強(qiáng)第四版)附有答案_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一、選擇題一個(gè)C程序由假設(shè)干個(gè)C函數(shù)組成,各個(gè)函數(shù)在文件中的位置順序?yàn)椋骸病橙我獾谝粋€(gè)函數(shù)必須是主函數(shù),其他函數(shù)任意必須完全按照?qǐng)?zhí)行的順序排列其他函數(shù)可以任意,主函數(shù)必須在最后以下四個(gè)表達(dá)中,正確的選項(xiàng)是:〔〕C程序中的所有字母都必須小寫C程序中的關(guān)鍵字必須小寫,其他標(biāo)示符不區(qū)分大小寫C程序中的所有字母都不區(qū)分大小寫C語言中的所有關(guān)鍵字必須小寫以下四個(gè)表達(dá)中,錯(cuò)誤的選項(xiàng)是:〔〕一個(gè)C源程序必須有且只能有一個(gè)主函數(shù)一個(gè)C源程序可以有多個(gè)函數(shù)在C源程序中注釋說明必須位于語句之后C源程序的根本結(jié)構(gòu)是函數(shù)下面不是C語言合法標(biāo)識(shí)符的是:〔〕A、abcB、5nC、_4mD、x3以下表達(dá)不正確的選項(xiàng)是:〔〕A.分號(hào)是C語句的必要組成局部B.C程序的注釋可以寫在語句的后面C.函數(shù)是C程序的根本單位D.主函數(shù)的名字不一定非用main來表示C語言中允許的根本數(shù)據(jù)類型包括:〔〕A.整型、實(shí)型、邏輯型B.整型、實(shí)型、字符型C.整型、字符型、邏輯型D.整型、實(shí)型、邏輯型、字符型C語言中能用八進(jìn)制表示的數(shù)據(jù)類型為:〔〕A、字符型、整型B、整形、實(shí)型C、字符型、實(shí)型、雙精度型D、字符型、整型、實(shí)型、雙精度型以下屬于C語言合法的字符常數(shù)是:〔〕A、’\97’B、〞A〞C、’\t’D、〞\在C語言〔VC環(huán)境〕中,5種根本數(shù)據(jù)類型的存儲(chǔ)空間長(zhǎng)度的排列順序?yàn)椋骸病矨、char<int<=longint<=float<doubleB、char=int<longint<=float<doubleC、char<int<longint=float=doubleD、char=int=<longint<=float<double假設(shè)有以下定義語句charc1=’b’,c2=’e’;printf(“%d,%c\n〞,c2-c1,c2-‘a(chǎn)’+’A’);那么輸出結(jié)果是:〔〕A、2,MB、3,EC、2,ED、輸出項(xiàng)與相應(yīng)的格式控制不一致,輸出結(jié)果不確定以下合法的賦值語句是:〔〕A、x=y=100B、d--;C、x+yD、c=int(a+b);在以下一組運(yùn)算符中,優(yōu)先級(jí)最高的是:〔〕A、<=B、==C、%D、&&以下能正確表示a≥10或a≤0的關(guān)系表達(dá)式是:〔〕A、a>=10ora<=0B、a<=10||a>=0C、a>=10||a<=0D、a>=10&&a<=0以下只有當(dāng)整數(shù)x為奇數(shù)時(shí),其值為“真〞的表達(dá)式是:〔〕A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、!(x%2)設(shè)a為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系10<a<15的C語言表達(dá)式是:〔〕A、10<a<15B、!(a<=10||a>=15)C、a>10&&a<15D、!(a<=10)&&!(a>=15)x=43,ch=’A’,y=0;那么表達(dá)式〔x>=y&&ch<’B’&&!y〕的值是:〔〕A、0B、語法錯(cuò)C、1D、“假〞表達(dá)式17%4/8的值為:〔〕A、0B、1C、2D一個(gè)可執(zhí)行的C程序的開始執(zhí)行點(diǎn)是:〔〕A.程序中的第一個(gè)語句B.包含文件中的第一個(gè)函數(shù)C.名為main的函數(shù)D.程序中的第一個(gè)函數(shù)組成C語句的一個(gè)必不可少的符號(hào)是:〔〕A.逗號(hào)B.引號(hào)C.冒號(hào)D.分號(hào)假設(shè)將int、long、float等類型的數(shù)據(jù)進(jìn)行混合運(yùn)算,其結(jié)果的數(shù)據(jù)類型是:〔〕A.intB.longC.floatD.double下述是C語言中有關(guān)變量定義的幾個(gè)說法,正確的選項(xiàng)是:〔〕A.變量可以不定義直接使用B.一個(gè)說明語句只能定義一個(gè)變量C. 幾個(gè)不同類型的變量可在同一語句中定義D. 變量可以在定義時(shí)進(jìn)行初紿化與x*=y+z等價(jià)的賦值表達(dá)式是:〔〕A.x=y+zB.x=x*y+zC.x=x*(y+z)D.x=x+y*z當(dāng)代電子計(jì)算機(jī)能夠自動(dòng)地處理指定的問題是因?yàn)椋骸病矨.計(jì)算機(jī)是電動(dòng)的B.有解決該問題的計(jì)算機(jī)程序C.事先存儲(chǔ)了解決該問題的程序D.以上都不是以下表達(dá)中最準(zhǔn)確的是:〔〕A.計(jì)算機(jī)程序是處理某一問題所有指令的集合B.計(jì)算機(jī)程序是處理某一問題所用到的所有數(shù)據(jù)的集合C.計(jì)算機(jī)程序是處理某一問題的所有指令及其數(shù)據(jù)的集合D.計(jì)算機(jī)程序是處理某一問題的所有指令及其數(shù)據(jù)的有序集合目前編寫計(jì)算機(jī)程序一般采用的是:〔〕A.機(jī)器語言B.匯編語言C.高級(jí)語言D.英語設(shè)計(jì)一個(gè)計(jì)算機(jī)程序最根本的工作是:〔〕A.制定正確的算法B.選擇合理的數(shù)據(jù)結(jié)構(gòu)C.制定正確的算法和選擇合理的數(shù)據(jù)結(jié)構(gòu)D.以上都不是算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是:〔〕A.有窮性B.簡(jiǎn)潔性C.可行性D.確定性下述哪一個(gè)不是結(jié)構(gòu)化程序根本結(jié)構(gòu):〔〕A.順序B.選擇C.循環(huán)D.嵌套C語言是一種:〔〕A.機(jī)器語言B.匯編語言C.高級(jí)語言D.以上都不是C語言源程序的擴(kuò)展名為:〔〕A..exeB..cC..objD..cppC程序編譯、連接后最終產(chǎn)生(即計(jì)算機(jī)執(zhí)行)的文件的擴(kuò)展名為()A..exeB..cC..objD..cpp構(gòu)成C語言源程序的根本單位是:〔〕A.子程序B.過程C.文本D.函數(shù)以下表達(dá)正確的選項(xiàng)是:〔〕A.C語言源程序可以直接在DOS環(huán)境中運(yùn)行B.編譯C語言源程序得到的目標(biāo)文件可以直接在DOS環(huán)境中運(yùn)行C.C語言源程序經(jīng)過編譯、連接得到的可執(zhí)行程序可以直接在DOS環(huán)境中運(yùn)行D.C語言源程序可以直接在VC++環(huán)境中運(yùn)行某C程序由一個(gè)主函數(shù)main()和一個(gè)自定義函數(shù)max()組成,那么該程序:〔〕A.寫在前面的函數(shù)先開始執(zhí)行B.總是從main()函數(shù)開始執(zhí)行C.總是從max()函數(shù)開始執(zhí)行D.寫在后面的函數(shù)先開始執(zhí)行以下表達(dá)不正確的選項(xiàng)是:〔〕A.分號(hào)是C語句的必要組成局部B.C程序的注釋可以寫在語句的后面C.函數(shù)是C程序的根本單位D.主函數(shù)的名字不一定用mian表示以下為C語句的是:〔〕A.a(chǎn)=8B.a(chǎn)++;C.if(a>8)D.#include<stdio.h>以下所列語句中,合法的語句是:()A.a(chǎn)=1,b=2B.++a;C.a(chǎn)=a+1=5D.y=int(a);二、判斷題(T)C語言是嚴(yán)格區(qū)分大寫和小寫的,因此主函數(shù)不能寫成main()以外的其他形式。(F)C語言程序是從源文件的第一條語句開始執(zhí)行的。(F)C語言對(duì)其數(shù)據(jù)在內(nèi)存中所占用的實(shí)際字節(jié)數(shù)是有明確規(guī)定的。(F)C語言中/*..*/之間的注釋內(nèi)容是不能跨行的。(F)C語言中多個(gè)以“;〞結(jié)束的語句不能放在同一行。(F)變量說明語句inta=b=c=23;是正確的。(F)字符型數(shù)據(jù)不可以和整數(shù)數(shù)據(jù)一起進(jìn)行算術(shù)運(yùn)算。(T)C語言中強(qiáng)制類型轉(zhuǎn)換不會(huì)改變?cè)兞康脑袛?shù)據(jù)類型。(F)表達(dá)式j(luò)=-i++和j=-(i++)不相等(T)程序段:i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);其結(jié)果9,10,9,10.(F)C語言中放在“〞之間的內(nèi)容都被視為字符串的一個(gè)構(gòu)成局部,都可以在屏幕上原樣顯示。(T)計(jì)算機(jī)程序的執(zhí)行過程實(shí)際上是對(duì)程序所表達(dá)的數(shù)據(jù)進(jìn)行處理的過程。(T)目前程序設(shè)計(jì)的理念已經(jīng)從“面向過程的程序設(shè)計(jì)〞向“面向?qū)ο蟮某绦蛟O(shè)計(jì)〞方面轉(zhuǎn)變。(T)有人曾提出:計(jì)算機(jī)程序=算法+數(shù)據(jù)結(jié)構(gòu)。(T)在程序設(shè)計(jì)中提到的算法就是“解決問題的方法和步驟〞(T)在程序設(shè)計(jì)中提到的數(shù)據(jù)結(jié)構(gòu)就是“程序處理的對(duì)象的表示方法〞(T)計(jì)算機(jī)程序的算法就是解決“做什么〞和“怎么做〞的問題。(T)結(jié)構(gòu)化程序設(shè)計(jì)的根本理念是:將一個(gè)較大的問題細(xì)分成假設(shè)干個(gè)較小問題的組合。(F)C程序的執(zhí)行是從程序的第一行開始,一直到程序的最后一行結(jié)束。(T)C程序的執(zhí)行是從主函數(shù)的第一行開始,一直到主函數(shù)的最后一行結(jié)束。(T)設(shè)x、t均為int型變量,那么執(zhí)行語句"x=10;t=x&&x>10;"后,t的值為0(T)假設(shè)a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變(T)在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符(T)在C語言中,邏輯“真〞等價(jià)于不等于0的數(shù)(F)C語言中字符型、整型、實(shí)型都能用八進(jìn)制表示(T)變量的三要素是:變量名、變量類型、變量的值。書上必會(huì)的題:課后題:第三章P83-4,6,7選擇題以下說法正確的選項(xiàng)是〔〕。

A〕C語言程序總是從第一個(gè)的函數(shù)開始執(zhí)行

B〕在C語言程序中,要調(diào)用函數(shù)必須在main〔〕函數(shù)中定義

C〕C語言程序總是從main〔〕函數(shù)開始執(zhí)行

D〕C語言程序中的main〔〕函數(shù)必須放在程序的開始局部算法是指為解決某個(gè)特定問題而采取確實(shí)定且有限的步驟,下面不屬于算法的五個(gè)特性的是〔〕。

A〕有零個(gè)輸入或多個(gè)輸入B〕高效性

C〕有窮性D〕確定性C語言中用于結(jié)構(gòu)化程序設(shè)計(jì)的3種根本結(jié)構(gòu)是

A〕順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)B〕if,switch,break

C〕for,while,do-whileD〕if,for,continue一個(gè)C程序的執(zhí)行是從〔〕。A〕main()函數(shù)開始,直到main()函數(shù)結(jié)束B〕第一個(gè)函數(shù)開始,直到最后一個(gè)函數(shù)結(jié)束

C〕第一個(gè)語句開始,直到最后一個(gè)語句結(jié)束D〕main()函數(shù)開始,直到最后一個(gè)函數(shù)結(jié)束組成C程序的根本單位是〔〕。

A〕函數(shù)B〕標(biāo)識(shí)符C〕表達(dá)式D〕語句假設(shè)有語句scanf〔“%d%d〞,&a,&b〕;要使變量a,b分別得到12和34;正確的輸入形式為〔〕。

A〕12<空格>34<回車>B〕12,34<回車> C〕1234<回車> D〕12:34<回車>C語言中最簡(jiǎn)單的數(shù)據(jù)類型包括〔〕。

A〕整型、實(shí)型、邏輯型

B〕整型、實(shí)型、字符型

C〕整型、字符型、邏輯型

D〕字符型、實(shí)型、邏輯型C語言中的標(biāo)識(shí)符只能由字母,數(shù)字和下劃線三種字符組成,且第一個(gè)字符〔〕。

A〕必須為字母B〕必須為下劃線

C〕必須為字母或下劃線D〕可以是字母,數(shù)字和下劃線中任一字符以下可用于C語言用戶標(biāo)識(shí)符的一組是〔〕。

A〕void,define,WORDB〕a3_b3,_123,Car

C〕For,-abc,IFCaseD〕2a,DO,sizeofC語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是〔〕。A〕%=B〕/C〕=D〕<=設(shè)變量a是int型,f是float型,i是double型,那么表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為〔〕。

A〕intB〕floatC〕doubleD〕不確定在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是〔〕。

A〕補(bǔ)碼B〕反碼C〕原碼D〕ASCII碼設(shè)int類型的數(shù)據(jù)長(zhǎng)度為2字節(jié),那么該類型數(shù)據(jù)的取值范圍是()。

A)0至65536B)0至65535

C)-32767至32768D)-32768至32767

x,y,z被定義為int型變量,假設(shè)從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是

A〕INPUT

x、y、z;

B〕scanf〔"%d%d%d",&x,&y,&z〕;

C〕scanf〔"%d%d%d",x,y,z〕;

D〕read〔"%d%d%d",&x,&y,&z〕;調(diào)用getchar和putchar函數(shù)時(shí),必須包含的頭文件是

A〕stdio.h

B〕stdlib.h

C〕define

D〕以上都不對(duì)能正確表示邏輯關(guān)系:“a≥10或a≤0”的C語言表達(dá)式是

A〕a>=10ora<=0B〕a>=0|a<=10

C〕a>=10&&a<=0D〕a>=10‖假設(shè)變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是

A〕′a′<=c<=′z′B〕〔c>=′a′〕||〔c<=′z′〕

C〕〔′a′<=c〕and〔′z′>=c〕D〕〔c>=′a′〕&&〔c<=′z′〕假設(shè)運(yùn)行時(shí)給變量x輸入12,那么以下程序的運(yùn)行結(jié)果是

main〔〕

{intx,y;

scanf〔"%d",&x〕;

y=x>12?x+10:x-12;

printf〔"%d\n",y〕;

}

A〕0B〕22C〕12D〕10charch=′C′;那么以下表達(dá)式的值是ch=〔ch>=′A′&&ch<=′Z′〕?〔ch+32〕:ch;

A〕AB〕aC〕ZD〕c請(qǐng)閱讀以下程序:

main〔〕

{inta=5,b=0,c=0;

if〔a=b+c〕printf〔"***\n"〕;elseprintf〔"$$$\n"〕;}以上程序A〕有語法錯(cuò)不能通過編譯B〕可以通過編譯但不能通過連接C〕輸出***D〕輸出$$$假設(shè)intk=8;那么執(zhí)行以下程序后,變量k的正確結(jié)果是

main〔〕

{intk=8;

switch〔k〕

{case9:k+=1;

case10:k+=1;

case11:k+=1;break;

default:k+=1;}

printf〔"%d\n",k〕;}

A〕12B〕11C〕10D〕9閱讀如下程序段

#include"stdio.h"

main〔〕

{inta=45,b=40,c=50,d;

d=a>30?b:c;switch〔d〕

{case30:printf〔"%d,",a〕;

case40:printf〔"%d,",b〕;

case50:printf〔"%d,",c〕;

default:printf〔"#"〕;}}

那么輸出的結(jié)果是

A〕40,50,B〕50,#C〕40,#D〕40,50,#填空題用高級(jí)語言編寫的程序稱為〔源〕程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過編譯程序一次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。C語言中的標(biāo)識(shí)符只能由字母、下劃線和〔數(shù)字〕組成。C語言源程序注釋符號(hào)有兩種,〔/*……*/〕用于塊注釋,〔//〕用于行注釋。源程序test.c經(jīng)編譯產(chǎn)生的目標(biāo)文件是:〔test.obj〕;經(jīng)連接處理后,產(chǎn)生的可執(zhí)行文件是:〔test.exe〕。C標(biāo)準(zhǔn)庫函數(shù)中,數(shù)學(xué)函數(shù)的原型在〔math.h〕頭文件中。如下語句printf〔"%c\n",′B′+35〕;在執(zhí)行后的輸出結(jié)果是〔e〕。以下程序的輸出結(jié)果是

(1.300000,1.300000)

。

#include

<stdio.h>#include<math.h> intmain〔〕{float

a=-1.3;b=1.3;

printf〔"%f,%f",fabs〔a〕,fabs〔b〕〕;return0;}將以下程序?qū)懗扇窟\(yùn)算表達(dá)式是〔max=a>b?a:b〕。

if〔a>b〕max=a;

elsemax=b;假設(shè)從鍵盤輸入58,那么以下程序輸出的結(jié)果是(585858)。

main〔〕

{inta;

scanf〔"%d",&a〕;

if〔a>50〕printf〔"%d",a〕;

if〔a>40〕printf〔"%d",a〕;

if〔a>30〕printf〔"%d",a〕;}閱讀下面的程序,當(dāng)程序在執(zhí)行時(shí),如果輸入的是′A′,那么輸出結(jié)果為(ABother)。#include"stdio.h"

main〔〕

{chara;

a=getchar〔〕;

switch〔a〕

{case65:printf〔"%c",′A′〕;

case66:printf〔"%c",′B′〕;default:printf〔"%s\n","other"〕;}}判斷題(F)一個(gè)程序只能由一個(gè)C程序文件組成。(T)一個(gè)C程序文件是由一個(gè)或多個(gè)函數(shù)組成的。(T)一個(gè)程序必須包含一個(gè)main函數(shù)。(F)main函數(shù)必須寫在一個(gè)C程序文件的最前面。(F)C程序的執(zhí)行從程序頭開始。(F)函數(shù)體不可以為空。(F)C程序的注釋只能是一行。(F)C程序中的數(shù)據(jù)聲明和語句必須用“。〞結(jié)束。(F)C程序一行只能寫一條語句。(F)在C程序中,符號(hào)“Sum〞和“sum〞相同。第三章順序結(jié)構(gòu)一、選擇題下面程序的輸出是:〔〕main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=11,k=12,k=13B)k=11,k=13,k=13C)k=11,k=013,k=oXbD)k=11,k=13,k=b以下合法的C語言賦值語句是:〔〕A〕a=b=58B〕k=int(a+b);C〕a=58,b=58D〕--i;以下程序的輸出結(jié)果是:〔〕main(){intx=10,y=3;printf(“%d\n〞,y=x/y);}A〕0B〕1C〕3D〕不確定假設(shè)變量已正確說明為int類型,要給a,b,c輸入數(shù)據(jù),以下正確的輸入語句是:〔〕A〕read(a,b,c);B〕scanf(“%d%d%d〞,a,b,c);C〕scanf(“%D%D%D〞,%a,%b,%c);D〕scanf(“%d%d%d〞,&a,&b,&b);執(zhí)行下面程序段后,c3中的值是:〔〕intc1=1,c2=2,c3;c3=c1/c2;A〕0B〕1/2 以下程序段的輸出是:〔〕floata=57.666;printf(“*%4.2fA〕*57*B〕*58*C〕*57.66*D〕*57.67*假設(shè)有以下定義和語句:〔〕inta=5,bb=a++;此處b的值是:〔〕A)7B)6以下程序的輸出結(jié)果是:〔〕main(){intx=10,y=10;printf("%d%d\n",x--,--y);}A)1010B)99字符A的ASCII碼為十進(jìn)制的65,下面程序的輸出是:〔〕main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A)67,DB)B,CC)C,DD)不確定的值兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入6和4,那么輸出結(jié)果是:〔〕main(){intx;scanf("%d",&x);if(x++>5)printf("%d",x)elseprintf("%d\n",x--);}A)7和5B)6和3C)7和4D)6和假設(shè)執(zhí)行下面的程序從鍵盤輸入3和4,那么輸出是:〔〕main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);}A)14B)16設(shè)i是int型變量,f是float型變量,用下面的語句給這兩個(gè)變量輸入值scanf("i=%d,f=%f",&i,&f);為了把100和765.12分別賦給i和f,那么正確的輸入為:〔〕A)100<空格>765.12<回車>B)i=100,f=765.12<回車>C)100<回車>765.12<回車>D)x=100<回車>,y=765.12<回車>二、判斷題1.(F)在C語言中,實(shí)型數(shù)據(jù)在內(nèi)存都中占4個(gè)字節(jié)。2.(F)在C語言中,參加算術(shù)〔+,-,*,/,%〕運(yùn)算的數(shù)據(jù)可以是任何類型的數(shù)據(jù)。3.(F)假設(shè)有定義和語句:inta;charc;scanf("%d,%c",&a,&c);當(dāng)通過鍵盤輸入:10,‘A’之后,那么變量a中存放的是10,變量c中存放的是‘A’。4.(F)C語言中,變量名只能是小寫字母表示,符號(hào)常量名可用大寫表示5.(F)在C語言中,變量可以不要定義,直接使用 6.(T)一個(gè)C語言程序總是從主函數(shù)開始執(zhí)行的7.(F)注釋語句必須用/*和*/括起來,且只能位于某一語句的后面第四/五章選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)一、選擇題有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}執(zhí)行后輸出結(jié)果是:〔〕A〕011122B〕012C〕012023D〕120以下程序的輸出結(jié)果是:〔〕main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}A)5B)4C)6D)以下程序中,while循環(huán)的循環(huán)次數(shù)是:〔〕main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}A)1B)10C)6D)死循環(huán),以下程序的輸出結(jié)果是:〔〕main(){inta=0,i;for(i=1;i<5;i++)switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}printf("%d\n",a);}A)31B)13假設(shè)執(zhí)行以下程序時(shí)從鍵盤上輸入9,那么輸出結(jié)果是:〔〕main〔〕{intn;scanf("%d",&n);if(n++<10)printf("%d\n",n);elseprintf("%d\n",n--);}A)11B)10有以下程序段intk=0;while(k=1)k++;那么while循環(huán)執(zhí)行的次數(shù)是:〔〕A)無限次B)有語法錯(cuò),不能執(zhí)行C)一次也不執(zhí)行D)執(zhí)行1次以下程序執(zhí)行后sum的值是:〔〕main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}A)15B)14C)不確定D)0以下程序輸出結(jié)果是:〔〕main(){intm=5;if(m>5)printf(“%d\n〞,m);elseprintf(“%d\n〞,m--);}A〕7B〕6C〕5設(shè)有如下定義:inta=1,b=2,c=3,d=4,m=2,n=2;那么執(zhí)行表達(dá)式:(m=a>b)&&(n=c>d)后,n的值為:〔〕A)1B)2C以下程序運(yùn)行后,如果從鍵盤上輸人5,那么輸出結(jié)果是:〔〕main(){intx;scanf("%d",&x);if(x--<5)printf("%d",x);elseprintf("%d",x++);}A、3B、4 C、5D、以下程序段的輸出是:〔〕inti,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf(“%d\n〞,m);A〕12B〕15C〕20D〕25定義如下變量:intn=10;那么以下循環(huán)的輸出結(jié)果是:〔〕while(n>7){n--;printf("%3d",n);}A)1098B)987C)10987D)9876以下循環(huán)體的執(zhí)行次數(shù)是:〔〕main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);}A)3B)2C)1在C語言的循環(huán)語句for,while,do-while語句中,用于直接中斷最內(nèi)層循環(huán)的語句是:〔〕A)switchB)continueC)breakD)if二、判斷題:(F)用1作while循環(huán)的判斷條件,那么循環(huán)一次也不執(zhí)行。(F)for循環(huán)表達(dá)式的括號(hào)內(nèi)的3個(gè)表達(dá)式均不可以省略。(F)假設(shè)有for(;;){……},是指循環(huán)體執(zhí)行0次。(F)程序有死循環(huán)的時(shí)候,上機(jī)編譯不能通過。(F)執(zhí)行for(I=0;I<3;I++);后I的值為2。(T)所有類型的循環(huán)都可以進(jìn)行嵌套使用。(T)利用break語句可以提前終止循環(huán)的執(zhí)行。(F)利用continue語句可以提前終止循環(huán)的執(zhí)行。(F)break語句和continue語句不可以同時(shí)出現(xiàn)在同一個(gè)循環(huán)體內(nèi)。(F)switch語句中,每一個(gè)case的冒號(hào)后面都必須至少跟有一條語句第6章數(shù)組一、選擇題1、假設(shè)int型變量占兩個(gè)字節(jié)的存儲(chǔ)單元,假設(shè)有定義:intx[10]={0,2,4};那么數(shù)組x在內(nèi)存中所占字節(jié)數(shù)為:〔〕A、3B、6C、10D、202、下面程序段的輸出結(jié)果是:〔〕intj;intx[3][3]={1,2,3,4,5,6,7,8,9};for(j=0;j<3;j++)printf(“%d〞,x[j][2-j]);A、159B、147C、3573、以下能正確定義數(shù)組并正確賦初值的語句是:〔〕A、intN=5,b[N][N];B、inta[1][2]={{1},{3}};C、intc[2][]={{1,2},{3,4}};D、intd[3][2]={{1,2},{3,4}};4、有以下程序main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}執(zhí)行后輸出結(jié)果是:〔〕A、456B、258C、3695、以下能正確定義一維數(shù)組的選項(xiàng)是:〔〕A、intnum[];B、intnum[0..100];C〕#defineN100D〕intN=100;intnum[N];intnum[N];6、有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是:〔〕A、11B、19C、13D、、7、不能把字符串“Hello!〞賦給數(shù)組b的語句是:〔〕A、charb[10]={‘H’,’e’,’l’,’l’,’o’,’!’};B、charb[10];b=〞Hello!〞;C、charb[10];strcpy(b,〞Hello!〞);D、charb[10]=〞Hello!〞;8、函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是_:〔〕A、將串str1復(fù)制到串str2中后在連接到串str3之后B、將串str1連接到串str2之后再?gòu)?fù)制到串str3之后C、將串str2復(fù)制到串str1中后再將串str3連接到串str1之后D、將串str2連接到串str1中后再將串str1復(fù)制到串str3中9、在C語言中,一維數(shù)組的定義方式為:類型說明符數(shù)組名〔〕。A.[常量表達(dá)式] B.[整型表達(dá)式]C.[整型常量]或[整型表達(dá)式] D.[整型常量]10、假設(shè)有說明:inta[10];,那么對(duì)a數(shù)組元素的正確引用是:〔〕。A.a(chǎn)[10] B.a(chǎn)[3.5] C.a(chǎn)(5) D.a(chǎn)[10-10]11、在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是:〔〕。A.字符常量 B.浮點(diǎn)型常量C.整型常量或整型表達(dá)式 D.任何類型的表達(dá)式12、以下數(shù)組定義、初始化或賦值語句中,正確的選項(xiàng)是:〔〕。A.intx[5]={1,2,3,4,5,6}; B.intn=8;intscore[n];C.inta[8];a[8]=100;D.intx[]={1,2,3,4,5,6};13、inta[][3]={1,2,3,4,5,6,7};,那么數(shù)組a的第一維的大小是:〔〕。A.2 B.3 C.4 D.14、假設(shè)有說明:inta[3][4];,那么對(duì)a數(shù)組元素的非法引用是:〔〕。A.a(chǎn)[0][2*1] B.a(chǎn)[1][3] C.a(chǎn)[4-2][0] D.a(chǎn)[0][4]15、已有定義:chara[]="xyz",b[]={'x','y','z'};,以下表達(dá)中正確的選項(xiàng)是:〔〕。A.?dāng)?shù)組a和數(shù)組b的長(zhǎng)度相同 B.a(chǎn)數(shù)組長(zhǎng)度小于b數(shù)組長(zhǎng)度C.a(chǎn)數(shù)組長(zhǎng)度大于b數(shù)組長(zhǎng)度 D.?dāng)?shù)組a和數(shù)組b等價(jià)16、對(duì)兩個(gè)數(shù)組a和b進(jìn)行如下初始化:chara[]=“ABCDEF〞;charb[]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};那么以下表達(dá)正確的選項(xiàng)是:〔〕。A.?dāng)?shù)組a與數(shù)組b完全相同 B.?dāng)?shù)組a與數(shù)組b長(zhǎng)度相同C.?dāng)?shù)組a與數(shù)組b中都存放字符串 D.?dāng)?shù)組a比數(shù)組b長(zhǎng)度長(zhǎng)17、有下面的程序段:chara[3],b[]=“China〞;a=b;printf(“%s〞,a);A.運(yùn)行后將輸出China B.運(yùn)行后將輸出ChC.運(yùn)行后將輸出Chi D.編譯出錯(cuò)18、下面程序的運(yùn)行結(jié)果是:〔〕。charc[5]={‘a(chǎn)’,‘b’,‘\0’,‘c’,‘\0printf(“%s〞,c);A.a(chǎn)b B.a(chǎn)bc C.a(chǎn)b\0 D.a(chǎn)b\0c\019、設(shè)有數(shù)組定義:chararray[]=“china〞;,那么數(shù)組array所占的空間為:〔〕。A.4個(gè)字節(jié) B.5個(gè)字節(jié) C.6個(gè)字節(jié) D.7個(gè)字節(jié)20、判斷字符串s1是否大于字符串s2,應(yīng)當(dāng)使用:〔〕。A.if(s1>s2) B.if(strcmp(s1,s2))C.if(strcmp(s2,s1)>0) D.if(strcmp(s1,s2)>0)21、以下語句中,不正確的選項(xiàng)是:〔〕。A.charstr[5]="hello";B.charstr[]={'h','e','l','l','o','\0'};C.charstr[5]={"hi"};D.charstr[100]="";22、下面錯(cuò)誤的初始化語句是:〔〕。A.charstr[]="hello";B.charstr[100]="hello";C.charstr[]={'h','e','l','l','o'};D.charstr[]={'hello'};23、定義了一維int型數(shù)組a[10]后,下面錯(cuò)誤的引用是:〔〕。A.a(chǎn)[0]=1;B.a(chǎn)[10]=2;C.a(chǎn)[0]=5*2;D.a(chǎn)[1]=a[2]*a[0];24、下面的二維數(shù)組初始化語句中,錯(cuò)誤的選項(xiàng)是:〔〕。A.floatb[2][2]={0.1,0.2,0.3,0.4};B.inta[][2]={{1,2},{3,4}};C.inta[2][]={{1,2},{3,4}};D.floata[2][2]={0};25、定義了int型二維數(shù)組a[6][7]后,數(shù)組元素a[3][4]前的數(shù)組元素個(gè)數(shù)為:〔〕。A.24B.25 C.18D26、下面程序的運(yùn)行結(jié)果是:〔〕。main(){ inta[][3]={1,2,3,4,5,6}; printf("%d",a[1][1]);}A.3B.4 C.5D.27、下面程序的運(yùn)行結(jié)果是:〔〕。main(){ chars1[20]="Good!"; chars2[15]="AB"; printf("%d",strlen(strcpy(s1,s2)));}A.20B.15 C.5D.28、下面程序的運(yùn)行結(jié)果是:〔〕。main(){ intx[]={22,33,44,55,66,77,88}; intk,y=0; for(k=1;k<=4;k++) if(x[k]%2==1) y++; printf("%d",y);}A.0 B.1 C.2 D.329、下面程序的運(yùn)行結(jié)果是:〔〕。main(){ inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<i;j++)s+=a[i][j]; printf("%d",s);}A.14 B.19 C.20 D.2130、下面程序的運(yùn)行結(jié)果是:〔〕。main(){ chars[]="ab1c2d4e"; inti; i=0; while(s[i]!='\0') { if(s[i]>='a'&&s[i]<='z')printf("%c",s[i]); i++; }}A.a(chǎn)b B.a(chǎn)b1c2d4e C.a(chǎn)bcde D.a(chǎn)二、判斷題:(F)在程序中可以對(duì)數(shù)值數(shù)組中的數(shù)據(jù)進(jìn)行整體使用。(T)如果strcmp(s1,s2)的返回值為一個(gè)負(fù)數(shù),那么說明字符串s1一定小于字符串s2。(T)用scanf函數(shù)輸入的字符串不可以帶空格。(T)用gets函數(shù)輸入的字符串可以帶空格。(F)實(shí)現(xiàn)兩個(gè)字符串的復(fù)制可以使用str1=str2;語句。(T)使用strcpy函數(shù)可以實(shí)現(xiàn)兩個(gè)字符串的復(fù)制。(T)使用strcat函數(shù)可以實(shí)現(xiàn)兩個(gè)字符串的連接。(F)使用strlen函數(shù)可以求出一個(gè)字符串的實(shí)際長(zhǎng)度〔包含‘\0’(F)如有定義chara[20];那么可以通過a=“Iamaboy〞;給a賦值。(T)如有定義inta[3][4]={0};那么數(shù)組a的所有元素初值均為0。(F)構(gòu)成數(shù)組的各個(gè)元素可以有不同的數(shù)據(jù)類型。(F)假設(shè)有說明:inta[10];,那么可以a[10]引用數(shù)組a的第10個(gè)元素。(T)引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許的是:整型常量或整型表達(dá)式。(T)假設(shè)有inta[10]={6,7,8,9,10};,那么是將5個(gè)初值依次賦給a[0]至a[4]。(F)使用strcat函數(shù)可以實(shí)現(xiàn)兩個(gè)字符串的復(fù)制。第7章函數(shù)一、選擇題在c語言中以下不正確的說法是:〔〕實(shí)參可以是常量、變量、或表達(dá)式形參可以是常量、變量或表達(dá)式實(shí)參可以為任意類型形參應(yīng)與其對(duì)應(yīng)的實(shí)參類型一致以下程序有語法性錯(cuò)誤,有關(guān)錯(cuò)誤原因的正確說法是:〔〕intmain(){intG=5,k;voidprt_char();……k=prt_char(G);……}語句voidprt_char();有錯(cuò),它是函數(shù)調(diào)用語句,不能用void說明變量名不能使用大寫字母函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾函數(shù)名不能使用下劃線以下正確的說法是:〔〕函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可嵌套函數(shù)的定義和調(diào)用均不可以嵌套函數(shù)的定義和調(diào)用均可以嵌套在一個(gè)函數(shù)內(nèi)部定義的變量是:〔〕A、簡(jiǎn)單變量B、局部變量C、全局變量D、標(biāo)準(zhǔn)變量假設(shè)已定義的函數(shù)有返回值,那么以下關(guān)于該函數(shù)調(diào)用的表達(dá)中錯(cuò)誤的選項(xiàng)是:〔〕A〕函數(shù)調(diào)用可以作為獨(dú)立的語句存在B〕函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參C〕函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中D〕函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參以下所列的各函數(shù)首部中,正確的選項(xiàng)是:〔〕A、voidplay(var:Integer,varb:Integer)B、voidplay(inta,b)C、voidplay(inta,intb)D、Subplay(aasinteger,basinteger)當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,那么向函數(shù)傳送的是:〔〕A、數(shù)組的長(zhǎng)度B、數(shù)組的首地址C、數(shù)組每一個(gè)元素的地址D、數(shù)組每個(gè)元素中的值在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是:〔〕A、地址傳遞B、單向值傳遞C、由實(shí)參傳給形參,再由形參傳回實(shí)參D、傳遞方式由用戶指定以下表達(dá)中不正確的選項(xiàng)是:〔〕在不同的函數(shù)中可以使用相同名字的變量函數(shù)中的形式參數(shù)是局部變量在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D〕在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效有以下程序voidfun(inta,intb,intc){a=456;b=567;c=678;}intmain(){intx=10,y=20,z=30;fun(x,y,z);printf("%d,/%d,%d\n",x,y,z);return0;}輸出結(jié)果是:〔〕A、30,20,10B、10,20,30下述函數(shù)定義形式正確的選項(xiàng)是〔〕。A、intf(intx;inty) B、intf(intx,y) C、intf(intx,inty) D、intf(x,y:int)關(guān)于函數(shù)參數(shù),說法正確的選項(xiàng)是〔〕。A、實(shí)參與其對(duì)應(yīng)的形參各自占用獨(dú)立的內(nèi)存單元B、實(shí)參與其對(duì)應(yīng)的形參共同占用一個(gè)內(nèi)存單元C、只有當(dāng)實(shí)參和形參同名時(shí)才占用同一個(gè)內(nèi)存單元D、形參是虛擬的,不占用內(nèi)存單元一個(gè)函數(shù)的返回值由〔〕確定。A、return語句中的表達(dá)式 B、調(diào)用函數(shù)的類型C、系統(tǒng)默認(rèn)的類型 D、被調(diào)用函數(shù)的類型C語言中形參的默認(rèn)存儲(chǔ)類別是〔〕。A、自動(dòng)(auto) B、靜態(tài)(static)C、存放器(register) D、外部(extern)以下正確的函數(shù)形式是〔〕。A、doublefun(intx,inty){z=x+y;returnz;}B、fun(intx,y){intz;returnz;}C、fun(x,y){intx,y;doublez;z=x+y;returnz;}D、doublefun(intx,inty){doublez;z=x+y;returnz;}在一個(gè)源程序文件中定義的全局變量的有效范圍為〔〕。A、一個(gè)C程序的所有源程序文件B、該源程序文件的全部范圍C、從定義處開始到該源程序文件結(jié)束D、函數(shù)內(nèi)全部范圍以下函數(shù)中,能夠從鍵盤上獲得一個(gè)字符數(shù)據(jù)的函數(shù)是〔〕。A、puts()B、putchar()C、getchar()D、gets()以下程序的輸出結(jié)果是〔〕。fun(inta,intb,intc){ c=a+b;}intmain(){ intc; fun(2,3,c); printf(“%d\n〞,c);return0;}A、2 B、3 C、5 D、無定值分析以下程序的運(yùn)行結(jié)果〔〕。func(inta,intb){ inttemp=a; a=b;b=temp;}intmain(){ intx,y; x=10;y=20; func(x,y);printf((“%d,%d\n〞,x,y);return0;}A、10,20B、10,10 C、20,10D、20,2下面程序的輸出是〔〕。fun(intx){staticinta=3;a+=x;return(a);}intmain(){ intk=2,m=1,n; n=fun(k); n=fun(m); printf(“%d〞,n);return0;}A、3 B、4 C、6 D、9以下程序輸出的結(jié)果是〔〕。intfunc(inta,intb){return(a+b);}intmain(){intx=2,y=5,z=8,r;r=func(func(x,y),z); printf(“%d\n〞,r);return0;}A、12 B、13 C、14 D、15以下程序的輸出結(jié)果是〔〕。inta,bvoidfun(){a=100;b=200;}intmain(){inta=5,b=7;fun(); printf(“%d%d\n〞,a,b);return0;}A、100200B、57 C、200100D、以下程序執(zhí)行后的輸出結(jié)果是

void

func1〔int

i〕;

void

func2〔int

i〕;

char

st[]="hello,friend!";

void

func1〔int

i〕

{

printf〔"%c",st[i]〕;

if〔i<3〕

{

i+=2;func2〔i〕;}

}

void

func2〔int

i〕

{

printf〔"%c",st[i]〕;

if〔i<3〕

{

i+=2;func1〔i〕;}

}

intmain〔〕

{

int

i=0;

func1〔i〕;

printf〔"\n"〕;return0;}

A〕hello

B〕hel

C〕hlo

D〕hlm有以下程序

int

f〔int

n〕

{

if〔n==1〕

return

1;

else

return

f〔n-1〕+1;

}

intmain〔〕

{

int

i,j=0;

for〔i=1;i<3;i++〕

j+=f〔i〕;

printf〔"%d\n",j〕;return0;

}

程序運(yùn)行后的輸出結(jié)果是

A〕4

B〕3

C〕2

D〕1現(xiàn)有如下程序

#include

"stdio.h"

int

fun〔int

x〕

{

printf〔"x=%d\n",++x〕;

}

intmain〔〕

{

fun〔12+5〕;return0;

}

那么程序的輸出結(jié)果是

A〕12

B〕13

C〕17

D〕18

二、判斷題()函數(shù)定義voidmax(inta,intb)表示該函數(shù)的返回值不確定。()在C語言中,函數(shù)體中變量的隱含存儲(chǔ)類別是自動(dòng)變量auto。()return語句作為函數(shù)的出口,在一個(gè)函數(shù)體內(nèi)只能有一個(gè)。()在C程序中,函數(shù)不能嵌套定義,但可以嵌套調(diào)用。()C語言的源程序中必須包含庫函數(shù)。()在C程序中,函數(shù)調(diào)用不能出現(xiàn)在表達(dá)式語句中。()在C函數(shù)中,形參可以是變量、常量或表達(dá)式。()在主函數(shù)main()中定義的變量都可以在其它被調(diào)函數(shù)中直接使用。()在C語言中,一個(gè)函數(shù)一般由兩個(gè)局部組成,它們是函數(shù)首部和函數(shù)體。()C語言程序中的main()函數(shù)必須放在程序的開始局部。()假設(shè)定義的函數(shù)沒有參數(shù),那么函數(shù)名后的圓括號(hào)可以省略。()函數(shù)的函數(shù)體可以是空語句。()函數(shù)的實(shí)參和形參可以是相同的名字。()函數(shù)調(diào)用中,形參與實(shí)參的類型和個(gè)數(shù)必須保持一致。()C語言中函數(shù)返回值的類型由return語句中的表達(dá)式的類型決定。()外部類型的變量只能定義一次,但可在不同地方聲明屢次。()外部類型的變量作用范圍大,編程中應(yīng)多用外部變量。答案:BCBBDCBBDBCADADCCDACDBCBD1F2T3F4T5F6F7F8F9第8章指針選擇題以下選項(xiàng)中正確的語句組是:〔〕A〕chars[8];s={"Beijing"};B〕char*s;s={"Beijing"};C〕chars[8];s="Beijing";D〕char*s;s="Beijing";假設(shè)有定義:int*p[3];,那么以下表達(dá)中正確的選項(xiàng)是:〔〕A〕定義了一個(gè)類型為int的指針變量p,該變量具有三個(gè)指針B〕定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針C〕定義了一個(gè)名為*p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素D〕定義了一個(gè)可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素已定義以下函數(shù)fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函數(shù)的功能是:〔〕A〕將p1所指字符串復(fù)制到p2所指內(nèi)存空間B〕將p1所指字符串的地址賦給指針p2C〕對(duì)p1和p2兩個(gè)指針?biāo)缸址M(jìn)行比擬D〕檢查p1和p2兩個(gè)指針?biāo)缸址惺欠裼?\0'假設(shè)有如下定義chara[10],*p=a,那么對(duì)a數(shù)組中元素的不正確的引用是:〔〕A)*&a[5]B)a+2C有以下程序main(){intx[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是:〔〕A)隨機(jī)值B)0C)5D)6以下程序的運(yùn)行結(jié)果是:〔〕voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}A)63B)36下面程序的輸出結(jié)果是:〔〕main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}A)0B)1C假設(shè)有說明:inti,j=2,*p=&i;,那么能完成i=j賦值功能的語句是:〔〕A)i=*p;B)*p=*&j;C)i=&j;D)i=**p;以下定義語句中,錯(cuò)誤的選項(xiàng)是:〔〕A)inta[]={1,2};B)char*a[3];C)chars[10]="test";D)intn=5,a[n];以下不能正確進(jìn)行字符串賦初值的語句是:〔〕A)charstr[5]="good!";B)charstr[]="good!";C)char*str="good!";D)charstr[5]={'g','o','o','d'};有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是:〔〕A)11B)19C)13D)20有以下程序#include<string.h>main(){char*p="abcde\0fghjik\0";printf("%d\n",strlen(p));}程序運(yùn)行后的輸出結(jié)果是:〔〕A)12B)15C)6D)5變量的指針,其含義是指該變量的______.

a)值

b)地址

c)名

d)一個(gè)標(biāo)志假設(shè)有語句int*point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是_______.

a)a,point,*&a

b)&*a,&a,*point

c)*&point,*point,&a

d)&a,&*point,point假設(shè)有說明;int*p,m=5,n;以下正確的程序段的是____.a)p=&n;

b)p=&n;

scanf("%d",&p);

scanf("%d",*p);

c)scanf("%d",&n);

d)p=&n;

*p=n;

*p=m;以下正確的程序段是______.a)charstr[20];

b)char*p;scanf("%s",str);

scanf("%s",p);

c)charstr[20];

d)charstr[20],*p=str;

scanf("%s",&str[2]);

scanf("%s",p[2]);下面程序的運(yùn)行結(jié)果是____.

#include

<stdio.h>

#include

<string.h>

main()

{

char*s1="AbDeG";

char*s2="AbdEg";

s1+=2;s2+=2;

printf("%d\n",strcmp(s1,s2));

}

a)正數(shù)

b)負(fù)數(shù)

c)零

d)不確定的值

假設(shè)有定義:inta[2][3],那么對(duì)a數(shù)組的第i行j列元素地址的正確引用為_____

a)*(a[i]+j)

b)(a+i)

c)*(a+j)

d)a[i]+j假設(shè)有以下定義,那么p+5表示___.

int

a[10],*p=a;a)元素a[5]的地址

b)元素a[5]的值

c)元素a[6]的地址

d)元素a[6]的值以下程序的輸出結(jié)果是________.#include<stdio.h>voidfun(int*p);intmain(){ intx=3;fun(&x); printf(“x=%d\n〞,x);}voidfun(int*p){ *p=5;}A)3B)5C下面判斷正確的選項(xiàng)是

A〕char

*a="china";等價(jià)于

char

*a;*a="china";

B〕char

str[5]={"china"};等價(jià)于char

str[]={"china"};

C〕char

*s="china";等價(jià)于

char

*s;s="china";

D〕char

c[4]="abc",d[4]="abc";等價(jià)于char

c[4]=d[4]="abc";以下程序的運(yùn)行結(jié)果是

void

fun〔int

*a,

int

*b〕

{

int

*k;

k=a;

a=b;

b=k;

}

main〔〕

{

int

a=3,

b=6,

*x=&a,

*y=&b;

fun〔x,y〕;

printf〔"%d

%d",

a,

b〕;

}

A〕6

3

B〕3

6

C〕編譯出錯(cuò)

D〕0

0

二、判斷題(F)指針變量里存放的是地址值,因此指針變量只能是int型的。(T)有一個(gè)一維數(shù)組a[10],那么a與&a[0]等價(jià)。(F)有如下程序段:inti,j=2,k,*p=&i;k=*p+j;這里出現(xiàn)的兩個(gè)“*〞號(hào),含義是一樣的。(F)在C語言中,每一個(gè)變量在內(nèi)存里占用的單元數(shù)都是相同的。(T)通過指針變量,就能間接地得到它所指向的變量的值。(F)有說明:int*p;且p指向地址為1500的內(nèi)存單元,那么經(jīng)過操作“p++;〞后,p將指向1501的內(nèi)存單元。(T)一個(gè)變量的指針就是該變量的地址。(F)在C語言中允許將一個(gè)整數(shù)賦給指針變量。(F)數(shù)組名實(shí)際上是此數(shù)組的首地址,所以數(shù)組名相當(dāng)于一個(gè)指針變量。(F)char*p[10];定義了一個(gè)指向字符數(shù)組的指針變量。答案:DBABBBCBDABDBDDABDABCBFTFFTFTFFFC語言程序設(shè)計(jì)練習(xí)題結(jié)構(gòu)體與聯(lián)合體一、單項(xiàng)選擇題以下關(guān)于結(jié)構(gòu)體的說法錯(cuò)誤的選項(xiàng)是:〔D〕A:結(jié)構(gòu)體是由用戶自定義的一種數(shù)據(jù)類型B:結(jié)構(gòu)體中可設(shè)定假設(shè)干個(gè)不同數(shù)據(jù)類型的成員C:結(jié)構(gòu)體中成員的數(shù)據(jù)類型可以是另一個(gè)已定義的結(jié)構(gòu)D:在定義結(jié)構(gòu)體時(shí),可以對(duì)成員進(jìn)行初始化以下結(jié)構(gòu)體類型說明及結(jié)構(gòu)體變量a,b的定義中,正確的選項(xiàng)是:〔B〕A:structssB:structss{charflag;{charflag;floatx;floatx;};};ssa,b;structssa,b;C:structD:struct{charflag;{charflag;floatx;floatx;}ss;}ss;ssa,b;structssa,b;設(shè)有以下說明語句:structstu{inta;floatb;}stutype;那么下面的表達(dá)不正確的選項(xiàng)是:〔C〕A:struct是結(jié)構(gòu)體類型的關(guān)鍵字B:structstu是用戶定義的結(jié)構(gòu)體類型名C:stutype是用戶定義的結(jié)構(gòu)體類型名D:a和b都是結(jié)構(gòu)體成員名在VC++6.0中使用C語言時(shí),假設(shè)有如下定義:structdata{longi;charch;doublef;}b;那么結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是:〔D〕A:4B:8C:12D:13下面程序的運(yùn)行結(jié)果是:〔〕main(){structcmplx{intx;inty;}c[2]={1,3,2,7};printf("%d",c[0].y/c[0].x*c[1].x);}A:0B:1C:3D:6假設(shè)有以下說明和語句,那么對(duì)pup中sex域的正確引用方式是:〔〕structpupil{charname[20];intsex;}pup,*p;p=&pup;A:B:p->pup.sexC:(*p).pup.sexD:(*p).sexC語言規(guī)定結(jié)構(gòu)體變量系統(tǒng)分配給它的存儲(chǔ)空間是〔〕A)該結(jié)構(gòu)體中最后一個(gè)成員所需的存儲(chǔ)空間B)該結(jié)構(gòu)體中所有成員所需存儲(chǔ)空間的總和。C)該結(jié)構(gòu)體中第一個(gè)成員所需的存儲(chǔ)空間D)該結(jié)構(gòu)體中占用最大存儲(chǔ)空間的成員所需的存儲(chǔ)空間當(dāng)說明一個(gè)共用體變量時(shí),系統(tǒng)分配給它的內(nèi)存是:〔〕A:各成員所需內(nèi)存量的總和B:共用體中第一個(gè)成員所需內(nèi)存量C:成員中占內(nèi)存量最大者所需的內(nèi)存量D:共用體中最后一個(gè)成員所需內(nèi)存量以下對(duì)C語言中共用體類型數(shù)據(jù)的表達(dá)正確的選項(xiàng)是:〔〕A:可以對(duì)共用體變量名直接賦值B:一個(gè)共用體變量中可以同時(shí)存放所有成員C:一個(gè)共用體變量中不能同時(shí)存放其所有成員D:共用體類型定義中不能出現(xiàn)結(jié)構(gòu)體類型的成員假設(shè)有以下定義和語句:uniondata{inti;charc;floatf;}a;那么以下語句正確的選項(xiàng)是:〔〕A:a=5B:printf("%d\n",a.i);C:a={2,'a',1.2};D:n=a根據(jù)以下定義,能輸出字母M的語句是〔〕structperson{charname[9];intage;};structpersonclass[10]={“John〞,17,“Paul〞,19,“Mary〞,18,“Adam〞,16,};A.printf(“%c\n〞,class[3].name);B.printf(“%c\n〞,class[3].name[1]);C.printf(“%c\n〞,class[2].name[1]);D.printf(“%c\n〞,class[2].name[0]);12.有如下定義:structdate{ inty;intm;intd;};structperson{ charname[20]; charsex; structdatebirthday;}a;對(duì)結(jié)構(gòu)體變量a的出生年份進(jìn)行賦值時(shí),下面正確的賦值語句是()。Ay=1958Bbirthday.y=1958Ca.birthday.y=1958 Da.y=195813.有以下程序段typedefstructnode{ intdata;structnode*next;}NODE;NODE*p;以下表達(dá)正確的選項(xiàng)是()A〕NODE*p;語句出錯(cuò) B〕p是指向structnode結(jié)構(gòu)體變量的指針的指針C〕p是structnode結(jié)構(gòu)體變量 D〕p是指向structnode結(jié)構(gòu)體變量的指針14.以下關(guān)于typedef的表達(dá)錯(cuò)誤的選項(xiàng)是()A)typedef只是將已存在的類型用一個(gè)新的名字來代表B)用typedef可以增加新類型C)用typedef可以為各種類型說明一個(gè)新名,但不能用來為變量說明一個(gè)新名D)用typedef為類型說明一個(gè)新名,通常可以增加程序的可讀性15.下面程序的運(yùn)行結(jié)果是() unionun { inta; intb; intc;}; main() { unionunu; u.a=1; u.b=2; u.c=3; printf(“a=%d,b=%d,c=%d\n〞,u.a,u.b,u.c); }A〕a=3,b=3,c=3 B〕a=1,b=2,c=3C〕a=1,b=1,c=1D〕a=2,b=2,c=2〔第9章結(jié)構(gòu)體與聯(lián)合體〕參考答案一、單項(xiàng)選擇題答案:1D2B3C4D5D6D7B8C9C10B二、程序填空head指向一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域〔data〕和指針域〔next〕,數(shù)據(jù)域?yàn)檎汀O旅娴膕um函數(shù)是求出鏈表中所有結(jié)點(diǎn)數(shù)據(jù)域值的和,作為函數(shù)值返回。請(qǐng)?zhí)羁胀晟瞥绦?。structlink{ intdata; struct

溫馨提示

  • 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)論