2021年湖南省益陽市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第1頁
2021年湖南省益陽市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第2頁
2021年湖南省益陽市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第3頁
2021年湖南省益陽市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第4頁
2021年湖南省益陽市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年湖南省益陽市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.對線性表進行折半查找時,必須要求線性表()。

A.順序方式存儲B.鏈式方式存儲C.以順序方式存儲,且結(jié)點按關(guān)鍵字有序排列D.以鏈式方式存儲,且結(jié)點按關(guān)鍵字有序排列

2.一個棧的輸入序列為123…n,若輸出序列的第一個元素是n,輸出第i(1<=i<=n)個元素是()

A.不確定B.n-i+1C.iD.n-i

3.

4.在一個順序隊列中,隊首指針指向隊首元素的____位置。

A.前一個B.后一個C.當前D.最后一個

5.串的長度是指()。

A.串中所含不同字母的個數(shù)B.串中所含字符的個數(shù)C.串中所含不同字符的個數(shù)D.串中所含非空格字符的個數(shù)

6.A[N][N]是對稱矩陣,將下面三角(包括對角線)以行序存儲到一維數(shù)組T[N(N+1)/2]中,則對任一上三角元素a[i][j]對應T[k]的下標k是()。

A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1

7.以下說法正確的是()。

A.函數(shù)可以返回另一個函數(shù)的整個函數(shù)體

B.函數(shù)返回值只能是基本數(shù)據(jù)類型的數(shù)值或指針

C.函數(shù)返回值可以是一個指向函數(shù)的指針

D.函數(shù)返回值可以是一個數(shù)組,同時返回多個值

8.設有以下語句:charstr1[]="string"mstr2[8],*str3,*str4=="string";則______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

9.有以下程序:#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序的運行結(jié)果是()。

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

10.

11.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)當執(zhí)行程序時,輸出的結(jié)果是()。A.-1B.1C.4D.0

12.下列程序的輸出結(jié)果是()。

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

A.-1B.0C.1D.2

13.最壞情況下時間復雜度不是n(n-1)/2的排序算法是()

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

14.下面關(guān)于串的的敘述中,哪一個是不正確的()。

A.串是字符的有限序列

B.空串是由空格構(gòu)成的串

C.模式匹配是串的一種重要運算

D.串既可以采用順序存儲,也可以采用鏈式存儲

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

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

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

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

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

16.若某線性表最常用的操作是存取任一指定序號的元素和在最后進行插入和刪除運算,則利用()存儲方式最節(jié)省時間。

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

17.下面是有關(guān)C語言字符數(shù)組的描述,其中錯誤的是()。

A.不可以用賦值語句給字符數(shù)組名賦字符串

B.可以用輸入語句把字符串整體輸入給字符數(shù)組

C.字符數(shù)組中的內(nèi)容不一定是字符串

D.字符數(shù)組只能存放字符串

18.若有下列定義(設int類型變量占2個字節(jié)):

inti=8;

則下列語句:

printf("i=%08d",i);

輸出的結(jié)果是()。A.A.i=8B.i=00000008C.i=08D.8

19.關(guān)于指針,以下說法正確的是()。A.可以直接向指針中寫入數(shù)據(jù)

B.若指針指向變量,則可以向指針所指內(nèi)存單元寫入數(shù)據(jù)

C.指針可以指向內(nèi)存中任何位置,并寫入數(shù)據(jù)

D.兩個指針可以通過加運算求和,形成一個功能更強大的指針

20.在以下的敘述中,正確的是()。

A.線性表的順序存儲結(jié)構(gòu)優(yōu)于鏈表存儲結(jié)構(gòu)

B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表

C.棧的操作方式是先進先出

D.隊列的操作方式是先進后出

二、2.填空題(20題)21.棧的3種基本運算是:入棧、退棧和______。

22.設有如下定義

#defineMYSWAP(z,x,y){z=x;x=y;y=z;}

floata=5,b=16,c;

