國開C語言程序設(shè)計(jì)期末復(fù)習(xí)題_第1頁
國開C語言程序設(shè)計(jì)期末復(fù)習(xí)題_第2頁
國開C語言程序設(shè)計(jì)期末復(fù)習(xí)題_第3頁
國開C語言程序設(shè)計(jì)期末復(fù)習(xí)題_第4頁
國開C語言程序設(shè)計(jì)期末復(fù)習(xí)題_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

專業(yè)好文檔PAGE10-《C++語言程序設(shè)計(jì)》期末復(fù)習(xí)模擬訓(xùn)練題一、選擇題(共40分,每小題2分)1.在每個(gè)C語言程序中都必須包含有這樣一個(gè)函數(shù),該函數(shù)的函數(shù)名為()A.MainB.MAINC.NameD.function正確答案是:mainC語言源程序文件的缺省擴(kuò)展名為()。A.cppB.exeC.objD.c正確答案是:c3.由C語言目標(biāo)文件連接而成的可執(zhí)行文件的缺省擴(kuò)展名為()。A.cppB.exeC.objD.c正確答案是:exe4.程序運(yùn)行中需要從鍵盤上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用的分隔符為()。A.空格或逗號B.逗號或回車C.逗號或分號D.空格或回車正確答案是:空格或回車5.每個(gè)C語言程序文件的編譯錯(cuò)誤被分為()。A.1類B.2類C.3類D.4類正確答案是:2類6.不符合C語言規(guī)定的復(fù)合語句是()。A.{}B.{;}C.{x=0;}D.{y=10}正確答案是:{y=10}7.C語言程序中的基本功能模塊為()。A.表達(dá)式B.標(biāo)識符C.語句D.函數(shù)正確答案是:函數(shù)8.在一個(gè)函數(shù)定義中,函數(shù)頭包括的3個(gè)部分依次為函數(shù)類型、函數(shù)名和()。A.表達(dá)式B.語句C.參數(shù)表D.函數(shù)體正確答案是:參數(shù)表9.在一個(gè)程序文件中,若要使用#include命令包含一個(gè)用戶定義的頭文件,則此頭文件所使用的起止定界符為一對()。A.尖括號B.雙引號C.單引號D.花括號正確答案是:雙引號10.在C語言程序中,多行注釋語句使用的開始標(biāo)記符為()。A.//B./*C.*/D.**正確答案是:/*11.在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%c”,則對應(yīng)輸出的數(shù)據(jù)類型為()。A.charB.inC.floatD.double正確答案是:char12在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%5d”,則規(guī)定對應(yīng)輸出的數(shù)據(jù)占用的字符位置個(gè)數(shù)為()。A.5B.4C.3D.6正確答案是:513.轉(zhuǎn)義字符'\\'表示的字符是()。A.單引號B.雙引號C.反斜線D.問號正確答案是:反斜線14.枚舉類型中的每個(gè)枚舉常量的值都是一個(gè)()。A.整數(shù)B.浮點(diǎn)數(shù)C.字符D.邏輯值正確答案是:整數(shù)15.

運(yùn)算符優(yōu)先級最高的是()。A.=B.*=C.&&D.!=正確答案是:!=16.設(shè)x和y均為邏輯值,則x&&y為真的條件是()。A.它們均為真B.其中一個(gè)為真C.它們均為假D.其中一個(gè)為假正確答案是:它們均為真17.設(shè)有語句“inta=12;a+=a*a;”,則執(zhí)行結(jié)束后,a的值為()。A.12B.14C.156D.288正確答案是:156題目18x>0&&x<=10的相反表達(dá)式為()。A.x<=0||x>10B.x<=0&&x>10C.x<=0||x<=10D.x>0&&x>10正確答案是:x<=0||x>10題目19字符串“a+b=12\n”的長度為()。A.6B.7C.8D.9正確答案是:7題目20在下列的符號常量定義中,錯(cuò)誤的定義語句格式為()。A.constintM1=10;B.constintM2=20;C.constintM310;D.constcharmark='3';正確答案是:constintM310;二、判斷題(共60分,每小題2分。敘述正確則回答“是”,否則回答“否”)題目21C語言中的每條簡單語句以分號作為結(jié)束符。對錯(cuò)正確的答案是“對”。題目22C語言中的每條復(fù)合語句以花括號作為結(jié)束符。對錯(cuò)正確的答案是“錯(cuò)”。題目23在C語言程序中,在行尾使用注釋的開始標(biāo)記符為一對單斜線字符。對錯(cuò)正確的答案是“對”。題目24注釋內(nèi)容的開始所使用的標(biāo)記符為/*,則注釋內(nèi)容的結(jié)束所使用的標(biāo)記符為*/。對錯(cuò)正確的答案是“對”。題目25在一個(gè)C語言程序文件中,若要包含一個(gè)頭文件,則使用以百分號開始的預(yù)處理命令。對錯(cuò)正確的答案是“錯(cuò)”。題目26用于輸出表達(dá)式值的標(biāo)準(zhǔn)輸出函數(shù)是printf()。對錯(cuò)正確的答案是“對”。題目27當(dāng)不需要函數(shù)返回任何值時(shí),則需要使用保留字void作為函數(shù)的返回值類型。對錯(cuò)正確的答案是“對”。題目28每個(gè)C程序文件在編譯時(shí)可能出現(xiàn)有警告性錯(cuò)誤,其對應(yīng)的標(biāo)識符為error。對錯(cuò)正確的答案是“錯(cuò)”。題目29十進(jìn)制數(shù)25表示成符合C語言規(guī)則的八進(jìn)制數(shù)為31。對錯(cuò)正確的答案是“錯(cuò)”。題目30十進(jìn)制數(shù)25表示成符合C語言規(guī)則的十六進(jìn)制數(shù)為0x19。對錯(cuò)正確的答案是“對”。題目31在C語言中,轉(zhuǎn)義字符'\n'表示一個(gè)換行符。對錯(cuò)正確的答案是“對”。題目32執(zhí)行“printf("%c",'F'-2);”語句后得到的輸出結(jié)果為H。對錯(cuò)正確的答案是“錯(cuò)”。題目33已知字符'C'的ASCII碼為67,當(dāng)執(zhí)行“intx='C'+5;”語句后x的值為72。對錯(cuò)正確的答案是“對”。題目34假定一個(gè)枚舉類型的定義為“enumRB{ab,ac=3,ad,ae}x=ad;”,則x的值為2。對錯(cuò)正確的答案是“錯(cuò)”。題目35float的類型長度為8。對錯(cuò)正確的答案是“錯(cuò)”題目36在C語言中,常數(shù)28和3.26具有相同的數(shù)據(jù)類型。對錯(cuò)正確的答案是“錯(cuò)”。題目37若需要定義一個(gè)符號常量,并且使C語言能夠進(jìn)行類型檢查,則應(yīng)在定義語句的開始使用保留字const。對錯(cuò)正確的答案是“對”。題目38使用const語句定義一個(gè)符號常量時(shí),不必對它進(jìn)行初始化。對錯(cuò)正確的答案是“錯(cuò)”。題目39表達(dá)式45%13的值為3。對錯(cuò)正確的答案是“錯(cuò)”。題目40假定x=5,則表達(dá)式2*x++的值為12。對錯(cuò)正確的答案是“錯(cuò)”。題目41表達(dá)式(float)25/4的值為6。對錯(cuò)正確的答案是“錯(cuò)”。題目42表達(dá)式x=x+1表示成增量表達(dá)式為++x。對錯(cuò)正確的答案是“對”。題目43關(guān)系表達(dá)式(x!=0)的等價(jià)表達(dá)式為(x)。

