2021-2022年河南省鶴壁市全國計算機等級考試C語言程序設計_第1頁
2021-2022年河南省鶴壁市全國計算機等級考試C語言程序設計_第2頁
2021-2022年河南省鶴壁市全國計算機等級考試C語言程序設計_第3頁
2021-2022年河南省鶴壁市全國計算機等級考試C語言程序設計_第4頁
2021-2022年河南省鶴壁市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年河南省鶴壁市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序運行后的輸出結果是()。A.1256B.5634C.5612D.3456

2.面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質不同,它的基本原理是()。

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強調模擬現(xiàn)實世界中的算法而不強調概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.不強調模擬現(xiàn)實世界中的算法而強調概念

3.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應該是()。A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)

4.設一個廣義表中結點的個數(shù)為n,則求廣義表深度算法的時間復雜度為____。

A.O(1)B.O(n)C.O(n2)D.O(log2n)

5.以下敘述中錯誤的是______。A.C程序必須由—個或—個以上的函數(shù)組成

B.函數(shù)調用可以作為—個獨立的語句存在

C.若函數(shù)有返回值,必須通過return語句返回

D.函數(shù)形參的值也可以傳回給對應的實參

6.最大容量為n的循環(huán)隊列,隊尾指針是rear,隊頭是front,則隊空的條件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

7.有以下程序:Main(){{intx,y,z;x=y=1;z=x++,y++,++y;print(“%d,%d,%d”,x,y,z);}程序運行后的輸出結果是()。A.2,3,3B.2.3.2C.2,3.1D.2.2.1

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

A.c語言是一種結構化程序設計語言

B.使用三種基本結構構成的程序只能解決簡單問題

C.結構化程序設計提倡模塊化的設計方法

D.結構化程序由順序、分支、循環(huán)三種基本結構組成

9.

10.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結果是()。A.5,5B.5,11C.11,11D.11,5

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

A.軟件測試應該由程序開發(fā)者來完成

B.程序經調試后一般不需要測試

C.軟件維護只包括對程序代碼的維護

D.以上三種說法都不對

12.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運行后的輸出結果是()。A.12345B.23445C.34756D.35745

13.在一個C源程序文件中所定義的全局變量,其作用域為()。A.由具體定義位置和extern說明來訣定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

14.

15.

16.

17.執(zhí)行下列程序后,輸出的結果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

A.1B.4C.9D.0

18.表達式a*(b+c)-d的后綴表達式是()。

A.abcdd+-B.abc+*d-C.abc*+d-D.-+*abcd

19.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用冒泡排序時,第一趟掃描結果是()

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)

20.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。

A.文件開始B.文件末尾C.文件當前位置D.以上都不對

二、2.填空題(20題)21.以下程序的輸出結果是【】。

main()

{inta=0;

a+=(a=8);

printf(“%d\n”,A);

}

22.以下程序運行后的輸出結果是【】。

main()

{

inti,n[]={0,0,0,0,0};

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

{

n[i]=n[i-1]*2+1;

printfi["%d",n[i]);

}

}

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

24.關系代數(shù)是關系操作語言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎,它的運算對象和運算結果均為()。

25.函數(shù)fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

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

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

returnnum;

}

26.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。

27.有以下程序:

#include<stdio.h>

main()

{

charc;

while((c=getchar())!='?')putchar(--c);

}

程序運行時,如查從鍵盤輸入:Y?N?<回車>,則輸出的結果為______。

28.下列程序的運行結果是______。

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

}

29.以下程序的功能是:從鍵盤上輸入若干學生的成績,統(tǒng)計計算出平均成績,并輸出低于平均分的學生成績,用輸入負數(shù)結束輸入。填空。

main()

{floatx[1000],sum,=0.0,avea;

intn=0,i;

printf("Entermark:"\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+=【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:"\n");

printf("ave=%f"\n",ave);

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

if(【】)frintf("%f\n",x[i]);

}

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

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

31.以下程序的功能是建立一個帶有頭結點的單向鏈表,鏈表結點中的數(shù)據(jù)通過鍵盤輸入,當輸入數(shù)據(jù)為-1時,表示輸入結束(鏈表頭結點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

32.在軟件測試中,動態(tài)測試和靜態(tài)測試手段只能發(fā)現(xiàn)程序中的錯誤,而不能證明程序中不存在錯誤,只有【】證明才有可能證明程序的正確性。

33.下列程序的輸出結果是______。

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

34.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

35.以下程序運行后的輸出結果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

36.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、______和處理過程。

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

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁眨酝瓿蓪數(shù)組的定義,t數(shù)組的每個元素為該結構體類型。

【】t[20]

38.四條語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

39.下列程序將二維數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;

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

{for(j=0;j<3;j++)

}

}

40.下列程序的運行結果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

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

}

