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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.定義int*swap()指的是______。

A.—個返回整型值的函數swap()

B.一個返回指向整型值指針的函swap()

C.一個指向函數swap()的指針,函數返回一個整型值

D.以上說法均錯

2.設有二元關系R和三元關系s,下列運算合法的是()。

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

3.合法的main函數命令參數形式是()。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

4.

5.一個順序棧一旦聲明,其占用空間的大小()。

A.已固定B.可以變動C.不能固定D.動態變化

6.已知一個有序表為(15,19,30,33,49,50,65,88,93,126,164),當二分查找值為126的元素時,檢索成功需進行的比較次數為()。

A.1次B.2次C.3次D.4次

7.有以下程序:

程序運行后的輸出結果是()。A.AaB.AbC.abD.Ba

8.十六進制數FF.1轉換成十進制數是()

A.255.0625B.255.125C.127.0625D.127.125

9.如果一個函數位于C程序文件的上部,在該函數體內說明語句后的復合語句中定義了一個變量,則該變量().

A.為全局變量,在本程序文件范圍內有效

B.為局部變量,只在該函數內有效

C.為局部變量,只在該復合語句中有效

D.定義無效,為非法變量

10.判斷一包含n個整數的數組a[]中是否存在i、j、k滿足a[i]+a[j]+a[k]=0的時間復雜度需要()

A.O(n^2)B.O(n^2logn)C.O(n^3)D.O(nlogn)

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

A.函數的返回值類型不能是結構體類型,只能是簡單類型

B.函數可以返回指向結構體變量的指針

C.可以通過指向結構體變量的指針訪問所指結構體變量的任何成員

D.只要類型相同,結構體變量之間可以整體賦值

12.若有定義“intx=12,y=8,z;”,在其后執行語句“z=0.9+x/y;”,則z的值為()。

A.1B.1.9C.2D.2.4

13.有以下程序#include<stdio.h>#include<string.h>main(){chara[10]=”abcd”;printf("%d,%d\n",strlen(a),sizeof(a));}程序運行后的輸出結果是()。A.7,4B.4,10C.8,8D.10,10

14.有以下函數intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函數的功能是()。A.查找X和y所指字符串中是否有\o

B.統計x和Y所指字符串中最前面連續相同的字符個數

C.將Y所指字符串賦給X所指定存儲空間

D.統計X和Y所指字符串中相同的字符個數

15.執行下述程序后,輸出的結果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0

16.設變量已正確定義并賦值,下列表達式中正確的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

17.

18.執行下列程序段后的輸出結果是()。A.3B.2C.1D.4

19.下面敘述正確的是______。A.算法的執行效率與數據的存儲結構無關

B.算法的空間復雜度是指算法程序中指令(或語句)的條數

C.算法的有窮性是指算法必須能在執行有限個步驟之后終止

D.以上三種描述都不對

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

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

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

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

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

二、2.填空題(20題)21.下面程序的運行結果是【】。

#include<stdio.h>

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

22.以下程序的運行結果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}

23.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

24.軟件工程研究的內容主要包括:軟件開發技術和【】。

25.在面向對象方法中,允許作用于某個對象上的操作稱為【】。

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

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

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

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

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

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

29.strcat函數的作用是【】。

30.下列程序的功能:對輸入的一行字符中的數字字符的字面值累加,輸出此累加和,請填空。

#include<stdio.h>

#include<ctype.h>

main()

{charc;

inta,s=0;

while(______)

if(isdigit(c))

{a=c-'0';s+=a;}

printf("s=%d",s);

}

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

32.下面的程序實現的是從指針p所指向的地址的n個數中,找出最大的和最小的數據,請填空。

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;______;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

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

intn='c';

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("morning");

case'd':printf("class");

}

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

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2=&b,*p;

*(p=&c)=*p1*(*p2);

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

}

35.下列程序的運行結果為【】。

main()

{inta=5,b=5,y,z;

y=b-->++a?++b:a;

z=++a>b?a:y;

printf("%d,%d,%d,%d",a,b,y,z);

}

36.深度為5的滿二叉樹中,葉子結點的個數為______。

37.在樹形結構中,沒有前件的結點是()。

38.下面的程序實現的是從指針p所指向的地址的n個數中,找出最大的和最小的數據,請填空。

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

39.下面程序的功能是將一個字符串str的內容顛倒過來,請填空。

#include<string.h>

main()

{inti,j,【】;charstr[]={"1234567"};

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

printf("%s\n",str);}

