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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.要求通過while循環(huán)不斷讀入字符,當讀入字母N時結束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch—getchar)!=N)printf("%c",ch);

B.while(oh=getchar!=N)printf("%c",ch);

C.while(ch=getchar==N)printf("%c",ch);

D.while((ch—getchar)==N)printf("%c",ch);

2.一個有7個頂點的完全三部圖,至少有存在幾條邊()

A.10B.11C.15D.16

3.以下不構成無限循環(huán)的語句或語句組的是()。

A.n=0;do{++n;}while(n<=0);

B.n=0;while(1){n++;}

C.n=10;while(n);{n--;}

D.for(n=0,i=1;i++)n+=i;

4.下面算法的時間復雜度為()A.O(1)B.O(n)C.O(n*n)D.O(n!)

5.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序運行后的輸出結果是()。

A.10,One*Dream!

B.9,One*Dream!

C.9,One*World

D.10,One*World

6.有以下函數:

此函數的功能是()。A.比較p和q所指字符串的大小

B.計算p和q所指字符串的長度差

C.將q所指字符串連接到P所指字符串后面

D.將q所指字符串復制到p所指字符串中

7.一個關系中屬性個數為1時,稱此關系為()。

A.對應關系B.單一關系C.一元關系D.二元關系

8.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現在標識符中的是()。A.大寫字母B.下劃線C.數字字符D.連接符

9.以下程序運行時若要正確輸出函數的入口地址和輸入數的絕對值,應在程序空缺處填入的正確選項是

abs(intx)

{if(x>=0)returnx;

elsereturn-x;}

main()

{inty,z,(*p)(intx)=abs;

scanf("%d",&y);

z=(*p)(y);

;}

A.printf("%d%d\n",&p,z)

B.printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.printf("%d%d\n",p,*z)

10.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。

A.定義語句中的*號是一個間址運算符

B.定義語句中的*號只是一個說明符

C.定義語句中的P只能存放double類型變量的地址

D.定義語句中,*p=&n把變量a的地址作為初值賦給指針變量P

11.已知a,b均被定義為double型,則表達式:a=5/2的值為()。

A.1B.3C.3.0D.2.5

12.對長度為n的無序線性表進行順序查找,則查找成功、不成功時的平均數據比較次數分別為()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

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

14.單鏈表的存儲密度()順序表的存儲密度。

A.大于B.等于C.小于D.不能確定

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

A.程序就是軟件

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

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

D.軟件是程序、數據與相關文檔的集合

16.若長度為n的線性表采用順序存儲結構,在其第i個位置插入一個新元素的算法的時間復雜度為()。

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

17.

18.在一個有頭結點的鏈隊列中,假設f和r分別為隊首和隊尾指針,則隊頭出隊的運算是()。

A.q=f->next;f->next=f->next->next;free(q);

B.q=f;f->next=f->next->next;free(q);

C.f->next=f->next->next;q=f->next;free(q);

D.q=f->next->next;f=f->next;free(q);

19.若有定義:inta,b;,通過語句scanf("%d;%d",&a,&b);,能把整數3賦給變量a,5賦給變量b的輸入數據是A.A.35B.3,5C.3;5D.35

20.

二、2.填空題(20題)21.下列程序段的運行結果是______。

charstr[]="ABCD",*p=str;

printf("%d\n",*(p+3));

22.有以下程序片段,請問執(zhí)行后的輸出結果是【】。

intn=10;

while(n>7)

{printf("%d",n--);

}

23.數據庫系統在三級模式之間提供了兩層映像,這兩層映像是外模式/模式映像和【】。

24.在數據的存儲結構中,不僅需要存儲各數據元素的信息,還要存放各元素之間______的信息。

25.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許插入的一端稱作______。

26.若想通過以下輸入語句使a中存放字符串1234,b中存放字符5,則輸入數據的形式應該是【】。

chara[10],b;scanf("a=%sb=%c",a,&b);

27.以下程序中,函數SumColumMin的功能足:求出M行N列二維數組每列元素中的最小值,并計算它們的和值。和值通過形參傳回主函數輸出。請?zhí)羁铡?/p>

#defineM2

#defineN4

voidSumColumMm(inta[M][N],int*sum)

