遼寧中醫(yī)藥大學(xué)計算機C語言專升本題庫及答案_第1頁
遼寧中醫(yī)藥大學(xué)計算機C語言專升本題庫及答案_第2頁
遼寧中醫(yī)藥大學(xué)計算機C語言專升本題庫及答案_第3頁
遼寧中醫(yī)藥大學(xué)計算機C語言專升本題庫及答案_第4頁
遼寧中醫(yī)藥大學(xué)計算機C語言專升本題庫及答案_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2/2計算機C語言專升本題庫一、理論基礎(chǔ)(每小題1分,共10分)1、char型常量在內(nèi)存中存放的是________。 A、二進制代碼值 B、十進制代碼值 C、十六進制代碼值 D、ASCⅡ代碼值【答案】D2、在c語言中,退格符是________。 A、\n B、\t C、\v D、\b【答案】D3、在c語言中,'a'和"a"存儲所占用的字節(jié)數(shù)分別是________。 A、1,1 B、1,2 C、2,1 D、2,2【答案】B4、設(shè)x為整型變量,和表達式"!(!x)"值完全相同的表達式是________。 A、A==0 B、x==1 C、x!=0 D、x!=1【答案】C5、各種運算符間的優(yōu)先順序從高到低是________。 A、比較運算符→算術(shù)運算符→邏輯運算符 B、比較運算符→邏輯運算符→算術(shù)運算符 C、算術(shù)運算符→比較運算符→邏輯運算符 D、算術(shù)運算符→邏輯運算符→比較運算符【答案】C【解析】對于多種運算的混合運算,一定要記住它們之間的優(yōu)先級,否則就會得到不同的計算結(jié)果。6、下列符號中,可以作為變量名的是________。 A、+c B、*X C、_DAY D、next-day【答案】C7、在64位編譯器環(huán)境下,int類型占多少字節(jié)? A、2 B、4 C、1 D、8【答案】B8、以下各標識符中,合法的是? A、A&M B、_sum C、float D、2x1【答案】B9、若要求在if后一對圓括號中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達式為__________。 A、a<>0 B、!a C、a=0 D、a!=0【答案】D10、若有定義inta=12,n=5,則表達式a%=(n%2)運算后,a的值: A、0 B、1 C、12 D、6【答案】A11、設(shè)有以下宏定義:

#defineN3

#defineY(n)((N+1)*n)則執(zhí)行語句:z=2*(N+Y(5+1));后,z的值為________。 A、出錯 B、42 C、48 D、54【答案】C12、下列可用于c語言用戶標識符的一組是________。 A、void,define,WORD B、a3_b3,_123,Car C、For,-abc,IFCase D、2a,DO,sizeof【答案】B【解析】C語言規(guī)定標識符只能由字母、數(shù)字和下畫線3種字符組成,且第一個字符必須為字母或下畫線,排除選項C)和D);C語言中還規(guī)定標識符不能為C語言的關(guān)鍵字,而選項A)中void為關(guān)鍵字,故排除選項A)。13、以下4個選項中,不能看作一條語句的是________。 A、; B、a=5,b=2.5,c=3.6; C、if(b!=5)x=2;y=6; D、returnj;【答案】C【解析】C語言規(guī)定每個語句以;(分號)結(jié)束,因此選項C)為兩條語句。14、下列選擇中,不能用做標識符的是________。 A、1234 B、_1_2 C、int_2_ D、2_int_【答案】D15、數(shù)值型數(shù)據(jù)包括()兩種。 A、整型和長整型 B、整型和浮點型 C、單精度型和雙精度型 D、整型實型和貨幣型【答案】B16、以下不正確的定義語句是________。 A、doublex[5]={2.0,4.0,6.0,8.0,10.0}; B、inty[5]={0,1,3,5,7,9}; C、charc1[]={'1','2','3','4','5'}; D、charc2[]={'\x10','\xa','\x8'};【答案】B17、表達式的值為0的是________。 A、5/5%5 B、5>2 C、!4 D、3>2&&5-6<7【答案】C18、已知英文字母m的ascii碼值為109,那么英文字母p的ascii碼值是________。 A、112 B、113 C、111 D、114【答案】A【解析】字母m與字母p的ASCII碼值相差3,那么q的ASCII碼值=109+3-112。19、若a是float型變量,b是unsigned型變量,以下輸入語句中合法的是()。 A、scanf("%6.2f%d",&a,&b); B、scanf("%f%n",&a,&b); C、scanf("%f%3o",&a,&b); D、scanf("%f%f",&a,&b);【答案】C20、執(zhí)行下列語句后,i和n的值為________。inti=10;intn=i++%5; A、10,O B、10,1 C、11,0 D、11,1【答案】C二、控制結(jié)構(gòu)(每小題1分,共10分)1、c語言中,關(guān)系表達式和邏輯表達式的值是________。 A、0 B、0或1 C、1 D、'T'或'F'【答案】B2、下列程序的輸出結(jié)果是______。