40.以下程序實現帶有頭結點的單鏈表的建立,鏈表中每個結點包含數據域data(字符型)和指針域next,所建立鏈表的頭指針由參數phd傳回調用程序。在空格處填入正確內容。

#include<stdio.h>

#include<stdlib,h>

structnode{

chardata;

structnode*next;

};

voidcreatlist(【】)

{

charch;

structnode*s,*r;

*phd=malloc(sizeof(structnode));

r=*phd;

ch=getchar();

while(ch!='@'){

s=malloc(sizeof(structnode));

s->data=ch;

r->next=s;

r=s;

ch=getchar();

};

r->next=【】;

}

main()

{

structnode*head;

head=NULL;

creatlist(【】)

}

三、1.選擇題(20題)41.若程序中已包含頭文件stdio.h,以下選項中,正確運用指針變量的程序段是

A.int*i=NULL;scanf("%d",i);

B.float*f=NULL;*f=10.5;

C.chart='m',*c=&t;*c=&t;

D.long*L;L='\0';

42.不能把字符串"Hello!"賦給數組b的語句是______。

A.charb[10]={'H','e','l','l','o','!'};

B.charb[10]={'h','e','l','l','o','!'};

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

43.假定建立了以下鏈表結構,指針p、q分別指向如圖所示的結點,則以下可以將q所指結點從鏈表中刪除并釋放該結點的語句組是______。

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

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

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

44.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

45.開發大型軟件時,產生困難的根本原因是()。

A.大型系統的復雜性B.人員知識不足C.客觀世界千變萬化D.時間緊、任務重

46.有以下程序:main(){inti,s=1;for(i=1;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d\n",s);}程序的輸出結果是

A.409B.277C.1D.91

47.C語言允許函數類型缺省定義,此時函數值隱含的類型是()。

A.floatB.intC.longD.double

48.開發軟件所需高成本和產品的低質量之間有著尖銳的矛盾,這種現象稱做()。A.軟件矛盾B.軟件危機C.軟件藕合D.軟件產生

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

A.在面向對象的程序設計中,各個對象之間具有密切的聯系

B.在面向對象的程序設計中,各個對象都是公用的

C.在面向對象的程序設計中,各個對象之間相對獨立,相互依賴性小

D.上述三種說法都不對

50.數據庫系統的核心是()。

A.數據模型B.數據庫管理系統C.數據庫D.數據庫管理員

51.下列程序的輸出結果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}

A.-8B.14C.0D.-24

52.若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

53.下列關于棧的敘述中正確的是

A.在棧中只能插入數據B.在棧中只能刪除數據C.棧足先進先出的線性表D.棧是先進后出的線性表

54.字符(char)型數據在微機內存中的存儲形式是______。

A.反碼B.補碼C.EBCDIC碼D.ASCII碼

55.下列選項可以正確表示字符型常量的是

A.'\r'B.aC.\897D.296

56.下面的程序段運行后,輸出結果是inti,j,x=0;staticinta[8][8];for(i=0;i<3;i++)for(j=0;j<3;j++)a[i][j]=2*i+j;for(i=0;i<8;i++)x+=a[i][j];printf("%d",x);

A.9B.不確定值C.0D.18

57.下列程序的輸出結果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}

A.5,6B.5,5C.6,6D.6,5

58.在使用程序流程圖來表示算法時,菱形用來表示_______。

A.輸入與輸出B.子程序C.判斷分支D.循環邊界

59.若有下列定義(設int類型變量占2個字節):inti=8;則下列語句:printf("i=%08d",i);輸出的結果是()。

A.i=8,B.i=00000008,C.i=08,D.8

60.以下程序的輸出結果是main(){inta=5,b=4,c=6,d;printf((“%d\n”,d=a>b?)(a>c?a:c):(b));}

A.5B.4C.6D.不確定

四、選擇題(20題)61.軟件按功能可以分為應用軟件、系統軟件和支撐軟件(或工具軟件),下面屬于系統軟件的是()。A.學生管理系統B.C語言編譯程序C.UNIX操作系統D.數據庫管理系統

62.下列是用戶自定義標識符的是()。

A._wlB.3_xyC.intD.LINE-3

63.

有以下程序:

voidf(intx,inty)

{intt;

if(x<y){t=x;x=Y;y=t;)

}

main

{inta=4,b=3,c=5;

f(a,b);f(a,c);f(b,c);

printf("%d,%d,%d\n",a,b,c);

}

執行后輸出結果是()。

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

64.有以下程序:

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

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

65.

66.

67.有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

