2022-2023年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第1頁
2022-2023年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第2頁
2022-2023年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第3頁
2022-2023年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第4頁
2022-2023年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.已知字符A的ASCII值是65,字符變量c1的值是‘A’,c2的值是‘D’,則執(zhí)行語句“printf(“%d,%d”,c1,c2-2);”的輸出結(jié)果是()。

A.65,68B.A,68C.A,BD.65,66

2.有以下程序:#include<string.h>main(intargc,char*argv[]){inti=1,n=0;while(i<argC){n=n+strlen(argv[i]);i++}printf("%d\n",n);}該程序生成的可執(zhí)行文件名為:proc.exe,若在運行時輸入命令行:proc1234567則該程序的輸出結(jié)果是()。

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

3.下述哪一條是順序存儲結(jié)構(gòu)的優(yōu)點()。

A.插入運算方便B.可方便地用于各種邏輯結(jié)構(gòu)的存儲表示C.存儲密度大D.刪除運算方便

4.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。

A.CB.BasicC.DDLD.DML

5.對于哈希表,如果將裝填因子α定義為表中裝入的記錄數(shù)與表的長度之比,那么向表中加入新紀(jì)錄時,()

A.α的值隨時沖突次數(shù)的增加而遞減

B.α越大發(fā)生沖突的可能性越大

C.α等于1時不會再發(fā)生沖突

D.α低于0.5時不會發(fā)生沖突

6.執(zhí)行下列程序中的輸出語句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13

7.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

8.以下符合C語言語法的賦值表達式是()。

A.d=9+e+f=d+9B.d=9+e,f=d+9C.d=9十e,e++,d十9D.d=9十e++=d十7

9.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致,

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

C.數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫

D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持

10.有以下程序:#include<stdio.h>main(){inta=10,b=11;if(++a==b++) printf(“T”);else printf(“F”);printf(“a=%d,b=%d\n”,a,b);}程序運行后的輸出結(jié)果是()。

A.Fa=11,b=11B.Fa=10,b=12C.Ta=10,b=11D.Ta=11,b=12

11.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運行時在第1列開始輸入ab@并按<Enter>鍵,則運行結(jié)果是()。

A.7,1B.3,2C.0,5D.5,0

12.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

13.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

14.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

15.下列敘述中正確的是()。A.算法就是程序B.設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計C.設(shè)計算法時只需要考慮結(jié)果的可靠性D.以上三種說法都不對

16.有以下程序:#include<stdio.h>intfun(intX,inty){if(X!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d/n",fun(2*a,fun(b,c)));}程序運行后的輸入結(jié)果是()。A.3B.6C.8D.12

17.設(shè)棧S的初始狀態(tài)為空,6個元素入棧的順序為e1,e2,e3,e4,e5和e6。若出棧的順序是e2,e4,e3,e6,e5,el,則棧s的容量至少應(yīng)該是()。

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

18.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用快速排序(以中間元素518為基準(zhǔn))的第一趟掃描結(jié)果是()

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

D.(132,541,746,518,181,946,314,205,827,984)

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

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

20.對于下述說明,不能使變量p->b的值增1的表達式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

二、2.填空題(20題)21.下列程序的運行結(jié)果是______。

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

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

inti;

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

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

printf"\n");

}

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

23.結(jié)構(gòu)化設(shè)計主要分為系統(tǒng)設(shè)計和模塊設(shè)計,【】的任務(wù)是決定系統(tǒng)的模塊結(jié)構(gòu)。

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

intf(inta[],intn)

{

if(n>=1)

returnf(a,n-1)+a[n-1];

else

return0;

}

main()

{

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

s=f(aa,5);

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

}

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

}

26.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

27.對于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價漲價5%。請對下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"

28.對數(shù)組中的元素值進行排序。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[]={2,4,15,3,17,5,8,23,9,7,11,13,}i,j,k;

for(k=0;k<12;k++)

for(i=k;i<12;i++)

if(a[i]>【】)

{j=a[i];

a[i]=【】;

【】=j(luò);}

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

printf("%4d",a[i]);

printf("\n");

}

29.線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。隊列是一種特殊的線性表,循環(huán)隊列是隊列的【】存儲結(jié)構(gòu)。

