2021年山東省臨沂市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第1頁
2021年山東省臨沂市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第2頁
2021年山東省臨沂市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第3頁
2021年山東省臨沂市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第4頁
2021年山東省臨沂市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年山東省臨沂市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

2.設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=1;i<2n;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:

3.若一棵二叉樹具有10個(gè)出度為2的結(jié)點(diǎn),則在該二叉樹中,出度為0的結(jié)點(diǎn)個(gè)數(shù)是()

A.9B.11C.12D.不確定

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

A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析

5.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。

A.aChedB.deCabC.deabeD.Cedba

6.若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為()

A.a<>0B.!aC.a=0D.a

7.鏈表不具備的特點(diǎn)是()

A.所需空間與其長度成正比B.不必事先估計(jì)存儲(chǔ)空間C.插入刪除不需要移動(dòng)元素D.可隨機(jī)訪問任一節(jié)點(diǎn)

8.用鏈接方式存儲(chǔ)的隊(duì)列,在進(jìn)行刪除運(yùn)算時(shí)()。

A.僅修改頭指針B.僅修改尾指針C.頭、尾指針都要修改D.頭、尾指針可能都要修改

9.數(shù)據(jù)庫的故障恢復(fù)一般是由()來執(zhí)行恢復(fù)

A.電腦用戶B.數(shù)據(jù)庫恢復(fù)機(jī)制C.數(shù)據(jù)庫管理員D.系統(tǒng)普通用戶

10.設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程c(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績),則表sc的關(guān)鍵字(鍵或碼)為()。

A.課號(hào),成績B.學(xué)號(hào),成績C.學(xué)號(hào),課號(hào)D.學(xué)號(hào),姓名,成績

11.以下說法中正確的是()。

A.C程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行

B.C程序總是從main函數(shù)開始執(zhí)行

C.C函數(shù)必須有返回值,否則不能使用函數(shù)

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)程序文件中

12.以下敘述正確的是

A.continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

B.只能在循環(huán)體內(nèi)和swish語句體內(nèi)使用break語句

C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語句

13.

14.

有下列程序:

main

{charp[]={a,h,c},q[]="a";

printf("%d%d\n".sizeof(P),sizeof(q));

}

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

A.44B.33C.34D.43

15.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

16.順序查找不論在順序線性表中還是在鏈?zhǔn)骄€性表中的時(shí)間復(fù)雜度為()。

A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)

17.

18.以下關(guān)于算法的敘述中錯(cuò)誤的是()。

A.算法可以用偽代碼、流程圖等多種形式來描述

B.一個(gè)正確的算法必須有輸入

C.一個(gè)正確的算法必須有輸出

D.用流程圖描述的算法可以用任何一種計(jì)算機(jī)高級(jí)語言編寫成程序代碼

19.有以下程序:

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

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

20.設(shè)單鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為非空的循環(huán)單鏈表first的尾結(jié)點(diǎn)(由p所指向)滿足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;

二、2.填空題(20題)21.下面程序執(zhí)行后輸出的結(jié)果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

22.下面程序的功能是輸出數(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);}

23.有定義chara,b;若想通過&運(yùn)算符保留a對(duì)應(yīng)的二進(jìn)制數(shù)的第3位和第6位的值,其余位置0,則b的二進(jìn)制數(shù)應(yīng)是【】。

24.下列程序的循環(huán)次數(shù)是______。

x=2;

do

{x=x*x;}

while(!x);

25.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請(qǐng)寫出一條同一功能的賦值語句______。

26.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)______。

27.以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),如果是素?cái)?shù),函數(shù)返回1,否則返回0。

intisprime(inta)

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

28.在程序設(shè)計(jì)階段應(yīng)該采取【】和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語言寫成程序。

29.下列程序的字符串中各單詞之間有一個(gè)空格,則程序的輸出結(jié)果是【】。

#include<stdio.h>

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

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

main()

{inta=1,b=2;

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

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

}

32.對(duì)軟件是否能達(dá)到用戶所期望的要求的測(cè)試稱為【】。

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

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

