2021-2022年安徽省滁州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第1頁
2021-2022年安徽省滁州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第2頁
2021-2022年安徽省滁州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第3頁
2021-2022年安徽省滁州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第4頁
2021-2022年安徽省滁州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年安徽省滁州市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若某鏈表最常用的操作是在最后一個結點之后插入一個結點或刪除最后一個結點。則采用()存儲方式最節(jié)省運算時間。

A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.帶頭結點的雙循環(huán)鏈表

2.

3.有下列程序:程序執(zhí)行后的輸出結果是()。

A.654321

B.65432

C.65453452

D.654534521

4.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10

5.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序運行后的輸出結果是()。

A.7B.0C.3D.8

6.設散列表長m=14,散列函數(shù)H(K)=K%11,已知表中已有4個結點:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址為空,如用二次探測再散列處理沖突,關鍵字為49的結點地址是_____。

A.8B.3C.5D.9

7.有以下程序:main{inta[]=(2,4,6,8,10},y=0,x,*P;p=&a[1];for(x=1;x<3;x++)y+=p[x];printf("%d\n,y");}程序運行后的輸出結果是()。A.10B.11C.14D.15

8.設R是一個二元關系,S是一個三元關系,則下列運算中正確的是()。

A.R-SB.R×SC.R∩SD.R∪S

9.在單鏈表指針為p的結點之后插入指針為s的結點,正確的操作是()。A.p->next=s;s->next=p->next;

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

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

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

10.

11.若有以下定義和語句:chars[10]="abcd!",*s2="\nl23\\";Drintf("%d%d\n",strlen(sl),strlen(s2));則輸出結果是()。A.55B.105C.107D.58

12.若需要利用形參直接訪問實參,則應把形參變量說明為____參數(shù)。

A.指針B.引用C.值D.變量

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

A.無論指針變量P具有何種基類型,表達式“p=p+1”都代表指針P移動1個字節(jié)

B.指針變量具有基類型,基類型不同的指針變量不能直接相互賦值

C.指針變量的賦值操作“p=0;”是非法的

D.通過指針變量存取某個變量值的方式稱為“直接存取”方式

14.數(shù)組A中,每個元素的長度為4個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放在存儲器內,該數(shù)組按行存放時,元素A[8][5]的起始地址為()。

A.SA+292B.SA+296C.SA+300D.304

15.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運行結果是()。A.852B.963C.741D.875421

16.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+c-k值的類型為:

A.intB.doubleC.floatD.char

17.帶有頭節(jié)點的單向鏈表head,其3個數(shù)據節(jié)點A、B、C的連接關系如下圖所示:節(jié)點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點,在不改變P指向的前提下,以下選項中不能訪問C節(jié)點數(shù)據成員dt的表達式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

18.數(shù)組A中,每個元素的長度為3個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放的存儲器內,該數(shù)組按行存放,元素A[8][5]的起始地址為()。

A.SA+141B.SA+144C.SA+222D.SA+225

19.

20.下面軟件中,屬中應用軟件的是()

A.UnixB.人事管理系統(tǒng)C.數(shù)據庫管理理系統(tǒng)D.DOS

二、2.填空題(20題)21.實現(xiàn)程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

f1=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

22.若變量n中的值為24,則print函數(shù)共輸出【】行,最后一行有【】個數(shù)。

voidprint(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if(!(i%5))

printf("\n");

}

printf("\n");

}

23.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。

24.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

charsi10],ti10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結果是______。

25.以下程序的定義語句中,x[1]的初值是【】,程序運行后輸出的內容是【】。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");)

}

26.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。

27.計算機病毒除有破壞性、潛伏性和激發(fā)性外,還有一個最明顯的特性是【】

28.診斷和改正程序中錯誤的工作通常稱為【】。

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

doublefun(doublex,intn)

{inti;doubley=1;

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

returny;

}

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

30.一個模塊直接訪問另一個模塊的內容,稱為【】藕合。

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

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

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

【】t[20]

32.執(zhí)行以下程序后的輸出結果是()。

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",A);

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

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

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

printf("\n");

}