對錯(cuò)正確的答案是“對”。題目44關(guān)系表達(dá)式x+y>5的相反表達(dá)式為x+y<=5。對錯(cuò)正確的答案是“對”。題目45邏輯表達(dá)式(a>b||b==5)的相反表達(dá)式為(a>b&&b==5)。對錯(cuò)正確的答案是“錯(cuò)”。題目46若x=5,y=10,則x>y邏輯值為真。對錯(cuò)正確的答案是“錯(cuò)”。題目47假定x=5,則執(zhí)行“a=(x?10:20);”語句后a的值為10。

對錯(cuò)正確的答案是“對”。題目48帶有隨機(jī)函數(shù)的表達(dá)式rand()%20的值所在的區(qū)間范圍是0~19。對錯(cuò)正確的答案是“對”。題目49假定x=5,則執(zhí)行“y=x++;”語句后,x的值為5。對錯(cuò)正確的答案是“錯(cuò)”。題目50假定x=5,則執(zhí)行“y=++x;”語句后,y的值為6。對錯(cuò)正確的答案是“對”一、選擇題(共20分,每小題2分)題目1當(dāng)處理特定問題時(shí)的循環(huán)次數(shù)已知時(shí),通常采用的語句是(

)。a.for

b.whilec.do-whiled.switcht.正確答案是:for題目2在switch語句的每個(gè)case塊中,假定都是以break語句結(jié)束的,則此switch語句容易被改寫成的語句是(

)。a.for

b.ifc.dod.while正確答案是:if題目3for語句能夠被改寫成的語句是(

)。a.復(fù)合

b.ifc.switchd.while正確答案是:while題目4下面循環(huán)語句執(zhí)行結(jié)束后輸出的i值為(

)。for(inti=0;i<n;i++)if(i>n/2){cout<<i<<endl;break;}a.n/2

b.n/2+1c.n/2-1d.n-1正確答案是:n/2+1題目5在下面循環(huán)語句中,內(nèi)層循環(huán)體S語句的執(zhí)行總次數(shù)為(

)。for(inti=0;i<n;i++)for(intj=i;j<n;j++)S;a.n2

b.(n+1)/2c.n(n-1)/2d.n(n+1)/2正確答案是:n(n+1)/2題目6在下面的do循環(huán)語句中,其循環(huán)體被執(zhí)行的次數(shù)為(

)。inti=0;doi++;while(i*i<10);a.4

b.3c.5d.2正確答案是:4題目7在下面的一維數(shù)組定義中,有語法錯(cuò)誤的選項(xiàng)是(

)。a.inta[]={1,2,3};

b.inta[10]={0};c.inta[];d.inta[5];正確答案是:inta[];題目8在下面的二維數(shù)組定義中,語法正確的選項(xiàng)是(

)。a.inta[5][];

b.inta[][5];c.inta[][3]={{1,3,5},{2}};d.inta[](10);正確答案是:inta[][3]={{1,3,5},{2}};題目9假定一個(gè)二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[1][1]的值為(

)。a.2

b.4c.6d.8正確答案是:8題目10假定一個(gè)二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為(

)。a.0b.4c.8

d.6正確答案是:0二、判斷題(共20分,每小題1分。敘述正確則回答“是”,否則回答“否”)題目11在執(zhí)行“typedefintDataType;”語句后,標(biāo)識符DataType與保留字int具有完全相同的含義和作用。對

錯(cuò)正確的答案是“對”。題目12在switch語句中,每個(gè)case和冒號之間的表達(dá)式只能是常量。對

錯(cuò)正確的答案是“對”。題目13為了結(jié)束本層循環(huán)類語句或switch語句的執(zhí)行過程,在語句體中需要使用break語句。對

錯(cuò)正確的答案是“對”。題目14在程序中執(zhí)行到break語句時(shí),將結(jié)束所在函數(shù)的執(zhí)行過程,返回到調(diào)用該函數(shù)的位置。對

錯(cuò)正確的答案是“錯(cuò)”。題目15在程序執(zhí)行完成任一個(gè)函數(shù)調(diào)用后,將結(jié)束整個(gè)程序的執(zhí)行過程,返回到操作系統(tǒng)或C語言集成開發(fā)環(huán)境界面窗口。對

錯(cuò)正確的答案是“錯(cuò)”。題目16假定一維數(shù)組的定義為“char*a[8];”,則該數(shù)組所含元素的個(gè)數(shù)大于8。對

錯(cuò)正確的答案是“錯(cuò)”。題目17假定二維數(shù)組的定義為“inta[3][5];”,則該數(shù)組所占存儲空間的字節(jié)數(shù)為60。對

錯(cuò)正確的答案是“對”。題目18假定二維數(shù)組的定義為“chara[M][N];”,則該數(shù)組所含元素的個(gè)數(shù)為M+N。對

錯(cuò)正確的答案是“錯(cuò)”。題目19假定二維數(shù)組的定義為“doublea[M][N];”,則每個(gè)數(shù)組元素的行下標(biāo)取值范圍在0~M-1之間。對

錯(cuò)正確的答案是“對”。題目20假定二維數(shù)組的定義為“doublea[M][N];”,則每個(gè)數(shù)組元素的列下標(biāo)取值范圍在0~N之間。對

錯(cuò)正確的答案是“錯(cuò)”。題目21存儲一個(gè)空字符串需要占用0個(gè)字節(jié)的存儲空間。對

錯(cuò)正確的答案是“錯(cuò)”。題目22使用“typedefcharBB[10][50];”語句定義標(biāo)識符BB為含有10行50列的二維字符數(shù)組類型。對

錯(cuò)正確的答案是“對”。題目23存儲字符'a'需要占用1個(gè)字節(jié)的存儲空間。對

錯(cuò)正確的答案是“對”。題目24空字符串的長度為1。對

錯(cuò)正確的答案是“錯(cuò)”。題目25字符串"a:\\xxk\\數(shù)據(jù)"的長度為13。對

錯(cuò)正確的答案是“錯(cuò)”。題目26為了存儲一個(gè)長度為n的字符串,所使用的字符數(shù)組的長度至少為n+1。對

錯(cuò)正確的答案是“對”。題目27strcmp函數(shù)用于進(jìn)行兩個(gè)字符串之間的比較。對

錯(cuò)正確的答案是“對”。題目28strcpy函數(shù)用于把一個(gè)字符串拷貝到另一個(gè)字符數(shù)組空間中。對

錯(cuò)正確的答案是“對”。題目29一個(gè)二維字符數(shù)組a[10][20]能夠最多存儲9個(gè)字符串。對

錯(cuò)正確的答案是“錯(cuò)”。題目30一個(gè)二維字符數(shù)組a[10][20]能夠存儲的每個(gè)字符串的長度不超過20。對

