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

付費下載

下載本文檔

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

文檔簡介

2022-2023年福建省南平市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有下列程序:

程序執(zhí)行后的輸出結果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7

2.現有以下結構體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續(xù)的3個結點。structnode{hardata;structnode*next;)*P,*q,*r;現要將q和r所指結點交換前后位置,同時要保持鏈表的結構,下列不能完成此操作的語句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;

B.q-:>next=r;q->next=r->next;r->next=q;

C.q-:>next=r->next;r->next=q;p->next=r;

D.q-:>next=q;p->next=r;q->next=r->next;

3.有以下程序:#include<stdio.h>voidmain(){doublex=3.14159;printf(“%f\n”,(int)(x*1000+0.5)/(double)1000);}程序運行后的輸出結果是()。

A.3.142000B.3.141000C.3.143000D.3.140000

4.下列不正確的轉義字符是()。

A.'\\'B.'\t'C.'\n\D.'088'

5.有以下程序:

#include<stdio.h>

voidfunc(intn)

{staticintnum=1);

num=num+n;printf("%d",num);

}

main()

{funo(3);func(4);printf("n");}

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

A.48B.34C.35D.45

6.如下程序的時間復雜度為(其中m>1,e>0)A.logmB.m的平方C.m的1/2方D.m的1/3方

7.

8.下列敘述中錯誤的是()。A.在程序中凡是以“#”開始的語句行都是預處理命令行

B.預處理命令行的最后不能以分號表示結束

C.#defineMAX是合法的宏定義命令行

D.C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的

9.設主串T='aabaababaabaa',子串P:'abab',則簡單模式匹配算法中直至匹配成功,單個字符比較的次數為()。

A.12B.13C.14D.15

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

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

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

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

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

11.某線性表中最常用的操作是在最后一個元素之后插入一個元素和刪除第一個元素,則采用()存儲方式最節(jié)省運算時間。

A.單鏈表B.僅有頭指針的單循環(huán)鏈表C.雙鏈表D.僅有尾指針的單循環(huán)鏈表

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

A.C程序可以由多個程序文件組成

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

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

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

13.設一棵滿二叉樹共有15個結點,則在該滿二叉樹中的葉子結點數為()

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

14.以下程序的輸出結果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147

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

A.可以通過typedef增加新的類型

B.可以typedef將已存在的類型用一個新的名字來代表

C.用typedef定義新的類型名后,原有類型名仍有效

D.用typedef可以為各種類型起別名,但不能為變量起別名

16.

17.有以下程序段#include<stdio.h>main(){...while(getchar()!=\n);...}以下敘述中正確的是()。A.此while語句將無限循環(huán)

B.getchar()不可以出現在while語句的條件表達式中

C.當執(zhí)行此while語句時,只有按回車鍵程序才能繼續(xù)執(zhí)行

D.當執(zhí)行此while語句時,按任意鍵程序就能繼續(xù)執(zhí)行

18.執(zhí)行下列程序后,輸出的結果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

A.1B.4C.9D.0

19.若有說明charc[7]={'s','t','r','i','n','g'};則對元素的非法引用是()。

A.c[0]B.c[9-6]C.c[4*2]D.c[2*3]

20.

二、2.填空題(20題)21.設有定義:

struct{inta;floatb;charc;}abc;*p_abc=&abc;

則對結構體成員a的引用方法可以是abc.a和p_abc【】a。

22.若有以下定義語句,則不移動指針p,并且通過指針p引用值為98的數組元素的表達式是【】。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

23.在面向對象的設計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

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

main()

{inta+,b=2,C=3,t=0;

ifa<B){t=a;a=b;b=t;}

ifa<C){t=a;a=c;c=t;}

printf("%d,%d,%dln",a,b,C);

}

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

27.在Windows環(huán)境下,可以利用單擊、雙擊、拖動這三種鼠標操作之一的【】操作實現窗口的移動。

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

