2021-2022年江蘇省南京市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第1頁
2021-2022年江蘇省南京市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第2頁
2021-2022年江蘇省南京市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第3頁
2021-2022年江蘇省南京市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第4頁
2021-2022年江蘇省南京市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年江蘇省南京市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下關(guān)于鏈?zhǔn)酱鎯Y(jié)構(gòu)說法錯誤的是()

A.比順序存儲結(jié)構(gòu)的存儲密度小

B.每個節(jié)點是由數(shù)據(jù)域和指針域組成

C.查找結(jié)點時鏈?zhǔn)酱鎯Ρ软樞虼鎯?/p>

D.邏輯上不相鄰的節(jié)點物理上可能相鄰

2.

3.在銀行業(yè)務(wù)中,實體客戶和實體銀行之間的聯(lián)系是()。

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

4.在關(guān)系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是()。

A.網(wǎng)狀結(jié)構(gòu)B.樹狀結(jié)構(gòu)C.屬性D.二維表

5.下列選項中,不能用作標(biāo)識符的是A._1234_B._1_2C.int_2_D.2_int_

6.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);

A.aB.bC.cD.d

7.設(shè)文件指針fp已定義,執(zhí)行語句“fP=foPen(“file”,“w”);”后,下列針對文本文件file操作敘述的選項中正確的是()。

A.只能寫,不能讀B.寫操作結(jié)束后可以從頭開始讀C.可以在原有內(nèi)容后追加寫D.可以隨意讀和寫

8.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

9.

10.在說明語句:int*f();中,標(biāo)識符f代表的是

A.一個用于指向整型數(shù)據(jù)的指針變量

B.一個用于指向一維數(shù)組的行指針

C.一個用于指向函數(shù)的指針變量

D.一個返回值為指針型的函數(shù)名

11.若有以下定義:chara;intb;floatc;doubled;則表達(dá)式a*b+b-c值的類型為()。A.floatB.intC.charD.double

12.設(shè)x和y均為int型變量,且x=10,y=3,則以下語句的輸出結(jié)果是()printf("%d,%d\n",x--,--y);

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

13.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再復(fù)制到字符串str3之后

C.將字符串str2復(fù)制到字符串str1之后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串strl復(fù)制到字符串str3中

14.當(dāng)很頻繁的對序列中部進(jìn)行插入和刪除操作時,應(yīng)該選擇使用的容器是()

A.vectorB.listC.dequeD.stack

15.若f(n)=3n2+2n+1,則f(n)=()。

A.O(n2)B.O(n)C.O(2n)D.O(3n2)

16.一個算法應(yīng)當(dāng)具有5個特性,以下敘述中正確的是()。

A.有窮性、確定性、復(fù)雜性、有零個或多個輸入、有一個或多個輸出

B.有窮性、確定性、可行性、有零個或多個輸入、有一個或多個輸出

C.有窮性、確定性、可行性、必須要有一個以上的輸入、有一個或多個輸出

D.有窮性、確定性、復(fù)雜性、有零個或多個輸入、必須要有多個輸出

17.關(guān)鍵路徑是事件結(jié)點網(wǎng)絡(luò)中()。

A.從源點到匯點的最長路徑B.從源點到匯點的最短路徑C.最長回路D.最短回路

18.下列不屬于C語言關(guān)鍵字的是()。A.A.default

B.register

C.enum

D.external

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

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

20.以下敘述正確的是()。

A.C語言程序是由過程和函數(shù)組成的

B.C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))

C.C語言函數(shù)不可以單獨編譯

D.C語言中除了main函數(shù),其他函數(shù)不可作為單獨文件形式存在

二、2.填空題(20題)21.下列函數(shù)從字符數(shù)組s[]中刪除和c一樣的字符,請在下面橫線處填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!='c')s[j++]=s[i];s[j]="\0";}

22.若有如下結(jié)構(gòu)體說明:

structSTRU