#include<stdio.h>

main()

{

inta=0,b=1,c=2;

if(++a>0||++b>0)++c;

printf("%d,%d,%d",a,b,c);

} A、0,1,2 B、1,2,3 C、1,1,3 D、1,2,2【答案】C【解析】本題考查if語句。先判斷if語句的條件是否成立,因為++a=1>0,所以條件成立,又因為是進行邏輯或運算,在已知其中一個運算對象為真的情況下,不必判斷另外一個運算對象的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執(zhí)行下面的++c。3、c語言對嵌套if語句的規(guī)定是:else總是與()? A、其之前最近的if配對 B、其之前最近的且尚未配對的if配對 C、縮進位置相同的if配對 D、第一個if配對【答案】B4、下列程序的運行結(jié)果是________。

main()

{

inta=-5,b=1,c=1;

intx=0,y=2,z=0;

if(c>0)x=x+y;

if(a<=0)

{

if(b>0)if(c<=0)y=x-y;

}

elseif(c>0)y=x-y;

elsez=y;

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

} A、2,2,0 B、2,2,2 C、0,2,0 D、2,0,2【答案】A【解析】本題考查ifelse語句的使用。先判斷第1個if語句,因為c=1>0,所以x=x+y=0+2=2。第1個if語句,因為a=-5<0,所以進入下列的復(fù)合語句。經(jīng)判斷發(fā)現(xiàn),復(fù)合語句中第2個if語句的條件均不滿足,不執(zhí)行任何語句退出,在這個過程中y和z的值沒有發(fā)生變化。5、c語言對嵌套的if語句的規(guī)定是:else總是與配對? A、與之前最近的if B、第一個if C、縮進位置相同的if D、與之前最近的且尚未配對的if【答案】D6、有以下程序

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、011122 B、012 C、012020 D、120【答案】A【解析】當執(zhí)行switch語句時,首先計算緊跟其后一對括號中的值,然后在語句體內(nèi)尋找與該值吻合的case標號。若相等,則執(zhí)行該標號后開始的各語句,包括在其后的所有case和default后的語句,直到switch語句體結(jié)束。7、有如下程序

main()

{

intx=1,a=5,b=5;

switch(x)

{

case0:b--;

case1:a--;

case2:a--;

b--;

}

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

}

該程序的輸出結(jié)果是______。 A、a=3,b=4 B、a=3,b=3 C、a=4,b=5 D、a=4,b=4【答案】A8、有以下程序:

main()

{

inta=3,b=4,c=5,d=2;

if(a>b)if(b>c)printf("%d",d+++1);

elseprintf("%d",++d+1);

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

}

程序運行后的輸出結(jié)果是______。 A、2 B、3 C、43 D、44【答案】A【解析】本題考查嵌套if語句中else的配對。本題中else和第二個if即if(b>c)配對。由于a>b不成立,因此整個程序只輸出printf("%d\n",d),即輸出2。9、下列程序的輸出結(jié)果是________。

main()

{

inta=4,b=5,c;

if(a<b)

{

c=a*b;

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

}

else

{

c=b/a;

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

}

} A、4,5,12 B、20 C、5,4,20 D、12【答案】C【解析】本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b成立,執(zhí)行下列的復(fù)合語句,得c=a*b=20,b、a的值不變。10、設(shè)變量x和y均已正確定義并賦值。以下if語句中,在編譯時將產(chǎn)生錯誤信息的是________。 A、if(x++); B、if(x>y&&y!=0); C、if(x>0)x-- D、if(y<0){;}【答案】C【解析】elsey++;elsex++;

本題考查的是if語句。if后表達式兩側(cè)的圓括號不可少,最后是一條語句或是用花括號括起來的一組語句。選項A和B是在表達式后跟了一條空語句,選項D是在表達式后跟了一組空語句,選項C中x--是表達式而不是語句,所以在編譯時會出現(xiàn)錯誤信息。故本題答案選C。三、循環(huán)結(jié)構(gòu)(每小題1分,共10分)1、下列敘述中正確的是________。 A、break語句只能用于switch語句體中 B、continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán) C、break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi) D、在循環(huán)體內(nèi)使用break語句和continue語句的作用相同【答案】C2、以下程序的輸出結(jié)果是_______。

