2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第1頁
2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第2頁
2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第3頁
2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第4頁
2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年山西省晉城市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列能正確定義且賦初值的語句是()。

A.intn1=n2=1;

B.charC=99;

C.floatf=f+1;

D.doublex=1.2E5.6;

2.若某表最常用的操作是在最后一個結(jié)點之后插入一個結(jié)點或刪除最后一個結(jié)點,則采用()存儲方式最節(jié)省運算時間。

A.單鏈表B.給出表頭指針的單循環(huán)鏈表C.雙鏈表D.帶頭結(jié)點的雙循環(huán)鏈表

3.已知各變量的類型說明如下則以下不符合C語言語法的表達式是()。A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

4.

5.在一個C語言源程序文件中所定義的全局變量,其作用域為()。

A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說明來決定范圍

6.若以下選項中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

7.

8.以下不合法的字符常量是()。

A.‘\\’B.‘\”’C.‘\018’D.‘\xcc’

9.在長度為n的順序表的第i個位置上插入一個元素(1≤i≤n+1),元素的移動次數(shù)為:()。

A.n–i+1B.n–iC.iD.i–1

10.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

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

12.

13.下列程序的輸出結(jié)果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a

14.視圖設(shè)計一般有3種設(shè)計次序,下列不屬于視圖設(shè)計的是______。

A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上

15.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序運行后的輸出結(jié)果是

A.9B.11C.19D.21

16.讀取二進制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個文件指針,指向待讀取的文件

B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址

D.一個內(nèi)存塊的字節(jié)數(shù)

17.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=a;B.chara=\nC.chara=aa;D.chara=\x2d;

18.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);該程序段的輸出結(jié)果是()。

A.*B.****C.**D.********

19.以下不合法的數(shù)值常量是()。

A.8.0E0.5B.1e1C.011D.0xabcd

20.與單鏈表相比,雙向鏈表的優(yōu)點之一是()。

A.插入、刪除操作更加簡單B.可以隨機訪問C.可以省略表頭指針或表尾指針D.順序訪問相鄰結(jié)點更加靈活

二、2.填空題(20題)21.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

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

}

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

#include<stdio.h>

main()

{intx=3,y=2,z=1;

if(x<y)

if(y<0)z=0;

elsez+=1;

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

}

23.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達式【】。

24.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

25.在面向?qū)ο蠓椒ㄖ?,允許作用于某個對象上的操作稱為【】。

26.下面程序的運行結(jié)果是______。

#include<stdio.h>

intf(inta[],intn)

{if(n>1)

returna[0]+f(a+1,n-1);

else

returna[0];

}

main()

{intaa[10]={1,2,3,4,5,6,7,8,9,10},s;

s=f(aa+2,4);printf("%d\n",s);

}

27.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

28.程序測試分為靜態(tài)測試和動態(tài)測試。其中()是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

29.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大的數(shù),再求這N個最大值中的最小的那個數(shù)作為函數(shù)值返回。請?zhí)羁铡?/p>

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{

introw,col,max,min;

for(row=0;row<N;row++

{

for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

30.按照“先進先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

32.下面fun函數(shù)的功能是將形參x的值轉(zhuǎn)換成二進制數(shù),所得二進制數(shù)的每一位數(shù)放在數(shù)組中返回,二進制數(shù)的最低位放在下標為0的元素中,其他依此類推。請?zhí)羁铡?/p>

Fun(intx,intb[])

{intk=0,r;

do

{r=x%2;

()=r;

x/=2;

}while(x);

}

33.以下條件表達式可計算:1+|a|的值,請?zhí)羁铡?/p>

a>=0?【】:【】

34.如果一個工人可管理多個設(shè)施,而一個設(shè)施只被一個工人管理,則實體“工人”與實體“設(shè)備”之間存在______聯(lián)系。

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

末尾。單向鏈表的頭指針作為函數(shù)值返回。請?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';

【】;

}

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

structNODE

{

intnum;

stmctNODE*next;

};

main()

{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;

intsum=0;

s[0].next=s+1;

s[1].next=s+2;

s[2].next=s;

p=s

q=p->next;

r=q->next;

sum+=q->next->num;

sum+=r->next->next->num;

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

}

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