MYSWAP(______,a,b);

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

24.設有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。

25.有以下程序,其功能是:以二進制“寫”方式打開文件d1.dat,寫入1~100這100個整數(shù)后關(guān)閉文件。再以二進制“讀”方式打開文件d1.dat,將這100個整數(shù)讀入到另一個數(shù)組b中,并打印輸出。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

inti,a[100],b[100];

fp=fopen("d1.dat","wb");

for(i=0;i<100;i++)a[i]=i+1;

fwrite(a,sizeof(int),100,fp);

fclose(fp);

fp=fopen("d1.dat",【】);

fread(b,sizeof(int),100,fp);

fclose(fp);

for(i=0;i<100;i++)printf("%d\n",b[i]);

}

26.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

27.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

28.算法的執(zhí)行過程中,所需要的存儲空間稱為算法的【】。

29.若a是int型變量,且a的初值為4,則計算a+=a-=a*a表達式后a的值為______。

30.有以下程序

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(int(*fl)(),int(*f2)(),intx}

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

31.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。

32.最簡單的交換排序方法是______。

33.關(guān)系操作的特點是______操作。

34.軟件設計模塊化的目的是______。

35.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第。列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中的其他數(shù)據(jù)不變。

#defineN4

voidrotate(inta[][N],intb[][N])

{int,i,j;

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

{b[i][N-1]=【】;

【】=a[N-1][i];

}

}

36.以下程序的輸出結(jié)果是【】。

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

37.防止軟盤感染病毒的最有效的方法是【】。

38.以下函數(shù)的功能是計算s=1+1/2!+1/3!+……+1/n!,請?zhí)羁铡?/p>

doublefun(intn)

{

doubles=0.0,fac=1.0;inti;

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

{

fac=fac______;

s=s+fac;

}

returns;

}

39.數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應用程序不必修改,稱為【】。

40.要使以下程序段輸出10個整數(shù),請?zhí)钊胍粋€整數(shù);

for(i=0;i<=【】;printf("%d\n",i+=2));

三、1.選擇題(20題)41.有以下程序main(){charatr[]="xyz",*ps=str;while(*ps)ps++;for(ps--;ps-str>=0;ps--)puts(ps);}執(zhí)行后輸出結(jié)果是

A.yzxyzB.xyzC.zyzxyzD.xxyxyz

42.索引屬于()。

A.模式B.內(nèi)模式C.外模式D.概念模式

43.若運行時給變量x賦值12,則以下程序的運行結(jié)果是()。#include<stdio.h>main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}

A.0B.22C.12D.10

44.以下四個程序中,完全正確的是()。

A.#include<stdio.h>

B.#include<stdio.h>main();main(){/*programming*/{/*/programming/*/printf("programming!\n");}printf("programming!\n");}

C.#include<stdio.h>

D.include<stdio.h>main()main(){/*/*programming*/*/{/*programming*/printf("programming!\n");}printf("programming!\n");}

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

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

46.已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使I、j、k的值分別為2、3、4,

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scanf("%d,%d,%d",&i,&j,&k);

C.scanf("%d%d%d",&i,&j,&k);

D.seanf("i=%dj=%d,k=%d",&i,&j,&k);

47.如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意順序

48.以下程序運行時若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對值,應在程序空缺處填入的正確選項是()。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)

49.若有定義int*p[3];,則以下敘述中正確的是______。

A.定義了一個基類型為int的指針變量p,該變量有三個指針

B.定義了一個指針數(shù)組p,該數(shù)組含有三個元素,每個元素都是基類型為int的指針

C.定義了一個名為*p的整型數(shù)組,該數(shù)組含有三個int類型元素

D.定義了一個可指向二維數(shù)組的指針變量p,所指一維數(shù)組應具有三個int類型元素

50.C語言可執(zhí)行程序的開始執(zhí)行點是()。

A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

51.在以下一組運算符中,優(yōu)先級最高的運算符是()