main()

{

inti=0,s=0;

for(;;)

{

if(i==6)break;

i++;

s+=i;

}

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

} A、10 B、15 C、21 D、死循環(huán)【答案】C3、程序的基本控制結(jié)構(gòu)是______。 A、順序結(jié)構(gòu),多分支結(jié)構(gòu)和單分支結(jié)構(gòu) B、順序結(jié)構(gòu),支結(jié)構(gòu)和循環(huán)結(jié)構(gòu) C、順序結(jié)構(gòu),選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 D、單行結(jié)構(gòu)和多行結(jié)構(gòu)?!敬鸢浮緾4、有以下程序

#include<stdio.h>

main()

{

inti,n;

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

{

n=rand()%5;

switch(n)

{

case1:

case3:

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

break;

case2:

case4:

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

continue;

case0:

exit(0);

}

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

}

}

以下關(guān)于程序執(zhí)行情況的敘述,正確的是______。 A、for循環(huán)語句固定執(zhí)行8次 B、當產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作 C、當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作 D、當產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行【答案】D【解析】閱讀本程序可知,當產(chǎn)生隨機數(shù)為4時,會繼續(xù)執(zhí)行循環(huán);當產(chǎn)生隨機數(shù)為1和2時,會順勢執(zhí)行case1或case2下面的語句,進而輸出結(jié)果;當產(chǎn)生隨機數(shù)為O時,正常結(jié)束程序的運行。for循環(huán)語句隨著產(chǎn)生的隨機數(shù)的不同,執(zhí)行的次數(shù)也不相同。5、假定等級和分數(shù)有以下對應(yīng)關(guān)系:等級:a分數(shù):85~100等級:b分數(shù):60~84等級:c分數(shù):60以下對于等級grade輸出相應(yīng)的分數(shù)區(qū)間,能夠完成該功能的程序段是__________. A、switch(grade)

{

case'A':printf("85--100\n");

case'B':printf("60--84\n");

case'C':printf("60以下\n");

default:printf("等級錯誤!\n");

} B、switch(grade)

{

case'A':printf("85--100\n");break;

case'B':printf("60--84\n");

case'C':printf("60以下\n");

default:printf("等級錯誤!\n");

} C、switch(grade)

{

case'A':printf("85--100\n");break;

case'B':printf("60--84\n");break;

case'C':printf("60以下\n");

default:printf("等級錯誤!\n");

} D、switch(grade)

{

case'A':printf("85--100\n");break;

case'B':printf("60--84\n");break;

case'C':printf("60以下\n");break;

default:printf("等級錯誤!\n");}【答案】D6、若變量已正確定義,有以下程序段i—o;

doprintf("%d,",i);

while(i++);

printf("%d",i)其輸出結(jié)果是________。 A、0,0 B、0,1 C、1,1 D、程序進入無限循環(huán)【答案】B7、以下程序的執(zhí)行結(jié)果是main()

{intx=0,s=0;

while(!x!=0)s+=++x;

printf("%d",s);} A、0 B、1 C、語法錯誤 D、無限循環(huán)【答案】B8、程序語言一般都提供多種循環(huán)語句,例如實現(xiàn)先判斷循環(huán)條件再執(zhí)行循環(huán)體的while語句和先執(zhí)行循環(huán)體再判斷循環(huán)條件的do-while語句。關(guān)于這兩種循環(huán)結(jié)構(gòu),在不改變循環(huán)體的條件下,(17)是正確的。 A、while語句的功能可由do-while語句實現(xiàn) B、do-while語句的功能可由while語句實現(xiàn) C、若已知循環(huán)體的次數(shù),則只能使用while語句 D、循環(huán)條件相同時,do-while語句的執(zhí)行效率更高【答案】B【解析】本題考查程序的控制結(jié)構(gòu)。

do-while語句的形式為:

do

循環(huán)體語句;

while循環(huán)條件;

首先執(zhí)行一次循環(huán)體語句(無條件地),若循環(huán)條件不成立,則結(jié)束do-while語句的執(zhí)行;否則再一次執(zhí)行循環(huán)體語句,即,此后循環(huán)條件每成立一次,循環(huán)體語句就執(zhí)行1次。顯然,do-while中的循環(huán)體語句至少執(zhí)行1次。

while語句的形式為:

while循環(huán)條件

循環(huán)體語句;