printf("%s,%s\n",s1,s2);

}

程序執行后的輸出結果是()。A.A.123,abeB.abc.123C.1bc,a23D.321,cba

68.

69.以下選項中正確的語句組是()。

70.若有定義語句:“charS[3][10],(*k)[3],*p;”,則以下賦值語句正確的是()。

A.p=S;B.p=k;C.p=s[0];D.k=s;

71.

下面for語句的循環次數為()。

for(x=1,y=0;(y!=19)&&(x<6);x++);

A.是無限循環B.循環次數小定C.最多執行6次D.最多執行5次

72.

73.有以下程序:

#include<stdio.h>

structSTU{charname[9];charsex;intscore[2];};

voidf(structSTUa[])

{structSTUb={"Zhao",m,85,90);

a[1]=b;

}

main()

{structSTUc[2]={{"Qian",f,95,92},{"Sun",m98,99}};

f(c);

printf(”%s,%c,%d,%d,¨,c[o].name,c[o].sex,c[o].score[o],c[o].score[1]);

printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[o],c[1].score

[1]);

}

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

A.Zhao,m,85,90,Sun,m,98,99

B.Zhao,m,85,90,Qian,f,95,92

C.Qian,f,95,92,Sun,m,98,99

D.Qian,f,95,92,Zhao,m,85,90

74.不能把字符串:Hello!賦給數組b的語句是()。

A.charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};

B.charb[10];b="Hello!";

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

75.若變量c為char類型,能正確判斷出c為小寫字母的表達式是_______。A.′a′<=c<=′z′

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

C.(′a′=C)

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

76.HTTP協議的消息有()兩種類型。

A.發送消息和接收消息B.請求消息和響應消息C.消息頭和消息體D.實體消息和控制消息

77.某二叉樹共有7個結點,其中葉子結點只有l個,則該二叉樹的深度為(假設根結點在第1層)()。

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

78.有以下程序

#include<stdio.h>

voidfun(intx)

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

printf("%d",x);

}

main

{fun(7);printf("\n");}

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

A.137B.731C.73D.37

79.