34.常用的軟件結構設計工具是結構圖(SC),也稱程序結構圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據。

35.下面程序調用fun函數(shù)動態(tài)分配兩個整型存儲單元,并通過形參傳回這兩個整型存儲單元的地址給s1和s2,將程序補充完整。

main()

{

int*s1,*s2;

fun(【】);

}

intfun(【】);

{

*p=(int*)malloc(sizeof(int));

*q=(int*)malloc(sizeof(int));

}

36.有以下程序:

prt(int*m,intn)

{inti;

for(i=0;i<n;i++)m[i]++;

}

main()

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

prt(a,5);

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

}

程序運行后的輸出結果是【】。

37.下列程序段的輸出結果是【】。

main()

{charb[]="Hello,you";

b[5]=0;

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

}

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

39.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內存空間中,形成一個新字符串s。請?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

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

}

40.設y為血型變量,請寫出描述“y是偶數(shù)”的表達式______。

三、1.選擇題(20題)41.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是

A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.上述說法都不對

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

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

B.C程序中的變量,代表內存中的一個存儲單元,它的值可以根據需要隨時修改

C.在C程序中,無論是整數(shù)還是實數(shù),都能準確無誤地表示

D.在C程序中,一個正整數(shù)可以用十進制、八進制和十六進制的形式來表示

43.有以下程序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]);}程序運行后的輸出結果是

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,

44.閱讀下列程序,當運行函數(shù)時,輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];

A.asdafaaz67B.asdafaa267C.asdD.z67

45.若變量已正確定義并賦值,則以下符合C語言語法的表達式是()。

A.a=a+7;B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b

46.現(xiàn)有以下結構體說明和變量定義,如圖所示,指針p、q、r分別指向一個鏈表中連續(xù)的三個節(jié)點。structnode{chardata;structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指節(jié)點交換前后位置,同時要保持鏈表的連續(xù),以下不能完成此操作的語句是()。

A.q->next=r->next;p->next=r;r->next=q;

B.p->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;p->next=r;

D.r->next=q;p->next=r;q->next=r->next;

47.有以下程序main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后輸出結果是

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

48.以下程序的功能是進行位運算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序運行后的輸出結果是______。

A.43B.73C.70D.40

49.以下選項中不合法的標識符是

A.printB.FORC.&aD._00

50.設有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。

A.輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出

B.運行時產生出錯信息

C.輸出值為2002

D.輸出值為2003

51.對于下列定義,不正確的敘述是()。uniondata{inta;charb;doublec;}x=y;

A.變量x所占內存的長度等于成員c的長度

B.變量x的地址和它的各成員地址都是相同的

C.可以在定義時對x初始化

D.不能對變量x賦值,故x=y非法

52.數(shù)據庫系統(tǒng)的核心是()。

A.數(shù)據模型B.數(shù)據庫管理系統(tǒng)C.數(shù)據庫D.數(shù)據庫管理員

53.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結果為

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

54.以下程序的輸出結果是

main()

{intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

55.以下4個選項中,不能被看作是一條語句的是______。

A.{;}B.a=0,b=0,c=0;C.if(a>O);D.if(b==0)m=1;n=2;

56.下列選項中,值為1的表達式是()。

A.1-'0'B.1-'\0'C.'1'-0D.'\0','0'

57.有以下程序main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)pfintf("%d",i);}printf("\n");}執(zhí)行后的輸出結果是

A.5B.24C.32D.40

58.若x和y代表整型數(shù),以下表達式中不能正確表示數(shù)學關系|x-y|<10的是

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<=10||!(y-x)>10

D.(x-y)*(x-y)<100

59.計算機病毒不能破壞()中的軟件。

A.ROMB.RAMC.軟盤D.硬盤

60.有以下程序:#include<stdio,h>inta=2;intf(intn){staticinta:3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+:a++;}returnt+a++;main(){ints=a,i;for(i=0;i<3;i++)s+=f(i);prinff("%d\n",s);}程序運行后的輸出結果是()。

A.26B.28C.29D.24

四、選擇題(20題)61.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運行的結果是()。A.1,2,3,4,5,6,7,8,9,0,

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

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

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