main()

{charb[]="Hello,you";

b[5]=0;

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

}

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

main()

{chars[]=“abcdef”;

s[3]='\0';

printf(“%s\n”,s);

}

30.以下程序建立一個帶有頭結點的單向鏈表,鏈表結點中的數據通過鍵盤輸入,當輸入數據為-1時,表示輸入結束(鍵表頭結點的data域不放數據,表空的條件是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.fun函數的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大數,再求這N個最大值中最小的那個數并作為函數值返回。請?zhí)羁铡?/p>

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

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

{for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

32.下面程序的輸出結果是【】。

charb[]="ABCD";

main()

{

charb[30];

strcpy(&b[0],"GH");

strcpy(&b[1],"GH");

strcpy(&b[2],"GH");

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

}

33.執(zhí)行以下程序后,輸出#號的個數是【】。

#include<studio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

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

例如,若一維數組中的數據是:

2223445666677899101010

刪除后,數組中的內容應該是:

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");

}

35.在最壞情況下,冒泡排序的時間復雜度為【】。

36.在軟件開發(fā)中,結構化方法包括結構化分析方法、結構化設計方法和結構化程序設計方法??尚行匝芯侩A段采用的是【】。

37.數據流圖的類型有【】和事務型。

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

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

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

{intaa[5]={1,2,3,4,5),s;

s=f(aa,5);printf("%d\n",s);

}

40.設有下列宏定義:

#defineA2

#defineB(A+3)

則執(zhí)行賦值語句"k=B*20;"(k為int型變量)后,k的值是______。

三、1.選擇題(20題)41.下列有關數據庫的描述,正確的是______。

A.數據庫是一個DBF文件B.數據庫是一個關系C.數據庫是一個結構化的數據集合D.數據庫是一組文件

42.若有如下程序:sub(int*t,inta[3][4]){intm,n;for(m=0;m<3;m++)for(n=0;n<4;n++){*t=a[m][n];t++;}}main(){int*t,s[3][4)={{1,2,3),{4,5,6),{7,8,9}};t=(int*)malloc(50);sub(t,s);printf("%d,%d\n",t[4],t[7]);}則程序運行后的輸出結果是()。

A.4,7B.4,0C.5,8D.程序錯誤

43.設有輸入語句scanf("a=%d,b=%d,c=%d",&a,&b,&C),為使變量a的值為2,b的值為4,c的值為8,則從鍵盤輸入數據的正確形式是()。

A.1,3,2<回車>B.a=1b=3c=2<同車>C.132<回車>D.a=2,b=4,c=8<回車>

44.有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是()。

A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說明符不足,程序出錯D.程序運行時產生出錯信息

45.在軟件測試設計中,軟件測試的主要目的是

A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.盡可能多地發(fā)現軟件中的錯誤

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

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

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

A.C語言程序中的#include和#define行均不是C語句

B.除逗號運算符外,賦值運算符的優(yōu)先級最低

C.C語言程序中,j++;是賦值語句

D.C語言程序中,+、-、*、/、%號是算術運算符,可用于整型和實型數的運算

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

A.在C語言中的保留字必須小寫

B.變量的存儲類型決定了變量的存儲位置及其生存期

C.宏定義以#define開頭,行未必須加分號

D.在C語言中的注釋行可以出現在程序的任何位置

49.下列程序的輸出結果是_____。main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

50.以下程序(程序左邊的數字為附加的行號)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.沒有錯B.第1行有錯C.第6行有錯D.第7行有錯

51.以下選項中合法的實型常數是

A.5E2.0B.E-3C.2E0D.1.3E

52.下列選項中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

53.在結構化程序設計中,模塊劃分的原則是()。

A.各模塊應包括盡量多的功能

B.各模塊的規(guī)模應盡量大

C.各模塊之間的聯系應盡量緊密

D.模塊內具有高內聚度,模塊間具有低耦合度

54.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數為()。

