2021年寧夏回族自治區(qū)石嘴山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁(yè)
2021年寧夏回族自治區(qū)石嘴山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁(yè)
2021年寧夏回族自治區(qū)石嘴山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁(yè)
2021年寧夏回族自治區(qū)石嘴山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁(yè)
2021年寧夏回族自治區(qū)石嘴山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021年寧夏回族自治區(qū)石嘴山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)后出B.都是先進(jìn)先出C.只允許在端點(diǎn)處插入和刪除元素D.沒(méi)有共同點(diǎn)

2.以下敘述中錯(cuò)誤的是()。

A.C語(yǔ)言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的

B.用C語(yǔ)言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行

C.通過(guò)編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行

D.在沒(méi)有安裝C語(yǔ)言集成開(kāi)發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件

3.下列定義數(shù)組的語(yǔ)句中,正確的是()。

A.intN=10;intx[N]:

B.#defineNl0;intx[N];

C.intx[0..10];

D.intx[];

4.下列關(guān)于return語(yǔ)句的敘述中正確的是()。

A.—個(gè)自定義函數(shù)中必須有一條return語(yǔ)句

B.—個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句

C.定義成void類型的函數(shù)中可以有帶返回值的return語(yǔ)句

D.沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

5.

6.有以下程序:#includeMain(){intb[3][3]={0.1,2.0,1,},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);程序運(yùn)行后的輸出結(jié)果是()。A.3B.4C.1D.9

7.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是()。

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

8.設(shè)x和y均為bool量,則x&&y為真的條件是()。

A.它們均為真B.其中一個(gè)為真C.它們均為假D.其中一個(gè)

9.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語(yǔ)句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;

B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"

C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;

D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;

10.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運(yùn)行的結(jié)果是()。A.1,2,3,4,5,6,7,8,9,0,

B.0,9,8,7,6,5,1,2,3,4,

C.0,9,8,7,6,5,4,3,2,1,

D.1,2,3,4,9,8,7,6,5,0,

11.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。

A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭

12.在具有n個(gè)結(jié)點(diǎn)的有序單鏈表中插入一個(gè)新結(jié)點(diǎn)并使鏈表仍然有序的時(shí)間復(fù)雜度是________

A.O(1)B.O(n)C.O(nlogn)D.O(n2)

13.下列程序的輸出結(jié)果是()。main{inta,b,d=25;a=d/10%9;b=a&&(一1);printf("%d,%d\n",a,b);}A.6,1B.2,1C.6,0D.2,0

14.對(duì)于循環(huán)隊(duì)列()。

A.無(wú)法判斷隊(duì)列是否為空B.無(wú)法判斷隊(duì)列是否為滿C.隊(duì)列不可能滿D.以上說(shuō)法都不對(duì)

15.有以下程序程序執(zhí)行后的輸出結(jié)果是()

A.60B.50C.45D.55

16.下列對(duì)隊(duì)列的敘述正確的是A.隊(duì)列屬于非線性表B.隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)C.隊(duì)列在隊(duì)尾刪除數(shù)據(jù)D.隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)

17.樹(shù)最適合用來(lái)表示()。

A.有序數(shù)據(jù)元素B.無(wú)序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù)D.元素之間無(wú)聯(lián)系的數(shù)據(jù)

18.以下選項(xiàng)中錯(cuò)誤的是()。A.printf(“%s\n”,‘s’);

B.printf“%d%c\n”,‘s’,‘s’);

C.printf(“%c\n”,‘s’-32);

D.printf(“%c\n”,65);

19.

20.一個(gè)C語(yǔ)言程序總是從()開(kāi)始執(zhí)行:

A.主程序B.子程序C.主函數(shù)D.第一個(gè)函數(shù)

二、2.填空題(20題)21.有如圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

22.下列程序中的數(shù)組a包括10個(gè)整數(shù)元素,分別將前項(xiàng)和后項(xiàng)之和存入數(shù)組b,并按每行4個(gè)元素輸出數(shù)組b。請(qǐng)?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]);

}

}

23.執(zhí)行下面程序后,輸出結(jié)果是【】。

main()

{chars[12]="verygood!";

printf("%d",strlen(s));

}

24.下面程序的輸出是【】。

