2021年江西省萍鄉(xiāng)市全國計算機等級考試C語言程序設計_第1頁
2021年江西省萍鄉(xiāng)市全國計算機等級考試C語言程序設計_第2頁
2021年江西省萍鄉(xiāng)市全國計算機等級考試C語言程序設計_第3頁
2021年江西省萍鄉(xiāng)市全國計算機等級考試C語言程序設計_第4頁
2021年江西省萍鄉(xiāng)市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年江西省萍鄉(xiāng)市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.算法應該是()

A.程序B.問題求解步驟的描述C.要滿足五個基本特性D.B和C

2.一個算法的語句執(zhí)行次數為(2n2+2nlog2n+4n-7),則其時間復雜度為()。

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

3.執(zhí)行下面程序中的輸出語句后,輸出結果是()。A.65B.20C.15D.10

4.以下敘述中正確的是A.局部變量說明為static存儲數,其生存期將得到延長

B.全局變量說明為static存儲類,其作用域將被擴大

C.任何存儲類的變量在未賦初值時,其值都是不確定的

D.形參可以使用的存儲類說明符與局部變量完全相同

5.每次從無序表中取出一個元素,把它插入到有序表中的適當位置,此種排序方法叫做()排序。

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

6.下列程序段中完全正確的是()。A.int*p;scanf(“%d”,&p);

B.int*p;scanf(“%d”,p);

C.intk,*p=&k;scanf(“%d”,p);

D.intk,*p;*p=&k;scanf(“%d”,p);

7.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結束條件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

8.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價的循環(huán)語句是()。A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

9.鏈表不具備的特點是()。

A.可隨機訪問任一結點B.插入刪除不需要移動元素C.不必事先估計存儲空間D.所需空間與其長度成正比

10.數據字典(DD)所定義的對象都包含于()。

A.軟件結構圖B.方框圖C.數據流圖(DFD圖)D.程序流程圖

11.以下不能作為合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

12.

13.鏈表不具有的特點是A.A.不必事先估計存儲空間

B.可隨機訪問任一元素

C.插入和刪除不需要移動元素

D.所需空間與線性表長度成正比

14.任何一棵二叉樹的葉子結點在前序、中序和后序遍歷序列中的相對次序()。

A.不發(fā)生改變B.發(fā)生改變C.不能確定D.以上都不對

15.

16.下列說法不正確的是()。

A.圖的遍歷是從給定的源點出發(fā)每一個頂點僅被訪問一次

B.圖的深度遍歷不適用于有向圖

C.遍歷的基本算法有兩種:深度遍歷和廣度遍歷

D.圖的深度遍歷是一個遞歸過程

17.下述程序向文件輸出的結果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TESY","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進制文件而不可讀

18.使用下列二維圖形變換矩陣A=a*T,,其中,a是行向量(xy1),是齊次坐標形式的二維點。給定的變換矩陣T如下所示,則將產生的變換結果為()A.圖形放大2倍

B.圖形放大2倍,同時沿X、Y坐標軸方向各移動一個單位

C.沿X坐標軸方向各移動2個單位

D.沿X坐標軸放大2倍,同時沿X、Y坐標軸方向各移動一個單位

19.若有定義“doublea;floatb;shortc;”,若想把1.2賦給變量a,3.4賦給變量b,5678賦給變量c,程序運行時鍵盤輸入:1.23.45678<回車>則以下正確的讀入語句是()。A.scanf("%If%If%d",&a,&b,&c);

B.scanf("%If%If%hd",&a,&b,&c);

C.scanf("%If%f%hd",&a,&b,&c);

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

20.有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}程序執(zhí)行后的輸出結果是()。A.7B.3C.2D.0

二、2.填空題(20題)21.一張3.5英寸軟盤大約能存儲140萬個ASCⅡ字符,若存放漢字大約能存放【】個。

22.在軟件維護時,對測試階段未發(fā)現的錯誤進行測試、診斷、定位、糾錯直至回歸測試的過程稱為【】。

23.軟磁盤最外邊的磁道數是【】號磁道。

24.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數為【】。

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

main()

charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

printf("%d%f\n",n,x);

26.下面程序的運行結果是:【】。

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

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

st=(char*)【】;

28.算法的復雜度主要包括時間復雜度和______復雜度。

29.軟件測試的方法有動態(tài)測試、靜態(tài)測試和【】13種。

30.下面程序用來輸出結構體變量a所占存儲單元的字節(jié)數,請?zhí)羁铡?/p>

main()

{structstu

{charx[20];floaty;}a;

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

}

31.有以下語句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>

n1=10

n2=20

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

main()

{intm=011,n=11;

printf("%d%d\ff",++m,n++);

}

33.下面的程序實現字符串的復制。

voidcopy_string(from,to)

【】;

{for(;*from;from++,to++)

*to=*from;

【】;

}

main()

{char*a="Iamwang",*b="youareLi";

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

【】;

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

}

34.有以下程序:

#include<stdio.h>

main()

{charc;

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

}

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

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

36.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。

37.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯系屬于【】的聯系。

38.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數strcmp(s1,s2)后,結果是______。

39.設有下列程序:

#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>,則程序的輸出結果是______。

40.在關系數據庫中把數據表示成二維表,每一個二維表稱為【】。

三、1.選擇題(20題)41.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

42.以下程序的輸出結果是()main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1,k<3;k++)printf("%s\n",w[k]);}

A.ABCDFGHKL

B.ABCEFGIJM

C.EFGJKO

D.EFGHIJKL

43.若有下列定義,則對a數組元素地址的正確引用是()。inta[5],*p=a;

A.p+5B.a+1C.&a+1D.&a[0]

44.若有定義和語句:intw[2][3],(*pw)[3];pw=w;則對w數組元素的非法引用是()

A.*(w[0]+2)B.*(pw+1)[2]C.pw[0][0]D.*(pw[1]+2)

45.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運行后的輸出結果是

A.2B.3C.43D.44

46.下列定義變量的語句中錯誤的是()。

A.int_int;B.doubleint_;C.charfor;D.floatUS$

47.C語言中,組成數據文件的成分是()。A.A.記錄

B.數據行

C.數據塊

D.字符(字節(jié))序列

48.設有如下程序#inclide<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n,"**k);}上述程序的輸出結果是______。

A.運行錯誤B.100C.i的地址D.j的地址

49.以下程序試圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符串#號時結束輸入和輸出操作,但程序有錯#include<stdio.h>main(){FILE*fout;charch;fout=fopen('abc.txt','w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,four);ch=fgetc(stdin);}fclose(fout);}出錯的原因是______。

A.函數fopen調用形式錯誤B.輸入文件沒有關閉C.函數fgetc調用形式錯誤D.文件指針stdin沒有定義

50.已有定義inta=-2;和輸出語句printf("%81x",a);以下正確的敘述是()。

A.整型變量的輸出形式只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類型的數據

C.%x是格式符的一種,其變量的值按十六進制輸出,但%81x是錯誤的

D.%81x不是錯誤的格式符,其中數字8規(guī)定了輸出字段的寬度

51.設有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是

A.PER是結構體變量名

B.PER是結構體類型名

C.typedefstruct是結構體類型

D.struct是結構體類型名

52.沒有程序段:intk=10;while(k=0)k=k-1;則下面描述中正確的是()。

A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

53.一個良好的算法由下面的基本結構組成,但不包括______。

A.順序結構B.選擇結構C.循環(huán)結構D.跳轉結構

54.在執(zhí)行完下列的C語句段之后,則B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));

A.0B.1C.TRUED.FALSE

55.有以下程序:voidfun(char*a,char*B);{a=b;(*A)++;}main(){charc1='A',c2='a',*p1,*p2;p1=&cl;p2=&c2:fun(p1,p2);printf("%c%c\n",c1,c2);}程序運行后的輸出結果是

A.AbB.aaC.AaD.Bb

56.有以下程序main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);程序運行后的輸出結果是

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

57.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間

58.已有定義int(*p)(),指針p可以

A.代表函數的返回值B.指向函數的入口地址C.表示函數的類型D.表示函數返回值的類型

59.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結果是

A.987B.876C.8765D.9876

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

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

四、選擇題(20題)61.若變量c為char類型,能正確判斷出c為小寫字母的表達式是_______。A.′a′<=c<=′z′

B.(c>=′a′)||(c<=′z′)

C.(′a′=C)

D.(c>=′a′)&&(c<=′z′)

62.設x,y和z都是int型變量,且x=3,y=4,z=5,則下列表達式中,值為0的表達式是

A.x&&yB.x<=y

C.x||++y&&y-zD.!(x<y&&!z||1)

63.

64.數據庫應用系統(tǒng)中的核心問題是()。

A.數據庫設計B.數據庫系統(tǒng)設計C.數據庫維護D.數據庫管理員培訓

65.

66.下列關于Internet和Web的說法中,正確的是()。

A.Web就是Internet的別稱

B.Web是基于Internet之上的一個應用服務

C.Internet是基于Web之上的一個信息系統(tǒng)

D.Internet與Web沒有任何關系

67.下列字符數組初始化語句中,不正確的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d');

D.charc[]={"ffgoodmorning"};

68.

69.

有以下程序:

voidfun(char*a,char*b)

{a=b;(*a)++;}

main

{charc1=A,c2=a,*p1,*p2;

p1=&c1;p2=*c2;fun(p1,p2);

printf("%C%c\n",c1,c2);

}

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

A.AbB.aaC.AaD.Bb

70.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀入數據的程序段是()。A.A.*p=&a;scanf("%1f”,p);

B.*p=&a;scanf("%f",p);

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

D.p=&a;scanf("%1f",p);

71.下列定義數組的語句中,正確的是()。

A.intN=10;intx[N]:

B.#defineNl0;intx[N];

C.intx[0..10];

D.intx[];

72.以下關于簡單程序設計的步驟和順序的說法中正確的是()。

A.確定算法后,整理并寫出文檔,最后進行編碼和上機調試

B.首先確定數據結構,然后確定算法,再編碼,并上機調試,最后整理文檔

C.先編碼和上機調試,在編碼過程中確定算法和數據結構,最后整理文檔

D.先寫好文檔,再根據文檔進行編碼和上機調試,最后確定算法和數據結構

73.有以下程序:

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

A.321B.12300C.1D.123

74.有三個關系R,S和T如下:

其中關系T由關系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并

75.以下選項中不能用作C程序合法常量的是()。

76.以下程序段中的變量已正確定義。

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

for(k=1;k<;3;k++);prinff(”*”);該程序段的輸出結果是()。

A.*B.****C.**D.********

77.有下列程序:

intfun(intn)

{if(n==1))returnl;

else

return(n+fun(n-1)):

}