其執(zhí)行過程為:先判斷循環(huán)條件,若不成立,則結(jié)束while語句的執(zhí)行;否則執(zhí)行一次循環(huán)體語句。此后循環(huán)條件每成立一次,循環(huán)體語句就執(zhí)行1次。顯然,while中的循環(huán)體語句可能一次也不執(zhí)行。

因此,在不改變循環(huán)體的情況下,可用while語句來代替do-while語句,反之則不行。9、有以下程序

#include<stdio.h>

main()

{

inti,j,m=1;

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

{

for(j=3;j>0;j--)

{

if(i*j>3)break;

m*=i*j;

}

}

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

}

程序運行后的輸出結(jié)果是________。 A、m=6 B、m=2 C、m=4 D、m=5【答案】A10、有以下程序

main()

{

inti,j;

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

{

for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);

printf("\n");

}

}

程序運行后的輸出結(jié)果是______。 A、1*1=11*2=21*3=3

2*1=22*2=42*3=6

3*1=33*2=63*3=9 B、1*1=11*2=21*3=3

2*2=42*3=6

3*3=9 C、1*1=1 D、1*1=11*2=2

2*1=22*2=4

3*3=9【答案】B【解析】本題考查的是循環(huán)嵌套。在一個循環(huán)體內(nèi)又完整地包含了另一個循環(huán),稱為循環(huán)嵌套。外循環(huán)i的值分別為1、2、3,當i=1,內(nèi)循環(huán)j=1時,輸出1*1=1;當內(nèi)循環(huán)j=2時,輸出1*2=2;當內(nèi)循環(huán)j=3時,輸出1*3=3;當i=2,內(nèi)循環(huán)j=2時,輸出2*2=4;當內(nèi)循環(huán)j=3時,輸出2*3=6;當i=3,內(nèi)循環(huán)j=3時,輸出3*3=9。四、數(shù)組/指針數(shù)組(每小題1分,共10分)1、合法的數(shù)組定義是________。 A、inta[]="string"; B、inta[5]=0,1,2,3,4,5; C、chara="string"; D、chara=0,1,2,3,4,5;【答案】D2、對長度為8的數(shù)組進行快速排序,最多需要的比較次數(shù)為________。 A、8 B、28 C、56 D、64【答案】B【解析】對長度為n的線性表進行快速排序,最壞情況下需要比較的次數(shù)為n(n-1)/2.數(shù)組屬于線性表,故對長度為8的數(shù)組進行快速排序,最多需要的比較次數(shù)為8(8-1)/2=28.本題答案為B選項。3、對以下說明語句inta[10]={6,7,8,9,10};的正確理解是()。 A、將5個初值依次賦給a[1]至a[5] B、將5個初值依次賦給a[0]至a[4] C、將5個初值依次賦給a[6]至a[10] D、因為數(shù)組長度與初值的個數(shù)不相同,所以此語句不正確【答案】B4、有如下程序

#include<stdio.h>

voidmain()

{

charch[80]="123abcdefg*&";

intj;

longs=0;

puts(ch);

for(j=0;ch[j]>'\0';j++)if(ch[j]>='a'&&ch[j]<='z')ch[j]=ch[j]+'e'-'e';

puts(ch);

}

該程序的功能是__________. A、測字符數(shù)組ch的長度 B、將數(shù)字字符串ch轉(zhuǎn)換成十進制數(shù) C、將字符數(shù)組ch中的小寫字母轉(zhuǎn)換成大寫 D、將字符數(shù)組ch中的大寫字母轉(zhuǎn)換成小寫【答案】D5、若有以下的說明和語句,則在執(zhí)行for語句后,*(*(pt+1)+2)表示的數(shù)組元素是________。

int[3][3],*pt[3],k;

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

pt[k]-&t[k][0]; A、t[2]Eo] B、t[2][2] C、tell[2] D、t[2][1]【答案】C6、已知英文字母a的十進制ascii碼值為65,那么a的十進制ascii碼值為______。 A、98 B、100 C、89 D、97【答案】D【解析】在ASCII碼表中,大、小寫英文字母是分組排序安排在不同位置的,并且小寫英文字母的碼值比對應(yīng)的大寫英文字母的碼值大32。所以,當知道A的ASCII碼值是65后,字符a的碼值為65+32=97。7、閱讀下列程序段:chars[18]="abook!";printf("%.4s\n",s);