main()

{inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(prt+y):x;

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

}

25.下列程序的運(yùn)行結(jié)果為【】。

#include<stdio.h>

main()

{staticcharstr1[40];

charstr2140];

strcpy(str2,"China");

strcat(str1,str2);

strcat(str1,"isagreatcountry!");

printf("%s%s",str2,strl);

printf("%d%d\n",strlen(str2),strlen(str1));

}

26.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。

27.以下函數(shù)creat用來(lái)建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,新產(chǎn)生的結(jié)點(diǎn)是插在鏈表頭的

末尾。單向鏈表的頭指針作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

structlist

{chardata;

structlist*next;

};

structlist*creat;

{structlist*h,*p,*q;

charch;

h=(【】)malloc(sizeof(structlist));

p=q=h;

ch=getchar();

while(ch!='?')

{p=(【】)mallco(sizeof(structlist));

p->data=ch;

q->next=p;

q=p;

ch=getchar();

}

p->next='\0';

【】;

}

28.下面程序中的數(shù)組a包括10個(gè)整數(shù)元素,從a中第二個(gè)元素起,分別將后項(xiàng)減前項(xiàng)之差存入數(shù)組b,并按每行4個(gè)元素輸出數(shù)組b,請(qǐng)?zhí)羁?。main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=1;i<10;i++)();for(i=0;i<9;i++){printf("%d",b[i]);if(i%4==0)printf("\n");}}

29.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?/p>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

30.設(shè)有chara,b;,若要通過(guò)a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進(jìn)制是【】。

31.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);【】;

}while(n!=0);

printf("\n");

}

32.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為_(kāi)_____。

33.以下函數(shù)用來(lái)求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。請(qǐng)?zhí)羁铡?/p>

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

【】

if(s[*k]<s[i])*k=i;

return【】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

34.下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

main()

{inta=10,b=3;

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

printf("%d,",(a-b,a+b));

printf("%d\n",a-b?a-b:a+b);

}

35.以下程序的作用是:從名為filea.dat的文本文件中逐個(gè)讀入字符并顯示在屏幕上。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

36.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

37.下列程序的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符1,則輸出3,請(qǐng)?zhí)羁铡?include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}

38.軟件工程的出現(xiàn)是由于【】。

39.在面向?qū)ο蠓椒▽W(xué)中,直接反映了用戶對(duì)目標(biāo)系統(tǒng)的要求的模型是【】。

40.下列程序段的運(yùn)行結(jié)果是______。

charstr[]="ABCD",*p=str;

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

三、1.選擇題(20題)41.設(shè)有以下說(shuō)明語(yǔ)句typedefstruct{intn;charch[8];}PER;

A.PER是結(jié)構(gòu)體變量名

B.PER是結(jié)構(gòu)體類型名

C.typedefstruct是結(jié)構(gòu)體類型

D.struct是結(jié)構(gòu)本類型名

42.有以下程序:voidsott(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;)}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},I;sort(aa+2,5);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是______。

A.1,2,3,4,5,6,7,8,9,10,

B.1,2,7,6,3,4,5,8,9,10,

C.1,2,7,6,5,4,3,8,9,10,

D.1,2,9,8,7,6,5,4,3,10,

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

A.存儲(chǔ)問(wèn)題B.共享問(wèn)題C.安全問(wèn)題D.保護(hù)問(wèn)題

44.下列SQL語(yǔ)句中,用于修改表結(jié)構(gòu)的是()。A.A.ALTERB.CREATEC.UPDATED.INSERT

45.以下程序中函數(shù)reverse的功能是對(duì)a所指數(shù)組中的內(nèi)容進(jìn)行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-1];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是______。

A.22B.10C.34D.30

46.以下程序的輸出結(jié)果是

#include<stdio.h>

main()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:m++;break;}}

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

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

47.有以下程序main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);程序運(yùn)行后的輸出結(jié)果是

A.0B.4C.6D.7

48.堆排序是一種()排序。

A.插入B.選擇C.交換D.歸并

49.下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是

A.程序的效率第一,清晰第B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息

50.以下程序的輸出結(jié)果是_______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7});Print("%d%d%d%d\n",a[0][3],a[l][2],a[2][1],a[3][0]);}