#defineS(x)4*x*x+1

mah()

{inti=6,j=8;

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

}

38.數(shù)據(jù)庫理論中,數(shù)據(jù)的獨立性一般可分為物理獨立性和______。

39.對長度為10的線性表進行冒泡排序,對壞情況下需要比較的次數(shù)為______

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

#include<stdio.h>

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

}

三、1.選擇題(20題)41.視圖設(shè)計一般有3種設(shè)計次序,下列不屬于視圖設(shè)計的是______。

A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上

42.有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++)printf("%d,",*p);}程序運行后的輸出結(jié)果是()。

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

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

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

D.1,1,1,1,1,1,1,1,1,1,

43.下面的程序ASCⅡ。main(){intx=3,y=0,z=0;if(x==y+z)printf("****");elseprintf("####");}

A.有語法錯誤不能通過編譯B.輸出****C.可以通過編譯,但是不能通過連接,因而不能運行D.輸出####

44.以下函數(shù)返回a所指數(shù)組中最大值所在的下標值:fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]>a[p])______;return(p);}在下劃線處應(yīng)填入的內(nèi)容是()。

A.i=pB.a[p]=a[i]C.p=jD.p=i

45.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標

46.閱讀以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("請輸入2個數(shù):");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下說法正確的是()。

A.定義浯句出錯,Case是關(guān)鍵字,不能用作用戶自定義標識符,printF不能用作用戶自定義標識符

B.定義語句出錯,Int無法被識別

C.定義語句無錯,scanf不能作為輸入函數(shù)使用

D.定義語句無錯,printf不能輸出Case的值

47.以下4個程序中,完全正確的是()。

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main(){/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.#include<stdio.h>main(){/*programming*/printf("programming!\n");}

48.以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}

A.19B.17C.15D.12

49.有定義語句:“inta=1,b=2,c=3,x;”,則以下選項中各程序段執(zhí)行后,x的值不為3的是()。

A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;

B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

50.下列對于軟件測試的描述中正確的是______。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能地多發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

51.對于條件表達式(M)?(a++):(a--),其中的表達式M等于()

A.M==0B.M==1C.M!=0D.M!=1

52.下述關(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ù)

53.有三個關(guān)系R、s和T如下:

由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

54.下列敘述中正確的是()。A.實體集之間一對一的聯(lián)系實際上就是一一對應(yīng)的關(guān)系

B.關(guān)系模型只能處理實體集之間一對一的聯(lián)系

C.關(guān)系模型屬于格式化模型

D.以上三種說法都不對

55.以下有4組用戶標識符,其中合法的—組是______。

A.FOR-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

56.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

57.C語言提供的合法關(guān)鍵字是()

A.swicthB.cherC.CaseD.default

58.規(guī)范化理論中,分解()是消除其中多余的數(shù)據(jù)相關(guān)性

A.關(guān)系運算B.內(nèi)模式C.外模式D.視圖

59.下列不屬于算法特性的是

A.確定性B.可行性C.有輸出D.無窮性

60.在C語言中,退格符是

A.\nB.\tC.\fD.\b

四、選擇題(20題)61.已知inta,b;doublec;,則以下語句中錯誤的函數(shù)調(diào)用是

A.scanf("%d,%x,%lf",&a,&b,&c);B.scanf("%d,%d,%le",&a,&b,&c);

C.scanf("%o,%x,%o",&a,&b,&c);D.scanf("%d,%o,%e",&a,&b,&c);

62.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。

A.A.A,BB.A,68C.65,66D.65,68

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

A.在棧中只能插入數(shù)據(jù)

B.在棧中只能刪除數(shù)據(jù)

C.棧是先進先出的線性表

D.棧是先進后出的線性表

64.

65.有以下程序:

程序運行后的結(jié)果是()。

A.有運行錯誤B.輸出ll.10C.輸出l2.10D.輸出21.10

66.面下程序段的運行結(jié)果是

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

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

A.67B.0C.字符’C’的地址D.字符’C’

67.當變量c的值不為2、4、6時,值也為“真”的表達式是()。

68.函數(shù)ftell(fp)的作用是()。

