2021-2022年甘肅省慶陽市全國計算機等級考試C語言程序設計真題二卷(含答案)_第1頁
2021-2022年甘肅省慶陽市全國計算機等級考試C語言程序設計真題二卷(含答案)_第2頁
2021-2022年甘肅省慶陽市全國計算機等級考試C語言程序設計真題二卷(含答案)_第3頁
2021-2022年甘肅省慶陽市全國計算機等級考試C語言程序設計真題二卷(含答案)_第4頁
2021-2022年甘肅省慶陽市全國計算機等級考試C語言程序設計真題二卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年甘肅省慶陽市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設變量已正確定義,則以下能正確計算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:

2.在一個帶頭結點的單鏈表HL中,若要在第一個元素之前插入一個由指針p指向的結點,應該使用的語句為()

A.HL=p;p->next=HL;

B.p->next=HL;HL=p;

C.p->next=HL->next;HL->next=p;

D.p->next=HL;p=HL;

3.右兩個關系R和S如下:

則由關系R得到關系S的操作是()。A.自然連接B.并C.選擇D.投影

4.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數值為9的表達式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

5.

6.下列運算符中優(yōu)先級最低的算符是()。

A.||B.!=C.<;=D.十

7.下列不屬于過程設計工具中圖形工具的是()。

A.N—SB.PADC.程序流程圖D.PDL

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

A.測試工作必須由程序編制者自己完成

B.測試用例和調試用例必須一致

C.一個程序經調試改正錯誤后,一般不必再進行測試

D.上述三種說法都不對

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

A.在C程序中,逗號運算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個不同的變量

C.若a和b類型相同,在執(zhí)行了賦值表達式a=b后b中的值將放人a中,而b中的值不變

D.當從鍵盤輸入數據時,對整型變量只能輸入整型數值,對實型變量只能輸入實型數值

10.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

11.以下與函數fseek(fp,0L,SEEK_SET)有相同作用的是

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

12.有以下程序:

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

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

13.如果樹的的結點A有4個兄弟,而且B為A的雙親,則B的度為()。

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

14.

15.順序查找不論在順序線性表中還是在鏈式線性表中的時間復雜度為()。

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

16.每次從無序表中挑選出一個最小或最大元素,把它交換到有序表的一端,此種排序方法叫做()排序。

A.插入B.堆C.快速D.歸并排序

17.已知有結構體:structsk{inta;floatb;}data,*p;若有p=&data,則對data的成員a的正確引用是()。

A.struct是結構體類型的關鍵字

B.st是結構體類型名

C.x、y、z都是結構體成員名

D.structstr是結構體類型名

18.指針可以用來表示數組元素,若已知語句:inta[3][7];則下列表示中正確的是()。

A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)

19.

20.下列程序的運行結果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5

二、2.填空題(20題)21.問題處理方案的正確而完整的描述稱為______。

22.若有如下結構體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數組的定義,t數組的每個元素為該結構體類型。

【】t[20]

23.以下程序中,for循環(huán)體執(zhí)行的次數是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{inti;

for(i=1;i<K;i++){......}

24.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。

25.以下程序運行后輸入3,abcde<回車>,則輸出結果是【】。

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(S);

for(i=1;i<=n;i++)move(s,z);

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

}

26.以下函數用來求出數組的最大元素在數組中的下標并存放在k所指的存儲單元中。請?zhí)羁铡?/p>

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

【】

if(s[*k]<s[i])*k=i;

return【】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

27.下列軟件系統結構圖的寬度為[]。

28.閱讀下列程序,則程序的輸出結果為【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,′x′};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c=′y′;}

29.函數fun的返回值是【】。

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')num++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

30.設x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達式______。

31.下列執(zhí)行后輸出的結果是【】。

main()

{intarr[10],i,k=0

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

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

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

}

32.注釋一般分為序言性注釋和______注釋。

33.一個模塊直接調用的其他模塊的模塊個數稱為______。

34.以下程序的輸出結果是______。

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,e+d)*10;

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

}

36.下列語句的輸出結果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

37.程序如下:

main()

{inti=4;

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

}

該程序執(zhí)行后的輸出結果以及i的值分別是______、_______。

38.以下程序用于判斷a、b、c能否構成三角形,若能,輸出YES,否則輸出NO。當給a、b、c輸入三角形三條邊長時,確定a、b、c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。