錯(cuò)正確的答案是“錯(cuò)”。三、填空題:寫出下列每個(gè)程序運(yùn)行后的輸出結(jié)果(共40分,每小題4分)題目31

#include<stdio.h>

voidmain()

{

intx=5;

switch(2*x-3){

case4:printf("%d",x);

case7:printf("%d",2*x+1);

case10:printf("%d",3*x-1);break;

default:printf("%s","default\n");

}

}、題目32#include<stdio.h>

voidmain(){

inti,s=0;

for(i=1;i<=5;i++)s+=i*i;

printf("s=%d\n",s);

}答案:正確答案是:s=55題目33#include<stdio.h>

voidmain(){

inti,s1=0,s2=0;

for(i=0;i<10;i++)

if(i%2)s1+=i;elses2+=i;

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

}答案:正確答案是:2520題目34#include<stdio.h>

voidmain(){

intn=6,y=1;

while(n)y*=n--;

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

}答案:正確答案是:y=720題目35#include<stdio.h>

constintM=20;

voidmain()

{

inti,c2,c3,c5;

c2=c3=c5=0;

for(i=1;i<=M;i++){

if(i%2==0)c2++;

if(i%3==0)c3++;

if(i%5==0)c5++;

}

printf("%d%d%d\n",c2,c3,c5);

}答案:正確答案是:1064題目36#include<stdio.h>

voidmain()

{

inti,s;

for(i=1,s=0;i<10;i++){

if(i%3==0)continue;

s+=i;

}

printf("%d\n",s);

}答案:正確答案是:27題目37

#include<stdio.h>

voidmain(){

inta[8]={12,39,26,41,55,63,72,40};

inti,i1=0,i2=0;

for(i=0;i<8;i++)

if(a[i]%2==1)i1++;elsei2++;

printf("%d%d\n",i1,i2);

}答案:正確答案是:44題目38#include<stdio.h>

inta[10]={4,5,6,15,20,13,12,7,8,9};

voidmain()

{

inti,s[4]=0;

for(i=0;i<10;i++){

switch(a[i]%4){

case0:s[0]+=a[i];break;

case1:s[1]+=a[i];break;

case2:s[2]+=a[i];break;

default:s[3]+=a[i];break;

}

}

for(i=0;i<4;i++)printf("%d",s[i]);

}答案:正確答案是:4427622題目39#include<stdio.h>

voidmain(){

chara[]="abcdbfbgacd";

inti1=0,i2=0,i=0;

while(a[i]){

if(a[i]=='a')i1++;

if(a[i]=='b')i2++;

i++;

}

printf("%d%d%d\n",i1,i2,i);

}答案:正確答案是:2311題目40#include<stdio.h>

voidmain(){

inta[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}};

intm=a[0][0];

inti,j;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

if(a[i][j]>m)m=a[i][j];

printf("%d\n",m);

}答案:正確答案是:12四、簡答題:根據(jù)下列每個(gè)題目要求編寫程序(共20分,每小題4分)題目41編寫一個(gè)函數(shù),函數(shù)頭格式為“doubleMean(doublea[M][N],intm,intn)”,要求返回二維數(shù)組a[m][n]中所有元素的平均值,假定在計(jì)算過程中采用變量v存放平均值。2doubleMean(doublea[M][N],intm,intn)

{

inti,j;

doublev=0.0;

for(i=0;i<m;i++)

for(j=0;j<n;j++)v+=a[i][j];

v/=m*n;

returnv;

}題目42編寫一個(gè)遞歸函數(shù)“intFF(inta[],intn)”,求出數(shù)組a中所有n個(gè)元素之積并返回。5intFF(inta[],intn)

{

if(n==1)returna[n-1];

elsereturna[n-1]*FF(a,n-1);

}題目43編寫一個(gè)主函數(shù),利用while循環(huán),求出并顯示滿足不等式的最小n值。5#include<stdio.h>

voidmain()

{

inti=0;doubles=0;

//或inti=1;doubles=1;

while(s<5)s+=(double)1/++i;

printf("n=%d\n",i);

}題目44編寫一個(gè)主函數(shù),求出滿足不等式22+42+...+n2<1000的最大n值,假定分別用i和s作為取偶數(shù)值和累加值的變量,并限定使用do循環(huán)編程。5#include<stdio.h>

voidmain()

{

inti=0;

//用i作為依次取值偶數(shù)的變量

ints=0;

//用s作為累加變量

do{

i+=2;

s+=i*i;

}while(s<1000);

printf("n=%d\n",i-2);

}題目45編寫一個(gè)主函數(shù),計(jì)算并輸出12+22+...+n2值,其中n值由鍵盤輸入。5#include<stdio.h>

voidmain()

{

inti;

//用i作為計(jì)數(shù)(循環(huán))變量

ints=0;

//用s作為累加變量

intn;

printf("輸入一個(gè)自然數(shù):");

scanf("%d",&n);

for(i=1;i<=n;i++)s+=i*i;

printf("s=%d\n",s);

}一、選擇題(共30分,每小題2分)題目1在下面的函數(shù)聲明語句中,存在著語法錯(cuò)誤的是(

)。a.AA(inta,intb)b.AA(int,int)c.AA(inta;intb)

d.AA(inta,int)正確答案是:AA(inta;intb)題目2在下面的保留字中,不能作為函數(shù)的返回值類型的是(

)。a.voidb.intc.enum

d.long正確答案是:enum題目3假定p是一個(gè)指向float型數(shù)據(jù)的指針,則p+1所指數(shù)據(jù)的地址比p所指數(shù)據(jù)的地址增加的字節(jié)數(shù)為(

)。a.1b.2c.4

d.8正確答案是:4題目4假定a為一個(gè)數(shù)組名,在下面的表達(dá)式中,存在語法錯(cuò)誤的是(

)。a.a[i]b.*a++

c.*ad.*(a+1)正確答案是:*a++題目5用calloc函數(shù)創(chuàng)建具有10個(gè)整型元素的一維數(shù)組的正確語句是(

)。a.int*p=calloc(10,2);b.int*p=calloc(10);c.int*p=calloc(10,4);

d.int*p=malloc(10)正確答案是:int*p=calloc(10,4);題目6假定變量m定義為“intm=7;”,則下面正確的語句為(

)。a.intp=&m;b.int*p=&m;

c.int&p=*m;d.int*p=m;正確答案是:int*p=&m;題目7假定k是一個(gè)double類型的變量,則定義變量p的正確語句為(

)。a.doublep=&k;b.int*p=&k;c.double&p=*k;d.char*p="Thankyou!";

正確答案是:char*p="Thankyou!";題目8若有語句為“inta[10],x,*pa=a;”,要把數(shù)組a中下標(biāo)為3的元素值賦給x,則不正確的語句為(

)。a.x=pa[3];b.x=*(a+3);c.x=a[3];d.x=*pa+3;

正確答案是:x=*pa+3;題目9假定有語句為“intb[10];int*pb;”,則下面不正確的賦值語句為(

)。a.pb=b;b.pb=&b[0];c.pb=b+2;d.pb=b[5];

正確答案是:pb=b[5];題目10已知“int*p=malloc(100);”,要釋放p所指向的動(dòng)態(tài)內(nèi)存,正確的語句為(

)。a.free(p);

