2022年甘肅省蘭州市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第1頁
2022年甘肅省蘭州市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第2頁
2022年甘肅省蘭州市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第3頁
2022年甘肅省蘭州市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第4頁
2022年甘肅省蘭州市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2022年甘肅省蘭州市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}

A.SOB.SPC.SPOPKD.SHOB

2.設(shè)s1="Good",s2="",s3="Bye",則s1、s2和s3連接后的結(jié)果是()。

A.GoodB.GoodByeC.GoodByeD.Bye

3.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

4.

5.采用深度優(yōu)先搜索或拓?fù)渑判蛩惴梢耘袛喑鲆粋€有向圖中是否有環(huán)(回路)()

A.對B.錯

6.若一組記錄的排序碼為(46,79,56,38,40,84),則利用快速排序的方法,以第一個記錄為基準(zhǔn)得到的一次劃分結(jié)果為()

A.38,40,46,56,79,84

B.40,38,46,79,56,84

C.40,38,46,56,79,84

D.40,38,46,84,56,79

7.以下敘述中錯誤的是(

)。A.函數(shù)形參的值也可以傳回給對應(yīng)的實參

B.函數(shù)調(diào)用可以作為一個獨(dú)立的語句存在

C.若函數(shù)有返回值,必須通過r;mm語句返回

D.C程序必須由一個或一個以上的函數(shù)組成

8.

9.

10.設(shè)無向圖G中有n個頂點e條邊,則其對應(yīng)的鄰接表中的表頭結(jié)點和邊表接點的個數(shù)分別為()。

A.n,eB.e,nC.2n,eD.n,2e

11.

12.下列敘述中正確的是()。A.算法就是程序B.設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計C.設(shè)計算法時只需要考慮結(jié)果的可靠性D.以上三種說法都不對

13.有以下程序:#include<stdio.h>main(){intx=3,y=5,z1,z2;z1=y^x^y;z2=x^y^x;printf(“%d,%d\n”,z1,z2);}程序運(yùn)行后的輸出結(jié)果是()。

A.7,7B.5,3C.8,8D.3,5

14.設(shè)有一組關(guān)鍵字序列{5,8,14,20,31,55,78,81,93,97,111},使用二分(折半)法查找關(guān)鍵字93最少需要進(jìn)行多少次比較()A.2B.3C.4D.5

15.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

16.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TESY","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進(jìn)制文件而不可讀

17.若變量已正確定義,要求程序段完成5!的計算,不能完成此操作的程序段是______。

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5);

18.程序中若有如下說明和定義語句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;.....}以下選項中對函數(shù)Fun的正確調(diào)用語句是______。A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);

19.設(shè)無向圖G中的邊的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點a出發(fā)進(jìn)行深度優(yōu)先遍歷可以得到的一種頂點序列為()。

A.aedfcbB.acfebdC.aebcfdD.aedfbc

20.下列描述中正確的是()。

A.程序就是軟件

B.軟件開發(fā)不受計算機(jī)系統(tǒng)的限制

C.軟件既是邏輯實體,又是物理實體

D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

二、2.填空題(20題)21.fseek函數(shù)的正確調(diào)用形式是【】。

22.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu)、存取方式等)改變時,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。

23.下面程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

else

if(n>=2)|m:fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

24.性結(jié)構(gòu)中,隊列的操作順序是先進(jìn)先出,而棧的操作順序是______。

25.若有如下定義:

int[]={11,24,56,19,29,39),*t=s;

則不移動指針t,且通過指針t引用數(shù)組中值為29的元素的表達(dá)式是【】。

26.若輸入字符串:abcde<回車>,則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

27.設(shè)有下列宏定義:

#defineA2

#defineB(A+3)

則執(zhí)行賦值語句“k=B*20;”(k為int型變量)后,k的值是______。

28.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

29.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

for(i=0;i<2;i++)

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

printf("%s\n",t);

}

程序運(yùn)行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程

序的輸出結(jié)果是______。

30.有以下程序:

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;

*q=*(p+5);

printf("%d%d\n",*p,*q);

}

程序運(yùn)行后的輸出結(jié)果是【】。

31.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。

32.下面程序的運(yùn)行結(jié)果是【】。

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d\n",s);

break;}

s+=i;}}

