版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度大數(shù)據(jù)中心建設(shè)與運營服務(wù)合同規(guī)范3篇
- 二手房交易合同模板2024一
- 2024物業(yè)租賃合同中的違約金計算方式
- 二零二五版船舶環(huán)保技術(shù)改造項目股份投資合同3篇
- 關(guān)于2025年度環(huán)保設(shè)施運營維護的詳細合同
- 專用面粉生產(chǎn)與供應(yīng)合同2024
- 2024淘寶天貓京東電商客服團隊激勵考核合同3篇
- 2025年校園物業(yè)管理與服務(wù)保障合同書6篇
- 2025年度船舶建造與船員培訓(xùn)服務(wù)合同3篇
- 2024版公證處借款合同范文
- 2024高考復(fù)習(xí)必背英語詞匯3500單詞
- 消防控制室值班服務(wù)人員培訓(xùn)方案
- 《貴州旅游介紹》課件2
- 2024年中職單招(護理)專業(yè)綜合知識考試題庫(含答案)
- 無人機應(yīng)用平臺實施方案
- 挪用公款還款協(xié)議書范本
- 事業(yè)單位工作人員年度考核登記表(醫(yī)生個人總結(jié))
- 盾構(gòu)隧道施工數(shù)字化與智能化系統(tǒng)集成
- 【企業(yè)盈利能力探析文獻綜述2400字】
- 2019年醫(yī)養(yǎng)結(jié)合項目商業(yè)計劃書
- 2023年店鋪工程主管年終業(yè)務(wù)工作總結(jié)
評論
0/150
提交評論