main()

{intx;

seanf("%d",&x);x=fun(x);printf("%d\n",x);

}

執(zhí)行程序時,給變量x輸入l0,程序的輸出結果是()。

A.55

B.54

C.65

D.45

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

A.一個C語言程序只能實現一種算法

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

C.C程序可以由一個或多個函數組成

D.一個c函數可以單獨作為一個C程序文件存在

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

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

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

由關系R和S通過運算得到關系T,則所使用的運算為()。

A.笛卡爾積B.交C.并D.自然連接

五、程序改錯題(1題)81.下列給定程序中,fun()函數的功能是:從整數1~50中,選出能被3整除且有一位上的數是5的數,并把這些數放b所指的數組中,這些數的個數作為函數值返回。規(guī)定,函數中a1放個位數,a2放十位數。

請修改函數中的錯誤,得出正確的結果。

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

試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數fun(),其功能是刪除一個字符串中指定下標的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數組中,n中存放指定的下標。例如,輸入一個字符串“World”,然后輸入3,則調用該函數后的結果為“Word”。注意:部分源程序給出如下。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineLEN20voidfun(chara[],charb[],intn){}voidmain(){ charstr1[LEN],str2[LEN]; intn; system(“CLS”); printf(“Enterthestring:\n”); gets(str1); printf(“Enterthepositionofthestringdeleted:”); scanf(“%d”,&n);fun(str1,str2,n); printf(“Thenewstringis:%s\n”,str2);}

參考答案

1.B

2.A

3.B

4.A解析:全局變量說明為static存儲類,其生命周期將得到延長,但作用域不能被擴大;static存儲類變量在未賦初值時,是有默認值的,形參中的存儲類說明符與局部變量完全相同。

5.A

6.CA選項中,沒有對指針進行初始化,屬于無效指針,并且在“scanf(“%d”,&p);”中無須再進行取地址操作;B選項中,沒有對指針進行初始化,屬于無效指針;D選項中,語句“*p=&k;”書寫錯誤,應為“P=&k;”。故本題答案為C選項。

7.D解析:本題考查的知識點是do-while循環(huán)結構循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點:

先執(zhí)行語句,后判斷表達式。所以,無論一開始表達式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點與while不同,

如果do-while語句循環(huán)體部分是由多個語句組成,則必須用花括號括起來,使其形成復合語句。

C語言中的do—while語句是在表達式“真”時重復執(zhí)行循環(huán)體。

在本題中,循環(huán)執(zhí)行判斷條件為while后面括號里的表達式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項A的意思是:p的值不等于12345并且n的小于3和while后面括號里的表達式等價是循環(huán)執(zhí)行的條件而不是循環(huán)結束的條件,所以選項A不正確;選項B的意思是:p的值等于12345并且n的值大于3,不是循環(huán)結束的條件一個子集,所以選項B不正確;選項C的意思是:p的值不等于12345或者n的值小于3前一半是結束條件的子集,后一部分不是結束條件,所以選項C不正確;選項D描述的意思是:p的值等于12345或者你的大于等于3是結束條件的子集,所以選項D滿足題意。所以4個選項中D正確。

8.C當循環(huán)結束時,w的值應為-1,而其他選項中w的值為0,故選擇c選項。

9.A

10.C數據字典(DD)是指對數據的數據項、數據結構、數據流、數據存儲、處理邏輯、外部實體等進行定義和描述,其目的是對數據流程圖中的各個元素做出詳細的說明。

11.A字符常量是使用單引號標注的單個字符,選項A錯誤;選項B屬于浮點數常量,正確;選項C屬于轉義字符常量,正確;選項D屬于轉義字符,代表八進制數011的ASCII值的字符,正確。本題答案為A選項。

12.D

13.B鏈表是一種特殊的線性表,鏈表的存儲結構與順序存儲結構不同,它的存儲區(qū)域可以是任意的存儲單元,對存儲系統(tǒng)中零碎的存儲部分具有更好的應用,在給其分配存儲單元時,不必事先估計整個存儲單元的空間大?。挥捎阪湵淼脑厥峭ㄟ^指針域的指針相連的,用鏈表存儲數據時,對其進行插入和刪除操作時,不需要移動其他元素,只需改變其直接前驅指針域,使其指向該結點,并將該結點的指針域修改為指向其直接后繼結點即可。當然,不管是鏈表還是順序存儲,所需空間與線性表長度都成正比。在鏈式存儲的鏈表結構中,由于后一結點數據被存儲在哪里,只有通過前一結點的指針域才知道,因此,訪問時只能是逐個訪問,而不能實現隨機訪問。

14.A

15.B

16.C

