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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

一、單選題(20題)1.設有定義“intx,y,z;”,且各變量已經(jīng)賦正整數(shù)值,則以下能正確表示代數(shù)式“”的C語言表達式是()。

A.1.0/x/y/zB.1/x*y*zC.1/(x*y*z)D.1/x/y/(double)z

2.向一個棧頂指針為h的帶頭結點的鏈棧中插入指針s所指的結點時,應執(zhí)行()操作。

A.h->next=s;

B.s->next=h;

C.s->next=h;h->next=s;

D.s->next=h->next;h->next=s;

3.C語言中函數(shù)返回值的類型是由()決定的。

A.return語句中的表達式類型B.調用該函數(shù)的主調函數(shù)類型C.定義函數(shù)時所指定的函數(shù)類型D.以上說法都不正確

4.下列條件語句中,輸出結果與其他語句不同的是()。

A.if(a!=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);

C.if(a==0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

D.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);

5.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是________。

A.23B.26C.33D.36

6.若有定義“inta=1,b=2,c=3,d=4,m=2,n=2;”,則執(zhí)行“(m=a>b)&&(n=c>d)”后n的值是()。

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

7.下列選項中與“if(a==1)a=b;elsea++;”語句功能不同的switch語句是()。

A.switch(a==1){ case0:a=b;break; case1:a++;}

B.switch(a){ case1:a=b;break; default:a++;}

C.switch(a){ default:a++;break; case1:a=b;}

D.switch(a==1){ case1:a=b;break; case0:a++;}

8.已知有double型變量x=2.5,y=4.7,整型變量a=7,則表達式x+a%3*(int)(x+y)%2/4的值是()。

A.2.4B.2.5C.2.75D.0

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

A.在C語言中,預處理命令行都以“#”開頭

B.預處理命令行必須位于C語言源程序的起始位置

C.“include<stdio.h>”必須放在C語言程序的開頭

D.C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能

10.有以下程序:#includeMain(){Int?x=1.y=0;if(!x)y++;elsef(x==0)if(x)y+=2;else?y+=3;printf("%d\n",y);\}程序運行后的輸出結果是()。A.3B.2C.1D.0

11.以下敘述中錯誤的是()。

A.C語言編寫的函數(shù)源程序,其文件名后綴可以是C

B.C語言編寫的函數(shù)都可以作為一個獨立的源程序文件

C.C語言編寫的每個函數(shù)都可以進行獨立的編譯并執(zhí)行

D.一個C語言程序只能有一個主函數(shù)

12.設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

13.設已有定義“floatx;”,則下列對指針變量P進行定義且賦初值的語句中正確的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float*p=1024;

14.有以下程序#include<stdio.h>main(){inta=5,b=l;t=(a<<2)|b;printf("%d\n",t);}程序運行后的輸出結果是______。A.21B.11C.6D.1

15.若有定義"int*p[3];",則以下敘述中正確的是()。

A.定義了一個基類型為int的指針變量p,該變量具有3個指針

B.定義了一個指針數(shù)組p,該數(shù)組含有3個元素,每個元素都是基類型為int的指針

C.定義了—個名為*p的整型數(shù)組,該數(shù)組含有3個int類型元素

D.定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應具有3個int類型元素

16.有下列程序: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

17.

18.執(zhí)行完下列語句段后,i值為()。A.A.2B.4C.8D.無限遞歸

19.下列程序的輸出結果是()

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

20.對線性表進行折半查找最方便的存儲結構是()。

A.順序表B.有序順序表C.鏈表D.有序鏈表

二、2.填空題(20題)21.在關系運算中,【】運算是對兩個具有公共屬性的關系所進行的運算。

22.若有定義intm=5,y=2,則執(zhí)行表達式y(tǒng)+=y-=m*=y后,y的值為【】。

23.對于一棵具有n個結點的樹,該樹中所有結點的度為【】。

24.在面向對象方法中,信息隱蔽是通過對象的______性來實現(xiàn)的。

25.當數(shù)據(jù)的物理結構(存儲結構)改變時,不影響數(shù)據(jù)庫的邏輯結構,從而不致引起應用程序的變化,這是指數(shù)據(jù)的【】。

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

27.以下函數(shù)的功能是求x的y次方,請?zhí)羁?/p>

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

}