30.通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為【】。

31.多媒體計算機所用的CD-ROM是【】。

32.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

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

#definePOWER(x)((x)*(x))

main()

{inti=1;

printf("%d,%d",POWER(i++),i);

}

34.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。

35.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當(dāng)s<t時返回負(fù)值。請?zhí)羁铡?/p>

my_cmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}return【】;

}

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

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

printf("\n");

}

37.關(guān)系模型的數(shù)據(jù)操作即是建立在關(guān)系上的數(shù)據(jù)操作,一般有【】、增加、刪除和修改四種操作。

38.以下程序的運行結(jié)果是【】。

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

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

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}

40.已知head指向一個帶頭結(jié)點的單向鏈表,鏈表中每個結(jié)點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結(jié)點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在下劃線內(nèi)填入正確內(nèi)容。

{intdata;structlink*next;}

main()

{structlink*head;

sum(head);

┆}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

三、1.選擇題(20題)41.下列敘述中正確的是()。

A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的聯(lián)系

B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間相對獨立,相互依賴性小

D.上述三種說法都不對

42.以下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");}

43.在位運算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

44.有以下程序#include<stdio.h>intf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}main(){intz;z=f(3);printf("%d\n",z);}程序的運行結(jié)果是

A.0B.9C.6D.8

45.下列存儲器中,存取速度最快的是()。

A.軟盤B.硬盤C.光盤D.內(nèi)存

46.以下程序運行后,輸出結(jié)果為______。main(){inta[2][3]={1,3,5,7,9,11},*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

A.1B.7C.9D.11

47.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

48.C語言程序的基本單位是()

A.函數(shù)B.過程C.字符D.語句

49.設(shè)intb=2;,則表達式(b<<2)/(b>>1)的值是______。

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

50.以下程序段的輸出結(jié)果是()。inta=1234;printf("%2d\n",a);

A.12B.34C.1234D.提示出錯,無結(jié)果

51.有以下程序:mam(){inti=10,j=1;printf("%d,%d\n",i--,++j);}執(zhí)行后輸出的結(jié)果是()。

A.9,2B.10,2C.9,1D.10,1

52.有以下程序:point(char*p){P+=3;)main(){charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);}程序運行后的輸出結(jié)果是()。

A.aB.bC.cD.d

53.串的長度是______。A.A.串中不同字符的個數(shù)

B.串中不同字母的個數(shù)

C.串中所含字符的個數(shù)且字符個數(shù)大于零

D.串中所含字符的個數(shù)

54.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.sets(&s[0]);

B.scarf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

55.串的長度是()。

A.串中不同字符的個數(shù)B.串中不同字母的個數(shù)C.串中所含字符的個數(shù)且字符個數(shù)大于0D.串中所含字符的個數(shù)

56.設(shè)有以下語句:charstrl[]="string",str2[8],*str3,*str4="string";則_______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(strl,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

57.設(shè)有定義:intA,*pA=&A;,以下scanf語句中能正確為變量A讀入數(shù)據(jù)的是______。

A.scanf("%d",pA);

B.scanf("%d",A);

C.scanf("%d",apA);

D.scanf("%d",*pA);

58.下面選項中不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是______。A.繼承性B.多態(tài)性C.類比性D.封裝性

59.以下程序的輸出結(jié)果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n",*p);free(p);}f(int*s,intp[][3]){*s=p[1][1];}

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

60.當(dāng)執(zhí)行下面的程序時,其輸出結(jié)果為______。unionst{inta;charb;}main(){unionsts;char*p=(char*)&s;s.a=0x3132;s.b=0x33;printf("%c",*p);}

A.1B.2C.3D.不確定

四、選擇題(20題)61.

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

A.2011B.99C.209D.1111

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

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

64.有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf(“%d\n”,m);}程序的運行結(jié)果是()A.1B.0C.2D.3

65.

66.耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是()。

A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨立性

B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性

C.耦合性是指-個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度

D.內(nèi)聚性是指模塊間互相連接的緊密程度

67.以下四個程序中。完全正確的縣()

68.下面描述中錯誤的是()。

A.系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細設(shè)計

B.軟件設(shè)計是將軟件需求轉(zhuǎn)換為軟件表示的過程