三、1.選擇題(20題)41.以下程序#include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的輸出是________。

A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC

42.若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達式是______。

A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x

43.如果需要打開一個已經存在的非空文件“Demo”進行修改,下面選項中正確的是

A.fp=fopen("Demo","r");

B.fp=fopen("Demo","ab+");

C.fp=fopen("Demo","w+");

D.fp=fopen("Demo","r+");

44.算法的時間復雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)

45.下列不屬于軟件工程的3個要素的是______。

A.工具B.過程C.方法D.環(huán)境

46.判斷字符串s1是否大于字符串s2,應該使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

47.設x,y,z,(均為整型變量,現(xiàn)有如下語句x=y=z=1;t=++x‖++y&&++z;,則執(zhí)行這個語句后t的值為

A.2B.1C.0D.不定值

48.關于printf()函數(shù)的返回值敘述正確的是

A.通常是本次調用中輸出字符的個數(shù)B.通常是輸出的第一個數(shù)值C.通常返回布爾值真D.通常返回非零值

49.下列與表達式“b=(a<0?-1:a>0?1:0)”的功能等價選項是()

A.b=0;if(a>=0)if(a>0)b=1;elseb=-1;

B.if(a>0)b=1;elseif(a<0)b=-1;elseb=0;

C.if(A)if(a<0)b=-1;elseif(a>0)b=1;elseb=0;

D.b=-1;if(A)if(a>0)b=1;elseif(a==0)b=0;elseb=-1;

50.下列合法的標識符是()。

A.123B.#256C.a.55D.abhj1_2_3

51.若x,i,j和k都是int型變量,則計算表達式x=(i=4,j=16,k=32)后,x的值為()。

A.4B.16C.32D.52

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

A.PADB.PFDC.N-SD.DFD

53.下列對于線性鏈表的描述中正確的是______。

A.存儲空間不一定是連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

54.為了避免在嵌套的條件語句if-else中產生二義性,C語言中規(guī)定的if-else配對原則是______。

A.else子句與縮排位置相同的if配對

B.else子句與其之前最近的未被配對的if配對

C.else子句與其之后最近的if配對

D.else子句與同一行上的if配對

55.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}執(zhí)行后輸出結果是

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

56.設已執(zhí)行預編譯命令#include<string.h>,以下程序段的輸出結果是()。chars[]="anapple";printf("%d\n",strlen(s));

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

57.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}該程序的輸出結果是______。

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

58.關系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循______等完整性規(guī)則。

A.實體完整性和參照完整性

B.參照完整性和用戶定義的完整性

C.實體完整性和用戶定義的完整性

D.實體完整性、參照完整性和用戶定義的完整性

59.下列描述中正確的是()。

A.程序就是軟件

B.軟件開發(fā)不受計算機系統(tǒng)的限制

C.軟件既是邏輯實體,又是物理實體

D.軟件是程序、數(shù)據(jù)與相關文檔的集合