請?zhí)羁铡?/p>

main()

{floata,b,c;

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

if(【】)printf("YES\n");/*a、b、c能構成三角形*/

elseprintf("NO\n");/*a、b、c不能構成三角形*/

}

39.下面程序的輸出結果是【】。

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

40.用以下語句調用庫函數malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間。

st=(char*)【】;

三、1.選擇題(20題)41.以下程序運行后的輸出結果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

42.軟件設計包括軟件的結構、數據接口和過程設計,其中軟件的過程設計是指()

A.模塊間的關系B.系統結構部件轉換成軟件的過程描述C.軟件層次結構D.軟件開發(fā)過程

43.有以下程序:main(){inta=0,b=0,C=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d\n",a,b,c,D);}程序輸出()。

A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯

44.設有如下三個關系表:

下列操作中正確的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

45.設有下列二叉樹:對此二叉樹前序遍歷的結果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

46.以下程序運行后,輸出結果是

#definePT5.5

#defineS(x)PT*x*x

#include<stdio.h>

main()

{inta=1,b=2;

printf("%4.1f\n",S(a+b));}

A.49.5B.9.5C.22D.45

47.當執(zhí)行下面程序且輸入aboy時,輸出的結果是______。#include<stdio.h>#include<string.h>main(){charss[81]="ABOY",hh[81],*pt;scanf("%s",hh);pt=strcat(ss,hh);puts(pt);printf("%s\n",hh);}

A.ABOYaa

B.ABOYaboyaboy

C.ABOYaboya

D.ABOYaboyaboy

48.以下程序運行后,輸出結果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fur(&p,a);printf("%d\n",*p);}

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

49.若fp是指向某文件的指針,且已讀到文件末尾,則函數feof(fp)的返回值是

A.EOFB.-1C.1D.NULL

50.下列描述中,正確的是______。

A.a[2*3+5]可以是一個數組元素

B.可以對結構體類型和結構類型變量賦值、存取或運算

C.結構一經定義,系統就給它分配了所需的內存單元

D.結構體變量和共用體變量所占的內存長度是各成員占的內存長度之和

51.下列函數的運行結果是

main()

{inti=2,p;

intj,k;

j=i;k=++i;p=f(j,k);

printf("%d",p);}

intf(inta,intb)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);}

A.-1B.1C.2D.編譯出錯,無法運行

52.以下程序的輸出結果是()。mam(){charcf[3][5]={"AAAA","BBB","CC");printf("\"%s\"n",cf[1]);}

A.AAAAB.BBBC.BBBCCD.CC

53.在ASCII代碼表中每一個大寫字母比它相應的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

54.以下程序的輸出結果是()main(){inta=2,k;for(k=0;k<3;k++)printf("%4d",f1(a));}f1(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}

A.777B.71013C.7911D.789

55.以下程序的輸出結果是_________。#include<stdio.h#defineFUDGE(y)2.84+y#definePR(A)printf("%d",(int)(A))#definePRINT1(A)PR(A);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*X);}

A.11B.12C.13D.15

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

A.控制流B.加工C.數據存儲D.源和潭

57.以下數組定義中錯誤的是()。

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

C.intx[][3]={{1,2,3},{4,5,6}};

D.intx[2][3]={1,2,3,4,5,6};

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

A.一種數據的邏輯結構可以有多種存儲結構

B.數據的存儲結構與數據處理的效率無關

C.數據的存儲結構與數據處理的效率密切相關

D.數據的存儲結構在計算機中所占的空間不一定是連續(xù)的

59.數據庫管理系統的基礎是______。

A.操作系統B.數據庫C.數據庫系統D.系統軟件

60.軟件詳細設計的主要仟務是確定每個模塊的

A.算法和使用的數據結構B.外部接口C.功能D.編程

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

若運行時輸入:246<;回車>;,則輸出結果為()。

A.204B.200C.240D.246

62.

63.軟件按功能可以分為應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于系統軟件的是():

A.學生成績管理系統B.ERP系統C.辦公自動化系統D.UNIX系統

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

65.以下選項中,不合法的C語言用戶標識符是()。A.a-一bB.AaBeC.a_bD.一1

66.算法的有窮性是指A.算法程序的運行時間是有限的

B.算法程序所處理的數據量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

67.

68.設有如下函數定義:

若執(zhí)行調用語句“l(fā)l=fm(3);”,則函數tim總共被調用的次數是()。

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