A.125B.n/2C.nD.n+1

55.將E-R圖轉換到關系模式時,實體與聯系都可以表示成________。

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

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

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

57.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結果是

A.69825B.63825C.6385D.693825

58.執(zhí)行下面的程序后,a的值為

main()

{inta,b;

for(a=1,b=1;a<=10;a++)

{if(b%3==1)

{b+=3;

continue;}

b-=5;}}

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

59.已知下面的程序段,正確的判斷是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));

A.程序錯誤,不允許嵌套定義B.X=93C.X=81D.程序錯誤,宏定義不允許有參數

60.語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結果是()。

A.a\bhow\'are\'y\\bou

B.a\bhow\'are\'y\bou

C.how'are'you

D.ahow'are'y\bou

四、選擇題(20題)61.有兩個關系R和T如下:

則由關系R得到關系T的操作是()。A.選擇B.投影C.交D.并

62.有以下程序:

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

A.32B.16C.1D.0

63.

64.

65.設有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時,若從鍵盤輸入876543.0<回車>,a和b的值分別是()。A.A.876和543.000000B.87和6.000000

C.87和6543.000000

D.76和543.000000

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

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

67.有以下程序(strcat函數用于連接兩個字符串):

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

A.U-KB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK

68.

69.有以下程序:

程序執(zhí)行后的輸出結果是()。

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

70.下列選項中,均屬于通用軟件的是()。

A.WindowsXP、AutoCAD、PowerPoint

B.VisualFoxPro、Excel、SPSS

C.Word、Photoshop、Excel

D.C++、CorelDraw、Firefox2.0

71.在最壞情況下,堆排序的時間復雜度是()。

A.0(1902n)B.O(n1092n)C.o(n2)D.0(n1.5)

72.

73.已定義以下函數:

fun(char*p2,char*p1)

{while((*p2=*p1)!=’\0’){p1++;p2++;}}

函數的功能是()。

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

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

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

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

74.有以下程序:

#defineN20

fun(inta[],intn,intm)

{inti;

for(i=m;i>n;i--)a[i+1]=a[i];

returnm;

}

voidmain()

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,0,N/2);

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

}

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

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

75.(67)數據處理的最小單位是()

A.數據

B.數據元素

C.數據項

D.數據結構

76.在位運算中,操作數左移一位,其結果相當于A.A.操作數乘以2

B.操作數除以2

C.操作數除以4

D.操作數乘以4

77.軟件需求規(guī)格說明書的作用不包括()。

A.軟件設計的依據B.軟件可行性研究的依據C.軟件驗收的依據D.用戶與開發(fā)人員對軟件要做什么的共同理解

78.關系數據庫管理系統(tǒng)能實現的專門關系運算包括()。

A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關聯、更新、排序D.顯示、打印、制表

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

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

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

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

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

80.

五、程序改錯題(1題)81.下列給定程序中函數fun()的功能是:用遞歸算法計算斐波拉契數列中第n項的值。從第l項起,斐波拉契數列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項的斐波拉契數值為13。請改正程序中的錯誤,使它能得出正確結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.編寫函數fun,其功能是:將所有大于1小于整數m的非素數存人XX所指數組中,非素數的個數通過k返回。

例如,若輸入17,則應輸出:46891012141516。注意:部分源程序在文件PROGl.C中。

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。

參考答案

1.C程序定義兩個整型變量i、j,初值為3,7。另外,定義兩個整型指針變量p、q,其中p指向i,q指向j。將i、j的地址傳給swap函數。在swap函數中,a指向i,b指向j。通過臨時變量t交換a和b指向的值,此時a指向的實參i、b指向的實參j的值發(fā)生了交換。即a指向i的值為7,b指向j的值為3;再通過臨時變量tp交換a和b的指針值,使得a指向j,b指向i。所以swap中輸出a指向的值為3(j),b指向的值為7(i);swap函數調用結束后,輸出p和q指向的值,即i、j的值為7、3。所以程序輸出:3,7,7,3。本題答案為C選項。