62.

63.設intx=7,則~x的值是()。

A.-8B.7C.-1D.1

64.若有如下定義,則__________是對數(shù)組元素的正確的引用。.

inta[10],*p;p=a;

A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p

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

A.有一個以上根結點的數(shù)據結構不一定是非線性結構

B.只有一個根結點的數(shù)據結構不一定是線性結構

C.循環(huán)鏈表是非線性結構

D.雙向鏈表是非線性結構

66.有三個關系R、S和T如下:

則由關系R和S得到關系T的操作是()。

A.自然連接B.交C.除D.并

67.兩個或兩個以上模塊之間關聯(lián)的緊密程度稱為()。

A.耦合度B.內聚度C.復雜度D.數(shù)據傳輸特性

68.

69.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結果是()。A.28B.27C.42D.4l

70.(40)將E-R圖轉換到關系模式時,實體與聯(lián)系都可以表示成()

A.屬性

B.關系

C.鍵

D.域

71.下列字符串不屬于標識符的是()

A.sumB.averageC.day_nightD.M,D.JOHN

72.

73.以下選項錯誤的是

74.

75.在c語言中,只有在使用時才占用內存單元的變量,其存儲類型是()。A.aut0和Iegister

B.extern和register

C.aut0和static

D.static和register

76.C語言的基本單位是()。

A.函數(shù)B.過程C.子程序D.子函數(shù)

77.軟件詳細設計生產的圖如右圖:該圖是()。

A.N—S圖B.PAD圖C.程序流程圖D.E—R圖

78.某循環(huán)隊列的存儲空間為Q(1:m),初始狀態(tài)為front=rear=m。現(xiàn)經過一系列的入隊操作和退隊操作后,front=m一1,real"=m,則該循環(huán)隊列中的元素個數(shù)為()。

A.m一1B.1C.mD.0

79.

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

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

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:將str所指字符串中出現(xiàn)的t1所指字符串全部替換成t2所指字符串,所形成的新的字符串放在w所指的數(shù)組中。在此處,要求t1和t2所指字符串的長度相同。例如,當str所指字符串中所指的內容為abcdabcdef9,t1所指字符串中的內容為bc,t2所指字符串中的內容為11時,結果在w所指的數(shù)組中的內容應為alldalldefg。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是求斐波那契數(shù)列中大于t的最小的數(shù),結果由函數(shù)返回。斐波那契數(shù)列F(n)的定義為F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)例如,當t=1000時,函數(shù)值為1597。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<math.h>#include<stdio.h>intfun(intt){}main(){intn;n=1000;printf(“n=%d,f=%d\n”,n,fun(n));}

參考答案

1.D

2.C

3.C程序首先定義整型變量a和b,a的初值為123456。接著通過while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當前值的個位數(shù)字(a%10)賦給b,a自身除以10。再通過switch語句判斷b的值執(zhí)行對應分支語句。所以對應a的每個個位數(shù),b的取值為6,5,4,3,2,1。當b取值為6時,執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過break退出switch。執(zhí)行下一次循環(huán),當b取值為5時,執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當b取值為4時,執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當b取值為3時,執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當b取值為2時,執(zhí)行case2輸出2,通過break退出switch;當b取值為1時,執(zhí)行break,此時a的取值為0,循環(huán)終止。綜上,程序輸出結果為:65453452。本題答案為C選項。

4.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結束符'\0'的長度。故選A。

5.C根據題意,要求統(tǒng)計字符數(shù)組s中阿拉伯數(shù)字的個數(shù)?!癱hars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以計算出‘\\0’之前阿拉伯數(shù)字的個數(shù),由字符數(shù)組s可知,有3個阿拉伯數(shù)字。故本題答案為C選項。

6.D

7.C由題目的語句P=&a[1]可知,P指向a數(shù)組中下標為1的元素“4”,又因為P為指針變量,所以P[x]與*(p+x)等價,因而在for循環(huán)語句中,第一次循環(huán)P[1]指向a數(shù)組中下標為2的元素“6”,第二次循環(huán)p[2]指向a數(shù)組中下標為3的元素“8”,所以y=6+8=14,因而選項C為正確答案。