{inta,b;charc:doubled;

stmctSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型?!尽縯[20]

23.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。

24.語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個血型數(shù)據(jù)。

25.在算法正確的前提下,評價一個算法的兩個標(biāo)準(zhǔn)是【】。

26.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補(bǔ)充家整。

seanf("%d",【】);

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

27.軟件是程序、數(shù)據(jù)和【】的集合。

28.函數(shù)fun的功能是計算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。

29.若x,y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。

x=(y=4)+(z=2)

30.本程序用冒泡法對數(shù)組a[]的元素從大到小排序,請在程序空白處填空。voidbubble(inta[],intn){inti,j,max,temp;max=n-1;do{j=0;for(i=0;i<max;i++)if(a[i]<a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;j=i;}max=j;}while(());}

31.下述函數(shù)通過遞歸方法將字符串倒置,使用時需要指定字符數(shù)組的首地址、起始下標(biāo)和終止下標(biāo)。請?zhí)羁眨?/p>

#include<stdio.h>

voidfun(char*s,intlow,inthigh)

{if(【】)

return;

else

{chart;

fun(【】);

t=s[low];

s[low]=s[high];

s[high]=t;}}

32.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。

33.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對象稱為【】。

34.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

35.設(shè)有以下定義和語句,則*(*(p+2)+1)的值【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

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

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

#defineN5

main()

{inta[N]={1,2,3,4,5},i,temp;

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

{temp=a[i];

a[i]=a[N-i-1];

a[N-i-1)=temp;

}

printf("\n");

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

}

38.子程序通常分為兩類:【】和函數(shù),前者是命令的抽象,后者是為了求值。

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

main()

{char*p=“abodefgh”,*r;

long*q;

q=(long*)p;

q++;

r=(char*)q;

printf(“%s\n”,r);

}

40.數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

三、1.選擇題(20題)41.若有定義:int*p[3];,則以下敘述中正確的是()。

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

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

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

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

42.若m,y,z均為int型變量,則執(zhí)行下面語句后m值是______。m=1;x=2;y=3;z=4;m=(m<x)?m:x;m=(n<y)?m:y;m=(m<z)?m;z;

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

43.有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%c\n,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結(jié)果是()。

A.1267B.1256C.1278D.1245

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

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

45.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是()。#include<stdio.h>main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}

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

46.在計算機(jī)系統(tǒng)中,可執(zhí)行程序是______。

A.源代碼B.匯編語言代碼C.機(jī)器語言代碼D.ASCⅡ碼

47.有以下程序:#include<stdio.h>#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=1;i<argc;i+=2)len+=strlen(argv[i]);prinff("%d\n",len);}此程序經(jīng)編譯鏈接后生成的可執(zhí)行文件是ex.exe,若運行時輸入以下帶參數(shù)的命令行:exabedefgh3k44則執(zhí)行后的輸出結(jié)果時()。

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

48.有以下程序:#include<stdio.h>voidf(int*x,int*y)intt;t=*x;*x=*y;*y=t;main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運行后的輸出結(jié)果是()。

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

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

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

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

49.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達(dá)式是

A.isupper?

B.′A′<=c<=′Z′

C.′A′<=c&&c<=′Z′

D.c<=(′z′-32)&&(′a′-32)<=c

50.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括()。

A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表

51.結(jié)構(gòu)化程序設(shè)計的三種結(jié)構(gòu)是()。

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

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

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

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

52.若有說明:long*p,a;,則不能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()

A.*p=&a;scanf("%1d",p);

B.p=(long*)malloc(8);scanf("%1d",p);

C.scanf("%1d",p=&a);

D.scanf("%1d",&a);

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

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

54.有以下程序

#include<stdio.h>

main()

{FILE*fp;inti=20,j=30,k,n;

fp=fopen("d1.dat","w");

fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);

fclose(fp);

fp=fopen("d1.dat","r");

fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);

fclose(fp);}

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

A.2030B.2050C.3050D.3020

55.下面四個選項中,均是不合法的用戶標(biāo)識符的選項是

A.AP_0doB.float1a0_AC.b-agotointD.123tempint

56.

若有下列定義(設(shè)int類型變量占2個字節(jié)):

