國家開放大學(xué)C語言程序設(shè)計期末復(fù)習(xí)資料_第1頁
國家開放大學(xué)C語言程序設(shè)計期末復(fù)習(xí)資料_第2頁
國家開放大學(xué)C語言程序設(shè)計期末復(fù)習(xí)資料_第3頁
國家開放大學(xué)C語言程序設(shè)計期末復(fù)習(xí)資料_第4頁
國家開放大學(xué)C語言程序設(shè)計期末復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計課程模擬試卷一、單項選擇題。把合適的選項編號填寫在括號內(nèi)。(每小題3分,共42分)1.在C語言中,每條復(fù)合語句的結(jié)束標(biāo)記字符為(D)。A.]B.)C.>D.}2.在C語言程序中,單行或行尾注釋語句使用的標(biāo)記符為(C)。A.*/B./*C.//D.**3.C語言源程序文件的擴展名為(D)。A.cppB.exeC.objD.c4.控制字符'\n'表示(C)。A.回車B.響鈴C.換行D.換頁5.運算符優(yōu)先級最高的是(B)。A.==B.+C.&&D.||6.x<=10的相反表達式為(B)。A.x>=10B.x>10C.x!=10D.x>07.每次先進行循環(huán)條件的判斷,然后再執(zhí)行循環(huán)體的語句為(B)。A.for和doB.for和whileC.while和doD.switch和break8.假定對二維數(shù)組a[3][4]進行初始化的數(shù)據(jù)為{{3,5,6},{2,8},{7}},則a[1][1]被初始化為(C)。A.6B.2C.8D.79.對于一個二維字符數(shù)組a[M][N],存儲每個字符串的長度至多為(D)。A.MB.NC.M-1D.N-110.假定p所指對象的值為25,p+1所指對象的值為42,則表達式*p++的值為(A)。A.25B.42C.26D.4311.已知“inta[6][5];”,則元素a[2][4]的地址比該數(shù)組的首地址大(B)。A.14個字節(jié)B.56個字節(jié)C.28個字節(jié)D.96個字節(jié)12.在C語言中,用戶定義的標(biāo)識符分為4種作用域,下列選項中不屬于這4種作用域的是(B)。A.全局B.語句C.文件D.局部13.在一個鏈表中,每個結(jié)點必然存在著一個指向自身結(jié)點類型的指針域,用來保存下一個結(jié)點的(A)。A.地址B.值C.名稱D.類型在C語言中,為只寫操作打開一個文本文件的方式為(D)。"a"B."r+"C."r"D."w"二、是非判斷題。根據(jù)敘述正確與否在其后面的括號內(nèi)打?qū)μ枴啊獭被虿嫣枴啊痢薄?每小題2分,共30分)1.在C語言中,保留字是有專門含義和作用的,不能作為一般標(biāo)識符使用。(√)2.在C語言程序上機操作的過程中,編譯程序的操作步驟之后是運行操作。(×)3.在一條變量定義語句中,可以同時定義不同類型的變量。(×)4.表達式x=x+y表示成復(fù)合賦值表達式為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];”,則每個數(shù)組元素的列下標(biāo)取值范圍在0~N-1之間。(√)9.一個二維字符數(shù)組a[10][20]中存儲每個字符串的最大長度為19。(√)10.假定a是一個一維數(shù)組,則表達式*(a+i)所對應(yīng)的元素為a[i-1]。(×)11.進行動態(tài)存儲分配的calloc()函數(shù)帶有兩個參數(shù)。(√)12.對于標(biāo)識為static屬性的變量,若沒有對它進行初始化,則默認(rèn)的初值為1。(×)13.在C語言中,一個結(jié)構(gòu)類型的長度等于所含的所有數(shù)據(jù)成員類型的長度之和。(√)14.在結(jié)構(gòu)成員訪問運算符中,點運算符和箭頭運算符的左邊均為結(jié)構(gòu)變量。(×)15.當(dāng)向字符文件輸出一個換行符時,實際將輸出的是回車符或換行符。(×)三、程序填空題。分析程序后把合適的內(nèi)容填寫在括號內(nèi)。(每小題5分,共20分)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.補充完整下面的函數(shù)定義,利用for循環(huán)計算1+21+22+…+2n的值,最后返回計算結(jié)果。假定計數(shù)變量用i表示,每次累乘2的變量用p表示,每次累加一個數(shù)據(jù)項值的變量用sum表示。intFF(intn){inti,p=1,sum=1;//在下面一行的后面補上for循環(huán)語句的語句體for(i=1;i<=n;i++)____{p*=2;sum+=p;}_____returnsum;}2.根據(jù)函數(shù)原型“intDD(inta[],intn,intMM)”編寫函數(shù)定義,利用雙重for循環(huán)統(tǒng)計出數(shù)組a[n]中任何兩個不同元素的值等于MM值的配對個數(shù),然后返回統(tǒng)計結(jié)果。如假定a[i]+a[j]等于MM,同時i≠j,則為一個配對。intDD(inta[],intn,intMM){inti,j,c=0;//用i和j作為循環(huán)變量,用c作為統(tǒng)計變量//在下面補充一個雙重for循環(huán)語句for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[i]+a[j]==MM)c++;returnc;}一、單選題(每小題2分,共20分)1.在每個C語言程序中都必須包含有這樣一個函數(shù),該函數(shù)的函數(shù)名為(

A.main)。2.每個C語言程序文件的編譯錯誤分為(

B.2

)類。3.字符串"a+b=12\n"的長度為(B.7

)。4.

在switch語句的每個case塊中,假定都是以break語句結(jié)束的,則此switch語句容易被改寫為(B.if

)語句。5.在下面的do-while循環(huán)語句中,其循環(huán)體語句被執(zhí)行的次數(shù)為(

D.10

)。

inti=0;doi++;while(i<10);6.將兩個字符串連接起來組成一個字符串時,選用的函數(shù)為(

C.strcat()

)。

7.若用數(shù)組名作為函數(shù)調(diào)用的實參,傳遞給形參的是(A.數(shù)組的首地址

)。8.假定a為一個整數(shù)類型的數(shù)組名,整數(shù)類型的長度為4,則元素a[4]的地址比a數(shù)組的首地址大(

C.16

)個字節(jié)。9.假定s被定義為指針類型char*的變量,初始指向的字符串為"Helloworld!",若要使變量p指向s所指向的字符串,則p應(yīng)定義為(

A.char*p=s;

)。10.從一個數(shù)據(jù)文件中讀入以換行符結(jié)束的一行字符串的函數(shù)為(

D.fgetc()

)。

二、填空題(每小題2分,共26分)11.C語言中的每條簡單語句以分號作為結(jié)束符。12.C程序中的所有預(yù)處理命令均以#字符開頭。13.當(dāng)不需要函數(shù)返回任何值時,則應(yīng)使用void標(biāo)識符來定義函數(shù)類型。14.十進制數(shù)25表示成符合C語言規(guī)則的十六進制數(shù)為0x19。15.假定不允許使用邏輯非操作符,則邏輯表達式a>b||b==5的相反表達式為a<=b&&b!=516.執(zhí)行“typedefintDataType;”語句后,在使用int定義整型變量的地方也可以使用DataType來定義整型變量。17.假定一維數(shù)組的定義語句為“char*a[8];”,則該數(shù)組a所占存儲空間的字節(jié)數(shù)為32。18.假定二維數(shù)組的定義語句為“doublea[M][N];”,則該數(shù)組a的列下標(biāo)的取值范圍在0到N-1之間。19.存儲一個空字符串需要占用1個字節(jié)。20.strcpy函數(shù)用于把一個字符串拷貝復(fù)制到另一個字符數(shù)組空間中。程序的編譯單位是一個程序文件。假定a是一個一維數(shù)組,則a[i]的指針訪問方式為*(a+i)。

23.執(zhí)行int*p=malloc(sizeof(int))操作得到的一個動態(tài)分配的整型對象為*p。三、寫出下列每個程序運行后的輸出結(jié)果(每小題6分,共30分)24.#include<stdio.h>

voidmain()

{

intx=5;

switch(2*x){

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

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

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

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

}

printf("%d\n",4*x);

}答案解釋:152025.#include<stdio.h>

voidmain(){

intf1,f2,i;

f1=1;

printf("%d",f1);

for(i=2;i<5;i++){

f2=3*f1+i;

printf("%d",f2);

f1=f2;

}

printf("\n");

}答案解釋:151858#include<stdio.h>

#defineN8

voidmain(){

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

inti,i1=0,i2=0;

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

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

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

}答案解釋:4427.#include<stdio.h>

#include<string.h>

voidmain(){

chars[15]="5678912340";

inti,n=strlen(s);

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

charc=s[i];

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

s[n-1-i]=c;

}

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

}答案解釋:043219876528.#include<stdio.h>

intLB(int*a,intn){

inti,s=1;

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

returns;

}

voidmain(){

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

intb=LB(a,4)+LB(a+3,4);

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

}答案解釋:b=104

四、根據(jù)下列每個函數(shù)回答相應(yīng)問題(每小題6分,共12分)29.voidSF(intx){

//n為大于等于0的整數(shù)

inti=2;

while(x>i){

if(x%i==0)printf("%d",i);

i++;

}

printf("\n");

}

假定使用SF(70)調(diào)用該函數(shù),則輸出的所有整數(shù)依次為__________________。答案解釋:257101435

30.voidQC(structIntNode*f){

//f為一個單鏈表的表頭指針

while(f){

printf("%d",f->data);

f=f->next;

}

}

假定結(jié)構(gòu)類型IntNode的定義為:

structIntNode{intdata;structIntNode*next;};

該函數(shù)的功能為:答案解釋:遍歷并輸出由表頭指針f所指向的單鏈表中每個結(jié)點的data域的值。五、按題目要求編寫程序(每小題6分,共12分)31.編寫一個程序,首先從鍵盤上輸入10個整數(shù)到一維數(shù)組a[10]中,然后按照下標(biāo)從大到小的次序輸出數(shù)組a[10]中的所有元素值。假定數(shù)組a[10]和循環(huán)變量i均在主函數(shù)中定義。答案解釋:#include<stdio.h>

//1分

voidmain()

{

inta[10],i;

//2分

printf("從鍵盤輸入10個整數(shù):\n");

for(i=0;i<10;i++)scanf("%d",&a[i]);

//4分

for(i=9;i>=0;i--)printf("%d",a[i]);

//6分

printf("\n");

}

注:&a[i]也可改寫為a+i

編寫一個程序,已知6≤a≤50,10≤b≤30,求出滿足不定方程3a+2b=120的全部整數(shù)組解。如(20,30)就是其中的一組解。答案解釋:#include<stdio.h>

//1分

voidmain()

{

inta,b;

//2分

for(a=6;a<=50;a++)

//3分

for(b=10;b<=30;b++)

//4分

if(3*a+2*b==120)printf("(%d,%d)\n",a,b);//6分

}C語言程序中的基本功能模塊為(

函數(shù))。邏輯表達式(x>0||y==5)的相反表達式為(

x<=0&&y!=5)。循環(huán)體至少被執(zhí)行一次的循環(huán)語句為(

do-while

)。假定n的值為5,則表達式n++的值為(

5)。假定一個二維數(shù)組a的定義為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[2][0]的值為(

0)。假定一個函數(shù)原型為“char*func(intn)”,則該函數(shù)的返回值類型為(

char*

)。假定a為一個數(shù)組名,則元素a[i]的指針訪問方式為(

*(a+i)

)。

假定有語句為“int*p=calloc(n+1,sizeof(int));”,則p所指向的動態(tài)數(shù)組中所包含的元素個數(shù)為(

n+1

)。十進制數(shù)65表示成符合C語言規(guī)定的八進制數(shù)為

(

0101

)。若要以讀和寫兩種操作方式打開一個二進制文件,當(dāng)文件不存在時返回打開失敗信息,則選用的打開方式字符串為(

"rb+"

)。

在一個C語言程序文件中,若要包含另外一個頭文件或程序文件,則應(yīng)使用的預(yù)處理命令為#include。用于從鍵盤上為變量輸入值的標(biāo)準(zhǔn)輸入函數(shù)的函數(shù)名為(scanf)假定一個枚舉類型的定義為“enumRA{ab,ac,ad,ae};”,則ac的值為(1).double類型的長度為(8).執(zhí)行“intx=45,y=16;printf("%d",x/y);”語句序列后得到的輸出結(jié)果為:(2).把表達式x=x+y轉(zhuǎn)換成復(fù)合賦值表達式為(x+=y)假定x的值為5,則執(zhí)行“a=(!x?10:20);”語句后a的值為(20).假定一維字符指針數(shù)組a的定義為“char*a[8];”,則該數(shù)組占用的存儲空間的字節(jié)數(shù)為(32).假定二維數(shù)組的定義為“doublea[M][N];”,則數(shù)組元素的行下標(biāo)取值范圍在(

0~M-1)之間。空字符串的長度為(0).若p指向x,則(*p)與x的表示是等價的。直接訪問表達式(*fp).score所對應(yīng)的間接訪問表達式為(fp->score)寫出下列每個程序運行后的輸出結(jié)果(每小題6分,共30分)24.#include<stdio.h>

voidmain(){

inti,j,k=0;

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

for(j=i;j<5;j++)k++;;

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

}答案解釋:15#include<stdio.h>

voidmain(){

intx=28;

inti=2;

while(i<x){

if(x%i==0){printf("%d",i);x/=i;}

i++;

}

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

}答案解釋:272#include<stdio.h>

voidmain(){

inta[8]={76,63,54,95,40,75,90,82};

inti,s=0;

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

if(a[i]>=70&&a[i]<=85)s+=a[i];

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

}答案解釋:s=233#include<stdio.h>

intWF(intx,inty){

x=x+y;

y+=x;

returnx+y;

}

voidmain(){

intx=5,y=8;

printf("%d\n",WF(x,y));

}答案解釋:34#include<stdio.h>

intLA(int*a,intn){

inti,s=0;

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

returns;

}

voidmain(){

inta[5]={4,2,3,6,5};

intb=LA(a,5)+LA(a+2,3);

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

}答案解釋:b=34intWC(inta[],intn,intk){

inti,c=0;

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

if(a[i]>=k)c++;

returnc;

}

函數(shù)功能:答案解釋:統(tǒng)計并返回一維整型數(shù)組a[n]中大于等于k的值的個數(shù)。voidQA(structWorkera[],intn)

{

inti;

for(i=0;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;};

函數(shù)功能:答案解釋:從鍵盤上為具有structWorker結(jié)構(gòu)類型的數(shù)組a[n]輸入n個記錄。按題目要求編寫函數(shù)(每小題6分,共12分)根據(jù)函數(shù)原型“doubleMean(doublea[M][N],intm,intn)”,編寫函數(shù)定義,要求返回二維數(shù)組a[m][n]中所有元素的平均值。假定在計算過程中采用變量v存放累加值和最后的平均值。答案解釋:doubleMean(doublea[M][N],intm,intn)

{

inti,j;

doublev=0.0;

//1分

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

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

//4分

v/=m*n;

returnv;

//6分

}

//注:函數(shù)體的最后兩行可以合并為一條返回語句:returnv/=m*n32.根據(jù)函數(shù)原型“intMM(inta[],intm)”,編寫函數(shù)定義,計算并返回數(shù)組a[m]中元素最大值和最小值之差。答案解釋:intMM(inta[],intm)

{

inti,x1,x2;

x1=x2=a[0];

//1分

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

//2分

if(a[i]>x1)x1=a[i];

//3分

if(a[i]<x2)x2=a[i];

//4分

}

//5分

returnx1-x2;

//6分

}C語言程序設(shè)計課程期末練習(xí)題一、單項選擇題。把合適的選項編號填寫在括號內(nèi)。1.不符合C語言規(guī)定的復(fù)合語句是()。DA.{}B.{;}C.{x=0;}D.{y=10}2.C語言中的選擇類語句有兩條,它們是()。AA.if和switchB.if和elseC.switch和caseD.else和case3.在每個C語言程序中都必須包含有這樣一個函數(shù),該函數(shù)的函數(shù)名為()。AA.mainB.MAINC.nameD.function4.在C語言程序中,多行注釋語句使用的開始標(biāo)記符為()。BA.//B./*C.*/D.**5.用于輸出表達式值的標(biāo)準(zhǔn)輸出函數(shù)是()。CA.scanf()B.print()C.printf()D.output()6.在printf()函數(shù)調(diào)用的格式字符串中,每個格式符的先導(dǎo)字符為()。BA.#B.%C.$D.@7.由C語言源程序文件編譯而成的目標(biāo)文件的擴展名為()。CA.cppB.exeC.objD.C8.由C語言目標(biāo)文件連接而成的可執(zhí)行文件的擴展名為()。BA.cppB.exeC.objD.c9.每個C程序文件在編譯時可能出現(xiàn)有警告性錯誤,其對應(yīng)的標(biāo)識符號為()。AA.warningB.errorC.warnD.err10.在C語言中,表示換行符的轉(zhuǎn)義字符為()。CA.\fB.\rC.\nD.\m11.字符串“a+b=12\n”的長度為()。BA.6B.7C.8D.912.要定義a和b為兩個整型變量,則使用的定義語句為()。BA.inta;b;B.inta,b;C.intab;D.inta:b;13.下列數(shù)值中最大值是()。CA.28/8B.35/13C.28%8D.35%514.下列數(shù)值中最小值是()。DA.28/8B.35/3C.28%8D.35%315.已知x的初值為5,則下列各表達式中的最大值為()。DA.x%=3B.x+=10C.x/=2D.x*=416.x>5的相反表達式為()。DA.x<5B.x!=5C.x>=5D.x<=517.當(dāng)處理問題時的循環(huán)次數(shù)是確定的,則采用的最合適的循環(huán)方式為()。AA.forB.whileC.do-whileD.switch18.循環(huán)體至少被執(zhí)行一次的循環(huán)語句為()。CA.forB.whileC.do-whileD.任一種19.流程控制類語句包括的3類語句為()。AA.選擇、循環(huán)、跳轉(zhuǎn)B.選擇、循環(huán)、輸入C.選擇、輸入、輸出D.循環(huán)、選擇、函數(shù)20.在下列的語句中,必須以分號作為結(jié)束的語句是()。CA.forB.whileC.doD.switch21.在一個數(shù)組中,數(shù)組元素a[i]前面的元素個數(shù)為()。AA.iB.i+1C.i-1D.2*i22.假定二維數(shù)組的定義語句為“inta[3][5];”,則該數(shù)組所含元素的個數(shù)為(B)。A.8B.15C.10D.1223.假定二維數(shù)組的定義語句為“chara[M][N];”,則該數(shù)組所含元素的個數(shù)為(C)。A.(M-1)*(N-1)B.M*N-1C.M*ND.M*N+124.假定二維數(shù)組的定義語句為“int*a[3][5];”,則該數(shù)組所占用的存儲空間的字節(jié)數(shù)為()。DA.120B.15C.30D.6025.若需要求出一個字符串的長度,則選用的函數(shù)是()。AA.strlenB.strcmpC.strcatD.strcpy26.將兩個字符串連接起來組成一個字符串時,選用的函數(shù)是()。CA.strlenB.strcapC.strcatD.strcmp27.若需要把一個字符串賦給字符數(shù)組,則選用的函數(shù)是()。DA.strlenB.strcmpC.strcatD.strcpy28.假定p所指對象的值為25,p+1所指對象的值為42,則表達式*++p的值為(B)。A.25B.42C.26D.4329.若p指向x,則與x的等價表示為()。BA.pB.*pC.*xD.&x30.假定a為一個字符數(shù)組名,則元素a[8]的地址比該數(shù)組的首地址大()。BA.4個字節(jié)B.8個字節(jié)C.16個字節(jié)D.32個字節(jié)31.下面的保留字不能作為函數(shù)返回類型的是()。CA.voidB.intC.sizeofD.long32.若一個函數(shù)聲明為“double*function();”,則該函數(shù)的返回值類型為(B)。A.實數(shù)型B.實數(shù)指針型C.函數(shù)指針型D.數(shù)組型33.在下面的函數(shù)聲明語句中存在著語法錯誤的是()。CA.AA(inta,intb)B.AA(int,int)C.AA(inta;intb)D.AA(inta,int)34.函數(shù)定義參數(shù)表中的每個形參變量,其作用域范圍為所在的整個()。CA.程序B.文件C.函數(shù)D.參數(shù)表35.在函數(shù)體中定義的變量具有()。BA.全局作用域B.局部作用域C.文件作用域D.函數(shù)作用域36.在結(jié)構(gòu)類型的定義中,使用的關(guān)鍵字是()。AA.structB.unionC.staticD.enum37.假定一個鏈表中結(jié)點的結(jié)構(gòu)類型為“structAA{intdata,structAA*next;};”,則next數(shù)據(jù)成員的類型為()。BA.structAAB.structAA*C.AAD.int38.標(biāo)準(zhǔn)輸入設(shè)備鍵盤的文件流標(biāo)識符是()。AA.stdinB.stdoutC.stderrD.stdio39.標(biāo)準(zhǔn)輸出設(shè)備顯示器的文件流標(biāo)識符是()。BA.stdinB.stdoutC.stderrD.stdio40.從一個文本文件中讀取一個字符的系統(tǒng)函數(shù)為()。DA.fputc()B.fgets()C.fputs()D.fgetc()41.向一個文本文件中寫入一個字符的系統(tǒng)函數(shù)為()。AA.fputc()B.fgets()C.fputs()D.fgetc()42.從一個二進制文件中讀取數(shù)據(jù)的系統(tǒng)函數(shù)為()。AA.fread()B.fgets()C.fwrite()D.fgetc()43.C語言中使用的字符常量,其起止標(biāo)記符是()。AA.單引號B.雙引號C.中括號D.尖括號44.一個程序文件開始使用的每條預(yù)處理命令,其首字符必須是()。BA.@B.#C.$D.%45.在scanf()函數(shù)調(diào)用的格式字符串中,每個格式符的先導(dǎo)字符為()。BA.#B.%C.$D.@46.控制字符'\n'表示()。DA.回車B.響鈴C.換頁D.換行47.運算符優(yōu)先級最高的是()。AA.()B.=C.+D.<48.設(shè)x和y均為邏輯值,則x&&y為真的條件是()。AA.它們均為真B.其中一個為真C.它們均為假D.其中一個為假49.若n的值為10,則執(zhí)行“for(i=1;i<n;i++)S;”語句的過程中,表達式i=1共被執(zhí)行的次數(shù)為()。AA.1B.n-1C.nD.n+150.假定對二維數(shù)組a[3][4]進行初始化的數(shù)據(jù)為{{3,5,6},{2,8},{7}},則a[1][1]被初始化為()。DA.6B.2C.7D.851.對于一個長度為n的字符串,保存它至少需要占用的存儲字節(jié)數(shù)為()。CA.nB.n-1C.n+1D.n+252.一個指針類型的簡單變量占用內(nèi)存中的字節(jié)數(shù)為()。BA.2B.4C.8D.1653.已知“chara[3][5];”,則元素a[2][3]的地址比該數(shù)組的首地址大()。AA.13個字節(jié)B.26個字節(jié)C.52個字節(jié)D.48個字節(jié)54.在C語言中,用戶定義的標(biāo)識符分為4種作用域,下列選項中不屬于這4種作用域的是()。BA.全局B.語句C.文件D.局部55.假定要訪問一個結(jié)構(gòu)指針變量x中的數(shù)據(jù)成員a,則表示方法為()。BA.x.aB.x->aC.x(a)D.x{a}56.在C語言中,關(guān)閉一個數(shù)據(jù)文件的系統(tǒng)函數(shù)為()。BA.fopen()B.fclose()C.fread()D.fwrite()57.int類型的長度為()。CA.1B.2C.4D.858.一個程序文件開始使用的每條預(yù)處理命令,其首字符必須是()。BA.@B.#C.$D.%假定p是一個指向數(shù)據(jù)對象的指針,則通過p表示該數(shù)據(jù)對象為()。Dp*B.p&C.&pD.*p已知“inta[3][5];”,則元素a[2][3]的地址比該數(shù)組的首地址大()。BA.13個字節(jié)B.52個字節(jié)C.26個字節(jié)D.48個字節(jié)61.假定一個函數(shù)的數(shù)組參數(shù)說明為chara[],與之等價的指針參數(shù)說明為(B)。A.charaB.char*aC.char&aD.char**a62.要訪問一個結(jié)構(gòu)變量x中的由指針成員a所指向的對象,則表示方法為()。DA.x->aB.x.aC.*(a.x)D.*(x.a)63.p所指對象的值為25,p+1所指對象的值為42,則表達式*p++的值為()。AA.25B.42C.26D.43假定a為一個數(shù)組名,則下面表達式中錯誤的是()。BA.a[i]B.*a++C.*aD.*(a+1)65.假定一個函數(shù)的原型語句為“intff(int*x);”,一個整型數(shù)組為a[20],則下面函數(shù)調(diào)用表達式不正確的是()。BA.ff(a)B.ff(a[0])C.ff(a+3)D.ff(&a[0])66.假定要訪問一個結(jié)構(gòu)變量x中的數(shù)據(jù)成員a,則表示方法為()。AA.x.aB.x->aC.x:aD.x(a)二、是非判斷題。根據(jù)敘述正確與否在其后面的括號內(nèi)打?qū)μ枴啊獭被虿嫣枴啊痢薄?.若要在程序文件中使用標(biāo)準(zhǔn)輸入和輸出函數(shù),則需要引入的系統(tǒng)頭文件為stdio.h。是2.當(dāng)需要在程序文件中引入系統(tǒng)頭文件時,不需要使用#include命令。()否3.在C語言程序中,只有一種使用注釋語句的方法。()否4.常數(shù)3.26是雙精度定點數(shù)。()是5.常數(shù)3.26是雙精度浮點數(shù)。()否6.常數(shù)3.26f是單精度定點數(shù)。()是7.在一條變量定義語句中,只能定義同一類型的變量。()是8.在一條變量定義語句中,當(dāng)同時定義多個變量時,各變量之間只能使用逗號分開。(是)9.使用const語句定義一個符號常量時,則必須對它同時進行初始化。()是10.表達式x=x+y表示成復(fù)合賦值表達式為x=+y。()否11.表達式x=x+1表示成增量表達式為x++。()12.在C語言中,求一個整數(shù)的絕對值的數(shù)學(xué)函數(shù)為abs(x)。()是13.在for循環(huán)語句的頭部,for后面括號內(nèi)的各表達式之間使用逗號分開。(否)14.在for循環(huán)語句的頭部,for后面括號內(nèi)的各表達式之間使用空格隔開。(否)15.在for循環(huán)語句的頭部,for后面括號內(nèi)共有2個表達式位置。()否16.do-while循環(huán)語句是以分號結(jié)束的語句。()是17.break語句帶有語句體。()否18.return語句只有保留字,沒有其他成分。()否19.在一維數(shù)組的定義語句中,可以給數(shù)組中每個元素賦初值。()是20.在一維數(shù)組的定義語句中,給數(shù)組賦初值的部分是用一對花括號括起來的數(shù)據(jù)表。(是)21.在一維數(shù)組的定義語句中,給數(shù)組賦初值的部分是用一對圓括號括起來的數(shù)據(jù)表。(否)22.假定二維數(shù)組的定義語句為“doublea[M][N];”,則每個數(shù)組元素的行下標(biāo)取值范圍在1~M之間。()否23.字符串允許為空,并且其長度為0。()是24.存儲一個長度為0的空字符串至少需要占用1個字節(jié)的存儲空間。()是25.一個二維字符數(shù)組a[10][20]中存儲每個字符串的最大長度為20。()否26.在定義指針變量的語句中,對指針變量可以賦初值。()是27.在定義指針變量的語句中,最前面的類型關(guān)鍵字仍然允許是指針類型。()是28.假定a是一個一維數(shù)組,則數(shù)組名a的值和&a[0]的值相等。()是29.假定a是一個一維數(shù)組,則進行a++運算是不允許的。()是30.已知“inta[10],*p=a;”,則進行p++運算是不允許的。()否31.用于釋放動態(tài)存儲空間的函數(shù)為free,使用它需要帶有一個參數(shù)。()是32.在一個函數(shù)定義中,參數(shù)表可以為空。()是33.在一個函數(shù)定義中,參數(shù)表中的參數(shù)類型可以為void類型。()否34.對于不加static標(biāo)識的局部變量,若沒有對它進行初始化,則它的初值是不確定的。(是)35.在函數(shù)定義中,若存在著調(diào)用自身函數(shù)的函數(shù)調(diào)用表達式,則稱此函數(shù)為非遞歸函數(shù)。(否)36.在C語言程序中,主函數(shù)也可以成為遞歸函數(shù)。()否37.在C語言中,一個結(jié)構(gòu)類型的長度等于所含的所有數(shù)據(jù)成員類型長度的最大值。()否38.在結(jié)構(gòu)類型的定義中,其中的數(shù)據(jù)成員可以是本身類型的直接對象。()否39.定義結(jié)構(gòu)類型的同時能夠定義它的變量。()是40.在結(jié)構(gòu)成員訪問運算符中,點運算符和箭頭運算符的左邊均為結(jié)構(gòu)指針變量。()否41.在一個鏈表的結(jié)點結(jié)構(gòu)中,存在著一個指針域,但不一定指向自身結(jié)點類型。()否42.在一個鏈表中,表頭結(jié)點和表尾結(jié)點均無前驅(qū)結(jié)點。()否43.在C語言中,打開一個數(shù)據(jù)文件的系統(tǒng)函數(shù)為fopen(),它帶有兩個字符串參數(shù),用來給定文件名和打開方式。()是44.在C語言中,打開一個數(shù)據(jù)文件的系統(tǒng)函數(shù)為fopen(),它帶有一個字符串參數(shù),用來給定文件的打開方式。()否45.每次只能向文本文件中寫入一個字符,不能一次寫入一個字符串。()否46.在C語言字符集中,包含有全部26個英文大寫字母和對應(yīng)的小寫字母。()是47.一個C語言程序能夠包含多個用戶頭文件。()是48.在定義一個變量時,不能給它賦初值。()否49.表達式x=x+y表示成復(fù)合賦值表達式為x+=y。()是50.關(guān)系表達式(x!=0)的等價表達式為(!x)。()否51.當(dāng)循環(huán)次數(shù)確定時,while循環(huán)語句能夠轉(zhuǎn)換為for循環(huán)語句。()是52.在一維數(shù)組的定義語句中,數(shù)組名后帶有一對圓括號。()否53.假定二維數(shù)組的定義語句為“doublea[M][N];”,則每個數(shù)組元素的列下標(biāo)取值范圍在0~N-1之間。()是54.在C語言中,在定義一個字符數(shù)組時,不能利用一個字符串進行初始化。()否55.假定一個數(shù)據(jù)對象為int*類型,則指向該對象的指針類型為int**。()是56.進行動態(tài)存儲分配的calloc()函數(shù)帶有一個參數(shù)。()否57.對于標(biāo)識為static屬性的變量,若沒有對它進行初始化,則默認(rèn)的初值為1。()否58.在結(jié)構(gòu)類型的定義中,結(jié)構(gòu)類型名在關(guān)鍵字struct和定義體之間。()是59.在結(jié)構(gòu)成員訪問運算符中,點運算符(.)為雙目運算符。()是60.當(dāng)向字符文件輸出一個換行符時,實際將輸出的是回車和換行這兩個字符。()是61.在二維數(shù)組的定義語句中,不能給數(shù)組中每個元素賦初值。()否62.在定義指針變量的語句“int*p,pp;”中,p和pp具有相同的數(shù)據(jù)類型。()否63.假定a是一個一維數(shù)組名,則a+i的值與&a[i]的值相等。()是64.在一個函數(shù)定義中,參數(shù)表中的參數(shù)說明項之間是采用分號分開的。()否65.一個C語言程序能夠包含多個用戶頭文件。()是66.關(guān)系表達式(x!=0)的等價表達式為(!x)。()否67.while循環(huán)是先判斷循環(huán)條件,當(dāng)條件為真時執(zhí)行循環(huán)體。()是68.在C語言程序中,存儲字符串的方法是只使用字符指針。()否69.在定義指針變量的語句“int*p,**pp;”中,p和pp具有不同的指針類型。()是70.假定a是一個一維數(shù)組,則*(a+i)的值與a[i]的值相等。()是71.每次只能向文本文件中寫入一個字符,不能一次寫入一個字符串。()否三、程序填空題。分析程序后把合適的內(nèi)容填寫在括號內(nèi)。1.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:15#include<stdio.h>voidmain(){inta=5,b=8,c=6,d=15,x,y;if(a>=b)x=a;elsex=b;if(c>=d)y=c;elsey=d;if(x>=y)printf("%d\n",x);elseprintf("%d\n",y);}2.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:y=11#include<stdio.h>voidmain(){intx=5,y=0;switch(2*x-3){case4:y+=x;break;case7:y+=2*x+1;break;case10:y+=3*x;break;}printf("y=%d\n",y);}3.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:s=78#include<stdio.h>voidmain(){inti,s=0;for(i=1;i<10;i+=3)s+=i*(i+1);printf("s=%d\n",s);}4.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:s=56#include<stdio.h>voidmain(){inti=0,s=0;while(s<50){i+=2;s+=i*i;}printf("s=%d\n",s);}5.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:s=30#include<stdio.h>voidmain(){intx=30,i=1,s=0;do{s+=i*i;i++;}while(s<x);printf("s=%d\n",s);}6.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:s=46#include<stdio.h>voidmain(){inta[8]={3,8,6,5,9,2,8,5};inti,s=0;for(i=0;i<8;i++)s+=a[i];printf("s=%d\n",s);}7.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:s=58#include<stdio.h>voidmain(){inta[3][3]={{3,8,6},{5,9,2},{8,5,12}};inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)s+=a[i][j];printf("s=%d\n",s);}8.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:s=30#include<stdio.h>voidmain(){inta[3][3]={{3,8,6},{5,9,2},{8,5,12}};inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)if(a[i][j]%3==0)s+=a[i][j];printf("s=%d\n",s);}9.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:80#include<stdio.h>voidmain(){inta[8]={6,8,7,12,5,15,18,9};ints=0;int*p=a;while(p<a+8)s+=*p++;printf("%d\n",s);}10.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:47#include<stdio.h>#defineN8voidmain(){inta[N]={3,5,8,10,15,20,32,66};inti,x;for(i=0;i<N/2;i++){x=a[i];a[i]=a[N-1-i];a[N-1-i]=x;}printf("%d\n",a[1]+a[3]);}11.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:32#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);}12.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:s=30#include<stdio.h>voidmain(){inta[3][3]={{3,8,6},{5,9,2},{8,5,12}};inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)if(a[i][j]%3==0)s+=a[i][j];printf("s=%d\n",s);}13.當(dāng)使用xk3(5)調(diào)用此函數(shù),并假定從鍵盤上輸入的5個整數(shù)為3、4、7、8和10,則返回值為()。運行結(jié)果:32intxk3(intn){//n為大于等于1的整數(shù)inti,x,s=0;for(i=0;i<n;i++){scanf("%d",&x);s+=x;}returns;}14.在此程序中,具有文件作用域的變量是()。運行結(jié)果:x2#include<stdio.h>intx1=5;staticintx2=8;voidmain(){intx3=20;while(x1+x2<x3)x1+=2;printf("%d%d%d\n",x1,x2,x3);}15.此程序運行后,得到的輸出結(jié)果為()。運行結(jié)果:29#include<stdio.h>intfn3(inta,intb){intc=a;a=b;b=c;returna+2*b-3;}voidmain(){inta=3,b=5;intc=fn3(a+2,b+3);printf("%d\n",3*a+b+c);}216.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:85#include<stdio.h>voidmain(){intx=5,y=8;if(x>=y)printf("%d%d\n",x,y);elseprintf("%d%d\n",y,x);}17.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:f2=81#include<stdio.h>voidmain(){inti,f1=1,f2;for(i=2;i<6;i++){f2=3*f1;f1=f2;}printf("f2=%d\n",f2);}18.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:85#include<stdio.h>#defineN7voidmain(){inta[N];inti;a[0]=1;a[1]=2;for(i=2;i<N;i++)a[i]=2*a[i-2]+a[i-1]+1;printf("%d\n",a[N-1]);}19.執(zhí)行下面程序的輸出結(jié)果為()。運行結(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);}20.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:73#include<stdio.h>voidmain(){inta[3][3]={{2,3,4},{5,6,8},{10,15,20}};int*p=(int*)a;ints=0;while(p<(int*)a+9)s+=*p++;printf("%d\n",s);}21.執(zhí)行下面程序的輸出結(jié)果為()。運行結(jié)果:y=34#include<stdio.h>voidmain(){intn=10,y=0;while(n>6){y+=n;n--;}printf("y=%d\n",y);}22.假定使用xxk3(5)調(diào)用下面函數(shù),則返回值為()。運行結(jié)果:120intxxk3(intn){inti,s=1

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論