A.<=B.=C.%D.&&

52.軟件設計中模塊劃分應遵循的準則是()。A.低內(nèi)聚低耦合

B.高內(nèi)聚低耦合

C.低內(nèi)聚高耦合

D.高內(nèi)聚高耦合

53.以下敘述中正確的是A.break語句只能用于switch語句體中

B.continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

54.有以下函數(shù)定義:voidfun(intn,doublex){......}若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用語句是______。

A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfun(n,x);

55.數(shù)據(jù)庫設計的根本目標是要解決()。

A.數(shù)據(jù)共享問題B.數(shù)據(jù)安全問題C.大量數(shù)據(jù)存儲問題D.簡化數(shù)據(jù)維護

56.設a=5,bc6,c=7,d=8,m=2,n=2,執(zhí)行(m=a>b)&&(n=c>b)后n的值為______。

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

57.下列程序的輸出結(jié)果,是______。main(){inta=0,b=0,c=0;if(++a>0||++b>0)++c;printf("\na=%d,b=%d,c=%d",a,b,c);}

A.a=0,b=0,c=0B.a=1,b=1,c=1C.a=1,b=0,c=1D.a=0,b=1,c=1

58.設intx=1,y=1;表達式(!x‖--y)的值是()。

A.0B.1C.2D.-1

59.下列敘述中j下確的是()。

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)

B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上3種說法都不對

60.C語言中,能識別處理的文件是()。

A.文本文件和數(shù)據(jù)塊文件B.文本文件和二進制文件C.流文件和文本文件D.數(shù)據(jù)文件和二進制文件

四、選擇題(20題)61.(30)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括()

A.排序、索引、統(tǒng)計

B.選擇、投影、連接

C.關(guān)聯(lián)、更新、排序

D.顯示、打印、制表

62.若變量已正確定義為int型,要通過語句給a賦值l、+給b賦值2、給c賦值

3,以下輸入形式中錯誤的是()(注:口代表一個空格符)。

63.

64.

65.

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

A.概念設計和邏輯設計

B.模式設計和內(nèi)模式設計

C.內(nèi)模式設計和物理設計

D.結(jié)構(gòu)特性設計和行為特性設計

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

A.字符型數(shù)組中可能存放字符串。

B.可以對字符型數(shù)組進行整體輸入、輸出。

C.可以對整型數(shù)組進行整體輸入、輸出。

D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進行整體賦值。

68.

69.有以下程序

70.

已知有如下結(jié)構(gòu)體:

structsk

{inta;

floatb;

}data,*p;

若有P=&data,則對data的成員a引用正確的是()。

A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)

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

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

72.有如下說明

inta[10]={1,2,3,4,5,6,7},*p=a;

則數(shù)值為5的表達式是

A.*p+4B.*(p+4)C.*p+=4D.p+4

73.設有如下定義:char*aa[2]={"abcd","ABCD"};則以下說法中正確的是()。

A.aa數(shù)組成元素的值分別是"abcd"和ABCD"

B.aa是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組

C.aa數(shù)組的兩個元素分別存放的是含有4個字符的一維字符數(shù)組的首地址

D.aa數(shù)組的兩個元素中各自存放了字符’a’和’A’的地址

74.有如下說明

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

則數(shù)值為9的表達式是

A.*p+9B.*(p+8)C.*p+=9D.p+8

75.

76.下列工具中為需求分析常用工具的是()。

A.PADB.BFDC.N-SD.DFD

77.下列關(guān)于結(jié)構(gòu)化設計原則的描述,錯誤的是

A.在塊和進程的非正常出口處往往需要調(diào)用GOTO語句,使用GOTO語句使程序執(zhí)行效率提高,但是濫用GOTO語句確實有害,應該避免使用GOTO語句

B.程序設計時應該自頂向下,逐步求精

C.程序設計時,應該將復雜問題進行模塊化,就是將程序設計的總目標分解為若干個分目標,再進一步分解為具體的小目標