inti=8,j=9;

則下列語句:

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

輸出的結(jié)果是()。

A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

57.若有如下程序:main(){inta=0,t=0;while(!a!=0)t+=a++;printf("%d,%d\n",t,A);}則程序運行后的輸出結(jié)果是()

A.0,1B.1,0C.0,0D.1,1

58.以下關(guān)于C語言數(shù)據(jù)類型的敘述中正確的是()。

A.C基本數(shù)據(jù)類型包括:分為整型、實型、浮點型、字符型四種

B.實型常量的表達(dá)方式包括十進(jìn)制形式、十六進(jìn)制形式、二進(jìn)制形式、八進(jìn)制形式、指數(shù)形式

C.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型

D.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型

59.結(jié)構(gòu)化程序設(shè)計方法的3種基本控制結(jié)構(gòu)中不包括

A.循環(huán)結(jié)構(gòu)B.遞歸結(jié)構(gòu)C.順序結(jié)構(gòu)D.選擇結(jié)構(gòu)

60.若有下列定義(設(shè)int類型變量占2個字節(jié)):inti=8;則下列語句:printf("i=%08d",i);輸出的結(jié)果是()。

A.i=8,B.i=00000008,C.i=08,D.8

四、選擇題(20題)61.

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

63.

64.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。

65.

66.

67.

68.

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

#defineN20

voidfun(inta[],intn,intm)

{inti,j;

for(i=m;i>n;i--)a[i+1]=a[i];

}

main()

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,2,9);

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

}

A.10234B.12344C.12334D.12234

69.有以下程序:

voidmain()

{inta=1,b=2,m=0,n=0,k;

k=((n=b>a)+b)‖(m=a<b);

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

}

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

A.0,0B.0,1C.1,0D.1,1

70.下列敘述中錯誤的是()。

A.一個C語言程序只能實現(xiàn)一種算法

B.c程序可以由多個程序文件組成

C.C程序可以由一個或多個函數(shù)組成

D.一個C函數(shù)可以單獨作為一個C稃序文件存存

71.

72.有以下程序段:

以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。

A.for循環(huán)語句固定執(zhí)行8次

B.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時結(jié)束循環(huán)操作

C.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時不做任何操作

D.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時結(jié)束程序運行

73.

74.(49)按條件f對關(guān)系R進(jìn)行選擇,其關(guān)系代數(shù)表達(dá)式為()

A.R|X|R

B.R|X|Rf

C.бf(R)

D.∏f(R)

75.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運行后的輸出結(jié)果是______。

A.8B.10C.7D.11

76.

77.

78.

79.以下選項中正確的定義語句是()。

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的:個邊長(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構(gòu)成三角形則返回l;若不能,則返回0。

例如,輸入3個邊長為3,4,5,實際輸入時,數(shù)與數(shù)之間以Enter鍵分隔而不是逗號。

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

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

試題程序:

#include<stdio.h>

#include<math.h>

intproc(inta,intb,intc)

{

if(a+b>c&&b-c>a&&a+c>b)

{

if(a==b&&b==c)

//****found****

return1;

elseif(a==b||b==C||a==c)

return2;

//****found****

elsereturn3;

}

elsereturn0;

}

voidmain

{

inta,b,c,shape;

printf("\nInputa,b,c:");

scanf("%d%d%d",&a,&b,&c);

printf("\na=%d.b=%d,c=%d\n",a,b,c);

shape=proc(a,b.c):

printf("\n\nTheshape:%d\n",shape);

}

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:計算并輸出

例如,若主函數(shù)從鍵盤給n輸入10后,則輸出為S=104.478749。

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

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

試題程序:

參考答案

1.C

2.B

3.D一個客戶可以在多家銀行辦理業(yè)務(wù),一家銀行也有多個客戶辦理業(yè)務(wù),因此,實體客戶和實體銀行之間的聯(lián)系是多對多。本題選擇D選項。

4.D單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系,現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關(guān)系來表示。數(shù)據(jù)的邏輯結(jié)構(gòu)——二維表,從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但是關(guān)系模型的這種簡單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實世界的實體以及實體間的各種關(guān)系。

5.D解析:本題考核的知識點是用戶的標(biāo)識符。在C語言中,合法的標(biāo)識符由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或者下劃線,如:acd,d_ad、_adf124,_124等都是合法的標(biāo)識符號.而2asdf、_sd/=都不是合法的標(biāo)識符.在C語言中大寫字母和小寫字母被認(rèn)為是兩個不同的字符,如:ACD和acd是兩個不同的標(biāo)識符號。選項D中用下劃線作為第一個字符,這是不合法的,故選項D不正確,所以,4個選項中選項D符合題意。

6.A解析:C函數(shù)的參數(shù)傳遞方式采用按值傳遞,不能通過調(diào)用函數(shù)改變形參指針本身的值,只能改變指針?biāo)缸兞康闹?。調(diào)用point函數(shù)時,將實參指針p的值(b數(shù)組的首地址)傳給了形參指針P,P+=3運算使形參指針指向字符d,但并不能改變main函數(shù)中p的值,所以本題正確答案應(yīng)該是選項A)。