17.C解析:fprintf函數工作時,多個數據間不會自珈口分隔符,選項A錯誤;浮點數的輸出格式是“%5.0f”表明其小數部分輸出0位,即沒有輸出,所以選項B也是錯誤的。

18.D

19.Cscanf函數用于輸入數據。第1個參數表示輸入格式控制。本題變量a是double類型,使用格式控制符%If;變量b是float類型,使用%If;變量c是short類型,使用%hd,選項C正確。本題答案為C選項。

20.C在函數funlintx)中,有個if語句判斷,如果參數x等于0或1時,返回值,否則進入下面的p=x-fun(x-2)遞歸函數。當在主函勢中調用fun(7)時,其過程為:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的輸出結果為2。

21.70萬70萬

22.校正性維護校正性維護

23.0

24.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數為E=1/(n+1)(n-i+1)=n/2。

25.220.0或220或220.或220.000000220.0或220或220.或220.000000解析:所有的賦值運算符的優(yōu)先級都相同,它們的結合性為從右至左,它們返回的表達式值為賦給變量的值.所以,語句x=f*=n/=(c=50):→x=f*=n/=50;→x=f*=2;(n的值變成2)→x=20;。故最終輸出的結果應該是:220.000000

26.1111解析:此題涉及函數的調用和if語句。程序先執(zhí)行第二個if語句,然后再執(zhí)行第一個if語句,最后用return返回數值。

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

28.空間空間解析:算法的復雜度主要包括時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內存空間。

29.正確性測試正確性測試

30.dd解析:d被定義為一個結構體類型變量,求結構體變量a所占存儲單元的字節(jié)數即sizeof(d)。

31.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數有兩種參數:格式控制參數和輸出項參數,其中格式控制參數由兩種成分組成:格式說明和普通字符,普通字符將被簡單地復制顯示,格式說明項將引起一個輸出參數項的轉換與顯示,它是由“%”引出并以一個類型描述符結束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數,所以格式說明項為%d,也可以在%與d之間加上域寬,另外還要在每行輸出結束時加轉義字符\\n進行換行。所以,應填寫n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。

32.10111011解析:賦值表達式m=011中的常數011為八進制,++m后以十進制數格式“%d”輸出為10。

33.char*from*to*to='\0'copy_string(ab)char*from,*to\r\n*to='\\0'\r\ncopy_string(a,b)解析:函數copy_string()用到了形參from,to是指針變量,實參a、b是字符串指針,第一個空格應填形參說明語句“char*from,*to”。當from所指的字符串全部復制給to所指的字符串時,有可能to所指原字符串長度大于from所指字符串長度,即可能to所指串的后面字符仍留在復制后的to所指串中。為避免這種情況,必須在from所指串復制完后,馬上給to所指串加上串結束符。因此,第二個空格應填*to='\\0'。main()函數應調用copy_string()函數,第三個空格應填copy_string(a,b)。

34.XX解析:程序是從鍵盤緩沖區(qū)循環(huán)接收字符,并輸出接收到的字符在ASCII碼表中的前一個字符,直到接收到‘?’為止。

35.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當y能被3整除時輸出表達式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經兩次循環(huán)后,y的值變成0,結束循環(huán)。所以程序輸出852。

36.1919解析:根據二叉樹的性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。本題中度為2的結點數為18,故葉子結點數為18+1=19個。

37.一對多(或1∶N)一對多(或1∶N)解析:兩個實體集間的聯系實際上是實體集間的函數關系,這種函數關系可以有3種,即一對一(1∶1)的聯系、一對多(1∶N)或多對一(N∶1)的聯系和多對多(N∶N)的聯系。

38.-1-1解析:strcmp(s1,s2)函數的作用是:對字符數組s2和字符數組s1進行比較。如果s1<s2,則返回負數;如果s1==s2,則返回0;如果s1>s2,則返回正數。

39.QTHRGQTHRG解析:strcmp(t,s)函數用來比較t和s所指字符串的大小,若t>s,則函數值大于0;若t=s,則函數值等于0;若t<s,則函數值小于0。strcpy(t,s)函數的功能是把字符數組,所指字符串的內容復制到字符數組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í)行下列的語句,將字符數組s所指字符串的內容復制到字符數組t所指的存儲空間中,然后輸出字符數組t。

40.關系或一個關系關系或一個關系解析:在關系數據庫中,把數據表示成二維表,而一個二維表就是一個關系。

41.B解析:一個算法應當具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應該選擇B。

42.D

43.D解析:本題考查如何引用數組元素的地址。

選項A)中,p+5引用的是a[5]的地址,而數組a只有5個元素,即a[0]、a[1],a[2]、a[3]、a[4],所以引用錯誤;選項B)中,*a+1指的是將數組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數組的首地址。

44.B

45.A解析:本題考核的知識點是if-else語句的程序分析。我們首先看程序中if-else的匹配,由于C語言中規(guī)定else總是與最近的if搭配,因此程序中else與第二個訂搭配,即該if-else語句為第一個if語句的執(zhí)行部分,接著判斷第一個if后面括號里的表達式的值“a>b”為假('3>4'為假),因此不執(zhí)行后面if-else語句,程序將執(zhí)行下面的輸出語句輸出d,而d一直未被改變故為原來的值2,所以,4個選項中選項A符合題意。