28.以下程序運行后的輸出結果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}

29.以下程序的功能是調用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結果。請?zhí)羁铡?/p>

intfun(intn)

{intm=0,f=1,i;

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

{m+=i*f;

f=______;

}

returnm;

}

main()

{printf("%d\n",【】);}

30.若有以下定義和語句,sizeof(a)的值是【】,sizeof(a.share)的值是【】。

structdate

{intday;

intmonth;

intyear;

union

{intshare1;

floatshare2;

}share;

}a;

31.若有下面的程序片段:int[12]={0},*p[3],**pp,i;for(i=0;i<3;i)p[i]=&a[i*4];pp=p;則對數(shù)組元素的錯誤引用是

32.【】是數(shù)據(jù)庫設計的核心。

33.以下程序的輸出結果是【】。

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

34.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運行后的輸出結果是()。

35.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?zhí)羁铡?/p>

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=a[i];

}

}

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

}

36.設有下列宏定義:#defineA2

#defineBA+3

則執(zhí)行賦值語句;t=B*2;t為int型變量后的值是______。

37.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。

38.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結果傳回,請?zhí)畛渫暾?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;

}

39.當數(shù)據(jù)的物理結構(存儲結構、存取方式等)改變時,不影響數(shù)據(jù)庫的邏輯結構,從而不致引起應用程序的變化,這是指數(shù)據(jù)的【】。

40.以下程序運行時若從鍵盤輸入:102030<回車>。輸出結果是【】。

#include<stdio.h>

main()

{

inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);

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

}

三、1.選擇題(20題)41.下面程序的輸出結果是()main(){intx,y,z;x=0;y=z=-1;x+=-z---yprintf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

42.有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量b。則不能把結點b連接到結點a之后的語句是structnode{chardata;structnode*next;}a,b,*p=&a,*q=&b;

A.a.next=q;B.p.next=&b;C.p->next=&b;D.(*p).next=q;

43.若有定義:inta[4][10];,則以下選項中對數(shù)組元素a[i][j]引用錯誤的是______。(0<=i<4,0<=j<10)

A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)

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

A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題

C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)

D.以上3種說法都不對

45.語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結果是()。

A.a\bhow\'are\'y\\bou

B.a\bhow\'are\'y\bou

C.how'are'you

D.ahow'are'y\bou

46.下列敘述中,不屬于設計準則的是()。

A.提高模塊獨立性B.使模塊的作用域在該模塊的控制域中C.設計成多入口、多出口模塊D.設計功能可預測的模塊

47.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;執(zhí)行該程序段后,k的值是()。

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

48.已定義以下函數(shù):intfun(int*p){return*p;}函數(shù)fun的返回值是()。

A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值

49.下列數(shù)據(jù)結構中,不是線性結構的是()。

A.線性鏈表B.帶鏈的隊列C.帶鏈的棧D.二叉鏈表

50.設有定義:intnl=0,n2,*p=&n2,*q=&n1;,下列賦值語句中與n2=n1;語句等價的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

51.設x=015,則x=x^017的值是()。A.00001111B.11111101C.00000010D.11000000

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

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結構

53.下面程序的功能是輸出以下形式的金字塔圖案:****************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=();j++)printf("*");printf("\n");}}在下劃線處應填入的是()。

A.iB.2*1-1C.2*i+1D.i+2

54.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()

A.控制流B.加工C.存儲文件D.源和潭

55.執(zhí)行下列語句的結果為______。i=3;printf("%d,",++i);printf("%d",i++);

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

56.下列對于軟件測試的描述中正確的是()。

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

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

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

D.軟件測試的目的是使程序符合結構化原則

57.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。

A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值

58.下面判斷正確的是

A.char*a="china";等價于char*a;*a="china";

B.charstr[5]={"china"};等價于charstr[]={"china"};

C.char*s="china";等價于char*s;s="china";

D.charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";

59.以下有4組用戶標識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

60.設有以下語句,則c的二進制值是()chara=3,b=6,c;c=ab<<2;

A.11011B.10100C.11100D.11000

四、選擇題(20題)61.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達式a<b?a:c<d?c:d的值是()。A.A.1B.2C.3D.4

62.程序設計方法要求在程序設計過程中()。