7.A以“w”方式打開文件時只能寫,不能讀。故本題答案為A選項。

8.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

9.B

10.D解析:帶回指針值的函數(shù),其一般定義形式為:

類型標(biāo)識符*函數(shù)名(參數(shù)表);

例如;int*f(x,y);

其中,f是函數(shù)名,調(diào)用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運算符和()運算符,而()優(yōu)先級高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。

11.D在表達(dá)式a*b+d-c中,double的類型最高,C語言中,由低類型自動向高類型轉(zhuǎn)換,所以最后的結(jié)果一定是double型。

12.D

13.Cstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復(fù)制到s1字符串,要保證sl的容量。

14.B

15.A

16.B算法是指為解決某個特定問題而采取的確定且有限的步驟,一個算法應(yīng)當(dāng)具有5個特征:有窮性、確定性、可行性、有雩個或多個輸入、有一個或多個輸出。本題答案為B選項。

17.A

18.Dregister聲明寄存器變量enum聲明枚舉類型default開關(guān)語句中的“其他”分支

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

20.B解析:C語言中只有函數(shù)沒有過程,故選項A錯誤;C語言可以嵌套調(diào)用,故選項B正確;C語言函數(shù)可以單獨編譯成.dll文件,故選項C錯誤;C語言中除main函數(shù)以外,其他函數(shù)可作為單獨文件形式存在,故選項D也錯誤。

21.s[i]!='\0's[i]!='\\0'解析:本題是要刪除字符數(shù)組中和c一樣的字符,for循環(huán)實現(xiàn)的功能是逐個讀出字符數(shù)組s中的元素,并和字符c做比較,直到遇到字符串結(jié)束標(biāo)志'\\0',結(jié)束循環(huán),所以橫線上應(yīng)該填s[i]!='\\0'。

22.structSTRUstructSTRU解析:結(jié)構(gòu)體類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項表;

};

定義結(jié)構(gòu)體變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,……

其中變量包括:一般變量、指針變量、數(shù)組變量等。

23.252H252H解析:要解答本題,首先要明白在對指針進(jìn)行加,減運算時,數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個存儲單元長度。1個存儲單元長度占存儲空間的多少,應(yīng)該視具體情況而定,如果存儲單元的基類型是血型,則移動1個存儲單元的長度就是位移2個字節(jié);如果存儲單元基類型是float型,則移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。

24.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識符(葉旨針變量名)()。注:“類型標(biāo)識符”為函數(shù)返回值的類型。

25.時間復(fù)雜度和空間復(fù)雜度時間復(fù)雜度和空間復(fù)雜度

26.k[7]*kk[7]*k解析:scanf()函數(shù)有兩個參數(shù),第—個參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空格處位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應(yīng)該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個需要計算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號分隔開)。而第二個空位于printf()函數(shù)的第二個參數(shù)處,所以應(yīng)該填*K。