69.

有下列程序段:

intn,t=1,S=0;

scanf("%d",&n);

do{s=s+t;t=t-2;while(t!=n);

為使此程序段不陷入循環(huán),從鍵盤輸入的數據應該是()。

A.任意正奇數B.任意負偶數C.任意正偶數D.任意負奇數

70.有以下程序:

程序的運行結果是()。

A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC

71.

72.以下關于字符串的敘述中正確的是()。

A.空串比空格打頭的字符串小

B.兩個字符串中的字符個數相同時才能進行字符串大小的比較

C.可以用關系運算符對字符串的大小進行比較

D.C語言中有字符串類型的常量和變量

73.下面四個選項中,均是不合法的用戶標識符的選項是()。

A.

B.

C.

D.

74.在數據管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統階段和數據庫系統階段。其中數據獨立性最高的階段是()。

A.數據庫系統B.文件系統C.人工管理D.數據項管理

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

char*p1="abcd",*p2="ABCD",str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A.xyabcABB.abcABzC.ABabczD.xycdBCD

76.有以下函數:

以下關于aaa函數功能敘述正確的是()。

A.將串s復制到串tB.比較兩個串的大小C.求字符串s的長度D.求字符串s所占字節(jié)數

77.以下程序的輸出結果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

78.以下程序的輸出結果為

main()

{

char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};

char**p;

inti;

p=alpha;

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

printf("%s",p[i]);

printf("\n");

}

A.ABCDEFGHIJKLB.ABCD

C.ABCDEFGHIJKLMNOPD.AEIM

79.

有如下程序:

#include<stdio.h>

main

{FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abe");

fclose(fp1);

}

若文本文件f1.txt中原有內容為:good。則運行以上程序后文件f1.txt中的內容為()。

A.goodabcB.abcdC.abcD.abcgood

80.c源程序中不能表示的數制是()。

A.二進制B.八進制C.十進制D.十六進制

五、程序改錯題(1題)81.下列給定程序中,proc()函數的功能是:根據形參n。計算下列公式的值:t=1-1/2+1/3-1/4+…+(-1)(n+1)/n例如,若輸入6,則應輸出0.616667。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數fun(),其功能是根據以下公式計算S,并將計算結果作為函數值返回,通過形參傳入。例如,若n的值為11時,函數的值為1.833333。注意:部分源程序給出如下。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn){}voidmain(){ intn; floats; system(“CLS”); printf(“\nPleaseenterN:”); scanf(“%d”,&n); s=fun(n); printf(“Theresultis:%f\n”,s);}

參考答案

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

2.C

3.C選擇:是在數據表中給予一定的條件進行篩選數據。投影:是把表中的某幾個屬性的數據選擇出來。連接:有自然連接、外連接,內連接等,連接主要用于多表之間的數據查詢。并:與數學中的并是一樣的。兩張表進行并操作,要求它們的屬性個數相同并且需要相容。

4.B解析:在C語言的數組元素的引用方法,我們在前面已經講過了,比如數組元素a[0],可以用表達式*(p+0),即*p來引用,對于數組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數組元素a[2],則可以用表達式。(p+2)來引用…,對于數組元素a[9],可以用表達式,(p+9)來引用。因此,當指針變量p指向a數組的起始地址時,若0≤i<10,則數組元素a[i]可以用*(p+i)來表示。

5.A

6.AC語言中規(guī)定運算符的優(yōu)先順序:一元算術運算符一>二元算術運算符一>關系運算符一>邏輯運算符一>賦值運算符,A項中為邏輯運算符,B項和c項都為關系運算符,D項為一元運算符。因此最低的是A項。

7.D\n常用的過程設計工具有圖形工具(程序流程圖、N-S圖、PAD圖、HIPO)、表格工具(判定表)、語言工具(PDL)。

\n

8.D解析:測試不是為了證明程序是正確的,而是在設想程序有錯誤的前提下進行的,其目的是設法暴露程序中的錯誤和缺陷,一般應當避免由開發(fā)者測試自己的程序,因此,選項A錯誤;測試是為了發(fā)現程序錯誤,不能證明程序的正確性,調試主要是推斷錯誤的原因,從而進一步改正錯誤,調試用例與測試用例可以一致,也可以不一致,選項B錯誤;測試發(fā)現錯誤后,可進行調試并改正錯誤:經過調試后的程序還需進行回歸測試,以檢查調試的效果,同時也可防止在調試過程中引進新的錯誤,選項C錯誤。