D.在進行程序設計時,應該盡量在一行寫一條語句,盡量做到效率第一,清晰第二

78.Internet使用的網(wǎng)絡協(xié)議是()。

A.3CP協(xié)議B.TCP/IP協(xié)議C.UDP協(xié)議D.IP協(xié)議

79.有以下程序在VC6平臺上編譯運行。程序運行后的輸出結(jié)果是(

)。

A.4,8B.4,4C.2,4D.10,6

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

A.123B.234C.223D.233

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計算正整數(shù)m各位上數(shù)字的平方和。 例如,輸入498,則輸出應該是161。 請修改程序中的錯誤,使它能得到正確結(jié)果。 注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。 試題程序: #include<stdlib.h> #include<stdio.h> #include<conio.h> longproc(10ngm) {//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum); } voidmain {longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n)); }

六、程序設計題(1題)82.編寫函數(shù)fun(),其功能是:求SS所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串“123412132”,輸入字符為“1”,則輸出3。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入編寫的若干語句。試題程序:

參考答案

1.C

2.B

3.A

\r\n

4.A

5.B解析::串的長度定義為串中字符的數(shù)目。所以B)為正確答案。C)答案不正確,因為串中可以含有相同的字符;A)答案不正確,因為串中可能含有相同的字母,而且也可能含有數(shù)字等其他非字母字符;D)答案不正確,因為空格也是一種字符,在計算長度時理應將其計算在內(nèi)。

6.B

7.C函數(shù)的返回值是通過return語句返回的,返回值是一個表達式,不限于基本數(shù)據(jù)類型或指針,也可以是結(jié)構(gòu)體類型等,但不能是數(shù)組,選項A、B、D錯誤;函數(shù)的返回值可以是一個指向函數(shù)的指針,選項C正確。故本題答案為C選項。

8.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。

9.D執(zhí)行語句“intm=1,n=2,*p=&m,*q=&n,*r;”,即指針變量p指向m,指針變量q指向n。執(zhí)行語句“r=p;p=q;q=r;”,即通過指針變量r,將指針p和指針q的指向交換。因此最后輸出1,2,2,1。故本題答案為D選項。

10.C

11.A本題考查do-while循環(huán)。當--y是0(即y是o)時結(jié)束循環(huán),輸出--y,先將y的值減1再輸出Y的值。

12.A解析:本題考查ifelse語句。在intf(a,B)中:第一個if語句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對的else語句:第二個if語句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對的else語句,c=-1。

13.D

14.B

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

16.A

17.D\n用來存放字符量的數(shù)組稱為字符數(shù)組。字符數(shù)組也可以是二維或多維數(shù)組,對一個字符數(shù)組,如果不作初始化賦值,則必須說明數(shù)組長度,還可用printf函數(shù)和scarlf函數(shù)一次性輸出/輸入一個字符數(shù)組中的字符串,而不必使用循環(huán)語句逐個地輸入/輸出每個字符。通常用一個字符數(shù)組來存放一個字符串。所以D選項不正確。

\n

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

19.BC語言中指針就是變量的地址,它必須有確定的基類型。當指針指向某個變量時,才能向其中寫入數(shù)據(jù),選項A錯誤,選項B正確;指針除了指向變量外,還可以賦值為NULL,表示未指向任何地址,此時不能寫入數(shù)據(jù),另外指針必須有基類型,只能指向基類型相同的變量,選項C錯誤;指針只能與一個整數(shù)進行運算,即移動指針,兩個指針不能運算,選項D錯誤。本題答案為B選項。

20.B

21.讀棧頂元素讀棧頂元素解析:棧的基本運算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個新的元素;退棧是指取出棧頂元素并賦值給一個變量;讀棧頂元素是將棧頂元素賦值給一個指定的變量,不刪除棧頂元素。