60.閱讀程序:main(){intx;scanf("%d',&x);if(x--<5)printf("%d\n",x);elseprintf("%d\、n",x++);}程序運行后,如果從鍵盤上輸入5,則輸出結果是()

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

四、選擇題(20題)61.在軟件開發(fā)中,需求分析階段產生的主要文檔是()。

A.可行性分析報告B.軟件需求規(guī)格說明書C.概要設計說明書D.集成測試計劃

62.對如下二叉樹進行后序遍歷的結果為()。

A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

63.下面不屬于需求分析階段任務的是()。

A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審

64.下列程序的運行結果是()。

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

65.軟件設計中衡量模塊獨立性的度量標準是()。

A.抽象和信息隱蔽B.局部化和封裝化C.內聚性和耦合性D.激活機制和控制方法

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

A.每個C語言程序文件中都必須要有一個main(.函數(shù)

B.在c語言程序中main(.函數(shù)的位置是固定的

C.c語言程序中所有函數(shù)之間都可以相互調用,與函數(shù)所在位置無關

D.在c語言程序的函數(shù)中不能定義另一個函數(shù)

67.有以下定義和語句:

structworkers

{intnum;charname[20];charC;

struct

{intday;intmonth;intyear;)S;

};

structworkersw,*pw;

pw=&w;

能給w中year成員賦1980的語句是()。

A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

68.下列選項中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

69.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是()。

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

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

71.若程序中有以下說明和定義。

structabc

{

intx;chary;

}

structabcs1,s2;

則會發(fā)生的情況是

A.編譯時出錯B.程序將順序編譯、連接、執(zhí)行

C.能順序通過編譯、連接,但不能執(zhí)行D.能順序通過編譯,但連接出錯

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

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

73.

74.沒有以下語句

則Z的二進制值是()。

A.00010100B.00011011C.00011100D.00011000

75.

有以下程序

#include<stdio.h>

#include<string.h>

voidfun(chars[][10],intn)

{

chart;inti,j;

for(i=0;i<n-1;j++)

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

/*比較字符串的首字符大小,并交換字符串的首字符*/

if(s[0])>s[i][c]{t=s[i][o];s[i][o]=s[j][o];s[j][0]=t;}

}

main

{charss[5][10]="bcc","bbcc","xy","aaaacc","aabcc"}

fun(ss,5);printf("%s,%s",ss[0],ss[4]);

}

程序運行結果是()。

A.xy,aaaaccB.aaaacc,xyC.xcc,aabccD.acc,xabcc

76.以下只有在使用時才為該類型變量分配內存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

77.

78.

79.對于長度為n的線性表,在最壞的情況下,下列各排序法所對應的比較次數(shù)中正確的是

A.插入排序為n/2B.插入排序為nC.快速排序為nD.快速排序為n(n-1)/2

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。

例如,輸入opdye,則應輸出deopy。

請修改程序中的錯誤,使它能得到正確結果。

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

試題程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j++)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

printf("\n\nBeforesorting:\n%s",str);

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}六、程序設計題(1題)82.編寫函數(shù)fun(),其功能是計算:

s作為函數(shù)值返回。

在C語言中可調用log(n)函數(shù)求1n(n)。log函數(shù)的引

用說明為:doublelog(doublex)。

例如,若m的值為20,則fun()函數(shù)值為6.506583。

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

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

試題程序:

參考答案

1.BFunl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結果是5634。

2.C\n面向對象的設計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強調模擬現(xiàn)實世界中的概念而不強調算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應用領域的概念角度去思考。

\n

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

4.D

5.D解析:在調用函數(shù)時,給形參分配存儲單元,并將實參對應的值傳遞紿形參,調用結束后,形參單元彼釋放,實參單元仍保留并維持原值。因此,在執(zhí)行—個被調用函數(shù)時,形參的值如果發(fā)生改變,并不會改變主調函數(shù)的實參的值,也就是說形參的值是不傳回紿對應的實參的。

6.B

7.C整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達式,程序執(zhí)行“z=x++,y++,++y”之后,x的值為2,y的值為3,z取逗號表達式中的第二個表達式的值,為1。因此本題的答案為選項C。

8.BC語言是一種結構化程序設計語言。結構化程序設計是以模塊化設計為中心的,有三種基本結構:順序、選擇和循環(huán)結構。各模塊相互獨立,因而可將原來較為復雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護性。

9.B

10.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調用結束時,它們的值不釋放保持不變,所以第2次調用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。

11.D程序調試是由程序開發(fā)者完成診斷和改正程序中的錯誤的過程;軟件測試是由專門的測試人員完成,是發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;軟件維護是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足新的需要而修改軟件的過程,是軟件生存周期中非常重要的一個階段。

12.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。

13.A[解析]全局變量的作用域是從聲明處到文件的結束。所以選擇A)

14.D

15.C

16.D

17.D解析:本題主要是考查帶參數(shù)的宏定義及其相關運算。本題中宏運算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

18.B

19.D

20.BSEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。

21.1616解析:在程序中首先將8賦值給變量a,然后再進行復合賦值運算。即a=a+a=8+8=16,所以該空格處應該填16。

22.1371513715解析:本題中,定義了個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。

23.99解析:本題要輸出的結果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應該是3+1+3+1+1=9。故本題應該填9。

