2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設計_第1頁
2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設計_第2頁
2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設計_第3頁
2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設計_第4頁
2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩104頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義“doublex,y,*px,*py;”,執(zhí)行了“px=&x;py=&y;”之后,正確的輸入語句是()。

A.scanf(“%lf%le”,px,py);

B.scanf(“%f%f”,&x,&y);

C.scanf(“%f%f”,x,y);

D.scanf(“%lf%lf”,x,y);

2.對于int*pa[5];的描述,()是正確的。

A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素

B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量

C.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針

D.pa[5]表示某數(shù)組的第5個元素的值

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

A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10

4.

5.設q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。

A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);

6.若已知一個棧的入棧序列是1,2,3,......,n,其輸出序列為p1,p2,p3,..,pn,若p1=n-1,則pi可能為()

A.nB.n-iC.n-i+1D.不確定

7.下列關于線性表、棧和隊列的敘述,錯誤的是()。

A.線性表是給定的n(n必須大于零)個元素組成的序列

B.線性表允許在表的任何位置進行插入和刪除操作

C.棧只允許在一端進行插入和刪除操作

D.隊列允許在一端進行插入在另一端進行刪除

8.下列程序段中完全正確的是()。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);

9.以下是if語句的基本形式:

if(表達式.語句

其中“表達式”()。

A.必須是邏輯表達式B.必須是關系表達式C.必須是邏輯表達式或關系表達式D.可以是任意合法的表達式

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

A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時,實參和對應形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量

11.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉(zhuǎn)換為對應小寫字母的語句是()。

A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'

12.以下與數(shù)學表達式“0<x<5且x≠2”不等價的C語言邏輯表達式是()。

A.(0<x<5)&&(x!=2)

B.0<x&&x<5&&x!=2

C.x>0&&x<5&&x!=2

D.(x>0&&x<2)||(x>2&&x<5)

13.

14.算法的時間復雜度是指A.算法的執(zhí)行時間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運算次數(shù)

15.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結構D.程序、數(shù)據(jù)與相關文檔的完整集合

16.有如下程序段:

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B'):

執(zhí)行該程序后,x的值為()。A.A.trueB.falseC.0D.1

17.以下關于return語句的敘述中正確的是()。

A.一個自定義函數(shù)中必須有一條return語句

B.一個白定義函數(shù)中可以根據(jù)不同情況設置多條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調(diào)用處

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

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

B.程序經(jīng)調(diào)試后一般不需要測試

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

D.以上三種說法都不對

19.以下選項中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

20.設變量已正確定義,則以下能正確計算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.填空題(20題)21.若從鍵盤輸入58,則以下程序的輸出結果是【】。

main()

{inta;

scanf(“%d”,&A);

if(a>50)printf(“%d”,A);

if(a>40)printf(“%d”,A);

if(a>30)printf(“%d”,A);

}

22.數(shù)據(jù)庫的邏輯模型設計階段的任務是將______轉(zhuǎn)換成關系模式。

23.軟件工程研究的內(nèi)容主要包括:【】技術和軟件工程管理。

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

main()

charc;intn=100;

floatf=10;doublex;

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

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

25.設一棵完全二叉樹共有500個結點,則在該二叉樹中有【】個葉子結點。

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

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

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

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

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

{

main()

{intaa[3]={1,2.3},s;

s=f(&aa[0],3);

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

}

29.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果。

30.以下程序的功能是建立一個帶有頭結點的單向鏈表,鏈表結點中的數(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();}

31.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細設計屬于______中的一個階段。

32.下列程序的輸出結果是16.00,請?zhí)羁眨?/p>

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

33.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。

34.若有定義:inta=6,b=8,c=14;接著順序執(zhí)行下列語句后,變量c中的值是()。c=(b-=(a-5));a=(c%3)+(a=8);

35.以下程序的功能是:對輸入的一行字符串的數(shù)字字符按它們的字面值累加,輸出此累加和。例如,輸入一行字符是:ab34dh8u,輸出值應當是15。請?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{charch;inta,s;

【】;

while((ch=getchar())【】)

if(isdigit(ch))

{a=【】;s+=a;}

printf("s=%d\n\n",s);}

36.下面程序?qū)⒍S數(shù)a的行和列元素互換后存放另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

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

intb[3][2],i,j;

printf("arraya"\n");

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

{for(j=0;【】;j++)

{printf("%5d",a[i][j]);

【】;}

printf("\n");}

printf("arrayb:\n");

for(i=0;【】;i++)

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

printf("%5d",b[i][j]);

printf("\n");}}

37.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

38.關系模型的數(shù)據(jù)操作即是建立在關系上的數(shù)據(jù)操作,一般有【】、增加、刪除和修改四種操作。

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

structst

{charname[20];doublescore;};

main()