9.D

10.D解析:文件狀態(tài)檢測函數feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數返回非。值;否則返回0,表示文件尚未結束。

11.D解析:本題考查的是文件操作函數.題目中fseek(fp,0L,SEEK_SET)的作用將文件指針定位到文件開始。feof(fp)的作用是判斷文件指針是否已到文件結尾,因此選項A不對。ftell(fp)的作用是獲取當前文件指針的位置,因此選項B不對。fgetc(fp)的作用是從文件中讀取一個字節(jié),因此選項C不對。rewind(中)的作用是將文件指針重定位到文件開頭,所以應該選擇D。

12.B第一次執(zhí)行外循環(huán)i的值為1,滿足條件,判斷第一次內循環(huán),j的值為3,不滿足條件,跳出內循環(huán)。第二次執(zhí)行外循環(huán)i的值為2,同理也不滿足內循環(huán)條件,跳出內循環(huán)。第三次執(zhí)行外循環(huán)i的值為3,此時進入內循環(huán)判斷條件時,條件成立,執(zhí)行m=m%j,m的值為1,跳出內循環(huán),跳出外循環(huán)打印m的值。

13.C

14.C

15.A

16.B

17.B解析:本題主要考查結構類型的定義:struct是結構體類型的關鍵字;structstr是結構體類型名;x、y、z都是結構體成員名;st是結構變量名。

18.D

19.B

20.A依據fun函數,可知其要實現的功能是將S中第(t+1)個元素以前的元素逆置賦給數組P。由于fun中函數定義了靜態(tài)變量t=3,因此,main函數中調用函數fun(a,&x)時,就是要將數組a中前4個元素逆置賦給數x,最后輸出x數組。

21.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。

22.strudctSTRUstrudctSTRU解析:結構件類型是構造數據類型,是用戶自己定義的一種類型。

結構體類型的定義:

struct結構體類型名

{

成員項表;

};

定義結構體變量的的形式為:

struct結構體類型名變量1,變量2,...?

其中變量包括;一般變量、指針變量、數組變量等。

23.44解析:本題考查宏定義。預編譯時,首先將M的宏定義帶入K,得到N+1+1*N+1/2;再將N的宏定義帶人,得到2+1+1*2+1/2=3+2+0=5,所以循環(huán)4次。

24.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設計測試實例時,測試人員將程序看成一個“黑盒”,即不關心程序內部是如何實現的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設計的測試用例完全是根據程序的功能說明來設計的。

25.cdeabcdeab解析:本題move()函數的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數中用了一個for循環(huán)調用move()函數,共循環(huán)3次,所以數組s被循環(huán)右移了3位,故最后輸出的值為cdeab。

26.for(I=0;I<t;I++)0for(I=0;I<t;I++),0解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算,此外,一開始應使*k的值為數組中的某一下標值,即*k=0。

27.33解析:軟件系統結構圖的寬度:整體控制跨度(最大模塊數的層)的表示。

28.30x30x解析:本題的參數傳遞屬于值傳遞,所以被調用函數內不能改變調用函數中的數據。

29.字符串a和b的長度之和字符串a和b的長度之和解析:本題首先通過第一個while循環(huán)計算字符串a的長度,再通過第二個循環(huán),將字符串a和b相連,最后返回連接后的總長度。

30.x<z‖y<zx<z‖y<z解析:本題考查邏輯運算符和邏輯表達式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關系。

31.1212解析:本題的第—個for循環(huán)用于始數組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結果為12。

32.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,

33.扇出扇出解析:在結構圖中,調用一個給定模塊的模塊個數稱為扇入,一個模塊直接調用的其他模塊個數稱為扇出。

34.246

35.77解析:在C語言中,宏定義是直接替換的,所以在對表達式MAX(a+b,c+d)*l0進行替換后,表達式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個條件表達式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個表達式的值(否則用(c+9d)*10)的值作為整個表達式的值),而(a+b)的值為7。所以整個表達式的值為7。

36.aaaaAAAAAaaaaAAAAA解析:函數strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數組sp末尾的\'\\0\'。

37.-55。

38.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在邏輯表達式中,如果要同時滿足幾個條件可以使用邏輯與運算符“&&”,故本題的答案應該為:a+b>c&&a+c>b&&b+c>a或其他等價形式。