33.以下函數(shù)的功能是計算s=1+1/2!+1/3!+…+1/n!,請?zhí)羁铡?/p>

doublerun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

for(i=1;i<=n;i++)

{【】;

fac=fac/k;

s=s+fac;

}

}

34.若對長度為90的線性表進(jìn)行分塊查找,其中每塊子表長度為9。如果在索引表查找過程中進(jìn)行順序查找,那么平均查找長度為【】。

35.當(dāng)循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進(jìn)行人隊運(yùn)算。這種情況稱為【】。

36.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的【】。

37.設(shè)有以下程序,為使之正確運(yùn)行,請在橫線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

38.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

39.以下程序的功能是:求出數(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("");

}

40.軟件的【】設(shè)計又稱為總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。

三、1.選擇題(20題)41.函數(shù)fseek的正確調(diào)用形式是()。

A.fseek(位移量,起始點,文件類型指針);

B.fseek(文件類型指針,位移量,起始點);

C.fseek(文件類型指針,起始點,位移量);

D.fseek(起始點,位移量,文件類型指針);

42.有下列程序,其中%u表示按無符號整數(shù)輸出。main(){unsignedintx=0xFFFF;/*x的初值為十六進(jìn)制數(shù)*/printf("%u\n",x);}程序運(yùn)行后的輸出結(jié)果是()。

A.-1B.65535C.32767D.0xFFFF

43.在結(jié)構(gòu)化程序設(shè)計思想提出之前,在程序設(shè)計中曾強(qiáng)調(diào)程序的效率。與程序的效率相比,人們更重視程序的

A.安全性B.一致性C.可理解性D.合理性

44.對于n個結(jié)點的單向鏈表(無表頭結(jié)點),需要指針單元的個數(shù)至少為______。

A.n-1B.nC.n+1D.2n

45.若fp是指向某文件的指針,且已讀到文件的末尾,則C語言函數(shù)feof(fp)的返回值是()

A.EOFB.-1C.非零值D.NULL

46.下面說明不正確的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

47.下列敘述中正確的是()。

A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)必定一一對應(yīng)

B.由于計算機(jī)存儲空間是向量式的存儲結(jié)構(gòu),因此,數(shù)據(jù)的存儲結(jié)構(gòu)一定是線性結(jié)構(gòu)

C.程序設(shè)計語言小的數(shù)組.般是順序存儲結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)

D.以上3種說法都不對

48.設(shè)變量已正確定義,則下列能正確計算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

49.下列敘述中錯誤的是()。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)的支持

50.在長度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7

51.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。

A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.線性結(jié)構(gòu)和非線性結(jié)構(gòu)C.集合結(jié)構(gòu)和非集合結(jié)構(gòu)D.樹形結(jié)構(gòu)和圖狀結(jié)構(gòu),

52.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。

A.存儲問題B.共享問題C.安全問題D.保護(hù)問題

53.下列程序運(yùn)行后,輸出結(jié)果是______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}

A.1234567B.7654321C.1711717D.7177171

54.執(zhí)行以下程序段()x=-1;do{x=x*x;}while(!x);

A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

55.下列關(guān)于棧的敘述中正確的是

A.在棧中只能插入數(shù)據(jù)B.在棧中只能刪除數(shù)據(jù)C.棧足先進(jìn)先出的線性表D.棧是先進(jìn)后出的線性表

56.以下程序的輸出結(jié)果是______。main(){charstr[12]={'s','t','r','i','n','g'};printf("%d/n",strlen(str));}

A.6B.7C.11D.12

57.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.x&&y

B.x<=y

C.x‖y+z&&y-z

D.!((x<y)&&!z‖1)

58.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。

A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中

59.設(shè)有定義:longx=123456L;,則以下能夠正確輸出變量x值的語句是______。

A.printf("x=%d\n",x);

B.printf("x=%1d\n",x)

C.printf("x=%8dL\n",x);

D.printf("x=%LD\n",x);

60.在面向?qū)ο蠓椒ㄖ?,一個對象請求另一個對象為其服務(wù)的方式是通過發(fā)送()。

A.調(diào)用語句B.命令C.口令D.消息

四、選擇題(20題)61.有以下程序

程序運(yùn)行后的輸出結(jié)果是()。

A.6,2,3,4,5,B.2,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,

62.下列合法的聲明語句是()。

A.intabc=50;

B.doubleint=3+5e2.5;