2.D由題目中線性鏈表的定義可知,要將q和r所指的結點交換前后位置,只要使q指向r的后一個結點,P指向r結點,r指向q結點即可。而在選項D中,r->next=q,這時r指向的節(jié)點為q;p->next=r,這時P指向的節(jié)點為r;q->next:r->next,因為r節(jié)點已經指向q,所以執(zhí)行這個語句后q又指向q,所以選項D不正確。

3.A根據算術表達式和運算符的優(yōu)先級與結合性。表達式“int(x*1000+0.5)/(double)1000”,首先計算“x*1000”,由于x是double類型,1000是整型,所以“x*1000”的結果默認是double類型,即3141.59,加0.5后再執(zhí)行int的強制轉換,結果為3142。分母“(double)1000”強制轉換為double類型,此時計算“3142/(double)1000”,3142需要轉換成double類型,然后除以1000,結果為3.142000,默認保留小數點后6位。故本題答案為A選項。

4.D解析:'\\\\'是反斜線轉義字符;'\\t'是水平跳格轉義字符;'\\n'是換行轉義字符;C語言中沒有規(guī)定'088'為轉義字符。

5.A\n第一調用func函數時輸出4,第二次調用func函數時num的值并不會釋放,仍然是上次修改后的值4,第二次調用結果為8,所以輸出結果是48。

\n

6.A

7.C

8.C解析:預處理命令行是以“#”開始的語句,預處理命令行的最后不能以分號表示結束,預處理命令行。其中宏定義的字符替換的定義格式為:#define標識符字符串,預處理命令行是在系統(tǒng)對源程序進行編譯之前進行處理的,不是在程序執(zhí)行的過程中。

9.A

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

11.D

12.B在一個C語言程序中可以實現多種算法,所以B選項錯誤。故本題答案為B選項。

13.BB)【解析】在具有11個結點的滿二叉樹,其非葉子結點數為int(n/2),而葉子結點數等于總結點數減去葉子結點數。本題n=15,故非葉子結點數等于int(15/2)=7,葉子結點數等于15-7=8。

14.B第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項。

15.A關鍵字typedet的作用只是將C語言中的已有的數據類型作了置換,并不是增加新的類型,所以A)錯誤。

16.A

17.C主要是考查while和getchar函數,getchar函數是輸入字符函數,while是循環(huán)語句,所以當輸入的字符為換行符時將執(zhí)行。

18.D解析:本題主要是考查帶參數的宏定義及其相關運算。本題中宏運算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

19.C

20.B

21.->->解析:結構變量abc有成員a,并有指針pabc指向結構變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。

22.*(p+5)

23.消息消息解析:在面向對象技術中,主要用到對象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。

24.3535解析:函數swap(int*a,int*b)的功能是實現*a和*b中兩個數據的交換,在主函數中調用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結果為35。

25.3123,1,2解析:分析程序,第一個if句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。

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

27.拖動拖動

28.HelloHello解析:字符串中,數值0或符號'/0'表示字符串的結束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結束標志。因此,只輸出前五個字符,即Hello。

29.abcabc解析:字符串的結束標記'\\0',當輸出一個存放在字符數組中的字符串時,只需輸出到'\\0'為止,而不管其后有什么數據。本題給字符數組s的元素s[3]賦值為'\\0',故只能輸出3個字符“abc”。

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

31.a[row][c01]>max或max<a[row][co1]max<min或min>maxa[row][c01]>max或max<a[row][co1]\r\nmax<min或min>max解析:本題有兩層for循環(huán),函數首先定義了整型變量row、col、max和min,其中row用于外循環(huán)的循環(huán)變量,col用于內循環(huán)的循環(huán)變量,max記錄每行中的最人值,min記錄所有行最大值中的最小值。在內循環(huán)中,首先給max賦初值為每行的第0個元素值,然后從第一個開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環(huán)結束,max記錄了每一行的最大值。所以第一個空應該填a[row][co1]>max或max<a[row][co1)。退出內循環(huán),在第一次退出內循環(huán)時,將min賦初值為第0行的max,然后在每次退出內循環(huán)時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應該填max<min或min>max,當退出外循環(huán)時,rain為所有行中的最大值的最小值。