其輸出結(jié)果為________。 A、abook! B、abook C、abo D、a【答案】C【解析】"abook!"在字符數(shù)組中是按單個字符存儲的,包括空格,%.4s是輸出前四個字符。8、若有說明語句"inta[5],*p=a;",則對數(shù)組元素的正確引用是________。 A、a[p] B、p[a] C、*(p+2) D、p+2【答案】C9、若有說明:inta[][3]={{1,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小為:() A、2 B、3 C、4 D、無確定值【答案】B10、下列一維數(shù)組定義正確的是________。 A、x=5;intnum[x]; B、constihtx=5;floatnum[x]; C、constfloatx=5;intnum[x]; D、constintx;x=5;intnum[x];【答案】B【解析】數(shù)組的下標不能是變量,不能為非整數(shù),定義為常量的標識符不能再用來賦值,只能在定義時初始化。五、字符串/字符串指針(每小題1分,共10分)1、\、/、mod、*等4個算術(shù)運算符中,優(yōu)先級最低的是________。 A、\ B、/ C、Mod D、*【答案】C【解析】[知識點]模塊/VBA編程基礎(chǔ)

在一個表達式中進行若干操作時,每一部分都會按預(yù)先確定的順序進行計算求解,稱這個順序為運算符的優(yōu)先順序。而算術(shù)表達式的優(yōu)先順序從高到低分別為:指數(shù)運算(∧)、負數(shù)(-)、乘法和除法(*、/)、整數(shù)除法(\)、求模運算(Mod)、加法和減法(+、-)、小字符串連接(&)。2、判斷字符串a(chǎn)和b是否相等,應(yīng)當使用。 A、if(a==b) B、if(a=b) C、if(strcmp(a,b)) D、if(strcmp(a,b)==0)【答案】D3、以下語句中,不能實現(xiàn)回車換行的是()。 A、printf("\n"); B、putchar("\n"); C、fprintf(stdout,"\n"); D、fwrite("\n",1,1,stdout);【答案】B4、下列數(shù)據(jù)中為字符串常量的是________? A、'A' B、"9" C、Howdoyoudo D、'$abd'【答案】B5、char*s="\t\\name\\address\n";指針s所指字符串的長度為:。 A、說明不合法 B、19 C、18 D、15【答案】D6、宏定義用于將一個標識符定義為一個 A、常量 B、字符串 C、整數(shù) D、長整數(shù)【答案】B【解析】宏定義用于將一個標識符定義為一個字符串7、下列類型的數(shù)據(jù)不可以存儲在可變型變量中的是________。 A、整型 B、字節(jié)型 C、單精度型 D、日期型【答案】B【解析】本題考查可變型變量??勺冃妥兞靠梢源鎯?種類型的數(shù)據(jù):空、NULL型、整型、長整型、單精度型、雙精度型、貨幣型、日期型和字符串型。選項A錯誤,整型數(shù)據(jù)可以存儲在可變型變量中;選項B正確,字節(jié)型數(shù)據(jù)不可以存儲在可變型變量中;選項C錯誤,單精度型數(shù)據(jù)可以存儲在可變型變量中;選項D錯誤,日期型數(shù)據(jù)可以存儲在可變型變量中。答案為B。8、按照c語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是________。 A、大寫字母 B、連接符 C、數(shù)字字符 D、下劃線【答案】B【解析】C語言的標識符要符合以下規(guī)定:

①標識符是個以字母或下劃線開頭的,由字母、數(shù)字、下劃線組成的字符串:

②標識符不能與任意一個關(guān)鍵字同名:

③標識符中的字母區(qū)分大小寫。

故本題應(yīng)該選擇B。9、下面各語句行中,能正確進行字符串賦值操作的語句是______。 A、charST[5]={"ABCDE"}; B、charS[5]={'A','B','C','D','E'}; C、char*S;S="ABCDE"; D、char*S;scanf("%S",S);【答案】C10、設(shè)p1和p2是指向同一個字符串的指針變量,c為字符變量,則以下不能正確執(zhí)行的賦值語句是()。 A、c=*p1+*p2; B、p2=c; C、p1=p2; D、c=*p1*(*p2);【答案】B六、函數(shù)/函數(shù)指針(每小題1分,共10分)1、下面函數(shù)定義形式正確的是________。 A、intf(intx;inty) B、intf(intx,y) C、intf(int,inty) D、intf(x,y:int)【答案】C2、結(jié)構(gòu)化程序設(shè)計方法的三種基本控制結(jié)構(gòu)中不包括(.)。 A、循環(huán)結(jié)構(gòu) B、遞歸結(jié)構(gòu) C、順序結(jié)構(gòu) D、選擇結(jié)構(gòu)【答案】B3、x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是________。 A、INPUTx、v、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);【答案】B【解析】考查格式輸入函數(shù)scanf的使用。

[解題要點]scanf函數(shù)的一般格式是:

scanf(格式控制,地址表列)

該格式中,地址表列中應(yīng)是變量地址,而不是變量名。

[考點鏈接]調(diào)用putchar和getchar函輸出和輸入字符。4、c語言規(guī)定,在一個源程序中,main函數(shù)的位置________。 A、必須在最開始 B、必須在系統(tǒng)調(diào)用的庫函數(shù)的后面 C、可以任意 D、必須在最后【答案】C【解析】C程序總是從main函數(shù)開始執(zhí)行,但main函數(shù)在程序中的位置可以是任意的。5、以下敘述中正確的是________。 A、在C程序中無論是整數(shù)還是實數(shù),只要在允許的范圍內(nèi)都能準確無誤地表示 B、C程序由主函數(shù)組成 C、C程序由若干函數(shù)組成 D、C程序中只允許包含一個函數(shù)【答案】C6、結(jié)構(gòu)化程序設(shè)計所規(guī)定的三種基本控制結(jié)構(gòu)是________。 A、輸入、輸出、處理 B、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu) C、for、while、switch D、主程序、子程序、函數(shù)【答案】B【解析】結(jié)構(gòu)化程序有三種基本結(jié)構(gòu)組成,分別是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。7、若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是________。 A、intfun(doubleX,int*n); B、intfun(double,int); C、intfun(double*X,intn); D、intfun(double*int*);【答案】C【解析】函數(shù)首部intfun(doublex[10],int:n)表示這個函數(shù)的返回值是整型,其第一個形式參數(shù)是一個雙精度型的一維數(shù)組,第二個參數(shù)是一個整型指針。在C語言中,一維數(shù)組的名字表示的是一維數(shù)組的地址,所以選項D)是正確的。8、下列程序的輸出結(jié)果是________。