27.文檔文檔解析:計算機(jī)軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

28.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

29.6

30.max>0max>0解析:本題是典型的冒泡排序題,每一次for循環(huán)將從數(shù)組a中找出剩下數(shù)中的最大的值放在這些數(shù)的最前端,若數(shù)組a中有n個數(shù),則完成數(shù)組排序共需n-1次循環(huán)。令max=n-1,每次循環(huán)后i值增1,i<max條件不足,即n-1次循環(huán)后,此時i=j=max=0,循環(huán)結(jié)束。

31.low>=highscow+1high-1low>=high\r\ns,cow+1,high-1解析:本題考查了用指針引用一維數(shù)組元素的方法。函數(shù)fun()通過遞歸調(diào)用的方式將字符串的首位和末位互換,第二位和倒數(shù)第二位互換……,從而實現(xiàn)了字符串倒置的功能。low和high是字符數(shù)組的下標(biāo)。

32.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。

33.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨菩再|(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。

34.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

35.6060解析:*(*(p+2)+1)相當(dāng)于訪問的是a[2][1]的值。*(p[2]+1)、p[2][1]以及(*(p+2))[1]表達(dá)的含義都是a[2][1]的值。

36.功能模型功能模型

37.54321

38.過程過程

39.efghefgh解析:本題定義了一個字符型指針變量p并通過賦初值讓它指向了一個字符串,定義了另一個字符型指針變量r和一個長整型指針變量q。首先通過語句“q=(long*)p;”把P的地址值強(qiáng)制轉(zhuǎn)換為長整型地址值并賦值給q,然后執(zhí)行“q++;”,地址值增加了4,執(zhí)行語句“r=(char*)q;”,把長整型指針變量q的值再強(qiáng)制轉(zhuǎn)換成字符型地址值并賦給r,r的值應(yīng)為字符串中字符“e”的地址,最后輸出,指向的字符中,是“efgh”。

40.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)是現(xiàn)實世界符號的抽象,而數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供一個抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、物理數(shù)據(jù)模型(physicaldatamodel)。

41.B解析:當(dāng)一個數(shù)組中的元素均為指針類型數(shù)據(jù)時,該數(shù)組就稱為指針數(shù)組。int*p[3]表示此數(shù)組是指針類型的,每個數(shù)組元素(指針變量)都是指向一個整型的指針變量。

42.A

43.D解析:在題目中,程序執(zhí)行到scanf()函數(shù)時,會暫停等待用戶輸入4個字符,按題意輸入123<回車>后,字符1~3被分別輸入到c1~c3中,而c4會得到一個換行符'\\n'。然后執(zhí)行第1個getchar()函數(shù),由于前面的scanf()函數(shù)讀完了緩沖區(qū)中的所有字符,所以此時程序會又暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區(qū)第1個字符'4'被讀入并賦給c5,第2個getchar()函數(shù)會讀入緩沖區(qū)第2個字符'5'。所以最后依次輸出c1、c2、c5、c6的值后,屏幕上的結(jié)果是1245。故應(yīng)該選擇D。

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

45.D解析:本題涉及break語句,重在循環(huán)次數(shù)的判定。本題的循環(huán)由于無出口,只能借助break語句終止。題目要求說明判斷i>j的執(zhí)行次數(shù),只需考查經(jīng)過i+=k運算如何累計i的值。i值分別是i=2,4,6,8,10,直到i取12時,判斷i>j為真,程序輸出s的值并結(jié)束,共判斷6次。

46.C

47.D解析:main函數(shù)可以有兩個參數(shù),第一個參數(shù)為一個整型變量,表示命令行參數(shù)的個數(shù),本題為5;第二個參數(shù)為一個字符型指針數(shù)組,其中第一個數(shù)組元素指向程序名,第二個數(shù)組元素指向命令行中的第一個參數(shù),以后依此類推。由程序中的for循環(huán)可以看出,程序是求第一(argv[1])、第三(argv[3])個參數(shù)的長度之和,即4+2=6。