A.先編制出程序,經(jīng)調試使程序運行結果正確后再畫出程序的流程圖

B.先編制出程序,經(jīng)調試使程序運行結果正確后再在程序中的適當位置處加注釋

C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調試使程序運行結果正確后再在程序中的適當位置處加注釋

D.以上三種說法都不對

63.

64.

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

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

66.

67.

68.若有定義語句:intX=10;,則表達式x-=x+x的值為()。

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

69.有以下程序:

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

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

70.一名工作人員可以使用多臺計算機,而一臺計算機可被多名工作人員使用,則實體工作人員與實體計算機之間的聯(lián)系是()。

A.—對一B.—對多C.多對多D.多對一

71.閱讀以下程序:

該程序在編譯時產生錯誤,原因是()。

A.定義語句出錯,Case是關鍵字,不能用作用戶自定義標識符

B.定義語句出錯,printF不能用作用戶自定義標識符

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

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

72.軟件生命周期中花費時間最多的階段是

A.詳細設計B.軟件維護C.軟件編碼D.軟件測試

73.

有以下程序:

#include<stdio.h>

main

{inti=0,a=0;

while(i<20)

{for(;;)

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

else

i--;

}

i+=11:

a+=i:

}

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

}

程序的輸出結果是()。

A.62B.63C.33D.32

74.

75.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

76.若有定義語句:intm[]={1,2,3,4,5},i=4;,則下面對m數(shù)組元素的引用中錯誤的是

A.m[++i]B.m[1*2]

C.m[m[0]]D.m[m[--i]]

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

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

78.有以下程序

79.

80.設有以下語句:

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

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

五、程序改錯題(1題)81.下列給定程序中,fun()函數(shù)的功能是:從整數(shù)1~50中,選出能被3整除且有一位上的數(shù)是5的數(shù),并把這些數(shù)放b所指的數(shù)組中,這些數(shù)的個數(shù)作為函數(shù)值返回。規(guī)定,函數(shù)中a1放個位數(shù),a2放十位數(shù)。

請修改函數(shù)中的錯誤,得出正確的結果。

注意:不要改動main()函數(shù),不能增行或減行,也不能更改程序的結構。

試題程序:

六、程序設計題(1題)82.學生的記錄由學號和成績組成,M名學生的數(shù)據(jù)已在主函數(shù)中放人結構體數(shù)組stu中,請編寫函數(shù)proc,它的功能是:把指定分數(shù)范圍之外的學生數(shù)據(jù)放在b所指的數(shù)組中,分數(shù)范圍之外的學生人數(shù)由函數(shù)值返回。

例如,輸入的分數(shù)是70和79,則應當把分數(shù)低于70和高于79的學生數(shù)據(jù)輸出,不包含70分和79分的學生數(shù)據(jù)。主函數(shù)中把70放在low中,把79放在heigh中。

注意:部分源程序給出如下。

請勿改動main函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。

試題程序:

#include<stdio.h>

#defineM16

typedefstruct

{

charnum[10];

ints:

}

STREC;

intproc(STREC*a,STREC*b,int1,inth)

{}

voidmain