8.BB。【解析】關系的交(∩)、并(∪)和差(-)運算要求兩個關系是同元的,顯然作為二元的R和三元的S只能做笛卡兒積運算。

9.B

10.D

11.A\\n和\\\\分別為轉義字符,各占據一個字符的位置。

12.A

13.B指針自增或自減1,移動的字節(jié)數(shù)與指針變量的基類型有關,假設指針變量p基類型為int類型,那么“p=p+1”表示指針P移動4個字節(jié)(通常int類型占4個字節(jié)),選項A錯誤;指針變量具有基類型,基類型不同的指針變量不能直接相互賦值,選項B正確;將0賦給指針變量,表示指針變量的值為空,這是合法的,選項C錯誤;通過指針變量存儲指向變量的地址并通過指針存取變量的值,稱為“間接存取”方式,選項D錯誤。故本題答案為B選項。

14.B

15.A答疑:[解析]第一次for循環(huán),y的值為9.y%3的值為0.滿足條件打印-y,即先減一-后打印,所以打印8;第二次for循環(huán),y的值為7.y%3的值為1.不執(zhí)行打印語句;第三次for循環(huán),y的值為6.y%3的值為0.滿足條件打印--y,即先減-后打印,所以打印5;第四次for循環(huán),y的值為4.不滿足條件,不執(zhí)行打印語句;第五次for循環(huán),y的值為3.滿足條件,打印輸出2;第六次for循環(huán),y的值為1.不滿足條件,不執(zhí)行打印語句。

16.B解析:雙目運算中兩邊運算量類型轉換規(guī)律:

運算數(shù)1運算數(shù)2轉換結果類型

短整型長整型短整型->長整型

整型長整型整型->長整型

字符型整型字符型->整型

有符號整型無符號整型有符號整型->無符號整型

整型浮點型整型->浮點型

在a/b的時候,a、b的類型不一致,根據類型轉換規(guī)則,把整型轉換成double類型,之后的加、減類似。轉化規(guī)則為char,short->int->unsigned->long->double←float。

17.Alink結構體中的next是鏈表中下一個節(jié)點的地址。由于p當前指向節(jié)點A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節(jié)點數(shù)據成員dt可以使用C的地址訪問,即p->next->next->dt,選項B正確?;蛘呤褂媒庖谩?”運算符:(*p)表示節(jié)點A,(*p).next表示B的地址,*((*p).next)表示節(jié)點B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點C,所以C的數(shù)據成員dt可以表示為(*((*(*p).next).next)).dt,因為“.”運算符優(yōu)先級高于“*”運算符,所以也可以寫為(*(*(*p).next).next).dt,選項C正確。同理,也可以既使用指針運算符,又使用解引用運算符來訪問C的節(jié)點數(shù)據成員dt,即(*(p->next->next)).dt,選項D正確。選項A中,*p表示A節(jié)點,(*p).next表示節(jié)點B的地址,由于“->”運算符的優(yōu)先級高于“*”運算符,因此先執(zhí)行“->”,即表達式(*p).next->next->dt引用了C節(jié)點的數(shù)據成員dt,然后再執(zhí)行解引用運算“*”,這是錯誤的。故本題答案為A選項。

18.C

19.A

20.B

21.3!feof(f1)3\r\n!feof(f1)解析:要實現(xiàn)文件復制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結束為止,因此第二空為!feof(f1)。

22.54

23.有窮性有窮性解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內完成,即算法必須在執(zhí)行有限個步驟之后終止。

24.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0;若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組,所指字符串的內容復制到字符數(shù)組t所指的存儲空間中。

本題中,t[10]='CDEF'.第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG”,if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內容復制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。

25.224682,2468解析:在主函數(shù)中根據整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當i=0時,p[0]=&x[1],p[0][0]=2;當i=1時,p[1]=&x[3],p[1][0]=4;當i=2時,p[2]=&x[5],p[2][0]=6;當i=3時,p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結果為2、4、6、8。

26.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內部結構和內部特征,而只是根據程序功能導出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。

27.傳染性或傳播性傳染性或傳播性