80.設有以下語句:typedefstructTY{charC;inta{41;}CIN;

則下面敘述中正確的是()。

A.CIN是structTr類型的變量

B.TT是struct類型的變量

C.可以用,lr定義結構體變量

D.可以用CIN定義結構體變量

五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:將m(1≤m≤10)個字符串連接起來,組成一個新串,放入pt所指字符串中,例如,把2個字符串abc、CD串聯起來,結果是abcCD。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.請編一個函數intfun(inta),它的功能是:判斷a是否是素數,若a是素數,返回1;若不是素數,返回0。A的值由主函數從鍵盤讀入。

參考答案

1.B解析:—個函數可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數據,即地址。本題的定義中,包括括號和*號,由于()優先級高于*。故它是—個返回整型指針的函數。

2.D本題給出的兩個關系R與S的表結構是不同的(R是二元關系,S是三元關系),它們不能進行∩、∪、一運算。而兩個不同結構的關系是可以進行笛卡兒積(×)運算的。

3.C在C語言中,main函數也可以有參數,例如,main(intar90,char*argv),argc是指字符串的指針數組,而其他幾項表達不正確。

4.B

5.A

6.C

7.B函數fun將形參b賦給形參a,使得a和b都指向原b所指向的地址,然后對該地址的值執行自增1;main函數中p1指向ch1,p2指向ch2。通過fun函數的調用,將ch2的值完成自增1,字符’a’自增1后變成字符’b’,所以程序輸出:Ab。本題答案為B選項。

8.A

9.C

10.A

11.A函數返回值類型可以是簡單類型和結構體類型。

12.A在表達式“z=0.9+x/y”中,先計算“3.6-2”,結果為1;再計算“0.9+1”,結果為1.9。因為變量z為整型,所以z的值為1。故本題答案為A選項。

13.Bstrlen是求字符串的長度,結果為4,sizeof是求數組的長度,而數據在定義時已給出長度為10。

14.B由題中while(*x==*y*x!=\\n)可知此函數是統計x和y所指向的字符串中最前面的聯系相同的字符的個數。

15.D本題j=要是考查帶參數的宏的定義,過程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。

16.A運算符“%”的左右兩個操作數均應為整數,所以B選項與D選項錯誤。C選項中不能將“x+z”的值賦給表達式“y*5”,所以C選項錯誤。故本題答案為A選項。

17.A

18.A

19.C解析:算法的執行效率與數據的邏輯結構和存儲結構都有很緊密的關系。算法的空間復雜度是指執行該算法需要的內存空間,并非算法程序中指令的條數。算法一般應該具有以下4個特征:可行性、確定性、有窮性和擁有足夠情報。其中,有窮性是指算法必須能在執行有限個步驟之后終止,否則可能失去實際意義。

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

21.1-21,-2解析:考查嵌套的循環結構。題中外層while循環的循環條件是\ue008y--!=-1\ue009,即y>=0;內層do厀hile循環的循環條件是y--,即y-->0,y>=1。

22.149161,4,9,16,解析:分析程序執行過程,第1次循環,k=1時,此時s(1)=1*1=1,然后k的值加1;第2次循環,k=2時,s(2)=2*2=4,然后k的值加1;第3次循環,k=3時,s(3)=3*3=9,然后k的值加1;第4次循環,k=4時,s(4)=4*4=16,然后k的值加1;當k=5時,條件不滿足,退出循環。

23.可重用性繼承的優點:相似的對象可以共享程序代碼和數據結構,從而大大減少了程序中的冗余,提高軟件的可重用性。

24.軟件工程管理軟件工程管理解析:軟件工程足指,采用工程的概念、原理、技術和方法指導軟件的開發與維護:軟件工程學的主要研究對象包括軟件開發與維護的技術、方法、工具和管理等方面。即軟件工程研究的內容主要包括:軟件開發技術和軟件工程管理。

25.方法方法解析:在面向對象方法中,方法是指允許作用于某個對象上的各種操作。

26.k=5k=5解析:本題主要考查了函數的遞歸調用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。

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

28.數據存儲數據存儲

29.連接兩個字符數組中的字符連接兩個字符數組中的字符解析:strcat函數的作用是連接兩個字符數組中的字符串。

30.分析題目可知,程序中運用函數c=getchar()從標準輸入設備讀取下一個字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。\r\n\r\n

31.1對多(或1:N)1對多(或1:N)

32.

33.morningclassmorningclass解析:本題考查了兩個知識點:①“++,--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當n='c'時,執行“case'c'”,輸出morning;因為此句中沒有break語句,因此接著執行“case'd':”,輸出class,最終輸出結果為morningclass。

34.88解析:本程序定義了3個指針變量p1、p2、p,并且將,、b的地址分別賦給P1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數8賦給了變量c。

35.7467

36.1616解析:滿二叉樹的葉子結點都在最后一層,即第4層,且第4層的結點達到最大數,即25-1=16。

37.根結點根結點

38.q<p+nq<p+n解析:考查對于函數的地址傳遞的掌握情況。通過地址傳遞可以在被調函數中對調用函數中的變量進行引用。

39.k-1k\r\n-1解析:顛倒一個字符串中的字符,就是首尾對應的元素兩兩交換。簡單地可用兩個游標變量i和j,i是前端元素的下標,j是后端元素的下標,交換以這兩個變量值為下標的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(字符串長度減1)。每次交換后,i增1,j減1。繼續交換的條件是str[i]還位于str[j]的前面,即i<j。字符串末元素的下標是它的長度減1,所以在第二個空框處應填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應在程序的變量定義部分中一起定義,所以在第一個空框處應填入k。

40.structnode**phdNULL&head

41.D解析:選項A定義了一個整型變量i,并且初始化讓它指向NULL,接著通過seanf()函數,改變i指向的存儲空間的值,選項A中首先定義了整型指針變量i并初始化為NULL,即表示指針i不指向任何內存,即此時程序還沒有為i在內存中開辟存儲單元,而在scanf()函數中笫;個參數是地址參數,顯然在這里i不在表示地址,所以下面的scanf('%d',i)語句是不正確的,故選項A不正確;選項B定義了一個浮點型變量f并初始化讓它指向NULL,而當一個指針變量指向NULL以后不能在給它賦值,而按下來的程序中為其賦了一值,故選項B錯誤;選項C中首先定義了一個字符變量t并給它賦初值\'m\',然后定義一個字符型指針c并讓它指向了變量t,這一部分正確,然后接著用了一個語句“c=&t;”應該特該語句中c前的“*”去掉,故選項c運用指針變量不正確。所以,4個選項中選項D符合題意。

42.B解析:在C語言中,大寫字母和小寫字母被認為是兩個不同的字符,因此,“hello!”和“Hello!”是兩個不同的字符串。

43.B解析:選項A的錯誤在于,先已經把q結點給釋放,無法再進行余下語句了:選項C和D的錯誤在于因為有了q=(*q).next做了賦值,則free(q)釋放了原來q后面的一個結點。

44.D解析:文件狀態檢測函數feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數返回非。值;否則返回0,表示文件尚未結束。

45.AA)【解析】隨著計算機軟件規模的擴大,軟件本身的復雜性不斷增加,研制周期顯著變長,正確性難以保證,軟件開發費用上漲,生產效率急劇下降,從而出現了人們難以控制軟件發展的局面,即所謂的“軟中#危機”。