b.freep;c.free(*p);d.free[p];正確答案是:free(p);題目11在程序的一個(gè)文件中定義的函數(shù),若要在另一個(gè)文件中調(diào)用,則必須在這另一個(gè)文件中給出該函數(shù)的(

)。a.原型語句

b.參數(shù)表c.函數(shù)名d.返回類型正確答案是:原型語句題目12假定一個(gè)函數(shù)定義為“staticintf1(intx,inty){returnx+y;}”,該函數(shù)名稱為(

)。a.staticb.intc.f1

d.return正確答案是:f1題目13假定一個(gè)函數(shù)的原型語句為“intff(int*x);”,一個(gè)整型數(shù)組為a[10],則下面函數(shù)調(diào)用表達(dá)式不正確的是(

)。a.ff(a)b.ff(a[0])

c.ff(a+3)d.ff(&a[0])正確答案是:ff(a[0])題目14假定一個(gè)函數(shù)的數(shù)組參數(shù)說明為chara[],與之等價(jià)的指針參數(shù)說明為(

)。1Ba.charab.char*a

c.char&ad.char**a正確答案是:char*a題目15假定一個(gè)函數(shù)的二維數(shù)組參數(shù)說明為charw[][N],與之等價(jià)的指針參數(shù)說明為(

)。a.char(*w)[N]

b.char*w[N]c.char(*w)Nd.char**a正確答案是:char(*w)[N]二、判斷題(共30分,每小題2分。敘述正確則回答“是”,否則回答“否”)題目16在C語言中,一個(gè)函數(shù)由函數(shù)頭和函數(shù)體組成。對

錯(cuò)正確的答案是“對”。題目17在函數(shù)模塊之外定義的變量稱為全局變量,若沒有被初始化則系統(tǒng)隱含對它賦初值0。對

錯(cuò)正確的答案是“對”。題目18如果一個(gè)函數(shù)只允許同一程序文件中的函數(shù)調(diào)用,則不應(yīng)在該函數(shù)定義的開始前加上保留字static。對錯(cuò)

正確的答案是“錯(cuò)”。題目19如果在一個(gè)函數(shù)體中又出現(xiàn)對自身函數(shù)的調(diào)用,此種函數(shù)調(diào)用被稱為遞歸調(diào)用。對

錯(cuò)正確的答案是“對”。題目20調(diào)用系統(tǒng)函數(shù)時(shí),要先使用#include命令包含該系統(tǒng)函數(shù)的原型語句所在的系統(tǒng)頭文件。對

錯(cuò)正確的答案是“對”。題目21函數(shù)形參變量不屬于局部變量。對錯(cuò)

正確的答案是“錯(cuò)”。題目22假定p所指對象的值為25,p+1所指對象的值為46,則*p++的值為46。對錯(cuò)

正確的答案是“錯(cuò)”題目23假定p所指對象的值為25,p+1所指對象的值為46,則*++p的值為25。對錯(cuò)

正確的答案是“錯(cuò)”。題目24假定p所指對象的值為25,p+1所指對象的值為46,則執(zhí)行*(p++)運(yùn)算后,p所指對象的值為46。對

錯(cuò)正確的答案是“對”。題目25假定a是一個(gè)指針數(shù)組,則a+i所指對象的地址比a地址大4*i字節(jié)。對

錯(cuò)正確的答案是“對”。題目26若要把一個(gè)整型指針p轉(zhuǎn)換為字符指針,則采用的強(qiáng)制轉(zhuǎn)換表達(dá)式為(char*)p。對

錯(cuò)正確的答案是“對”。題目27假定一個(gè)數(shù)據(jù)對象為int*類型,則指向該對象的指針類型仍為int*類型。對錯(cuò)

正確的答案是“錯(cuò)”。題目28假定x為一個(gè)簡單變量,則&x表示x的地址。對

錯(cuò)正確的答案是“對”。題目29若p指向x,則*p與x的值不同。對錯(cuò)

正確的答案是“錯(cuò)”。題目30NULL是一個(gè)符號常量,通常作為空指針值,它代表的值為0。對

錯(cuò)正確的答案是“對”。三、寫出下列每個(gè)程序運(yùn)行后的輸出結(jié)果(共20分,每小題4分)題目31#include<stdio.h>

intWF(intx,inty){

x=x+y;

y=x+y;

returnx+y;

}

voidmain(){

intx=5,y=7;

intz=WF(x,y);

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

}z=31z=31題目32

#include<stdio.h>

#include<string.h>

voidfun(charss[]);

voidmain(){

chars[15]="0123456789";

fun(s);

printf("%s\n",s);

}

voidfun(charss[]){

inti,n=strlen(ss);

for(i=0;i<n/2;i++){

charc=ss[i];

ss[i]=ss[n-1-i];

ss[n-1-i]=c;

}

}98765432109876543210題目33

#include<stdio.h>

intCount(inta[],intn,intx)

{

inti,c=0;

for(i=0;i<n;i++)

if(a[i]>x)c++;

returnc;

}

voidmain(){

inta[8]={20,15,32,47,24,36,28,70};

intb=Count(a,8,30);

printf("b=%d\n",b);

}B=4B=4題目34#include<stdio.h>

voidmain(){

inta[8]={3,5,7,9,2,3,4,8};

ints=0,*p;

for(p=a;p<a+8;)s+=*p++;

printf("s=%d\n",s);

}s=41s=41題目35#include<stdio.h>

intLA(int*a,intn,intx){

inti,s=0;

for(i=0;i<n;i++)

if(a[i]<x)s+=a[i];

returns;

}

voidmain(){

inta[8]={5,10,15,8,12,3,9,20};

intb=LA(a,5,10);

intc=LA(a+2,6,10);

printf("%d%d\n",b,c);

}13201320四、寫出下列每個(gè)函數(shù)的功能(共20分,每小題4分)題目36doubleSF(doublex,intn){

//n為正整數(shù)

doublep=1,s=1;

inti;

for(i=1;i<=n;i++){

p*=x;

s+=p;

}

returns;

}計(jì)算出1+x+x2+...+xn的值并返回計(jì)算出1+x+x2+...+xn的值并返回。題目37intSG(intx){

//x為大于等于2的整數(shù)

inti=2;

while(i*i<=x){

if(x%i==0)break;

i++;

}

if(i*i<=x)return0;elsereturn1;

}判斷x是否為一個(gè)質(zhì)數(shù)(素?cái)?shù)),若是則返回1,否則返回0判斷x是否為一個(gè)質(zhì)數(shù)(素?cái)?shù)),若是則返回1,否則返回0。題目38intWB(inta[],intn,intx){

for(inti=0;i<n;i++)

if(a[i]==x)return1;

return0;

}從數(shù)組a[n]中順序查找值為x的元素,若查找成功則返回1,否則返回0從數(shù)組a[n]中順序查找值為x的元素,若查找成功則返回1,否則返回0。題目39intfun(intm,intn){

intc=0;

staticintb=2;

if(m<b||n<b)returnm*n;

elseif(m%b==0&&n%b==0){c=b;returnc*fun(m/b,n/b);}

else{b++;returnfun(m,n);}

}一個(gè)遞歸函數(shù)過程,求出兩個(gè)自然數(shù)m和n的最小公倍數(shù)一個(gè)遞歸函數(shù)過程,求出兩個(gè)自然數(shù)m和n的最小公倍數(shù)。題目40intLK(doublea[],intn){

doubles=0;

inti,m=0;

for(i=0;i<n;i++)s+=a[i];

s/=n;

for(i=0;i<n;i++)

if(a[i]>=s)m++;

returnm;

}求出并返回?cái)?shù)組a的n個(gè)元素中大于等于平均值的元素個(gè)數(shù)求出并返回?cái)?shù)組a的n個(gè)元素中大于等于平均值的元素個(gè)數(shù)。一、選擇題(共30分,每小題2分)題目1假定有“structBOOK{chartitle[40];floatprice;};structBOOKbook;”,則不正確的語句為(

)。a.structBOOK*x=malloc(book);