24.關系關系

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

26.靜態(tài)靜態(tài)解析:靜態(tài)測試包括代碼檢查、靜態(tài)結構分析,代碼質量度量等。靜態(tài)測試不實際運行軟件。

27.xx解析:本題考查的知識點是while循環(huán)的程序分析;主函數(shù)中首先定義了一個字符型變量C,接著執(zhí)行下面while語句,在while循環(huán)中,首先從鍵盤上讀入一個字符Y并給賦給字符變量C,賦值表達式的值不為'?',執(zhí)行輸出語句,輸出字符x。接著判斷while中的循環(huán)條件,讀入一個字符'?',并賦值給c,賦值表達式的值為'?',循環(huán)條件不再滿足,退出循環(huán)。

28.11231123解析:在主函數(shù)中第一次調用func子函數(shù)時,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因為在子函數(shù)中將m和i定義成了static類型,所以在子函數(shù)中對m和i進行的改變在下一次調用子函數(shù)時能進行保存,所以第二次調用子函數(shù)時,m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。

29.aasum/n或sum/(float)n或sum/(double)nx[i]<sve或!(x[i]>=sve)或sve>x[i]a\r\na\r\nsum/n或sum/(float)n或sum/(double)n\r\nx[i]<sve或!(x[i]>=sve)或sve>x[i]

30.4

31.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結構對結構體變量中數(shù)據(jù)的引用。鏈表的特點是結構體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結構體變量類型的指針,用以指明鏈表的下一個結點。

32.程序正確性程序正確性

33.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時,調用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時,調用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時,調用PRINT(4),P(4)輸出4,theend。

34.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

35.136136解析:本題考核的知識點是函數(shù)遞歸。主函數(shù)調用函數(shù)fun(6),由于6/2>0為真遞歸調用fun(3),接著遞歸調用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應該填136。

36.數(shù)據(jù)存儲數(shù)據(jù)存儲

37.strudctSTRUstrudctSTRU解析:結構件類型是構造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結構體類型的定義:

struct結構體類型名

{

成員項表;

};

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

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

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

38.x+=1;x+=1;解析:題面中的四條語句的作用是使x的值加1,在C中有多種方法可以對變量進行加1操作,這里可以利用C的復合賦值運算符+=實現(xiàn),本題答案為x+=1;。

39.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標和列標互換,然后賦給數(shù)組b即可。

40.33解析:分析程序運行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結果為3。

41.D解析:strcat(p1,P2)將字符串abcABC放到了*pl所指向的存儲單元中;strcpy在本題將abcABC復制到str+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。

42.A解析:選項A將變量x的地址賦紿指針變量pb,使pb指向x‘選項B是烙x的值當作地址賦給指針pb,pb指向一個地址等于x值的內存單元;選項c將x的地址賦給指針pb指向的地址等于x的內存單元。

43.D

44.C解析:算法的時間復雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應該與編寫算法程序所使用的程序設計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設計語言以及程序員的水平有關,同一個算法,用不同的程序設計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設計語言以及程序員的水平有關,不能用算法程序中的指令條數(shù)來度量算法的時間復雜度。所以,本題正確答案為C。

45.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。

46.C解析:本題考查字符串比較函數(shù)strcmp()。調用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當str1<str2時,返回值為負數(shù);當str1=str2時,返回0;當str1>str2,返回值為正數(shù)(注意:不能使用關系運算符比較兩個字符串的大小)。

47.B解析:邏輯與(&&)優(yōu)先于邏輯或(‖)優(yōu)先于賦值運算符。由于邏輯運算符的結果為邏輯值,真為1,假為0,題目中的邏輯值為真。

48.A解析:printf函數(shù)的返回值通常是本次調用中輸出字符的個數(shù)。scanf函數(shù)在調用結束后將返回一個函數(shù)值,其值等于得到輸入項的個數(shù)。

49.B

50.DC語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。“#”、“.”不允許出現(xiàn)在標識符中。

51.C本題主要考查逗號表達式。逗號是一個特殊的運算符,它具有所有運算符中最低的優(yōu)先級。在C語言中,用它可以將兩個表達式連接起來,逗號表達式的一般表現(xiàn)形式為:

表達式1,表達式2,…,表達式n