A.得到fp所指向文件的當前讀寫位置B.初始化流式文件的位置指針C.移動流式文件的位置指針D.以上答案均正確

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

A.8B.4C.6D.2

70.在單鏈表中,增加頭結(jié)點的目的是()。

A.方便運算的實現(xiàn)B.使單鏈表至少有一個結(jié)點C.標識表結(jié)點中首結(jié)點的位置D.說明單鏈表是線性的鏈式存儲實現(xiàn)

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

A.scanfB.getcharC.getsD.getc

72.

73.設(shè)有定義:doublex=5.16894;,則語句prinff(”%If\n”,(int)(x$1000+0.5)/1000.);的輸出結(jié)果是()。

A.5.16900B.5.16800C.0.00000D.輸出格式說明符與輸出項不匹配,產(chǎn)生錯誤信息

74.已定義以下函數(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兩個指針所指字符串進行比較D.檢查p1和p2兩個指針所指字符串中是否有’\0’

75.有以下程序:

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

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

76.有如下程序:main(){intx=23;do{printf(”%d”,x--);}while(!x);}該程序的執(zhí)行結(jié)果是()。A.321B.23C.不輸出任何內(nèi)容D.陷入死循環(huán)

77.有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

printf("%s,%s\n",s1,s2);

}

程序執(zhí)行后的輸出結(jié)果是()。A.A.123,abeB.abc.123C.1bc,a23D.321,cba

78.以下程序段中,與語句:k=a>;b?(b>;c?1:O):0;功能相同的是()。

79.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

80.

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:計算并輸出m以內(nèi)最大的6個能被7或11整除的自然數(shù)之和。m的值由主函數(shù)傳人。例如,若m的值為600,則函數(shù)的值為3515。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.下列程序定義了M×M的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)proc(),函數(shù)的功能是求出數(shù)組周邊元素的平方和并作為函數(shù)值返回給主函數(shù)中的s。例如,若a數(shù)組中的值為則返回主程序后s的值應(yīng)為310。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B在c語言規(guī)定中,可以在定義變量的同時給變量賦初值,選項A中n2沒有定義;選項C中不能在賦值表達式的右邊出現(xiàn)變量本身,選項D中字母E后面的數(shù)應(yīng)該為整數(shù),所以不對。

2.D

3.A

4.A

5.D

\n全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個源文件結(jié)束止。當全局變量定義在后,引用它的函數(shù)在前時,應(yīng)該在引用它的函數(shù)中用extern對此全局變量進行說明,以便通知編譯程序該變量是一個已在外部定義了的全局變量,這時全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾。

\n

6.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側(cè)表達式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計算再賦值。選項A中運算符%的運算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。

7.D

8.C轉(zhuǎn)義字符中,八進制的表示形式為\\ddd,但是八進制中不能包含數(shù)字8,所以C選項不合法。故本題答案為C選項。

9.A

10.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

11.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。

12.D

13.C本題考查函數(shù)的調(diào)用及參數(shù)傳遞,當執(zhí)行函數(shù)point時,剛開始指針P指向“a”,經(jīng)過+3,指針p指向“f”,所以最后的輸出結(jié)果是f。

14.B解析:視圖設(shè)汁一般有3種設(shè)計次序,它們分別是自頂向下、自底向上和由內(nèi)

向外,它們又為視圖設(shè)計提供了具體的操作方法,設(shè)計者可根據(jù)實際情況靈活掌握,可以

單獨使用也可混合使用。

注意:數(shù)據(jù)庫概念設(shè)計的過程:首先選擇局部應(yīng)用,再進行局部視圖設(shè)計,最后

對局部視圖進行集成得到概念模式。

15.A解析:本題考核的知識點是一維數(shù)組的定義,初始化和數(shù)組中元素的引用。函數(shù)f()的作用是形參a為偶數(shù)的時候返回0,主函數(shù)中首先定義了一個長度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他沒有賦值的數(shù)組元素將自動賦值為0。for循環(huán)中,當s[1]不為偶數(shù)的時,將s[i]相加,即當i=3時,s[i]=2為偶數(shù),退出循環(huán),此時d的值為d=s101+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。所以,4個選項中選項A符合題意。