b.structBOOKx={"C++Programming",27.0};c.structBOOK*x=malloc(sizeof(structBOOK));d.structBOOK*x=&book;正確答案是:structBOOK*x=malloc(book);題目2假定有“structBOOK{chartitle[40];floatprice;}book;”,則正確的語句為(

)。a.structBOOKx=&book;b.structBOOK*x=&book;

c.structBOOKx=calloc(BOOK);d.structBOOK*x=BOOK;正確答案是:structBOOK*x=&book;題目3在結(jié)構(gòu)類型的定義中,不同數(shù)據(jù)成員的定義項(xiàng)之間采用的分隔符是(

)。a.句點(diǎn)b.冒號c.分號

d.逗號正確答案是:分號題目4假定一個(gè)結(jié)構(gòu)類型的定義為“structA{inta,b;doublec;};”,則該類型的長度為(

)。a.8b.10c.12d.16

正確答案是:16題目5假定一個(gè)結(jié)構(gòu)類型的定義為“structD{inta;D*next;};”,則該類型的長度為(

)。a.4b.8

c.12d.16正確答案是:8題目6假定要訪問一個(gè)結(jié)構(gòu)指針變量x中的數(shù)據(jù)成員a,則表示方法為(

)。a.x.ab.x->a

c.x(a)d.x{a}正確答案是:x->a題目7與結(jié)構(gòu)成員訪問表達(dá)式等價(jià)的表達(dá)式為(

)。a.x->nameb.&x->namec.(&x)->name

d.(*x)->name正確答案是:(&x)->name題目8假定一個(gè)鏈表中結(jié)點(diǎn)的結(jié)構(gòu)類型為“structAA{intdata,structAA*next;};”,則next數(shù)據(jù)成員的類型為(

)。a.structAAb.structAA*

c.AAd.int正確答案是:structAA*題目9假定一個(gè)鏈表的表頭指針為f,結(jié)點(diǎn)中包含有data和next域,則向該鏈表的表頭插入一個(gè)地址為p的結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行的操作為(

)。a.p->next=fb.p->next=f和f=p

c.f=p->nextd.f->next=p和f=p正確答案是:p->next=f和f=p題目10標(biāo)準(zhǔn)輸入設(shè)備鍵盤的文件流標(biāo)識符是(

)。a.stdin

b.stdoutc.stderrd.stdio正確答案是:stdin題目11表示文件結(jié)束符的符號常量為(

)。a.eofb.Eofc.EOF

d.feof正確答案是:EOF題目12C語言中打開一個(gè)數(shù)據(jù)文件的系統(tǒng)函數(shù)為(

)。a.fgetc()b.fputc()c.fclose()d.fopen()

正確答案是:fopen()題目13從一個(gè)數(shù)據(jù)文件中讀入以換行符結(jié)束的一行字符串的系統(tǒng)函數(shù)為(

)。a.gets()b.fgets()

c.getc()d.fgetc()正確答案是:fgets()題目14向一個(gè)二進(jìn)制文件中寫入信息的函數(shù)fwrite()帶有的參數(shù)個(gè)數(shù)為(

)。a.1b.2c.3d.4

正確答案是:4題目15在C語言中,為只寫操作打開一個(gè)文本文件的方式為(

)。a."a"b."r+"c."r"d."w"

正確答案是:"w"二、判斷題(共40分,每小題2分。敘述正確則回答“是”,否則回答“否”)題目16在結(jié)構(gòu)類型的定義中,其中的數(shù)據(jù)成員可以是本身類型的直接對象。對錯(cuò)

正確的答案是“錯(cuò)”。題目17在結(jié)構(gòu)類型的定義中,允許出現(xiàn)結(jié)構(gòu)類型不完整的超前定義。對

錯(cuò)正確的答案是“對”。題目18定義結(jié)構(gòu)類型的變量時(shí),不能夠同時(shí)進(jìn)行初始化。對錯(cuò)

正確的答案是“錯(cuò)”。題目19使用一個(gè)結(jié)構(gòu)類型時(shí),必須一起使用關(guān)鍵字struct和類型標(biāo)識符。對

錯(cuò)正確的答案是“對”。題目20假定一個(gè)結(jié)構(gòu)類型的定義為“structA{inta,b;A*c;};”,則該類型的長度為12。對

錯(cuò)正確的答案是“對”。題目21假定一個(gè)結(jié)構(gòu)類型的定義為“structB{inta[5];char*b;};”,則該類型的長度為20。對錯(cuò)

正確的答案是“錯(cuò)”。題目22執(zhí)行calloc(n,8)函數(shù)調(diào)用時(shí),將動(dòng)態(tài)分配得到8*n個(gè)字節(jié)的存儲空間。對

錯(cuò)正確的答案是“對”。題目23執(zhí)行malloc(sizeof(structBB))函數(shù)調(diào)用時(shí),得到的動(dòng)態(tài)存儲空間能夠保存具有structBB結(jié)構(gòu)類型的一個(gè)對象。對

錯(cuò)正確的答案是“對”。題目24假定要訪問一個(gè)結(jié)構(gòu)對象x中的由a指針成員所指向的對象,則表示方法為x.a。對錯(cuò)

正確的答案是“錯(cuò)”。題目25假定要訪問一個(gè)結(jié)構(gòu)指針p所指對象中的b指針成員所指的對象,則表示方法為p->b。對錯(cuò)

正確的答案是“錯(cuò)”。題目26與結(jié)構(gòu)成員訪問表達(dá)式(*fp).score等價(jià)的表達(dá)式是fp->score。對

錯(cuò)正確的答案是“對”。題目27在C語言中,對二進(jìn)制文件的所有不同打開方式共有6種。對

錯(cuò)正確的答案是“對”。題目28C語言中的標(biāo)準(zhǔn)輸入和輸出設(shè)備文件都屬于字符文件。對

錯(cuò)正確的答案是“對”。題目29在一個(gè)磁盤數(shù)據(jù)文件的文件名中,文件主名和擴(kuò)展名都是必須的,不可省略。對錯(cuò)

正確的答案是“錯(cuò)”。題目30在數(shù)據(jù)文件打開方式字符串中,字符r、w和a具有確定的含義,分別代表讀、寫和追加方式。對

錯(cuò)正確的答案是“對”。題目31一個(gè)磁盤數(shù)據(jù)文件的文件名由文件主名和擴(kuò)展名所組成,其中間用圓點(diǎn)分開。對

