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頁,還剩107頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年山西省太原市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義語句:“intx=10;”,則表達(dá)式x-=x+x的值為()。

A.-20B.-l0C.0D.10

2.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之間的通信靠傳遞消息來實現(xiàn)

C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

3.針對簡單程序設(shè)計,以下敘述的實施步驟順序正確的是()。

A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔

B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔

C.整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試

D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔

4.下列程序的運(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

5.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];

B.intN=10;intx[N];

C.int:x[0.10];

D.intx[];.

6.下列選項中合法的賦值語句是()。

A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);

7.

8.數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和______。A.編碼設(shè)計B.測試階段C.運(yùn)行階段D.物理設(shè)計

9.對于“if(表達(dá)式)語句”,以下敘述正確的是()。

A.“表達(dá)式”不能是變量

B.“表達(dá)式”的值只能是整數(shù)值

C.“表達(dá)式”可以是常量

D.“表達(dá)式”中不可以出現(xiàn)字符型變量的比較

10.下列不可用于C語言用戶標(biāo)識符的是A.A.j2_KEY

B.char

C._g_

D.Double

11.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

12.一個棧的入棧序列是a,b,c,d,e,f,則棧的不可能的輸出序列為()

A.fedcbB.defbcC.defcbD.abcdef

13.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d¨,++*x);}voidmain(){inty=3;p(&y);}A.3B.4C.2D.5

14.以下程序的輸出結(jié)果是()main(){staticchara[10]={"Chinese"};printf("%d",strlen(a));}

A.7B.2C.9D.10

15.若要判斷char型變量c中存放的是否為小寫字母,以下正確的表達(dá)式是()。A.'a'<=c<='z'

B.(c>='a')&&(c<='z')

C.(c>='a')‖(c<='z')

D.('a'<=c)AND('z'>=c)

16.設(shè)inta=12,則執(zhí)行完語句a+=a-=a*a后,a的值是()。

A.552B.264C.144D.-264

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

A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.邏輯結(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ù)處理的效率

18.若執(zhí)行下述程序時,若從鍵盤輸入6和8,結(jié)果為()。main(){inta,b,s;scanf("%d%dt",&a,&B);s=a:if(s=B)s*=s;printf("%d",s);}

A.36B.64C.48D.以上都不對

19.若有運(yùn)算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序為()

A.%、sizeof、>、<<、=

B.sizeof、%、>、=、<<

C.sizeof、<<、>、%、=

D.sizeof、%、<<、>、=

20.在循環(huán)雙鏈表的p所指的結(jié)點之前插入s所指結(jié)點的操作是()。A.p->prior->prior

B.p->prior->prior

C.s->prior->next=s

D.s->prior->prior=s

二、2.填空題(20題)21.以下程序的運(yùn)行結(jié)果是【】。

#defineMAL(a,b)(a>b?a:b)+1

main()

{inti=6,j=8;

printf("%d\n",MAL(i,j));

}

22.在對文件進(jìn)行操作的過程中,若要求文件的位置指針重新指向文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】函數(shù)。

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

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

intk=0;

voidfun(intm)

{m+=k;k+=m;

printf("m=%dk=%d",m,k++)

}

main()

{inti=4;

fun(i++);

printf("i=%dk=%d\n",i,k);

}

25.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲空間是______的。

26.下面程序的輸出結(jié)果是【】。

#defineMAX3

inta[MAX];

main()

{fun1();fun2(a);printf("\n");}

fun1()

{intk,t=0;

for(k=0;k<MAX;k++,t++)a[k]=t+t;

}

fun2(intb[])

{intk;

for(k=0;k<MAX;k++)printf("%d",*(b+k));

}

27.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

28.以下程序的功能是:利用指針向三個整型變量,并通過指針運(yùn)算找出三個數(shù)中最大值,輸出到屏幕上。請?zhí)羁?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax二*pz;

printf("max=%d\n",max);}

29.軟件指的是計算機(jī)系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和()的集合。

30.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

printf("%d\n",z);}

31.若有以下定義和語句,則使指針p指向值為36的數(shù)組元素的表達(dá)式是【】。

inta[10]={19,23,44,17,37,28,49,36},*p;

p=a;

32.下列程序的輸出結(jié)果是______。

main()

{imti,sum;

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

sum+=i;

printf("%d",sum);

}

33.下述函數(shù)通過遞歸方法將字符串倒置,使用時需要指定字符數(shù)組的首地址、起始下標(biāo)和終止下標(biāo)。請?zhí)羁眨?/p>

#include<stdio.h>

voidfun(char*s,intlow,inthigh)

{if(【】)

return;

else

{chart;

fun(【】);

t=s[low];

s[low]=s[high];

s[high]=t;}}

34.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

35.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

36.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

請?zhí)羁?,使下面程序段的功能與之完全相同

S=1.0;k=1;

while([8]){s=s+1.0/(k*(k+1));[9];}

printf("s=%f\n\n",s);

37.下列程序的輸出結(jié)果是【】。

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

printf("%d,%d\n",a,b);

}

38.下列程序執(zhí)行后輸出的結(jié)果是【】。

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

39.若有如下結(jié)構(gòu)體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。

【】t[20]

40.在一個容量為15的循環(huán)隊列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊列中共有【】個元素。

三、1.選擇題(20題)41.下列不正確的轉(zhuǎn)義字符是______。

A.'\\',B.'\'C.'074'D.'\0'

42.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序運(yùn)行后的輸出結(jié)果是

A.錯誤信息B.666C.888D.666,888

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

A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動變量實質(zhì)上是一個函數(shù)內(nèi)部的局部變量