C.longdo=1L;

D.float3asd=3e一3;

63.

64.

65.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

66.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是A.scanf("%d",pa);B.scanf("%d",a);C.scanf("%d",&pa);D.scanf("%d",*pa);

67.有以下程序:

程序的運(yùn)行結(jié)果是()。

A.*7

B.*3*5

C.*5

D.*2*6

68.有以下程序:

程序的運(yùn)行結(jié)果是()。

A.*****a*bB.a*bC.a*b****D.ab

69.設(shè)有如下關(guān)系表:

則下列操作中,正確的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

70.

71.若intk=8;則執(zhí)行下列程序后,變量k的正確結(jié)果是

main()

{intk=8;

switch(k)

{case9:k+=1;

case10:k+=1;

default:k+=1;

case11:k+=1;break;

}

printf("%d\n",k);

}

A.12B.1

C.10D.9

72.

73.

74.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include#includemain{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.A.-1B.0C."abcdef"D."abdef"

75.有如下程序

#include"stdio.h"

main()

{inta,b,m;

for(a=5;a>=1;a--)

{m=0;

for(b=a;b<=5;b++)

m=m+a*b;

}

printf("%d\n",m);

}

上述程序的運(yùn)行結(jié)果是

A.30B.15

C.20D.10

76.設(shè)有以下語句:

其中0≤k<5。以下不是對字符串的正確引用的是()。

A.*strpB.strp[k]C.str[k]D.strp

77.有以下程序:

main()

{intp[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2){k=k+p[i++];i++}

Printf("%d\n",k);

}

執(zhí)行后輸出的結(jié)果是()。

A.57B.39C.24D.11

78.下面程序運(yùn)行后的輸出結(jié)果是()。

structabc

{

inta,b,c;

}

main()

{

structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].a+s[1].b;

printf("%d\n",t);

}

A.5B.6C.7D.8

79.(63)線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是______。

A.順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)

B.隨機(jī)存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)

C.隨機(jī)存取的存儲結(jié)構(gòu)、隨機(jī)存取的存儲結(jié)

D.任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)

80.有以下程序:

當(dāng)執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第l列開始,<;CR>;代表回車,注意:回車也是一個字符]12<;CR>;34<;CR>;則輸出結(jié)果是()。

A.12B.123C.1234D.12343

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是找出100~m(m不大于1000)之間百位數(shù)字加十位數(shù)字等于個位數(shù)字的所有整數(shù),把這些整數(shù)放在s所指的數(shù)組中,個數(shù)作為函數(shù)值

返回。

請修改程序中的錯誤,使它能得到正確結(jié)果。

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<stdio.h>

#defineM1000

intproc(int*S.intn)

{

inti,j,k,a,b,c;

j=0;

for(i=100;i<n;i++)

{

//****found****

k=n:

a=k%10;

k/=10;

b=k%10;

c=k/10;

if(a==b+c)

//****found****

s[j]=i:

}

returnj;

}

voidmain

{

inta[M],m,num=0,i;

do

{

printf("\nEnterm(<=1000):");

scanf("%d",&m);

}

while(m>1000);

num=proc(a,m);

printf("\n\nTheresult:\n");

for(i=0;i<num;i++)

printf("%5d",a[i]);

printf("\n\n");

}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),該函數(shù)的功能是統(tǒng)計一行字符串中單詞的個數(shù),并將其作為函數(shù)值返回。字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個空格隔開,一行的開始沒有空格。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include<string.h>2#include<stdio.h>3#defineN804intfun(char*s)5{67}8voidmain()9{10FILE*wf;11charline[N];12intnum=0;13printf("Enterastring:\n");14gets(line);15num=fun(line);16printf("Thenumberofwordsis:%d\n\n",num);17/*********found*********/18wf=fopen("out.dat","w");19fprintf(wf,"%d",fun("abigcar"));20fclose(wf);21/*********found*********/22}

參考答案

1.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串的第—個字符。在for循環(huán)中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。

2.C

3.B用關(guān)鍵字typedef聲明一種新的類型的形式為typedef類型名標(biāo)識符。本題中的類型為char*。

4.A

5.A

6.C

7.A函數(shù)參數(shù)傳遞是個不可逆的過程,形參不會把值傳回實參,所以A)選項(24)[答案]A)[解析]c的值為a乘以b的值,為3。所以答案選擇A)。