{

inti,j,k,s=0;

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

{

k=0;

for(j=1;j<M;j++)

if(a[k][i]>a[j][i])

k=j;

s+=【】;

}

【】=s;

}

main()

{

intx[M][n])={3;,5,1,4,1,8,3},s;

SumC01umMm(【】);

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

}

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

請?zhí)羁铡?/p>

main()

{floata,b,c;

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

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

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

}

29.以下程序從終端讀入數據到數組中,統計其中正數的個數,并計算它們之和。請?zhí)羁铡?/p>

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",(【】);

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

{if(a[i]>0)

{count++;

sum+=(【】);

}

}

printf("sum=%d,count=%dhn",sum,count);

}

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

fun(intx)

{staticinta=3;

a+=x;

return(a);

}

main()

{intk=2,m=1,n;

n=fun(k);

n=fun(m);

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

}

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

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

33.數據庫保護分為:安全性控制、______、并發(fā)性控制和數據的恢復。

34.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運行時輸入:1234<回車>,程序的輸出結果是【】。

35.以下函數用來求出兩整數之和,并通過形參將結果傳回,請?zhí)畛渫暾?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;

}

36.下列程序中的數組a包括10個整數元素,分別將前項和后項之和存入數組b,并按每行4個元素輸出數組b。請?zhí)羁铡?/p>

#include<stdioh>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

for(i;0;i<9;i++)

{if(i%4==0)primf("\n");

printf("%3d",b[i];

}

}

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

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

39.以下程序段用以統計鏈表中元素的個數。其中first指向鏈表第一個結點,count用來統計結點個數。請?zhí)羁铡?/p>

structlink

{chardata;

structlink*next;

}

structlink*p,*first;

|

intcount=0;

p=first;

while(【】)

{

【】;

p=【】;

}

40.為建立如下圖所示的存儲結構(即每個結點兩個域,p是指向結點的指針域,data用以存放整型數),請將定義補充完整。

pdata

a

structlist

{【】;intdata;}a;

三、1.選擇題(20題)41.以下有4組用戶標識符,其中合法的—組是______。

A.FOR-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

42.設有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次

43.下列數據結構中,屬于非線性的是()。

A.線性表B.隊列C.樹D.棧

44.設有下列二叉樹:

對此二叉樹后序遍歷的結果為

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

45.在嵌套使用if語句時,C語言規(guī)定else總是()。

A.和之前與其具有相同縮進位置的if配對

B.和之前與其最近的if配對

C.和之前與其最近不帶else的if配對

D.和之前的第一個if配對

46.請讀程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結果是______。

A.正數B.負數C.零D.不確定的值

47.有以下程序:#include<stdio.h>#include<string.h>main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運行后的輸出結果是()。

A.22B.76C.72D.62

48.設ch是char型變量,其值為A,且有表達式:ch=(ch>='A'&&ch<='Z')?(ch+32):ch。該表達式的值是______。

A.AB.aC.ZD.z

49.在設計程序時,應采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結構應有助于讀者理解

50.下面一組中都是C語言關鍵字的是______。

A.doubleIntfor

B.mainwhilegoto

C.volatilebreakstatic

D.mallocsizeofnew

51.以下敘述不正確的是______。

A.分號是C語言的必要組成部分

B.C程序的注釋可以寫在句的后面

C.函數是C程序的基本單位

D.主函數的名字不一定用main表示

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

A.模擬現實世界中不同事物之間的聯系

B.強調模擬現實世界中的算法而不強調概念

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

D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領域的概念去思考

53.字長為32位的計算機是指()

A.該計算機中的CPU有32個寄器

B.該計算機能夠處理的最大數不超過232

C.該計算機每秒鐘所能執(zhí)行的指令條數為32MIPS

D.該計算機中的CPU可以相同時處理32位的二進制數

54.在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于()A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段

55.若有以下定義:structlink{intdata;structlink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結構:

指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

56.若二維數組a有m列,則在a[i][j]剛前的元素個數為()。

A.i*m+j-1B.i*m+jC.j*m+iD.i*m+j+1

57.有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序運行后的輸出結果是——。

A.10234B.12344C.12334D.12234

58.已定義以下函數:fun(Char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函數的功能是()。

A.將p1所指字符串復制到p2所指內存空間

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較

D.檢查p1和p2兩個指針所指字符串中是否有'\0',

59.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

程序的運行結果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

60.下列數據結構中,能用二分法進行查找的是()。

A.順序存儲的有序線性表B.結性鏈表C.二叉鏈表D.有序線性鏈表

四、選擇題(20題)61.在下述程序中,判斷條件“i>j”共執(zhí)行的次數是

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d",s);

break;

}s+=i;

}

}

