版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年河南省三門(mén)峽市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.衡量顯示器的主要技術(shù)指標(biāo)是()
A.波特率B.分辨率C.主頻D.顯示速度
2.以下敘述中正確的是()A.當(dāng)對(duì)文件的讀(寫(xiě)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù)
D.語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
3.以下程序的輸出結(jié)果是().A.A.2222B.2468C.222D.246
4.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9
5.下面程序運(yùn)行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}
A.x=4B.x=0C.x=2D.x=3
6.軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是確定每個(gè)模塊的()。
A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程
7.對(duì)一個(gè)有A,B,C,D隨機(jī)組成的序列進(jìn)行哈夫曼編碼,據(jù)統(tǒng)計(jì),各個(gè)元素的概率分別為:P(A)=0.4,P(B)=0.35,P(C)=0.2,P(D)=0.05,請(qǐng)問(wèn)該編碼的平均期望編碼長(zhǎng)度為()bits。
A.1.45B.1.74C.1.85D.1.92
8.需求分析階段的任務(wù)是確定()
A.軟件開(kāi)發(fā)方法B.軟件開(kāi)發(fā)工具C.軟件開(kāi)發(fā)費(fèi)用D.軟件系統(tǒng)功能
9.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5
10.程序運(yùn)行中需要從鍵盤(pán)上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號(hào)作為分隔符。
A.空格或逗號(hào)B.逗號(hào)或回車C.逗號(hào)或分號(hào)D.空格或回車
11.
12.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是(選項(xiàng)D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
13.若有下列定義,則對(duì)a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
14.下面程序的運(yùn)行結(jié)果是()。
A.gaeB.gaC.LanguageD.有語(yǔ)法錯(cuò)
15.設(shè)x,y,t均為int型變量,執(zhí)行語(yǔ)句:
x=y=3;
t=++x||++y;
完成后,y的值為A.A.不確定B.4C.3D.1
16.高度為h的滿二叉樹(shù)的結(jié)點(diǎn)數(shù)是________個(gè)。
A.log2h+1B.2h+1C.2h-1D.2h-1
17.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。
A.i-1B.iC.i+1D.4一i
18.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
19.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢(shì)是()。
A.通常不會(huì)出現(xiàn)棧滿的情況B.通常不會(huì)出現(xiàn)棧空的情況C.插入操作更容易實(shí)現(xiàn)D.刪除操作更容易實(shí)現(xiàn)
20.以下選項(xiàng)中與“if(a==l)a=b;elsea++;”語(yǔ)句功能不同的switch語(yǔ)句是()。
A.switch(a){casel:a=b;break;default:a++;}
B.switch(a==l){case0:a=b;break;casel:a++;}
C.switch(a){default:a++;break;casel:a=b;}
D.switch(a==l){casel:a=b;break;case0:a++;}
二、2.填空題(20題)21.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
22.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語(yǔ)言表達(dá)式是______。
23.設(shè)有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語(yǔ)句“k=B*20;”(k為int型變量)后,k的值是______。
24.以下程序的輸出結(jié)果是【】。
main()
{charc=′z′;
printf("%c",c-25);}
25.當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為【】。
26.數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。
27.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
28.設(shè)函數(shù)findbig已定義為求3個(gè)數(shù)中的最大值,以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請(qǐng)?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】。
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
29.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。
例如,輸入字符串:abc123edf456gh,執(zhí)行程序后輸出:123456。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
30.若有如下程序:
main()
{intx=4,y=3,x=2,t;
t=x<y<z;
printf("%d\n",t);}
則程序運(yùn)行后的輸出結(jié)果是【】。
31.設(shè)有下列的程序段:
charstr[]="Hello";
char*ptr;
ptr=-str;
執(zhí)行上面的程序段后,*(ptr+5)的值為_(kāi)_____。
32.派生類對(duì)基類繼承控制訪問(wèn)有三種。派生類可以定義其基類中不具備的【】。
33.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請(qǐng)?zhí)羁铡?/p>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(1=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
【】=x;
}
}
34.設(shè)一棵完全二叉樹(shù)共有700個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
35.以下程序的輸出結(jié)果是______。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{inti-2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
36.下列程序的輸出結(jié)果是【】。
voidfun(int*n)
{
while((*n)--);
printf("%d",++(*n));
}
main()
{inta=100;
fun(&a);
}
37.以下程序通過(guò)函數(shù)指針p調(diào)用函數(shù)fun,請(qǐng)?jiān)谔羁諜趦?nèi)寫(xiě)出定義變量p的語(yǔ)句。
voidfun(int*x,int*y)
{……}
main()
{inta=10,b=20;
【】:
p=fun;p(&a,&b);
……
}
38.已有定義:double*p;,請(qǐng)寫(xiě)出完整的語(yǔ)句,利用malloc函數(shù)使p指向一個(gè)雙精度型的動(dòng)態(tài)存儲(chǔ)單元______。
39.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來(lái)存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;};
40.函數(shù)調(diào)用語(yǔ)句:“fgets(buf,n,fp);”從中指向的文件中讀入n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為_(kāi)_____。
三、1.選擇題(20題)41.軟件設(shè)計(jì)中,有利于提高模塊獨(dú)立性的一個(gè)準(zhǔn)則是______。A.低內(nèi)聚低耦合B.低內(nèi)聚高耦合C.高內(nèi)聚低耦合D.高內(nèi)聚高耦合
42.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運(yùn)行后的輸出結(jié)果是______。
A.12353514B.12353513C.12343514D.12343513
43.下列敘述中正確的是()。
A.break語(yǔ)句只能用于switch語(yǔ)句體中
B.continue語(yǔ)句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)
D.在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同
44.下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是
A.對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)體變量
B.對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體
C.對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體
D.對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的
45.有以下程序
main()
{inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf("%d,",a[i][i]);
}
程序運(yùn)行后的輸出結(jié)果是
A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,
46.有定義語(yǔ)句:intb;charc[10];,則正確的輸入語(yǔ)句是
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
47.希爾排序?qū)儆?)。A.A.交換排序B.歸并排序C.選擇排序D.插入排序
48.若變量已正確定義并賦值,以下符合C++語(yǔ)言語(yǔ)法的表達(dá)式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
49.下列對(duì)隊(duì)列的敘述正確的是A.隊(duì)列屬于非線性表B.隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)C.隊(duì)列在隊(duì)尾刪除數(shù)據(jù)D.隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)
50.以下敘述不正確的是
A.一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成
B.一個(gè)C源程序必須包含一個(gè)main函數(shù)
C.C程序的基本組成單位是函數(shù)
D.在C程序中,注釋說(shuō)明只能位于一條語(yǔ)句的后面
51.用C言編寫(xiě)的代碼程序()。
A.可立即執(zhí)行B.是個(gè)源程序C.經(jīng)過(guò)編譯即可執(zhí)行D.經(jīng)過(guò)編譯解釋即可執(zhí)行
52.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)f(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。
A.741B.963C.852D.875421
53.以下選項(xiàng)中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'
54.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒(méi)有輸入出沒(méi)有輸出
55.以下程序的輸出結(jié)果是()。mam(){charcf[3][5]={"AAAA","BBB","CC");printf("\"%s\"n",cf[1]);}
A.AAAAB.BBBC.BBBCCD.CC
56.對(duì)關(guān)系S和只進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含只中的所有元組,這樣的集合運(yùn)算稱為()。
A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算
57.以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
58.在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序B.選擇排序C.快速排序D.歸并排序
59.下列關(guān)于棧的描述中錯(cuò)誤的是______。
A.棧是先進(jìn)后出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入和刪除操作中,不需要改變棧底指針
60.下列說(shuō)法錯(cuò)誤的是()。
A.下列結(jié)構(gòu)體定義時(shí),占據(jù)了5個(gè)字節(jié)的空間structstudent{intnum;intage;charsex;}
B.結(jié)構(gòu)體的成員名可以與程序中的變量名相同
C.對(duì)結(jié)構(gòu)體中的成員可以單獨(dú)使用,它的作用相當(dāng)于普通變量
D.結(jié)構(gòu)體可以嵌套定義
四、選擇題(20題)61.
62.如果在C程序中要用到庫(kù)函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該添加的頭文件是()。
A.stdio.hB.string,hC.a(chǎn)lloc.hD.math.H
63.
64.對(duì)于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是()。
A.程序的執(zhí)行總是從main函數(shù)開(kāi)始,在程序的最后一個(gè)函數(shù)中結(jié)束
B.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開(kāi)始,在main函數(shù)結(jié)束.
C.程序的執(zhí)行總是從main函數(shù)開(kāi)始、
D.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開(kāi)始,在程序的最后一個(gè)函數(shù)中結(jié)束
65.
66.
有下列程序:
main
{intx=5;
do
{printf("%d",X-=4);)
while(!(--x));
}
程序的輸出結(jié)果是()。
A.1B.20C.1-4D.死循環(huán)
67.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)所管理的關(guān)系是()。A.若干個(gè)二維表B.一個(gè)DBF文件C.一個(gè)DBC文件D.若干個(gè)DBC文件
68.
69.兩個(gè)或兩個(gè)以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
70.程序中若有如下說(shuō)明和定義語(yǔ)句
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語(yǔ)句是
A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);
71.
72.若有“doublea;”,則正確的輸入語(yǔ)句是()。A.A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a);
D.scanf("1e",&a);
73.
74.
75.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯(cuò)誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
76.設(shè)有數(shù)組定義:chararray[]="Chinese";則數(shù)組array所占的空間為
A.6個(gè)字節(jié)B.7個(gè)字節(jié)C.8個(gè)字節(jié)D.9個(gè)字節(jié)
77.
78.有以下程序程序執(zhí)行后的輸出結(jié)果是()。
A.y=-IB.y=oC.y=lD.while構(gòu)成無(wú)限循環(huán).
79.若有以下程序
#include<stdio.h>
main()
{inti;
inta[]={1,3,5,7,9}
int*p=a;
for(i=0;i<4;i++)
a[i]=*p;
printf("%d,%d\n",a[2],a[4]);
}
上面程序的輸出結(jié)果是
A.3,9B.5,9
C.1,9D.1,1
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:通過(guò)某種方式實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語(yǔ)句和表達(dá)式。例如變量num1中的值原為2,num2中的值原為1,程序運(yùn)行后,num1中的值為l,num2中的值為2。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存入XX所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過(guò)k傳回。例如,輸入20,則應(yīng)輸出4689101214151618。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.B
2.AB)選項(xiàng)中打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。C)選項(xiàng)中在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,不用先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D)選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫(xiě)。
3.D
4.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語(yǔ)句為p[5],由數(shù)組a可知輸出的為6。
5.C解析:表達(dá)式“x+=-z---y”等價(jià)于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。
6.A解析:從軟件開(kāi)發(fā)的工程化觀點(diǎn)來(lái)看,在使用程序設(shè)計(jì)語(yǔ)言編制程序以前,需要對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計(jì)的任務(wù)就是要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項(xiàng)A。
7.C
8.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)
評(píng)析,需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織,部門(mén)、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開(kāi)發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開(kāi)發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開(kāi)發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。
9.A依據(jù)fun函數(shù),可知其要實(shí)現(xiàn)的功能是將S中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)x,最后輸出x數(shù)組。
10.D
11.D
12.B本題考核的知識(shí)點(diǎn)是puts()函數(shù)的應(yīng)用。主函數(shù)中定義了一個(gè)字符數(shù)組s并賦初值,一個(gè)字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個(gè)元素的地址,而調(diào)用put(str_adr)函數(shù)時(shí),將從str_adr這一地址開(kāi)始,依次輸出存儲(chǔ)單元中的字符,遇到第一個(gè)“\\0”時(shí)結(jié)束輸出,并自動(dòng)輸出一個(gè)換行符。所以put(p++4)將輸出n/No,put(s)將從s第一個(gè)元素開(kāi)始輸出到第3個(gè)元素結(jié)束(因?yàn)閳?zhí)行*(p4)c0語(yǔ)句后s中的第5個(gè)元素的值為0,而s中的第4個(gè)元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
13.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯(cuò)誤(注:數(shù)組元素下標(biāo)從0開(kāi)始);B中,*a+1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。
14.A考查用指針來(lái)引用字符數(shù)組元素的方法。指針pl+k相當(dāng)于指針pl向后移動(dòng)了k個(gè)字符的位置,指針p2同理。
15.Ct=++x或++y,當(dāng)++x不為0的時(shí)候,即++x為真,則不需要再繼續(xù)判斷++y,那么y就不再執(zhí)行自加,因此y=3.
16.C
17.B
\n本題中要求輸出右上半角的數(shù),對(duì)角線上的數(shù)的下標(biāo)相同,所以j=i。
\n
18.DD。【解析】面向?qū)ο笤O(shè)計(jì)方法與面向過(guò)程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。
19.A
20.B題中當(dāng)a的值為l時(shí),關(guān)系表達(dá)式a==l的值為真,即1,因此程序?qū)⑻D(zhuǎn)到easel執(zhí)行a++操作,與題干程序剛好相反。
21.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語(yǔ)言中,程序執(zhí)行完一個(gè)case標(biāo)號(hào)的內(nèi)容后,如果沒(méi)有break語(yǔ)句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語(yǔ)句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2:分支,最后a和b的值分別為2和1。
22.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語(yǔ)言表達(dá)式為:(x>-5)&&(x<5)。
23.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算。運(yùn)算過(guò)程為:k=B*20=(A+3)*20=(2+3)*20=100。
24.aa解析:'z'的ASCII碼值為122,經(jīng)過(guò)c-25運(yùn)算后,得97,以字符形式輸出是a。
25.上溢上溢解析:入隊(duì)運(yùn)算是指在循環(huán)隊(duì)列的隊(duì)尾加入一個(gè)新元素。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將隊(duì)尾指針進(jìn)一(即rear=rear+1),并當(dāng)rear=m+1時(shí)置rear=1;然后將新元素插入隊(duì)尾指針指向的位置。當(dāng)循環(huán)隊(duì)列非空(s=1)時(shí)且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算,這種情況稱為“上溢”。
26.數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)
27.852852解析:循環(huán)前,變量y的值為9,其中,循環(huán)語(yǔ)句在y大于0情況下循環(huán),每次循環(huán)后y的值都減1。循環(huán)體是當(dāng)y能被3整除時(shí)輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán),所以程序輸出852。
28.findbigfindbig解析:f是指向函數(shù)的指針變量,根據(jù)題意要求,空格處應(yīng)填入findbig。
本題目考查:C語(yǔ)言中指向函數(shù)的指針變量定義的一般形式為;
數(shù)據(jù)類型標(biāo)識(shí)符(*指針變量名)();
“數(shù)據(jù)類型標(biāo)識(shí)符”表示函數(shù)返回值的類型。
函數(shù)的調(diào)用可以通過(guò)函數(shù)名調(diào)用,也可以通過(guò)函數(shù)指針調(diào)用。在給函數(shù)指針變量賦值時(shí),只需給出函數(shù)名而不必給出參數(shù)。(*p)()表示定義一個(gè)指向函數(shù)的指針變量,專門(mén)用來(lái)存放函數(shù)的入口地址,可以先后指向不同的指針變量。用函數(shù)指針調(diào)用函數(shù)時(shí),只需要將(*p)代替函數(shù)名即可,在(*p)之后的括號(hào)中,根據(jù)需要寫(xiě)上參數(shù)。
29.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根據(jù)題意和程序可知要填空的內(nèi)容是:將字符申s中的數(shù)字字符放入d數(shù)組的條件。
30.1
31.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在c語(yǔ)言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0',所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組s仕的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
32.數(shù)據(jù)和操作數(shù)據(jù)和操作
33.bar[i]bar[i]解析:fun函數(shù)中的內(nèi)層for循環(huán),求出了每一行中的最大值x,內(nèi)循環(huán)結(jié)束后就需要把最大值放在存儲(chǔ)每行最大值的數(shù)組bar[i]中,因此應(yīng)填bar[i]。
34.350350解析:在任意一棵二叉樹(shù)中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。在根據(jù)完全二叉樹(shù)的定義,在一棵完全二叉樹(shù)中,最多有1個(gè)度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹(shù)具有n個(gè)結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹(shù)中有n/2個(gè)葉子結(jié)點(diǎn)以及n/2-1個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹(shù)中有[n/2]+1個(gè)葉子結(jié)點(diǎn)以及[n/2]個(gè)度為2的結(jié)點(diǎn),沒(méi)有度為1的結(jié)點(diǎn)。本題中,完全二叉樹(shù)共有700個(gè)結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹(shù)中有350個(gè)葉子結(jié)點(diǎn)以及349個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。
35.1616解析:首先將程序中宏替換掉,先把“MCRA(i)”替換成“2*i”,然后把“MCRA(j,2*i)”替換成“2*2*j+2*i”,經(jīng)計(jì)算該表達(dá)式的值為16,所以最后輸出為16。
36.00解析:在函數(shù)fun()中,while((*n)-)是先引用*n的值,再做(*n)--運(yùn)算,所以循環(huán)結(jié)束時(shí)*n的值為0,再做(*n)--運(yùn)算后,*n的值為-1;執(zhí)行++(*n)后,*n的值是0。
37.void(*p)();void(*p)();解析:要定義p為指向函數(shù)的指針變量,需寫(xiě)成void(*p)();,注意*p兩側(cè)的括弧不可以省略,表示P先與*結(jié)合,是指針變量,再與后面的()結(jié)合,表示此指針變量指向函數(shù),這個(gè)函數(shù)無(wú)返回值(同fun()函數(shù))。
38.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個(gè)參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標(biāo)準(zhǔn)的調(diào)用形式應(yīng)該寫(xiě)成:
p(double*)malloc(sizeof(double));
39.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。
40.buf的首地址buf的首地址解析:考查fsets()函數(shù)的功能,f8ets()函數(shù)用來(lái)從文件中讀入字符串。調(diào)用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個(gè)int型變量。調(diào)用函數(shù)fsets()時(shí),最多能讀入n-1個(gè)字符,系統(tǒng)自動(dòng)在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。
41.C耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量,耦合度越高,則模塊的獨(dú)立性越差。內(nèi)聚反映一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度。高內(nèi)聚是指一個(gè)軟件模塊是由相關(guān)性很強(qiáng)的代碼組成,只負(fù)責(zé)一項(xiàng)任務(wù),也就是常說(shuō)的單一責(zé)任原則。低耦合是指不同軟件模塊之間通過(guò)穩(wěn)定的接口交互,而不需要關(guān)心模塊內(nèi)部的實(shí)現(xiàn)。
42.A解析:自增運(yùn)算符“++”,放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。第一條輸出語(yǔ)句,先輸出m=12,m再自加1,變成13,n先自加1再輸出,輸出n=35;第二條輸出語(yǔ)句,先輸出n=35,n再自加1,變成36,m先自加1再輸出,輸出m=14。
43.C解析:只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句。當(dāng)break出現(xiàn)在循環(huán)體的switch語(yǔ)句體內(nèi)時(shí),其作用只是跳出該switch語(yǔ)句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語(yǔ)句中設(shè)置break語(yǔ)句,滿足某種條件,則跳出本層循環(huán)體。
44.A解析:對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對(duì)應(yīng)關(guān)系,對(duì)象之間通過(guò)傳遞消息互相聯(lián)系,從模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對(duì)象的思想廣泛應(yīng)用于C++、Java等語(yǔ)言中,因此A)錯(cuò)誤。
45.A解析:本題利用多重for循環(huán)的嵌套來(lái)實(shí)現(xiàn)對(duì)二維數(shù)組元素的按列排序。利用最外層循環(huán)來(lái)實(shí)現(xiàn)對(duì)列的控制。內(nèi)部循環(huán)利用選擇法對(duì)數(shù)組元素按照從小到大的順序進(jìn)行排列,最后輸出對(duì)角線上的元素值。
46.B解析:scanf函數(shù)的第一個(gè)參數(shù)是格式控制字符串,該字符串中所出現(xiàn)的格式控制符必須與scanf函數(shù)的笫二個(gè)及其后面的參數(shù)一一對(duì)應(yīng).本題中四個(gè)選項(xiàng)的格式控制字符串都是'%d%s',其中包括兩個(gè)格式控制符%d和%s,它們分別表示輸入一個(gè)十進(jìn)制整數(shù)和輸入一個(gè)字符串,其對(duì)應(yīng)的參數(shù)應(yīng)該分別為一個(gè)整型變量的地址和一個(gè)字符型數(shù)組的首地址。變量的地址可以通過(guò)對(duì)變量做取地址(&)運(yùn)算來(lái)得到,而宇符型數(shù)組的首地址則可以直接通過(guò)數(shù)組名來(lái)得到。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
47.D解析:希爾排序的基本思想是把記錄按照下標(biāo)的一定增量進(jìn)行分組,對(duì)每組記錄使用插入排序,隨著增量逐漸減小,所分成的組包含的記錄越來(lái)越多,到增量的值減小到1時(shí),整個(gè)數(shù)據(jù)合成一組,構(gòu)成一組有序記錄,故其屬于插入排序方法。
48.B解析:a=b=c+2實(shí)際上相當(dāng)于a=(b=c+2),進(jìn)而可分解為兩個(gè)表達(dá)式:b=c+2和a=b。注意:選項(xiàng)A)中包含一個(gè)不合法的運(yùn)算符“:=”;選項(xiàng)C)應(yīng)改為(int)18.5%3;選項(xiàng)D)可理解為兩個(gè)表達(dá)式:a+7=c+b和a=a+7,其中第一個(gè)是錯(cuò)的,因?yàn)镃++語(yǔ)言規(guī)定賦值號(hào)的左邊只能是單個(gè)變量,不能是表達(dá)式或常量等。注意:C++語(yǔ)言賦值語(yǔ)句的運(yùn)用,
49.D解析:本題考查數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的基本知識(shí)。隊(duì)列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊(duì)列具有先進(jìn)先出的特性。在隊(duì)列中,允許插入元素的一端叫做隊(duì)尾,允許刪除的一端則稱為隊(duì)頭。這與日常生活中的排隊(duì)是一致的,最早進(jìn)入隊(duì)列的人最早離開(kāi),新來(lái)的人總是加入到隊(duì)尾。因此,本題中只有選項(xiàng)D的說(shuō)法是正確的。
50.D解析:本題考查C語(yǔ)言的基本基礎(chǔ)知識(shí)。在C程序中,注釋用符號(hào)“/*”開(kāi)始,而以符號(hào)“*/”結(jié)束。程序的注釋可以放在程序的任何位置。通常將注釋放在程序的開(kāi)始,以說(shuō)明本程序的功能;或者放在程序的某個(gè)語(yǔ)句后面,以對(duì)此語(yǔ)句的功能進(jìn)行描述。無(wú)論將注釋放有何處,在程序進(jìn)行編譯時(shí),編譯程序不會(huì)處理注釋的內(nèi)容;且注釋內(nèi)容也不會(huì)出現(xiàn)在目標(biāo)程序中。
51.B解析:C語(yǔ)言一種高級(jí)語(yǔ)言,C語(yǔ)言源程序經(jīng)過(guò)C語(yǔ)言編譯程序編譯之后,生成一個(gè)后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程序”(Link)的軟件,把此.obj文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接在一起,生成一個(gè)后綴.exe的可執(zhí)行文件。顯然C語(yǔ)言不能立即執(zhí)行,故選項(xiàng)A錯(cuò)誤;根據(jù)以上定義,選項(xiàng)C和選項(xiàng)D錯(cuò)誤,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
52.C解析:本題考查的重點(diǎn)是printf()函數(shù)和for循環(huán)的執(zhí)行方式。在循環(huán)體內(nèi),若y為的倍數(shù),則執(zhí)行print(“%d”,--y)語(yǔ)句。所以,當(dāng)y為9時(shí),輸出--y為8;當(dāng)y為6時(shí),輸出--y為5;當(dāng)y為3時(shí),輸出--y為2;當(dāng)y為零時(shí),for循環(huán)結(jié)束。因此,選項(xiàng)C是正確的。
53.C解析:C語(yǔ)言中字符常量是以單引號(hào)括起來(lái)的單個(gè)字符,或?yàn)橐浴癨\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。
54.C解析:算法是指為解決某個(gè)特定問(wèn)題而采取的確定且有限的步驟。一個(gè)算法應(yīng)當(dāng)具有以下五個(gè)特性:有窮性;確定性;可行性;有零個(gè)或多個(gè)輸入;有一個(gè)或多個(gè)輸出。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
55.B解析:二維字符數(shù)組可以看成由若干個(gè)一維字符數(shù)組組成,每行是一個(gè)一維字符數(shù)組。本題首先定義了一個(gè)數(shù)組ch[3][5],并給它們按行賦初值,即相當(dāng)于給eh[0]賦值“AAAA”,給ch[1]賦值“BBB”,給eh[2]賦值“BBB”,最后輸出轉(zhuǎn)義字符“?!?、ch[1]和轉(zhuǎn)義字符“\\”,因此輸出為“BBB”。所以,4個(gè)選項(xiàng)中B為所選。
56.A解析:關(guān)系的并運(yùn)算是指,由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,其中包含兩個(gè)關(guān)系中的所有元組。
57.D解析:C語(yǔ)言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:
#define宏名(形參表)字符串
本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。
58.D解析:快速排序的基本思想是,通過(guò)一趟排序?qū)⑴判蛴涗浄指畛瑟?dú)立的兩部
分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對(duì)這兩部分記錄繼
續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序;插入排序的基本操作是指將無(wú)序序列中的各元素依
次插入到已經(jīng)有序的線性表中,從而得到一個(gè)新的序列;選擇排序的基本思想是:掃描整
個(gè)線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對(duì)剩
下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個(gè)或兩個(gè)以上的有序表組合
成一個(gè)新的有序表。
注意:各種排序方法實(shí)現(xiàn)過(guò)程及實(shí)現(xiàn)機(jī)制。
59.B解析:棧是限定在一端進(jìn)行插入與刪除運(yùn)算的線性表。在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底,對(duì)棧的插入和刪除操作中,不需要改變棧底指針。棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。棧具有記憶作用。棧的存儲(chǔ)方式和線性表類似,也有兩種,即順序棧和鏈?zhǔn)綏!?/p>
60.A解析:本題主要考查定義結(jié)構(gòu)體的幾個(gè)特點(diǎn):①結(jié)構(gòu)的定義明確了結(jié)構(gòu)的組成形式,定義了一種C語(yǔ)言中沒(méi)有而用戶需要的新的數(shù)據(jù)類型。與其他的數(shù)據(jù)類型不同,在程序編譯的時(shí)候結(jié)構(gòu)的定義并不會(huì)使系統(tǒng)為該結(jié)構(gòu)分配內(nèi)存空間,只有在說(shuō)明結(jié)構(gòu)變量時(shí)才分配內(nèi)存空間;②結(jié)構(gòu)體的成員名可以與程序中的變量名相同;⑧結(jié)構(gòu)體中的成員可以單獨(dú)使用,它的作用相當(dāng)于普通變量;④結(jié)構(gòu)體可以嵌套定義。
61.D
62.B頭文件;C語(yǔ)言中要用庫(kù)函數(shù),則需在前面添加頭文件。輸入輸出函數(shù)的頭文件為”stdio.h”
63.B\r\n
64.C任何一個(gè)C語(yǔ)言程序的執(zhí)行都是從主函數(shù)main開(kāi)始,至主函數(shù)main結(jié)束。故本題答案為C選項(xiàng)。
65.B
66.C
\n本題考查do-while循環(huán)。先執(zhí)行do的內(nèi)容,也就是printf語(yǔ)句,x=x-4=1,輸出1,判斷while循環(huán)的控制條件,--x=0,則!(--x)為非零,循環(huán)條件成立,執(zhí)行下一次循環(huán);x=x-4=-4,輸出-4,判斷while循環(huán)的條件,--X=-5,則!(--x)為零,循環(huán)條件不成立,結(jié)束循環(huán)。
67.A解析:VisualFoxPro就是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),一個(gè)“表”就是一個(gè)關(guān)系,一個(gè)關(guān)系就是一個(gè)二維表。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)可管理若干個(gè)二維表。
68.D
69.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個(gè)模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過(guò)接口。
[知識(shí)拓展]模塊的獨(dú)立程序是評(píng)價(jià)設(shè)計(jì)好壞的一個(gè)重要標(biāo)準(zhǔn),衡量軟件的模塊獨(dú)立性有兩個(gè)定性的度量標(biāo)準(zhǔn)。其中內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度最,內(nèi)聚性是從功能角度來(lái)度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量,耦合性從整體的角度來(lái)度量模塊間的聯(lián)系。
70.A解析:函數(shù)fun()的參數(shù)為指針類型,返回值為字符型,而選項(xiàng)B、C的參數(shù)不是指針類型,所以不正確,選項(xiàng)D中,*fl(s)表示返回值為指針的函數(shù),所以也不正確。
71.C
72.C本題考查scanf函數(shù)的調(diào)用形式:scanf(格式字符串,輸入項(xiàng)地址表)?!案袷阶址笔且斎氲淖兞康母袷椒弧拜斎腠?xiàng)地址表”是要輸入的變量的地址。
73.B
74.C
75.D共用體變量中的所有成員共享一段公共存儲(chǔ)區(qū),所有成員的首地址相同。在每一個(gè)時(shí)刻所有的成員中只有一個(gè)有效,即只有最后一個(gè)被賦值的成員有效,其余的成員無(wú)效。
76.C本題主要考查字符數(shù)組的初始化操作。字符數(shù)組的初始化可以逐個(gè)元素賦值,也可以作為字符串賦值。
逐個(gè)元素賦值初始化形式:
char數(shù)組名[n]={字符1,字符2,……,字符n};
char數(shù)組名[]={字符1,字符2,……,字符n};
作為字符串賦值形式:
char數(shù)組名[n]='字符串';
char數(shù)組名[]='字符串';
在C語(yǔ)言中,為了方便確定字符串的長(zhǎng)度,編譯系統(tǒng)在字符串后增加了一個(gè)結(jié)束標(biāo)識(shí)’\\0’,即ASCII碼的0。因此,當(dāng)采用字符串初始化字符數(shù)組時(shí),必須為其保留一個(gè)存放結(jié)束標(biāo)識(shí)符的位置。
在本題中,用一個(gè)字符串作為數(shù)組的初值,這種方法直觀、方便,而且符合人們的習(xí)慣。數(shù)組array的長(zhǎng)度是7,但所占的空間是8,這點(diǎn)必須要注意。因?yàn)樽址A康淖詈笥上到y(tǒng)加上一個(gè)’\0’,因此,上面的初始化是chararray[]={′C′,′h′,′i′,′n′,′e′,′s′,′e′,′\0′}。
77.B
78.A當(dāng)y為。時(shí),表達(dá)式y(tǒng)一才為假,循環(huán)結(jié)束,最終y的值為一l,所以答案選擇A)。
79.C本題中,程序開(kāi)始定義了一個(gè)數(shù)組a,并對(duì)這個(gè)數(shù)組進(jìn)行賦初值。然后定義一個(gè)整型變量i和一個(gè)整型指針變量p,并使指針變量p指向數(shù)組a的首地址。然后執(zhí)行for循環(huán),循環(huán)變量i的初值為0,循環(huán)結(jié)束條件為變量i的值大于等于4,循環(huán)變量i的值每循環(huán)一次自加1,通過(guò)這些分析我們知道,循環(huán)執(zhí)行了4次結(jié)束。
第一次循環(huán)時(shí),由于*p表示數(shù)組的第一個(gè)元素值1,那么執(zhí)行a[i]=*p;語(yǔ)句,即將數(shù)組的第一個(gè)元素變?yōu)?;第二次循環(huán)時(shí),由于i為1,即將數(shù)組的第二個(gè)元素變?yōu)?,同理,第三次與第四次循環(huán)分別將數(shù)組的第三和第四個(gè)元素值變?yōu)?。
循環(huán)結(jié)束,程序執(zhí)行輸出語(yǔ)句,這時(shí)數(shù)組中所有元素的值分別為1,1,1,1,9,因此,程序最后的輸出結(jié)果是1,9,答案選C。
80.A
81.(1)錯(cuò)誤:t=x;x=y;
正確:t=*x;*x=y;
(2)錯(cuò)誤:return(y);
正確:return(t);
【解析】由函數(shù)proc()可知,變量x為整型指針,而變量t為整型變量.不能直接賦值。因此,“t=x;x=y;”應(yīng)改為“t=*x;*x=y;”。題目要求實(shí)現(xiàn)兩個(gè)數(shù)的交換,因此函數(shù)proc()應(yīng)返回變量X的值,變量x的值存放在變量t中。因此,“return(y);”應(yīng)改為“return(t);”。
82.
【解析】題目中要求將所有大于l小于整數(shù)m的非素?cái)?shù)存入xx所指數(shù)組中,因此需要判斷所有大干1小于m的整數(shù)是否為素?cái)?shù)。將所有大干1小于m的非素?cái)?shù)放入數(shù)組xx中,并將非素?cái)?shù)的個(gè)數(shù)通過(guò)形參k傳遞回主函數(shù)中。
2021年河南省三門(mén)峽市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.衡量顯示器的主要技術(shù)指標(biāo)是()
A.波特率B.分辨率C.主頻D.顯示速度
2.以下敘述中正確的是()A.當(dāng)對(duì)文件的讀(寫(xiě)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù)
D.語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
3.以下程序的輸出結(jié)果是().A.A.2222B.2468C.222D.246
4.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9
5.下面程序運(yùn)行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}
A.x=4B.x=0C.x=2D.x=3
6.軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是確定每個(gè)模塊的()。
A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程
7.對(duì)一個(gè)有A,B,C,D隨機(jī)組成的序列進(jìn)行哈夫曼編碼,據(jù)統(tǒng)計(jì),各個(gè)元素的概率分別為:P(A)=0.4,P(B)=0.35,P(C)=0.2,P(D)=0.05,請(qǐng)問(wèn)該編碼的平均期望編碼長(zhǎng)度為()bits。
A.1.45B.1.74C.1.85D.1.92
8.需求分析階段的任務(wù)是確定()
A.軟件開(kāi)發(fā)方法B.軟件開(kāi)發(fā)工具C.軟件開(kāi)發(fā)費(fèi)用D.軟件系統(tǒng)功能
9.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5
10.程序運(yùn)行中需要從鍵盤(pán)上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號(hào)作為分隔符。
A.空格或逗號(hào)B.逗號(hào)或回車C.逗號(hào)或分號(hào)D.空格或回車
11.
12.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是(選項(xiàng)D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
13.若有下列定義,則對(duì)a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
14.下面程序的運(yùn)行結(jié)果是()。
A.gaeB.gaC.LanguageD.有語(yǔ)法錯(cuò)
15.設(shè)x,y,t均為int型變量,執(zhí)行語(yǔ)句:
x=y=3;
t=++x||++y;
完成后,y的值為A.A.不確定B.4C.3D.1
16.高度為h的滿二叉樹(shù)的結(jié)點(diǎn)數(shù)是________個(gè)。
A.log2h+1B.2h+1C.2h-1D.2h-1
17.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。
A.i-1B.iC.i+1D.4一i
18.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
19.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢(shì)是()。
A.通常不會(huì)出現(xiàn)棧滿的情況B.通常不會(huì)出現(xiàn)??盏那闆rC.插入操作更容易實(shí)現(xiàn)D.刪除操作更容易實(shí)現(xiàn)
20.以下選項(xiàng)中與“if(a==l)a=b;elsea++;”語(yǔ)句功能不同的switch語(yǔ)句是()。
A.switch(a){casel:a=b;break;default:a++;}
B.switch(a==l){case0:a=b;break;casel:a++;}
C.switch(a){default:a++;break;casel:a=b;}
D.switch(a==l){casel:a=b;break;case0:a++;}
二、2.填空題(20題)21.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
22.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語(yǔ)言表達(dá)式是______。
23.設(shè)有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語(yǔ)句“k=B*20;”(k為int型變量)后,k的值是______。
24.以下程序的輸出結(jié)果是【】。
main()
{charc=′z′;
printf("%c",c-25);}
25.當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為【】。
26.數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。
27.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
28.設(shè)函數(shù)findbig已定義為求3個(gè)數(shù)中的最大值,以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請(qǐng)?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】。
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
29.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。
例如,輸入字符串:abc123edf456gh,執(zhí)行程序后輸出:123456。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
30.若有如下程序:
main()
{intx=4,y=3,x=2,t;
t=x<y<z;
printf("%d\n",t);}
則程序運(yùn)行后的輸出結(jié)果是【】。
31.設(shè)有下列的程序段:
charstr[]="Hello";
char*ptr;
ptr=-str;
執(zhí)行上面的程序段后,*(ptr+5)的值為_(kāi)_____。
32.派生類對(duì)基類繼承控制訪問(wèn)有三種。派生類可以定義其基類中不具備的【】。
33.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請(qǐng)?zhí)羁铡?/p>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(1=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
【】=x;
}
}
34.設(shè)一棵完全二叉樹(shù)共有700個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
35.以下程序的輸出結(jié)果是______。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{inti-2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
36.下列程序的輸出結(jié)果是【】。
voidfun(int*n)
{
while((*n)--);
printf("%d",++(*n));
}
main()
{inta=100;
fun(&a);
}
37.以下程序通過(guò)函數(shù)指針p調(diào)用函數(shù)fun,請(qǐng)?jiān)谔羁諜趦?nèi)寫(xiě)出定義變量p的語(yǔ)句。
voidfun(int*x,int*y)
{……}
main()
{inta=10,b=20;
【】:
p=fun;p(&a,&b);
……
}
38.已有定義:double*p;,請(qǐng)寫(xiě)出完整的語(yǔ)句,利用malloc函數(shù)使p指向一個(gè)雙精度型的動(dòng)態(tài)存儲(chǔ)單元______。
39.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來(lái)存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;};
40.函數(shù)調(diào)用語(yǔ)句:“fgets(buf,n,fp);”從中指向的文件中讀入n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為_(kāi)_____。
三、1.選擇題(20題)41.軟件設(shè)計(jì)中,有利于提高模塊獨(dú)立性的一個(gè)準(zhǔn)則是______。A.低內(nèi)聚低耦合B.低內(nèi)聚高耦合C.高內(nèi)聚低耦合D.高內(nèi)聚高耦合
42.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運(yùn)行后的輸出結(jié)果是______。
A.12353514B.12353513C.12343514D.12343513
43.下列敘述中正確的是()。
A.break語(yǔ)句只能用于switch語(yǔ)句體中
B.continue語(yǔ)句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)
D.在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同
44.下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是
A.對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)體變量
B.對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體
C.對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體
D.對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的
45.有以下程序
main()
{inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf("%d,",a[i][i]);
}
程序運(yùn)行后的輸出結(jié)果是
A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,
46.有定義語(yǔ)句:intb;charc[10];,則正確的輸入語(yǔ)句是
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
47.希爾排序?qū)儆?)。A.A.交換排序B.歸并排序C.選擇排序D.插入排序
48.若變量已正確定義并賦值,以下符合C++語(yǔ)言語(yǔ)法的表達(dá)式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
49.下列對(duì)隊(duì)列的敘述正確的是A.隊(duì)列屬于非線性表B.隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)C.隊(duì)列在隊(duì)尾刪除數(shù)據(jù)D.隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)
50.以下敘述不正確的是
A.一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成
B.一個(gè)C源程序必須包含一個(gè)main函數(shù)
C.C程序的基本組成單位是函數(shù)
D.在C程序中,注釋說(shuō)明只能位于一條語(yǔ)句的后面
51.用C言編寫(xiě)的代碼程序()。
A.可立即執(zhí)行B.是個(gè)源程序C.經(jīng)過(guò)編譯即可執(zhí)行D.經(jīng)過(guò)編譯解釋即可執(zhí)行
52.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)f(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。
A.741B.963C.852D.875421
53.以下選項(xiàng)中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'
54.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒(méi)有輸入出沒(méi)有輸出
55.以下程序的輸出結(jié)果是()。mam(){charcf[3][5]={"AAAA","BBB","CC");printf("\"%s\"n",cf[1]);}
A.AAAAB.BBBC.BBBCCD.CC
56.對(duì)關(guān)系S和只進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含只中的所有元組,這樣的集合運(yùn)算稱為()。
A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算
57.以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
58.在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序B.選擇排序C.快速排序D.歸并排序
59.下列關(guān)于棧的描述中錯(cuò)誤的是______。
A.棧是先進(jìn)后出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入和刪除操作中,不需要改變棧底指針
60.下列說(shuō)法錯(cuò)誤的是()。
A.下列結(jié)構(gòu)體定義時(shí),占據(jù)了5個(gè)字節(jié)的空間structstudent{intnum;intage;charsex;}
B.結(jié)構(gòu)體的成員名可以與程序中的變量名相同
C.對(duì)結(jié)構(gòu)體中的成員可以單獨(dú)使用,它的作用相當(dāng)于普通變量
D.結(jié)構(gòu)體可以嵌套定義
四、選擇題(20題)61.
62.如果在C程序中要用到庫(kù)函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該添加的頭文件是()。
A.stdio.hB.string,hC.a(chǎn)lloc.hD.math.H
63.
64.對(duì)于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是()。
A.程序的執(zhí)行總是從main函數(shù)開(kāi)始,在程序的最后一個(gè)函數(shù)中結(jié)束
B.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開(kāi)始,在main函數(shù)結(jié)束.
C.程序的執(zhí)行總是從main函數(shù)開(kāi)始、
D.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開(kāi)始,在程序的最后一個(gè)函數(shù)中結(jié)束
65.
66.
有下列程序:
main
{intx=5;
do
{printf("%d",X-=4);)
while(!(--x));
}
程序的輸出結(jié)果是()。
A.1B.20C.1-4D.死循環(huán)
67.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)所管理的關(guān)系是()。A.若干個(gè)二維表B.一個(gè)DBF文件C.一個(gè)DBC文件D.若干個(gè)DBC文件
68.
69.兩個(gè)或兩個(gè)以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
70.程序中若有如下說(shuō)明和定義語(yǔ)句
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語(yǔ)句是
A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);
71.
72.若有“doublea;”,則正確的輸入語(yǔ)句是()。A.A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a);
D.scanf("1e",&a);
73.
74.
75.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯(cuò)誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
76.設(shè)有數(shù)組定義:chararray[]="Chinese";則數(shù)組array所占的空間為
A.6個(gè)字節(jié)B.7個(gè)字節(jié)C.8個(gè)字節(jié)D.9個(gè)字節(jié)
77.
78.有以下程序程序執(zhí)行后的輸出結(jié)果是()。
A.y=-IB.y=oC.y=lD.while構(gòu)成無(wú)限循環(huán).
79.若有以下程序
#include<stdio.h>
main()
{inti;
inta[]={1,3,5,7,9}
int*p=a;
for(i=0;i<4;i++)
a[i]=*p;
printf("%d,%d\n",a[2],a[4]);
}
上面程序的輸出結(jié)果是
A.3,9B.5,9
C.1,9D.1,1
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:通過(guò)某種方式實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語(yǔ)句和表達(dá)式。例如變量num1中的值原為2,num2中的值原為1,程序運(yùn)行后,num1中的值為l,num2中的值為2。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存入XX所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過(guò)k傳回。例如,輸入20,則應(yīng)輸出4689101214151618。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.B
2.AB)選項(xiàng)中打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。C)選項(xiàng)中在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,不用先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D)選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫(xiě)。
3.D
4.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語(yǔ)句為p[5],由數(shù)組a可知輸出的為6。
5.C解析:表達(dá)式“x+=-z---y”等價(jià)于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。
6.A解析:從軟件開(kāi)發(fā)的工程化觀點(diǎn)來(lái)看,在使用程序設(shè)計(jì)語(yǔ)言編制程序以前,需要對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計(jì)的任務(wù)就是要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項(xiàng)A。
7.C
8.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)
評(píng)析,需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織,部門(mén)、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開(kāi)發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開(kāi)發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開(kāi)發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。
9.A依據(jù)fun函數(shù),可知其要實(shí)現(xiàn)的功能是將S中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)x,最后輸出x數(shù)組。
10.D
11.D
12.B本題考核的知識(shí)點(diǎn)是puts()函數(shù)的應(yīng)用。主函數(shù)中定義了一個(gè)字符數(shù)組s并賦初值,一個(gè)字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個(gè)元素的地址,而調(diào)用put(str_adr)函數(shù)時(shí),將從str_adr這一地址開(kāi)始,依次輸出存儲(chǔ)單元中的字符,遇到第一個(gè)“\\0”時(shí)結(jié)束輸出,并自動(dòng)輸出一個(gè)換行符。所以put(p++4)將輸出n/No,put(s)將從s第一個(gè)元素開(kāi)始輸出到第3個(gè)元素結(jié)束(因?yàn)閳?zhí)行*(p4)c0語(yǔ)句后s中的第5個(gè)元素的值為0,而s中的第4個(gè)元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
13.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度電商虛擬現(xiàn)實(shí)技術(shù)應(yīng)用委托經(jīng)營(yíng)協(xié)議3篇
- 二零二五年度奶粉品牌線上直播帶貨代理合同
- 二零二五版智能停車場(chǎng)建設(shè)工程承包簡(jiǎn)易合同3篇
- 二零二五年度公益活動(dòng)布展策劃與實(shí)施協(xié)議3篇
- 2025年度煤炭行業(yè)信用風(fēng)險(xiǎn)管理合作協(xié)議書(shū)
- 2025年綠色建筑項(xiàng)目泥水工安全責(zé)任合同
- 二零二五年度馬鈴薯種植保險(xiǎn)及風(fēng)險(xiǎn)防控合作協(xié)議4篇
- 二零二五年船舶空調(diào)系統(tǒng)改造與環(huán)保驗(yàn)收合同3篇
- 個(gè)人住宅室內(nèi)裝修設(shè)計(jì)服務(wù)合同(2024版)3篇
- 2025年度化肥電商平臺(tái)合作與服務(wù)協(xié)議2篇
- 物流無(wú)人機(jī)垂直起降場(chǎng)選址與建設(shè)規(guī)范
- 肺炎臨床路徑
- 外科手術(shù)鋪巾順序
- 創(chuàng)新者的窘境讀書(shū)課件
- 綜合素質(zhì)提升培訓(xùn)全面提升個(gè)人綜合素質(zhì)
- 如何克服高中生的社交恐懼癥
- 聚焦任務(wù)的學(xué)習(xí)設(shè)計(jì)作業(yè)改革新視角
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)三 APP的品牌建立與價(jià)值提供
- 電子競(jìng)技范文10篇
- 食堂服務(wù)質(zhì)量控制方案與保障措施
- VI設(shè)計(jì)輔助圖形設(shè)計(jì)(2022版)
評(píng)論
0/150
提交評(píng)論