C.數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計是軟件設(shè)計的任務(wù)之一

D.PAD圖是軟件詳細設(shè)計的表示工具

69.以下能定義為用戶標(biāo)識符的是()。

A.printfB.charC._8abcD.Void

70.

71.

72.Internet使用的網(wǎng)絡(luò)協(xié)議是()。

A.3CP協(xié)議B.TCP/IP協(xié)議C.UDP協(xié)議D.IP協(xié)議

73.

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

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

75.

76.有以下程序:

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

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

77.

78.用鏈表表示線性表的優(yōu)點是()。A.A.便于隨機存取B.花費的存儲空間較順序存儲少

C.便于捅入和刪除操作

D.數(shù)據(jù)元素的物理順序與邏輯順序相同

79.

80.以下定義語句中正確的是()。

A.

B.

C.

D.

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:從整數(shù)10到55之間,查找能被3整除且有一位上的數(shù)值是5的數(shù),把這些數(shù)放在b所指的數(shù)組中,這些數(shù)的個數(shù)作為函數(shù)值返回。規(guī)定函數(shù)中al放個位數(shù),a2放十位數(shù)。

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

注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

六、程序設(shè)計題(1題)82.三個整數(shù)a、b、c,由鍵盤輸入,輸出其中最大的一個數(shù)。

參考答案

1.D輸出時以%d整型格式輸出,所以輸出字符變量c1的值為65,c2-2的值為68-2,即66。故本題答案為D選項。

2.C

3.C

4.C解析:選項A)、選項B)顯然不合題意。數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作。

5.B

6.C本題考查逗號表達式。程序輸出時輸出一個%d,所以輸出第一個a的值與后續(xù)無關(guān)。本題考查逗號表達式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。

7.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

8.B

9.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管其在計算機中的存儲方式。數(shù)據(jù)的存儲結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計算機存儲器里的實現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項A的說法是錯誤的。

數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。

數(shù)據(jù)庫設(shè)計是在數(shù)據(jù)庫管理系統(tǒng)的支持下,按照應(yīng)用的要求,設(shè)計一個結(jié)構(gòu)合理、使用方便、效率較高的數(shù)據(jù)庫及其應(yīng)用系統(tǒng)。數(shù)據(jù)庫設(shè)計包含兩方面的內(nèi)容:一是結(jié)構(gòu)設(shè)計,也就是設(shè)計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu);二是行為設(shè)計,即設(shè)計基于數(shù)據(jù)庫的各類應(yīng)用程序、事務(wù)等。因此,選項C的說法是錯誤的。

數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還必須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項D的說法是正確的。因此,本題的正確答案是選項A。

10.D自增運算符是將運算對象的值增1,它有前綴形式“++a”和后綴形式“b++”。其中“++a”表示首先將a的值自增1,然后表達式“++a”的值就是自增后a的值;而“b++”表示首先將b的值作為表達式的值,然后再將b的值自增1。本題中,a的初值為10,b的初值為11,則表達式“++a==b++”,等價于“11==11”,條件為真,所以輸出“T”。if語句執(zhí)行完后,a的值為11,b的值為12,輸出“a=11,b=12”。故本題答案為D選項。

11.Dfun函數(shù)接收兩個整型指針變量a、b。for循環(huán)判斷a、b指向的值大小和getchar讀入的字符是否為“@”來決定循環(huán)是否執(zhí)行。循環(huán)體內(nèi)對a、b指向的值各自自增1、自減1。main函數(shù)定義并初始化實參i的值為0,實參j的值為5,調(diào)用函數(shù)fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,*b的值為5,*a<*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*a<*b為真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a<*b為真,執(zhí)行循環(huán)體;*a的值為3,*b的值為2,*a<*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為4,*b的值為1,*a<*b為假,getchar讀入字符“b”,執(zhí)行循環(huán)體;*a的值為5,*b的值為0,*a<*b為假,getchar讀入字符“@”,fun函數(shù)執(zhí)行完畢,main函數(shù)輸出5,0。故本題答案為D選項。

12.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。

13.D本題考查continue的用法,continue語句的作用是結(jié)束本次循環(huán),直接進行下次循環(huán)。所以在程序中,只有當(dāng)a=10時,才退出循環(huán),故選擇D選項。