{structstex;

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

40.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

三、1.選擇題(20題)41.在C程序中,判斷邏輯值時,分別用()表示邏輯值“真”、“假”。

A.非00B.01C.非0非0D.11

42.下列屬于不合法的C語言整型常量的選項是()。A.-32679

B.0Xabc

C.069

D.3.00E+02B.C.D.

43.在深度為7的滿二叉樹中,葉子結點的個數(shù)為______。A.32B.31C.64D.63

44.執(zhí)行下列語句的結果為______。i=3;printf("%d,",++i);printf("%d",i++);

A.3,3B.3,4C.4,3D.4,4

45.下列程序執(zhí)行后的輸出結果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

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

46.有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為good,則運行以上程序后文件f1.txt中的內(nèi)容為()。

A.goodabcB.abcdC.abcD.abcgood

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

A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動變量實質(zhì)上是一個函數(shù)內(nèi)部的局部變量

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

A.屬性B.關系C.鍵D.域

49.設變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式正確的是(注:□代表空格字符)()。

A.10□X□20□Y<回車>

B.10□X20□Y<回車>

C.10□X<回車>

D.10X<回車>20□Y<回車>20Y<回車>

50.以下程序的功能是:按順序讀入10名學生4門課程的成績,計算出每位學生的平均分并輸出,程序如下。main(){intn,k;floatscore;sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf('NO%d:%f\n",n,ave);}}上述程序運行后結果不正確,調(diào)試中發(fā)現(xiàn)有一條語句出現(xiàn)在程序中的位置不正確。這條語句是()。

A.sum=0.0;

B.sum+=score;

C.ave=sun/4.0;

D.printf("NO%d:%f\n",n,ave);

51.下述關于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

52.在數(shù)據(jù)庫技術中,面向?qū)ο髷?shù)據(jù)模型是一種______。

A.概念模型B.結構模型C.物理模型D.形象棋型

53.已經(jīng)定義ch為字符型變量,以下賦值語句中錯誤的是______。

A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';

54.若輸入60和13,以下程序的輸出結果為()#defineSURPLUS(a,b)((a)%(b));main(){inta,b;scanf("%d,%d",&a,&b);printf("\n",SURPlUS(a,b));}

A.60B.13C.73D.8

55.設int型占2個字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。

A.0~65535B.-32769~32767C.1~65536D.0~32767

56.數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是()

A.概念設計和邏輯設計B.模式設計和內(nèi)模式設計C.內(nèi)模式設計和物理設計D.結構特性設計和行為特性設計

57.有以下程序:#include<stdio.h>floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運行后的輸出結果是()。

A.編譯出錯B.9C.21D.9

58.以下不能定義為用戶標識符的是()。

A.scanfB.VoidC.3comD.int

59.對存有重要數(shù)據(jù)的5.25英寸軟盤,防止計算機病毒感染的方法是()

A.不要與有病毒的軟盤放在一起B(yǎng).在寫保護口貼上膠條C.保持軟盤清潔D.定期對軟格化式

60.樹最適合用來表示()。

A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)

四、選擇題(20題)61.

62.

63.有如下程序段

#include"stdio.h"

voidfun(int*a,int*b,int*c,int*d,int*e)

{inti,j,k,m;

for(i=0;i<*a;i++)

for(j=0;j<*b;j++)

for(k=0;k<*c;k++)

for(m=0;m<*d;m++)

++*e;

}

main()

{inta=10,b=10,c=10,d=10,e=0;

fun(&a,&b,&c,&d,&e);

printf("%d\n",e);}

則程序段的輸出結果是

A.10000B.1000

C.100D.0

64.關系數(shù)據(jù)庫管理系統(tǒng)所管理的關系是()。A.若干個二維表B.一個DBF文件C.一個DBC文件D.若干個DBC文件

65.已有定義:chara[]="xyz",b[]={′x′,′y′,′z′};,以下敘述中正確的是()。

A)數(shù)組a和b的長度相同B)a數(shù)組長度小于b數(shù)組長度

C)a數(shù)組長度大于b數(shù)組長度D)上述說法都不對

66.

67.

68.

69.有以下程序:

main()

{inta[3][3],*p,i;

p=&a[1][1];

for(i=0;i<4;i++)p[i]=i+1;

printf("%d\n",a[1][2]);

}

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

A)3B)6

C)9D)2

70.

71.有如下程序:

則b的值是()。

A.15B.16C.18D.19

72.不能實現(xiàn)函數(shù)之間數(shù)據(jù)傳遞的是()。

A.全局變量B.局部變量C.函數(shù)接口D.函數(shù)返回值

73.

若希望下列的程序運行后輸出25,程序空白處的正確選項是()。

main

{intid=50,a[]=(7,4,10,5,8};

for()

j+=a[i];

printf("%d",j-40);

}

A.i=1;i<4;++i

B.i=l;i<3;++i

C.i=4;i>2;i--

D.i=2;i<4;++i

74.

75.

76.分析以下程序的輸出結果是()。

main

{inta=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

printf(“%d\n”,c);}

intadds(intx,inty)

{staticintm=0,n=3;

n*=++m;

m=n%x+y++;

return(m);}

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

77.在軟件工程中,白箱測試法可用于測試程序的內(nèi)部結構。此方法將程序只看做是

A.路徑的集合B.循環(huán)的集合C.目標的集合D.地址的集合

78.設有如下說明