46.D解析:$不能用做變量名,合法的標識符由字母、數字和下畫線組成。

47.D解析:C語言中的文件是流式文件。流式文件是一種無結構文件,即整個文件是一串字符流或二進制流。文件的存取以字符或字節(jié)為單位。

48.B解析:j=&i,j的值就是i的地址,*j=100,將j的地址賦給k,這時*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結果應當為100。

49.A解析:本題考查的是文件的打開函數fopen(),其調用方式通常為FLIE*fp;fp=fopen(文件名,使用文件方式);,如:fp=fopen('abc.txt','w');表示要打開名字為abc.txt的文件,使用文件方式寫入。fopen函數帶回指向abc.txt文件的指針并賦給fp,即fp指向文件abc.txt。

50.D解析:整型變量的輸出形式有:%d,%o,%x,%u等,%x是以十六進制無符號形式輸出整數。十六進制數同樣也可以像%md一樣按%mlx輸出指定寬度的長整型數。

51.B解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。

52.C解析:本題的while語句是將0賦給k,表達式的值為0,沒有執(zhí)行循環(huán)體語句。

53.D解析:1966年,Bohra和Jacopini提出了以下三種結構,用這三咱基本結構作為表示一個良好算法的基本單元:1、順序結構;2、選擇結構;3、循環(huán)結構。

54.B解析:本題考查C語言3個知識點:①將一個字符賦給一個字符變量時,并不是將該字符本身存儲到內存中,而是將該字符對應的ASCII碼存儲到內存單元中;②大寫字母的ASCII碼值小于其對應小寫字母的ASCII碼值;③只要邏輯與運算符&&的兩個運算對象都為非零,返回值就是1。

55.A解析:經過分析得知fun()函數的功能:將形參9指向形參b所指的存儲空間,然后使形參a指向變量的值加1。在主函數中定義了字符型指針變量p1和p2,并讓它們分另別指向c1和c2.然后將p1、p2作為實參傳遞給形參a、b.在fun()函數中,首先讓指針變量p1向p2,然后p1指向的存儲空間的值加1,即讓變量c2加1為“b”,而c1的值沒有被改變,仍然是“A”。所以,4個選項中選項A符合題意。

56.D解析:本題考查的是switch語句。switch語句中的case或default只是一種入口標號,它并不形成一種子句的概念。當滿足其中某個標號的條件而進入switch語句中時,如果沒碰到break語句,將一直執(zhí)行到switch語句的結尾。題目中使用了一個while循環(huán)使k從5遞減到1,當k=5或4的時候從default標號進入switch,碰到break;語句立即跳出,沒有改變n:當k=3時,執(zhí)行了一次n+=k;;k=2時,也執(zhí)行了一次n+=k;k=1時,執(zhí)行了兩次n+=k;所以最終n的值為3+2+1+1=7。故應該選擇D。

57.D【解析】算法的空間復雜度是指執(zhí)行這個算法所需要的內存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數據所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數據結構所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數,則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術,以便盡量減少不必要的額外空間。

58.B解析:此題考查了函數指針的概念,函數指針是定義一個指針指向函數的入口地址,可用這個指針來調用函數。

59.B解析:該題目應該根據循環(huán)體第一次和最后一次執(zhí)行時的輸出結果來決定哪一項是正確的。第一次進入循環(huán)時,n的值是9,循環(huán)體內,先經過n--運算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時,n的值應該為7,所以最后一次執(zhí)行循環(huán)時,輸出為6,由此可以排除選項C)。

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

61.D

62.D在本題中,定義了三個整型變量x,y,z,并分別賦初值為3,4,5。然后求結果為0的表達式。

選項A中的表達式x&&y,由于在C語言中,有非0即真的定義,即變量x,y的值都不為0,因此表達式的結果不為0。

選項B中的表達式x<=y,由于變量y的值比變量x的值大,因此,該表達式的結果也不為0。

選項C中的表達式x||++y&&y-z,由于運算符&&的優(yōu)先級較||高,那么本表達式等價于x||(++y&&y-z),在表達式中,首先運算++y,將變量y的值變?yōu)?,然后執(zhí)行y-z,得到結果為0,因此,(++y&&y-z)的運算結果為0,但x為非0值,最終的結果不為0。

選項D中的表達式!(x<y&&!z||1),首先運算!z,結果為0,由此可知x<y&&!z的結果為0,但由于||運算符后有一個1,因此,(x<y&&!z||1)部分的結果為1,而再進行邏輯非運算結果為0。

63.D

64.A數據庫應用系統(tǒng)中的核心問題是數據庫的設計。故答案為A選項。

65.D

66.B

67.A本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②℃語言中沒有字符串變量,只能用字符數組來存儲字符串。

68.C

69.A

\n函數fun的作用是將指針a指向指針b的內容,然后將該內容加1。執(zhí)行語句“fun(p1,p2);”后,pl和p2指向的地址并未改變,只是將p2指向的存儲單元的值增加l。所以,答案是A。

\n