48.D解析:程序中函數(shù)f的作用是交換指針變量x和y所指向的存儲單元的值。在main函數(shù)中,通過P=a;q=&a[7];指針變量p指向數(shù)組的第一個元素,指針變量q指向數(shù)組的最后一個元素。通過調(diào)用函數(shù)f(p,q)進(jìn)行前后對稱位置上的數(shù)組元素的交換。當(dāng)while循環(huán)4次(即p=q)后,a數(shù)組中各元素的值分別為8,7,6,5,4,3,2,1,所以程序輸出的結(jié)果為:8,7,6,5,4,3,2,1,

49.B解析:在本題中,選項B)實際是先計算關(guān)系表達(dá)式'\'A\'<=c'的值是0還是1,再比較該值與字符\'Z\'之間的大小關(guān)系,顯然不能實現(xiàn)題目所要求的功能,而選項A)、C)、D)都可以。

50.B解析:此題為數(shù)據(jù)庫的基本概念,可以對照辦工軟件的電子表格進(jìn)行如下理解:選擇:我們根據(jù)某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學(xué)生關(guān)系(學(xué)號,姓名,出生年月,性別),學(xué)號、姓名…都是屬性)選取一列或多列(一個二維表中所有元組在某一列或幾列上截取出來)。連接:2個或2個以上的表連接組成一張新的表,通常有條件連接。比如學(xué)生關(guān)系(學(xué)號,姓名,系號),又有一張系表(系號,系名,主任),2張表可以合并為一張這樣的表(學(xué)號,姓名,系號,系名,主任)。

51.D結(jié)構(gòu)化程序設(shè)計以模塊化設(shè)計為中心,采用自頂向下、逐步求精的程序設(shè)計方法。任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來實現(xiàn)。

52.A

53.B解析:軟件開發(fā)階段包括需求分析、總體設(shè)計、詳細(xì)設(shè)計、編碼和測試五個階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。

54.A解析:本題中,最主要的是掌握幾個有關(guān)文件函數(shù)的應(yīng)用。

函數(shù)名:fopen

功能:打開一個文件

調(diào)用方式FILE*fp;

fp=fopen(文件名,使用文件方式);

函數(shù)名:fprintf

功能:傳送格式化輸出到一個文件中

調(diào)用方式:fprintf(文件指針,格式字符串,輸出表列);

函數(shù)名:fclose

功能:關(guān)閉一個文件

調(diào)用方式:fclose(文件指針);

函數(shù)名:fscanf

功能:從磁盤文件執(zhí)行格式化輸入

調(diào)用方式:fscanf(文件指針,格式字符串,輸入列表)。

55.C解析:C語言規(guī)定的標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,第一個字符必須為字母或下劃線,并且不能使用C語言中的關(guān)鍵字作為標(biāo)識符。選項C)中g(shù)oto和int是關(guān)鍵字,b-a中'-'不是組成標(biāo)識符的3種字符之一;選項D)中int是關(guān)鍵字,所以,均是不合法用戶標(biāo)識符的選項是C)。

56.B解析:本題考查printf函數(shù)的格式。在printf函數(shù)中,如果格式說明符中有兩個%說明,則將第1個%后面的字符原樣輸出,并不輸出其對應(yīng)的變量值。

57.A

58.C解析:C基本數(shù)據(jù)類型包括:分為整型、實型、枚舉型、字符型四種,實型就是浮點型,實型數(shù)據(jù)只有十進(jìn)制,沒有2,8,16進(jìn)制表達(dá),在C語言中沒有定義邏輯類型,而是一般用0代表假,用非零代表真。

59.B解析:本題考查了程序的基本結(jié)構(gòu)。程序由一些基本結(jié)構(gòu)組成。任何一個大型的程序都由3種基本結(jié)構(gòu)組成,由這些基本結(jié)構(gòu)順序的構(gòu)成了一個結(jié)構(gòu)化的程序。這3種基本結(jié)構(gòu)為:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

60.B解析:本題考查printf函數(shù)的格式?!?08”格式符中的“0”

溫馨提示

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

評論

0/150

提交評論