44.已定義以下函數(shù):fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函數(shù)的功能是()。

A.將P1所指字符串復(fù)制到p2所指內(nèi)存空間,

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針?biāo)缸址M(jìn)行比較

D.檢查p1和p2兩個指針?biāo)缸址惺欠裼?\0'

45.結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序的易讀性

46.請選出以下程序的輸出結(jié)果______。#include<stdio.h>sub(x,y,z)intx,y,*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}

A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7

47.以下4組用戶定義標(biāo)識符中,全部合法的一組是

A.mainencludesin

B.If-maxturbo

C.txtREAL3COM

D.int12_001

48.數(shù)據(jù)字典是對數(shù)據(jù)定義信息的集合,它所定義的對象都包含于______。

A.程序框圖B.軟件結(jié)構(gòu)C.數(shù)據(jù)流圖D.方框圖

49.有以下程序:main(){inta[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。

A.7B.6C.8D.無確定值

50.若有定義int(*pt)[3];,則下列說法不正確的是()。

A.int(*pt)[3]是一個數(shù)組指針

B.指針pt指向一個有3個整型變量的數(shù)組

C.定義了一個名為*pt、具有三個元素的整型數(shù)組

D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組

51.已有定義inta=-2;和輸出語句printf("%81x",a);以下正確的敘述是()。

A.整型變量的輸出形式只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)

C.%x是格式符的一種,其變量的值按十六進(jìn)制輸出,但%81x是錯誤的

D.%81x不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度

52.有以下說明和定義語句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下選項中引用結(jié)構(gòu)體變量成員的表達(dá)式錯誤的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].a(chǎn)ge

53.設(shè)有定義:charp[]={′1′,′2′,′3′},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

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

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)

B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

55.結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是

A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序易讀性

56.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是使位置指針從文件末尾向前移2*sizeof(int)字節(jié))#include<stdio.h>main(){FILE*fp;inti,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/felose(fp);printf("%d\n",b);}執(zhí)行后輸出結(jié)果是

A.2B.1C.4D.3

57.已有定義int(*q)(),指針q可以()。

A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型

58.C語言中運(yùn)算對象必須是整型的運(yùn)算符是()。

A.%=B./C.=D.<=

59.以下程序的輸出結(jié)果是______。fun(int*s,int*p){staticintt=3;*p=s[t];t--;}main(){intstr[]={1,2,3,4},i,m=0;for(i=0;i<4;i++){fun(str,&m);printf("%d",m);}printf("\n");}

A.0B.444412C.1234D.4321

60.下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是

A.它們的運(yùn)算對象可以是任何變量和常量

B.它們的運(yùn)算對象可以是char型變量和int型變量,但不能是float型變量

C.它們的運(yùn)算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運(yùn)算對象可以足char型變量、int型變量和float型變量

四、選擇題(20題)61.HTTP協(xié)議是運(yùn)行于()協(xié)議之上的應(yīng)用層協(xié)議。

A.FTPB.SMTPC.TCPD.UDP

62.軟件生命周期是指()。

A.軟件的開發(fā)過程

B.軟件的運(yùn)行維護(hù)過程

C.軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程

D.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程

63.以下敘述中不正確的是

A.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

B.C語言中對二進(jìn)制文件的訪問速度比文本文件快

C.C語言中,隨機(jī)讀寫方式不適用于文本文件

D.C語言中,順序讀寫方式不適用于二進(jìn)制文件

64.

當(dāng)輸入為"hello?"時,下面程序的執(zhí)行結(jié)果是()。

#include<stdio.h>

main

{charc;

c=getchar;

while(c!=?)

{putehar(e);break;

}

}

A.RvfsuB.hC.?D.hello

65.程序中若有如下說明和定義語句

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);

66.

67.在C語言程序中可用做用戶標(biāo)識符的是()。

A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG

68.有以下程序:

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

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

69.

70.下面各選項中,均是C語言中合法標(biāo)識符的選項組是

A.forchinatoB.long_123short56_do

C.voidunion_342D.text_023_3ew

71.有以下程序:

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

A.7B.5C.3D.9

72.下列敘述中正確的是()。A.數(shù)據(jù)庫系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨立性問題,而文件系統(tǒng)不能

B.數(shù)據(jù)庫系統(tǒng)能夠管理各種類型的文件,而文件系統(tǒng)只能管理程序文件

C.數(shù)據(jù)庫系統(tǒng)可以管理龐大的數(shù)據(jù)量,而文件系統(tǒng)管理的數(shù)據(jù)量較少

D.數(shù)據(jù)庫系統(tǒng)獨立性較差,而文件系統(tǒng)獨立性較好

73.

以下程序的輸出結(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

74.軟件設(shè)計中劃分模塊的一個準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合

75.數(shù)據(jù)結(jié)構(gòu)作為計算機(jī)的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及()

A.數(shù)據(jù)的存儲結(jié)構(gòu)B.計算方法C.數(shù)據(jù)映像D.邏輯存儲

76.

77.有以下程序:

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

A.24B.720C.120D.6

78.(67)數(shù)據(jù)處理的最小單位是()

A.數(shù)據(jù)

B.數(shù)據(jù)元素

C.數(shù)據(jù)項

D.數(shù)據(jù)結(jié)構(gòu)

79.若有以下函數(shù)首部:

intfun(doublex[10],int*n)

則下面針對此函數(shù)的函數(shù)聲明語句中正確的是()。

A.intfun(double,int);

B.intfun(double木,int*);

C.intmn(double*x,intn);

D.intfun(doublex,intint*n)

80.(29)用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為()

A.關(guān)系模型

B.層次模型

C.網(wǎng)狀模型

D.數(shù)據(jù)模型

五、程序改錯題(1題)81.程序改錯題(共l8分)下列給定程序中,函數(shù)fun的功能是:傳人一個整數(shù)m,計算如下公式的值。例如,若輸入5,則應(yīng)輸出一0.283333。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個字符串(每串的長度不超過N).按順序合并組成一個新的字符串。例如,若字符串?dāng)?shù)組中的M個字符串為:ABCDBCDEFGCDEFGHI則合并后的字符串內(nèi)容應(yīng)該是:ABCDBCDEFGCDEFGH1。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B表達(dá)式x-=x+X可以寫成x=x-(x+x),所以X的值為-l0。