A.650B.1470C.5430D.輸出值不定

51.下列選項(xiàng)中不屬于軟件生命周期開(kāi)發(fā)階段任務(wù)的是()。

A.軟件測(cè)試B.概要設(shè)計(jì)C.軟件維護(hù)D.詳細(xì)設(shè)計(jì)

52.以下不是面向?qū)ο笏枷胫械闹饕卣鞯氖?/p>

A.多態(tài)B.繼承C.封裝D.垃圾回收

53.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}

A.-8B.14C.0D.-24

54.以下敘述正確的是______。

A.構(gòu)成C程序的基本單位是函數(shù)

B.可以在函數(shù)中定義另一個(gè)函數(shù)

C.main()函數(shù)必須放在其他函數(shù)之前

D.所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義

55.在下列敘述中,錯(cuò)誤的一條是()

A.scanf()函數(shù)可以用來(lái)輸入任何類型的多個(gè)數(shù)據(jù)

B.數(shù)組名作函數(shù)參數(shù)時(shí),也采用“值傳遞”方式

C.如果形參發(fā)生改變,不會(huì)改變主調(diào)函數(shù)的實(shí)參值

D.函數(shù)的實(shí)參與形參的類型應(yīng)一致

56.在執(zhí)行以下程序時(shí),為了使輸出結(jié)果為:t=4,則給a和b輸入的值應(yīng)滿足的條件是______。main(){ints,t,a,b;scanf("%d,%d",&a,&b);s=1,t=1;if(a>0)s=s+1;if(a>b)t=s+1;elseif(a==b)t=5;elset=2*s;printf("%d\n",t);}

A.a>bB.a<b<0C.0<a<bD.0>a>b

57.下列程序的輸出結(jié)果是______。#includemain(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}

A.ihgfsdcbaB.abcdcfghiC.abcdedebaD.ihgfefghi

58.在下列敘述中,錯(cuò)誤的一條是______。

A.定義char*string="China"中的string是一個(gè)字符串變量,其值為China

B.若有一個(gè)多維數(shù)組a,則*(a+i)與a[i]等價(jià)

C.int(*p)[4]表示p為指針變量,它指向包含4個(gè)元素的一維數(shù)組

D.數(shù)組名代表數(shù)組的首地址,固定不變。指針變量可通過(guò)指向數(shù)組首地址來(lái)代表對(duì)應(yīng)的數(shù)組,但其值可以改變

59.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

60.若有定義:"inta[2][3];"則對(duì)a數(shù)組的第i行第j列無(wú)素的正確引用為()。

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

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

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

A.2,4,3,9,12,12,11,11,18,9,

B.3,4,2,7,9,8,6,5,11,10,

C.2,3,1,6,8,7,5,4,10,9,

D.1,2,3,6,8,7,5,4,10,9,

62.

63.在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是()。

A.程序內(nèi)部邏輯B.程序外部功能C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖

64.以下描述中正確的是()。

A.由于do-while循環(huán)中循環(huán)體語(yǔ)句只能是一條可執(zhí)行語(yǔ)句,所以循環(huán)體內(nèi)不能使用復(fù)合語(yǔ)句

B.do-while循環(huán)由do開(kāi)始,用while結(jié)束,在while(表達(dá)式.后面不能寫分號(hào)

C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷

D.do-while循環(huán)中,根據(jù)情況可以省略while

65.軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。

A.概要設(shè)計(jì)B.軟件設(shè)計(jì)C.可行性研究和計(jì)劃制定D.需求分析

66.專門的關(guān)系運(yùn)算不包括下列的()運(yùn)算。

A.連接運(yùn)算B.選擇運(yùn)算C.投影運(yùn)算D.并運(yùn)算

67.有以下程序:

#definef(x)(x*x)main

{

inti1,i2;

i1=f(8)/(4);i2=f(4+4)/f(2+2);

printf("%d,%d\n",i1,i2);

}

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

A.64,28B.4,4C.4,3D.64,64

68.有以下程序:

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

A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC

69.

70.有以下程序

#defineP(a)a+a

voidF(intx)

{return(P(2)*x*x);}

main()

{printf("%d\n",F(1+3));}

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

A.10B.34

C.64D.編譯出錯(cuò)

71.算法分析最重要的目的是

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系

C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)