typedefstruct

{intnumber;charclass;doublescore;}student;

則以下選項中,能正確定義結構體數(shù)組并賦初值的語句是()。

A.studenttt[2]={{189,’A’,62},{190,’B’,75}};

B.studenttt[2]={189,’"A",62,190,"B",75};

C.structtt[2]={{189,’A’},{190,’B’}};

D.structtt[2]={{189,"A",62.5},{190,"B",75.0}};

79.

80.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型參數(shù)m,計算如下公式的值:y=1/(100100)+1/(200200)+1/(300300)+…+1/(mm)例如,若m=4000,則應輸出0.000162。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.函數(shù)fun的功能是:將s所指字符串中下標為偶數(shù)同時ASCIl值為奇數(shù)的字符刪除,S所指串中剩余的字符形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFGl2345”,其中字符C的ASCIl碼值為奇數(shù),在數(shù)組中的下標為偶數(shù),因此必須刪除;而字符l的ASCIl碼值為奇數(shù),在數(shù)組中的下標為奇數(shù),因此不應當刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應是“BDFl2345”。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.A因為x和y都是double型數(shù)據(jù),輸入時的格式字符應為%lf,B、C選項錯誤。D選項中的“scanf(“%lf%lf”,x,y);”應為“scanf(“%lf%lf”,&x,&y);”。故本題答案為A選項。

2.A

3.B不能將變量賦給表達式,故A、C選項錯誤。D選項中強制類型轉(zhuǎn)換表達式應寫成“(double)x/10”。故本題答案為B選項。

4.B

5.B解析:選項A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算:選項C)中,是兩個指針變量之間的賦值:選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。

6.D

7.A解析:線性表的插入和刪除允許在任何位置進行,所以B選項的說法是正確的;棧的操作只允許在棧頂進行,因此,棧稱為先進后出表(FILO,FirstInLastOut),或“后進先出”表(LIFO,LastInFirstOut),所以C選項說法也是正確的;隊列(queue)是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊頭(front),允許插入的一端叫做隊尾(rear),因此隊列亦稱作先進先出(FIFO,FirstInFirstOut)的線性表,或后進后出(LILO,LastInLastOut)的線性表。所以D選項說法也是正確的。

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

9.D解析:本題主要考查關于if語句的說明,if后面圓括號中的表達式,可是任意合法的C語言表達式(如:邏輯表達式、關系表達式、算術表達式、賦值表達式等),也可以是任意類型的數(shù)據(jù)(如:整型、實型、字符型、指針型等。)

10.C解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。

11.B根據(jù)ASCII碼可知大寫字符A與小寫字符a的ASCIl碼相差32,而D中應該是加上'a',選項A和C左側(cè)的表達式都是大寫字符C與大寫字符A的差與'a'的ASCIl代碼的和就是小寫字符c的ASCII代碼。

12.A在C語言里不能直接表達“0<x<5”,需要分步驟來實現(xiàn),即使用“x>0&&x<5”來描述。在C語言里,“0<x<5”屬于一個邏輯運算表達式,可以理解為“(0<x)<5”,因此選項A錯誤。故本題答案為A選項。

13.D

14.DD?!窘馕觥克惴ǖ臅r間復雜度是指算法需要消耗的時間資源。一般來說,計算機算法是問題規(guī)模。09函數(shù)fin),算法的時間復雜度也因此記做T(n)=O(f(n))。因此,問題的規(guī)模n越大,算法執(zhí)行的時間的增長率與f(n)的增長率正相關,稱作漸進時間復雜度(AsymptoticTimeComplexity)。簡單來說就是算法在執(zhí)行過程中所需要的基本運算次數(shù)。

15.D軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關文檔的完整集合。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結構;文檔是與程序開發(fā)、維護和使用有關的圖文資料。因此本題的正確答案是D。

16.D在C語言中,當表達式成立時用l表示,不成立時用0表示,即x=(a&&b)&&(c<'B')=(14&&15)&&('A'<'B')=1&&1=1,故選擇D選項。

17.Breturn語句又稱為返回語句。該語句的格式如下:“return;”和“return(<表達式>);”。其中,return是關鍵字。該語句有兩種格式:不帶返回值格式和帶返回值格式。該語句用在被調(diào)用函數(shù)中,在被調(diào)用函數(shù)中執(zhí)行到該語句時,將結束對被調(diào)用函數(shù)的執(zhí)行,并把控制權返回給調(diào)用函數(shù),繼續(xù)執(zhí)行調(diào)用函數(shù)后邊的語句。在帶有返回值的情況下,將return語句所帶的表達武的值返回給調(diào)用函數(shù),作為被調(diào)用函數(shù)的值。在被調(diào)用函數(shù)中,可以用return語句,也可以不用return語句。如果要求被調(diào)用函數(shù)有返回值,則一定要用return語句,采用return(<表達式>);格式。如果被調(diào)用函數(shù)不需要返回值,并且當被調(diào)用函數(shù)的所有語句執(zhí)行完后進行返回,則被調(diào)用函數(shù)可以不用return語句。

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

