




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年湖南省邵陽市全國計算機(jī)等級考試C語言程序設(shè)計重點(diǎn)匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若查找每個記錄的概率均等,則在具有n個記錄的連續(xù)順序文件中采用順序查找法查找一個記錄,其平均查找長度ASL為()
A.(n-1)/2B.n/2C.(n+1)/2D.n
2.當(dāng)執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤
3.廣義表(a,b,c,d)的表尾是()。
A.aB.(a)C.(b,c,d)D.((b,c,c))
4.已知i,j,k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1,j的值為2,k的值為3,以下選項(xiàng)中正確的輸入語句是A.scanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
5.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。
A.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
B.結(jié)構(gòu)化程序使用goto語句會很便捷
C.在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
6.如果一個函數(shù)位于C程序文件的上部,在該函數(shù)體內(nèi)說明語句后的復(fù)合語句中定義了一個變量,則該變量().
A.為全局變量,在本程序文件范圍內(nèi)有效
B.為局部變量,只在該函數(shù)內(nèi)有效
C.為局部變量,只在該復(fù)合語句中有效
D.定義無效,為非法變量
7.下列能正確進(jìn)行字符串賦值的是()。A.B.C.D.
8.有以下程序:
執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0
9.以下屬于C語言實(shí)型常量的是()。
A.+6eB.e6+6C.6e+6D..e+6
10.下列敘述中錯誤的是()。
A.一個C語言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個程序文件組成
C.C程序可以由一個或多個函數(shù)組成
D.一個c函數(shù)可以單獨(dú)作為一個C程序文件存在
11.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1
12.下列敘述中正確的是A.C語言中既有邏輯類型也有集合類型
B.C語言中沒有邏輯類型但有集合類型
C.C語言中有邏輯類型但沒有集合類型
D.C語言中既沒有邏輯類型也沒有集合類型
13.
有如下程序:
main()
{intn[5]={0,0,0},i,k=2;
for(i=0;i&printf("%d\n",n[k]););
}
該程序的輸出結(jié)果是()。
A.不確定的值B.2C.1D.0
14.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序運(yùn)行后的輸出結(jié)果是()。
A.3,4,5,6,3,3,B.1,2,3,4,5,6,C.3,4,5,6,1,2,D.3,4,5,6,1,1,
15.有以下程序
#include<stdio.h>
intf(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf(”%d\n”,m);
}
intf(intx)
{returnx*2;}
程序運(yùn)行后的輸出結(jié)果是()。A.1B.2C.4D.8
16.在有向圖G的拓?fù)湫蛄兄校繇旤c(diǎn)Vi在頂點(diǎn)Vj之前,則下列情形不可能出現(xiàn)的是()。
A.G中有弧
B.G中有一條從Vi到Vj的路徑
C.G中沒有弧
D.G中有一條從Vj到Vi的路徑
17.有3個關(guān)系R、S和T如下.
則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并
18.
A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
B.y=0;if(x>0)y=1;elseif(x<0)y=-1;
C.y=0;if(x>=0)if(x>0)y=1;e1sey=-1;
D.if(x>=0)if(x>0)y=1;elsey=0:elsey=-1;
19.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關(guān)系
20.若有定義“inta=3;doubleb=0.1263;charch=‘a(chǎn)’;”,則以下選項(xiàng)中敘述有錯的是()。
A.逗號表達(dá)式的計算結(jié)果是最后一個表達(dá)式的運(yùn)算結(jié)果
B.運(yùn)算符“%”只能對整數(shù)類型的變量進(jìn)行運(yùn)算
C.語句“ch=(unsignedint)a+b;”是對a與b之和進(jìn)行強(qiáng)制類型轉(zhuǎn)換,結(jié)果賦值給變量ch
D.復(fù)合運(yùn)算“a*=b+ch”是將變量b、ch之和與a相乘,結(jié)果再賦值給a
二、2.填空題(20題)21.在運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是【】。
22.下面程序是指從終端讀入的20個字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(*p++);}
23.問題處理方案的正確而完整的描述稱為______。
24.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為______。
25.沒有chara,b;,,若要通過a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進(jìn)制是【】。
26.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有______。
27.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
28.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
29.測試用例包括輸入值集和【】值集。
30.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
31.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指內(nèi)存空間中,形成一個新字符串s。
請?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstrl[100],str2[]="abcdefgh";
sstrcpy(strl,str2);
printf("%s\n",strl);
}
32.下面程序把從終端讀入的10個整數(shù)以二進(jìn)制方式寫入一個名為bi.dat的新文件中。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if(fp=fopen(【】)==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】;
}
fclose(fp);
}
33.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chara[]="labchmfye",t;
inti,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;
}
puts(a);
printf("\n");
}
34.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
35.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
36.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡t=(char*)【】;
37.若有定義:intx=1,y=2;floata=3.7,b=2.1;則(x+y)%2+(int)a/(int)b表達(dá)式的值為()。
38.數(shù)據(jù)的______結(jié)構(gòu)在計算機(jī)存儲空問中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)或物理結(jié)構(gòu)。
39.以下程序的運(yùn)行結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
}
40.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
三、1.選擇題(20題)41.以下能正確定義二維數(shù)組的是______。
A.inta[][3];
B.inta[][3]={2*3};
C.inta[][3]={};
D.inta[2][3]={{1),{2},{3,4}};
42.要求以下程序的功能是計算s=1+1/2+1/3+…+1/10main(){intn;floats;s=1.0;for(n=1O;n>1;n--)s=s+1/n;printf("%6.4f\n",s);}程序運(yùn)行后輸出結(jié)果錯誤,導(dǎo)致錯誤結(jié)果的程序行是()。
A.s=1.0;
B.for(n=1O;n>l;n--)
C.s=s+1/n;
D.printf("%6.4f\n",s);
43.有以下程序:#include<stdio.h>main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q.a,b);程序運(yùn)行后的輸出結(jié)果是()。
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
44.設(shè)有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語句是()。
A.p=&a;B.p=data.a;C.p=&data.a;D.p=a;
45.以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價的是______。
A.if(a>B)&&(b>C))k=1;elsek=0;
B.if((a>B)||(b>C))k=1;elsek=0;
C.if(a<=B)k=0;elseif(b<=C)k=1;
D.if(a>B)k=1;elseif(b>C)k=1;elsek=0;
46.有如下程序:main(){intx=23;do{printf("%d",x--);}while(!x);}程序運(yùn)行后的輸出結(jié)果是()。
A.321B.23C.不輸出任何內(nèi)容D.陷入死循環(huán)
47.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf("%d,",*(p++));printf("%d",**q);}
A.2,2B.1,1C.3,4D.1,2
48.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。
A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值
49.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。
A.不確定B.編譯錯誤C.gD.輸出null字符
50.設(shè)x=061,y=016,則z=x|y的值是()。
A.1111B.1.11111e+007C.111111D.1.1e+007
51.有以下程序:main(){intx=0xFFFF;printf("%d\n",x--);}執(zhí)行后的輸出結(jié)果是()
A.32767B.FFFEC.-1D.-32768
52.以下對C語言中聯(lián)合類型數(shù)據(jù)的正確敘述是()。
A.定義了聯(lián)合變量后,即可引用該變量或該變量中的任意成員
B.一個聯(lián)合變量中可以同時存放其所有成員
C.聯(lián)合中的各個成員使用共同的存儲區(qū)域
D.在向聯(lián)合中的一個成員進(jìn)行賦值時,聯(lián)合中其他成員的值不會改變
53.軟件調(diào)試的目的是______。
A.發(fā)現(xiàn)錯誤B.改正錯誤C.改善軟件的性能D.挖掘軟件的潛能
54.分析下面函數(shù)swap(int*p1,*p2){int*p;*p=*p1;*p1=*p2;*p2=*p;}則該程序功能為()
A.交換*p1和*p2的值
B.正確,但無法改變*p1和*p2的值
C.交換*p1和*p2的地址
D.可能造成系統(tǒng)故障,因?yàn)槭褂昧丝罩羔?/p>
55.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗(yàn)證測試D.驗(yàn)收測試
56.已經(jīng)定義ch為字符型變量,以下賦值表達(dá)式中錯誤的是______。
A.ch='\'B.ch=62+3C.ch=NULLD.ch='\xaa'
57.下列程序的輸出結(jié)果是()。voidf(int*x,int*y){intt;t=*x,*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i+)printf("%d,",a[i]);}
A.8,2,3,4,5,6,7,1
B.5,6,7,8,1,2,3,4
C.1,2,3,4,5,6,7,8
D.8,7,6,5,4,3,2,1
58.有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序運(yùn)行后的輸出結(jié)果是______。
A.15B.16C.12D.59
59.以下選項(xiàng)中可作為C語言合法整數(shù)的是A.10110BB.386C.0XffaD.x2a2
60.若a、b、c1、c2、x、y均是整型變量,則正確的switch語句是______。
A.swich(a+b);{case1:y=a+b;break;case0:y=a-b;break;}case3:y=b-a,break;
B.switch(a*a+b*b){case3:case1:y=a+b;break;}
C.switcha{casec1:y=a-b;break;casec2:x=a*d;break;default:x=a+b;}
D.switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a-b;break;}
四、選擇題(20題)61.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
62.數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.加工B.控制流C.數(shù)據(jù)存儲D.數(shù)據(jù)流
63.
64.
65.下列敘述中正確的是()。
A.循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)
B.循環(huán)隊(duì)列是隊(duì)列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)
D.循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)
66.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.*2*6B.}3*5一C.}5D.*7
67.以下不能定義為用戶標(biāo)識符的是()
A.MainB._0C._intD.sizeof
68.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1,1,2,6,B.6,2,1,1,C.6,4,3,2,D.2,3,4,6,
69.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。
A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中
70.以下能正確定義字符串的語句是(
)。
71.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
72.
以下程序的輸出結(jié)果是()。
main
{inta=1,b;
for(b=1,b<=10;b++)
{if(a>=8)break;
if(a%2==1){a+=5;continue;}
a=3;}
printf("%d\n",b);
A.3B.4C.5D.6
73.
74.下列敘述中正確的是()。
A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)
B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)
C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率
75.已知函數(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)
76.某二叉樹共有7個結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。
A.3B.4C.6D.7
77.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
78.
79.有以下程序程序的運(yùn)行結(jié)果是()
A.8,5,4,2,B.8,7,5,2C.9,7,6,4,D.7,4,2,
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將P所指字符串中的所有字符復(fù)制到b中,要求在每復(fù)制3個字符之后插入1個空格。
例如,若給a輸入字符串:“ABCDEFGHIJK”,調(diào)用函數(shù)后,字符數(shù)組b中的內(nèi)容為:“ABCDEFGHIJK”。
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun(),其功能是刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(char*a){}voidmain(){ chars[81]; printf(“Enterastring:\n”); gets(s); fun(s); printf(“Thestringafterdeleted:\n”); puts(s);}
參考答案
1.C
2.Ado-wlfile的功能是先執(zhí)行一次循環(huán)體,再判斷條件是否成立,當(dāng)x=-1時,執(zhí)行do語句,x=x*x=1,接著執(zhí)行while后的表達(dá)式,其值為0,退出循環(huán),因此循環(huán)體只執(zhí)行了一次。
3.C
4.C
5.C解析:結(jié)構(gòu)化程序設(shè)計是指將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨(dú)立的模塊,與具體的語句結(jié)構(gòu)無關(guān)。Goto語句的濫用會導(dǎo)致程序的可讀性降低。三種基本結(jié)構(gòu)構(gòu)成的程序依然可以解決大規(guī)模的問題,只是不利于復(fù)用。
6.C
7.C選項(xiàng)A、B的空間不夠;選項(xiàng)D中字符串存儲要有結(jié)束符ˊ\0ˊ,且要占用一個空間,printf用來輸出字符,不能輸入字符串。
8.C調(diào)用函數(shù)fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(5);
調(diào)用函數(shù)fun(5)時,由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(3);調(diào)用函數(shù)fun(3)時,由于X的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(1);調(diào)用函數(shù)fun(1)時,由于x的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。
因此函數(shù)調(diào)用fun(7)等價于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。
9.CC語言的實(shí)型常量可以用小數(shù)形式、指數(shù)形式來表示。題中的選項(xiàng)都是指數(shù)形式,指數(shù)形式的一般形式為:尾數(shù)E(或e)整型指數(shù)。C語言規(guī)定,字母E或e之前必須要有數(shù)字,且E或e后面的指數(shù)必須為整數(shù),E或e的前后以及數(shù)字之間不得插入空格。故本題答案為C選項(xiàng)。
10.A答案A
解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實(shí)現(xiàn)多種算法。
11.D124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所以選D。
12.D解析:在C語言中沒有邏輯類型,邏輯類型用整型來表示,故選項(xiàng)A和選項(xiàng)C不正確,C語言中沒有集合類型,故選項(xiàng)B不正確。所以,D選項(xiàng)為所選。
13.D
\n本題for循環(huán)中,當(dāng)i=0時,判斷條件i&printf('%d\n',n[k]),此時i的值是0,輸出n[k]的值也為0,0&0結(jié)果還是0,條件不成立,退出循環(huán)。所以最后輸出結(jié)果為0。
\n
14.A程序首先以讀二進(jìn)制文件的方式打開文件d.dat;然后使用fwrite函數(shù)將數(shù)組a中6個元素寫入d.dat中。并調(diào)用for循環(huán)將a[2]元素(值為3)6次寫入d.dat文件中;接著使用rewind函數(shù)將文件指針fp移動到文件頭;再使用fseek函數(shù)將fp從當(dāng)前位置向后移動2個整數(shù)位置;最后使用fread函數(shù)從fp指向的位置向后讀取6個整數(shù)。由此可知這6個整數(shù)分別是:3,4,5,6,3,3。故本題答案為A選項(xiàng)。
15.D解析:本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結(jié)果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。
16.D若G中有一條從Vj到Vi的路徑,則圖的拓?fù)湫蛄兄许旤c(diǎn)Vj在頂點(diǎn)Vi之前。設(shè)G(V,E)是一個具有n個頂點(diǎn)的有向圖,V中頂點(diǎn)的序列v1,v2,…,vn稱為一個拓?fù)湫蛄?,?dāng)且僅當(dāng)該頂點(diǎn)滿足下列條件:若在有向圖G中,從頂點(diǎn)vi在vj有一條路徑,則在拓?fù)湫蛄兄许旤c(diǎn)vi必須排在頂點(diǎn)vj之前。
17.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。
18.C解析:選項(xiàng)A的意思是:在x>O情況下,y為1,否則,在x=O時,y為0,剩下x<O時,y為-1,滿足本題中函數(shù)的要求。選項(xiàng)B描述的意思是:初始化y的值為0,在x>O時,給y重新賦值為1,否則,在x<O時,給y重新賦值為-1,滿足本題中函數(shù)的要求。選項(xiàng)C描述的意思是:在x>=0情況下,如果x>O,則y為1,否則,即x==0時,y為-1;剩下的x<O時,y為0??梢姶鸢窩實(shí)現(xiàn)的結(jié)果不是給定的表達(dá)式。選項(xiàng)D中描述的意思是:在x>=0的情況下,如果x>O,就給y賦值為1,否則即x==0時給y賦值為0,在不是x>=0的其他情況下,就給y賦值為-1,滿足本題中函數(shù)的要求。所以4個選項(xiàng)中C為所選。
19.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。
20.C逗號表達(dá)式的計算結(jié)果是最后一個表達(dá)式的運(yùn)算結(jié)果,選項(xiàng)A正確;運(yùn)算符“%”是求余運(yùn)算符,只能對整數(shù)類型的變量進(jìn)行運(yùn)算,選項(xiàng)B正確;在語句“ch=(unsignedint)a+b”中,圓括號優(yōu)先級最高,所以首先將a強(qiáng)制轉(zhuǎn)換成無符號整型,再與b相加,結(jié)果賦值給ch,選項(xiàng)C錯誤;復(fù)合運(yùn)算“a*=b+ch”,先計算“b+ch”的值,再將a與b、ch之和相乘,結(jié)果再賦值給a,選項(xiàng)D正確。故本題答案為C選項(xiàng)。
21.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運(yùn)算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運(yùn)算統(tǒng)一起來。循環(huán)鏈表具有兩個特點(diǎn):①在循環(huán)鏈表中增加了一個表頭結(jié)點(diǎn),其數(shù)據(jù)域?yàn)槿我饣蚋鶕?jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點(diǎn)。循環(huán)鏈表的頭指針指向表頭結(jié)點(diǎn)。②循環(huán)鏈表中最后一個結(jié)點(diǎn)的指針不是空,而是指向表頭結(jié)點(diǎn)。
22.\0's\\0'\r\ns解析:本題選通過for循環(huán)從鍵盤讀入20個字符,然后在最后賦一定值'\\0'后為結(jié)束標(biāo)志,再使指針p指向字符串的首地址。最后通過while循環(huán)對字符串進(jìn)行掃描并輸出。
23.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。
24.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。
25.1000001010000010解析:運(yùn)算“&”的規(guī)則是只有當(dāng)兩個相應(yīng)的二進(jìn)制位都為1時,該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。
26.前件前件
27.x+=1x+=1解析:本題考查“++”,“--”運(yùn)算符?!?+”、“--”只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
28.21
29.輸出輸出解析:測試用例曲測試輸入數(shù)據(jù)(輸入值集)和與之對應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。
30.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
31.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個字符型數(shù)組strl和str2,并且給str2賦初值“abc&fgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后指針s和指針t都下移到下一個元素。所以空格處應(yīng)該填*t++或*(t++)。
32."bi.dat"fp'bi.dat'\r\nfp解析:打開文件函數(shù)fopen的參數(shù)是文件名,因此有fopen('bi.dat');而寫文件的參數(shù)是文件指針,因此有fwrite(&j,sizeof(int),1,fp);
33.j+=2a[i]>a[j]j+=2\r\na[i]>a[j]解析:由于要對偶數(shù)位進(jìn)行排位,所以空格處應(yīng)填。j+2,空13處是一個排序算法中的判斷語句,經(jīng)過分析后應(yīng)該填a[i]>a[j]。
34.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。
35.55解析:分析程序,當(dāng)a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結(jié)果為5。
36.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。
37.22解析:本題考查表達(dá)式的運(yùn)算。因?yàn)閤=1,y=2,所以表達(dá)式(x+y)%2=3%2=1,(int)a/(int)b=(int)}(3/2)=1,因此整個表達(dá)式的結(jié)果為(x+y)%2+(int)a/(int)b=1+1=2。
38.邏輯邏輯解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)或物理結(jié)構(gòu)。
39.efghefgh解析:函數(shù)ss返回形參s所指向的符號串的后半部分,故p='efgh'。
40.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標(biāo)識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
41.B解析:(1)二維數(shù)組的定義
二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。
二維數(shù)組在內(nèi)存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。
(2)二維數(shù)組元素的引用
二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)],下標(biāo)可以是整型常量或整型表達(dá)式;其范圍為:0~(常量表達(dá)式-1)。
(3)二維數(shù)組的初始化
可以用以下方法對二維數(shù)組元素初始化。
①分行給二維數(shù)組賦初值,例如;
inta[2][2]=({1,2),{3,4));
這種賦值方式比較直觀,把第1個大括號內(nèi)的數(shù)據(jù)賦給第1行的元素,第2個大括號內(nèi)的數(shù)據(jù)賦給第2行的元素,即按行賦值。
②可以將所有數(shù)據(jù)寫在一個大括號內(nèi),按數(shù)組排列的順序?qū)Ω鱾€元素賦初值。
③可以對部分元素賦初值,沒有初始化的元素值為0。
④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。
42.C解析:程序中由于n為整型,所以1/n的結(jié)果始終為0,故程序最后輸出的結(jié)果為0,其結(jié)果錯誤,原因?yàn)樵诒磉_(dá)式1/n中1和n均為整型,所以應(yīng)該將1改為1.0,這樣表達(dá)式1.0/n的值不為0,為該數(shù)學(xué)表達(dá)式的值,因此可以知道導(dǎo)致程序運(yùn)行后輸出結(jié)果錯誤的行為“s=s+1/n;”,所以,4個選項(xiàng)中選項(xiàng)C符合題意。
43.C解析:程序中P和q是指針變量,它們分別存放了變量a和L的地址,執(zhí)行P=&a;q=&b;語句后,*p和*q的值就分別為7和8,執(zhí)行r=P;P=q;q=r;實(shí)際上是進(jìn)行指針變量p和q的交換,即將其存放的a和b的地址進(jìn)行了交換,也就是P指向了b,q指向了a,此時a,b的值并沒有改變,所以輸出的*P,*q的值為8,7,而a,b的值仍為7,8。
44.C解析:要注意不能將結(jié)構(gòu)體變量作為一個整體進(jìn)行輸入和輸出,只能對結(jié)構(gòu)體變量中的各個成員進(jìn)行輸入和輸出。引用結(jié)構(gòu)體變量中成員的方式有以下幾種:結(jié)構(gòu)體變量名.成員名;指針變量名->成員名;(*指針變量名).成員名。
45.A解析:“a>b?(b>c?1:0):0”的求解順序是:先判斷a>b是否為真,如果為真,則執(zhí)行b>c?1:0,如果b>c為真,則(b>c?1:0)的值為1,從而整個表達(dá)式返回1,否則整個表達(dá)式返回0;如果a仁b,則表達(dá)式返回0。因此功能等價的語句應(yīng)為if((a>b)&&(b>c)k=1;elsek=0;。
46.B解析:本題中使用do-while循環(huán),每執(zhí)行一次循環(huán)體輸出x的值后將x減1。當(dāng)x=23,執(zhí)行循環(huán)體輸出x為23,X=X-1=23-1=22,判斷循環(huán)條件是否成立,因?yàn)閤=22,!x的值為0,終止循環(huán),因此只輸出23。
47.D解析:題干中,*(p++)就是數(shù)組元素a[0],輸出a[0],之后指針p的值加1,**q即是數(shù)組元素a[1]。
48.B解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。
49.A解析:由于s[2][6]表示字符串已超出了數(shù)組s的表示范圍,在C中不會劉數(shù)組越界進(jìn)行檢查,當(dāng)數(shù)組越界時,會得到一個不確定的值。
50.C解析:本題主要考查按位或運(yùn)算,x=061(二進(jìn)制為00110001),y=016(二進(jìn)制為00001110),進(jìn)行或運(yùn)算后結(jié)果為00111111。
51.C
52.C解析:聯(lián)合體的幾個特點(diǎn):①聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間;②各個成員分量全部是從低地址方向開始使用內(nèi)存單元;③聯(lián)合體中的空間在某一時刻只能保存某一個成員的數(shù)據(jù);④聯(lián)合體和結(jié)構(gòu)體可以任意嵌套。
53.B解析:在對程序進(jìn)行測試時會發(fā)現(xiàn)錯誤,這就要進(jìn)行程序調(diào)試(排錯)。程序調(diào)試活動由三部分組成:一是錯誤定位,根據(jù)錯誤的外部表現(xiàn)形式,確定程序中出錯的位置,找出錯誤的內(nèi)在原因;二是對程序進(jìn)行修改,排除這個錯誤;三是進(jìn)行回歸測試,防止引進(jìn)新的錯誤。所以程序調(diào)試的目的就是診斷和改正程序中的錯誤。軟件調(diào)試不能改善軟件的性能,也不能挖掘軟件的潛能。
54.D
55.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認(rèn)測試用于驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機(jī)系統(tǒng)的元素與計算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
56.A解析:反斜杠字符“\\”賦給字符,應(yīng)該寫成ch='\\\\',所以A是錯誤的。
57.D解析:函數(shù)f()的功能是對兩個數(shù)據(jù)互換。在主函數(shù)中指針變量p和q分別指向數(shù)組a[8)的首和尾,在while循環(huán)中實(shí)現(xiàn)從首尾開始數(shù)組元素的互換操作。
58.A解析:自增運(yùn)算符“++”放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。語句p=s;使指針p指向字符串s的首地址,第一次輸出語句先輸出字符'1',指針p再往后移一位,指向字符'5'的地址,第二個輸出語句,同樣先輸出字符'5',指針p再往后移一位,指向字符'9'的地址。
59.C解析:本題考核的知識點(diǎn)是整數(shù)及常數(shù)的表示方法。在C語言中,整數(shù)常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制來表示,選項(xiàng)A為二進(jìn)制表示,故選項(xiàng)A不正確;選項(xiàng)B是八進(jìn)制表示法,但在八進(jìn)制數(shù)中,各個位數(shù)只能為數(shù)字。到7中的一個,而在選項(xiàng)B中,有一個數(shù)字8,故選項(xiàng)B不正確;選項(xiàng)C為十六進(jìn)制表示法正確:選項(xiàng)D中也為十六進(jìn)制表示法,但十六進(jìn)制數(shù)以O(shè)x開頭,故選項(xiàng)D不正確,所以,4個選項(xiàng)中選項(xiàng)c符合題意。
60.D
61.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。
62.B\n數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)等。本題答案為B)。
\n
63.A
64.A
65.B本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的一種也應(yīng)該是線性結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲結(jié)構(gòu)的隊(duì)列。
66.Ddo……while語句是先執(zhí)行后判斷,所以第一次先執(zhí)行循環(huán)體,判斷i%3==1的條件,由于i為5,所以余數(shù)為2,條件不成立,執(zhí)行i++,i的值為6,判斷while條件為真;第二次執(zhí)行循環(huán)體,同第一次循環(huán)的執(zhí)行過程一樣,i的值變?yōu)?,判斷while條件為真;第三次執(zhí)行循環(huán)體,此時i%3==1,條件成立,再判斷i%5==2也成立,打印*與i的值,即*7,然后執(zhí)行break語句,跳出循環(huán)。所以選擇D選項(xiàng)。
67.D解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線,標(biāo)識符名不能與關(guān)鍵字重名。選項(xiàng)A)中Main與主函數(shù)名main不同,所以選項(xiàng)D)是非法的標(biāo)識符。
68.C首先對二維數(shù)組進(jìn)行賦值操作,a[0]J[o]、a[o][1]、…、a[3][2]、a[3兒3]的值為1、4、…、6、1。通I過for嵌套循環(huán)語句和話條件語句,對二維數(shù)組對角線元素進(jìn)l行由大到小的捧序操作,程序最后通過for語句輸出二
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國內(nèi)保理業(yè)務(wù)協(xié)議應(yīng)收賬款池融資版
- 一年級下數(shù)學(xué)教案-退位減法-西師大版
- 2024-2025學(xué)年一年級下學(xué)期數(shù)學(xué)第二單元位置《左和右》(教案)
- 2025年公司和個人簽訂的勞務(wù)合同模板
- 六年級上冊數(shù)學(xué)教案-4.1 比的基本性質(zhì) ︳青島版
- 一年級下冊數(shù)學(xué)教案-小兔請客1 北師大版
- 2025年倉儲保管合同樣本常用版
- 學(xué)習(xí)2025年雷鋒精神62周年主題活動方案 (3份)
- 2025年合肥經(jīng)濟(jì)技術(shù)職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整
- 期中(試題)-外研版(三起)英語三年級下冊-(含答案)
- 2024時事政治考試題庫(100題)
- 零售商超市行業(yè)前臺工作技巧
- YYT 1814-2022 外科植入物 合成不可吸收補(bǔ)片 疝修補(bǔ)補(bǔ)片
- 《紡織服裝材料》課件-項(xiàng)目6 紡織材料的水分及檢測
- 貴州人民版五年級勞動下冊教案
- 中圖版高中地理選擇性必修1第3章第1節(jié)常見天氣現(xiàn)象及成因課件
- 九年級物理說教材課標(biāo)
- 2024年時政必考試題庫(名師系列)
- 江蘇省昆山、太倉、常熟、張家港市2023-2024學(xué)年下學(xué)期七年級數(shù)學(xué)期中試題
- 華能分布式光伏項(xiàng)目EPC總承包工程投標(biāo)文件-技
- 蜜雪冰城營銷策略研究開題報告
評論
0/150
提交評論