72.

以下程序輸出結(jié)果是()。

main

{intm=5;

if(m++>5)printf("%d\n",m):

elseprintf("%d\n",m--);

}

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

73.有以下程序:

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

A.0B.4C.6D.7

74.有以下程序則輸出結(jié)果是()。A.1245B.1256C.1278D.1267

75.

76.

77.

78.以下選項(xiàng)中能表示合法常量的是()。

A.1,200B.1.5E2.0C.”\”D.”\007”

79.

有以下程序:

fun(intx)

{intP;

if(x==0||x==l)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

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

A.7B.3C.2D.0

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是逐個(gè)比較str1,str2兩個(gè)字符串對(duì)應(yīng)位置中的字符,把比ASCⅡ值大或相等的字符依次存放到str數(shù)組中,形成一個(gè)新的字符串。

例如,str1中的字符串為fshADfg,str2中的字符串為sdAEdi,則str中的字符串應(yīng)為sshEdig。

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

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù)proc(),它的功能是:求出一個(gè)4×N整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:

參考答案

1.C棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表:本題答案為C)。

2.Dc語(yǔ)言的可執(zhí)行程序是由一系列機(jī)器指令組成的。用C語(yǔ)言編寫的源程序必須經(jīng)過(guò)編譯生成二進(jìn)制目標(biāo)代碼,再經(jīng)過(guò)連接才能運(yùn)行,并且可以脫離c語(yǔ)言集成開(kāi)發(fā)環(huán)境。故答案為D)。

3.D選項(xiàng)A、B中n為變量,C語(yǔ)言中不允許動(dòng)態(tài)定義數(shù)組維數(shù),即維數(shù)不能是變量。選項(xiàng)C無(wú)此語(yǔ)法。

4.B在函數(shù)中允許有多個(gè)return語(yǔ)句,但每次調(diào)用只能有一個(gè)return語(yǔ)句被執(zhí)行,因此只能返回一個(gè)函數(shù)值,A選項(xiàng)描述錯(cuò)誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語(yǔ)句,C選項(xiàng)描述錯(cuò)誤。沒(méi)有return語(yǔ)句的函數(shù)在執(zhí)行到函數(shù)的最后一條語(yǔ)句后會(huì)自動(dòng)返回到調(diào)用處,D選項(xiàng)描述錯(cuò)誤。故本題答案為B選項(xiàng)。

5.A

6.B

7.A解析:在主函數(shù)main()中,語(yǔ)句“sum(&a[2]);”把數(shù)組元素a[0]的地址傳遞給了sun函數(shù)的形參a[],使得sum函數(shù)中的“(a+0)”為主函數(shù)中a[2]的地址,所以a[-1]的值為主函數(shù)中a[1]的值;a[1]的值為主函數(shù)中a[3]的伉,故函數(shù)sum中a[0]=2+4=6,由于此函數(shù)中的a是指向主函數(shù)中的a[2],所以a[2]的值為6。

8.A

9.By=(x=)071:x<0?-1:0)中有兩個(gè)三目運(yùn)算符,因此按從右到在的順序運(yùn)算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項(xiàng)。

10.Dfun函數(shù)的功能是對(duì)數(shù)組a[]的元素從大到小進(jìn)行排序。

11.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲(chǔ)文件(數(shù)據(jù)源)、源和潭。

12.B

13.B當(dāng)邏輯運(yùn)算符“&&”兩邊的值是非零時(shí),邏輯表達(dá)式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。

14.D

15.A函數(shù)fun的功能是求數(shù)組的n個(gè)元素之和。fun(a,5)=15。由于s岫是靜態(tài)局部變量,所以保持l5不變,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。

16.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ō)法是正確的。

17.C樹(shù)最適合用來(lái)表示元素之間具有分支層次關(guān)系的數(shù)據(jù),故本題選C。

18.A%d表示以字符和整型類型的格式輸出,%c表示以字符類型的格式輸出,%s表示以字符串類型的格式輸出。選項(xiàng)A中,‘s’是字符,不能用%s格式來(lái)輸出。故本題答案為A選項(xiàng)。

19.C