逗號表達式的求解過程是:先求解表達式1,再求解表達式2,依次往后計算,整個逗號表達式的值是最后一個表達式的值,如“3+5,5+6”的值是11。

在本題中,逗號表達式為i=4,j=16,k=32,根據(jù)上面的分析,計算逗號表達式得到的結果為k=32,最后將逗號表達式的結果賦值給變量x,那么變量x的值為32。因此,本題的正確答案選C。

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

53.A解析:線性表的鏈式存儲結構稱為線性鏈表,是一種物理存儲單元上非連續(xù)、非順序的存儲結構,數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接來實現(xiàn)的。

54.B

55.A解析:在C語言中所謂函數(shù)的遞歸是在指在調用一個函數(shù)的過程中,又出現(xiàn)了直接或間接地調用該函數(shù)本身,直接調用該函數(shù)本身的稱為函數(shù)遞歸,而間接調用該函數(shù)稱為函數(shù)的間接遞歸調用.由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是i

56.B解析:如果一個字符數(shù)組中存放一個字符串,則函數(shù)strlen的值為“\\0”之前的全部字符個數(shù),也包括空格在內。注意:字符串處理函數(shù)的使用。

57.B解析:函數(shù)fib內部有兩個遞歸調用,當n=3時,fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-1)+fib(n-2)的值為4。

58.D解析:關系模型中包括關系的數(shù)據(jù)結構、關系的操縱和關系中的數(shù)據(jù)約束。關系完整性約束即數(shù)據(jù)完整性,包括實體完整性、參照完整性和用戶自定義完整性。

59.D\r\n軟件是與計算機操作相關的計算機程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計算機系統(tǒng)的限制;軟件是一個邏輯實體,不是物理實體,軟件具有抽象性。因此選項D正確。

60.B

61.BA項錯誤,可行性分析階段產生可行性分析報告。C項錯誤,概要設計說明書是總體設計階段產生的文檔。D項錯誤,集成測試計劃是在概要設計階段編寫的文檔。B項正確,需求規(guī)格說明書是后續(xù)工作如設計、編碼等需要的重要參考文檔。

62.D所謂的后序遍歷是指,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結點,并且在遍歷左、右樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根點。因此,后序遍歷二叉樹的過程也是一個遞歸過程。

63.C【答案】:C

【知識點】:需求分析階段的任務

【解析】:需求分析階段的任務是深入描述軟件的功能和性能,確定軟件設計的約束和軟件同其他系統(tǒng)元素的接口細節(jié),定義軟件的其他有效性需求,借助于當前系統(tǒng)的邏輯模型導出目標系統(tǒng)邏輯模型,解決目標系統(tǒng)“做什么”的問題??煞譃樾枨筇岢?、需求描述及需求評審三個階段。從此可以看出需求分析的任務不包括制定軟件集成測試計劃,故選C。

64.Cif…else語句的執(zhí)行過程如下,首先計算if后面一對圓括號內表達式的值,若表達式的值為非0,執(zhí)行if子句,然后跳過else子句,去執(zhí)行if語句后的下一條語句;若表達式的值為0,跳過if子句,去執(zhí)行else子句,接著去執(zhí)行if語句后的下一條語句。C語言的語法規(guī)定,else子句總是與前面最近的不帶else的if匹配,與書寫格式無關,本題目的后一個if-else相當于嵌套在第一個if子句里,相當于X<y&&y<0時,z=0;當X<y&&y>=0時,z=z+1。

65.C耦合性與內聚性是模塊獨立與否的兩個定性標準,耦合與內聚是相互關聯(lián)的。在程序結構中,各模塊的內聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內蒙、低耦合,即減弱模塊之間的耦合性而提高模塊內的內聚性,這樣有利于提高模塊的獨立性。

66.Amain函數(shù)是c語言程序的主函數(shù),可以出現(xiàn)在程序中的任何位置。函數(shù)是c語言程序的基本模塊,函數(shù)內部可以再定義其他函數(shù)。但函數(shù)間可相互調用,被調用的既可以是c語言提供的庫函數(shù),也可以是用戶自定義函數(shù)。

67.D\n結構workers中的成員s是一個嵌套的結構類型定義,因此在給year賦值時,要用“.”運算在深入一層訪問到最基本的成員year,只有D項反映出了這一點。

\n