2.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。

3.A\nC語言中程序中的步驟實現(xiàn)為:先確定程序中的算法和數(shù)據(jù)結(jié)構(gòu),然后進(jìn)行程序的編碼,再進(jìn)行對程序的調(diào)試,最后進(jìn)行文檔的整理和記錄。使用這種步驟可以方便程序的編寫以及在完成后提高代碼的重用性。

\n

4.A依據(jù)fun函數(shù),可知其要實現(xiàn)的功能是將S中第(t+1)個元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)x,最后輸出x數(shù)組。

5.A[解析]數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串?dāng)?shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。\u3000\u3000

6.D解析:選項A)是一個合法的賦值表達(dá)式,但結(jié)尾沒加分號,所以它不是一個賦值語句;選項B)是一個逗號表達(dá)式,也因為結(jié)尾沒有加分號而不是合法的賦值語句,選項C)是一個算術(shù)表達(dá)式,雖然有分號,但這個表達(dá)式?jīng)]有賦值操作,因此,也不是一條賦值語句。

7.D

8.DD)【解析】數(shù)據(jù)庫設(shè)計目前一段采用生命周期法.即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標(biāo)獨立的若干階段,它們是:需要分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段、編碼階段、測試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫設(shè)計中采用上面幾個階段中的前四個階段,并且重點以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計為主線。

9.CC語言中沒有規(guī)定“if(表達(dá)式)語句”中的“表達(dá)式”的形式,其可以是任意合法的表達(dá)式。故本題答案為C選項。

10.B本題主要考查標(biāo)識符的命名規(guī)則。選項A是合法的用戶標(biāo)識符,它符合命名的規(guī)則;選項B不是一個合法的用戶標(biāo)識符,因為它是系統(tǒng)中定義了的關(guān)鍵字;選項C是一個合法的標(biāo)識符;選項D可能也會有很多人認(rèn)為它不是一個合法的標(biāo)識符,認(rèn)為它是關(guān)鍵字,但事實上它不是一個關(guān)鍵字,因為C語言中嚴(yán)格區(qū)分大小寫,因此,它不是雙精度關(guān)鍵字“double”,所以它是一個合法的用戶標(biāo)識符。

11.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

12.B

13.B本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在函數(shù)調(diào)用時,形參是指向?qū)崊⒌闹羔樧兞?,則printf的執(zhí)行結(jié)果為++x;x=3,則3+1=4。

14.A

15.BC語言中,char型變量的值是其對應(yīng)字符的ASCII值,可以做比較運(yùn)算。由于小寫字母的ASCII值按字母表的順序連續(xù)遞增,因此判斷char型變量c是不是小寫字母時,判斷c的ASCII值是否在’a’和’z’之間,即(c>=’a’)&&(c<=’z’)。本題答案為B選項。

16.D

17.D數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),用的存儲結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。用不同的存儲結(jié)構(gòu),其處理的效率是不同的。

18.B

19.D解析:主要考查運(yùn)算符的優(yōu)先級。sizeof的優(yōu)先級最高,后面的順序是:%、<<、>,優(yōu)先級最低的是“=”。

20.D

21.99解析:用i和j替換宏MAL(a,b)小的參數(shù)a和b,(a>b?a:b)+1等價于(i>j?i:j)+1。因為6>8為假,則關(guān)系表達(dá)式i>j?i:j的值就是j的值,j=8,8+1=9,最后輸出9。

22.rewind或fseekrewind或fseek解析:本題考查文件的定位。在對文件進(jìn)行操作的過程中,若要求文件的位置指針回到文件的開頭,可以調(diào)用rewind函數(shù)或fseek函數(shù)來完成。其中,rewind函數(shù)的作用是將位置指針重新返回文件的開頭;而fseek函數(shù)也可以實現(xiàn)文件指針的定位。

23.上溢上溢解析:入隊運(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)算,這種情況稱為“上溢”。

24.m=4k=4i=5k=5m=4k=4i=5k=5解析:main()函數(shù)首先定義了1個變量i,并初始化為4。然后用表達(dá)式i++的值為實參調(diào)用函數(shù)fun(),因為后綴”表達(dá)式的值為增1之前的值,故此時傳遞給函數(shù)的參數(shù)m值為4。fun()函數(shù)中,首先讓形參m自增k,由于此時k還是0,所以m不變,然后讓k自增m,執(zhí)行后k的值和m相同為4。最后fun()函數(shù)輸出m和k廿的值,兩個值都是4,故首先輸出了“m=4k=4”,輸出完后,k自增1(k變?yōu)?)。fun()函數(shù)執(zhí)行完畢,返回main()函數(shù)中,此時i會被自增1變?yōu)?,故接著又輸出的i和k的值都是5。故最終輸出結(jié)果是“m=4k=4i=5k=5”。

25.連續(xù)連續(xù)解析:順序存儲結(jié)構(gòu)具有兩個特點:1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。