for(i=0;i<3;i++)printf("%d,",a[i]);

printf("\n");}

34.在E-R圖中,矩形表示【】。

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

#include<stdio.h>

intf(ihta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

main()

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);prinff("%d\n",s);

}

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=0;i<4;i++)k+=arr[i]=i;

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

}

37.測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。

38.在鏈表的運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。

39.以下程序的功能是:通過函數(shù)func輸入字符并統(tǒng)計(jì)輸入字符的個(gè)數(shù)。輸入時(shí)用字符作為輸入結(jié)束標(biāo)志。請(qǐng)?zhí)羁铡?include<stdio.h>long();/*函數(shù)說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}

40.若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是【】;

main(){

intx,y;

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

y=x>12?x+10:x-12;

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

}

三、1.選擇題(20題)41.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

42.下列數(shù)據(jù)模型中,具有堅(jiān)實(shí)理論基礎(chǔ)的是()。

A.層次模型B.網(wǎng)狀模型C.關(guān)系模型D.以上3個(gè)都是

43.有下列程序段:intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。

A.4,4B.2,2C.4,5D.2,4

44.不能與do…while(exp)語句中的(exp)等價(jià)的表達(dá)式是()。

A.(!exp==0)B.(exp>0‖exp<0)C.(exp==0)D.(exp!=0)

45.若有以下程序段:intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是______。

A.10,A,10B.16,a,10C.10,a,0D.10,A,0

46.下列關(guān)系運(yùn)算中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個(gè)數(shù)多于原來關(guān)系中屬性個(gè)數(shù)的是()。

A.選擇B.連接C.投影D.并

47.在C語言中,while和do…while循環(huán)的主要區(qū)別是()。

A.do…while的循環(huán)體不能是復(fù)合語句

B.do…while允許從循環(huán)體外轉(zhuǎn)到循環(huán)體內(nèi)

C.whil8的循環(huán)體至少被執(zhí)行一次

D.do…while的循環(huán)體至少被執(zhí)行一次

48.有以下程序:#include<stdio.h>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);}程序運(yùn)行后的輸出結(jié)果()。

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

49.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=1,b=3;if((++a<0)&&!(b--<=0))printf("%d,%d\n",a,B;elseprintf("%d,%d\n",b,A);}

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

50.在微機(jī)中,bit的中文含義是()。

A.二進(jìn)制位B.字節(jié)C.字D.雙字

51.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是______。

A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼

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

A.對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變

C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界”的出錯(cuò)信息

D.可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)

53.當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。

A.scanfB.getcharC.getsD.getc

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

55.以下程序的輸出結(jié)果是()。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=O;i<4;i+2)printf("%d",p[i]);}

A.52B.51C.53D.97

56.C語言中用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

B.if、switch、break

C.for、while、do-while

D.if、for、continue

57.設(shè)變量x和y均已正確定義并賦值。下列if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是

A.ifx++);

B.it(x>y&&y!=0);

C.if(x>0)x--

D.if(y<0){;}elsey++;elsex++;

58.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若運(yùn)行時(shí)從鍵盤上輸入:6,5,65,66<回車>。則輸出結(jié)果是

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

59.以下選項(xiàng)中可作為C語言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

60.若有以下定義和語句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則不能表示a數(shù)組元素的表達(dá)式是______。

A.*pB.a[10]C.*aD.a[p-a]

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

#include"stdio.h"

main()

{intj,i,k=0;

for(j=20;j<=30;j++)

{if(!(k%10))printf("\n");

for(i=2;i<j;i++)if(!(j%i))break;

if(i>=j-1)

{printf("%d",j);

k++;}

}

}

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

A.2329B.2923

C.3292D.9232

62.

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

#include<stdio.h>

voidp(int*x)

{printf("%d¨,++*x);

}

voidmain()

{inty=3;

p(&y);

}

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

63.

64.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車>,輸出結(jié)果是

main()

{chars[100];intc,i;

scanf("%c",&c);scanf("%d",&i);scanf("%s",s);

prinnf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789

C.1,23,456,789D.1,23,456

65.設(shè)x為int型變量,則執(zhí)行以下語句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

66.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點(diǎn)是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對(duì)

67.有以下程序:

main()

{char*p[]={"3697","2584"};

inti,j;longnum=0;

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

{j=0;

while(p[i][j]!=’\0’)

{if((p[i][j]-’0’)%2==0)num=10*num+p[i][j]-’0’;

j+=2;

}

}

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

}

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

A.35B.37

C.39D.28

68.

69.有以下程序:

voidmain()

{

inty=10;

while(y>>1){printf("y=%d\n",y);}

}

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

A.y=0

B.y=-1

C.y=1

D.while構(gòu)成無限循環(huán)

70.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

71.

72.

73.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

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

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

75.

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

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

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

C.數(shù)據(jù)項(xiàng)

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

77.冒泡排序在最壞情況下的比較次數(shù)是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

78.(17)軟件需求分析階段的工作,可以分為四個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()

A.階段性報(bào)告

B.需求評(píng)審

C.總結(jié)

D.都不正確

79.

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

#include<stdio.h>

main

{structdate

{intyear,month,day;

}today;

printf("%d\n",sizeof(structdate));

}

A.8B.6C.10D.12

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將P所指字符串中的所有字符復(fù)制到b中,要求在每復(fù)制3個(gè)字符之后插入1個(gè)空格。

例如,若給a輸入字符串:“ABCDEFGHIJK”,調(diào)用函數(shù)后,字符數(shù)組b中的內(nèi)容為:“ABCDEFGHIJK”。

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

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將兩個(gè)兩位數(shù)的正整數(shù)a、b合并成一個(gè)整數(shù)放在c中。合并的方式是將a中的十位數(shù)和個(gè)位數(shù)依次放在c的個(gè)位和百位上,b中的十位數(shù)和個(gè)位數(shù)依次放在c的十位和千位上。例如,當(dāng)a=45,b=12時(shí),調(diào)用該函數(shù)后c=2514。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

參考答案

1.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對(duì)象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。

2.D由i"11的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項(xiàng)A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,…,n,最后計(jì)算得到f=n!一0,所以選項(xiàng)A不正確。在選項(xiàng)B中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,…,(n-1),最后計(jì)算得到f=(n-1)!,所以選項(xiàng)B不正確。在選項(xiàng)C中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項(xiàng)c不正確。在選項(xiàng)D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計(jì)算得到f=n!,所以選項(xiàng)D正確。

3.B

4.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對(duì)目標(biāo)系統(tǒng)提出清晰、準(zhǔn)確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。

5.D二叉樹的遍歷有3種:前序、中序和后序。①前序遍歷訪問根結(jié)點(diǎn),然后按左右順序遍歷子結(jié)點(diǎn);②中序首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;③后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。本題根據(jù)后序和中序遍歷的結(jié)果可以得出二叉樹的結(jié)構(gòu),然后再對(duì)其進(jìn)行前序遍歷,正確答案選項(xiàng)為D。

6.D

7.D

8.D

9.CC)【解析】數(shù)據(jù)庫一旦發(fā)生故障,需要及時(shí)進(jìn)行故障恢復(fù),并由數(shù)據(jù)庫管理員負(fù)責(zé)執(zhí)行故障恢復(fù)。

10.C學(xué)號(hào)是學(xué)生表S的主鍵,課號(hào)是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C項(xiàng)。

11.B解析:C++程序總是從main函數(shù)開始執(zhí)行。

12.B

13.A

14.C

\n語句charp[]={a,b,c);定義了一個(gè)一維字符數(shù)組p[],并用3個(gè)字符a,b,c進(jìn)行了初始化;而語句q[]='abe'表示定義了一個(gè)一維字符數(shù)組,并用一個(gè)字符串常量'abc'進(jìn)行了初始化。在C語言中,系統(tǒng)在每個(gè)字符串常量的最后自動(dòng)加入一個(gè)字符\0作為字符串的結(jié)束符。所以函數(shù)sizeof(q)=4,而sizeof(p)=3,因而選項(xiàng)C為正確答案。

\n

\n

\n

15.A解析:從main函數(shù)入手,定義了指向字符串的指針數(shù)組,并賦予了初始值,調(diào)用fun()函數(shù),函數(shù)的功能是:比較數(shù)組中各個(gè)元素的長度,按元素長度從小到大排列數(shù)組元素,所以執(zhí)行fun(ss,5)函數(shù)后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},所以調(diào)用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。

16.A

17.D

18.B【答案】B

【知識(shí)點(diǎn)】算法描述

【解析】一個(gè)算法應(yīng)該有0個(gè)或多個(gè)輸入,但是必須有一個(gè)或多個(gè)輸出。

19.A在函數(shù)point函數(shù)調(diào)用時(shí),系統(tǒng)自動(dòng)為函數(shù)的形參P分配內(nèi)存空間,并賦值為實(shí)參P的值。當(dāng)執(zhí)行語句P+=3;時(shí),系統(tǒng)操作的是形參P的內(nèi)存空間,更改形參P的內(nèi)容,而實(shí)參指針變量P的值未受影響,即指針變量作為函數(shù)參

20.C

21.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。

22.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),考查通常從首元素開始順序向后繼元素考查。程序中,存儲(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;'。

23.100100100100解析:“&”運(yùn)算符的運(yùn)算規(guī)則是:兩個(gè)二進(jìn)制數(shù)的對(duì)應(yīng)二進(jìn)制位只要有一個(gè)為0,則結(jié)果為0;二者都為1時(shí),結(jié)果為1。因此,要想保留某位可用1,屏蔽某位用0。

24.11解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測(cè)循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán);do…while語句的特點(diǎn)是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。

25.x+=1x+=1解析:本題考查“++”,“--”運(yùn)算符?!?+”、“--”只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。

26.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。

27.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素?cái)?shù)是指只能被1和其本身整除,不能被其他任何整數(shù)整除的數(shù)。根據(jù)if條件語句,若形參a對(duì)i取余等于0,則形參a可以被其他數(shù)整除,所以第一處填return0;若形參a對(duì)i取余不等于0,則形參s不可以被其他數(shù)整除,所以第二處填return1。

28.自頂而下自頂而下

29.HowdoessheHowdoesshe解析:程序中的strlen(str1)是求str1字符串的長度,結(jié)果為13,然后除以2結(jié)果為6。strcpy函數(shù)是把字符串“esshe”拷貝到str1后的第6個(gè)字符后面,也就是說,拷貝后的結(jié)果是“Howdoesshe”。

30.3232解析:while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計(jì)算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時(shí),結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時(shí)滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

31.21

32.有效性測(cè)試有效性測(cè)試

33.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點(diǎn)。

34.實(shí)體實(shí)體解析:E-R模型中,有3個(gè)基本的抽象概念:實(shí)體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實(shí)體,菱形框表示聯(lián)系,橢圓形框表示屬性。

35.1515解析:程序通過遞歸調(diào)用實(shí)現(xiàn)求數(shù)組aa各元素之和,即a[4]+a[3]+a[2]+a[1]+a[0]=15。

36.66解析:本題第1個(gè)for循環(huán)是為數(shù)組arr元素賦初值。第2個(gè)for循環(huán)是分別用i=0,1,2,3給數(shù)組元素arr[0]、arr[1]、arr[2]、arr[3]賦值,再累加到變量k中,k=0+1+2+3=6。

37.調(diào)試調(diào)試

38.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個(gè)頭結(jié)點(diǎn),因此在任何情況下,循環(huán)鏈表中至少有一個(gè)結(jié)點(diǎn)存在,從而使空表與非空表的運(yùn)算統(tǒng)一。

39.tunc()m++tunc()m++解析:第一空白處,在C語言中如果子函數(shù)在主函數(shù)之后定義,就要對(duì)其進(jìn)行說明,說明的形式為:“函數(shù)類型名函數(shù)名”。所以此處填寫func()。第二空白處,整型變量m表示輸入字符的個(gè)數(shù),所以每輸入一個(gè)字符,變量m的值就加1。所以此處填寫m++。

40.00解析:三目運(yùn)算符的形式為(表達(dá)式1)?(表達(dá)式2):(表達(dá)式3)。當(dāng)(表達(dá)式1)值為真時(shí),返回(表達(dá)式2)的值;為假時(shí),返回(表達(dá)式3)的值。題中因?yàn)閤>12為假,所以結(jié)果為x-12,即為0。

41.A解析:數(shù)據(jù)庫是一個(gè)通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨(dú)立性,而且能并發(fā)地為多個(gè)應(yīng)用服務(wù),同時(shí)具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項(xiàng)A正確,選項(xiàng)B錯(cuò)誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結(jié)構(gòu)化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲(chǔ)空間,也減少了對(duì)數(shù)據(jù)的存取時(shí)間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對(duì)數(shù)據(jù)的存取方式,選項(xiàng)C錯(cuò)誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點(diǎn),選項(xiàng)D錯(cuò)誤。本題正確答案是A。

42.C在數(shù)據(jù)庫設(shè)計(jì)中,目前常用的數(shù)據(jù)模型主要有三種,分別是層次模型、網(wǎng)狀模型和關(guān)系模型。

層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型。我們通常把滿足以下兩個(gè)條件的數(shù)據(jù)模型稱為層次模型。

(1)有且僅有一個(gè)結(jié)點(diǎn)無雙親,這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn)。

(2)其他結(jié)點(diǎn)有且僅有一個(gè)雙親。

層次模型用樹形結(jié)構(gòu)來表示各實(shí)體與實(shí)體間的聯(lián)系。實(shí)體是數(shù)據(jù)庫中數(shù)據(jù)描述的對(duì)象,可以是一個(gè)人、一種商品等。在層次模型中,每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,記錄之間的聯(lián)系用結(jié)點(diǎn)之間的連線表示,這種聯(lián)系是父子之間一對(duì)多的聯(lián)系。記錄就是描述實(shí)體的相關(guān)數(shù)據(jù)。

如果取消層次模型中的兩個(gè)限制,即允許一個(gè)以上的結(jié)點(diǎn)無雙親,則每一個(gè)結(jié)點(diǎn)可以有多個(gè)父結(jié)點(diǎn),便形成了網(wǎng)狀。我們把網(wǎng)狀表示實(shí)體之間聯(lián)系的模型稱為網(wǎng)狀模型。

關(guān)系模型用表格形式表示實(shí)體類型及其實(shí)體間的聯(lián)系。關(guān)系模型是目前最重要的一種模型,它是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的,具有最堅(jiān)實(shí)的理論基礎(chǔ)。關(guān)系模型的基本數(shù)據(jù)結(jié)構(gòu)是二維表,每一張二維表稱為一個(gè)關(guān)系。

43.D解析:首先定義了一個(gè)指向一維數(shù)組b的指針p,一個(gè)指向指針p的指針變量q,輸出*(p++)是先輸出*p即b[0]的值,再將指針p指向數(shù)組的下一個(gè)元素b[1],輸出**q是輸出指針p所指單元的內(nèi)容,即b[1]的值。

44.C解析:本題考查.do…while循環(huán)。在do…while循環(huán)中,當(dāng)表達(dá)式的值為非零(真)時(shí),執(zhí)行循環(huán),不能與其等價(jià)的是為零的表達(dá)式,即(exp==0)。

45.A解析:scanf函數(shù)為格式輸入函數(shù),執(zhí)行該函數(shù)后對(duì)變量m、n和c重新賦值,scanf的格式字符為'%dc%d',鍵盤輸入為10A10,所以m=10、c=\'A\'、n=10。

46.B選擇,連接,投影是專門的關(guān)系運(yùn)算,選擇是選擇滿足條件的元組,而投影是選擇滿足條件的屬性或者說列。并是傳統(tǒng)的關(guān)系運(yùn)算,是將兩個(gè)關(guān)系中的元組合并在一起再去掉重復(fù)的部分。選擇,投影,并三個(gè)運(yùn)算得到的結(jié)果屬性數(shù)并沒有改變或者說還有減少,而連接時(shí)將兩個(gè)關(guān)系進(jìn)行笛卡爾積運(yùn)算,在挑選滿足條件的項(xiàng)。其屬性個(gè)數(shù)一般會(huì)多于原來關(guān)系中的屬性數(shù)。

47.D解析:本題考查while和do…while循環(huán)的區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時(shí),才可能執(zhí)行循環(huán)體:在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。

48.B解析:本題要注意break和continue的區(qū)別。continue語句只結(jié)束本次循環(huán),繼續(xù)下一次循環(huán);而break語句則是結(jié)束整個(gè)循環(huán)。本題執(zhí)行過程如下:

a=1,b=1:a>=8不成立,a%2==1成立,執(zhí)行a+=5,則a=6,繼續(xù)執(zhí)行下一次循環(huán);

a=6,b=2:a>=8不成立,a%2==1不成立,執(zhí)行a-=3,則a=3,繼續(xù)執(zhí)行下一次循環(huán);

a=3,b=3:a>=8不成立,a%2==1成立,執(zhí)行a+=5,則a=8,繼續(xù)執(zhí)行下一次循環(huán);

a=8,b=4:a>=8成立,結(jié)束整個(gè)循環(huán),輸出b的值4。

49.C

50.A在微機(jī)中,信息的最小單位為二進(jìn)制位,用bit來表示;8位二進(jìn)制構(gòu)成一個(gè)字節(jié),用Byte來表示;一個(gè)或一個(gè)以上字節(jié)可組成一個(gè)二進(jìn)制表示的字,字長可以是8位、16位、32位或64位;兩個(gè)字長的字,稱為雙字。故本題正確答案是A\n【考點(diǎn)】科技\n學(xué)科專題(物理、化學(xué)、生物醫(yī)學(xué)、計(jì)算機(jī))\n計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)

51.B[答案]B

[考點(diǎn)]軟件工程基礎(chǔ)

[評(píng)析]

分析員對(duì)用戶的要求作出分析,并畫出數(shù)據(jù)流程圖,該圖通俗易懂,不涉及到如何在計(jì)算機(jī)上實(shí)現(xiàn),這是需求分析階段。

軟件工程中的瀑布模型:

問題定義,可行性研究,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,測(cè)試,運(yùn)行和維護(hù)

相關(guān)鏈點(diǎn):

層次圖和HIPO圖是概要設(shè)計(jì)中的工具圖;程序流程圖、N-S圖、問題分析PAD圖、設(shè)計(jì)程序語言PDL是詳細(xì)設(shè)計(jì)中的工具圖

52.C解析:在C語言中,除字符數(shù)組外,一個(gè)數(shù)組不能通過數(shù)組名對(duì)數(shù)姐進(jìn)行整體引用,因此選項(xiàng)A是對(duì)的。數(shù)組名中存放的是一個(gè)地址常量,它代表整個(gè)數(shù)組的首地址,因此選項(xiàng)B是對(duì)的。C語言程序在運(yùn)行過程中,系統(tǒng)不自動(dòng)檢驗(yàn)數(shù)組元素的下標(biāo)是否越界,因此選項(xiàng)C是錯(cuò)誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時(shí)數(shù)組說明符的一對(duì)方括號(hào)中可以不指定數(shù)組的大小,因此選項(xiàng)D也是正確的。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

53.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會(huì)被輸入,故可排除scanf。getc的作用是從文件中輸入一個(gè)字符,故也不可取。gets函數(shù)可以輸入一整行作為一個(gè)字符串,其中也包括空格字符,故應(yīng)該選擇C。

54.A解析:轉(zhuǎn)義字符'\\n'表示換行,'\\\\'表示反斜杠,函數(shù)strlen()是計(jì)算字符串的長度,不包括文件結(jié)束標(biāo)志('\\0'),函數(shù)sizeof()統(tǒng)計(jì)字符串所占的字節(jié)數(shù)。

55.C解析:執(zhí)行for循環(huán),輸出p[0]、p[2]的值。P的初值為數(shù)組元素x[1][1]的地址,即5的地址,因此p[0]為5,p[2]為3。

56.A解析:本題主要考查結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)有3種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。

57.C解析:選項(xiàng)A)和選項(xiàng)B)在條件判斷語句的后面是空語句,什么都不做;在選項(xiàng)D)中,if后面是一個(gè)復(fù)合空語句;而在選項(xiàng)C)中,在X--后面少了一個(gè)分號(hào),所以程序段在編譯時(shí),會(huì)出現(xiàn)語法錯(cuò)誤。

58.A解析:主函數(shù)中首先定義了4個(gè)字符變量a、b、cd,然后通過scanf()函數(shù)輸入a、b、c、d輸入中a和b是按字符格式c輸入的,c和d是按整型符號(hào)d輸入的。在看下面的printf()函數(shù)中,要求a、b、c、d都按字符輸出,故a和b原樣輸出為6、5,c和d將把與其ASCII碼對(duì)應(yīng)的字符輸出,65和66的ASCII碼對(duì)應(yīng)字符A和B,故最后的輸出為6,5,A,B。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合愿意。

59.A解析:C語言的常量分為整型常量、實(shí)型常量和字符型常量。本題中包含整型常量和實(shí)型常量。選項(xiàng)B)以0打頭,應(yīng)該屬于八進(jìn)制整數(shù),而八進(jìn)制整數(shù)只能用數(shù)字0~7表示,所以選項(xiàng)B)不合法;選項(xiàng)C)和D)從形式上看屬于實(shí)型常量,但對(duì)于指數(shù)形式的實(shí)型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項(xiàng)C)和D)都不合法;選項(xiàng)A)屬于實(shí)型常量中正確的十進(jìn)制小數(shù)形式。

60.B解析:程序中定義了數(shù)組a[10],則其元素的下標(biāo)范圍為0~9,而B選項(xiàng)中的a[10]所表示的元素已經(jīng)超出a數(shù)組元素的范圍,故應(yīng)該選擇B。

61.A在本題中,程序首先定義了三個(gè)整型變量,并將變量k賦值為0,然后開始循環(huán),循環(huán)開始時(shí),變量j的值為20,結(jié)束時(shí),變量j的值為30,每循環(huán)一次,變量j自加1,即循環(huán)10。

當(dāng)j=20,k=0時(shí),“!(k%10)”為真,輸出換行,即循環(huán)開始時(shí),輸出從新的一行開始,執(zhí)行第二重循環(huán),此時(shí)的i=2,“!(j%i)”為真,運(yùn)行break語句,即跳出本層循環(huán)(從這里我們可以看出,j如果可以被i整除,則跳出本層循環(huán)),然后判斷i是否不小于j-1,如果是,則輸出此時(shí)j的值,否則k自加1。

從程序執(zhí)行的過程來看,這個(gè)題目確實(shí)非常復(fù)雜,循環(huán)的次數(shù)太多,但經(jīng)過上面一次循環(huán)過程的分析,我們可以發(fā)現(xiàn),其實(shí)這個(gè)程序的作用是找出20~30之間除1和本身外,不能被其他小于本身的數(shù)據(jù)整除的數(shù),并從小到大輸出這樣的數(shù)。這樣就能很容易地得到答案是2329。

62.B

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

\n

63.D

64.D本題考查格式輸入。程序中定義了一個(gè)字符數(shù)組s,兩個(gè)整型變量i和c。隨后調(diào)用了三次格式輸入函數(shù)scanf。第一個(gè)scanf函數(shù)只能輸入一個(gè)字符型的數(shù)據(jù),第二個(gè)函數(shù)是輸入一個(gè)整型數(shù)據(jù),第三個(gè)函數(shù)是輸入一個(gè)字符串。執(zhí)行代碼時(shí),輸入123<空格>456<空格>789<回車>,將1作為一個(gè)字符用第一個(gè)scanf函數(shù)輸入,23作為一個(gè)整型數(shù)據(jù)由第二個(gè)函數(shù)輸入,而字符串的輸入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論