16.Cfread函數(shù)中的參數(shù)buffer是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存塊中。

17.Cchar類型用于存儲單個字符的簡單變量類型,它可以被指定為一個字符常量或一個整數(shù)。

18.AC語言中,分號為一條語句的結(jié)束。因此“for(i=0;i<4;i++,i++)for(k=1;k<3;k++);”是完整的語句,“printf(“*”);”是獨立語句,不屬于for循環(huán)。最后執(zhí)行printf語句輸出“*”。故本題答案為A選項。

19.AA選項中E后面的指數(shù)必須為整數(shù),所以不合法。C選項中的011表示的是八進制常量,D選項中的0xabcd表示的是十六進制常量。故本題答案為A選項。

20.D

21.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因為i在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應(yīng)是t*10。

22.11解析:ifelse語句的功能是:若表達式的值為真,執(zhí)行語句1,并跳過其他語句,執(zhí)行ifelse語句的下一條語句,若表達式的值為假,跳過語句1,執(zhí)行語句2,依次往下判斷。題中,x=3,y=2,第一個if語句的控制條件x<y就不滿足,又沒有與之配對的else語句,所以直接執(zhí)行printf語句,在整個過程中變量z的值都沒發(fā)生變化。

23.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

24.軟件開發(fā)

25.方法方法解析:在面向?qū)ο蠓椒ㄖ校椒ㄊ侵冈试S作用于某個對象上的各種操作。

26.本題主要考查函數(shù)的嵌套調(diào)用和數(shù)組名作為實參。實際程序運行結(jié)果應(yīng)為aa[2]+aa[3]+aa[4]+aa[5]=18。\r\n\r\n

27.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

28.靜態(tài)測試靜態(tài)測試

29.a[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)max<min或min>max或max<=min或min>=maxa[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)\r\nmax<min或min>max或max<=min或min>=max解析:本題有兩層for循環(huán),主函數(shù)中定義了整型變量row、col、max和min,其中row用來存放外循環(huán)中的循環(huán)次數(shù),col用來存放內(nèi)循環(huán)中的次數(shù),max記錄每行中的最大值,min記錄所有行中最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0列元素值,然后從第一列開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環(huán)結(jié)束,max記錄了每一行的最大值。所以第一個空應(yīng)該填a[row][col]>max或a[row][col]>=max。退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時,將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應(yīng)該填max>min或mm>max,當退出外循環(huán)時,min為所有行中的最大值的最小值。

30.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數(shù)據(jù)的。

31.101091101091解析:for(表達式1;表達式2:表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達式3的值。然后再檢測表達式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

32.b[k++]b[k++]解析:本題的考查點是do-while語句。形參x默認為十進制,要想將一個十進制的數(shù)轉(zhuǎn)換成二進制,可以使用整除求余法,題中的程序段也表明了將使用這種方法,將一個十進制的數(shù)轉(zhuǎn)換成二進制要用這個十進制數(shù)不斷的整除2,將每次的余數(shù)記錄下來,直至無法再除,此時,整除得到的第一個元素即為二進制數(shù)的最低位,其余依次類推,所以在程序段中的橫線處,應(yīng)當填寫“b[k++]”。

33.1+a1-a1+a\r\n1-a解析:因為題目中求的是1+|a|的值,即1和a的絕對值之和。所以根據(jù)數(shù)學中求絕對值的規(guī)則,當a>=0時,絕對值取本身,當a<0時,絕對值取相反數(shù),再結(jié)合條件運算符的計算規(guī)則可得到本題的答案為a>=0。注意:逗號表達式的求值規(guī)則。

34.一對多(或1:N)一對多(或1:N)

35.strcurlist*strucrlist*return(h)

36.55解析:主函數(shù)首先聲明了一個結(jié)點數(shù)組s[3],并分別初始化其成員num為1、2、3,而成員next全部被初始化為'\\0'也就是0。下面又用三條語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分別將三個結(jié)點指向其后面一個結(jié)點,而最后一個結(jié)點指向第1個結(jié)點,構(gòu)造出一條單向循環(huán)鏈表。接下來用結(jié)點指針p=s即讓其指向s[0],然后讓q=p->next,即指向了s[1],r=q->next即讓r指向s[2],然后讓一個累計變量sum累加q->next->num和r->next->next->nm,因為q指向s[1]所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最終輸出結(jié)果為5。

37.8181解析:本題的宏調(diào)用S(i+j)將被替換成表達式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本題輸出81。

38.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)的獨立性一般可分為物理獨立性和邏輯獨立性。