19.C解析:C語言中字符常量是以單引號括起來的單個字符,或為以“\\”與三位八進制數(shù)值或兩位十六進制數(shù)值代替單個字符。

20.D由i"11的數(shù)字定義可知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正確。

21.585858585858解析:在程序中,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個if語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>40,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。

22.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設計的任務是將概念模型進一步轉(zhuǎn)化成相應的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設計的主要工作是將E-R圖轉(zhuǎn)換成關系模式。

23.軟件開發(fā)

24.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

25.250250解析:所謂完全二叉樹是指除最后一層外,每—層上的結點數(shù)均達到最大值;在最后—層上只缺少右邊的若干結點。具有n個結點的完全二叉樹,其父結點數(shù)為int(n/2),而葉子結點數(shù)等于總結點數(shù)減去父結點數(shù)。本題n=500,故父結點數(shù)等于int(500/2)=250,葉子結點數(shù)等于500-25=250。

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

27.x=11x=11解析:在對無符號數(shù)的右移是高位補0。

28.66解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學表達式如下:

f(&a,n)=a[0]+f(&a[1],n-1)n>1

f(&a,n)=a[0]n=1

本題中定義了一個長度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f,由上面的數(shù)學表達式以計算其返回值s=1+2+3=6,所以空格處應該填6。

29.驅(qū)動模塊驅(qū)動模塊解析:在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中,驅(qū)動模塊相當于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實際測試結果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。

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

31.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設計、詳細設計、編碼和測試)、軟件維護期(即運行維護階段)。

解析:本題,已知結果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉(zhuǎn)換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

33.2525解析:#NAME?

34.77解析:本題考查基本賦值運算符和賦值表達式。c=(b-=a-5))等價于c=b-(a-5)b=7。c%3=1,a=(c%3)+a=8)=9,但c的值在第二條語句只能夠并沒有被改變,因此c的值還是7。35.s=0\r\n!='\\n'\r\nch-'0's=0\r\n!='\\n'\r\nch-'0'解析:按照題目的要求,s用于保存累加結果;while語句用于得到一個字符串,并以'\\n'結束;if語句用于判斷一個字符是否為數(shù)值型,如果是就將其累加至s中。

36.j<2b[j][i]=a[i][j]i<=2j<2\r\nb[j][i]=a[i][j]\r\ni<=2解析:本題考查了二維數(shù)組元素的引用。a[i][j]表示的是二維數(shù)組a的第i+1,第j+1列的元素。

37.從定義到本源文件結束從定義到本源文件結束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結束。

38.查詢查詢解析:關系模型的數(shù)據(jù)操作即是建立在關系上的數(shù)據(jù)操作,一般有查詢、增加、刪除和修改四種操作。數(shù)據(jù)查詢是指用戶可以查詢關系數(shù)據(jù)庫中的數(shù)據(jù),它包括一個關系內(nèi)的查詢以及多個關系間的查詢。數(shù)據(jù)刪除的基本單位是一個關系內(nèi)的元組,它的功能是將指定關系內(nèi)的指定元組刪除。數(shù)據(jù)增加僅對一個關系而言,在指定關系中插入一個或多個元組。數(shù)據(jù)修改是在一個關系中修改指定的元組和屬性。

39.structst或exstructst或ex解析:結構體類型數(shù)據(jù),其數(shù)據(jù)成員各自占據(jù)不同的存儲空間,整個結構體變量所占存儲單元的字節(jié)數(shù)為每一個數(shù)據(jù)成員所占的存儲空間的和。注意:共用體變量所占存儲單元字節(jié)數(shù)的計算。

40.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結果顯然為0。

41.A解析:在C程序中,判斷邏輯值時,用非0表示“真”,用0表示“假”。計算邏輯表達式時,邏輯表達式的值為“真”是用1表示的,若邏輯表達式的值為“假”,則用0表示。

42.C解析:C語言中,以0開頭的整型常量表示八進制數(shù),而八進制數(shù)只能由‘O’~‘7’八個字符組成,選項C中出現(xiàn)了數(shù)字9是錯誤的。故應該選擇C。

43.C在滿二叉樹中每層的結點數(shù)都達到最大值,而且葉子結點全部出現(xiàn)在最底層。第l層(根結點所在的層)有20個結點,第2層有21個結點,……第n層有2n-1個結點。在深度為7的滿二叉樹中,第7層有27-l=64個結點(全部是葉子結點)、在深度為7的滿二叉樹中,共有27—1=127個結點、因此本題的正確答案是C

44.D

45.A解析:函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù),還可以是指針型。它的作用是將一個變量的地址傳遞到另一個函數(shù)中。當數(shù)組名作參數(shù)時,如果形參數(shù)組中的各元素的值發(fā)生變化,實參數(shù)組元素的值也將隨之發(fā)生變化。

46.C解析:主函數(shù)中定義了一個文件指針fp1,然后通過fopen()函數(shù),以寫的方式打開文件f1.txt,并讓指針fp1指向它,接著調(diào)用fprimf()函數(shù)將abc寫到文件fp1所指的文件里,由于印1指向文件f1.txt的開始位置,因此abc將把文件f1.txt里原來的內(nèi)容good覆蓋掉,故文件f1.txt里最后的內(nèi)容為abc,所以,4個選項中選項C符合題意。