70.Ddouble*p,a定義了一個指向雙精度型的指針變量P和雙精度型變量a,p=&a表示將變量a的地址賦給指針變量p;scanf("%If",p)表示用鍵盤輸入的數賦給指針變量P所指向的地址單元中,scanf函數要求在輸入double型數據,格式控制符必須用%1f。否則,數據不能正確輸入。所以選項D正確。

71.D選項A、B中n為變量,C語言中不允許動態(tài)定義數組維數,即維數不能是變量。選項C無此語法。

72.B\n選項C和D可直接排除,程序是數據結構和算法的組合體,所以是先選擇數據結構,然后繼而選擇相對應的算法,編碼并上機調試,最后整理文檔。

\n

73.D程序首先將數組a[10]中的元素l、2.3分別寫入了文件dl。dat文件中,然后又將dl.dat文件中的數據123,整體寫入到了變量n的空間中,所以打印n時輸出的數據為123。

74.D

75.A整數不能用逗號隔開,所以A)錯誤。

76.Ac語言約定分號為一條語句的結束。因此for(i=0;i<4;i++,i++)for(k=1;k<3;k++);是完整的語句,對研nd();沒有任何影響,最后一nff(”·’),執(zhí)行一次。因此答案為A選項。

77.A\n本題在函數intfun(intn)的定義中又出現了對函數fun的調用,所以函數fun是遞歸函數。因而在主函數中調用x=fun(x)時,當輸入10賦給變量X時,遞歸調用的過程為

\nfun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)

\n=10+9++8+7+fun(6)=10+9++8+7+6+fun(6)

\n=10+9++8+7+6+5+fun(4)

\n=10+9++8+7+6+5+4+fun(3)

\n=10+9++8+7+6+5+4+3+fun(2)

\n=10+9++8+7+6+5+4+3+2+fun(1)

\n=10+9++8+7+6+5+4+3+2=55

\n

78.A答案A

解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數,所以一個C語言程序可以實現多種算法。

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

80.D解析:笛卡爾積:設關系R和S的元數分別是r和s,定義R和S的笛卡爾積是一個(r+s)元元組的集合,每一個元組的前r個分量來自R的一個元組,后s個分量來自S的一個元組。若R有k1個元組,s有k2個元組,則關系R和關系S的廣義笛卡爾積有k1×k2個元組。交:設關系R和關系S具有相同的目n,且相應的屬性取自同一個域,則關系R與關系S的交由屬于R又屬于S的所有元組組成。并:設關系R和關系S具有相同的目n(即兩個關系都有n個屬性),且相應的屬性取自同一個域,則關系R與關系S的并由屬于R或屬于S的元組組成。自然連接:是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須有相同的屬性組,并且要將結果中重復的屬性去掉。

81.

【解析】(1)根據題目中要求,第一個標識下fun()函數的定義為“intfun(int*b);”。在C語言中規(guī)定,函數的定義格式,不應以分號結束,所以應把末尾分號去掉。

(2)題干中要求在1~50之間選出符合條件的整數,循環(huán)條件表達式的起始應當是j=1,而不是j=10,所以第二個標識下應改為“for(j=1;j<=50;j++)”。

(3)變量i是標識數組b的下標,也就是數組的個數。題目“returnj”返回的是循環(huán)條件表達式中的變量,所以這里應改為“returni”。

82.voidfun(chara[],charb[],intn){ inti,k=0; for(i=0;a[i]!=‘\0’;i++) if(i!=n) /*將不是指定下標的字符存入數組b中*/ b[k++]=a[i]; b[k]=‘\0’; /*在字符串最后加上字符串結束標志*/}本題要求刪除字符串中指定下標的字符,即把非指定下標的字符保留。所以if語句條件表達式為“i!=n”。字符串最后不要忘記加上字符串結束標志‘\\0’。2021年江西省萍鄉(xiāng)市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.算法應該是()

A.程序B.問題求解步驟的描述C.要滿足五個基本特性D.B和C

2.一個算法的語句執(zhí)行次數為(2n2+2nlog2n+4n-7),則其時間復雜度為()。

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

3.執(zhí)行下面程序中的輸出語句后,輸出結果是()。A.65B.20C.15D.10

4.以下敘述中正確的是A.局部變量說明為static存儲數,其生存期將得到延長

B.全局變量說明為static存儲類,其作用域將被擴大

C.任何存儲類的變量在未賦初值時,其值都是不確定的

D.形參可以使用的存儲類說明符與局部變量完全相同

5.每次從無序表中取出一個元素,把它插入到有序表中的適當位置,此種排序方法叫做()排序。

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

6.下列程序段中完全正確的是()。A.int*p;scanf(“%d”,&p);

B.int*p;scanf(“%d”,p);

C.intk,*p=&k;scanf(“%d”,p);

D.intk,*p;*p=&k;scanf(“%d”,p);

7.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結束條件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

8.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價的循環(huán)語句是()。A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

9.鏈表不具備的特點是()。

A.可隨機訪問任一結點B.插入刪除不需要移動元素C.不必事先估計存儲空間D.所需空間與其長度成正比

10.數據字典(DD)所定義的對象都包含于()。