26.024

27.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。

28.

29.相關(guān)文檔相關(guān)文檔解析:軟件指的是計算機(jī)系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和有關(guān)的文檔。程序足對計算機(jī)的處理對象和處理規(guī)則的描述,是軟件開發(fā)入員根據(jù)用戶需求開發(fā)的、用程序語言描述的、適合計算機(jī)執(zhí)行的指令序列。數(shù)拼是使程序能正常操作信息的數(shù)據(jù)結(jié)構(gòu)。文檔是為了便于了解程序所需的資源說明,是與程序的開發(fā)、維護(hù)和使用有關(guān)的資料。

30.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因為x不大于y,所以執(zhí)行printf('%d\\n',z);語句。

31.p=p+7或p+=7p=p+7或p+=7解析:本題考查通過指針引用數(shù)組元素。值為36的數(shù)組元素在a數(shù)組中是第8個元素,即a[7]。在程序中,p=a;語句將數(shù)組a的首地址賦給了指針變量p,則可以用*(p+i)來表示數(shù)組元素,*(p+i)與a[i]等價,a[7]可表示為*(p+7)。要使指針p指向a[7],可以用p=p+7移動指針,故填寫p=p+7或p+=7。

32.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是Sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值.

33.low>=highscow+1high-1low>=high\r\ns,cow+1,high-1解析:本題考查了用指針引用一維數(shù)組元素的方法。函數(shù)fun()通過遞歸調(diào)用的方式將字符串的首位和末位互換,第二位和倒數(shù)第二位互換……,從而實現(xiàn)了字符串倒置的功能。low和high是字符數(shù)組的下標(biāo)。

34.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。

35.格式化模型格式化模型解析:層次模型與網(wǎng)狀模型屬于格式化模型。

36.本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句“k++”。\r\n\r\n

37.21

38.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。

39.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項表;

};

定義結(jié)構(gòu)體變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,...?

其中變量包括;一般變量、指針變量、數(shù)組變量等。

40.3

41.C

42.B解析:程序中的printf()函數(shù)的輸出格式部分只說明了一個%d,而輸出成員列表卻有兩個成員a和b,在這里將只輸出第一個成員a值為666,所以,4個選項中選項B符合題意。

43.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時,編譯系統(tǒng)根據(jù)需要要臨時分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。

44.A解析:本題中的while((*p2=*p1)!='\\0')語句首先進(jìn)行賦值*p2=*p1,即把p1所指存儲單元的字符逐一復(fù)制到p2所指存儲單元中,然后判斷p1所指單元內(nèi)容是否為'\\0',若判斷條件成立,則指針p1和p2依次指向下一個字符,繼續(xù)執(zhí)行循環(huán)體語句,否則循環(huán)終止。

45.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

46.B解析:sub()函數(shù)的作用是將形參y和x的差賦給了z指向的那個內(nèi)存地址,所以在sub(10,5,&A),10和5屆于值傳遞,a是屬于地址傳遞,也就是a與z指向了同一個存儲單元,在執(zhí)行函數(shù)后,a的值隨*z變化,所以此次函數(shù)被調(diào)用后,a的值為y-x=-5,同理可知,在sub(7,a,&B)后,b的值發(fā)生變化,其值為-5-7=-12,在sub(a,b,&c)后,c的值發(fā)生變化,其值為-12-(-5)=-7。

47.A解析:標(biāo)識符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列{例如,-max含非法字符-),并且用戶標(biāo)識符不能與C語言中的32個關(guān)鍵字同名(例如,int是關(guān)鍵字,不是合法的用戶標(biāo)識符)。選項B中-max不是字母、數(shù)字或下劃線組成的字符序列,故選項B不正確;選項C中3COM不是由字母或下劃線開頭,故選項C不正確;選項D中int為C語言中的關(guān)鍵字,故選項D不正確;選項A中全部為合法的標(biāo)識符,所以,4個選項中選項A符合題意。

48.C解析:數(shù)據(jù)字典是對數(shù)據(jù)定義的信息的集合,是對數(shù)據(jù)流圖中包含的所有元素定義的集合。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)流圖則數(shù)據(jù)字典難以發(fā)揮作用,沒有數(shù)據(jù)字典則數(shù)據(jù)流圖就不嚴(yán)格。

49.A解析:本題定義了一個指向由3個元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[im][j])。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1,執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa=[1][1]=pa[1][1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故prinff語句輸入的值為2+4+1=7。所以,A選項為所選。

50.D解析:首先,pt跟*結(jié)合,所以是一個指針,所指向的對象是含有3個元素的數(shù)組。所定義的指針沒加const,所以是個指針變量,還可以指向類似對象的其他元素,也就是說還可以指向其他含有3個元素的數(shù)組。

51.D解析:整型變量的輸出形式有:%d,%o,%x,%u等,%x是以十六進(jìn)制無符號形式輸出整數(shù)。十六進(jìn)制數(shù)同樣也可以像%md一樣按%mlx輸出指定寬度的長整型數(shù)。

52.D解析:結(jié)構(gòu)體變量也有地址,因此可以把它的地址賦值給一個指針變量,然后通過該指針變量來引用結(jié)構(gòu)體的成員,選項A和選項B就是通過指針變量來引用結(jié)構(gòu)體的成員,也可以通過結(jié)構(gòu)體數(shù)組元素的成員引用,而在選項D中stu[3].a(chǎn)ge不正確,因為結(jié)構(gòu)體數(shù)組stu共有三個元素,其下標(biāo)應(yīng)該為0,1,2。

53.A解析:在本題中,p和q同為指向字符類型數(shù)據(jù)的指針。*q和p[0]同為字符型數(shù)據(jù)。選項B)、C)和D)都符合題目的要求;選項A)計算得出的是指針類型數(shù)據(jù)所占的內(nèi)存字節(jié)數(shù)。