A.4B.7

C.5D.6

62.表達式:(im)((double)9/2)一9%2的值是()。

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

63.設有以下定義:

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

int(*ptr)[3]=a,*p=a[0];

則下列能夠正確表示數組元素a【1】【2】的表達式是()。

A.*((*ptr+1)[2])

B.*(*(p+5))

C.(*ptr+1)+2

D.*(*(a+1)+2)

64.數據庫系統的三級模式不包括()。

A.概念模式B.內模式C.外模式D.數據模式

65.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

66.

67.

68.以下關于C語言的敘述中,不正確的是

A.C語言中的注釋可以夾在變量名或關鍵字的中間

B.C語言中使用變量必須是先定義后使用

C.C語言表達式運算符兩側的運算數類型必須一致

D.C語言的數值常量中夾帶空格不影響常量值的正確表示

69.

70.程序流程圖(PFD.中的菱形代表的是()。

A.數據流B.控制流C.加工步驟D.邏輯條件

71.在一個C程序中

A.main函數必須出現在所有的函數之前B.main函數可以在任何地方出現

C.main函數必須出現在所有的函數之后D.main函數必須出現在固定位置

72.

73.結構化程序設計主要強調的是()。

A.程序的規(guī)模B.程序的效率C.程序設計語言的先進性D.程序的易讀性

74.在軟件生產過程中,需求信息的給出是______。A.A.程序員B.項目管理者C.軟件分析設計人員D.軟件用戶

75.以下不能正確定義二維數組的選項是A.inta[2][2]={{1},{2}};

B.inta[][2]={1,2,3,4};

C.inta[2][2]={{1},2,3};

D.inta[2][]={{1,2},{3,4}};

76.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達式是()。

A.(!a==1)&&(!b==0)B.(a<b)&&!cC.D.1E.a&&bF.aG.H.(b+b)&&(c-a)

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

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

78.設有如下說明

typedefstruct

{intn;

charc;

doublex;

}STD;

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

A.STDtt[2]={{1,’A’,62},{2,’B’,75}};B.STDtt[2]={1,"A",62,2,"B",75};

C.structtt[2]={{1,’A’},{2,’B’}};D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};

79.設有定義:

80.

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

#include<stdio.h>

main

{chara[]={a,b,C,d,e,f,\0).

inti,j;

i=sizeof(a);

j=strlen(a);

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

}

A.7,7B.7,6C.6,6D.6,7

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

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

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

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

試題程序:

#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.M名學生的成績已在主函數中放人一個帶頭結點的鏈表結構中,h指向鏈表的頭結點。請編寫函數proc(),它的功能是:找出學生的最高分,由函數值返回。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.Awhile循環(huán)的執(zhí)行過程如下:①計算while后面圓括號中表達式的值。當值為非0時,執(zhí)行步驟②;當值為0時,執(zhí)行步驟④。②執(zhí)行循環(huán)體一次。③轉去執(zhí)行步驟①。④退出循環(huán)。在選項A中,表達式(ch=get-char)!=N表示輸入的字符不等于N,如果這個條件表達式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個條件表達式不成立,即輸入的字符等于N,則退出循環(huán)。所以選項A為正確答案。

2.B

3.AA選項中do后面的語句只執(zhí)行了一次便結束了循環(huán);B選項中條件while(1)永遠成立,所以是死循環(huán);C選項中n的值為10,而循環(huán)體為空語句,所以while(n)永遠為真,進入死循環(huán);D選項中for語句第2個表達式為空,所以沒有判斷條件,進入死循環(huán)。故本題答案為A選項。

4.B

5.A函數“strlen(char*s)”;計算字符串s的長度,不包括‘\\0’在內。p指向數組的第2個元素,因此“Strien(P)=10”,并輸出“one*Dream!”。故本題答案為A選項。