47.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運行中,當局部變量所在的函數(shù)被調(diào)用時,編譯系統(tǒng)根據(jù)需要要臨時分配內(nèi)存,調(diào)用結束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。

48.B解析:關系數(shù)據(jù)庫邏輯設計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關系,E-R圖中屬性也可以轉(zhuǎn)換成關系的屬性,實體集也可以轉(zhuǎn)換成關系。

49.D解析:當從鍵盤輸入字符,并且在格式說明中未制定寬度時,輸入字符(包括空格符、回車符、Tab符)將按順序賦予各輸入項。也就是說,輸入字符之間沒有間隔符,所以選項D是正確的。

50.A解析:本題程序中使用了兩層for循環(huán),外層循環(huán)的作用是控制人數(shù),循環(huán)一次是求一個人的成績和,然后除以4得到平均成績。每個人的成績總和一開始時都必須清0,否則就會出現(xiàn)后面人的總成績越來越大?!皊um=O.O;”應在外層循環(huán)中。選項A正確。

51.A解析:數(shù)據(jù)庫是一個通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨立性,而且能并發(fā)地為多個應用服務,同時具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結構化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對數(shù)據(jù)的存取方式,選項C錯誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點,選項D錯誤。本題正確答案是A。

52.B解析:根據(jù)數(shù)據(jù)模型的應用的不同目的,模型分為概念模型和結構模型。概念模型是按用戶的觀點對數(shù)據(jù)和信息建模。結構模型是按計算機系統(tǒng)觀點對數(shù)據(jù)建模。數(shù)據(jù)模型按數(shù)據(jù)結構分為層次模型、網(wǎng)狀模型、關系模型和面向?qū)ο髷?shù)據(jù)模型。

53.A解析:對字符變量賦值時,即可以賦一字符常量,也可以賦0~255的整數(shù),該整數(shù)表示字符常量的ASCII值。本題中選項B是將65賦值給ch,表示字符A;選項C中NULL是C語言中的符號常量,其值為0;選項D是將一個轉(zhuǎn)義字符賦值給ch,該字符的ASCII值為aa,其中aa是十六進制;選項A錯誤。

54.D

55.A解析:本題int型占2個字節(jié),即16位,unsignedint所能表示的數(shù)據(jù)范圍是0~(2(上標)16-1),即0~65535。

56.A解析:模式設計和內(nèi)模式設計是概念設計的兩種方法。物理設計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結構和存取方法進行設計,從而實現(xiàn)從邏輯結構到物理結構的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結構特性設計和行為特性-設計是數(shù)據(jù)庫應用系統(tǒng)所具有的兩個特性。結構特性的設計,設計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

57.B解析:本題考查函數(shù)調(diào)用。將a,b,c的值代入函數(shù)調(diào)用fun((int)fun(a+c,b),a-c)可得到fun((int)fun(10,5),-6)。函數(shù)調(diào)用分為兩步:

①調(diào)用函數(shù)fun(10,5)。

②利用強制類型轉(zhuǎn)換(int)將函數(shù)fun(10,5)的返回值15.000000轉(zhuǎn)換成15,再將其結果作為函數(shù)的實參進行第二次函數(shù)調(diào)用fun(15,-6),其結果為9。

58.D解析:標識符是C語言中用來表示變量名、數(shù)組名、函數(shù)名、指針名、結構名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語句標號等用途的字符序列。標識符由1~32個字符組成,第一個字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標識符不能與C關鍵字相同,并區(qū)分大小寫。選項D)錯誤,因為int是C語言中的關鍵字。

59.B

60.C樹最適合用來表示元素之間具有分支層次關系的數(shù)據(jù),故本題選C。

61.C

62.C

63.A在本題中,程序首先定義了一個無返回值的函數(shù)fun,該函數(shù)帶有五個整型的指針形參變量,然后通過一個四層循環(huán)來操作++*e;語句,由于*與++運算符的優(yōu)先級一樣,它們都是自右至左結合的操作,因此,++*e等價于++(*e),這個操作可描述為:先用地址取值,然后對其進行自加,由于是通過傳址傳值法的,因此,還需要將相加后的結果傳遞到實參中。

在主函數(shù)中,定義五個整型變量并分別賦初值,然后調(diào)用fun函數(shù),傳遞的參數(shù)是剛定義的五個整型變量的地址,采用的是傳址傳值法,能為實參帶回一個結果值。從fun函數(shù)中我們不難看出,當變量a,b,c,d分別為10時,循環(huán)總共執(zhí)行10000次,即自加進行了10000次,而且每次自加后都改變了實參的結果。因此,循環(huán)結束后,變量e的值為10000。本題的正確答案是A。

64.A解析:VisualFoxPro就是一種關系數(shù)據(jù)庫管理系統(tǒng),一個“表”就是一個關系,一個關系就是一個二維表。關系數(shù)據(jù)庫管理系統(tǒng)可管理若干個二維表。