46.D解析:本題是計算50之內的自然數相加之和,題中if語句括號中的條件表達式!(i%5)&&!(i%3)表明只有能同時被5和3整除的數才符合相加的條件,1~49之間滿足這個條件的只有3個數,15,30,45,因為s的初始值為1,所以s=1+15+30+45=91。故正確答案為D)。

47.B解析:在C語言中,對于自定義函數要遵循“先定義,后使用”的規則,如定義時,不指定函數類型,C編譯系統都默認函數的返回值是int型。

48.BB)【解析】隨著計算機軟件規模的擴大,軟件本身的復雜性不斷增加,研制周期顯著變長,正確性難以保證,軟件開發費用上漲,生產效率急劇下降,從而出現了入們難以控制軟件發展的局面,即所謂的“軟件危機”。

49.C解析:在面向對象的程序設計中,對象是面向對象的軟件的基本模塊,它是由數據及可以對這些數據施加的操作所組成的統一體,而且對象是以數據為中心的,操作圍繞對其數據所需做的處理來設置,沒有無關的操作。從模塊的獨立性考慮,對象內部各種元素彼此結合得很緊密,內聚性強。由于完成對象功能所需要的元素(數據和方法)基本上都被封裝在對象內部,它與外界的聯系自然就比較少,所以,對象之間的耦合通常比較松。所以,選項A與B錯誤,選項C正確。

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

51.D解析:表達式a+=a-=a*a看起來復雜,其實將它分成兩個表達式來計算就簡單了:①第一個表達式(a-=a*a)=(a=a-a*a=-12);②第二個表達式(a+=a-=a*a)=(a=a+a=-24)。

52.A解析:本題綜合考查字符數組的賦值和strcpy函數的用法。C語言不允許用賦值表達式對字符數組賦值,如下面的語句就是非法的:strl=“China”,如果想把“China”這5個字符放到數組strl中,除了逐個地輸入外,還能使用strcpy函數,該函數的功能是將一個字符串復制到一字符數組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給strl):strl=str2;不能用賦值語句將一個字符串常量或字符數組直接給一個字符數組。

strcpy函數的結構是:strcpy(字符數組1,字符串2)

其中,需要注意的是,字符數組1的長度不應小于字符串2的長度,“字符數組1”必須寫成數組名形式,如(strl),“字符串2”可以是字符數組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數組直接給一個字符數組。

53.D解析:對??蛇M行插入和刪除數據的操作,但必須牢記插入和刪除數據都只能在棧頂,是一種特殊的線性表.所以棧是先進后出的線性表。

54.D解析:將—個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內存單元中去,而是將該字符的ASCII碼值放到存儲單元中。

55.A解析:C語言中,一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號括起來作為字符常量,字符常量的范圍是0~127。由于字符常量用單引號括起來,所以選項B),C)錯誤,選項D)超過了字符常量的表示范圍。

56.C解析:本題主要考查的用二維數組首地址和下標來引用二維數組元素的方法。通過分析可知,程序中的雙重循環定義了一個如下的二維數組:

由于數組的下標是從0開始的,所以二維數組元素a[i][j]表示的是二維數組a的第i+1行、第j+1列對應位置的元素。

57.A解析:轉義字符'\\n'表示換行,'\\\\'表示反斜杠,函數strlen()是計算字符串的長度,不包括文件結束標志('\\0'),函數sizeof()統計字符串所占的字節數。

58.C解析:美國國家標準化協會ANSI規定了一些常用的流程圖符號,其中橢圓框表示起止框,方框表示處理框,菱形框表示判斷分支,箭頭表示流程線。

59.B解析:本題考查printf函數的格式?!?08”格式符中的“0”表示在指定數據輸出寬度的同時,在數據前面的多余空格處加“0”;“8”表示指定數據的輸出寬度為8位。

60.C解析:在C語言中問號表達式(如:a>c?a:c;)的計算規則為:如果a>c為真,那么表達式的值為a的值;否則表達式的值為c的值。本題

溫馨提示

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

評論

0/150

提交評論