54.A本題考查程序效率。程序效率是指程序運(yùn)行速度和程序占用的存儲空間。影響程序效率的因素是多方面的,包括程序的設(shè)計、使用的算法、數(shù)據(jù)的存儲結(jié)構(gòu)等。在確定數(shù)據(jù)邏輯結(jié)構(gòu)的基礎(chǔ)上,選擇一種合適的存儲結(jié)構(gòu),可以使得數(shù)據(jù)操作所花費的時間少,占用的存儲空間少,即提高程序的效率。因此,本題選項A的說法是正確的。

55.D結(jié)構(gòu)化程序設(shè)計由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設(shè)計為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,這樣使完成每一個模塊的工作變得單純而明確,為設(shè)計一些較大的軟件打下了良好的基礎(chǔ)。

由于模塊相互獨立,因此,在設(shè)計其中一個模塊時,不會受到其他模塊的牽連,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊的設(shè)計。模塊的獨立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因為可以充分利用現(xiàn)有的模塊作為積木式的擴(kuò)展。

結(jié)構(gòu)化程序設(shè)計的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計方法從問題本身開始,經(jīng)過逐步細(xì)化,將解決問題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,那么這個新構(gòu)造的程序一定是一個單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。

56.D解析:函數(shù)fopen(eonstchar*filename,cortstchar*mode)的功能是以mode指定的模式打開filename指定的磁盤文件;fclose(FILE*fp)的功能是關(guān)閉文件指針fp指向的文件;函數(shù)fscanf(FILE*fp,constchar*format[address,--))的功能是根據(jù)for-mat中的格式從fp指向的文件中讀取數(shù)據(jù),并存入到相應(yīng)的address指向的變量中。函數(shù)fprintf(FILE*fp,constchar*format[,argument,--])的功能是把a(bǔ)rgument列表中的表達(dá)式值寫到fp所指向的文件中;函數(shù)fwrlte(void*ptr,intsize,intn,F(xiàn)ILE*fP)的功能是把ptr指向的緩沖區(qū)中的size×n個字節(jié)寫到文件指針fP指向的文件中。本題中首先定義了一個文件指針fp,然后通過函數(shù)fopen以“wb”的方式打開文件“data.dat”,直接通過一個for循環(huán),每循環(huán)一次調(diào)用函數(shù)fwrite將數(shù)組中的元素a[i]的值寫進(jìn)fp所指的文件中,該循環(huán)共循環(huán)4次,循環(huán)完后fp所指文件的內(nèi)容為123,然后通過fclose函數(shù)關(guān)閉fp所指文件。接著通過函數(shù)fopen以“rb”的方式打開文件“data.dat”,通過fseek函數(shù)讓指針fp從文件末尾向前移動2個int型大小字節(jié)的,然后通過函數(shù)fread從fp所指的文件中讀取一個int型大小的數(shù)據(jù)到變量b中,故此時b的值為3,因此最后輸出的b的值為3。

57.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標(biāo)識符(*指針變量名)()。其中,“類型標(biāo)識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。

58.A解析:C++語言規(guī)定:取余運(yùn)算符的運(yùn)算對象必須是整型,復(fù)合運(yùn)算符“%=”中包含%運(yùn)算,它的運(yùn)算對象也必須是整型。

59.D解析:程序的功能是將字符數(shù)組str中的內(nèi)容以反序輸出。函數(shù)fun中t為靜態(tài)變量,每一次調(diào)用函數(shù)fun時,t的值為上一次調(diào)用函數(shù)結(jié)束時的值。

60.D解析:本題考核的知識點是c語言中的++和--運(yùn)算符,這兩種運(yùn)算符是單目運(yùn)算符,其運(yùn)算對象可以是整型、字符型、float型和double型等基本數(shù)據(jù)類型。所以,D選項為所選。

61.C

62.C\n通常將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用、退役的過程稱為軟件生命周期。

\n

63.D解析:在C語言中文本文件是以ASCII碼形式存放的,每個字符占一個字節(jié)。由于數(shù)據(jù)在計算機(jī)中是以二進(jìn)制形式存放的,因此二進(jìn)制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣把ASCII碼轉(zhuǎn)換成二進(jìn)制,因此速度較快。在文本文件葉,,數(shù)據(jù)以ASCII碼形式存放,用戶很難判定一個數(shù)據(jù)到底占幾個字節(jié),所以不適合使用隨機(jī)讀寫方式。數(shù)據(jù)以二進(jìn)制形式存放,占有的字節(jié)數(shù)是固定的,所以可以進(jìn)行隨機(jī)讀寫,當(dāng)然也可以順序讀寫。故D選項為所選。

64.A

\n本題考查getchar函數(shù)與putchar函數(shù),通過9etchar函數(shù)讀入字符,并通過putchar函數(shù)將字符逐個輸出,當(dāng)用戶輸入“?”時停止輸出,且c是一個字符變量只占一個字節(jié)。

\n

65.A解析:函數(shù)fun()的參數(shù)為指針類型,返回值為字符型,而選項B、C的參數(shù)不是指針類型,所以不正確,選項D中,*fl(s)表示返回值為指針的函數(shù),所以也不正確。

66.C

67.Bc語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線,不能使用關(guān)鍵字和數(shù)字,A中void,C中if,D中D0,都屬于關(guān)鍵字。

68.C在函數(shù)fun(char*a,char*b)中,while

69.C