{

STRECstu[M]={{"GA005",55),{"GA003",96},

{"GA002",80),{"GA004",68),

{"GA001",88},{"GA007",74},

{"GA008",85),{"GA006",89},

{"GA015",90),{"GA013”,53),

{"GA012",66},{"GA014”,82),

{"GA011",73},{"GA017",69),

{"GA018",64),{"GA016",86}};

STRECh[M];

inti,n,low,heigh,t;

printf("Enter2integernumberlow&

heigh:");

scanf("%d%d",&low,&heigh);

if(heigh<low)’

{

t=heigh:

heigh=low;

low=t;

}

n=proc(stu,h,low,heigh);

printf("Thestudent’Sdataout

%d--%d:\n",low,heigh);

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

printf("%S%4d\n",h[i].num,h[i].s);

//輸出指定分數(shù)范圍內的學生記錄

printf("\n");

}

參考答案

1.A代數(shù)式“”的結果為小數(shù),轉為C語言的表達式必須是浮點數(shù)。A選項由于1.0為浮點數(shù),計算結果自動轉換為浮點數(shù)。選項B、C、D的表達式均為0,因此只有選項A正確。故本題答案為A選項。

2.D

3.C

4.CA、B、D選項的含義均為:a的值如果為0,輸出y的值,否則輸出x的值。而C選項的含義是:a的值為0時輸出x的值,不為0時輸出y的值,與其他選項正好相反。故本題答案為C選項。

5.A解析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][0]語句實際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時,aa[0][1]=3,*p=2;*p輸出的是指針所指向的數(shù)組值,此時p所指向的是aa[O][0],輸出2,而i=1時執(zhí)行了++p操作使指針向后移動指向了aa[0][1],所以在輸出*p時應為3。

6.C對于表達式“(m=a>b)&&(n=c>d)”,首先執(zhí)行m=a>b,由于a、b的值分別為1、2,因此a>b的值為0,m的值為0,又由于邏輯與運算符&&的短路原則,第1個表達式的值為假,因此整個表達式的值已經(jīng)確定為假,第2個表達式不會被執(zhí)行,n的值依然是2。本題答案為C選項。

7.A題干中,if語句的含義是:如果a的值為1,將b的值賦給a,否則將a的值自增1。選項A中,“switch(a==1)”中表達式“a==1”的結果如果為真,即1,則從case1開始執(zhí)行“a++”;如果“a==1”的結果為假,即為0,則從case0開始執(zhí)行“a=b”,所以與題干含義執(zhí)行操作相反的是選項A中的語句。故本題答案為A選項。

8.B

9.A預處理命令以“#”開頭,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、C選項錯誤。C語言的預處理能夠實現(xiàn)宏定義和條件編譯的功能,所以D選項錯誤。故本題答案為A選項。

10.D[解析]在ifelse語句中else,總是與離它最近的配對。本題目中x為1所以!勸0.所以執(zhí)行elsei語句中的內容,判斷(x==0)是否成立,因為勸1所以條件不成立,所以else內部的if..else語句不再執(zhí)行,所以y的值還是初始值0.

11.C函數(shù)是指預先定義功能塊,其目的是提高程序的重用性。在C語言中函數(shù)的源程序,后綴名可以為C。C語言所編寫的函數(shù)都可以是一個獨立的源文件。一個C語言程序只能有一個主函數(shù)。C語言中編寫的函數(shù)不是每個都可以獨立地編譯和執(zhí)行的,因為C語言中程序的開始為主函數(shù),如果程序中沒有主函數(shù)則無法進行編譯和執(zhí)行。

12.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應用。在使用一個指針變量之前,先要用聲明語句對其進行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。

13.B指針是用來存放地址的變量,定義指針變量的形式為:類型名*指針變量名。賦值時應將某個變量地址,如選項B中變量x的地址&x賦給指針變量。故本題答案為B選項。

14.A解析:本題主要考查了C語言的邏輯運算符,先將變量a,b的值轉換為2進制數(shù),a=00000101,b=00000001,a先左移2位結果為00010100,再與b按位或運算,結果為00010101,轉換為十進制數(shù)為21,因此,選項A是正確的。

15.B解析:指針數(shù)組也是一種數(shù)組,所有有關的概念都適用于它。但它與普通的數(shù)組又有區(qū)別,它的數(shù)組元素是指針類型,只能用來存放地址。其格式為:存儲類型數(shù)據(jù)類型*指針數(shù)組名[長度1],其含義為:定義了一個長度1的數(shù)組,其中數(shù)組元素為相應存儲類型的指針,對比定義可知,選項A、C和D都不正確,所以,4個選項中選項B符合題意。

16.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。

17.D

18.B

19.B解析:算術運行符“/”、“%”的優(yōu)先級處于同一級,并且兩者的結合性都是從左到右。所以算術表達式運算過程為:a=25/10%9=2%9=2:當邏輯運算符“&&”兩邊的值都是非零時,邏輯表達式的值才為真(即為1)。所以b=2&&(-1)=1。

20.B

21.自然連接自然連接解析:在關系運算中,自然連接運算是對兩個具有公共屬性的關系所進行的運算。

22.-16-16解析:將賦值運算符右側的“表達式”的值賦給左側的變量,并且賦值運算符按照“自右而左”的結合順序,本題表達式應先算m的值為10,再運算y的值為8,最后計算y=y+(-8)=-8+(-8)=-16。

23.n-1n-1解析:設該樹中所有結點的度為x,因為,在樹的結點中,除了根結點以外,其余結點都有一個分支進入,所以,n=x+1,所以x=n-1。

24.封裝封裝

25.物理獨立性數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應用程序而不依賴于應用程序。也就是說,數(shù)據(jù)的邏輯結構、存儲結構與存取方式的改變不會影響應用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩級。

26.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。

27.xx解析:函數(shù)的定義形式為:

函數(shù)類型函數(shù)名(形參表)

{

類型說明語句;

執(zhí)行語句;

}

本題中函數(shù)的功能是:累積變量以求捐變量的Y次方。

28.1020010200解析:本題考查的是混合運算?!?a/b<1)&&(a%b<1)”的運算順序為:括號>算術運算符>關系運算符>邏輯運算符。其中a%b=10,a,b=0,所以a%b<1的值為0,a/b<1的值為1,故整個表達式的結果為0,所以輸出的a,b,c的值為10200。

29.fun中的答案為-fmain函數(shù)中的答案為fun(10)fun中的答案為-f,main函數(shù)中的答案為fun(10)解析:根據(jù)題意可知函數(shù)fun的功能是計算12+3-4+…+n的和,所以空格處應填入-f,main函數(shù)中輸出1-2+3-4+…+9-10的結果,所以函數(shù)的實參為10,函數(shù)調用為fun(10)。

30.104

31.C

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

33.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值“BCD”并換行,依次執(zhí)行循環(huán)語句。

34.98

35.&a[i]&a[i]解析:主要考查函數(shù)scanf的用法.應填數(shù)組a的元素的地址。

36.88解析:本題考查帶參數(shù)的宏定義及相關運算.運算過程為:t=B*2=A+3*2=2+3*2=8。

37.2525解析:#NAME?

38.int*int*解析:從函數(shù)體中可看出,2是一個指向整型的指針,該函數(shù)的形參z是傳地址調用。

39.物理獨立性物理獨立性

40.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個十進制整數(shù),但只接受第一和第三個到函數(shù)的第二和第三個參數(shù)所指的內存地址中。所以本題的輸出為:10300。

41.C

42.B解析:本題考查結構體指針變量的賦值方法。要把結點b連接到結點a之后,必須把b的地址給a的next指針,選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應該是p->next=&b;在選項D)中,用*運算符取出結構體變量,并且保存的就是b的地址。

43.B解析:本題中選項B是錯誤的引用,*(a+i)+j只代表了a[i][j]的地址。

44.B解析:數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還必須有其他相關軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應用軟件開發(fā)工具等,選項A的說法是錯誤的。數(shù)據(jù)庫具有為各種用戶所共享的特點,選項B的說法是正確的。通常將引入數(shù)據(jù)庫技術的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由5個部分組成,包括相關計算機的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關軟件和人員。因此,選項C的說法是錯誤的。

45.C解析:“\\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導致“\\b'’格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號字符;“\\\\”格式符表示輸出反斜線字符。

46.Cc)【解析】大量軟件設計表明,以下的設計準則是可以借鑒為設計的指導和對軟件結構圖進行優(yōu)化,這些準則是:提高模塊獨立性;模塊規(guī)模適中;深度、寬度、扇出和扇入適當:使模塊的作用域在該模塊的控制域中;應減少模塊的接口和界面的復雜性;設計成單入口、單出口的模塊;設計功能可預測的模塊。