20.C

21.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對(duì)鏈表的定義。

22.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)將一個(gè)數(shù)組的前項(xiàng)和后項(xiàng)之和存入另一數(shù)組。

23.1010解析:strlen(s)函數(shù)的返回值為字符串s包含的字符個(gè)數(shù)<不計(jì)最后的'\\0')。

24.66解析:本題變量z的值應(yīng)為最后一次給它賦的值,且最后一次for循環(huán)使prt指向a[2]

25.ChinaChinaisagreatcountry!525

26.33解析:本題考查的是C語(yǔ)言逗號(hào)表達(dá)式的相關(guān)知識(shí)。程序在計(jì)算逗號(hào)表達(dá)式時(shí),從左到右計(jì)算由逗號(hào)分隔各表達(dá)式的值,整個(gè)逗號(hào)表達(dá)式的值等于其中最后一個(gè)表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計(jì)算為3。

27.strcurlist*strucrlist*return(h)

28.b[i-1]=a[i]-a[i-1]

29.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個(gè)臨時(shí)最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時(shí)最大元素更大時(shí),就用當(dāng)前元素的下標(biāo)更新臨時(shí)最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時(shí)最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開(kāi)始順序向后繼元素考查。程序中,存儲(chǔ)臨時(shí)最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時(shí)最大元素s[k)更大時(shí),應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。

30.1000001010000010解析:運(yùn)算“&”的規(guī)則是只有當(dāng)兩個(gè)相應(yīng)的二進(jìn)制位都為1時(shí),該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。

31.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。

32.'\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ù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

33.for(I=0;I<t;I++)0for(I=0;I<t;I++),0解析:本題中直接使用指針變量k,但在使用時(shí)要注意對(duì)k的指針運(yùn)算,此外,一開(kāi)始應(yīng)使*k的值為數(shù)組中的某一下標(biāo)值,即*k=0。

34.11371,13,7解析:本題考查3個(gè)知識(shí)點(diǎn):①余數(shù)的計(jì)算,題中的a=10,b=3,a%b=1;②(表達(dá)式1,表達(dá)式2)形式的結(jié)果為最后一個(gè)表達(dá)式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13;③條件運(yùn)算符的使用,題中的a-b?a-b:a+b,判斷語(yǔ)句a-b=7不為0,所以執(zhí)行a-b,結(jié)果為7。

35.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開(kāi)filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。

36.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)

37.*ss!='\0'*ss!='\\0'解析:本題考查的是指針的應(yīng)用。題目要求求出字符串ss中指定字符的個(gè)數(shù)。分析整個(gè)程序,空缺處是檢驗(yàn)指針ss是否指向了字符串的末尾,如沒(méi)有,即執(zhí)行下面語(yǔ)句,判斷指針ss指向的字符是否字符c,若是,i自加1;所以空缺處填入*ss!='\\0',作為循環(huán)終止的條件。

38.軟件危機(jī)的出現(xiàn)軟件危機(jī)的出現(xiàn)

39.功能模型功能模型

40.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個(gè)指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時(shí)是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。

41.B解析:本題考核的知識(shí)點(diǎn)是如何使用typedef定義新的類型。本題通過(guò)typedef在定義一個(gè)結(jié)構(gòu)體類型的同時(shí),把它自定義成類型名PER,故PER是結(jié)構(gòu)體類型名。所以,4個(gè)選項(xiàng)中B為所選。

42.C解析:aa+2=aa[2],因此sort(aa+2,5)是從aa[2]開(kāi)始,依次與后面的元素進(jìn)行比較,將當(dāng)前值小于其后一項(xiàng)的值進(jìn)行互換,循環(huán)5次。

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

44.A解析:在SQL語(yǔ)句中,凡是創(chuàng)建都用CREATE,刪除都用DROP,改變用ALTER,后面跟類型和名字,附加子句。

45.A解析:主函數(shù)調(diào)用reverse時(shí)。實(shí)參為b和8,即reverse函數(shù)的功能是將數(shù)組b中的前8個(gè)元素逆置,其余元素不變。因此函數(shù)調(diào)用結(jié)束后數(shù)組b的內(nèi)容為:8、7,6、5、4、3、2、1、9、10。main函數(shù)中for循環(huán)語(yǔ)句的功能是求b[6]元素到b[9]元素的和,即s=b[6]+b[7]+b[8]+b[9]=2+1+9+10=22,因此printf語(yǔ)句的輸出結(jié)果是22。