39.在最壞情況下冒泡排序法需要比較的次數(shù)為n(n-1)/2。

40.k=p;k=p;解析:要找數(shù)組中最大元素的下標,首先預(yù)設(shè)數(shù)組首元素下標為臨時最大元素的下標,從首元素開始順序向后繼元素逐一比較,當發(fā)現(xiàn)當前元素比臨時最大元素更大時,就用當前元素的下標更新臨時最大元素下標,直至比較了數(shù)組的全部元素后,臨時最大元素下標就是數(shù)組中最大元素的下標。程序中,變量k用于存儲臨時最大元素下標,變量p控制順序比較的循環(huán)變量。當發(fā)現(xiàn)當前元素s[p]比臨時最大元素s[k]更大時,用p更新k。所以在下劃線處應(yīng)填入代碼“k=p;”。

41.B解析:視圖設(shè)汁一般有3種設(shè)計次序,它們分別是自頂向下、自底向上和由內(nèi)

向外,它們又為視圖設(shè)計提供了具體的操作方法,設(shè)計者可根據(jù)實際情況靈活掌握,可以

單獨使用也可混合使用。

注意:數(shù)據(jù)庫概念設(shè)計的過程:首先選擇局部應(yīng)用,再進行局部視圖設(shè)計,最后

對局部視圖進行集成得到概念模式。

42.A解析:C語言規(guī)定數(shù)組名代表數(shù)組的首地址,所以for循環(huán)中循環(huán)變量p的初值即&a[o),故輸出的*p的值為a[0]的值。執(zhí)行p++后,指針變量P指向a[1],這時輸出*P即輸出a[1]的值,經(jīng)過10次循環(huán),將輸出a數(shù)組的全部數(shù)據(jù):

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

43.D解析:對于printf()函數(shù),若有格式控制字符,則在格式控制字符的位置輸出變量i的值;否則,直接輸出雙引號內(nèi)的內(nèi)容。

44.D解析:該題目要求的是最大數(shù)的位置(下標)。程序通過對a所指數(shù)組中的元素進行逐個比較,記錄最大數(shù)的下標i,并把該下標記錄在變量p中,所以,如果a[i]>a[p]關(guān)系成立,應(yīng)該把i的值賦給p,這樣才滿足題目的要求。

45.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

46.B解析:C語畝足一種大小寫敏感的語言,因此Int應(yīng)為int,而CaseprintF則可以使用。

47.B解析:選項A在定義main()函數(shù)時,函數(shù)頭后面多了一個分號,故選項A不正確;C語言中的注釋是不能嵌套的,故選項C不正確:選項D在使用預(yù)編譯指令#include時漏掉了#號,所以也是錯誤的。故應(yīng)該選擇B。

48.D解析:C語言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:

#define宏名(形參表)字符串

本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。

49.C解析:選項A首先判斷if語句條件中表達式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個if-else語句中首先判斷該if語句條件中表達式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。

選項B中首先判斷if語句條件中表達式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。

選項C中,首先選執(zhí)行第一條if語句,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條if語句,由于“1<1”為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。

選項D中,首先選執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3。所以,4個選項中選項C符合題意。

50.C解析:軟件測試的目的:盡可能地多發(fā)現(xiàn)程序中的錯誤,不能也不可能證明程序沒有錯誤,軟件測試是一個發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤。

51.C

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

53.D關(guān)系R與s經(jīng)交運算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