錯(cuò)正確的答案是“對”。題目32C語言系統(tǒng)中提供一個(gè)用來描述文件屬性的類型標(biāo)識符為FILE。對

錯(cuò)正確的答案是“對”。題目33每次只能向文本文件中寫入一個(gè)字符,不能一次寫入一個(gè)字符串。對錯(cuò)

正確的答案是“錯(cuò)”。題目34對二進(jìn)制文件進(jìn)行讀和寫操作將使用相同的系統(tǒng)函數(shù)。對錯(cuò)

正確的答案是“錯(cuò)”。題目35在C語言中,系統(tǒng)函數(shù)fseek()用來移動(dòng)數(shù)據(jù)文件中的文件位置指針。對

錯(cuò)正確的答案是“對”。三、寫出下列每個(gè)程序運(yùn)行后的輸出結(jié)果(共15分,每小題5分)題目36#include<stdio.h>

structWorker{

charname[15];

//姓名

intage;

//年齡

floatpay;

//工資

};

voidmain(){

structWorkerx={"wanghua",52,4300};

structWorkery,*p;

y=x;p=&x;

printf("%s

%d

%6.2f\n",,y.age,p->pay);

}wanghua524300wanghua

52

4300題目37#include<stdio.h>

#include<string.h>

structWorker{

charname[15];

//姓名

intage;

//年齡

floatpay;

//工資

};

voidmain(){

structWorkerx;

char*t="liouting";

intd=38;floatf=3493;

strcpy(,t);

x.age=d;x.pay=f;

printf("%s

%d

%6.0f\n",,x.age,x.pay);

}liouting392493liouting

39

2493題目38#include<stdio.h>

structWorker{charname[15];intage;floatpay;};

intLess(structWorkerr1,structWorkerr2){

if(r1.age<r2.age)return1;elsereturn0;

}

voidmain(){

structWorkera[4]={{"abc",25,2420},{"def",58,4638},

{"ghi",49,4260},{"jkl",36,3750}};

structWorkerx=a[0];

inti;

for(i=1;i<4;i++)

if(Less(x,a[i]))x=a[i];

printf("%s

%d

%6.0f\n",,x.age,x.pay);

}def584638def

58

4638四、寫出下列每個(gè)函數(shù)的功能(共15分,每小題5分)題目39voidQA(structWorkera[],intn){

inti;

for(i=1;i<n;i++)

scanf("%s%d%f",&a[i].name,&a[i].age,&a[i].pay);

}

假定結(jié)構(gòu)類型structWorker的定義如下:

structWorker{charname[15];intage;floatpay;};從鍵盤輸入n個(gè)Worker類型的記錄到一維數(shù)組a中從鍵盤輸入n個(gè)Worker類型的記錄到一維數(shù)組a中。題目40intCount(structIntNode*f)

{

//f為指向一個(gè)單鏈表的表頭指針

intc=0;

while(f){

c++;

f=f->next;

}

returnc;

}

假定structIntNode的類型定義為:

structIntNode{intdata;IntNode*next;};統(tǒng)計(jì)出以表頭指針為f的鏈表中結(jié)點(diǎn)的個(gè)數(shù)統(tǒng)計(jì)出以表頭指針為f的鏈表中結(jié)點(diǎn)的個(gè)數(shù)。題目41voidxw1(char*fname){

FILE*fout=fopen(fname,"w");

chara[20];

printf("每個(gè)字符串長度小于20,字符串end作為結(jié)束標(biāo)志\n");

while(1){

scanf("%s",a);

if(strcmp(a,"end")==0)break;

fputs(a,fout);

fputc('\n',fout);

}

fclose(fout);

}把從鍵盤上輸入的若干個(gè)字符串保存到由fname參數(shù)所指定的文本文件中把從鍵盤上輸入的若干個(gè)字符串保存到由fname參數(shù)所指定的文本文件中。自測練習(xí)11.在C語言字符集中,包含有全部26個(gè)英文大寫字母和對應(yīng)的小寫字母。對

錯(cuò)正確的答案是“對”。題目2在C語言字符集中,一個(gè)大寫英文字母和它的小寫英文字母被視為不同的字符對

錯(cuò)正確的答案是“對”。題目3在C語言程序中,ABC和abc被作為同一標(biāo)識符使用對錯(cuò)

正確的答案是“錯(cuò)”。自測練習(xí)2在C語言中,保留字是有專門含義和作用的,不能作為一般標(biāo)識符使用對

錯(cuò)正確的答案是“對”。題目2在C語言中,作為標(biāo)識符的第一個(gè)字符只能是英文字母或下劃線,不能是數(shù)字字符。對

錯(cuò)正確的答案是“對”。題目3C語言中使用的字符常量,其起止標(biāo)記符是()。a.中括號

b.

雙引號c.

單引號d.尖括號正確答案是:單引號題目4C語言中使用的字符串常量,其起止標(biāo)記符是()。a.尖括號

b.單引號c.中括號d.雙引號正確答案是:雙引號自測練習(xí)3在C語言中,一條簡單語句的結(jié)束符是()。a.分號b.逗號

c.空格d.冒號正確答案是:分號題目2在C語言中,每條復(fù)合語句的開始標(biāo)記字符為()。a.

(

b.

{c.

[d.

<正確答案是:(題目3不符合C語言規(guī)定的復(fù)合語句是()。a.

{}

b.

{y=10}

c.

{;}d.

{x=0;}

正確答案是:{y=10}

題目4C語言中的選擇類語句有兩條,它們是()。a.

else和case

b.

if和switchc.

if和elsed.

switch和case正確答案是:if和switch自測練習(xí)4在每個(gè)C語言程序中都必須包含有這樣一個(gè)函數(shù),該函數(shù)的函數(shù)名為()。a.nameb.functionc.MAINd.main

正確答案是:main題目2C語言程序中的基本功能模塊為()。a.函數(shù)

b.表達(dá)式c.標(biāo)識符d.語句正確答案是:函數(shù)題目3一個(gè)函數(shù)定義所包含的兩個(gè)部分是()。a.

函數(shù)原型和函數(shù)體b.

函數(shù)名和參數(shù)表c.

函數(shù)頭和函數(shù)體

d.

函數(shù)頭和函數(shù)尾正確答案是:函數(shù)頭和函數(shù)體題目4

一個(gè)程序文件開始使用的每條預(yù)處理命令,其首字符必須是()。a.@b.#

c.%d.$正確答案是:#題目5在一個(gè)程序文件中,若要使用#include命令包含一個(gè)系統(tǒng)頭文件,則此頭文件所使用的起止定界符為一對()。a.尖括號

b.

花括號c.

單引號d.

雙引號正確答案是:尖括號題目6在一個(gè)函數(shù)定義中,函數(shù)體的格式是一條復(fù)合語句。對

錯(cuò)正確的答案是“對”。題目7一個(gè)函數(shù)必須返回一個(gè)值,不允許定義不返回任何值的函數(shù)。對錯(cuò)

正確的答案是“錯(cuò)”。題目8若要在程序文件中使用數(shù)學(xué)函數(shù),則需要引入的系統(tǒng)頭文件為math.h。對

錯(cuò)正確的答案是“對”。題目9若要在程序文件中使用標(biāo)準(zhǔn)輸入和輸出函數(shù),則需要引入的系統(tǒng)頭文件為stdio.h。對

錯(cuò)正確的答案是“對”。自測練習(xí)5在C語言程序中,單行或行尾注釋使用的標(biāo)記符為()。a.**b.*/

c.//d./*正確答案是://題目2在C語言程序中,多行注釋使用的結(jié)束標(biāo)記符為().a.//

b.*/c.**d./*正確答案是:*/題目3在程序文件中添加注釋內(nèi)容是為了增強(qiáng)程序的可讀性。對

錯(cuò)正確的答案是“對”。題目4在一行中出現(xiàn)多條語句時(shí),注釋語句只能為最后一條語句。對

錯(cuò)正確的答案是“對”。自測練習(xí)6用于輸出表達(dá)式值的標(biāo)準(zhǔn)輸出函數(shù)是()。a.

output()

b.

print()

c.

printf()d.

scanf()正確答案是:printf()題目2在printf()函數(shù)調(diào)用的格式字符串中,每個(gè)格式符的先導(dǎo)字符為()。a.$b.#

c.%d.@正確答案是:%題目3在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%d”,則對應(yīng)輸出的數(shù)據(jù)類型為()。a.

floatb.

int

c.

doubled.

char正確答案是:int題目4在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%f”,則對應(yīng)輸出的數(shù)據(jù)類型為()。a.

charb.

double

c.

intd.

float正確答案是:float題目5在printf()函數(shù)調(diào)用的格式字符串中,若使用格式符為“%5d”,則規(guī)定對應(yīng)輸出的數(shù)據(jù)占用的字符位置個(gè)數(shù)為()。a.3b.6c.4

d.5正確答案是:5題目6在利用printf()函數(shù)向屏幕輸出數(shù)據(jù)時(shí),需要在參數(shù)表的開始位置使用相應(yīng)的格式字符串。對錯(cuò)

正確的答案是“對”。題目7在“printf("%d-%d=%d",x,y,x-y);”語句所使用的格式字符串中,包含有3個(gè)格式符。對錯(cuò)正確的答案是“對”。題目8在執(zhí)行“printf("s=%s\n","abc");”語句時(shí),輸出結(jié)果為s=abc。對錯(cuò)

正確的答案是“對”。題目9在“printf("s=%c\n","abc");”語句中,格式符的使用同后面的輸出數(shù)據(jù)相適合。對錯(cuò)正確的答案是“錯(cuò)”。題目10在執(zhí)行“printf("%d-%d=%d",x,y,x-y);”語句時(shí),其輸出的前兩個(gè)數(shù)據(jù)值之間將采用逗號分開。對錯(cuò)正確的答案是“錯(cuò)”。自測練習(xí)7程序運(yùn)行中需要從鍵盤上輸入多于一個(gè)數(shù)據(jù)時(shí),若不特別規(guī)定分隔符,則輸入的各數(shù)據(jù)之間所使用的分隔符為()。a.

逗號或回車

b.

空格或回車c.

逗號或分號d.

空格或逗號正確答案是:空格或回車題目2用于從鍵盤上為變量輸入值的標(biāo)準(zhǔn)輸入函數(shù)是()。a.

scanf()b.

print()

c.

printf()正確答案是:scanf()題目3在scanf()函數(shù)調(diào)用的格式字符串中,每個(gè)格式符的先導(dǎo)字符為()。a.@b.$c.#

d.%正確答案是:%題目4在scanf()函數(shù)調(diào)用的格式字符串中,若使用格式字符串為“%d,%d”,則規(guī)定輸入的兩個(gè)數(shù)據(jù)之間的分隔符為()。a.%b.#c.$d.@

正確答案是:@題目5在利用scanf()函數(shù)從鍵盤輸入數(shù)據(jù)時(shí),需要在參數(shù)表的開始位置使用相應(yīng)的格式字符串。對

錯(cuò)正確的答案是“對”。題目6在“scanf("%d%d",&x,&y);”語句所使用的格式字符串中,包含有2個(gè)格式符。對

錯(cuò)正確的答案是“對”。題目7在執(zhí)行“scanf("%d%d",&x,&y);”語句時(shí),需要從鍵盤上輸入2個(gè)整數(shù)。對

錯(cuò)正確的答案是“對”。自測練習(xí)8C語言源程序文件的擴(kuò)展名為()。a.

cpp

b.

objc.cd.

exe正確答案是:c題目2每個(gè)C語言程序文件的編譯錯(cuò)誤的類型有()。a.2種

b.1種c.4種d.3種正確答案是:2種題目3每個(gè)C程序文件在編譯時(shí)可能出現(xiàn)有警告性錯(cuò)誤,其對應(yīng)的標(biāo)識符號為()。a.

error

b.

warningc.

warnd.

err正確答案是:warning題目4一個(gè)C語言程序只能夠包含一個(gè)程序源文件。對

錯(cuò)正確的答案是“錯(cuò)”。題目5一個(gè)C語言程序只能夠包含一個(gè)用戶頭文件。對

錯(cuò)正確的答案是“錯(cuò)”。題目6在C語言程序上機(jī)操作的過程中,編譯程序的操作步驟之后是連接操作。對

錯(cuò)正確的答案是“對”。單項(xiàng)選擇題。把合適的選項(xiàng)編號填寫在括號內(nèi)。(每小題3分,共42分)答案:1.D2.C3.D4.C5.B6.B7.B8.C9.D10.A11.B12.B13.A14.D1.在C語言中,每條復(fù)合語句的結(jié)束標(biāo)記字符為()。A.]B.)C.>D.}2.在C語言程序中,單行或行尾注釋語句使用的標(biāo)記符為()。A.*/B./*C.//D.**3.C語言源程序文件的擴(kuò)展名為()。A.cppB.exeC.objD.c4.控制字符'\n'表示()。A.回車B.響鈴C.換行D.換頁5.運(yùn)算符優(yōu)先級最高的是()。A.==B.+C.&&D.||6.x<=10的相反表達(dá)式為()。A.x>=10B.x>10C.x!=10D.x>07.每次先進(jìn)行循環(huán)條件的判斷,然后再執(zhí)行循環(huán)體的語句為()。A.for和doB.for和whileC.while和doD.switch和break8.假定對二維數(shù)組a[3][4]進(jìn)行初始化的數(shù)據(jù)為{{3,5,6},{2,8},{7}},則a[1][1]被初始化為()。A.6B.2C.8D.79.對于一個(gè)二維字符數(shù)組a[M][N],存儲每個(gè)字符串的長度至多為()。A.MB.NC.M-1D.N-110.假定p所指對象的值為25,p+1所指對象的值為42,則表達(dá)式*p++的值為()。A.25B.42C.26D.4311.已知“inta[6][5];”,則元素a[2][4]的地址比該數(shù)組的首地址大()。A.14個(gè)字節(jié)B.56個(gè)字節(jié)C.28個(gè)字節(jié)D.96個(gè)字節(jié)12.在C語言中,用戶定義的標(biāo)識符分為4種作用域,下列選項(xiàng)中不屬于這4種作用域的是()。A.全局B.語句C.文件D.局部13.在一個(gè)鏈表中,每個(gè)結(jié)點(diǎn)必然存在著一個(gè)指向自身結(jié)點(diǎn)類型的指針域,用來保存下一個(gè)結(jié)點(diǎn)的()。A.地址B.值C.名稱D.類型14.在C語言中,為只寫操作打開一個(gè)文本文件的方式為()。A."a"B."r+"C."r"D."w"是非判斷題。根據(jù)敘述正確與否在其后面的括號內(nèi)打?qū)μ枴啊獭被虿嫣枴啊痢薄?每小題2分,共30分)答案:1.√2.×3.×4.√5.×6.×7.√8.√9.√10.×11.√12.×13.√14.×15.×1.在C語言中,保留字是有專門含義和作用的,不能作為一般標(biāo)識符使用。()2.在C語言程序上機(jī)操作的過程中,編譯程序的操作步驟之后是運(yùn)行操作。()3.在一條變量定義語句中,可以同時(shí)定義不同類型的變量。()4.表達(dá)式x=x+y表示成復(fù)合賦值表達(dá)式為x+=y。()5.若x=5,y=10,則x<=y的邏輯值為假。()6.do-while循環(huán)語句的循環(huán)體,只能是復(fù)合語句,不能是簡單語句。()7.在一維數(shù)組的定義語句中,數(shù)組名前為元素類型關(guān)鍵字。()8.假定二維數(shù)組的定義語句為“doublea[M][N];”,則每個(gè)數(shù)組元素的列下標(biāo)取值范圍在0~N-1之間。()9.一個(gè)二維字符數(shù)組a[10][20]中存儲每個(gè)字符串的最大長度為19。()10.假定a是一個(gè)一維數(shù)組,則表達(dá)式*(a+i)所對應(yīng)的元素為a[i-1]。()11.進(jìn)行動(dòng)態(tài)存儲分配的calloc()函數(shù)帶有兩個(gè)參數(shù)。()12.對于標(biāo)識為static屬性的變量,若沒有對它進(jìn)行初始化,則默認(rèn)的初值為1。()13.在C語言中,一個(gè)結(jié)構(gòu)類型的長度等于所含的所有數(shù)據(jù)成員類型的長度之和。()14.在結(jié)構(gòu)成員訪問運(yùn)算符中,點(diǎn)運(yùn)算符和箭頭運(yùn)算符的左邊均為結(jié)構(gòu)變量。()15.當(dāng)向字符文件輸出一個(gè)換行符時(shí),實(shí)際將輸出的是回車符或換行符。()三、程序填空題。分析程序后把合適的內(nèi)容填寫在括號內(nèi)。(每小題5分,共30分)1.執(zhí)行下面程序的輸出結(jié)果為(w=8)。#include<stdio.h>voidmain(){intx=5,y=8,z=6,w=0;if(x>=y)w=x;elsew=y;if(w<z)w=z;printf("w=%d\n",w);}2.執(zhí)行下面程序的輸出結(jié)果為(y=55)。#include<stdio.h>voidmain(){intn=0,y=0;while(n<10){n++;y+=n;}printf("y=%d\n",y);}3.執(zhí)行下面程序的輸出結(jié)果為(36)。#include<stdio.h>voidmain(){inta[8]={12,15,20,8,5,9,16,10};inti,j,x=a[0]+a[1];for(i=0;i<8;i++)for(j=i+1;j<8;j++)if(a[i]+a[j]>x)x=a[i]+a[j];printf("%d",x);}4.執(zhí)行下面程序的輸出結(jié)果為(x=7)。#include<stdio.h>voidmain(){inta[8]={10,8,16,15,9,21,7,16};inti,x=a[0];for(i=1;i<8;i++)if(a[i]<x)x=a[i];printf("x=%d\n",x);}四、編程題。按題目要求編寫程序或函數(shù)。(每小題4分,共8分)1.補(bǔ)充完整下面的函數(shù)定義,利用for循環(huán)計(jì)算1+21+22+…+2n的值,最后返回計(jì)算結(jié)果。假定計(jì)數(shù)變量用i表示,每次累乘2的變量用p表示,每次累加一個(gè)數(shù)據(jù)項(xiàng)值的變量用sum表示。intFF(intn){inti,p=1,sum=1;//在下面一行的后面補(bǔ)上for循環(huán)語句的語句體for(i=1;i<=n;i++)_____________________________returnsum;}答案1.{p*=2;sum+=p;}2.根據(jù)函數(shù)原型“intDD(inta[],intn,intMM)”編寫函數(shù)定義,利用雙重for循環(huán)統(tǒng)計(jì)出數(shù)組a[n]中任何兩個(gè)不同元素的值等于MM值的配對個(gè)數(shù),然后返回統(tǒng)計(jì)結(jié)果。如假定a[i]+a[j]等于MM,同時(shí)i≠j,則為一個(gè)配對。intDD(inta[],intn,intMM){inti,j,c=0;//用i和j作為循環(huán)變量,用c作為統(tǒng)計(jì)變量//在下面補(bǔ)充一個(gè)雙重for循環(huán)語句returnc;}答案:2.for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[i]+a[j]==MM)c++;一、單選題1.在每個(gè)C++程序中都必須包含有這樣一個(gè)函數(shù),該函數(shù)的函數(shù)名為(A)。A.mainB.MAINC.nameD.function2.設(shè)x和y均為bool量,則x&&y為真的條件是(D)。A.其中一個(gè)為假B.其中一個(gè)為真C.它們均為假D.它們均為真3.邏輯表達(dá)式x>0||y==5的相反表達(dá)式為(B)。A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==54.假定p是一個(gè)指向float型數(shù)據(jù)的指針,則p+1所指數(shù)據(jù)的地址比p所指數(shù)據(jù)的地址大(C)個(gè)字節(jié)。A.1B.2C.4D.85.枚舉類型中的每個(gè)枚舉常量的值都是一個(gè)(A)。A.整數(shù)B.浮點(diǎn)數(shù)C.字符D.邏輯值6.循環(huán)體至少被執(zhí)行一次的語句為(C)語句。A.for循環(huán)B.while循環(huán)C.do循環(huán)D.任一種循環(huán)7.在下面的字符數(shù)組定義中,(D)語句有語法錯(cuò)誤。A.chara[20]=”abcdefg”;B.chara[]=”x+y=55.”;C.chara[15]={’1’,’2’};D.chara[10]=’5’;8.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是(A)。A.數(shù)組的首地址B.數(shù)組中第一個(gè)元素的值C.數(shù)組全部元素的值D.數(shù)組元素的個(gè)數(shù)9.假定AB為一個(gè)類,則執(zhí)行“ABa(4),b[5],*p[2];”語句時(shí),自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為(A)。A.6B.7C.9D.1110.當(dāng)使用fstream流類定義一個(gè)流對象并打開一個(gè)磁盤文件時(shí),文件的隱含打開方式為(D)。A.ios::inB.ios::outC.ios::in|ios::outD.沒有11.枚舉類型中的每個(gè)枚舉常量的值都是一個(gè)(A)值。A.整數(shù)B.浮點(diǎn)數(shù)C.字符D.邏輯12.設(shè)x和y均為bool量,則邏輯表達(dá)式x||y為假的條件是(C)。A.它們均為真B.其中一個(gè)為真C.它們均為假

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論