8.A

9.A

10.A

11.B

12.D算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計算方法,所以A錯誤。設(shè)計算法時不僅要考慮對數(shù)據(jù)對象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。故答案為D選項。

13.D是按位異或運(yùn)算,其功能是參與運(yùn)算的兩個數(shù),按位異或,如果兩個相應(yīng)位相同,結(jié)果為0,否則為1。接位異或運(yùn)算滿足如下規(guī)則:①滿足交換律;②一個數(shù)與0異或的結(jié)果仍是原數(shù);③一個數(shù)與1異或的結(jié)果是原數(shù)按位取反。所以題干中,“y^x^y”等價于等價于“y^y^x”,等價于“0^x”,等價于x,即“z1=x”;“x^y^x”等價于“x^x^y”,等價于“0^y”,等價于y,即“z2=y”,輸出結(jié)果為:3,5。故本題答案為D選項。

14.A

15.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。

16.C解析:fprintf函數(shù)工作時,多個數(shù)據(jù)間不會自珈口分隔符,選項A錯誤;浮點數(shù)的輸出格式是“%5.0f”表明其小數(shù)部分輸出0位,即沒有輸出,所以選項B也是錯誤的。

17.B解析:選項B中每次執(zhí)行循環(huán)體都要執(zhí)行p=1,無法保存上次的運(yùn)算結(jié)果,執(zhí)行完while循環(huán)后p=5。

18.A解析:題中將函數(shù)fun的入口地址賦給了指針變量f1,這時f1和fun都指向函數(shù)的開頭,調(diào)用*f1就是調(diào)用函數(shù)fun。

19.B

20.D\r\n軟件是與計算機(jī)操作相關(guān)的計算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計算機(jī)系統(tǒng)的限制;軟件是一個邏輯實體,不是物理實體,軟件具有抽象性。因此選項D正確。

21.fseek(文件指針位移量起始點)fseek(文件指針,位移量,起始點)解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

fseek(文件指針,位移量,起始點)

“起始點”用0,1或2代替,其中,0代表“文件開始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長度大于64k時不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。

22.物理獨(dú)立性物理獨(dú)立性

23.1111解析:main函數(shù)調(diào)用fun函數(shù)時,將10賦給n,形參數(shù)組t與實參數(shù)組a共用一段內(nèi)存空間。執(zhí)行if-else語句時,n=10,所以執(zhí)行else子句。由于n>=2成立,執(zhí)行m=fun(t[0],9),遞歸調(diào)用fun函數(shù),m=fun(t[0],8),m=fun(t[0],7),…,m=fun(t[0],2),m=fun(t[0],1),當(dāng)n=1時滿足if(n=1)的條件,執(zhí)行return語句,返回數(shù)組首地址指向的值t[0],所以答案為11。

24.先進(jìn)后出先進(jìn)后出解析:隊列和棧都是線性結(jié)構(gòu),但是不同之處在于隊列的操作順序是先進(jìn)先出,而棧的操作順序是先進(jìn)后出。

25.*(t+4)*(t+4)解析:本題定義了指針變量t,并用數(shù)組s的首地址給它賦初值。t+4代表數(shù)組第6個元素的地址,*(t+4)是取得該地址中的值即29,而此時并沒有移動指針t。

26.0

27.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算。運(yùn)算過程為:k=B*20=(A+3)*20=(2+3)*20=100。

28.str[i]或str+iistr[i]或str+i\r\ni

29.QTHRGQTHRG解析:函數(shù)strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能是,把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指存儲空間中,然后輸出字符數(shù)組t。

30.運(yùn)行后報錯運(yùn)行后報錯解析:指針q沒有指向確定的存儲單元,故不能賦值。

31.模塊模塊

32.3030解析:考查for循環(huán)的使用。題目中for(;;)表示:for循環(huán)的初始化表達(dá)式,條件表達(dá)式和修正表達(dá)式都省略了,表示進(jìn)行for循環(huán)和for循環(huán)的終止都沒有限制。

33.k=k*ik=k*i解析:本題小通過for循環(huán)求s表達(dá)式中每一項的和,表達(dá)式“fac=fac/k;”求的是每一項的值,所以k的值應(yīng)為n!,在求n!的時候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故木題填k=k*i。

34.10.5

