![二級C語言筆試-426-真題(含答案與解析)-交互_第1頁](http://file4.renrendoc.com/view4/M00/2A/0A/wKhkGGZCQEuAfRnaAAIdbbujvN4429.jpg)
![二級C語言筆試-426-真題(含答案與解析)-交互_第2頁](http://file4.renrendoc.com/view4/M00/2A/0A/wKhkGGZCQEuAfRnaAAIdbbujvN44292.jpg)
![二級C語言筆試-426-真題(含答案與解析)-交互_第3頁](http://file4.renrendoc.com/view4/M00/2A/0A/wKhkGGZCQEuAfRnaAAIdbbujvN44293.jpg)
![二級C語言筆試-426-真題(含答案與解析)-交互_第4頁](http://file4.renrendoc.com/view4/M00/2A/0A/wKhkGGZCQEuAfRnaAAIdbbujvN44294.jpg)
![二級C語言筆試-426-真題(含答案與解析)-交互_第5頁](http://file4.renrendoc.com/view4/M00/2A/0A/wKhkGGZCQEuAfRnaAAIdbbujvN44295.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
二級C語言筆試-426(總分103.5,做題時間90分鐘)一、選擇題1.
下列敘述中正確的是______。
A)有一個以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
B)只有一個根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
C)循環(huán)鏈表是非線性結(jié)構(gòu)
D)雙向鏈表是非線性結(jié)構(gòu)A
B
C
D
分值:1答案:B[解析]本題考查的知識點(diǎn)是數(shù)據(jù)結(jié)構(gòu)。線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為線性鏈表,是線性結(jié)構(gòu),而循環(huán)鏈表和雙向鏈表都是在線性鏈表的基礎(chǔ)上演化而來的,因此,選項(xiàng)C、D錯誤。線性結(jié)構(gòu)必須有且只有一個根結(jié)點(diǎn),因此,選項(xiàng)A錯誤。2.
下面的描述中,符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是(
)。
A)使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B)模塊只有一個入口,可以有多個出口
C)注重提高程序的執(zhí)行效率
D)不使用goto語句A
B
C
D
分值:1答案:A[解析]結(jié)構(gòu)化程序設(shè)計方法的四條原則是:自頂向下;逐步求精;模塊化;限制使用goto語句。
“自頂向下”是指在程序設(shè)計時,先考慮總體,后考慮細(xì)節(jié),先考慮全局目標(biāo),后考慮局部目標(biāo);“逐步求精”是指對復(fù)雜問題應(yīng)設(shè)計一些子目標(biāo)作過渡,逐步細(xì)節(jié)化;“模塊化”是指一個復(fù)雜問題由若干稍簡單的問題構(gòu)成,解決這個復(fù)雜問題的程序也應(yīng)由若干稍簡單問題的小程序組成。3.
設(shè)計程序時,應(yīng)采納的原則之一是(
)。
A)程序的結(jié)構(gòu)應(yīng)有助于讀者的理解
B)限制GOTO語句的使用
C)減少或取消注釋行
D)程序越短越好A
B
C
D
分值:2答案:A[解析]程序設(shè)計的風(fēng)格主要強(qiáng)調(diào)程序的簡單、清晰和可理解性,以便讀者理解。程序?yàn)E用GOTO語句將使程序流程無規(guī)律,可讀性差;添加注釋行有利于對程序的理解,不應(yīng)減少或取消,程序的長短要依據(jù)實(shí)際的需要而定,并不是越短越好。4.
下列關(guān)于線性表的敘述中,不正確的是(
)。
A)線性表可以是空表
B)線性表是一種線性結(jié)構(gòu)
C)線性表的所有結(jié)點(diǎn)有且僅有一個前件和后件
D)線性表是由n個元素組成的一個有限序列A
B
C
D
分值:2答案:C[解析]線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點(diǎn)沒有前件,最后一個結(jié)點(diǎn)沒有后件,其他結(jié)點(diǎn)有且只有一個前件和后件。所以選項(xiàng)C)是錯誤的。5.
下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是______。
A)便于用戶、開發(fā)人員進(jìn)行理解和交流
B)反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C)作為確認(rèn)測試和驗(yàn)收的依據(jù)
D)便于開發(fā)人員進(jìn)行需求分析A
B
C
D
分值:2答案:D[評析]軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它不能方便開發(fā)人員進(jìn)行需求分析。6.
耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是______。
A)提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B)降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C)耦合性是指—個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D)內(nèi)聚性是指模塊間互相連接的緊密程度A
B
C
D
分值:2答案:B[知識點(diǎn)]軟件設(shè)計的基本原理
[評析](1)內(nèi)聚性:內(nèi)聚性是—個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度量。(2)耦合性;耦合性是模塊間互相連接的緊密程度的度量。因此選項(xiàng)c、D是錯誤的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱?!爿^優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,因此選項(xiàng)A是錯誤的;應(yīng)該降低耦合性提高內(nèi)聚性,所以選項(xiàng)B是正確的。7.
需求分析階段的任務(wù)是(
)。
A)軟件開發(fā)方法
B)軟件開發(fā)工具
C)軟件開發(fā)費(fèi)用
D)軟件系統(tǒng)功能A
B
C
D
分值:2答案:D[解析]需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在這些基礎(chǔ)上確定新系統(tǒng)的功能。8.
以下敘述中錯誤的是______。
A)用戶所定義的標(biāo)識符允許使用關(guān)鍵字
B)用戶所定義的標(biāo)識符應(yīng)盡量做到“見名知意”
C)用戶所定義的標(biāo)識符必須以字母或下劃線開頭
D)用戶所定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識A
B
C
D
分值:2答案:A[解析]在C語言中,用戶所定義的標(biāo)識符不能使用關(guān)鍵字。9.
下列方法中,屬于白盒法設(shè)計測試用例的方法的是(
)。
A)錯誤推測
B)因果圖
C)基本路徑測試
D)邊界值分析A
B
C
D
分值:2答案:C[解析]白盒測試方法也稱為結(jié)構(gòu)測試或邏輯測試,主要方法有邏輯覆蓋測試、基本路徑測試等。10.
下列敘述中錯誤的是______。
(A)在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
(B)數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
(C)數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
(D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持A
B
C
D
分值:2答案:A11.
下列敘述中錯誤的是______。
(A)一個C語言程序只能實(shí)現(xiàn)一種算法
(B)C程序可以由多個程序文件組成
(C)C程序可以由一個或多個函數(shù)組成
(D)一個C函數(shù)可以單獨(dú)作為一個C程序文件存在A
B
C
D
分值:1答案:A12.
設(shè)在C語言中,float類型數(shù)據(jù)占4個字節(jié),則double類型數(shù)據(jù)占(
)個字節(jié)。
A)1
B)2
C)8
D)4A
B
C
D
分值:2答案:C[解析]在C語言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)和機(jī)器的指令周期有關(guān),若int類型占2個字節(jié),則float類型數(shù)據(jù)占4個字節(jié),double類型數(shù)據(jù)占8個字節(jié)。13.
若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是(
)。
w=2,x=3,y=4,z=5;
m=(w<x)?w:x;
m=(m<z)?m:z;
m=(m<y)?m:y;
A)2
B)3
C)5
D)4A
B
C
D
分值:1答案:A[解析]條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達(dá)式b的值;當(dāng)a為假時,其值等于表達(dá)式c的值。
表達(dá)式運(yùn)算過程:第1個表達(dá)式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達(dá)式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達(dá)式:w=2<y=4為真,所以返回m的值,即m=2。14.
下列程序的執(zhí)行結(jié)果是(
)。
#include<stdio.h>
main()
inta,b,c;
a=b=2;
c=(a++)-1;printf("%d,%d",a,c);
c+=-a+++(++b);printf("%d,%d",a,c);
A)3,14,1
B)3,14,2
C)2,04,1
D)2,14,1A
B
C
D
分值:2答案:A[解析]本題主要考查自加運(yùn)算符(++、--)的使用。①前綴變量“++i、--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達(dá)式的值參與運(yùn)算;②后綴變量“i++、i--”,先使用此時的表達(dá)式的值參與運(yùn)算,在使用i之后,再使i的值加1或者減1。
本題中計算表達(dá)式c=(a++)-1時先使用a的值進(jìn)行計算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語句后a的值是3;表達(dá)式c+=-a+++(++b)等價于c=c(-a++)+(++b),c=1+(-3)+3=1,此時a=4,b=3。15.
若有定義inta=5,b=7;,則表達(dá)式a%=(b%2)運(yùn)算后,a的值為(
)。
A)0
B)1
C)11
D)3A
B
C
D
分值:1答案:A[解析]本題考查“%”運(yùn)算符的使用。運(yùn)算符“%”要求兩個運(yùn)算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。本題中表達(dá)式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。16.
已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使I、j、k的值分別為2、3、4,下列正確的輸入語句是(
)。
A)scanf("%3d,%3d,%3d",&i,&j,&k);
B)scanf("%d,%d,%d",&i,&j,&k);
C)scanf("%d%d%d",&i,&j,&k);
D)seanf("i=%d,j=%d,k=%d",&i,&j,&k);A
B
C
D
分值:1答案:B[解析]scanf函數(shù)的調(diào)用形式是:scanf(格式字符中,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符:“輸入項(xiàng)地址表”是要輸入的變量的地址。
若在格式符中插入了其他字符,則在輸入時要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。17.
閱讀以下程序
#include<stdio.h>
main()
IntCase;floatprintF;
printf("請輸入2個數(shù):");
scanf("%d%f",&Case,&printF);
printf("%d%f\n",Case,printF);
以下說法正確的是(
)。
A)定義浯句出錯,Case是關(guān)鍵字,不能用作用戶自定義標(biāo)識符,printF不能用作用戶自定義標(biāo)識符
B)定義語句出錯,Int無法被識別
C)定義語句無錯,scanf不能作為輸入函數(shù)使用
D)定義語句無錯,printf不能輸出Case的值A(chǔ)
B
C
D
分值:1答案:B[解析]C語畝足一種大小寫敏感的語言,因此Int應(yīng)為int,而CaseprintF則可以使用。18.
以下程序的運(yùn)行結(jié)果是
intk=0;
voidfun(intm)
m+=k;k+=m;printf("m=%d
k=%d",m,k++);
main()
inti=4;
fun(i++);
printf("i=%d
k=%d\n",i,k);
A)m=4k=5
i=5k=5
B)m=4k=4i=5k=5
C)m=4k=4i=4k=5
D)m=4k=5i=4k=5A
B
C
D
分值:1答案:B[解析]由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“pdntf("i=%dk=%d\n",i,k);”語句輸出“i=5k=5”。19.
有以下程序:
#include<stdio,h>
main()
intk=5,n=0;
while(k>0)
switch(k)
default:break;
case1
:n+=k;
case2:
case3:n+=k;
k--;
printf("%d\n",n);
程序運(yùn)行后的輸出結(jié)果是(
)。
A)0
B)4
C)6
D)7A
B
C
D
分值:1答案:D[解析]在程序中,當(dāng)L的值為5和4時,case都沒有與其匹配的值,所以執(zhí)行default語句;當(dāng)k=3時,執(zhí)行n+=k;得n=3;當(dāng)L=2時,執(zhí)行case2:然后順序執(zhí)行case3:n+=k;得n=5;當(dāng)k=1時,執(zhí)行case1:n+=k;得n=6,然后順序執(zhí)行case2:和case3:n+=k;使得n=7。20.
有以下程序
main()
intk=5,n=0;
while(k>0)
switch(k)
default:break;
case1:n+=k;
case2:
case3:n+=k;
k--;
printf("%d\n",n);
程序運(yùn)行后的輸出結(jié)果是______。
(A)0
(B)4
(C)6
(D)7A
B
C
D
分值:1答案:D21.
有以下程序
#include
main()
inti,j;
for(i=3;i>=1;i--)
for(j=1;j<=2;j++)
printf("%d",i+j);
printf("\n");
程序運(yùn)行的結(jié)果是________。
(A)234
345
(B)432
543
(C)23
34
45
(D)45
34
23A
B
C
D
分值:2答案:D22.
下列程序的運(yùn)行結(jié)果是(
)。
#include<stdio.h>
main()
intx=5,a=1,b=2,c=5,d=0;
if(a<B)
if(b!=3)
if(!C)
x=1;
else
if(D)
x=1;
elsex=-1;
printf("%d",x);
A)-1
B)0
C)1
D)不確定的值A(chǔ)
B
C
D
分值:2答案:A[解析]本題考查ifelse語句。第1個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第2個if語句,先判斷條件,發(fā)現(xiàn)b!=3條件成立,執(zhí)行下列的語句:第3個if語句,先判斷條件,c=5,則!c條件不成立,執(zhí)行與其配對的else語句:第4個if語句,先判斷條件,d=0,條件不成立,則x=-1,結(jié)束循環(huán)。23.
以下程序段中的變量已正確定義:
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
printf("*");
程序段的輸出結(jié)果是______。
A)******
B)****
C)**
D)*A
B
C
D
分值:2答案:D[解析]本題考杏for循環(huán)語句中嵌套for循環(huán)語句的情況。由于第一個for語句沒有具體的執(zhí)行語句,故當(dāng)i=0時,k=1時,執(zhí)行一次語句printf(“*”);,程序便會跳出整個循環(huán),故運(yùn)行結(jié)果為一個星號。24.
以下程序段的輸出結(jié)果是______。
main()
chars1[10],s2[10],s3[10];
scanf("%s",s1);gets(s2);gets(s3);
puts(s1);puts(s2);puts(s3);
輸入數(shù)據(jù)如下:
(此處<CR>代表回車符)
aaa<CR>
bbb<CR>
A)aaa
bbb
B)aaa
bbb
C)aaa\0bbb\0
D)aaabbbA
B
C
D
分值:2答案:B[評析]scanf是標(biāo)準(zhǔn)輸入函數(shù),在輸入字符串a(chǎn)aa時,實(shí)際的內(nèi)容為“aaa\0”,“\0”是由系統(tǒng)自動加入的;gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動以“\0”代替換行符。25.
以下選項(xiàng)中值為1的表達(dá)式是______。
(A)1-'0'
(B)1-'\0'
(C)'1'-0
(D)'\0'-'0'A
B
C
D
分值:2答案:B26.
當(dāng)把以下四個表達(dá)式用做if語句的控制表達(dá)式時,有一個選項(xiàng)與其他三個選項(xiàng)含義不同,這個選項(xiàng)是(
)。
A)k%2
B)k%2==1
C)(K%2)!=0
D)!k%2==1A
B
C
D
分值:1答案:D[解析]本題選項(xiàng)A)、B)、C)中表達(dá)式用做if語句控制表達(dá)式時,其值一致,即判斷k的值是否為奇數(shù),若為奇數(shù),其表達(dá)式為真,否則為假;而選項(xiàng)D)的表達(dá)式!k%2==1相當(dāng)于(!k)%2==1,只要k的值不為0,則此表達(dá)式的值均為假。27.
定義如下變量和數(shù)組:
inti;
intx[3][3]=1,2,3,4,5,6,7,8,9;
則下面語句的輸出結(jié)果是(
)。
for(i=0;
i<3;
i++)
printf("%d",x[i][2-i]);
A)159
B)147
C)357
D)369A
B
C
D
分值:2答案:C[命題目的]考查二維數(shù)組元素的引用方法。
[解題要點(diǎn)]題中通過二維數(shù)組的行、列下標(biāo)來定位元素的位置,從而實(shí)現(xiàn)元素的引用。
[考點(diǎn)鏈接]二維數(shù)組和數(shù)組元素的值。28.
有以下程序:
#include<stdio.h>
main()
inta[]=1,2,3,4,y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
程序的運(yùn)行結(jié)果是______。
A)y=0
B)y=1
C)y=2
D)y=3A
B
C
D
分值:2答案:D[解析]本題主要考查一維數(shù)組及數(shù)組元素的地址。程序中定義數(shù)組a后知,a[0]=1,a[1]=2,a[2]=3,a[3]=4;在定義指針p時給其賦值為a[3]的地址。執(zhí)行--p;語句后,p指向數(shù)組元素a[2];然后執(zhí)行y=*p;語句,y的值為指針p所指向的變量的值為3。29.
設(shè)有定義:inta=2,b=3,c=4;,則下列選項(xiàng)中值為0的表達(dá)式是(
)。
A)(!a==1)&&(!b==0)
B)(a<b)&&!c‖1
C)a&&b
D)a‖(b+b)&&(c-a)A
B
C
D
分值:2答案:A[解析]在選項(xiàng)A)中,因?yàn)?a=0,所以關(guān)系表達(dá)式!a==1的值為0,又因?yàn)檫壿嬇c運(yùn)算符“&&”兩邊的表達(dá)式只要一個等于零,則整個表達(dá)式為零,所以選項(xiàng)A)正確。在選項(xiàng)B)中,關(guān)系表達(dá)式a<b為真,表達(dá)式(a<b)&&!c為假,而表達(dá)式(a<b)&&!c‖1為真,所以整個表達(dá)式的值為真。選項(xiàng)C)中,a&&b的結(jié)果為真。在選項(xiàng)D)中,a‖(b+b)&&(c-a)的結(jié)果為真。30.
下列敘述中錯誤的是(
)。
A)在程序中凡是以“#”開始的語句行都是預(yù)處理命令行
B)預(yù)處理命令行的最后不能以分號表示結(jié)束
C)#defineMAX是合法的宏定義命令行
D)C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的A
B
C
D
分值:2答案:C[解析]預(yù)處理命令行是以“#”開始的語句,預(yù)處理命令行的最后不能以分號表示結(jié)束,預(yù)處理命令行。其中宏定義的字符替換的定義格式為:#define標(biāo)識符字符串,預(yù)處理命令行是在系統(tǒng)對源程序進(jìn)行編譯之前進(jìn)行處理的,不是在程序執(zhí)行的過程中。31.
有以下程序
main()
inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",a[1][i]);
程序運(yùn)行后的輸出結(jié)果是______。
A)0
1
2
B)1
2
3
C)2
3
4
D)3
4
5A
B
C
D
分值:1答案:D[解析]本題考查二維數(shù)組在內(nèi)存中的排列形式。在C語言中,二維數(shù)組或多維數(shù)組在內(nèi)存中的排列是連續(xù)線性存放的。它們的排列規(guī)則是:第一維下標(biāo)變化最慢,最右邊的下標(biāo)變化最快。如題中的二維數(shù)組a[3][3],其9個元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,定義了一個整型指針p指向二維數(shù)組a的第一個元素a[0][0]。然后在第一個for循環(huán)中利用p將數(shù)組a的元素按順序初始化為0~8共9個值,然后在第二個for循環(huán)中將a[1][0]、a[1][1]、a[1][2]三個元素的值依次輸出。所以選項(xiàng)D正確。32.
有以下程序:
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);
程序運(yùn)行后的輸出結(jié)果是______。
A)4,3,7
B)3,4,7
C)5,2,7
D)2,5,7A
B
C
D
分值:2答案:A[解析]函數(shù)f1是返回x、y中較大的一個,f2是返回x、y中較小的一個。因此e=4,f=3,g=7。33.
執(zhí)行以下語句段后,xy的值是(
)。
int*pt,xy;
xy=200;
pt=&xy;
xy=*pt+30;
A)200
B)170
C)260D)230A
B
C
D
分值:2答案:D[解析]本題考查指針的運(yùn)用。通過pt=&xy,將pt指向xy所占有的內(nèi)存地址,而*pt是指針pt所指向內(nèi)存單元中的內(nèi)容,即200,所以最后xy的值為230。34.
判斷字符串s1是否大于字符串s2,應(yīng)該使用(
)。
A)if(strcmp(s1,s2)<0)
B)if(s1>s2)
C)if(strcmp(s2,s1)<0)
D)if(strcmp(s1,s2))A
B
C
D
分值:1答案:C[解析]本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時,返回值為負(fù)數(shù);當(dāng)str1=str2時,返回0;當(dāng)str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運(yùn)算符比較兩個字符串的大小)。35.
有以下程序
#include
main()
char
p[20]='a','b','c','d',q[]="abc",r[]="abcde"
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",sizeof(p));
程序運(yùn)行后的輸出結(jié)果是________。
(A)9
(B)6
(C)11
(D)7A
B
C
D
分值:2答案:B36.
有以下程序
#include
<stdio.h>
intf(int
x)
int
y;
if(x==0||x==1)
return(3);
y=x*x-f(x-2);
return
y;
main()
int
z;
z=f(3);
printf("%d\n",z);
程序的運(yùn)行結(jié)果是
A)0
B)9
C)6
D)8A
B
C
D
分值:2答案:C[解析]函數(shù)intf(intx)是一個遞歸函數(shù)調(diào)用,當(dāng)x的值等于0或1時,函數(shù)值等于3,其他情況下y=x2-f(x-2),所以在主函數(shù)中執(zhí)行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。37.
若有結(jié)構(gòu)體定義:
structstuintnum;
charsex;
intage;
al,a2;
則下列語句中錯誤的是(
)。
A)printf("%d,%C,%d",a1);
B)a2.age=a1.age;
C)a1.age++;
D)a1.num=5;A
B
C
D
分值:2答案:A[解析]題中a1和a2兩個結(jié)構(gòu)體變量名所對應(yīng)的成員相同,可以與運(yùn)算"++"相結(jié)合。結(jié)構(gòu)體變量的輸出格式:prinf("要輸出變量名:%d\t",結(jié)構(gòu)變量名.要輸出的成員變量名)。38.
有以下程序:
#include<stdio.h>
structtt
intx;structtt*y;*p;
structtta[4]=20,a+1,15,a+2,30,a+3,17,a
main()
inti;
p=a;
for(i=1;i<=2;i++)printf("%d",p->x);p=p->y;
程序的運(yùn)行結(jié)果是______。
A)20,30,
B)30,17
C)15,30
D)20,15A
B
C
D
分值:2答案:D[解析]本題考查的重點(diǎn)是對結(jié)構(gòu)體的運(yùn)用與理解。在a[4]的初始化中,相當(dāng)于將其生成為一個鏈表,故打印兩次相當(dāng)于將前兩個整數(shù)值打印出來,因此選項(xiàng)D是正確的。39.
有以下程序
voidfun(int*a,inti,intj)
intt;
if(i<j)
t=a[i];a[i]=a[j];
a[j]=t;
i++
;
j--
;
fun(a,i,j);
main()
intx[]=2,6,1,8,i;
fun(x,0,3);
for(i=0;i<4;i++)printf("%2d",x[i]);
程序運(yùn)行后的輸出結(jié)果是______。
A)1268
B)8621
C)8162
D)8612A
B
C
D
分值:1答案:C[解析]本題中,fun函數(shù)是實(shí)現(xiàn)了數(shù)組內(nèi)部兩個元素位置的交換。首先,在主函數(shù)中,調(diào)用到fun函數(shù)的時候進(jìn)行if條件的判斷,此時i=0,j=3,滿足條件,因此,數(shù)組中第一個元素和第四個元素進(jìn)行交換;在fun函數(shù)中還有一個遞歸調(diào)用,此時i=1,i=2,仍然滿足條件,再進(jìn)行一次交換,此時第二個元素和第三個元素進(jìn)行交換;最后i=2,j=1,不滿足條件,因此遞歸結(jié)束。最后數(shù)組x中存放的數(shù)據(jù)為{8,1,6,2}。40.
已知函數(shù)的調(diào)用形式:fread(buf,size,count,fp),參數(shù)buf的含義是(
)。
A)一個整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)
B)一個文件指針,指向要讀的文件
C)一個指針,指向要讀入數(shù)據(jù)的存放地址
D)一個存儲區(qū),存放要讀的數(shù)據(jù)項(xiàng)A
B
C
D
分值:2答案:C[解析]buf是一個指針。對函數(shù)fread來說,它是讀入數(shù)據(jù)的存放地址(指起始地址)。對fwrite來說,是要輸出數(shù)據(jù)的地址。二、填空題41.
如果一個工人可管理多個設(shè)施,而一個設(shè)施只可被一個工人管理,則實(shí)體“工人”與實(shí)體“設(shè)備”之間存在
聯(lián)系。
分值:2答案:一對多或1:N[解析]實(shí)體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實(shí)世界事物之間的相互關(guān)聯(lián)。兩個實(shí)體間的聯(lián)系可以歸結(jié)為三種類型:一對一聯(lián)系表現(xiàn)為某一實(shí)體與另一實(shí)體一一對應(yīng)相關(guān)聯(lián);一對多聯(lián)系表現(xiàn)為某一實(shí)體與相關(guān)多個實(shí)體相關(guān)聯(lián);多對多聯(lián)系表現(xiàn)為多個實(shí)體與相關(guān)多個實(shí)體相關(guān)聯(lián)。42.
軟件開發(fā)過程主要分為需求分析、設(shè)計、編碼與測試四個階段,其中______階段產(chǎn)生“軟件需求規(guī)格說明書”。
分值:4答案:需求分析[解析]軟件需求規(guī)格說明書是在需求分析階段產(chǎn)生的。43.
設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式
。
分值:2答案:Y%2=1或Y%2!=0[評析]判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或不為0。本題具體做法如下:Y%2=1或Y%2!=0。44.
以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計算它們的和值,和值通過形參傳回主函數(shù)輸出。請?zhí)羁眨?/p>
#include<stdio.h>
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
inti,j,k,s=0;
for(i=0;i<N;i++)
k=O;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+:
;
=s;
main()
intx[M][N]=3,2,5,1,4,1,8,3,s;
SumColumMin(
);
printf("%d\\n",s);
分值:2答案:a[k][i]
*sum
x,&s[解析]程序段for(j=1;j<M;j++)if(a[k][i]>a[j][i]))k=j;是找出第i列的最小值,[6]處應(yīng)該是每列最小值累加,所以填a[k][i];和值要通過形參傳回主函數(shù),[7]處應(yīng)該填*sum;根據(jù)形參可以確定[8]處應(yīng)該填x,&s。45.
改變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為
。
分值:1.5答案:3[解析]本題考查數(shù)據(jù)類型及其運(yùn)算的逗號運(yùn)算與逗號表達(dá)式,整個表達(dá)式的值為最后一個表達(dá)式的值,其值為3。46.
以下程序運(yùn)行后的輸出結(jié)果是______。
main()
inta=3,b=4,c=5,t=79;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<c&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
分值:2答案:4579[解析]本題考查的是條件判斷語句。本題特別需要注意的是“;”的問題,不能把“t=a;a=c;c=t;”誤認(rèn)為是第一個if的語句,實(shí)際上,只有“t=a;”才是第一個if的語句。所以判斷第一個if語句的表達(dá)式不成立后,執(zhí)行的是“a=c;c=t;”,此時a=5,c=79。然后判斷第二個if語句的條件表達(dá)式,表達(dá)式成立,執(zhí)行后面的3條語句,讓a、b、c分別為4、5和79。47.
下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
intx=1,y=1,a=1,b=1;
switch(x)
case1:
switch(y)
case0:a++;break;
case1:b++;break;
case2:a++:b++;break;
printf("a=%d,b=%d\n",a,b);
分值:4答案:a=2,b=3[解析]程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個switch語句,x=1,所以執(zhí)行case1,case1語句中包含一個復(fù)合swith語句;這時執(zhí)行第二個switch語句,此時y=1,因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個switch語句,則整個case1的復(fù)合語句執(zhí)行完畢,由于這個case1的后面沒有break語句使其退出,所以接著執(zhí)行下列的case2的后面的語句,即將a、b各加1,得到a=2,b=3。48.
以下程序運(yùn)行后的輸出結(jié)果是______。
#include<stdio.h>
main()
inti,n[]=0,0,0,0,0;
for(i=1;i<=4;i++)
n[i]=n[i-1]*3+1;printf("%d",n[i]);
分值:2答案:1
4
1340[解析]分析for循環(huán)的循環(huán)體語句可以知道,數(shù)組n中后一個元素的值是在前一個值的基礎(chǔ)上乘以3再加1,所以n[0]的值為0,n[1]=n[0]*3+1=1,n[2]=n[1]*3+1=4,n[3]=4*3+1=13,n[4]=13*3+1=40,程序中輸出了n[1]~n[4]的值。49.
函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從fp指向的文件中讀入,n個字符放到buf字符數(shù)組中,函數(shù)返回值為______。
分值:2答案:buf的首地址[解析]考查fgets()函數(shù)的功能,fgets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:fgets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個int型變量。調(diào)用函數(shù)fgets()時,最多能讀入n-1個字符,系統(tǒng)自動在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。50.
以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>
main()
intx[10],a[9],i;
for(i=0;i<10;i++)scanf("%d",&x[i]);
for([11];i<10;i++)
a[i-1]=x[i]+[12];
for(i=0;i<9;i++)printf("%d",a[i]);
printf("");
分值:4答案:i=1
x[i-1][解析]對于10個數(shù),相鄰的兩個數(shù)相加取和,總共要進(jìn)行9次加法運(yùn)算,所以空11處應(yīng)填入i=1。相鄰的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空12處應(yīng)填入x[i-1]。51.
以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中語文 第三單元 古代議論性散文 第11課 師說說課稿 新人教版必修3
- 二零二五年度企業(yè)融資擔(dān)保合同范本
- 二零二五年度互聯(lián)網(wǎng)醫(yī)療合伙人股權(quán)分配及患者隱私保護(hù)協(xié)議
- 膠合板熱熔膠項(xiàng)目融資渠道探索
- 2023-2024學(xué)年滬科版(2019)高中信息技術(shù)必修一第二單元項(xiàng)目四《 認(rèn)識智能停車場中的數(shù)據(jù)處理-體驗(yàn)數(shù)據(jù)處理的方法和工具》說課稿001
- 5 《人應(yīng)當(dāng)堅持正義》說課稿 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊
- 2024-2025學(xué)年八年級物理上冊 2.4能量說課稿 (新版)教科版
- 2024-2025學(xué)年高中語文 唐宋詩 3 單元考點(diǎn)對接說課稿 語文版選修《唐宋詩詞鑒賞》
- 12古詩三首《示兒》說課稿-2024-2025學(xué)年五年級語文上冊統(tǒng)編版
- 2025至2030年無框大蝴蝶鎖項(xiàng)目投資價值分析報告
- 北京版小學(xué)英語必背單詞
- 自動化儀表工程施工及質(zhì)量驗(yàn)收規(guī)范
- NB-T 10609-2021 水電工程攔漂排設(shè)計規(guī)范
- 2023年全國4月高等教育自學(xué)考試管理學(xué)原理00054試題及答案新編
- 邵陽市職工勞動能力鑒定表
- 稀土配合物和量子點(diǎn)共摻雜構(gòu)筑發(fā)光軟材料及其熒光性能研究
- JJG 921-2021環(huán)境振動分析儀
- 中藥炮制學(xué)-第五、六章
- 中國風(fēng)軍令狀誓師大會PPT模板
- 小兒高熱驚厥精品課件
- 2022年電拖實(shí)驗(yàn)報告伍宏淳
評論
0/150
提交評論