22.CC解析:本題關(guān)鍵在考生是不是了解宏的基本運用,再使用宏的時候明顯少了一個實參。在定義宏的時候變量z是用來做中間變量的,題目中缺的變量就是一個中間變量C。

23.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

24.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標記形式有abc.a和p_abc->a。

25.rb或"r+b"或"rb+"rb或'r+b'或'rb+'解析:根據(jù)題目要求,在下劃線位置應該填入一個能實現(xiàn)二進制讀的使用文件方式的參數(shù)即可。所以,可以填'rb'或'r+b'或'rb+'。

26.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。

27.!=returnj!=,returnj解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標,i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標,所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。

28.空間復雜度空間復雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復雜度。

29.-24-24解析:本題考查賦值運算符a+=b等價于a=a+b;a-=a*a等價于a=a-a*a=4-4*4=-12;a+=a,即a=a+a=-24。

30.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的齜23-22=4。

31.空間復雜度和時間復雜度算法的復雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復雜性,算法的計算量是算法的時間復雜性。

32.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

33.集合集合

34.降低復雜性降低復雜性

35.a[0][i]b[i][0]a[0][i]b[i][0]解析:根據(jù)題意,第一處所在語句行的作用是把a數(shù)組中的第0行放到b數(shù)組的最后一列中,a數(shù)組的第0行用a[0][]來表示,所以第一處填a[0][i];第二所在語句行的作用是將a數(shù)組的最后一行放到b數(shù)組的第0列中,b數(shù)組的第0列用b[][0]來表示,所以,第二處應填b[i][0]。

36.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。

37.進行寫保護進行寫保護

38./i或*1.0/i或*1/i或*(1.0/i)或/(double)i/i或*1.0/i或*1/i或*(1.0/i)或/(double)i解析:主函數(shù)中首先定義了兩個double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項的值。通過分析可知,第i項的值可以由第i-1項的值得到,即第i項是第i-1項的值除以i。可見橫線處應添“/i”或與它等價的表達式。

39.物理獨立性物理獨立性解析:數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應用程序不必修改,稱為物理獨立性。

40.18或1918或19

41.C解析:執(zhí)行while循環(huán),使指針變量ps指向字符串“xyz”的字符串結(jié)束標志,然后執(zhí)行for循環(huán),先執(zhí)行“ps--”,使ps指向字符“z”,故puts(ps)輸出結(jié)果為“z”;再次執(zhí)行“ps--”,使ps指向字符“y”,故puts(ps)輸出結(jié)果為“yz”;再次執(zhí)行“ps--”,使ps指向字符“x”,故puts(ps)輸出結(jié)果為“xyz”,退出循環(huán)。

42.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應保持相同的值。

43.A解析:條件運算符“?:”是三目運算符,其形式為:

表達式17表達式2:表達式3

當表達式1的值為真時,則表達式2的值為整個表達式的值;如果表達式1的值為假,則表達式3的值為整個表達式的值。題中,表達式x>12的結(jié)果為假,所以將表達式x-12的值0作為y的值。

44.B解析:選項A中的main()后面不能直接用分號。選項C中的注釋符使用不正確,編譯器會把從第一個“/*到第一個*/”之間的當作注釋,最后一個“*/”會被作為程序代碼去編譯。選項D中的include前要加上#表示是預定義語句。

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