35.上溢上溢解析:入隊運(yùn)算是指在循環(huán)隊列的隊尾加入一個新元素。這個運(yùn)算有兩個基本操作:首先將隊尾指針進(jìn)一(即rear=rear+1),并當(dāng)rear=m+1時,置rear=1;然后將新元素插入隊尾指針指向的位置。當(dāng)循環(huán)隊列非空(s=1)且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進(jìn)行人隊運(yùn)算,這種情況稱為“上溢”。

36.模式或邏輯模式或概念模式模式也稱邏輯模式或概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖,例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項構(gòu)成,數(shù)據(jù)項的名字、類型、取值范圍等。

37.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。

38.x+=1;

39.對于10個數(shù),相鄰的兩個數(shù)相加取和,總共要進(jìn)行9次加法運(yùn)算,所以空14處應(yīng)填入i=1。相鄰的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[i-1]。\r\n\r\n

40.概要概要

41.B解析:改變文件位置的指針函數(shù)fseek()的調(diào)用形式為:fseek(fp,offset,position);。fseek函數(shù)參數(shù)說明:“fp”是指向該文件的文件型指針;“offset'’為位移量,指從起始點position.到要確定的新位置的字節(jié)數(shù)。也就是以起點為基準(zhǔn),向前移動的字節(jié)數(shù)。ANSIC要求該參數(shù)為長整型量;“position”為起始點,指出以文件的什么位置為基準(zhǔn)進(jìn)行移動,position的值用整型常數(shù)表示,“0”表示文件的開頭,“1”表示文件的當(dāng)前位置,“2”表示文件的末尾。

42.B解析:“%u”格式符表示以十進(jìn)制形式輸出無符號整形變最。本題中無符號整形變量x=0xFFFF表示的是十六進(jìn)制無符號整型變量的最大值65535,所以最后輸出的結(jié)果為65535。

43.C解析:結(jié)構(gòu)化程序設(shè)計方法設(shè)計出的程序具有明顯的優(yōu)點。其一,程序易于理解、使用和維護(hù);其二,提交了編程工作的效率,降低了軟件開發(fā)成本。其中,人們更重視前者。

44.C解析:在n個結(jié)點的單向鏈表(無表頭結(jié)點)中,每個結(jié)點都有一個指針單元(即指針域),加上頭指針,至少需要n+1個指針單元。

45.D

46.D解析:C語言中操作一個字符串常量的方法有:①將字符串常量存放在一個字符數(shù)組之中;②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時,根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,將其轉(zhuǎn)換成字符指針。

本題D)項中錯誤的關(guān)鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。

47.D解析:一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)不一定一一對應(yīng),選項A錯誤。計算機(jī)的存儲空間是向量式的存儲結(jié)構(gòu),但一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),如線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu),數(shù)據(jù)的存儲結(jié)構(gòu)不一定是線性結(jié)構(gòu),因此選項B錯誤。數(shù)組一般是順序存儲結(jié)構(gòu),但利用利用數(shù)組也能處理非線性結(jié)構(gòu)。選項C錯誤。由此可知,只有選項D的說法正確。

48.D解析:要正確計算函數(shù)f=n!,由n!的數(shù)學(xué)定義可知n!=n*(n-1)*(n-2)*……*1。在選項A)中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計算f=n!=O,所以選項A)不正確。在選項B)中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計算得到f=(n-1)!,所以選項B)不正確。在選項C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項C)不正確。在選項D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計算f=n!,所以選項D)正確。

49.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管其在計算機(jī)中的存儲方式。數(shù)據(jù)的存儲結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計算機(jī)存儲器里的實現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項A的說法是錯誤的。

數(shù)據(jù)庫可以看成是長期存儲在計算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。

數(shù)據(jù)庫設(shè)計是在數(shù)據(jù)庫管理系統(tǒng)的支持下,按照應(yīng)用的要求,設(shè)計一個結(jié)構(gòu)合理、使用方便、效率較高的數(shù)據(jù)庫及其應(yīng)用系統(tǒng)。數(shù)據(jù)庫設(shè)計包含兩方面的內(nèi)容:一是結(jié)構(gòu)設(shè)計,也就是設(shè)計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu);二是行為設(shè)計,即設(shè)計基于數(shù)據(jù)庫的各類應(yīng)用程序、事務(wù)等。因此,選項C的說法是錯誤的。