39.eybdooG

40.malloc(11)或malloc(sizeof(char*)11)malloc(11)或malloc(sizeof(char*)11)解析:該題主要考查malloc函數的使用。一個字符在內存中占一個字節(jié),因此malloc的參數為11。也可按指向字符指針的大小來分配。

41.C解析:靜態(tài)局部變量在編譯時賦初值,即只賦初值一次,在程序運行時它已有初值。以后每次調用時不再重新賦初值而只是保留上次函數調用結束時的值,而對自動變量賦初值,不是在編譯時進行的,而在函數調用時進行,每調用一次函數重新給一次初值,相當于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調函數fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調用函數fun時,d初值為5,p由主函數傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數調用結束后,它仍保留d=6。再次調用fun函數,d的初值為6,而由主函數傳遞的p的值為9,則此時d=d+p=6+9=15,最后打印輸出d的值并返回主函數。

42.B軟件設計包括軟件的結構設計、數據接口設計和過程設計。其中軟件結構設計主要包括系統由哪些子系統構成,以及這些子系統之間的關系是怎樣的,并將這些內容編寫成文檔;數據接口設計的任務是為每個子系統設計其與其他子系統間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統的操作知識就可以使用;過程設計是指系統結構部件轉換成軟件的過程描述。

43.D解析:C語言規(guī)定最左邊變量所得到的新值就是賦值表達式的值,故“if(a=1)”條件表達式為真,b=1;else總是與上面最近的沒有被使用的if配對,導致不合法的if-else結構,if語句后面的兩條語句應用“{)”括起來。

44.C解析:本題考查數據庫的關系代數運算。R表中只有一個域名A,有兩個記錄(也叫元組),分別是m和n;S表中有兩個域名,分別是B和C,其所對應的記錄分別為1和3。注意觀察表T,它是由R的第一個記錄依次與S的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運算恰恰符合關系代數的笛卡兒積運算規(guī)則。關系代數中,笛卡兒積運算用“×”來表示。因此,上述運算可以表示為T=R×S。因此,本題的正確答案為C。

45.B解析:所謂二叉樹的前序遍歷(DLR)是指在訪問根結點、遍歷左子樹與遍歷右子樹這3者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹,并且,在遍歷左右子樹時,上述規(guī)則同樣適用,即“根-左-右”。故該二叉樹的前序遍歷結果為“ATBZXCYP”。對于本題,若使用后序遍歷和中序遍歷的結果分別為“ZBTYCPXA”和“TZBACYXP”。

46.A解析:考查宏替換的使用。宏替換用'#define宏名宏體'的形式來定義。在進行編譯預處理時,將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶參數,但宏替換過程中不像函數那樣要進行參數值的計算、傳遞及結果返回等操作;宏替換只是簡單的字符替換,不進行計算,因而本題中的S(a+b)進行宏替換后為PT*1+2*1+2=5.5*1+2*1+2=9.5。

47.A解析:對于函數strcat(ss,hh),把字符串hh(若遇空格,舍去后面的部分,并重新賦給hh)連至字符串ss的后面。

48.C

49.C解析:EOF是指向文本文件的結束標志,NULL是打開文件錯誤時的返回值。feof(fp)用來判斷文件是否在文件末尾,文本文件和二進制文件均可以使用此函數,如果遇到文件結束就返回1,否則返回0。

50.A

51.A解析:函數調用相當于f(2,3),程序運算應得結果為'-1'。

52.B解析:二維字符數組可以看成由若干個一維字符數組組成,每行是一個一維字符數組。本題首先定義了一個數組ch[3][5],并給它們按行賦初值,即相當于給eh[0]賦值“AAAA”,給ch[1]賦值“BBB”,給eh[2]賦值“BBB”,最后輸出轉義字符“?!?、ch[1]和轉義字符“\\”,因此輸出為“BBB”。所以,4個選項中B為所選。

53.A解析:本題考查大小寫字母的ASCII碼值的關系。大寫字母比它相應的小寫字母的ASCII碼小32。

54.D解析:程序中使用一個for循環(huán),3次輸出函數f1(2)的返回值。f1()函數中存在一個靜態(tài)局部變量c,第1次調用f1()函數返回a+b+c=2+1+4=7,c變?yōu)?,第2次調用返回2+1+5=8,c變?yōu)?,第3次返回2+1+6=9。所以正確答案是D。