46.A解析:考查switch語(yǔ)句的使用。switch語(yǔ)句的條件是'a%3=15%3=0',所以執(zhí)行case0后面的語(yǔ)句,m++;m=1,然后就執(zhí)行break,跳出switch語(yǔ)句,所以最后輸出m的值為1\ue009。

47.D解析:本題考查的是switch語(yǔ)句。switch語(yǔ)句中的case或default只是一種入口標(biāo)號(hào),它并不形成一種子句的概念。當(dāng)滿足其中某個(gè)標(biāo)號(hào)的條件而進(jìn)入switch語(yǔ)句中時(shí),如果沒(méi)碰到break語(yǔ)句,將一直執(zhí)行到switch語(yǔ)句的結(jié)尾。題目中使用了一個(gè)while循環(huán)使k從5遞減到1,當(dāng)k=5或4的時(shí)候從default標(biāo)號(hào)進(jìn)入switch,碰到break;語(yǔ)句立即跳出,沒(méi)有改變n:當(dāng)k=3時(shí),執(zhí)行了一次n+=k;;k=2時(shí),也執(zhí)行了一次n+=k;k=1時(shí),執(zhí)行了兩次n+=k;所以最終n的值為3+2+1+1=7。故應(yīng)該選擇D。

48.B解析:堆排序是一種選擇排序。選擇排序有直接選擇排序和堆排序兩種。

49.A解析:當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格是“清晰第一,效率第二”的觀點(diǎn)。結(jié)構(gòu)化程序設(shè)計(jì)思想提出之前,在程序設(shè)計(jì)中曾強(qiáng)調(diào)程序的效率,而在實(shí)際應(yīng)用中,人們更注重程序的可理解性。

50.A解析:對(duì)未給出初始值的整數(shù)數(shù)組元素,被默認(rèn)初始化為零。

51.C解析:軟件生命周期由軟件定義、軟件開(kāi)發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分為若干個(gè)階段。軟件定義時(shí)期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個(gè)階段。軟件開(kāi)發(fā)時(shí)期是具體設(shè)計(jì)和實(shí)現(xiàn)在前一時(shí)期定義的軟件,它通常由下面五個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、組裝測(cè)試和確認(rèn)測(cè)試。軟件維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當(dāng)軟件在使用過(guò)程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件,以滿足用戶的新要求。根據(jù)上述對(duì)軟件生命周期的介紹,可知選項(xiàng)C中的軟件維護(hù)不是軟件生命周期開(kāi)發(fā)階段的任務(wù)。因此,本題的正確答案是C。

52.D解析:面向?qū)ο笏枷胫械娜齻€(gè)主要特征是:封裝性、繼承性和多態(tài)性。

53.D解析:表達(dá)式a+=a-=a*a看起來(lái)復(fù)雜,其實(shí)將它分成兩個(gè)表達(dá)式來(lái)計(jì)算就簡(jiǎn)單了:①第一個(gè)表達(dá)式(a-=a*a)=(a=a-a*a=-12);②第二個(gè)表達(dá)式(a+=a-=a*a)=(a=a+a=-24)。

54.A解析:C語(yǔ)言是由函數(shù)構(gòu)成的。一個(gè)C程序可以包含一個(gè)主函數(shù),即main()函數(shù),也可以包含一個(gè)main()函數(shù)和若干其他函數(shù)。函數(shù)是C程序的基本單位。被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫(kù)函數(shù),也可以是自定義的函數(shù)。從函數(shù)的形式上分為有參函數(shù)和無(wú)參函數(shù)。main()函數(shù)可以位于程序最前頭,也可以位于程序結(jié)尾或中間,C程序總是從main()函數(shù)開(kāi)始執(zhí)行,不論main()函數(shù)在程序中的位置如何。C語(yǔ)言中函數(shù)必須獨(dú)立定義,不能在一個(gè)函數(shù)中定義另一個(gè)函數(shù),但可以在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù),而且被調(diào)函數(shù)的定義可以在程序中的任何位置,不一定要在調(diào)用函數(shù)之前進(jìn)行定義。若被調(diào)函數(shù)在調(diào)用函數(shù)之后定義,在調(diào)用函數(shù)中需要對(duì)被調(diào)函數(shù)進(jìn)行類型說(shuō)明。