6.A函數fun接收兩個整型指針變量作為參數,通過while循環(huán),比較p和q對應位上的各個字符,如果字符相同,繼續(xù)向后比較;否則循環(huán)結束,返回第1次對應不同字符的ASCII差值。所以函數fun是對p和q指向的字符串進行比較,其大小是按第1個對應位置上不同字符的ASCII值來比較的。本題答案為A選項。

7.C解析:在關系模型數據庫中,基本結構是二維表,這種二維表稱為關系。關系的列稱為屬性,一個具有N個屬性的關系稱為N元關系。注意:各種關系查詢語言與過程性語言和非過程性語言的關系,過程性語言的特點。

8.D[解析]C語言中標識符由字母、下劃線、數字組成,且開頭必須是字母或下劃線。所以D)選項中的連接符不合法。

9.B解析:考查函數指針的使用方法??梢允褂煤瘮抵羔榿碚{用函數。調用形式為:(*指針變量)(實參表列)。

10.Cdoublea,*p=&a語句的意思是將a的值存放到指針變量P中,P是指針可以隨意指向任何地址,所以答案C錯誤。

11.D

12.C

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

14.C

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

16.C

17.D

18.A

19.C解析:在C語言中scanf函數中輸入數據時要嚴格按照所規(guī)定的樣式輸入。

20.B

21.6868解析:本題考查如何用指針引用數組元素。本題先定義了一個指向字符型數組str的指針p,指針p指向數組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應ASCII碼值68。

22.1098

23.模式/內模式映像模式/內模式映像解析:映像即一種對應規(guī)則,指出映像雙方如何進行轉換。數據庫系統在三級模式之間提供了兩層映像,這兩層映像是外模式/模式映像與模式/內模式映像。

24.前后件關系前后件關系解析:在數據存儲結構中,除了要存儲數據,還要存儲數據的前后件關系,對于順序存儲的數據結構,前后件之間的關系,是通過存儲空間的位置來實現的,而對于鏈式存儲來說,數據元素之間的前后件關系是通過指針來實現的。

25.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。

26.a=123b=5

27.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:本題定義了一個函數SumColumMin(),該函數有兩個參數,第一個參數為數組名,第二個參數為一個指針,用來訪問存放數組中每列元素中的最小值的存儲空間的變量。所以在主函數中調用SumColunMin()函數,應該將數組x和sam作為實參傳給SumColumMin()中的形參,故第20個空格處應該填x,&s。在SumColumMin()函數中用了兩重循環(huán),用N記錄數組的列,M記錄數組的行。內循環(huán)共循環(huán)了M次,每循環(huán)一次將a[k][i]比較a[j][i](當k=0時,a[k][i]第一行第一列的值,然后將該值依次和第一列中的每個值比較,讓a[k][i]表示較小的值,那么比較到最后一個元素后a[k][i]就是改列中最小元素的值),讓k記錄較小值元素的行下標,這樣通過M次循環(huán)得到每列中的最小元素,然后退出內循環(huán),繼續(xù)執(zhí)行該次外循環(huán)里的其他語句,即將剛求得第i列的最小值a[k][i]累加到s中,故第一個空格處應該填a[k][i],最后外循環(huán)共循環(huán)N次,將每列得最小值累加到s中,退出循環(huán),然后讓指針sum所指向得存儲空間得值為s故第二個空格處應該填*sum。

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

29.&a[i]或a+Ia[i]或*(a+i)&a[i]或a+I\r\na[i]或*(a+i)解析:主函數中一開始定義了一個長度為20的整形數組,然后通過一個循環(huán),循環(huán)20次給它的每個元素賦初值,所以在第一個空格處應填各個元素的地址,即填&a[i]或a+i,然后再通過一個循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于0將其累加到變量sum中,所以第二個空格處應該填入數組元素,即應該填a[i]或*(a+i)。

30.6

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

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

33.完整性控制完整性控制

34.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

35.int*int*解析:從函數體中可看出,2是一個指向整型的指針,該函數的形參z是傳地址調用。

36.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數組a中元素a[i]與a[i+1]值相加后的值賦予數組b中元素b[i]小即可實現將一個數組的前項和后項之和存入另一數組。

37.校正性維護校正性維護

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

39.p!=NULLcount++(*p).next

40.structlist*nextstructlist*next解析:定義的指針類型變量next也應該是結構體類型的。

41.C解析:C語言的標識符的定義為:以字母或下劃線開頭的由字母、數字字符、下劃線組成的字符串。而且標識符不能與關鍵字相同。

42.B解析:本題考查while語句的使用。本題考查邏輯非運算符和不等于運算符的區(qū)別,邏輯非運算符'!'的優(yōu)先級大于不等于運算符'!='的優(yōu)先級。

43.C解析:線性結構,是指數據元素只有一個直接前件元素和直接后件元素。線性表是線性結構。棧和隊列是指對插入和刪除操作有特殊要求的線性表,樹是非線性結構。

44.D解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷,其遍歷順序應該為:后序遍歷左子樹->,后序遍歷右子樹->,訪問根結點。按照定義,后序遍歷序列是DEBFCA,故答案為D。

45.C

46.A解析:本題考查字符串比較函數strcmp()的應用。strcmp(s1,s2)是中比較函數,當s1>s2時返回值為正數,當s1<s2時返回值為負數,當s1=s2時返回值為零。本題中s1,s2分別表示兩個串中第一個字符的地址,s1++和s2++是將指針指向串的第二個字符,指針變量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指針變量s2指向的是字符'B'的地址。而在字符串比較中,寧符串大小的確定是各個字符串相應位置字符的ASCII碼值的大小決定的,字符'B'的ASCII碼值為66,字符“b”的ASCII碼值為98,所以s1>s2,返回值為正數。

47.C解析:C語言.中以,'\\0'作為字符串的結束符,且strlen函數計算的是,'\\0',字符前的所有字符的個數,故本題中strlen(a)應為2。數組定義以后系統就為其分配相應大小的內存空間,而不論其中有沒有內容。sizeof運算符是計算變量或數組所分配到的內存空間的大小,所以本題的sizeof(a)為7。

48.B

49.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項A)不選;注解行有利于對程序的理解,不應減少或取消,選項B)也不選;程序的長短要依照實際情況而論,而不是越短越好,選項C)也不選。