28.程序調試程序調試解析:程序調試的任務是診斷和改正程序中的錯誤。程序調試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調試主要在開發(fā)階段。

29.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應該調用函數(shù)fun(a,4),b4應該調用函數(shù)fun(b,4),(a+b)3應該調用函數(shù)fun(a+b,3),所以題目中的數(shù)學表達式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

30.內容內容

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

結構體類型的定義:

struct結構體類型名

{

成員項表;

};

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

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

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

32.a=14a=14解析:在“逗號表達式(表達式1,表達式2)”中,其運算方法是先求表達式1的值,然后求表達式2的值,整個逗號表達式的值是表達式2的值。首先3*5=15,a=10,a+4=14,最后輸出的運算結果為14。

33.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因為fun函數(shù)中變量a為static類型,所以每次調用完于函數(shù)之后,變量a所做的改變都要保存。

34.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調用關系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據。

35.&s1&s2

36.234562,3,4,5,6解析:函數(shù)prt(a,5)的功能是使得a數(shù)組中,從a[0]~a[4]中元素均增1。

37.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結束標志。因此,只輸出前五個字符,即Hello。

38.2424解析:本題考查函數(shù)的循環(huán)調用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1-24。

39.*t++*t++解析:要使sstrcpy函數(shù)實現(xiàn)字符串復制,必須將t字符串中的每個字符逐個復制到s字符串中,可以使用*s=*t;s++;t++,也可以寫成*s++=*t++,因此空格處填*t++。

40.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達式是(y%2)==0。

41.C解析:a數(shù)組存放的是字符串,系統(tǒng)會自動在字符串的最后加上一個'\\0',所以a數(shù)組的長度為4,而b數(shù)組的長度為3,故a數(shù)組長度大于b數(shù)組長度。

42.C

43.D解析:在C語言中,函數(shù)參數(shù)的默認傳遞方式是傳值,即函數(shù)內部的形參只是調用時的實參的一個拷貝,改變形參,實參不會被改變.如果想要實現(xiàn)傳址調用只能使用傳遞指針的方式來實現(xiàn).利用指針作函數(shù)的參數(shù)時,無論形參指針還是實參指針所指的都是同一個內存地址,所以形參如果改變了這個地址中的內容,也就是改變了實參所指的地址內容.本題程序開頭定義了一個函數(shù)f(),在函數(shù)中用一個臨時變量t交換了兩個指針參數(shù)所指的地址內容,所以該函數(shù)的作用就是交換兩個參數(shù)所指的內容。在主函數(shù)中,首先定義了一個int型數(shù)組a,并定義了兩個int型指針p、q分別指向數(shù)組a的第一個元素和最后一個元素。然后使用一個while循環(huán)調用函數(shù)f()不斷交換兩個指針所指的內容,每次交換后p往后移動一個元素,q往前移動一個元素,直到q不再大于p,即直到兩個指針在數(shù)組a的中間相遇為止。所以,程序最終運行的結果是數(shù)組a中的所有元素全被反序排列一次。故應該選擇選項D。

44.A解析:本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用“留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,每走到一個字符都判斷其是否為空格,若不是空格(注意在if()的單引號之間有一個空格),則將其保存str[j]中。注意j的下標變化、初值及最后加串結束符'\\0'。

45.B

46.D解析:D中的操作將會丟失r后面的鏈表結構,不能保持鏈表的連續(xù)。

47.C解析:該題目的關鍵是要搞清楚“&&”和“‖”兩個邏輯運算符的運算功能。運算符“&&”和“‖”是雙目運算符,要求有兩個運算量。且規(guī)定邏輯與運算中,只有前面運算量的值為真時,才需要判別后面的值。只要前面為假,就不必判別后面的值。而邏輯或則為只要前為真,就不必判別后面的值;只有前為假,才判別后。本題中j++值為真,不進行k++的運算,所以k的值保持不變。

48.A解析:a=7^3=00000111^00000011=00000100=4;b=~4&3=~00000100&00000011=11111011&00000011=00000011=3