A.軟件結構圖B.方框圖C.數據流圖(DFD圖)D.程序流程圖

11.以下不能作為合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

12.

13.鏈表不具有的特點是A.A.不必事先估計存儲空間

B.可隨機訪問任一元素

C.插入和刪除不需要移動元素

D.所需空間與線性表長度成正比

14.任何一棵二叉樹的葉子結點在前序、中序和后序遍歷序列中的相對次序()。

A.不發(fā)生改變B.發(fā)生改變C.不能確定D.以上都不對

15.

16.下列說法不正確的是()。

A.圖的遍歷是從給定的源點出發(fā)每一個頂點僅被訪問一次

B.圖的深度遍歷不適用于有向圖

C.遍歷的基本算法有兩種:深度遍歷和廣度遍歷

D.圖的深度遍歷是一個遞歸過程

17.下述程序向文件輸出的結果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TESY","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進制文件而不可讀

18.使用下列二維圖形變換矩陣A=a*T,,其中,a是行向量(xy1),是齊次坐標形式的二維點。給定的變換矩陣T如下所示,則將產生的變換結果為()A.圖形放大2倍

B.圖形放大2倍,同時沿X、Y坐標軸方向各移動一個單位

C.沿X坐標軸方向各移動2個單位

D.沿X坐標軸放大2倍,同時沿X、Y坐標軸方向各移動一個單位

19.若有定義“doublea;floatb;shortc;”,若想把1.2賦給變量a,3.4賦給變量b,5678賦給變量c,程序運行時鍵盤輸入:1.23.45678<回車>則以下正確的讀入語句是()。A.scanf("%If%If%d",&a,&b,&c);

B.scanf("%If%If%hd",&a,&b,&c);

C.scanf("%If%f%hd",&a,&b,&c);

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

20.有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}程序執(zhí)行后的輸出結果是()。A.7B.3C.2D.0

二、2.填空題(20題)21.一張3.5英寸軟盤大約能存儲140萬個ASCⅡ字符,若存放漢字大約能存放【】個。

22.在軟件維護時,對測試階段未發(fā)現的錯誤進行測試、診斷、定位、糾錯直至回歸測試的過程稱為【】。

23.軟磁盤最外邊的磁道數是【】號磁道。

24.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數為【】。

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

main()

charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

printf("%d%f\n",n,x);

26.下面程序的運行結果是:【】。

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

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

st=(char*)【】;

28.算法的復雜度主要包括時間復雜度和______復雜度。

29.軟件測試的方法有動態(tài)測試、靜態(tài)測試和【】13種。

30.下面程序用來輸出結構體變量a所占存儲單元的字節(jié)數,請?zhí)羁铡?/p>

main()

{structstu

{charx[20];floaty;}a;

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

}

31.有以下語句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>

n1=10

n2=20

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

main()

{intm=011,n=11;

printf("%d%d\ff",++m,n++);

}

33.下面的程序實現字符串的復制。

voidcopy_string(from,to)

【】;

{for(;*from;from++,to++)

*to=*from;

【】;

}

main()

{char*a="Iamwang",*b="youareLi";

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

【】;

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

}

34.有以下程序:

#include<stdio.h>

main()

{charc;

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

}

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

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

36.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。

37.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯系屬于【】的聯系。

38.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數strcmp(s1,s2)后,結果是______。

39.設有下列程序:

#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>,則程序的輸出結果是______。

40.在關系數據庫中把數據表示成二維表,每一個二維表稱為【】。

三、1.選擇題(20題)41.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

42.以下程序的輸出結果是()main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1,k<3;k++)printf("%s\n",w[k]);}

A.ABCDFGHKL

B.ABCEFGIJM

C.EFGJKO

D.EFGHIJKL

43.若有下列定義,則對a數組元素地址的正確引用是()。inta[5],*p=a;

A.p+5B.a+1C.&a+1D.&a[0]

44.若有定義和語句:intw[2][3],(*pw)[3];pw=w;則對w數組元素的非法引用是()

A.*(w[0]+2)B.*(pw+1)[2]C.pw[0][0]D.*(pw[1]+2)

45.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運行后的輸出結果是

A.2B.3C.43D.44

46.下列定義變量的語句中錯誤的是()。

A.int_int;B.doubleint_;C.charfor;D.floatUS$

47.C語言中,組成數據文件的成分是()。A.A.記錄

B.數據行

C.數據塊

D.字符(字節(jié))序列

48.設有如下程序#inclide<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n,"**k);}上述程序的輸出結果是______。

A.運行錯誤B.100C.i的地址D.j的地址

49.以下程序試圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符串#號時結束輸入和輸出操作,但程序有錯#include<stdio.h>main(){FILE*fout;charch;fout=fopen('abc.txt','w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,four);ch=fgetc(stdin);}fclose(fout);}出錯的原因是______。

A.函數fopen調用形式錯誤B.輸入文件沒有關閉C.函數fgetc調用形式錯誤D.文件指針stdin沒有定義

50.已有定義inta=-2;和輸出語句printf("%81x",a);以下正確的敘述是()。

A.整型變量的輸出形式只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類型的數據

C.%x是格式符的一種,其變量的值按十六進制輸出,但%81x是錯誤的