50.C解析:C語言中的關鍵字有32個關鍵字(參見C語言教程),本題中只有C符合題意。

51.D解析:C語言的程序是由主函數main()開始運行,由主函數來調用其他函數,所以D是錯誤的。

52.C解析:面向對象的設計方法與傳統的面向過程的方法有本質不同。它的基本原理是,使用現實世界的概念抽象地思考問題從而自然地解決問題。它強調模擬現實世界中的概念而不強調算法,它鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用應用領域的概念去思考。

53.D

54.B數據庫應用系統的邏輯設計包括數據庫邏輯結構設計、數據庫事務概要設計和應用程序概要設計三方面。數據庫邏輯結構設計的主要步驟為:將E—R圖轉換為初始關系模式,對初始關系模式進行優(yōu)化,檢查關系表對數據庫事務的支持性,確定關系模式完整性約束,設計基于關系模式的用戶視圖。

55.D解析:在本題中指針p指向變量a,q指向變量c。要把c插入到變量a和變量b之間,就應該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b。

56.B解析:二維數組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數組第一維的下標是i,說明它前面還有i行,有i*m個元素,數組第二維的下標是j,說明它前面還有j列,有j個元素,所以共有i*m+j個元素。

57.C解析:由于用了宏定義a[10]~a[19]均為0。函數fun的功能是把從a[n]到a[m]中的元素依次賦給后面的一個元素。調用了fun(a,2,9)以后,a[N]={1,2,3,3,4,5,6,7,8,9,10}。

58.A解析:fun()函數中聲明了兩個字符串指針作為形參,在其函數體中用了一個while循環(huán),首先while括號內表達式*p2=*p1是將p1所指的內容賦值到p2所指的存儲空間中,然后在判斷是否為'\\0',表達式的值為真時,執(zhí)行循環(huán)體,指針p1和p2分別下移一位,當p1指向字符'\\n'時,表達式的值為假,循環(huán)結束,故此函數的功能是將p1所指字符串復制到p2所指內存空間中。所以,4個選項中選項A符合題意。