68.A解析:作為一個算法,一般應該具有下列4個特征:(1)可行性,即考慮到實際的條件能夠達到一個滿意的結果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內做完;(4)擁有足夠的情報。

69.B一雛數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達式];注意定義數(shù)組時,元素個數(shù)不能是變量。因此應該選B選項。

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

71.A本題考查結構體變量的定義。按題目給出的定義編譯時會出現(xiàn)以下錯誤:“Toomanytypeindeclarationinfunctonmain”,這是因為右花括號后面缺少了一個分號。

72.B

73.A

74.B本題考查兩個位運算符。按位異或運算

75.D

\n函數(shù)fun(chars[][10],intn)比較二維字符數(shù)組s[][10]的每個字符串的首字符大小,如果前一個字符串首字符大于后一個字符串的首字符,則交換這兩個字符串的首字符。

\n

76.B在用靜態(tài)static與外部extern定義變量時,系統(tǒng)立刻給其分配內存,而定義自動類auto與強制放入寄存器register類型變量時,只有當使用時才分配內存。

77.B

78.B

79.D插入排序是指將無序子序列中的一個或幾個記錄插入到有序序列中,從而增加記錄的有序子序列的長度。在最壞的情況下,當插入第一個元素時,需要比較的次數(shù)為0,插入第二個元素時,需要比較一次,插入第n個元素時,需要比較n-1次。那么直到將n個元素都插入序列中,需要比較次數(shù)的總和為0+1+2+…+n-1。因此,在最壞情況下,插入排序需要比較的次數(shù)為n(n-1)/2。

快速排序的基本思想是通過一趟排序將待排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小,則可以分別對這兩部分記錄繼續(xù)進行排序,以達到整個序列有序。它在最壞情況下,需要比較的次數(shù)也為n(n-1)/2。因此,本題的正確答案選D。

80.C81.\n\t(1)錯誤:intproc(charstr[])

\n正確:voidproc(char、tr[])

\n(2)錯誤:str[j]=str[++];

\n正確:str[j]=str[i];

\n【解析】由主函數(shù)中的函數(shù)調用可知,函數(shù)proc沒有返回值。因此,“intproccharstr[])”應改為“voidproc(charstr[])”;由函數(shù)proc可知,if語句塊完成將字符串str中的第i個元素與第j個元素相交換。因此,“str[j]=str[i++];”應改為“str[j]=str[i];”。\n

82.

【解析】題目要求寫出程序實現(xiàn)數(shù)學表達式的功能,需要用for循環(huán)計算累加的結果,調用sqrt函數(shù)實現(xiàn)求平方根。循環(huán)變量的范圍是1~m,每次循環(huán)都進行一次累加求和。需要特別注意的是,log函數(shù)的形式參數(shù)為double型變量,用于循環(huán)的計數(shù)變量為整數(shù),所以必須強制轉換。最后返回所求出的平方根。

</y&&!z||1>2021-2022年河南省鶴壁市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序運行后的輸出結果是()。A.1256B.5634C.5612D.3456

2.面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質不同,它的基本原理是()。

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強調模擬現(xiàn)實世界中的算法而不強調概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.不強調模擬現(xiàn)實世界中的算法而強調概念

3.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應該是()。A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)

4.設一個廣義表中結點的個數(shù)為n,則求廣義表深度算法的時間復雜度為____。

A.O(1)B.O(n)C.O(n2)D.O(log2n)

5.以下敘述中錯誤的是______。A.C程序必須由—個或—個以上的函數(shù)組成

B.函數(shù)調用可以作為—個獨立的語句存在

C.若函數(shù)有返回值,必須通過return語句返回

D.函數(shù)形參的值也可以傳回給對應的實參

6.最大容量為n的循環(huán)隊列,隊尾指針是rear,隊頭是front,則隊空的條件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