54.D解析:實體集之間一對一的聯(lián)系不一定是一一對應(yīng)的關(guān)系。例如,在一個教室中,實體集“學生”與實體集“座位”之間是一對一的聯(lián)系。因為實體集“學生”中的每一個學生最多與實體集“座位”中的一個座位有聯(lián)系(學生坐在該座位上);并且,實體集“座位”中中的每一個座位也最多與實體集“學生”中的一個學生有聯(lián)系(座位上坐著該學生)。但該教室中的學生與座位之間不一定是一一對應(yīng)的關(guān)系,因為有可能某些座位是空的,沒有學生去坐。因此,選項A)中的說法是錯誤的。在關(guān)系模型中,由于使用表格數(shù)據(jù)來表示實體之間的聯(lián)系,因此,可以直接描述多對多的實體聯(lián)系。因此,選項B)中的說法也是錯誤的。關(guān)系模型是與格式化模型完全不同的數(shù)據(jù)模型,它與層次模型、網(wǎng)狀模型相比有著本質(zhì)的區(qū)別。關(guān)系模型是用表格數(shù)據(jù)來表示實體本身及其相互之間的聯(lián)系,它是建立在數(shù)學理論基礎(chǔ)上的。因此,選項C)中的說法也是錯誤的。

55.C解析:C語言的標識符的定義為:以字母或下劃線開頭的由字母、數(shù)字字符、下劃線組成的字符串。而且標識符不能與關(guān)鍵字相同。

56.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設(shè)計的常用工具,不是需求分析的工具。

57.D

58.A解析:數(shù)據(jù)庫規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,根本思想是通過分解關(guān)系運算來消除多余的數(shù)據(jù)相關(guān)性。

59.D解析:一個算法必須具有5個特性,即有窮性、確定性、可行性、有輸入、有輸出。其中有窮性是指算法必須總是在執(zhí)行完有窮步之后結(jié)束,而且每步都在有窮時間內(nèi)完成。

60.D解析:在C++語言中退格符表示為\\b退格。注意:其他轉(zhuǎn)義字符的意義:\\n表示回車換行,\\t表示橫向跳到下一制表位置,\\v表示豎向跳格,\\r表示回車,\\f表示走紙換頁,\\\\表示反斜線符,\\a表示鳴鈴,\\ddd1~3位表示八進制數(shù)所代表的字符,\\xhh1~2位表示十六進制數(shù)所代表的字符。

61.C本題主要考查格式輸入函數(shù)scanf。此函數(shù)一般的輸入形式是scanf(格式控制,地址表列);。函數(shù)“格式控制”的含義同printf函數(shù),以%開始,以一個格式字符結(jié)束,中間可以插入附加的字符。常用的格式字符主要有:

d:用來輸入有符號的十進制整數(shù)。

u:用來輸入無符號的十進制整數(shù)。

o:用來輸入無符號的八進制整數(shù)。

x:用來輸入無符號的十六進制整數(shù)(大小寫作用相同)。

c:用來輸入單個字符,包括回車鍵。

s:用來輸入字符串,將字符串送到一個字符數(shù)組中,在輸入時以非空格字符開始,以第一個空格字符結(jié)束。字符串以串結(jié)束標志’\\0’作為其最后一個字符。

f:用來以小數(shù)形式輸入實數(shù)(包括浮點型和雙精度型)。

e:用來以指數(shù)形式輸入實數(shù)。

scanf的附加格式說明字符:

L、l:用于輸入長整型數(shù)據(jù)(可用%ld,%lo,%lx)及double型數(shù)據(jù)(用%lf)。

h:用于輸入短整型數(shù)據(jù)(可用%hd,%ho,%hx)。

域?qū)挘褐付ㄝ斎霐?shù)據(jù)所占寬度(列數(shù)),域?qū)拺?yīng)為正整數(shù)。

*:%后的“*”附加說明符用來表示跳過它相應(yīng)的數(shù)據(jù)。

在本題中,由于變量a和b是整型變量,而c是雙精度類型。很顯然,選項C中的描述不正確,它用%o輸出實數(shù)。

62.C在C語言中,用整型格式輸出字符時,輸出的是其ASCII碼值。

63.D

64.B

65.Acalloe(n,sizeof(type))在內(nèi)存的動態(tài)存儲區(qū)中分配n個長度為size的連續(xù)空間,函數(shù)返回一個指向分配起始地址的指針,如果分配不成功,返回NULL。s在函

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論