55.B

56.C

57.A

58.A

59.A解析:條件表達(dá)式的形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3,所以本題條件表達(dá)式a<b?a:c<d?c:d應(yīng)該理解為a<b?a:(c<d?c:d),首先求出條件表達(dá)式c<d?c:d的值等于2,再求條件表達(dá)式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達(dá)式的值等于1。

60.A解析:本題考查如何通過(guò)地址來(lái)引用數(shù)組元素。通過(guò)地址來(lái)引用數(shù)組元素的方法有下列5種:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

61.A本題考查的是結(jié)構(gòu)體成員的引用。在主函數(shù)main中定義了一個(gè)整型變量i和一個(gè)結(jié)構(gòu)體變量s。f函數(shù)中,通過(guò)指針a來(lái)引用數(shù)組中的元素;通過(guò)for循環(huán)語(yǔ)句將數(shù)組中除最后一個(gè)元素外的其他元素(由條件i<n-1決定的)分別加上由0開(kāi)始的遞增數(shù)據(jù)(即0、1、2…8),所以最后的輸出結(jié)果為2,4,3,9,12,12,11,11,18,9,。

62.B

63.B黑盒測(cè)試法指的是根據(jù)程序的外部功能,把程序本身看成一個(gè)黑盒子,設(shè)計(jì)測(cè)試用例來(lái)驗(yàn)證程序外部功能的正確性。

64.C解析:do-while語(yǔ)句的一般形式為:do循環(huán)體語(yǔ)句while(表達(dá)式);,其中循環(huán)體語(yǔ)句可以是復(fù)合型語(yǔ)句,但必須用花括號(hào)括起來(lái)。while后必須要有分號(hào)作為語(yǔ)句的結(jié)束,在do-while循環(huán)中,不可以省略while。

65.D\n通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用、退役的過(guò)程稱為軟件生命周期。也就是說(shuō),軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。軟件生命周期的主要活動(dòng)階段為:可行性研究和計(jì)劃制定。確定待開(kāi)發(fā)軟件系統(tǒng)的開(kāi)發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成開(kāi)發(fā)任務(wù)的實(shí)施計(jì)劃。

\n需求分析。對(duì)待開(kāi)發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件規(guī)格說(shuō)明書及初步的用戶手冊(cè),提交評(píng)審。

\n軟件設(shè)計(jì)。系統(tǒng)設(shè)計(jì)人員和程序設(shè)計(jì)人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。

\n軟件實(shí)現(xiàn)。把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊(cè)、操作手冊(cè)等面向用戶的文檔,編寫單元測(cè)試計(jì)劃。

\n軟件測(cè)試。在設(shè)計(jì)測(cè)試用例的基礎(chǔ)上,檢驗(yàn)軟件的各個(gè)組成部分。編寫測(cè)試分析報(bào)告。

\n運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。

\n本題答案是D)。

\n

66.D關(guān)系運(yùn)算有傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算,傳統(tǒng)的集合運(yùn)算有交,差,并,除和笛卡爾積,專門的關(guān)系運(yùn)算有鏈接,選擇,投影。

67.C本題考套的是宏定義。對(duì)帶參數(shù)的宏的

展開(kāi)只是將語(yǔ)句中宏名后面括號(hào)內(nèi)的實(shí)參字符串代替#define命令行中的形參。本題中“i1=f(8)/f(4)”用"#definef(x)(x*x)"代替得i1=(8*8)/(4*4),結(jié)果為4;

"i2=f(4+4)/f(2+2)"用“#definef(x)(x*x)”代替得i2=(4+4+4+4)/(2+2+2+2),求得結(jié)果為3。故本題輸出的值為4,3

68.A函數(shù)fun(char*s[],intn)的功能是對(duì)字符串?dāng)?shù)組的元素按照字符串的長(zhǎng)度從小到大排序。在主函數(shù)中執(zhí)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論