46.B解析:scanf函數(shù)的調(diào)用形式是:scanf(格式字符串;輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時要求按一一對應的位置原樣輸入這些字符,其中的逗號也必須輸入。

47.B解析:由?!昂筮M先出”的特點可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中棧是先進后出的,所以不可能是任意順序。所以B是正確的。它執(zhí)行的順序是:e1進?!鷈2進棧→e2出?!鷈3進?!鷈4進?!鷈4出?!鷈3出棧→e1出棧,所以只看出棧序列應為e2,e4,e3,e1。

48.B解析:可以使用函數(shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實參表列)。注意:調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞。

49.B解析:由于運算符[]優(yōu)先級比*高,int*p[3];相當于int*(p[3]);,表示數(shù)組p的三個元素都是指針變量,且每個元素都是基類型為int的指針。

50.C解析:每個C程序有且只有一個主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。

51.C

52.B解析:耦合性和內(nèi)聚性足模塊獨立性的兩個定性標準。內(nèi)聚性是一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度量,作為軟件結(jié)構(gòu)設計的設計原則,要求每個模塊的內(nèi)部都具有很強的內(nèi)聚性;耦合性是指模塊間相互連接的緊密程度的度量,一個模塊與其他模塊的耦合性越強則該模塊的獨立性越弱。一般優(yōu)秀的軟件設計應盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。

53.C解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當break出現(xiàn)在循環(huán)體中的switch語句體內(nèi)時,其作用只是跳出該switch語句體。當break出現(xiàn)在循環(huán)體中,但并不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)。

54.C解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(實參表列);,實參與形參的個數(shù)應相等,類型應一致,在調(diào)用函數(shù)時,不要指定其返回類型,對于返回類型為void的函數(shù),不能作為賦值表達式的組成部分,所以選C。

55.A解析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個應用所共享,特別是在網(wǎng)絡發(fā)達的今天,數(shù)據(jù)庫與網(wǎng)絡的結(jié)合擴大了數(shù)據(jù)關(guān)系的應用范圍。數(shù)據(jù)的共享本身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。因此,數(shù)據(jù)庫設計的根本目標是要解決數(shù)據(jù)共享問題。

56.B解析:m=a>b的值為邏輯值0,n=c>b不被執(zhí)行,n的值仍為2。

57.C解析:“||”是或運算,它有個“短路”的特點需特別注意,當“||”運算符左邊的表達式的值為真時,則程序就不再對“||”右邊的表達式的值進行運算,而是使得整個表達式的值直接為真。

58.A解析:當邏輯或運算符兩邊的運算對象至少有一個為1時,整個邏輯表達式的值是1;如果兩邊的運算對象都為0,則整個邏輯表達式的值為0。題中!x=0,--y=0,所以整個表達式的值是0。

59.A解析:程序執(zhí)行的實際計算工作量與不僅與程序的控制結(jié)構(gòu)有一定的關(guān)系,與處理的數(shù)據(jù)量有關(guān),而民還與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。所以,選項A正確,選項B和選項C錯誤。

60.B解析:在計算機中,對于輸入輸出均采用數(shù)據(jù)流的形式。文件按照存取方式分為順序存取文件和隨機存取文件;按照存儲形式分為二進制文件和文本文件。文本文件存儲的是字符的ASCII碼,文件的內(nèi)容可以直接進行輸入輸出;二進制文件直接將字符存儲,不能將二進制文件的內(nèi)容直接輸出到屏幕上。所以,C語言能夠處理的文件是文本文件和二進制文件。

61.B

62.A本題考查的是格式化輸入函數(shù)scanf()基本用法。使用該語句時,要求除格式控制符以外的字符都要原樣輸入,

“,”為非格式符,要原樣輸入。選項A)中沒有輸入非格式符“,”,所.以是不正確的。

63.B

64.A

65.C

66.A

67.C

68.C

69.A函數(shù)‰的功能是將字符串倒序,所以結(jié)果選擇A)。

70.B

\n本題主要考查結(jié)構(gòu)指針:P=&data,訪問結(jié)構(gòu)體的成員。它可以通過結(jié)構(gòu)變量訪問,即data,可以用等價的指針形式:(*p).a(chǎn)和P->a來訪問結(jié)構(gòu)體變量中的成員。

\n

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

72.B本題考查C語言的數(shù)組元素的引用方法。我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達式*(p+0)即*p來引用;對于數(shù)組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”*(p+1)就代表存儲單元a[1],注意,一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達式*(p+2)來引用,……,對于數(shù)組元素a[9],可以用表達式*(p+9)來引用。因此

溫馨提示

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

評論

0/150

提交評論