32.GGGHGGGH解析:由于在函數main中定義了數組變量b,其將屏蔽全局變量b。對于一維數紐變量,其值為一常數,等于數組首元素地址。strcpy(&b[0],'GH'),是將字符串'GH'復制到數組b中從首元數開始的空間中,此是b中的字符串為”叫”:strcpy(&b[1],'GH'),是將字符串'GH'復制到數組b中從第二個元素開始的空間中,此是b中的字符串為“GH”。執(zhí)行第三次strcpy函數后,b中的字符串為'GGGH'。

33.66解析:本題中,i、j分別為外循環(huán)和內循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了4次。當i=1時,由于內層循環(huán)判斷條件(2<=1)為假不執(zhí)行內層循環(huán)。當i=2時,執(zhí)行內層循環(huán),輸出一個#;當i=3時,內層循環(huán)循環(huán)兩次,輸出兩個#:當i=4時,內層循環(huán)循環(huán)3次,輸出3個#。當i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。

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

35.

解析:冒泡排序法是通過相鄰數據元素的交換逐步將線性表變成有序。假設線性表的長度為n,則在最壞的情況下,冒泡排序需要經過遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數為。

36.結構化分析方法結構化分析方法解析:結構化分析方法主要用于系統(tǒng)分析階段;結構化設計方法主要用于系統(tǒng)設計階段;結構化程序設計方法主要用于編碼階段。可行性研究屬于系統(tǒng)分析階段,因此,可行性研究階段采用的是結構化分析方法。

37.變換型典型的數據流類型有兩種:變換型和事務型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內部形式,進入系統(tǒng)的信息通過變換中心,經加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應用中,存在某種作業(yè)數據流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數據流就叫做事務。

38.n+1n+1解析:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為0的結點多一個。

39.1515解析:通過遞歸調用f函數實現了數組各元素之和,即a[4]+a[2]+a[1]+a[0]=15。

40.100100解析:本題考查帶參數的宏定義及相關運算。運算過程為:k=B*20=(A+3)*20=(2+3)*20=100。

41.C解析:數據庫(Database,簡稱DB)是數據的集合,它具有統(tǒng)一的結構形式并存放于統(tǒng)一的存儲介質內,是多種應用數據的集成,并可被各個應用程序所共享。數據庫中的數據具有“集成”、“共事”之特點。

42.B解析:本題定義了一個sub()函數,其作用為將一個二維數組按行復制到t所指的連續(xù)內存空間內。主程序中首先使用malloc()函數為t申請了50個字節(jié)的內存空間,然后調用sub()函數,將二維數組s的內容復制到t申請的內存空間內,最后輸出t的第5個元素(t[4])和第8個元素(t[7]),即為3行4列二維數組中的s[1][0]和s[1][3]。s[1][0]是初始化列表中第二個大括號中的第一個值4,而s[1][3]應該是初始化列表中第二個大括號中的第4個值,但沒有這么多初始值,C語言在這種情況下會自動將該元素設置為0,即s[3][4]={{1,2,3},{4,5,6},{7,8,9}}等價于s[3][4]={{1,2,3,0},{4,5,6,0),{7,8,9,0}}。所以最后輸出結果是4,0,應該選擇B。

43.D解析:本題考查scanf函數的基本格式。若在scanf函數的格式控制字符串中插入了其他的字符,則在輸入時要求按一一對應的位置原樣輸入這些字符,我們必須把“a=”、“b=”、“c=”也輸入。