7.有以下程序:Main(){{intx,y,z;x=y=1;z=x++,y++,++y;print(“%d,%d,%d”,x,y,z);}程序運行后的輸出結果是()。A.2,3,3B.2.3.2C.2,3.1D.2.2.1

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

A.c語言是一種結構化程序設計語言

B.使用三種基本結構構成的程序只能解決簡單問題

C.結構化程序設計提倡模塊化的設計方法

D.結構化程序由順序、分支、循環(huán)三種基本結構組成

9.

10.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結果是()。A.5,5B.5,11C.11,11D.11,5

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

A.軟件測試應該由程序開發(fā)者來完成

B.程序經調試后一般不需要測試

C.軟件維護只包括對程序代碼的維護

D.以上三種說法都不對

12.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運行后的輸出結果是()。A.12345B.23445C.34756D.35745

13.在一個C源程序文件中所定義的全局變量,其作用域為()。A.由具體定義位置和extern說明來訣定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

14.

15.

16.

17.執(zhí)行下列程序后,輸出的結果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

A.1B.4C.9D.0

18.表達式a*(b+c)-d的后綴表達式是()。

A.abcdd+-B.abc+*d-C.abc*+d-D.-+*abcd

19.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用冒泡排序時,第一趟掃描結果是()

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)

20.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。

A.文件開始B.文件末尾C.文件當前位置D.以上都不對

二、2.填空題(20題)21.以下程序的輸出結果是【】。

main()

{inta=0;

a+=(a=8);

printf(“%d\n”,A);

}

22.以下程序運行后的輸出結果是【】。

main()

{

inti,n[]={0,0,0,0,0};

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

{

n[i]=n[i-1]*2+1;

printfi["%d",n[i]);

}

}

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

24.關系代數(shù)是關系操作語言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎,它的運算對象和運算結果均為()。

25.函數(shù)fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

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

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

returnnum;

}

26.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。

27.有以下程序:

#include<stdio.h>

main()

{

charc;

while((c=getchar())!='?')putchar(--c);

}

程序運行時,如查從鍵盤輸入:Y?N?<回車>,則輸出的結果為______。

28.下列程序的運行結果是______。

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

}

29.以下程序的功能是:從鍵盤上輸入若干學生的成績,統(tǒng)計計算出平均成績,并輸出低于平均分的學生成績,用輸入負數(shù)結束輸入。填空。

main()

{floatx[1000],sum,=0.0,avea;

intn=0,i;

printf("Entermark:"\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+=【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:"\n");

printf("ave=%f"\n",ave);

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

if(【】)frintf("%f\n",x[i]);

}

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

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

31.以下程序的功能是建立一個帶有頭結點的單向鏈表,鏈表結點中的數(shù)據(jù)通過鍵盤輸入,當輸入數(shù)據(jù)為-1時,表示輸入結束(鏈表頭結點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

32.在軟件測試中,動態(tài)測試和靜態(tài)測試手段只能發(fā)現(xiàn)程序中的錯誤,而不能證明程序中不存在錯誤,只有【】證明才有可能證明程序的正確性。

33.下列程序的輸出結果是______。

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

34.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

35.以下程序運行后的輸出結果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

36.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、______和處理過程。

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

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁眨酝瓿蓪數(shù)組的定義,t數(shù)組的每個元素為該結構體類型。

【】t[20]

38.四條語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

39.下列程序將二維數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;

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

{for(j=0;j<3;j++)

}

}

40.下列程序的運行結果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

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

}

三、1.選擇題(20題)41.以下程序#include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的輸出是________。

A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC

42.若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達式是______。

A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x

43.如果需要打開一個已經存在的非空文件“Demo”進行修改,下面選項中正確的是

A.fp=fopen("Demo","r");

B.fp=fopen("Demo","ab+");

C.fp=fopen("Demo","w+");

D.fp=fopen("Demo","r+");

44.算法的時間復雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)

45.下列不屬于軟件工程的3個要素的是______。

A.工具B.過程C.方法D.環(huán)境

46.判斷字符串s1是否大于字符串s2,應該使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

47.設x,y,z,(均為整型變量,現(xiàn)有如下語句x=y=z=1;t=++x‖++y&&++z;,則執(zhí)行這個語句后t的值為

A.2B.1C.0D.不定值

48.關于printf()函數(shù)的返回值敘述正確的是

A.通常是本次調用中輸出字符的個數(shù)B.通常是輸出的第一個數(shù)值C.通常返回布爾值真D.通常返回非零值

49.下列與表達式“b=(a<0?-1:a>0?1:0)”的功能等價選項是()

A.b=0;if(a>=0)if(a>0)b=1;elseb=-1;

B.if(a>0)b=1;elseif(a<0)b=-1;elseb=0;

C.if(A)if(a<0)b=-1;elseif(a>0)b=1;elseb=0;

D.b=-1;if(A)if(a>0)b=1;elseif(a==0)b=0;elseb=-1;

50.下列合法的標識符是()。

A.123B.#256C.a.55D.abhj1_2_3

51.若x,i,j和k都是int型變量,則計算表達式x=(i=4,j=16,k=32)后,x的值為()。

A.4B.16C.32D.52

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

A.PADB.PFDC.N-SD.DFD

53.下列對于線性鏈表的描述中正確的是______。

A.存儲空間不一定是連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

54.為了避免在嵌套的條件語句if-else中產生二義性,C語言中規(guī)定的if-else配對原則是______。

A.else子句與縮排位置相同的if配對

B.else子句與其之前最近的未被配對的if配對

C.else子句與其之后最近的if配對

D.else子句與同一行上的if配對

55.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}執(zhí)行后輸出結果是

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