數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還必須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項D的說法是正確的。因此,本題的正確答案是選項A。

50.B解析:在長度為64的有序線性表中,其中的64個數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個數(shù)據(jù)元素進(jìn)行比較,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較。依次類推,直到性表中查找到該數(shù)據(jù)或查找到線性表的最后一個元素,算法才結(jié)束。因此,在長度為64的有序線性表十進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項B。

51.B解析:邏輯結(jié)構(gòu)即數(shù)據(jù)元素之間的邏輯關(guān)系,是從邏輯關(guān)系上描述數(shù)據(jù),與數(shù)據(jù)的存儲無關(guān)。因此根據(jù)數(shù)據(jù)元素與數(shù)據(jù)元素之間的關(guān)系,邏輯結(jié)構(gòu)被分為兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。而集合結(jié)構(gòu)與非集合結(jié)構(gòu)、樹形結(jié)構(gòu)和圖狀結(jié)構(gòu)指的都是特定的數(shù)據(jù)結(jié)構(gòu)類型。

52.B解析:數(shù)據(jù)庫產(chǎn)生的背景就是計算機(jī)的應(yīng)用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對數(shù)據(jù)共享的要求越來越高。共享的含義是多個用戶、多種語言、多個應(yīng)用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應(yīng)用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫技術(shù),以便對數(shù)據(jù)庫進(jìn)行管理。因此,數(shù)據(jù)庫技術(shù)的根本目標(biāo)就是解決數(shù)據(jù)的共享問題。故選項B正確。

53.C

54.A

55.D解析:對??蛇M(jìn)行插入和刪除數(shù)據(jù)的操作,但必須牢記插入和刪除數(shù)據(jù)都只能在棧頂,是一種特殊的線性表.所以棧是先進(jìn)后出的線性表。

56.A解析:在C語言中,字符串的長度是其首字符到NULL(不含)字符的總字符個數(shù)。本題定義字符數(shù)組str的同時,對第7個元素,由系統(tǒng)自動添加上“\\0”,故字符串的長度為6。

57.D解析:本題考查邏輯運(yùn)算符的使用。當(dāng)“&&”的兩個運(yùn)算對象都是邏輯1時,表達(dá)式才返回值是1;當(dāng)“‖”的兩個運(yùn)算對象至少有一個是邏輯1時,表達(dá)式返回值是1。選項A)中,x和y都是邏輯1。所以返回值是1:選項B)中,x=4<=y=6為邏輯1,所以返回值是1;選項C)中,y+z的值等于14,非0,y-z的值為-2,非0,所以邏輯表達(dá)式4‖14&&-2的值不為0;選項D)中,x<y為1,!z為0,1&&0為1,0‖1為1,因此,!1為0。

58.A解析:C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。

59.B解析:x是長整型變量,因此其輸出格式字符應(yīng)為“%1d”,所以正確答案為選項B。

60.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

61.A本題考查的是函數(shù)的地址調(diào)用,將數(shù)組名作為數(shù)組首地址進(jìn)行傳遞,然后取首個數(shù)組元素值進(jìn)行加l運(yùn)算,循環(huán)5次。因此A選項正確。

62.A標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。B選項int不是表達(dá)變量類型的標(biāo)識符,它不能再用做變量名和函數(shù)名。C選項do是C語言的一個關(guān)鍵字。D選項標(biāo)識符只能以字母或下劃線開始。

63.A

64.A

65.D本題考查continue的用法,continue語句的作用是結(jié)束本次循環(huán),直接進(jìn)行下次循環(huán)。所以在程序中,只有當(dāng)a=10時,才退出循環(huán),故選擇D選項。

66.A本題主要考查scanf函數(shù)。scanf函數(shù)可以用來輸入任何類型的多個數(shù)據(jù)。

scanf函數(shù)的一般形式為:

scanf(格式控制,地址列表)

“格式控制”是用雙引號引起來的字符串,也稱“轉(zhuǎn)換控制字符串”;“地址列表”是由若干個地址組成的表列,可以是變量的地址或字符串的首地址。

指針變量中只能存放地址(指針),&:取地址運(yùn)算符。例如,&a為變量a的地址,*p為指針變量p所指向的變量。所以,可以在地址列表中的有pa和&a,故本題答案為A

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論