49.C解析:考查C語言標識符。C語言合法標識符的命名規(guī)則是:標識符只能由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線。因為選項C)中的標識符的第一個字符為'&',所以C)為本題的正確答案。

50.D解析:本題考查逗號表達式。逗號表達式的形式為:表達式1,表達式2,其求解過程為:先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2的值。

51.C解析:本題主要考查的知識點是聯(lián)合體的內存使用。聯(lián)合體所占用的內存空間為最長的成員所占用的空間,各個成員分量全部是從低地址方向開始使用內存單元。不能在定義共用體變量時對它初始化。

52.B解析:數(shù)據庫管理系統(tǒng)是數(shù)據庫系統(tǒng)的核心,是負責數(shù)據庫的建立、使用和維護的軟件。數(shù)據庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數(shù)據庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據庫命令以及應用程序的執(zhí)行,最終都必須通過數(shù)據庫管理系統(tǒng)。另外,數(shù)據庫管理系統(tǒng)還承擔著數(shù)據庫的安全保護工作,按照數(shù)據庫管理員所規(guī)定的要求,保證數(shù)據庫的完整性和安全性。

53.D解析:在C語言中,定義一維數(shù)組的語句一般形式如下:

類型名數(shù)組名[常量表達式];

一維數(shù)組的引用形式為:數(shù)組名[下標表達式]。count表示能被2整除或被5整除的個數(shù),i則計算有多少個數(shù)組元素。

54.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數(shù)與自身按位與,結果仍為此數(shù),不發(fā)生變化。

55.D解析:選項D中有兩條語句。

56.B解析:在C程序中,字符量可參與任何整數(shù)運算。字符參與運算時,首先要將字符轉換為對應的ASCII碼值再參與整數(shù)運算。字符'1'對應的ASCII碼值是49,字符'0'對應的ASCII碼值是48,字符'\\0'是字符串結束標識符NULL,其對應的ASCII碼值是0。

57.C解析:當for循環(huán)執(zhí)行到第30次時,i的值為30能被5整除,然后繼續(xù)執(zhí)行兩次if語句,i經過兩次自加1運算,值變?yōu)?2,能被8整除,故此時第一次執(zhí)行“printf('%d',i);”語句,即輸出32。

58.C解析:本題考核的知識點是關系運算和邏輯運算的混合應用。選項A用了一個絕對值函數(shù)abs(),故選項A正確:選項B中用了一個“&&”邏輯與,故選項B正確:選項C中,“||”左邊的式子如為真,將不再判斷其后的表達式的值,故選項C不正確;選項D為本題中數(shù)學關系式的一個等價命題,故選項D正確.所以,4個選項中選項C符合題意。

59.A

60.C解析:在函數(shù)外面定義的變量a是全局變量,其作用范圍從定義該變量的位置開始到本文件的結束;在f函數(shù)中的if子句(復合語句)和else子句中定義的變量a是局部變量,其作用范圍只在其所在的復合語句內;在f函數(shù)中定義的第一個變量a是靜態(tài)局部變量,其作用范圍只限于函數(shù)f內部,無論被調用多少次都只初始化一次,并且保留上次函數(shù)調用結束時的值,該變量不對復合語句產生作用,所以,f函數(shù)的返回值是這個a變量和t值相加的結果。

61.Dfun函數(shù)的功能是對數(shù)組a[]的元素從大到小進行排序。

62.D

63.A本題主要考查按位求反運算和C語言正負數(shù)的表示,“O”代表正數(shù),“1”代表負數(shù);x=7的二進制為00111,第一個0代表正數(shù),~x為11000,第一個l代表負數(shù),值為8。

64.D

65.B解析:如果一個非空的數(shù)據結構滿足以下兩個條件:(l)有且只有一個根結點;(2)每個結點最多有一個前件,也最多有一個后件。則稱該數(shù)據結構為線性結構。如果一個數(shù)據結構不是線性結構,則稱之為非線性結構,故A項錯誤。有一個根結點的數(shù)據結構不一定是線性結構,如二叉樹,B項說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項錯誤。

66.C

67.A解析:本題考核模塊獨立性的評價。評

溫馨提示

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

評論

0/150

提交評論