47.B解析:因為a<b成立,所以條件表達式a<b?b:a的值等于b的值等于2,因此變量k的值等于2。又因為k=2>c=3不成立,所以條件表達式k>c?c:k的值等于k的值等于2。把條件表達式k>c?c:k的值賦給變量k,因而變量k的值等于2。因此,選項B)為正確答案。

48.B解析:函數(shù)值的類型應當是在定義函數(shù)時指定的。在定義函數(shù)時對函數(shù)值說明的類型一般和return語句中的表達式類型一致,即函數(shù)類型決定返回值的類型。此題中定義函數(shù)類型為int型,故函數(shù)返回值也為整型。

49.D解析:線性鏈表是線性表的鏈式存儲結構,帶鏈的棧與帶鏈的隊列分別是棧與隊列的鏈式存儲結構。線性表屬于線性結構,棧與隊列是特殊的線性表,因此也屬于線性結構。二叉鏈表是二叉樹的鏈式存儲結構,二叉樹屬于非線性結構。

50.A解析:在定義指針變量p和q時,分別把變量n2和n1的地址賦給了指針變量p和q,所以*p和*q中內容就分別是變量n2和n1的值,所以語句*p=*q與語句n2=n1等價。因此選項A正確。

51.C

\n本題考查按位異或運算,異或就是相同為0,不同為1(化為二進制00001101),017的二進制為000001111,兩者異或結果為00000010。