70.D本題主要考查標(biāo)識符的定義。對標(biāo)識符的定義是歷次考試中??嫉膬?nèi)容之一。標(biāo)識符主要由數(shù)字、下畫線和字母組成,其中數(shù)字不能放在首位,另外,用戶自定義標(biāo)識符時,不能將標(biāo)識符定義為C語言中已定義的關(guān)鍵字,如short、for、void等。

根據(jù)上面對標(biāo)識符的分析,我們不難看出本題的正確答案是D。在選項A中,for是一個已經(jīng)被定義的關(guān)鍵字,不符合標(biāo)識符定義的規(guī)定;在選項B中,short是C語言系統(tǒng)中已經(jīng)定義了的關(guān)鍵字,且56_do以數(shù)字開頭,不符合標(biāo)識符定義的規(guī)定;在選項C中,void、union都是已被定義的關(guān)鍵字,因此不正確。

71.C向switch語句塊傳送參數(shù)后,編譯器會1先尋找匹配的csse語句塊,找到后就執(zhí)行該語句塊。遇到break跳出;如果沒有匹配的語句塊,則執(zhí)行default語句塊。ca∞與default沒有順序之分。所以第2次循環(huán)k的值為l,執(zhí)行c+:k,c的值為1,再執(zhí)行case2后的語句c++,c的值為2,遇到break語句跳出循環(huán);第二次循環(huán)k的值為2,執(zhí)行case2后面的語句c++,C的值為3,跳出循環(huán)。

72.A數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了3個階段:

人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。三者各自的特點如下表所示。\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t特點\t\t\t\t\t\t\t人工管理階段\t\t\t\t\t\t\t文件系統(tǒng)階段\t\t\t\t\t\t\t數(shù)據(jù)庫系統(tǒng)階段\t\t\t\t\t\t\t管理者\(yùn)t\t\t\t\t\t\t人\t\t\t\t\t\t\t文件系統(tǒng)\t\t\t\t\t\t\t數(shù)據(jù)庫管理系統(tǒng)\t\t\t\t\t\t\t面向?qū)ο骪t\t\t\t\t\t\t某個應(yīng)用程序\t\t\t\t\t\t\t某個應(yīng)用程序\t\t\t\t\t\t\t現(xiàn)實世界\t\t\t\t\t\t\t共享程度\t\t\t\t\t\t\t無共享,冗余度大\t\t\t\t\t\t\t共享性差,冗余度大\t\t\t\t\t\t\t共享性大,冗余度小\t\t\t\t\t\t\t獨立性\t\t\t\t\t\t\t不獨立,完全依賴于程序\t\t\t\t\t\t\t獨立性差\t\t\t\t\t\t\t具有高度的物理獨立性和一定的邏輯獨立性\t\t\t\t\t\t\t結(jié)構(gòu)化\t\t\t\t\t\t\t無結(jié)構(gòu)\t\t\t\t\t\t\t記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu)\t\t\t\t\t\t\t整體結(jié)構(gòu)化。用數(shù)據(jù)筷基謄述\t\t\t\t\t\t\t控制能力\t\t\t\t\t\t\t由應(yīng)用程序控制\t\t\t\t\t\t\t由應(yīng)用程序控制\t\t\t\t\t\t\t由DB蝰墨供數(shù)據(jù)安全性、完整性、并發(fā)控剖和恢復(fù)\t\t\t\t數(shù)據(jù)庫系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨立性問題,面文件系統(tǒng)不能。數(shù)據(jù)庫系統(tǒng)和文件系統(tǒng)的區(qū)別不僅在于管理的文件類型與數(shù)據(jù)量的多少。數(shù)據(jù)庫系統(tǒng)具有高度的物理獨立性和一定的邏輯獨立性,而文件系統(tǒng)獨立性較好。故本瑟答案為A選項。

73.B

\n當(dāng)b=1時,a=1,第二個if語句成立,此時a=6,返回for循環(huán);當(dāng)b=2,兩個if語句都為假,此時a=3,再返回循環(huán);當(dāng)b=3,第二個if成立,此時a=8,繼續(xù)循環(huán);當(dāng)b=4,第一個if成立,退出for循環(huán)體時b為4,a為8。

\n

74.B一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。

75.A數(shù)據(jù)結(jié)構(gòu)是計算機(jī)科學(xué)與技術(shù)領(lǐng)域廣泛使用的一個基本術(shù)語,用來反映數(shù)據(jù)的內(nèi)部構(gòu)成。

一般來說,數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)、數(shù)據(jù)的操作三個方面的內(nèi)容。數(shù)據(jù)的邏輯結(jié)構(gòu)又稱為數(shù)據(jù)的外部結(jié)構(gòu),指各數(shù)據(jù)元素之間的邏輯關(guān)系,反映人們對數(shù)據(jù)含義的解釋。數(shù)據(jù)的邏輯結(jié)構(gòu)反映數(shù)據(jù)的邏輯關(guān)系,與數(shù)據(jù)的存儲沒有關(guān)系,是獨立于計算機(jī)的。它有兩大類邏輯機(jī)構(gòu):線性結(jié)構(gòu)和非線性結(jié)構(gòu)。

數(shù)據(jù)的存儲結(jié)構(gòu)又稱為數(shù)據(jù)的物理結(jié)構(gòu),是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的表示,即邏輯結(jié)構(gòu)在計算機(jī)中的實現(xiàn)。一個數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)要充分利用存儲器的“空間相鄰”和“隨機(jī)訪問”的特點。

76.D

