




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年四川省巴中市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.在一個單鏈表HL中,若要在指針q所指結(jié)點(diǎn)的后面插入一個由指針p所指向的結(jié)點(diǎn),則執(zhí)行____。
A.q一>next=p一>next;p一>next=q;
B.q一>next=p一>next;p一>next=q;
C.p一>next=q一>next;q=p;
D.p一>next=q一>next;q一>next=p;
2.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)必定是一一對應(yīng)的
B.由于計(jì)算機(jī)存儲空間是向量式的存儲結(jié)構(gòu),因此,數(shù)據(jù)的存儲結(jié)構(gòu)一定是線性結(jié)構(gòu)
C.程序設(shè)計(jì)語言中的數(shù)組一般是順序存儲結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)
D.以上三種說法都不對
3.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,“w”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的運(yùn)行結(jié)果是()。
A.321B.12300C.1D.123
4.以下敘述中錯誤的是()。
A.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
C.在不同的函數(shù)中可以定義相同名字的變量
D.函數(shù)的形參是局部變量
5.樹的度為3,且有9個度為3的節(jié)點(diǎn),5個度為1的節(jié)點(diǎn),但沒有度為2的節(jié)點(diǎn)。則該樹中的葉子節(jié)點(diǎn)數(shù)為()。
A.18B.33C.19D.32
6.若輸入“abcdef”、“abdef”,以下程序的輸出結(jié)果為()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}
A.-1B.0C.abcdefD.abdef
7.程序中對fun函數(shù)有如下說明
void*fun();
此說明的含義是:A.fun了數(shù)無返回值
B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型
C.fun函數(shù)的返回值是無值型的指針類型
D.指針fun指向一個函數(shù),該函數(shù)無返回值
8.若有如下程序:intsub(){staticintn=1;intx=1;x*=n;n++;returnx;}main(){intn,t=1;for(n=1;n<6;n++)t*=sub();printf("%d\n",t);}則程序運(yùn)行后的輸出結(jié)果是()
A.15B.120C.34560D.-30976
9.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運(yùn)行時輸入以下命令行tt12345678程序運(yùn)行后的輸出結(jié)果是A.12B.12345C.12345678D.136
10.若有定義和語句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);則輸出結(jié)果是()。A.20,10B.20,20C.10,20D.10,10
11.軟件生命周期中所花費(fèi)用最多的階段是()。
A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測試D.軟件維護(hù)
12.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運(yùn)算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
13.
14.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。
A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試
15.設(shè)有定義語句:doublex=123.456;則語句printf(“%6.2f,%3.0f\n”,x,x);的輸出結(jié)果是()。
A.123.46,123.0B.123.45,123C.123.46,123D.123.45,123.
16.下列字符數(shù)組初始化語句中,不正確的是()。
A.charc[]=goodmorning;
B.charc[20]="goodmorning";
C.charc[]={a,b,c,d);
D.charc[]={"ffgoodmorning"};
17.鏈表不具有的特點(diǎn)是A.A.不必事先估計(jì)存儲空間
B.可隨機(jī)訪問任一元素
C.插入和刪除不需要移動元素
D.所需空間與線性表長度成正比
18.是哈希查找的沖突處理方法()。
A.求余法B.平均取中法C.二分法D.開放地址法
19.
有以下結(jié)構(gòu)體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語句是()。
structnode
{chardata;
structnode*next:
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
20.對包含N個元素的散列表進(jìn)行檢索,平均檢索長度________
A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是
二、2.填空題(20題)21.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。
22.下面程序的功能是:計(jì)算110之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,I;
a=c=0;
for(I=0;I<=10;I+=2)
{a+=I;
【】;
c+=b;}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);}
23.如果一個工人可管理多個設(shè)施,而一個設(shè)施只被一個工人管理,則實(shí)體“工人”與實(shí)體“設(shè)備”之間存在______聯(lián)系。
24.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{chara[]={'\1','\2','\3','\4','\0'};
printf("%d%d\n",sizeof(a),strlen(a));
}
25.在面向?qū)ο蠓椒ㄖ校瑢傩耘c操作相似的一組對象稱為【】。
26.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
27.以下程序運(yùn)行后的輸出結(jié)果是【】。
#defineS(x)4*x*x+1
mah()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
28.下列程序的輸出結(jié)果是______。
#include<stdio.h>
sb(ints[],intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8};
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);
}
printf("\n");
}
29.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staiccharb[]="Goodbye";
char*chp=&b[7];
while(--chp>=&b[0])putchar(*chp);
printf("\n");
}
30.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。
例如,輸入字符串:abc123edf456gh,執(zhí)行程序后輸出:123456。請?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);
}
31.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和方法的機(jī)制稱為______。
32.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i=i;]
for(1;i<4;i++)
k+=arr[i]+i;
printf("%d\n",k);}
33.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項(xiàng)和后項(xiàng)之和存入數(shù)組b,并按每行4個元素輸出數(shù)組b。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4=0)printf("\n");
printf("%3d",b[i]);
}
}
34.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
35.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
36.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】
37.若從鍵盤輸入58,則以下程序輸出的結(jié)果是【】。
mam()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
38.當(dāng)線性表采用順序存儲結(jié)構(gòu)實(shí)現(xiàn)存儲時,其主要特點(diǎn)是______。
39.在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個二維表稱為一個【】。
40.若a的值為1,則表達(dá)式!a‖++a的值是______。
三、1.選擇題(20題)41.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2=-"ABC",str,[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}
A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC
42.設(shè)語句inta=3;,當(dāng)執(zhí)行了以下語句后,變量a的值是______。a+=a-=a*a;
A.3B.0C.9D.-12
43.下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}
A.0B.3C.OKD.沒有任何輸出
44.若變量已正確說明為float型,要通過scanf("%f%f%f",&a,&b,&c);給a賦值10.0,b賦值22.0,c賦值33.0,下列不正確的輸入形式是()。
A.10<回車>22<回車>33<回車>
B.10.0,22.0,33.0<回車>
C.10.0<回車>22.033.0<回車>
D.1022<回車>33<回車>
45.在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序B.選擇排序C.快速排序D.歸并排序
46.有以下程序:main(){unsignedchara,b;a=4|3;b=4&3;printf("%d%d\n",a,b);}執(zhí)行后輸出結(jié)果是()。
A.70B.07C.11D.430
47.設(shè)有如下定義:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正確的賦值語句是
A.p=&data.n;
B.*p=data.n;
C.p=(structsk*)&data.n;
D.p=(structsk*)data.n:
48.如果需要打開一個已經(jīng)存在的非空文件"Demo"進(jìn)行修改,下面選項(xiàng)中正確的是
A.fp=fopen("Demo","r");
B.fp=fopen("Demo","ab+");
C.fp=fopen("Demo","w+");
D.fp=fopen("Demo","r+");
49.若有以下的說明語句,則與它等價的說明是chars[3][5]={"aaaa","bbbb","cccc"};
A.char**s1={"aaaa","bbbb","cccc"};
B.char*s2[3]={"aaaa","bbbb","cccc"};
C.chars3[][5]={"aaaa","bbbb","cccc"};
D.chars4[][4]={"aaaa","bbbb","cccc"};
50.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
51.運(yùn)行下面程序時,從鍵盤輸入字母H,則輸出結(jié)果是
#include<stdio.h>
main()
{charch;
ch=getchar();
switch(ch)
{case′H′:printf("Hello!\n");
case′G′:printf("Goodmorning!\n");
default:printf("Bye_Bye!\n");
}
}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmorning!Bye_Bye!
D.Hello!Bye_Bye!
52.下述對C語言字符數(shù)組的描述中錯誤的是
A.字符數(shù)組的下標(biāo)從0開始
B.字符數(shù)組中的字符串可以進(jìn)行整體輸入/輸出
C.可以在賦值語句中通過賦值運(yùn)算符“=”對字符數(shù)組整體賦值
D.字符數(shù)組可以存放字符串
53.與“for(i=0;i<10;i++)putchar('a'+i);”功能不同的語句是______。
A.for(i=0;i<10;)putchar('a'+(++i));
B.for(i=0;i<10;)putchar('a'+(i++));
C.for(i=0;i<10;putchar('a'+i),i++);
D.for(i=0;i<=9;i++)putchar('a'+i);
54.對下列二叉樹
進(jìn)行中序遍歷的結(jié)果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
55.下列程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}
A.5,6B.5,5C.6,6D.6,5
56.數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性、有效性和______。
A.可維護(hù)性B.獨(dú)立性C.安全性D.相容性
57.某二叉樹中有n個度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為()
A.n+1B.n-1C.2nD.n/2
58.設(shè)有以下定義和語句:inta[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];則.(P[0]+1)所代表的數(shù)組元素是()。
A.a[0][1]B.a[1][0]C.s[1][1]D.a[1][2]
59.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是
A.data的每個成員起始地址都相同
B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等
C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000
D.data可以作為函數(shù)的實(shí)參
60.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是()。
A.過程、子程序和分程序B.順序、選擇和重復(fù)C.遞歸、堆棧和隊(duì)列D.調(diào)用、返回和轉(zhuǎn)移
四、選擇題(20題)61.
62.
63.
64.下列選項(xiàng)中,能正確定義數(shù)組的語句是()。
A.
B.
C.
D.
65.(45)信息隱蔽的概念與下述哪一種概念直接相關(guān)()
A.軟件結(jié)構(gòu)定義
B.模塊獨(dú)立性
C.模塊類型劃分
D.模擬耦合度
66.不能把字符串:Hello!賦給數(shù)組b的語句是()。
A.charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};
B.charb[10];b="Hello!";
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
67.算法分析最重要的目的是
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系
C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)
68.已知數(shù)據(jù)表A中每個元素距其最終位置不遠(yuǎn),為節(jié)省時間,應(yīng)采用的算法是()
A.堆排序B.直接插入排序C.快速排序D.直接選擇排序
69.C語言中,合法的字符串常量是()。
A."M"B.\tC.100D.MUST
70.耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
71.
設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序是()。
A.f=0:for(i=1;i<=n;i++)f*=i:
B.F=1:for(i=l;i<2n;i++)f*=i:
C.f=l:for(i=n;i>1;i++)f*=i:
D.f=1;for(i=n;i>=2;i--)f*=i:
72.
73.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。
A.不確定B.編譯錯誤C.gD.輸出null字符
74.在下列關(guān)于二叉樹的敘述中,選出正確的一項(xiàng)()。
A.在二叉樹中,任何一個結(jié)點(diǎn)的度都是2
B.二叉樹的度為2
C.在二叉樹中至少有一個結(jié)點(diǎn)的度是2
D.一棵二叉樹的度可以小于2
75.
76.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。
A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式
77.
下列程序執(zhí)行后的輸出結(jié)果是()。
main
{charx=0xFFFF;printf("%d\n",x--);}
A.-32767B.FFFEC.1D.32768
78.
79.下列選項(xiàng)中,不屬于模塊間耦合的是()。A.數(shù)據(jù)耦合B.標(biāo)記耦合C.異構(gòu)耦合D.公共耦合
80.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序易讀性
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。例如,輸入opdye,則應(yīng)輸出deopy。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include%string.h>#include%stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charC;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j4-+)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=C;}}voidmain{charst/[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\nknBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%S",str);}
六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組S中,請編寫函數(shù)proc(),它的功能是:把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中。注意:分?jǐn)?shù)最高的學(xué)生可能不止一個,函數(shù)返回分?jǐn)?shù)最高學(xué)生的人數(shù)。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
參考答案
1.D
2.D解析:一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),因此,數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)不一定是一一對應(yīng)的。選項(xiàng)A中的說法是錯誤的。雖然計(jì)算機(jī)的存儲空間是向量式的存儲結(jié)構(gòu),但由于一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),例如,線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)。一般來說,性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲序號是不連續(xù)的,并且各結(jié)點(diǎn)在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的。因此,數(shù)據(jù)的存儲結(jié)構(gòu)不一定是線性結(jié)構(gòu)。選項(xiàng)B中的說法也是錯誤的。雖然程序設(shè)計(jì)語言中的數(shù)組一般是順序存儲結(jié)構(gòu),但是,利用數(shù)組也能處理非線性結(jié)構(gòu)。例如,滿二叉樹與完全二叉樹是非線性結(jié)構(gòu),但對于滿二叉樹與完全二叉樹來說,根據(jù)完全二叉樹的性質(zhì)6,可以按層序進(jìn)行順序存儲,即利用程序設(shè)計(jì)語言中的數(shù)組來存儲,這樣,不僅節(jié)省了存儲空間,又能方便地確定每一個結(jié)點(diǎn)的父結(jié)點(diǎn)與左右子結(jié)點(diǎn)的位置。對于一般的二叉樹來說,也可以將二叉樹中每一個結(jié)點(diǎn)的左指針、右指針以及數(shù)據(jù)域分別用三個數(shù)組中的對應(yīng)元素來存儲,即實(shí)際上也是利用了程序設(shè)計(jì)語言中的數(shù)組來處理二叉樹這樣的非線性結(jié)構(gòu)。選項(xiàng)C中的說法也是錯誤的。綜上所述,選項(xiàng)A、B與C中的說法都是錯誤的。
3.D程序首先將數(shù)組a中的元素1、2、3分別寫入了d1.dat文件中,再將d1.dat文件中的數(shù)據(jù)“123”整體寫到變量n的空間中,所以輸出的數(shù)據(jù)為123。故本題答案為D選項(xiàng)。
4.A在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本復(fù)合語句塊范圍內(nèi)有效,選項(xiàng)A錯誤,其他選項(xiàng)正確。本題答案為A選項(xiàng)。
5.C設(shè)葉子結(jié)點(diǎn)數(shù)為〃,則該樹的結(jié)點(diǎn)數(shù)為n+9+5=n+\n14,根據(jù)樹中的結(jié)點(diǎn)數(shù)=樹中所有結(jié)點(diǎn)的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。本題選擇C選項(xiàng)。
6.A
7.D解析:返回指針的函數(shù)定義為:返回值類型,函數(shù)名(\u3000\u3000),而指向函數(shù)的指針定義為:返回值類型(*變量名)(\u3000\u3000)。本題中函數(shù)fun返回一個無類型的指針。
8.B
9.D解析:運(yùn)行時輸入該命令后,參數(shù)argc的值為4,字符串?dāng)?shù)組argv[1]、argv[2]、argv[3]分別為“12”、“345”、“678”,然后取這3個參數(shù)的第一個字符,將其轉(zhuǎn)化成原來的數(shù)字并組合成一個新的三位數(shù)。
10.D本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內(nèi)存空間的內(nèi)容,即b的值。
11.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個階段。本題中,詳細(xì)設(shè)計(jì)、軟件編碼和軟件測試都屬于軟什開發(fā)階段;維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費(fèi)代價最大的一個階段.軟件工程學(xué)的一個目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價。
12.D本題給出的兩個關(guān)系R與S的表結(jié)構(gòu)是不同的(R是二元關(guān)系,S是三元關(guān)系),它們不能進(jìn)行∩、∪、一運(yùn)算。而兩個不同結(jié)構(gòu)的關(guān)系是可以進(jìn)行笛卡兒積(×)運(yùn)算的。
13.C
14.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個模塊的功能、建立與已確定的軟件需求的對應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計(jì)的任務(wù)是:在使用程序設(shè)計(jì)語言編制程序以前,對所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計(jì)階段。
15.C對于double類型的實(shí)數(shù),可以在printf函數(shù)的格式化字符串中使用”n1.n2”的形式來指定輸出寬度(n1和n2分別代表一個整常數(shù))。其中n1指定輸出數(shù)據(jù)的寬度(包括小數(shù)點(diǎn)),n2指定小數(shù)點(diǎn)后小數(shù)位的位數(shù),n2也稱為精度。當(dāng)輸出數(shù)據(jù)的小數(shù)位多于n2位時,截取右邊多余的小數(shù),并對截取部分的第1位小數(shù)做四舍五入處理;當(dāng)輸出數(shù)據(jù)的小數(shù)位少于n2時,在小數(shù)的最右邊補(bǔ)0,使得輸出數(shù)據(jù)的小數(shù)部分寬度為n2;如果指定“n1.0”格式,則不輸出小數(shù)點(diǎn)和小數(shù)部分。題干中,%6.2f表示輸出6位寬度,2位小數(shù),所以被截取的小數(shù)位為0.006,進(jìn)行四舍五入,結(jié)果為123.46;%3.0f表示輸出3位寬度,0位小數(shù),結(jié)果為123。故本題答案為C選項(xiàng)。
16.A本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②℃語言中沒有字符串變量,只能用字符數(shù)組來存儲字符串。
17.B鏈表是一種特殊的線性表,鏈表的存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)不同,它的存儲區(qū)域可以是任意的存儲單元,對存儲系統(tǒng)中零碎的存儲部分具有更好的應(yīng)用,在給其分配存儲單元時,不必事先估計(jì)整個存儲單元的空間大??;由于鏈表的元素是通過指針域的指針相連的,用鏈表存儲數(shù)據(jù)時,對其進(jìn)行插入和刪除操作時,不需要移動其他元素,只需改變其直接前驅(qū)指針域,使其指向該結(jié)點(diǎn),并將該結(jié)點(diǎn)的指針域修改為指向其直接后繼結(jié)點(diǎn)即可。當(dāng)然,不管是鏈表還是順序存儲,所需空間與線性表長度都成正比。在鏈?zhǔn)酱鎯Φ逆湵斫Y(jié)構(gòu)中,由于后一結(jié)點(diǎn)數(shù)據(jù)被存儲在哪里,只有通過前一結(jié)點(diǎn)的指針域才知道,因此,訪問時只能是逐個訪問,而不能實(shí)現(xiàn)隨機(jī)訪問。
18.D
19.B
\n本題考查結(jié)構(gòu)體指針變量的賦值方法,要把結(jié)點(diǎn)b連接到結(jié)點(diǎn);l的后面,必須把b的地址給a的next指針。故8正確。
\n
20.C
21.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。
22.b=I+1b=I+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達(dá)式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2后的和累加至a,所以a的值就是110之間的偶數(shù)之和;b的值是111之間的奇數(shù)和,但在輸出b值時,c去掉多加的11,即為110之間的奇數(shù)之和。
23.一對多(或1:N)一對多(或1:N)
24.545\u3000\u30004解析:字符串處理函數(shù)strlen()返回的是字符數(shù)組的實(shí)際長度,不包括字符申結(jié)束標(biāo)志‘\\\u30000’。而sizeof運(yùn)算符則計(jì)算的是字符數(shù)組的總長度,包括串末尾的結(jié)束標(biāo)志。
25.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。
26.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
27.8181解析:本題的宏調(diào)用S(i+j)將被替換成表達(dá)式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本題輸出81。
28.86518651解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因?yàn)閷定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。
29.eybdooG
30.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ù)組的條件。
31.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。
32.1212解析:本題通過第—個for循環(huán)將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,
具體分析如下:
i+1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
33.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[j+1]值相加后的值賦予數(shù)組b中元素b[i],即可實(shí)現(xiàn)將一個數(shù)組的前項(xiàng)和后項(xiàng)之和存入另一數(shù)組。
34.數(shù)據(jù)存儲數(shù)據(jù)存儲
35.99解析:本題的字符串中共有9個字符,它們分別是\'I\'、\'B\'、\'M\'、\'\\n\'、\'0\'、\'1\'、\'2\'、\'\\1\'、\'\\\\\',其中,'\\n'表示換行,'\\\\'表示反斜杠字符'\\',所以本題的最后輸出結(jié)果為9。
36.判定樹、判定表判定樹、判定表
37.585858585858解析:在程序小,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因?yàn)椋琣=58>50,執(zhí)行第一個if語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因?yàn)?,a=58>40,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因?yàn)?,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。
38.邏輯結(jié)構(gòu)中相鄰的結(jié)點(diǎn)在存儲結(jié)構(gòu)中仍相鄰。邏輯結(jié)構(gòu)中相鄰的結(jié)點(diǎn)在存儲結(jié)構(gòu)中仍相鄰。解析:順序存儲結(jié)構(gòu)的主要特點(diǎn)是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中,各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點(diǎn)間的相鄰關(guān)系是一致的。
39.關(guān)系關(guān)系解析:在數(shù)據(jù)庫中,一個表就是一個關(guān)系。一個關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。
40.11解析:邏輯運(yùn)算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
41.D解析:strcat(p1,p2)將字符串a(chǎn)bcABC放到了*p1所指向的存儲單元中;strcpy在本題將abcABC復(fù)制到sir+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。
42.B
43.D解析:在題中,i的值為3,由于“case3:”后面沒有break語句,所以繼續(xù)向下執(zhí)行“case4:”后面的語句,由于“case4:”后面的語句為break強(qiáng)行退出switch語句,所以,本題沒有任何輸出。
44.B解析:在scanf('%f%f%f,&a,&b,&c);中,格式描述為'%f%f%f,當(dāng)輸入數(shù)據(jù)時,數(shù)據(jù)之間可用空格、制表符和回車符作為間隔符,而逗號不是合法的間隔符。
45.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟?dú)立的兩部
分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼
續(xù)進(jìn)行排序,以達(dá)到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依
次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整
個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對剩
下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個或兩個以上的有序表組合
成一個新的有序表。
注意:各種排序方法實(shí)現(xiàn)過程及實(shí)現(xiàn)機(jī)制。
46.A解析:在位與運(yùn)算符&中參加運(yùn)算的兩位都為1時,其結(jié)果為1,否則結(jié)果為0。所以本題中的4|3:01002|00112=01112=7。位與運(yùn)算符|中參加運(yùn)算的兩位只要有一個為1,則結(jié)果為1,只有當(dāng)相應(yīng)的兩位都為0結(jié)果才為0。所以本題中的4&3=01002&00112=00002=0。最后輸出a和b的值為7和0。故4個選項(xiàng)中選項(xiàng)A符合題意。
47.C解析:本題主要考查了結(jié)構(gòu)體變量引用成員數(shù)據(jù)的方法,主要有以下幾種:結(jié)構(gòu)體變量名.成員名或結(jié)構(gòu)體指針->成員名的方法來引用結(jié)構(gòu)體成員。
48.D解析:此題考查文件打開方式對文件操作的影響。由于打開文件進(jìn)行修改,可見選項(xiàng)A)是錯誤的,因?yàn)榇朔N方式打開時,只能讀,不能寫,當(dāng)然無法修改;選項(xiàng)B)是以追加方式'ab+'打開文件讀寫,以這種方式打開時,新寫入的數(shù)據(jù)只能追加在文件原有內(nèi)容之后,但可以對以前的數(shù)據(jù)讀出。換言之,'ab+'或'a+'方式打文件后,對于寫操作,文件指針只能定位在文件的原有內(nèi)容之后,但對于讀操作,文件指針可以定位在全文件范圍內(nèi),可見,按此種方式打開文件不能實(shí)現(xiàn)文件內(nèi)容的修改;選項(xiàng)C)以'w+'方式打開文件,此時,原文件中已存在的內(nèi)容都被清除,但新寫入文件的數(shù)據(jù)可以被再次讀出或再次寫入,故也不能實(shí)現(xiàn)對文件的修改。只有以'r+'方式打開文件時,才允許將文件原來數(shù)據(jù)讀出,也允許在某些位置上再寫入,從而實(shí)現(xiàn)對文件的修改。
49.C解析:本題中的s數(shù)組是一個二維字符數(shù)組,選項(xiàng)A)是一個雙重指針,但字符串的長度沒有限制;選項(xiàng)B)是一個元素為字符指針的數(shù)組,同樣的也是字符串的長度沒有限制;選項(xiàng)D)中,每個字符串的長度限制為4,不正確。注意:用字符數(shù)組作為字符串和用指針指向的一個字符串之間的區(qū)別。
50.C解析:解答本題,首先要明白在對指針進(jìn)行加、減運(yùn)算的時候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。
51.C解析:本題主要對switch語句進(jìn)行了考查。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'G'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行了。
52.C解析:在C語言中,通過使用庫函數(shù)允許對字符數(shù)組進(jìn)行整體輸入/輸出。C語言不允許通過賦值運(yùn)算符對字符數(shù)組整體進(jìn)行賦值,對字符串使用符號:只能在說明字符數(shù)組并進(jìn)行初始化的時候進(jìn)行。字符串結(jié)束標(biāo)志為'\\0',計(jì)算字符串的實(shí)際長度時。不計(jì)入串長。
53.A
54.A解析:二叉樹的中序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。
55.A解析:轉(zhuǎn)義字符'\\n'表示換行,'\\\\'表示反斜杠,函數(shù)strlen()是計(jì)算字符串的長度,不包括文件結(jié)束標(biāo)志('\\0'),函數(shù)sizeof()統(tǒng)計(jì)字符串所占的字節(jié)數(shù)。
56.D解析:數(shù)據(jù)模型應(yīng)該反映和規(guī)定本數(shù)據(jù)模型必須遵守的、基本的、通用的完整性約束條件。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)及其狀態(tài)的變化,以保證數(shù)據(jù)的正確性、有效性和相容性。
57.A解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對任意一棵二叉樹,若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。根據(jù)這條性質(zhì)可知,若二叉樹中有n個度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為n+1。因此,本題的正確答案是選項(xiàng)A。
58.C解析:*p[3]是指針數(shù)組,它由3個指向整型數(shù)據(jù)的指針元素組成,p[0]=a[1]是將a數(shù)組第一行的首地址賦給第0個指針元素,p[0]+1表示a[1]+1即a[1][1]的地址,所以*(p[0]+1)表示a[1][1]。
59.D解析:選項(xiàng)A),共用體的每個成員的起始地址都相同;選項(xiàng)B),共用體變量所占的內(nèi)存長度等于最長的成員的長度;選項(xiàng)C)因?yàn)槊總€成員的起始地址相同,所以整型數(shù)5以浮點(diǎn)型輸出時為5.000000;選項(xiàng)D)C語言規(guī)定,不能把共用體變量作為函數(shù)的參數(shù)。
60.BB?!窘馕觥砍绦虻娜N基本控制結(jié)構(gòu)包括:順序、選擇和重復(fù)(循環(huán)),這三種結(jié)構(gòu)就足以表達(dá)出各種其他形式的結(jié)構(gòu)。
61.A
62.C
63.C
64.D選項(xiàng)A)不符合c語言的語法要求;選項(xiàng)
B)中沒有指定數(shù)組的大小;選項(xiàng)c)中數(shù)組大小不能用變量來指定。
65.B
66.B
67.D算法分析是指對一個算法需要多少計(jì)算時間和存儲空間做定量的分析
。在計(jì)算機(jī)科學(xué)中,算法要用計(jì)算機(jī)算法語言描述,算法代表用計(jì)算機(jī)解一類問題的精確、有效的方法。算法+數(shù)據(jù)結(jié)構(gòu)=程序,求解一個給定的可計(jì)算或可解的問題,不同的人可以編寫出不同的程序來解決同一個問題,這里存在兩個問題:一是與計(jì)算方法密切相關(guān)的算法問題;二是程序設(shè)計(jì)的技術(shù)問題。而算法和程序之間又存在密切的關(guān)系。分析算法可以預(yù)測這一算法適合在什么樣的環(huán)境中有效地運(yùn)行,對解決同一問題的不同算法的有效性做出比較,更重要的是,分析算法可以找出算法的優(yōu)點(diǎn)和不足,使優(yōu)點(diǎn)得到保持,對不足進(jìn)行改進(jìn),以獲得效率更高的算法。
68.B堆排序。先把序列看成一棵大根堆或小根堆,摘取最大或最小元素后再建成新的根堆,再排序。堆排序的過程是:先建一個堆,輸出堆頂?shù)淖畲蠡蜃钚〉脑兀賹⑹S嗟膎-1個元素重新調(diào)整成一個新堆。如此反復(fù)進(jìn)行,直到排序完成。
直接插入排序是一種最簡單的排序方法,它的基本操作是將一個記錄插入到已排好的有序表中,從而得到一個新的、記錄數(shù)增1的有序表。首先,將序列中的第1個記錄看成是一個有序的子序列,然后從第2個記錄起逐個進(jìn)行插入,直至整個序列變成按關(guān)鍵字非遞減有序序列為止。
快速排序是對冒泡排序的一種改進(jìn)。它的基本思想是通過一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,則可以分別對這兩部分記錄繼續(xù)進(jìn)行排序
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)士怎么弄課題申報書
- 鄭州課題申報書
- 教育課題申報立項(xiàng)書范文
- 怎么搜到課題項(xiàng)目申報書
- epc和融資合同范例
- 課題立項(xiàng)申報書成果形式
- 美發(fā)教學(xué)課題申報書
- 課題申報書封面需蓋章嗎
- 農(nóng)村房產(chǎn)協(xié)議合同范例
- 包工清包合同范本
- 2023高效制冷機(jī)房系統(tǒng)應(yīng)用技術(shù)規(guī)程
- 配電室土建施工方案
- 英語教學(xué)方法與策略
- 2021中職 手工制茶 賽賽題(賽項(xiàng)賽題)
- 綜合體弱電智能化系統(tǒng)介紹課件
- 車隊(duì)安全教育培訓(xùn)內(nèi)容
- 抗原 抗原(免疫學(xué)檢驗(yàn)課件)
- 民航概論P(yáng)PT全套教學(xué)課件
- 輪轂電機(jī)驅(qū)動的越野車雙橫臂懸架設(shè)計(jì)
- 藥學(xué)專業(yè)論文3000字-藥學(xué)畢業(yè)論文
- 2022-2023學(xué)年遼寧省葫蘆島市建昌縣數(shù)學(xué)四下期末經(jīng)典試題含解析
評論
0/150
提交評論