D.%81x不是錯誤的格式符,其中數字8規(guī)定了輸出字段的寬度

51.設有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是

A.PER是結構體變量名

B.PER是結構體類型名

C.typedefstruct是結構體類型

D.struct是結構體類型名

52.沒有程序段:intk=10;while(k=0)k=k-1;則下面描述中正確的是()。

A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

53.一個良好的算法由下面的基本結構組成,但不包括______。

A.順序結構B.選擇結構C.循環(huán)結構D.跳轉結構

54.在執(zhí)行完下列的C語句段之后,則B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));

A.0B.1C.TRUED.FALSE

55.有以下程序:voidfun(char*a,char*B);{a=b;(*A)++;}main(){charc1='A',c2='a',*p1,*p2;p1=&cl;p2=&c2:fun(p1,p2);printf("%c%c\n",c1,c2);}程序運行后的輸出結果是

A.AbB.aaC.AaD.Bb

56.有以下程序main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);程序運行后的輸出結果是

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

57.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間

58.已有定義int(*p)(),指針p可以

A.代表函數的返回值B.指向函數的入口地址C.表示函數的類型D.表示函數返回值的類型

59.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結果是

A.987B.876C.8765D.9876

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

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

四、選擇題(20題)61.若變量c為char類型,能正確判斷出c為小寫字母的表達式是_______。A.′a′<=c<=′z′

B.(c>=′a′)||(c<=′z′)

C.(′a′=C)

D.(c>=′a′)&&(c<=′z′)

62.設x,y和z都是int型變量,且x=3,y=4,z=5,則下列表達式中,值為0的表達式是

A.x&&yB.x<=y

C.x||++y&&y-zD.!(x<y&&!z||1)

63.

64.數據庫應用系統(tǒng)中的核心問題是()。

A.數據庫設計B.數據庫系統(tǒng)設計C.數據庫維護D.數據庫管理員培訓

65.

66.下列關于Internet和Web的說法中,正確的是()。

A.Web就是Internet的別稱

B.Web是基于Internet之上的一個應用服務

C.Internet是基于Web之上的一個信息系統(tǒng)

D.Internet與Web沒有任何關系

67.下列字符數組初始化語句中,不正確的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d');

D.charc[]={"ffgoodmorning"};

68.

69.

有以下程序:

voidfun(char*a,char*b)

{a=b;(*a)++;}

main

{charc1=A,c2=a,*p1,*p2;

p1=&c1;p2=*c2;fun(p1,p2);

printf("%C%c\n",c1,c2);

}

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

A.AbB.aaC.AaD.Bb

70.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀入數據的程序段是()。A.A.*p=&a;scanf("%1f”,p);

B.*p=&a;scanf("%f",p);

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

D.p=&a;scanf("%1f",p);

71.下列定義數組的語句中,正確的是()。

A.intN=10;intx[N]:

B.#defineNl0;intx[N];

C.intx[0..10];

D.intx[];

72.以下關于簡單程序設計的步驟和順序的說法中正確的是()。

A.確定算法后,整理并寫出文檔,最后進行編碼和上機調試

B.首先確定數據結構,然后確定算法,再編碼,并上機調試,最后整理文檔

C.先編碼和上機調試,在編碼過程中確定算法和數據結構,最后整理文檔

D.先寫好文檔,再根據文檔進行編碼和上機調試,最后確定算法和數據結構

73.有以下程序:

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

A.321B.12300C.1D.123

74.有三個關系R,S和T如下:

其中關系T由關系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并

75.以下選項中不能用作C程序合法常量的是()。

76.以下程序段中的變量已正確定義。

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

for(k=1;k<;3;k++);prinff(”*”);該程序段的輸出結果是()。

A.*B.****C.**D.********

77.有下列程序:

intfun(intn)

{if(n==1))returnl;

else

return(n+fun(n-1)):

}

main()

{intx;

seanf("%d",&x);x=fun(x);printf("%d\n",x);

}

執(zhí)行程序時,給變量x輸入l0,程序的輸出結果是()。

A.55

B.54

C.65

D.45

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

A.一個C語言程序只能實現一種算法

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

C.C程序可以由一個或多個函數組成

D.一個c函數可以單獨作為一個C程序文件存在

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

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

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

由關系R和S通過運算得到關系T,則所使用的運算為()。

A.笛卡爾積B.交C.并D.自然連接

五、程序改錯題(1題)81.下列給定程序中,fun()函數的功能是:從整數1~50中,選出能被3整除且有一位上的數是5的數,并把這些數放b所指的數組中,這些數的個數作為函數值返回。規(guī)定,函數中a1放個位數,a2放十位數。

請修改函數中的錯誤,得出正確的結果。

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

試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數fun(),其功能是刪除一個字符串中指定下標的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數組中,n中存放指定的下標。例如,輸入一個字符串“World”,然后輸入3,則調用該函數后的結果為“Word”。注意:部分源程序給出如下。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineLEN20voidfun(chara[],charb[],intn){}voidmain(){ charstr1[LEN],str2[LEN]; intn; system(“CLS”); printf

溫馨提示

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

評論

0/150

提交評論