65.C數(shù)組a占4個字節(jié),數(shù)組b占3個字節(jié)。所以數(shù)組a長度大于b長度。

66.A

67.B

68.A

69.D

70.C

71.DP=&a[3]將指針指向數(shù)組a的第4個元素,P[5]指向數(shù)組a的第9個元素,而a[8]=19,所以b=19。

72.B局部變量的作用域僅局限于函數(shù)體內(nèi)。不能在函數(shù)之間進行數(shù)據(jù)傳遞。

73.D

\n要想使程序輸出25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)的語句,使引用的數(shù)組元素累加65-50=15即可,D選項中,i下標從0開始,i=2指向第3個數(shù)50+a[2]=50+10=60,繼續(xù)循環(huán)60+a[3]=60+5=65,此時i=4跳出,循環(huán)結束。

\n

74.C

75.D\r\n

76.A

77.A本題考查軟件的測試方法。

測試任何產(chǎn)品都有兩種方法:如果已經(jīng)知道了產(chǎn)品應該具有的功能,可以通過測試來檢驗是否每個功能都能正常使用;如果知道產(chǎn)品內(nèi)部工作過程,可以通過測試來檢驗產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行。前一個方法稱為黑盒測試,后一個方法稱為白盒測試。

對于軟件測試而言,黑盒測試法把程序看成一個黑盒子,完全不考慮程序的內(nèi)部結構和處理過程,是在程序接口進行的測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試又稱為功能測試。

與黑盒測試法相反,白盒測試法的前提是可以把程序看成裝在一個透明的白盒里,也就是完全了解程序的結構和處理過程。測試人員依據(jù)程序內(nèi)部邏輯結構的相關信息,設計或選擇測試用例,對程序所有的邏輯路徑進行窮舉測試,通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預期的狀態(tài)一致。

78.AB項定義格式不對,tt[2]只有兩個元素,C項缺少了結構體名,而結構體名不可少,D項一樣缺少了結構體名。

79.B

80.DD?!窘馕觥棵嫦?qū)ο笤O計方法與面向過程設計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。

81.(1)錯誤:proc(intm)

正確:doubleproc(intm)

(2)錯誤:for(i=100,i<=m,i+=100)

正確:for(i=100;i<=m;i+=100)

【解析】由主函數(shù)中的函數(shù)調(diào)用和函數(shù)proc()的返回值可知,函數(shù)proc()的返回值類型為double型數(shù)據(jù)。因此,“proc(intm)”應改為“doubleproc(iram)”;根據(jù)C語言的語法規(guī)則,for循環(huán)的3個條件之間為分號間隔,因此,“for(i=100。i<=m,i+=100)”應改為“for(i=100;i<=m;i+=100)”。

82.2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義“doublex,y,*px,*py;”,執(zhí)行了“px=&x;py=&y;”之后,正確的輸入語句是()。

A.scanf(“%lf%le”,px,py);

B.scanf(“%f%f”,&x,&y);

C.scanf(“%f%f”,x,y);

D.scanf(“%lf%lf”,x,y);

2.對于int*pa[5];的描述,()是正確的。

A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素

B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量

C.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針

D.pa[5]表示某數(shù)組的第5個元素的值

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

A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10

4.

5.設q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。

A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);

6.若已知一個棧的入棧序列是1,2,3,......,n,其輸出序列為p1,p2,p3,..,pn,若p1=n-1,則pi可能為()

A.nB.n-iC.n-i+1D.不確定

7.下列關于線性表、棧和隊列的敘述,錯誤的是()。

A.線性表是給定的n(n必須大于零)個元素組成的序列

B.線性表允許在表的任何位置進行插入和刪除操作

C.棧只允許在一端進行插入和刪除操作

D.隊列允許在一端進行插入在另一端進行刪除

8.下列程序段中完全正確的是()。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);

9.以下是if語句的基本形式:

if(表達式.語句

其中“表達式”()。

A.必須是邏輯表達式B.必須是關系表達式C.必須是邏輯表達式或關系表達式D.可以是任意合法的表達式

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

A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時,實參和對應形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量

11.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉(zhuǎn)換為對應小寫字母的語句是()。

A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'

12.以下與數(shù)學表達式“0<x<5且x≠2”不等價的C語言邏輯表達式是()。

A.(0<x<5)&&(x!=2)

B.0<x&&x<5&&x!=2

C.x>0&&x<5&&x!=2

D.(x>0&&x<2)||(x>2&&x<5)

13.

14.算法的時間復雜度是指A.算法的執(zhí)行時間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運算次數(shù)

15.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結構D.程序、數(shù)據(jù)與相關文檔的完整集合

16.有如下程序段:

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B'):

執(zhí)行該程序后,x的值為()。A.A.trueB.falseC.0D.1

17.以下關于return語句的敘述中正確的是()。

A.一個自定義函數(shù)中必須有一條return語句

B.一個白定義函數(shù)中可以根據(jù)不同情況設置多條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調(diào)用處

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

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

B.程序經(jīng)調(diào)試后一般不需要測試

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

D.以上三種說法都不對

19.以下選項中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

20.設變量已正確定義,則以下能正確計算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.填空題(20題)21.若從鍵盤輸入58,則以下程序的輸出結果是【】。

main()

{inta;

scanf(“%d”,&A);

if(a>50)printf(“%d”,A);

if(a>40)printf(“%d”,A);

if(a>30)printf(“%d”,A);

}

22.數(shù)據(jù)庫的邏輯模型設計階段的任務是將______轉(zhuǎn)換成關系模式。

23.軟件工程研究的內(nèi)容主要包括:【】技術和軟件工程管理。

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

main()

charc;intn=100;

floatf=10;doublex;

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

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

25.設一棵完全二叉樹共有500個結點,則在該二叉樹中有【】個葉子結點。

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

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

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

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

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

{

main()

{intaa[3]={1,2.3},s;

s=f(&aa[0],3);

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

}

29.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果。

30.以下程序的功能是建立一個帶有頭結點的單向鏈表,鏈表結點中的數(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();}

31.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細設計屬于______中的一個階段。

32.下列程序的輸出結果是16.00,請?zhí)羁眨?/p>

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

33.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。

34.若有定義:inta=6,b=8,c=14;接著順序執(zhí)行下列語句后,變量c中的值是()。c=(b-=(a-5));a=(c%3)+(a=8);

35.以下程序的功能是:對輸入的一行字符串的數(shù)字字符按它們的字面值累加,輸出此累加和。例如,輸入一行字符是:ab34dh8u,輸出值應當是15。請?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{charch;inta,s;

【】;

while((ch=getchar())【】)

if(isdigit(ch))

{a=【】;s+=a;}

printf("s=%d\n\n",s);}

36.下面程序?qū)⒍S數(shù)a的行和列元素互換后存放另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

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

intb[3][2],i,j;

printf("arraya"\n");

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

{for(j=0;【】;j++)

{printf("%5d",a[i][j]);

【】;}

printf("\n");}

printf("arrayb:\n");

for(i=0;【】;i++)

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

printf("%5d",b[i][j]);

printf("\n");}}

37.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

38.關系模型的數(shù)據(jù)操作即是建立在關系上的數(shù)據(jù)操作,一般有【】、增加、刪除和修改四種操作。

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

structst

{charname[20];doublescore;};

main()

{structstex;

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

40.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

三、1.選擇題(20題)41.在C程序中,判斷邏輯值時,分別用()表示邏輯值“真”、“假”。

A.非00B.01C.非0非0D.11

42.下列屬于不合法的C語言整型常量的選項是()。A.-32679

B.0Xabc

C.069

D.3.00E+02B.C.D.

43.在深度為7的滿二叉樹中,葉子結點的個數(shù)為______。A.32B.31C.64D.63

44.執(zhí)行下列語句的結果為______。i=3;printf("%d,",++i);printf("%d",i++);

A.3,3B.3,4C.4,3D.4,4

45.下列程序執(zhí)行后的輸出結果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

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

46.有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為good,則運行以上程序后文件f1.txt中的內(nèi)容為()。

A.goodabcB.abcdC.abcD.abcgood

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

A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動變量實質(zhì)上是一個函數(shù)內(nèi)部的局部變量

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

A.屬性B.關系C.鍵D.域

49.設變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式正確的是(注:□代表空格字符)()。

A.10□X□20□Y<回車>

B.10□X20□Y<回車>

C.10□X<回車>

D.10X<回車>20□Y<回車>20Y<回車>

50.以下程序的功能是:按順序讀入10名學生4門課程的成績,計算出每位學生的平均分并輸出,程序如下。main(){intn,k;floatscore;sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf('NO%d:%f\n",n,ave);}}上述程序運行后結果不正確,調(diào)試中發(fā)現(xiàn)有一條語句出現(xiàn)在程序中的位置不正確。這條語句是()。

A.sum=0.0;

B.sum+=score;

C.ave=sun/4.0;

D.printf("NO%d:%f\n",n,ave);

51.下述關于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

52.在數(shù)據(jù)庫技術中,面向?qū)ο髷?shù)據(jù)模型是一種______。

A.概念模型B.結構模型C.物理模型D.形象棋型

53.已經(jīng)定義ch為字符型變量,以下賦值語句中錯誤的是______。

A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';

54.若輸入60和13,以下程序的輸出結果為()#defineSURPLUS(a,b)((a)%(b));main(){inta,b;scanf("%d,%d",&a,&b);printf("\n",SURPlUS(a,b));}

A.60B.13C.73D.8

55.設int型占2個字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。

A.0~65535B.-32769~32767C.1~65536D.0~32767

56.數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是()

A.概念設計和邏輯設計B.模式設計和內(nèi)模式設計C.內(nèi)模式設計和物理設計D.結構特性設計和行為特性設計

57.有以下程序:#include<stdio.h>floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運行后的輸出結果是()。

A.編譯出錯B.9C.21D.9

58.以下不能定義為用戶標識符的是()。

A.scanfB.VoidC.3comD.int

59.對存有重要數(shù)據(jù)的5.25英寸軟盤,防止計算機病毒感染的方法是()

A.不要與有病毒的軟盤放在一起B(yǎng).在寫保護口貼上膠條C.保持軟盤清潔D.定期對軟格化式

60.樹最適合用來表示()。

A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)