14.C本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過調(diào)用fun函數(shù),按上面的規(guī)則對數(shù)組a重新賦值,最后輸出數(shù)組a。

15.D算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計算方法,所以A錯誤。設(shè)計算法時不僅要考慮對數(shù)據(jù)對象的運算和操作,還要考慮算法的控制結(jié)構(gòu)。故答案為D選項。

16.B此題考查的是函數(shù)fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。

17.C

18.B

19.D

20.D解析:p->b應(yīng)作為一個整體看待,++p->b和p->b++都使變量b增1,++(p++)->b先使b增1,再使p后移,D中表達式的含義是使p+1所指結(jié)構(gòu)體變量中的成員b的值增1。

21.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。

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

23.系統(tǒng)設(shè)計系統(tǒng)設(shè)計解析:結(jié)構(gòu)化設(shè)計主要分為系統(tǒng)設(shè)計和模塊設(shè)計。系統(tǒng)設(shè)計決定系統(tǒng)的模塊結(jié)構(gòu),模塊設(shè)計具體考慮每個模塊內(nèi)部的算法、模塊輸入、輸出及模塊功能。

24.1515解析:在函數(shù)f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1];否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3],……直到f(aa,0)返回0。故f(aa,5)實際返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本題最終輸出15。

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

26.概念(或概念級)概念(或概念級)

27.SET單價=單價*1.05SET單價=單價*1.05解析:更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個或多個屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達式賦值給對應(yīng)的屬性名(SET單價=單價*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進行限制,即對符合條件的元組進行更新。

28.a[k]a[k]a[k]

29.順序順序解析:線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。當(dāng)隊列用鏈?zhǔn)酱鎯Y(jié)構(gòu)實現(xiàn)時,就稱為鏈隊列;當(dāng)隊列用順序存儲結(jié)構(gòu)實現(xiàn)時,就稱為循環(huán)表。因此,本題劃線處應(yīng)填入“順序”。

30.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用以及維護等活動。

31.只讀光盤只讀光盤

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

33.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

34.物理獨立性物理獨立性解析:數(shù)據(jù)的獨立性是指數(shù)據(jù)和應(yīng)用程序相互獨立,分為物理獨立性和邏輯獨立性。其中物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式)改變時,不需要修改應(yīng)用程序。而邏輯獨立性是指當(dāng)邏輯結(jié)構(gòu)改變時,不需要修改應(yīng)用程序。

35.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當(dāng)前字符的差返回。所以在空框處應(yīng)填入*s-*t,保證在e>t時返回正值,當(dāng)s<t時返回負(fù)值。

36.010111212010111212解析:本題考查的是靜態(tài)局部變量的運用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長到程序運行結(jié)束。本題的主函數(shù)中使用一個for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因為c是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。

37.查詢查詢解析:關(guān)系模型的數(shù)據(jù)操作即是建立在關(guān)系上的數(shù)據(jù)操作,一般有查詢、增加、刪除和修改四種操作。數(shù)據(jù)查詢是指用戶可以查詢關(guān)系數(shù)據(jù)庫中的數(shù)據(jù),它包括一個關(guān)系內(nèi)的查詢以及多個關(guān)系間的查詢。數(shù)據(jù)刪除的基本單位是一個關(guān)系內(nèi)的元組,它的功能是將指定關(guān)系內(nèi)的指定元組刪除。數(shù)據(jù)增加僅對一個關(guān)系而言,在指定關(guān)系中插入一個或多個元組。數(shù)據(jù)修改是在一個關(guān)系中修改指定的元組和屬性。

38.2002Shangxian2002Shangxian解析:本題中首先定義一個結(jié)構(gòu)體類型STU,該結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義了一個結(jié)構(gòu)體指針p,并讓它指向變量do將變量a的值賦給變量d,接著通過兩個if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個賦給結(jié)構(gòu)體變量do比較通過函數(shù)strcmp實現(xiàn)。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。程序中第一個if語句strcmp(,)>0為真,故將b的值賦給d,第二個if語句strcmp(,)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian。

39.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉(zhuǎn)換類型轉(zhuǎn)換運算符,將一個表達式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。