intf1(intx,inty)

{

returnx>y?x:y;

}

intf2(intx,inty)

{

returnx>y?y:x;

}

main()

{

inta=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));

f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

printf("%d,%d,%d\n",e,f,g);

} A、4,3,7 B、3,4,7 C、5,2,7 D、2,5,7【答案】A【解析】根據(jù)函數(shù)intf1(intx,inty){

returnx>yx:y;}和intf2(intx,inty){

returnx)>y:x;}的定義可知,如果x>y成立,則函數(shù)f1返回x的值,函數(shù)f2返回y的值。所以f1(a,b)=4,f1(c,d)=5,f2(a,b)=3,f2(c,d)=2,故e=f2(4,5),f=f1(3,2)=3,g=4+3+5+2-4-3=7。9、以下敘述中,不正確的是________。 A、在一個函數(shù)中,可以有多條return語句 B、函數(shù)的定義不能嵌套,但函數(shù)的調(diào)用可以嵌套 C、函數(shù)必須有返回值 D、不同的函數(shù)中可以使用相同名字的變量【答案】C【解析】函數(shù)不一定有返回值。10、以下敘述正確的是________。 A、在C語言程序中,main函數(shù)必須位于程序的最前面 B、C語言程序的每行中只能寫一條語句 C、C語言本身沒有輸入輸出語句 D、在對一個C語言程序進行編譯的過程,可發(fā)現(xiàn)注釋中的拼寫錯誤【答案】C【解析】考查C語言的幾個基本概念。

[解題要點]選項A)中,main函數(shù)可以放在程序的任何位置,不一定要放在程序的最前面,不論main函數(shù)放在什么位置,程序的執(zhí)行卻總是從main函數(shù)開始的;選項B)中,因為C語言的語法限制不嚴格,所以可以多條語句放在同一行上;選項C)是正確的,C語言中沒有專門的輸入輸出語句,輸入輸出是通過使用輸入輸出庫函數(shù)來實現(xiàn)的;選項D)是錯誤的,因為C語言中的注釋是不會被編譯的。

[考點鏈接]掌握算法的相關(guān)特性。七、指針(每小題1分,共10分)1、調(diào)用函數(shù)時,當實參和形參都是簡單變量時,它們之間數(shù)據(jù)傳遞的過程是__________. A、實參將其地址傳遞給形參,并釋放原先占用的存儲單元 B、實參將其地址傳遞給形參,調(diào)用結(jié)束時形參再將其地址回傳給實參 C、實參將其值傳遞給形參,調(diào)用結(jié)束時形參再將其值回傳給實參 D、實參將其值傳遞給形參,調(diào)用結(jié)束時形參并不將其值回傳給實參【答案】D2、inta[10];