59.D解析:本題中fun函數實現了字符串函數strcat的功能,將字符串aa連接到字符串ss的末尾。調用fun函數時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結束符的位置,第二個while循環(huán)將字符串aa中的字符(包括結束符'\\0')逐個復制到字符串ss的末尾處。

60.A\nA。【解析】二分法查找只適用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。

\n

61.D本題主要要求我們求判斷條件“i>j”執(zhí)行的次數。在本題的程序中,首先定義了四個整型變量,并分別賦初值,然后執(zhí)行for循環(huán)結構,該循環(huán)結構中都是缺省語句,那么如果循環(huán)體中沒有break語句,程序將面臨死循環(huán),從后面的程序中我們可以看出,程序中存在一條break語句。

第一次循環(huán)時,變量k的值為2,變量i的值被改變?yōu)?,而此時變量j的值為10,執(zhí)行if(i>j)語句,結果為假,不執(zhí)行break語句,然后改變變量s的值,一次循環(huán)結束。

通過對這次循環(huán)的分析,我們發(fā)現變量k的值一直沒被改變,而變量i值的改變與變量k有關,且每循環(huán)一次增加2,那么變量i的改變軌跡應該為0,2,4,6,8,10,12,當i等于12時,其值大于j,條件判斷語句結果為真,執(zhí)行break語句,結束循環(huán)。從這里我們可以推斷出循環(huán)執(zhí)行的次數為6,因此,判斷條件“i>j”執(zhí)行的次數也為6次,本題的正確答案選D。

62.B先將整型數據9強制轉換成double型,然后除以2得到的結果與double型保持一致,即為4.5,然后將4.5強制轉換成整型數據4,然后計算9%2的值為1,最后計算4一l的值為3,所以選擇B選項。

63.Da[1][2]的值為6.*ptr的值為1,*ptr+1=2是一個數組,所以(*ptr+1)[2]表示不正確。P=a,指向1,p+5是指針向后移動5個單元,即指向6,*(p+5)即是6,C項解釋同A,

64.D數據庫系統的3級模式是概念模式、外模式和內模式。故答案為D選項。

65.C子函數fun1(doublea)的功能是返回a的平方值的整數部分。子函數fun2(doublex,doubley)的功能是返回X的平方值的整數部分與Y的平方值的整數部分的和。又因為題中變量w的定義為double型,函數fun(2)的定義為int型,按照各類數值型數據間的混合運算,整型數據被轉換為實型數據。所以雙精度型變量w的值為5.0。

66.Afun函數將字符串中的小寫字符轉換為大寫字母,所以答案選擇A)。

67.C

68.CA選項指出“C語言中的注釋可以夾在變量名或關鍵字的中間”,該選項是正確的。通常采用/*.....*/作為C語言里的注釋符,注釋符之間的內容是方便他人理解程序而寫的,對編譯和運行不起作用。注釋可以在程序的任何位置。

B選項“C語言中使用變量必須是先定義后使用”,該選項是正確的。變量先定義后使用是編程語言的語法規(guī)則。這樣可以讓編譯器首先知道該定義變量的類型,可以事先為該變量安排好存儲空間,不至于最后編譯失敗。如果預先沒有定義,編譯器會因為不清楚該變量的類型而導致隨意分配內存空間,這樣可能導致空間分配過大了浪費或因為空間過小無法存儲數據。

C選項“C語言表達式運算符兩側的運算數類型必須一致”,該選項是錯誤的。C語言允許整型、實型、字符型數據間進行混合運算。在運算時,不同類型的數據要先轉換成同一類型,然后進行運算。

D選項“C語言的數值常量中夾帶空格不影響常量值的正確表示”,該選項是正確的??崭穹⒅票矸?、換行符等統稱為空白符??瞻追辉谧址A亢妥址A恐衅鹱饔谩T谄渌胤匠霈F時,只起間隔作用,編譯程序對它們忽略。因此,在程序中使用空白符與否,對程序的編譯不發(fā)生影響,但在程序中適當的地方使用空白符將增加程序的清晰性和可讀性。

69.B

70.D程序流程圖是軟件設計過程中常用的圖形描述工具之一。構成程序流程圖的最基本符號有:“→”或“↓”表示控制流,“口”表示加工步驟,“

”表示邏輯條件。

71.B在C語言中,函數是C程序的基本

溫馨提示

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

評論

0/150

提交評論