本題可按部就班地逐步運算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

40.structlink*headstructlink*head解析:因為本題中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點逐個節(jié)點的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有個指向結(jié)構(gòu)體變量的指針依次指向各個節(jié)點,即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。注意:結(jié)構(gòu)體變量和共用體變量之間的區(qū)別為聯(lián)系。

41.C解析:在面向?qū)ο蟮某绦蛟O(shè)計中,對象是面向?qū)ο蟮能浖幕灸K,它是由數(shù)據(jù)及可以對這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對象是以數(shù)據(jù)為中心的,操作圍繞對其數(shù)據(jù)所需做的處理來設(shè)置,沒有無關(guān)的操作。從模塊的獨立性考慮,對象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強。由于完成對象功能所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對象內(nèi)部,它與外界的聯(lián)系自然就比較少,所以,對象之間的耦合通常比較松。所以,選項A與B錯誤,選項C正確。

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

43.D解析:本題主要考查左移、右移對數(shù)據(jù)值的影響,左移n位相當(dāng)于乘以2的n次冪,右移n位相當(dāng)于除以2的n次冪。

44.C解析:函數(shù)intf(intx)是一個遞歸函數(shù)調(diào)用,當(dāng)x的值等于0或1時,函數(shù)值等于3,其他情況下y=x2-f(x-2),所以在主函數(shù)中執(zhí)行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。

45.D\nD【解析】存儲器中.存取速度最快的是內(nèi)存。

\n

46.C解析:s是一個含有兩個元素的指針數(shù)組,pp是一個指向指針變量的指針,s[0]是指向二維數(shù)組a行下標(biāo)為0的元素的首地址,即時a[0][0]的地址,s[1]為a[1][0]的地址。pp的值為s[0]的地址。**pp=s[1][1]后,a[0][0]的值將被賦值為a[1][1]的值,執(zhí)行p=*pp;后,p中將是s[0]的值,最后的輸出語句將輸出地址s[0]所指向的數(shù)據(jù),即a[0][0]。

47.C答案C

解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。

48.A

49.D

50.C解析:在C語言中,對于不同類型的數(shù)據(jù)用不同的格式字符,其中,“%d”是按整型數(shù)據(jù)的實際長度輸出,“%md”中,m為指定的輸出字段的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補以空格,若大于m,則按實際位數(shù)輸出。注意:格式輸入函數(shù)scanf的使用。

51.B解析:++、--運算符在變量之前是先使變量的值加1或減1,然后再使用變量的值:如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯然,程序中表達式“i--”的值為10,“++j”的值為2,所以最后輸出的值為10和2,所以,B選項為所選。

52.A解析:本題的考點是C語言的函數(shù)參數(shù)的傳遞方式(傳值)。函數(shù)poret的形參是一個char型指針p,當(dāng)調(diào)用point(p)時,將指針p的值傳遞給形參,函數(shù)point中的p+=3,并不影響主程序main中的p值,因此函數(shù)調(diào)用結(jié)束后,p仍指向b的首地址,輸出*p的值應(yīng)是字符a。

53.D解析:串的長度指的是串中字符的個數(shù),且其字符個數(shù)可以為零。選項D正確。

54.D解析:在格式輸入中,要求給出的是變量的地址,而D)答案中給出的s[1]是一個值的表達式。

55.D解析:串的長度是指串中字符的個數(shù),且其字符個數(shù)可以為0。

56.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。

57.A解析:選項B中不是變量A的地址,錯誤;選項C是指針pA的地址,錯誤;選項D中*pA表示變量A的值,錯誤。

58.C解析:通常認(rèn)為,面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點。就是這幾大特點,為軟件開發(fā)提供了一種新的方法學(xué)。

封裝性:所謂封裝就是將相關(guān)的信息、操作與處理融合在一個內(nèi)含的部件中(對象中)。簡單地說,封裝就是隱藏信息。這是面向?qū)ο蠓椒ǖ闹行?,是面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ)。

繼承性:子類具有派生它的類的全部屬性(數(shù)據(jù))和方法,而根據(jù)某一類建立的對象也都具有該類的全部,這就是繼承性。繼承性自動在類與子類間共享功能與數(shù)

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論