77.C函數(shù)hm()求數(shù)組指定返回的元素的積。函數(shù)fun(a,3)求的是數(shù)組a[0]~a[3]的積。因此結(jié)果為2t3女4十5=120,故答案為C選項。

78.C注:數(shù)據(jù)項不可再分割

79.B函數(shù)聲明的一般形式為:“類型說明符被調(diào)函數(shù)名(類型形參,類型形參,……);”或“類型說明符被調(diào)函數(shù)名(類型,類型,……);”由于函數(shù)首部為intfun(doublex[10],int*n),因此B選項正確。

80.B

81.

82.

【解析】字符串?dāng)?shù)組中每一行都是一個完整的字符串,其結(jié)束標(biāo)志為ˊ\0ˊ。因此,通過字符串的結(jié)束標(biāo)志來判斷每一個字符串是否結(jié)束,將字符串?dāng)?shù)組中的所有字符串均賦值給新的一維數(shù)組b來完成字符串的合并。

2022年山西省太原市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義語句:“intx=10;”,則表達(dá)式x-=x+x的值為()。

A.-20B.-l0C.0D.10

2.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之間的通信靠傳遞消息來實現(xiàn)

C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

3.針對簡單程序設(shè)計,以下敘述的實施步驟順序正確的是()。

A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔

B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔

C.整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試

D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔

4.下列程序的運(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

5.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];

B.intN=10;intx[N];

C.int:x[0.10];

D.intx[];.

6.下列選項中合法的賦值語句是()。

A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);

7.

8.數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和______。A.編碼設(shè)計B.測試階段C.運(yùn)行階段D.物理設(shè)計

9.對于“if(表達(dá)式)語句”,以下敘述正確的是()。

A.“表達(dá)式”不能是變量

B.“表達(dá)式”的值只能是整數(shù)值

C.“表達(dá)式”可以是常量

D.“表達(dá)式”中不可以出現(xiàn)字符型變量的比較

10.下列不可用于C語言用戶標(biāo)識符的是A.A.j2_KEY

B.char

C._g_

D.Double

11.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

12.一個棧的入棧序列是a,b,c,d,e,f,則棧的不可能的輸出序列為()

A.fedcbB.defbcC.defcbD.abcdef

13.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d¨,++*x);}voidmain(){inty=3;p(&y);}A.3B.4C.2D.5

14.以下程序的輸出結(jié)果是()main(){staticchara[10]={"Chinese"};printf("%d",strlen(a));}

A.7B.2C.9D.10

15.若要判斷char型變量c中存放的是否為小寫字母,以下正確的表達(dá)式是()。A.'a'<=c<='z'

B.(c>='a')&&(c<='z')

C.(c>='a')‖(c<='z')

D.('a'<=c)AND('z'>=c)

16.設(shè)inta=12,則執(zhí)行完語句a+=a-=a*a后,a的值是()。

A.552B.264C.144D.-264

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

A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.邏輯結(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ù)處理的效率

18.若執(zhí)行下述程序時,若從鍵盤輸入6和8,結(jié)果為()。main(){inta,b,s;scanf("%d%dt",&a,&B);s=a:if(s=B)s*=s;printf("%d",s);}

A.36B.64C.48D.以上都不對

19.若有運(yùn)算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序為()

A.%、sizeof、>、<<、=

B.sizeof、%、>、=、<<

C.sizeof、<<、>、%、=

D.sizeof、%、<<、>、=

20.在循環(huán)雙鏈表的p所指的結(jié)點之前插入s所指結(jié)點的操作是()。A.p->prior->prior

B.p->prior->prior

C.s->prior->next=s

D.s->prior->prior=s

二、2.填空題(20題)21.以下程序的運(yùn)行結(jié)果是【】。

#defineMAL(a,b)(a>b?a:b)+1

main()

{inti=6,j=8;

printf("%d\n",MAL(i,j));

}

22.在對文件進(jìn)行操作的過程中,若要求文件的位置指針重新指向文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】函數(shù)。

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

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

intk=0;

voidfun(intm)

{m+=k;k+=m;

printf("m=%dk=%d",m,k++)

}

main()

{inti=4;

fun(i++);

printf("i=%dk=%d\n",i,k);

}

25.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲空間是______的。

26.下面程序的輸出結(jié)果是【】。

#defineMAX3

inta[MAX];

main()

{fun1();fun2(a);printf("\n");}

fun1()

{intk,t=0;

for(k=0;k<MAX;k++,t++)a[k]=t+t;

}

fun2(intb[])

{intk;

for(k=0;k<MAX;k++)printf("%d",*(b+k));

}

27.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

28.以下程序的功能是:利用指針向三個整型變量,并通過指針運(yùn)算找出三個數(shù)中最大值,輸出到屏幕上。請?zhí)羁?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax二*pz;

printf("max=%d\n",max);}

29.軟件指的是計算機(jī)系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和()的集合。

30.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

printf("%d\n",z);}

31.若有以下定義和語句,則使指針p指向值為36的數(shù)組元素的表達(dá)式是【】。

inta[10]={19,23,44,17,37,28,49,36},*p;

p=a;

32.下列程序的輸出結(jié)果是______。

main()

{imti,sum;

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

sum+=i;

printf("%d",sum);

}

33.下述函數(shù)通過遞歸方法將字符串倒置,使用時需要指定字符數(shù)組的首地址、起始下標(biāo)和終止下標(biāo)。請?zhí)羁眨?/p>

#include<stdio.h>

voidfun(char*s,intlow,inthigh)

{if(【】)

return;

else

{chart;

fun(【】);

t=s[low];

s[low]=s[high];

s[high]=t;}}

34.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

35.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

36.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

請?zhí)羁?,使下面程序段的功能與之完全相同