四、選擇題(20題)61.

62.

63.有如下程序段

#include"stdio.h"

voidfun(int*a,int*b,int*c,int*d,int*e)

{inti,j,k,m;

for(i=0;i<*a;i++)

for(j=0;j<*b;j++)

for(k=0;k<*c;k++)

for(m=0;m<*d;m++)

++*e;

}

main()

{inta=10,b=10,c=10,d=10,e=0;

fun(&a,&b,&c,&d,&e);

printf("%d\n",e);}

則程序段的輸出結果是

A.10000B.1000

C.100D.0

64.關系數(shù)據(jù)庫管理系統(tǒng)所管理的關系是()。A.若干個二維表B.一個DBF文件C.一個DBC文件D.若干個DBC文件

65.已有定義:chara[]="xyz",b[]={′x′,′y′,′z′};,以下敘述中正確的是()。

A)數(shù)組a和b的長度相同B)a數(shù)組長度小于b數(shù)組長度

C)a數(shù)組長度大于b數(shù)組長度D)上述說法都不對

66.

67.

68.

69.有以下程序:

main()

{inta[3][3],*p,i;

p=&a[1][1];

for(i=0;i<4;i++)p[i]=i+1;

printf("%d\n",a[1][2]);

}

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

A)3B)6

C)9D)2

70.

71.有如下程序:

則b的值是()。

A.15B.16C.18D.19

72.不能實現(xiàn)函數(shù)之間數(shù)據(jù)傳遞的是()。

A.全局變量B.局部變量C.函數(shù)接口D.函數(shù)返回值

73.

若希望下列的程序運行后輸出25,程序空白處的正確選項是()。

main

{intid=50,a[]=(7,4,10,5,8};

for()

j+=a[i];

printf("%d",j-40);

}

A.i=1;i<4;++i

B.i=l;i<3;++i

C.i=4;i>2;i--

D.i=2;i<4;++i

74.

75.

76.分析以下程序的輸出結果是()。

main

{inta=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

printf(“%d\n”,c);}

intadds(intx,inty)

{staticintm=0,n=3;

n*=++m;

m=n%x+y++;

return(m);}

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

77.在軟件工程中,白箱測試法可用于測試程序的內(nèi)部結構。此方法將程序只看做是

A.路徑的集合B.循環(huán)的集合C.目標的集合D.地址的集合

78.設有如下說明

typedefstruct

{intnumber;charclass;doublescore;}student;

則以下選項中,能正確定義結構體數(shù)組并賦初值的語句是()。

A.studenttt[2]={{189,’A’,62},{190,’B’,75}};

B.studenttt[2]={189,’"A",62,190,"B",75};

C.structtt[2]={{189,’A’},{190,’B’}};

D.structtt[2]={{189,"A",62.5},{190,"B",75.0}};

79.

80.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型參數(shù)m,計算如下公式的值:y=1/(100100)+1/(200200)+1/(300300)+…+1/(mm)例如,若m=4000,則應輸出0.000162。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.函數(shù)fun的功能是:將s所指字符串中下標為偶數(shù)同時ASCIl值為奇數(shù)的字符刪除,S所指串中剩余的字符形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFGl2345”,其中字符C的ASCIl碼值為奇數(shù),在數(shù)組中的下標為偶數(shù),因此必須刪除;而字符l的ASCIl碼值為奇數(shù),在數(shù)組中的下標為奇數(shù),因此不應當刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應是“BDFl2345”。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.A因為x和y都是double型數(shù)據(jù),輸入時的格式字符應為%lf,B、C選項錯誤。D選項中的“scanf(“%lf%lf”,x,y);”應為“scanf(“%lf%lf”,&x,&y);”。故本題答案為A選項。

2.A

3.B不能將變量賦給表達式,故A、C選項錯誤。D選項中強制類型轉(zhuǎn)換表達式應寫成“(double)x/10”。故本題答案為B選項。

4.B

5.B解析:選項A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算:選項C)中,是兩個指針變量之間的賦值:選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。

6.D

7.A解析:線性表的插入和刪除允許在任何位置進行,所以B選項的說法是正確的;棧的操作只允許在棧頂進行,因此,棧稱為先進后出表(FILO,FirstInLastOut),或“后進先出”表(LIFO,LastInFirstOut),所以C選項說法也是正確的;隊列(queue)是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊頭(front),允許插入的一端叫做隊尾(rear),因此隊列亦稱作先進先出(FIFO,FirstInFirstOut)的線性表,或后進后出(LILO,LastInLastOut)的線性表。所以D選項說法也是正確的。

8.CA選項中,沒有對指針進行初始化,屬于無效指針,并且在“scanf(“%d”,&p);”中無須再進行取地址操作;B選項中,沒有對指針進行初始化,屬于無效指針;D選項中,語

溫馨提示

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

評論

0/150

提交評論