56.設已執(zhí)行預編譯命令#include<string.h>,以下程序段的輸出結果是()。chars[]="anapple";printf("%d\n",strlen(s));

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

57.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}該程序的輸出結果是______。

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

58.關系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循______等完整性規(guī)則。

A.實體完整性和參照完整性

B.參照完整性和用戶定義的完整性

C.實體完整性和用戶定義的完整性

D.實體完整性、參照完整性和用戶定義的完整性

59.下列描述中正確的是()。

A.程序就是軟件

B.軟件開發(fā)不受計算機系統(tǒng)的限制

C.軟件既是邏輯實體,又是物理實體

D.軟件是程序、數(shù)據(jù)與相關文檔的集合

60.閱讀程序:main(){intx;scanf("%d',&x);if(x--<5)printf("%d\n",x);elseprintf("%d\、n",x++);}程序運行后,如果從鍵盤上輸入5,則輸出結果是()

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

四、選擇題(20題)61.在軟件開發(fā)中,需求分析階段產生的主要文檔是()。

A.可行性分析報告B.軟件需求規(guī)格說明書C.概要設計說明書D.集成測試計劃

62.對如下二叉樹進行后序遍歷的結果為()。

A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

63.下面不屬于需求分析階段任務的是()。

A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審

64.下列程序的運行結果是()。

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

65.軟件設計中衡量模塊獨立性的度量標準是()。

A.抽象和信息隱蔽B.局部化和封裝化C.內聚性和耦合性D.激活機制和控制方法

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

A.每個C語言程序文件中都必須要有一個main(.函數(shù)

B.在c語言程序中main(.函數(shù)的位置是固定的

C.c語言程序中所有函數(shù)之間都可以相互調用,與函數(shù)所在位置無關

D.在c語言程序的函數(shù)中不能定義另一個函數(shù)

67.有以下定義和語句:

structworkers

{intnum;charname[20];charC;

struct

{intday;intmonth;intyear;)S;

};

structworkersw,*pw;

pw=&w;

能給w中year成員賦1980的語句是()。

A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

68.下列選項中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

69.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是()。

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

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

71.若程序中有以下說明和定義。

structabc

{

intx;chary;

}

structabcs1,s2;

則會發(fā)生的情況是

A.編譯時出錯B.程序將順序編譯、連接、執(zhí)行

C.能順序通過編譯、連接,但不能執(zhí)行D.能順序通過編譯,但連接出錯

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

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

73.

74.沒有以下語句

則Z的二進制值是()。

A.00010100B.00011011C.00011100D.00011000

75.

有以下程序

#include<stdio.h>

#include<string.h>

voidfun(chars[][10],intn)

{

chart;inti,j;

for(i=0;i<n-1;j++)

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

/*比較字符串的首字符大小,并交換字符串的首字符*/

if(s[0])>s[i][c]{t=s[i][o];s[i][o]=s[j][o];s[j][0]=t;}

}

main

{charss[5][10]="bcc","bbcc","xy","aaaacc","aabcc"}

fun(ss,5);printf("%s,%s",ss[0],ss[4]);

}

程序運行結果是()。

A.xy,aaaaccB.aaaacc,xyC.xcc,aabccD.acc,xabcc

76.以下只有在使用時才為該類型變量分配內存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

77.

78.

79.對于長度為n的線性表,在最壞的情況下,下列各排序法所對應的比較次數(shù)中正確的是

A.插入排序為n/2B.插入排序為nC.快速排序為nD.快速排序為n(n-1)/2

80.

溫馨提示

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

評論

0/150

提交評論