合法的數(shù)組元素的最小下標值為____ A、10 B、9 C、1 D、0【答案】D3、一個c語言程序總是從開始執(zhí)行。 A、主過程 B、主函數(shù) C、子程序 D、主程序【答案】B4、數(shù)組a[0…5,0…6]每個元素占5個單元,將其按列優(yōu)先次序存儲在起始地址為1000的連續(xù)內(nèi)存單元中,則元素a[5][5]的地址為________。 A、1175 B、1180 C、1205 D、1210【答案】A【解析】本題主要考查的知識點是二維數(shù)組元素的地址計算。

[要點透析]a[5][5]的地址是1000+(5×6+5)×5=1175。5、字符串"\\\"abc\"\\"的長度是______。 A、11 B、7 C、5 D、3【答案】B6、程序流程圖中指有箭頭的線段表示的是________。 A、圖元關(guān)系 B、數(shù)據(jù)流 C、控制流 D、調(diào)用關(guān)系【答案】C7、以下正確的描述是________? A、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套 B、函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套 C、函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套 D、函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套【答案】B8、設(shè)有以下函數(shù):

#include<stdio.h>

intf(inta)

{

intb=0,c;

c=3;

b++;

c++;

return(a+b+c);

}

如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是______.

voidmain()

{

inti;

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

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

} A、567 B、579 C、345 D、333【答案】B9、以下程序中的函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進行逆置。

voidreverse(inta[],intn)

{

inti,t;

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

{

t=a[i];

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

a[n-1-i]=t;

}

}

main()

{

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

inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

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

}

程序運行后的輸出結(jié)果是______。 A、22 B、10 C、34 D、30【答案】A10、若有以下定義和語句:doubler=99,*p=&r;*p=r;則以下正確的敘述是______。 A、以下兩處的*p含義相同,都說明給指針變量p賦值 B、在"doubler=99,*p=&r;"中,把r的地址賦值給了p所指的存儲單元 C、語句"*p=r;"把變量r的值賦給指針變量p D、語句"*p=r;"取變量r的值放回r中【答案】D八、結(jié)構(gòu)體(每小題1分,共10分)1、有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量b。則不能把結(jié)點b連接到結(jié)點a之后的語句是________。

structnode

{

chardata;

structnode*next;

}

a,b,*p=&a,*q=&b; A、3475 B、3574 C、1234 D、1235【答案】B【解析】在被調(diào)用過程中,有這樣的語句“StaticSum”,因為變量Sum是局部變量,局部變量除了可以用Dim語句聲明外,還可用Static語句將變量聲明為靜態(tài)變量,它在程序運行過程中可保留變量的值,這就是說每次調(diào)用過程時,用Static說明的變量保持原來的值。具體過程分析如下:調(diào)用P(1),所以在被調(diào)過程中N=1,執(zhí)行ForNext循環(huán),P(1)=Sum=1;調(diào)用P(2),所以在被調(diào)過程中N=2,執(zhí)行ForNext循環(huán),P(2)=Sum=4;調(diào)用P(3),所以在被調(diào)過程中N=3,執(zhí)行ForNext循環(huán),P(3)=Sum=10;調(diào)用P(4),所以在被調(diào)過程中N=4,執(zhí)行ForNext循環(huán),P(4)=Sum=20;不難看出,最后輸出的結(jié)果S值應(yīng)為1+4+10+20=35,所以選項C)正確。2、設(shè)有以下語句:

typedefstructtt{charc;inta[4];}cin;則下面敘述中正確的是________。 A、可以用TT定義結(jié)構(gòu)體變量 B、TT是struct類型的變量 C、可以用CIN定義結(jié)構(gòu)體變量 D、CIN是structTT類型的變量【答案】C【解析】將題目中的定義語句去掉前面的typedef和后面的CIN(分號保留),就是一條完整的結(jié)構(gòu)體定義語句,其中struct是說明符,TT是結(jié)構(gòu)體名,大括號里面的是結(jié)構(gòu)體成員的定義。此時要聲明該結(jié)構(gòu)體變量時需要使用struct加結(jié)構(gòu)體名一起來聲明,structTT一起構(gòu)成一個結(jié)構(gòu)體類型,就好像字符類型char。若只去掉前面的typedef,就是一條結(jié)構(gòu)體定義同時聲明個結(jié)構(gòu)體變量CIN的語句,因為CIN的前面部分是structTT的完整寫法,可以看作是structTT。C語言允許用typedef說明一種新類型名,其語法格式為:

typedef類型名標識符;

以后就可以用該標識符來代替被說明的類型名了。因此,當前面存在typedef時,該語句就變成了給structTT的定義一個新的名稱CIN。所以,此時的CIN是一個結(jié)構(gòu)體類型,它相當于structTT,即可以和char一樣單獨用來聲明該結(jié)構(gòu)體變量,而TT只是一個結(jié)構(gòu)體名,不能單獨用來聲明變量。所以,4個選項中C符合題意。3、有以下程序

structs

{

intx,y;

}

data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

程序運行后的輸出結(jié)果是________。 A、10 B、11 C、20 D、21【答案】B4、若定義下列結(jié)構(gòu)體,結(jié)構(gòu)體變量p的出生年份賦值正確的語句是________。

structst

{

intx;

inty;

intz;

}

structworker

{

charname[20];

charsex;

structstbirth;

}p; A、x=1987 B、birth.x=1987; C、p.birth.x=1987; D、x=1987;【答案】C【解析】本題主要考查怎樣為嵌套定義的結(jié)構(gòu)中的成員賦值:由于worker中的birth是一個st型的結(jié)構(gòu),在給birth賦值時,不能將birth作為一個整體,要用“.”運算再深入一層訪問到最基本的成員x、y、z。5、c語言中,switch后的括號內(nèi)表達式的值可以是________。 A、只能為整型 B、只能為整型,字符型,枚舉型 C、只能為整型和字符型 D、任何類型【答案】D6、若有以下說明語句:

structstudent

{

intnum;

charname[];

floatscore;

}stu;

則下面的敘述不正確的是:() A、struct是結(jié)構(gòu)體類型的關(guān)鍵字 B、structstudent是用戶定義的結(jié)構(gòu)體類型 C、num,score都是結(jié)構(gòu)體成員名 D、stu是用戶定義的結(jié)構(gòu)體類型名【答案】D7、以下敘述中正確的是________。 A、使用typedef定義新類型名后,新類型名與原類型名實際上是等價的 B、結(jié)構(gòu)體類型中的各個成分均不能是數(shù)組或指針 C、結(jié)構(gòu)體類型的變量,不能在聲明結(jié)構(gòu)體類型組成時一起定義 D、元素為結(jié)構(gòu)體類型的數(shù)組,只能在聲明過結(jié)構(gòu)體類型之后,單獨進行定義【答案】A【解析】本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,結(jié)構(gòu)體類型中的成分可以是數(shù)組和指針,所以B選項錯誤,結(jié)構(gòu)體類型的變量可以在聲明結(jié)構(gòu)體的時候一起定義,C選項錯誤,D選項中可以一起定義。8、以下scanf函數(shù)調(diào)用語句中不正確的是__。

structpupil

{

charname[20];

intage;

intsex;

}

pup[5],*p=pup; A、scanf("%s",pup[0].name); B、scanf("%d",&pup[0].age); C、scanf("%d",p->age); D、scanf("%d",&(p->sex));【答案】C9、定義共用體的關(guān)鍵字是________。 A、union B、enum C、struct D、typedef【答案】A10、有以下結(jié)構(gòu)體說明、變量定義和賦值語句

structstd

{

charname[10];

intage;

charsex;

}

s[5],*ps;

ps=&s[0];

則以下scanf函數(shù)調(diào)用語句中錯誤引用結(jié)構(gòu)體變量成員的是________。 A、scanf("%S",S[0].name); B、scanf("%d",&s[0].age); C、scanf("%C",&(ps->sex)); D、scanf("%d",ps->age);【答案】D【解析】在scanf函數(shù)中,第二個參數(shù)應(yīng)該表示為地址變量,而選項D)只是一個具體的值,而并不是一個地址值。九、程序題(每小題1分,共10分)1、以下程序的輸出結(jié)果是________。

#defineA3

#defineB(A)((A+1)*A)

main()

{

intx;

x=3*(A+B(7));

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

} A、93 B、135 C、54 D、251【答案】A2、下述程序的輸出結(jié)果是________。

main()

{

intb[]={2,4,6,8,10,12};

int*p=b,**q=&p;

printf(”%d,”,*(p++));

printf(”%d,”,**q);

} A、4,4 B、2,2 C、4,5 D、2,4【答案】D3、以下程序運行后的輸出結(jié)

溫馨提示

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

評論

0/150

提交評論