S=1.0;k=1;

while([8]){s=s+1.0/(k*(k+1));[9];}

printf("s=%f\n\n",s);

37.下列程序的輸出結(jié)果是【】。

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

printf("%d,%d\n",a,b);

}

38.下列程序執(zhí)行后輸出的結(jié)果是【】。

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

39.若有如下結(jié)構(gòu)體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。

【】t[20]

40.在一個容量為15的循環(huán)隊列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊列中共有【】個元素。

三、1.選擇題(20題)41.下列不正確的轉(zhuǎn)義字符是______。

A.'\\',B.'\'C.'074'D.'\0'

42.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序運(yùn)行后的輸出結(jié)果是

A.錯誤信息B.666C.888D.666,888

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

A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動變量實質(zhì)上是一個函數(shù)內(nèi)部的局部變量

44.已定義以下函數(shù):fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函數(shù)的功能是()。

A.將P1所指字符串復(fù)制到p2所指內(nèi)存空間,

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針?biāo)缸址M(jìn)行比較

D.檢查p1和p2兩個指針?biāo)缸址惺欠裼?\0'

45.結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序的易讀性

46.請選出以下程序的輸出結(jié)果______。#include<stdio.h>sub(x,y,z)intx,y,*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}

A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7

47.以下4組用戶定義標(biāo)識符中,全部合法的一組是

A.mainencludesin

B.If-maxturbo

C.txtREAL3COM

D.int12_001

48.數(shù)據(jù)字典是對數(shù)據(jù)定義信息的集合,它所定義的對象都包含于______。

A.程序框圖B.軟件結(jié)構(gòu)C.數(shù)據(jù)流圖D.方框圖

49.有以下程序:main(){inta[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。

A.7B.6C.8D.無確定值

50.若有定義int(*pt)[3];,則下列說法不正確的是()。

A.int(*pt)[3]是一個數(shù)組指針

B.指針pt指向一個有3個整型變量的數(shù)組

C.定義了一個名為*pt、具有三個元素的整型數(shù)組

D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組

51.已有定義inta=-2;和輸出語句printf("%81x",a);以下正確的敘述是()。

A.整型變量的輸出形式只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)

C.%x是格式符的一種,其變量的值按十六進(jìn)制輸出,但%81x是錯誤的

D.%81x不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度

52.有以下說明和定義語句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下選項中引用結(jié)構(gòu)體變量成員的表達(dá)式錯誤的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].a(chǎn)ge

53.設(shè)有定義:charp[]={′1′,′2′,′3′},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

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

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)

B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

55.結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是

A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序易讀性

56.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是使位置指針從文件末尾向前移2*sizeof(int)字節(jié))#include<stdio.h>main(){FILE*fp;inti,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/felose(fp);printf("%d\n",b);}執(zhí)行后輸出結(jié)果是

A.2B.1C.4D.3

57.已有定義int(*q)(),指針q可以()。

A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型

58.C語言中運(yùn)算對象必須是整型的運(yùn)算符是()。

A.%=B./C.=D.<=

59.以下程序的輸出結(jié)果是______。fun(int*s,int*p){staticintt=3;*p=s[t];t--;}main(){intstr[]={1,2,3,4},i,m=0;for(i=0;i<4;i++){fun(str,&m);printf("%d",m);}printf("\n");}

A.0B.444412C.1234D.4321

60.下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是

A.它們的運(yùn)算對象可以是任何變量和常量

B.它們的運(yùn)算對象可以是char型變量和int型變量,但不能是float型變量

C.它們的運(yùn)算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運(yùn)算對象可以足char型變量、int型變量和float型變量

四、選擇題(20題)61.HTTP協(xié)議是運(yùn)行于()協(xié)議之上的應(yīng)用層協(xié)議。

A.FTPB.SMTPC.TCPD.UDP

62.軟件生命周期是指()。

A.軟件的開發(fā)過程

B.軟件的運(yùn)行維護(hù)過程

C.軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程

D.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程

63.以下敘述中不正確的是

A.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

B.C語言中對二進(jìn)制文件的訪問速度比文本文件快

C.C語言中,隨機(jī)讀寫方式不適用于文本文件

D.C語言中,順序讀寫方式不適用于二進(jìn)制文件

64.

當(dāng)輸入為"hello?"時,下面程序的執(zhí)行結(jié)果是()。

#include<stdio.h>

main

{charc;

c=getchar;

while(c!=?)

{putehar(e);break;

}

}

A.RvfsuB.hC.?D.hello

65.程序中若有如下說明和定義語句

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);

66.

67.在C語言程序中可用做用戶標(biāo)識符的是()。

A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG

68.有以下程序:

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

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

69.

70.下面各選項中,均是C語言中合法標(biāo)識符的選項組是

A.forchinatoB.long_123short56_do

C.voidunion_342D.text_023_3ew

71.有以下程序:

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

A.7B.5C.3D.9

72.下列敘述中正確的是()。A.數(shù)據(jù)庫系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨立性問題,而文件系統(tǒng)不能

B.數(shù)據(jù)庫系統(tǒng)能夠管理各種類型的文件,而文件系統(tǒng)只能管理程序文件

C.數(shù)據(jù)庫系統(tǒng)可以管理龐大的數(shù)據(jù)量,而文件系統(tǒng)管理的數(shù)據(jù)量較少

D.數(shù)據(jù)庫系統(tǒng)獨立性較差,而文件系統(tǒng)獨立性較好

73.

以下程序的輸出結(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

74.軟件設(shè)計中劃分模塊的一個準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚

溫馨提示

  • 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

提交評論