\n

52.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結構是指數(shù)據(jù)之間的相互關系和數(shù)據(jù)運算。故正確答案為選項C)。

53.B解析:通過觀察可知圖形共4行,主函數(shù)中通過一個for循環(huán)4次,輸出4行。第1行輸出3個空格和1個“*”,第2行輸出2個空格和3個“*”,第3行輸出3個空格和5個“*”,第4行輸出7個“*”,主函數(shù)中通過第2個循環(huán)控制每行的輸出空格數(shù),第3個for循環(huán)控制輸出的“*”的個數(shù),總結規(guī)律:每行輸出的“*”的個數(shù),總比前一行的多2個,且第1行的個數(shù)為1,可以斷定每行輸出的“*”的個數(shù)組成了一個公差為2的等差數(shù)列,所以每行輸出“*”的個數(shù)即該等差數(shù)列的通項,故該空格處應該填寫2*i-1,所以,4個選項中選項B符合題意。

54.AA)【解析】數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,它由一些特定的圖符構成,包括4個方面,即加工、數(shù)據(jù)流、存儲文件、源和潭。

55.D

56.C解析:關于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。

57.B解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。

58.C解析:選項A)char*a;*a=“china”應改為a=china;,選項B)應該是charstr[6];D)項表述方法有錯誤。

59.C解析:選項A中for和case為C語言中的保留字,不能作為用戶標志符,故A錯誤。選項B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項D中void為C語言中的保留字,不能作為用戶標志符,故D錯誤。所以,4個選項中選項C符合題意。

60.A

61.C本題考查三目運算符a<b?a:c<d?c:d也可寫成a<b?a:(c<d?c:d),所以根據(jù)優(yōu)先級,先算括號內的,c小于d為真取C的值,再看a小于b為假,所以取C的值。

62.D解析:在程序設計過程中,一個很重要的環(huán)節(jié)是首先確定實現(xiàn)各種功能的算法,并且用某種工具將它精確地表達出來。流程圖是其中的工具之一。因此,程序設計的過程應是先畫出流程圖,然后根據(jù)流程圖編制出程序。因此,選項A中的說法是錯誤的。程序中的注釋是為了提高程序的可讀性,使程序易于理解、易于維護,注釋必須在編制程序的同時加入。因此,選項B和C中的說法也都是錯誤的。

63.A

64.B

65.D本題考查邏輯運算符的使用。當“&&”的兩個運算對象都是邏輯1時,表達式返回值才是1;“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。

66.C

67.B

68.C算術運算符+的優(yōu)先級高于-=.且-=的結合方向為自右向左,所以表達式x-=x+x可以表示成;=x-(x+x)=10-(10+10)=-10,選擇C。

69.D第一個for循環(huán)作用是對數(shù)組8賦初值,從0~9,第二個缸循環(huán)是計算數(shù)組前4項的a[i]+i的和。0+0,1+1,2+2,3+3,經(jīng)計算的結果為l2,因此答案為D選項。

70.c因為一名工作人員可以操作多臺計算機,而一臺計算機又可以被多名工作人員使用,所以兩個實體之間是多對多的關系,選擇c)。

71.A標識符不能與c編譯系統(tǒng)已經(jīng)預定義的、具有特殊用途的保留標識符(即關鍵字)同名,否則程序在編譯時會出現(xiàn)錯誤。題目源程序中使用了已經(jīng)預定義的關鍵字case,所以將出現(xiàn)錯誤。

72.B軟件生命周期被劃分為許多階段。其中,詳細設計階段的根本任務是確定每個模塊的內部特征,即確定每個模塊內部的執(zhí)行過程,這個過程一般用時并不需要很多;軟件編碼的根本任務是根據(jù)設計的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論