44.B解析:(a1,a2)是一個逗號表達式,它的值為a2的值即m,以字符格式輸出表達式的值即輸出小寫字母m。

45.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件測試是為了發(fā)現錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。

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

47.D解析:在C程序中,以#開頭的行都稱為“編譯預處理”行,它不是C語言本身的組成成分,不能對它們進行直接編譯;在運算符優(yōu)先級表中,逗號運算符的優(yōu)先級最低,賦值運算符其次;自加運算表達式j++等價于賦值語句j=j+1;求余運算符%僅用于整型變量。故選項D錯誤。

48.C解析:本題涉及C語言最基本的4個知識點:①C語言的保留字必須小寫;②變量的存儲類型不同,其存儲位置和生存期也不一樣;③C語言允許其注釋部分出現在程序中的任何位置;④宏定義以#define開頭,行末不需要加分號。

49.A

50.B解析:字符串復制函數strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯誤的。

51.C解析:在C語言中,實數有兩種表示形式:十進制數形式與指數形式。

一般形式的實數:小數形式的實數由整數部分、小數點和小數部分組成(必須要有小數點),

指數形式的小數;指數形式的實數由尾數部分、e(E)和指數部分組成(字母e或E的前后必須要有數字,且其后面的指數必須為整數)。

選項A中,5E2.0中E后面的2.0不是整數;選項B中,E前面沒有數字:選項D中,E后面沒有數字。最終可以判斷選項C正確。

52.A解析:作為一個算法,一般應該具有下列4個特征:(1)可行性,即考慮到實際的條件能夠達到一個滿意的結果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內做完;(4)擁有足夠的情報。

53.D解析:本題考查軟件工程中軟件設計的概念和原理。人們在開發(fā)計算機軟件的長期實踐中積累了豐富的經驗,總結這些經驗得到如下的啟發(fā)式規(guī)則:

(1)改進軟件結構,提高模塊獨立性;通過模塊的分解或合并,力求降低耦合提高內聚。低耦合也就是降低不同模塊間相互依賴的緊密程度,高內聚是提高一個模塊內各元素彼此結合的緊密程度。

(2)模塊的規(guī)模應適中。一個模塊的規(guī)模不應過大,過大的模塊往往是由于分解不夠充分:過小的模塊開銷大于有益操作,而且模塊過多將使系統(tǒng)接口復雜。因此過小的模塊有時不值得單獨存在。

(3)模塊的功能應該可以預測,但也要防止模塊功能過分局限。如果模塊包含的功能太多,則不能體現模塊化設計的特點:如果模塊的功能過分的局限,使用范圍就過分狹窄。

經過上述分析,本題的正確答案是選項D。

54.CC。【解析】對線性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數為n。

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

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

57.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數組char*p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數組的p[0]元素(它本身是一個指針)指向了二維數組ch的第一行字符串,并使指針數組的p[1]元素指向二維數組ch的第二行字符串,這樣,就使指針數組p和二維數組ch建立起了一種對應關系,以后對二維數組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數組ch的初始化,使其第一行ch[0]中存入了字符串“693

58.D解析:考查continue語句的使用。continue語句的作用是結束本次循環(huán),直接進入下次循環(huán)。

59.C解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

60.C解析:“\\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導致“\\b'’格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號字符;“\\\\”格式符表示輸出反斜線字符。

61.A

62.C本題中將8賦值給字符變量a,則a的二進制為”00001000”,a>>3的位運算是把a向右移動三位,結果為”00000001”,輸出其十進制的值1。

63.A

64.B

65.B本題考查scanf函數,輸入格式符%2d%f表示只接收了字符,其中a輸入的值為2位的十進制整數,即87,然后將緊接著的6賦給b,因為b的值為單精度數在,即6.000000,故選擇B選項。

66.D本題給出的兩個關系R與S的表結構是不同的(R是二元關系,S

溫馨提示

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

評論

0/150

提交評論