55.B解析:在程序中如果有帶實參的宏,則按#define命令行中指定的字符串從左到右進行置換,如果串中包含宏中的形參,則將程序語句中相應的實參代替形參。將實參帶入已經定義的宏中,可以得出答案為“12”。

56.A解析:數據流圖包括4個方面,即加工(轉換)(輸入數據經加工變換產生輸出)、數據流(沿箭頭方向傳送數據的通道,一般在旁邊標注數據流名)、存儲文件(數據源)(表示處理過程中存放各種數據的文件)、源和潭(表示系統和環(huán)境的接口,屬系統之外的實體)。不包括選項中的控制流。

57.B解析:二維數組的初始化有以下幾種形式:①分行進行初始化;②不分行進行初始化;③部分數組元素進行初始化;④省略第一維的定義,不省略第二維的定義。選頃B)等號右邊分了3行,大于等號左邊數組的行數2。

58.B解析:一種數據的邏輯結構根據需要可以表示成多種存儲結構,常用的存儲結構有順序、鏈接、索引等,選項A和選項D正確。采用不同的存儲結構,其數據處理的效率不同,因此,在進行數據處理時,選擇合適的存儲結構是很重要的,選項C正確,選項B錯誤,應為本題正確答案。

59.A解析:數據庫管理系統的基礎是操作系統。操作系統是DBMS的基礎,它處理的對象是數據文件的物理塊,執(zhí)行物理文件的讀寫操作,保證DBMS對數據邏輯上的讀寫真實地映射到物理文件上。操作系統提供的存取原語和基本存取方法通常是作為和DBMS的接口。數據庫管理系統是數據庫系統的核心。數據庫系統包含數據庫和數據庫管理系統。

60.A解析:從軟件開發(fā)的工程化觀點來看,在使用程序設計語言編制程序以前,需要對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。詳細設計的任務就是要決定各個模塊的實現算法,并精確表達出這些算法。

61.A本題中輸入的3個數據2,4,6分別賦值給了x[0[0],x[1][0],x[2][0]。x[o][1]仍為初始時的0,所以打印輸出時的結果為A選項。

62.C

63.D系統軟件是管理計算機的資源,提高計算機的使用效率,為用戶提供各種服務的軟件。應用軟件是為了應用于特定的領域而開發(fā)的軟件。選項D屬于系統軟件。選項A、B、C屬于應用軟件。故選D選項。

64.AB選項中switch((int)x);語句中不應該有最后的分號。switch(exprl),中的exprl不能用浮點類型或10n9類型,也不能為一個字符串,所以c錯誤。ca”后面常量表達式的類型必須與switch后面表達式的類型一致,所以D錯誤。

65.A用戶標識符命名規(guī)則為:由數字、字母或下劃線組成,且首字母不能是數字.不能和關鍵字重復,所以A)錯誤.

66.A算法的有窮性,是指算法必須能在有限的時間內做完,即算法必須能在執(zhí)行有限個步驟之后終止。

67.A

68.B首先n=fun(3),3被當作參數傳遞進去,這就進行了-次調用,3被當做參數傳進去后,程序會執(zhí)行這句deerctlu"nfun(k-1)+1;這就調用了第二次,而參數是3—1也就是2。2被當做參數傳進去后,程序會執(zhí)行這句elseremmfun(k—I)+1;這就調用了第三次,而參數是2-1也就是1。1被當做參數傳進去后,程序會執(zhí)行這句elseif(k==1)return1:不再遞歸調用,所以最終結果為3次。

69.D

\n本題主要考查do—while循環(huán),因為變量t的初始值等于1,經過第一次do-while循環(huán)后,執(zhí)行t=t-1這條語句一次,所以變量t的值為-1,判斷關系表達式t!=n是否成立,如果關系表達式成立,則執(zhí)行第二次循環(huán),如果關系表達式不成立,退出循環(huán)。由此可見,只要輸入變量n的值為負奇數,則一定會使t==n成立,故退出do-while循環(huán)。

\n

70.A函數fun(char*s[],intn)的功能是對字符串數組的元素按照字符串的長度從小到大排序。在主函數中執(zhí)行fun(ss,5)語句后,*ss[]={“xy”,“bcc”,“bbcc”,“aabcc”,“aa

溫馨提示

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

評論

0/150

提交評論