2022-2023年安徽省馬鞍山市全國計算機等級考試C語言程序設計模擬考試(含答案)_第1頁
2022-2023年安徽省馬鞍山市全國計算機等級考試C語言程序設計模擬考試(含答案)_第2頁
2022-2023年安徽省馬鞍山市全國計算機等級考試C語言程序設計模擬考試(含答案)_第3頁
2022-2023年安徽省馬鞍山市全國計算機等級考試C語言程序設計模擬考試(含答案)_第4頁
2022-2023年安徽省馬鞍山市全國計算機等級考試C語言程序設計模擬考試(含答案)_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年安徽省馬鞍山市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數(shù)是A.O(n)

B.O(n2)

C.O(log2n)

D.O(nlog2n)

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

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

4.下列說法不正確的是()。

A.圖的遍歷是從給定的源點出發(fā)每一個頂點僅被訪問一次

B.圖的深度遍歷不適用于有向圖

C.遍歷的基本算法有兩種:深度遍歷和廣度遍歷

D.圖的深度遍歷是一個遞歸過程

5.設x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

6.在16位IBM-PC機上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結構變量b占用內存的字節(jié)數(shù)是

A.1B.2C.7D.11

7.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

8.下列關于邏輯運算符兩側運算對象的敘述中正確的是()。

A.只能是整數(shù)0或1B.只能是整數(shù)0或非0整數(shù)C.可以是結構體類型的數(shù)據(jù)D.可以是任意合法的表達式

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

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

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

C.各模塊之間的聯(lián)系應盡量緊密

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

10.以下選項中,合法的一組C語言數(shù)值常量是()。

A.12.0Xa234.5e0

B.028.5e-3-0xf

C..1774e1.50abc

D.0x8A10,0003.e5

11.以下關于C語言的敘述中正確的是()。

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

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術表達式的書寫中,運算符兩側的運算數(shù)類型必須一致

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

12.若有如下函數(shù)定義:doublefun(intx,inty){return(x+y);}return語句中表達式值的類型與說明的類型不一致,則以下敘述中正確的是()。

A.運行時出錯B.函數(shù)返回的值為int型C.編譯出錯D.函數(shù)返回的值為double型

13.若變量已正確定義,要求程序段完成5!的計算,不能完成此操作的程序段是______。

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5);

14.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結束條件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

15.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運行后的輸出結果是()。

A.A2A3BB.2B4DFC.B4CD7D.B2D4F

16.下列排序算法中,其時間復雜度和記錄的初始排列無關的是()

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

17.算法分析的目的是()。

A.找出數(shù)據(jù)結構的合理性B.研究算法中的輸入和輸出的關系C.分析算法的效率以求改進D.分析算法的易讀性和文檔性

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

A.循環(huán)隊列是隊列的一種鏈式存儲結構

B.循環(huán)隊列是隊列的一種順序存儲結構

C.循環(huán)隊列中的隊尾指針一定大于隊頭指針

D.循環(huán)隊列中的隊尾指針一定小于隊頭指針

19.

20.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}執(zhí)行后的輸出結果是______。

A.58B.56C.45D.24

二、2.填空題(20題)21.表達式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。

22.設y為int型變量,請寫出描述“y是偶數(shù)”的表達式______。

23.下列程序的運行結果是______。

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

24.在數(shù)據(jù)庫的概念結構設計中,常用的描述工具是【】。

25.有以下程序,若運行時從鍵盤輸入:18,11<回車>,則程序的輸出結果是【】。

main()

{inta,b;

printf("Entera,b:");scanf("%d,%d",&a,&b);

while(a!=b)

{while(a>b)a-=b;

while(b>a)b-=a;

}

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

}

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

intn='c':

switch(n++)

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

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

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

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

}

27.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

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

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

printf("%d\n",fun(a,B)/m);

}

29.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

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

}

30.下列程序的輸出結果是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);

}

31.以下程序運行后的輸出結果是【】。

intf(inta[],intn)

{

if(n>=1)

returnf(a,n-1)+a[n-1];

else

return0;

}

main()

{

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

s=f(aa,5);

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

}

32.strcat函數(shù)的作用是【】。

33.在面向對象方法中,類之間共享屬性和方法的機制稱為______。

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

main()

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

a*=16+(b++)-(++C);

printf("%d",a);

}

35.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

36.若a=10,b=20,則表達式!(a<b)的值是【】。

37.已知字母A的ASCII碼為65。以下程序運行后的輸出結果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

38.為了列出當前盤當前目錄中所有第三個字符為C的文件名的有關信息,應該使用命令【】。

39.已知字符A的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33<回車>,則輸出結果是【】。

#include

main()

{chara,b;

a=getchar();scanf("%d",&b);

a=a-'A'+'0';b=b*2;

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

}

40.算法的基本特征是可行性、確定性、【】和擁有足夠的情報。

三、1.選擇題(20題)41.設變量已正確定義并賦值,以下正確的表達式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

42.關系表中的每一橫行稱為—個______。

A.元組B.字段C.屬性D.碼

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

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

44.在面向對象方法中,一個對象請求另一對象為其服務的方式是通過發(fā)送()。A.調用語句B.命令C.口令D.消息

45.以下不正確的定義語句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′xa′,′\x8′};

46.閱讀下列程序,則運行結果為

#include"stdio.h"

fun()

{staticintx=5;

x++;

returnx;}

main()

{inti,x;

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

x=fun();

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

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

47.下列程序執(zhí)行后輸出結果是()main(){chararr[2][4];strcpy(arr,"you");strcpy(arr,[1],"me");arr[0][3]='&';printf("%s\n",arr);}

A.you&meB.youC.meD.err

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

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

49.以下4個選項中,不能看成一條語句的是

A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;

50.若有以下定義和語句,則對w數(shù)組元素非法引用的是______。intw[2][3],(*pw)[3];pw=w;

A.w[0]+2B.*(pw+1)[2]C.pw[0][0]D.*(pw[1]+2)

51.整型變量X和Y的值相等,且為非0值,則以下選項中結果為0的表達是______。

A.X||YB.X|YC.X&YD.XY

52.下面關于完全二叉樹的敘述中,錯誤的是______。

A.除了最后—層外,每—層上的結點數(shù)均達到最大值

B.可能缺少若干個左右葉子結點

C.完全二叉樹—般不是滿二叉樹

D.具有結點的完全二叉樹的深度為[log2n]+1

53.樹是結點的集合,它的根結點數(shù)目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

54.有如下程序

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x>10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);}

該程序的輸出結果是

A.0.000000B.0.250000C.0.500000D.1.000000

55.下列程序的輸出結果為main(){unionu{char*name;intage;intincome;}="WANGLIONG";s.age=28;s.income=1000;printf("%d\n",s.age);}

A.28B.1000C.0D.不確定

56.假定當前盤符下有兩個如下文本文件:文件名a1.txta2.txt內容123#321#則下面程序段執(zhí)行后的結果為#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('\n');}

A.123321B.123C.321D.以上答案都不正確

57.數(shù)據(jù)結構中,與所使用的計算機無關的是數(shù)據(jù)的()。A.存儲結構B.物理結構C.邏輯結構D.物理和存儲結構

58.設有語句“chara='72';”則變量a()。

A.包含一個字符B.包含二個字符C.包含三個字符D.說明不合法

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

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

60.數(shù)據(jù)庫系統(tǒng)的核心是()

A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程

四、選擇題(20題)61.

62.

63.

64.有以下程序

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

A.3040B.2050C.3344D.0304

65.有以下程序:

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

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

66.在面向對象方法中,不屬于“對象’’基本特點的是()。A.一致性B.分類性C.多態(tài)性D.標識唯一性

67.

68.

69.若有以下程序

#include<stdio.h>

main()

{inti;

inta[]={1,3,5,7,9}

int*p=a;

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

a[i]=*p;

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

}

上面程序的輸出結果是

A.3,9B.5,9

C.1,9D.1,1

70.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A.軟件需求規(guī)格說明書B.數(shù)據(jù)庫說明書C.集成測試計劃D.概要設計說明書

71.

72.

73.以下敘述中正確的是(.。

A.調用printf函數(shù)時,必須要有輸出項

B.使用putChar函數(shù)時,必須在之前包含頭文件stdio.h

C.在C語言中,整數(shù)可以以十二進制、八進制或十六進制的形式輸出

D.調用getChar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應的ASCIl碼

74.若有以下程序段:

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

A.16B.8C.4D.2

75.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

76.有以下程序:

程序的運行結果是()。

A.1234B.5678C.9101112D.1111

77.

78.有以下程序

#include<stdio.h>

main

{intn,*p=NULL;

*p=&n;

printf("Inputn:");

scanf("%d",&p);

printf("outputn:");

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

}

該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是

A.intn,*p=NULL;B.*p=&n;

C.scanf("%d",&p)D.printf("%d\n",p);

79.有以下程序:

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

A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

80.當c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。A.A.a=b=c;B.(a=c)C.(a=c)&&(b=c);D.(b=c);

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!

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

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

試題程序:

六、程序設計題(1題)82.使用VC++2010打開觸文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是移動字符串中的內容,移動的規(guī)則是把第1~m個字符,移動到字符串的最后,把第m+1到最后的字符移動到于符串的前面。例如,字符串中原有的內容為“ABCDEFGHIJK”,m的值為3,移動后,字符串中的內容應該是“DEFGHUKABC”。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.D

2.C解析:二分查找法也稱為折半查找法。它的基本思想是:將n個元素分成個數(shù)大致相同的兩半,取a[n/2]與欲查找的x作比較,如果x=a[n/2],則找到x,算法終止;如果x<a[n/2],則只要在數(shù)組a的左半部繼續(xù)搜索x(這里假設數(shù)組元素呈升序排列);如果x>a[n/2],則只要在數(shù)組a的右半部繼續(xù)搜索x。每次余下n/(2i)個元素待比較,當最后剩下一個時,即n/(2i)=1。故n=2i;所以i=log2n。

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

4.C

5.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

6.D解析:結構體變量所占用內存的字節(jié)數(shù)是其所有成員所占用內存字節(jié)數(shù)之和。本題中整型變量i所占用的內存是2字節(jié),字符型變量ch所占用的內存是1字節(jié),雙精度型變量f所占用的內存是8字節(jié),三者相加即可。

7.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應注意下列兩點:①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大小;當初值的個數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

8.D解析:邏輯運算符兩側的運算對象可以是任意合法的表達式。邏輯表達式的運算結果或者為1(“真”),或者為0(“假”)。

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

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

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

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

經(jīng)過上述分析,本題的正確答案是選項D。

10.AC語言中,八進制整型常量以0開頭,十六進制整型常量以0x或0X開頭。C語言中的實型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。小數(shù)形式,表示的實型常量必須要有小數(shù)點;指數(shù)形式,在e或E后加一個整數(shù)來表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項中“028”不合法,八進制中沒有數(shù)字8。C選項中,e后面的指數(shù)不是整數(shù)。D選項中“10,000”數(shù)字之間不能有逗號。故本題答案為A選項。

11.B解析:C語言中注釋可以放在任何位置,選項A錯誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項B正確;C語言中兩側數(shù)據(jù)類型可以不一致,系統(tǒng)可進行強制類型轉換,選項C錯誤;C語言數(shù)值常量中不允許存在空格,選項D錯誤。

12.D題干中“x+y”是整型,函數(shù)的返回值是double類型,由于整型可以自動轉換成double類型,因此函數(shù)值返回時自動轉換成double類型。故本題答案為D選項。

13.B解析:選項B中每次執(zhí)行循環(huán)體都要執(zhí)行p=1,無法保存上次的運算結果,執(zhí)行完while循環(huán)后p=5。

14.D解析:本題考查的知識點是do-while循環(huán)結構循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點:

先執(zhí)行語句,后判斷表達式。所以,無論一開始表達式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點與while不同,

如果do-while語句循環(huán)體部分是由多個語句組成,則必須用花括號括起來,使其形成復合語句。

C語言中的do—while語句是在表達式“真”時重復執(zhí)行循環(huán)體。

在本題中,循環(huán)執(zhí)行判斷條件為while后面括號里的表達式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項A的意思是:p的值不等于12345并且n的小于3和while后面括號里的表達式等價是循環(huán)執(zhí)行的條件而不是循環(huán)結束的條件,所以選項A不正確;選項B的意思是:p的值等于12345并且n的值大于3,不是循環(huán)結束的條件一個子集,所以選項B不正確;選項C的意思是:p的值不等于12345或者n的值小于3前一半是結束條件的子集,后一部分不是結束條件,所以選項C不正確;選項D描述的意思是:p的值等于12345或者你的大于等于3是結束條件的子集,所以選項D滿足題意。所以4個選項中D正確。

15.D程序首先定義字符變量a并賦初值‘0’,定義字符變量b并賦初值‘A’。然后執(zhí)行for循環(huán),當i為偶數(shù)時,輸出字符“a+i”;當i為奇數(shù)時,輸出字符“b+i”。因為數(shù)字和字母的ASCII值都是按順序遞增的,所以本題輸出為B2D4F。故本題答案為D選項。

16.B

17.C

18.B在實際應用中,隊列的順序存儲結構一般采用循環(huán)隊列的形式。當循環(huán)隊列為滿或者為空時,隊尾指針=隊頭指針。本題答案為B選項。

19.D

20.D解析:程序中while語句的循環(huán)條件為i<7&&p[i]%2。當i=0時,條件成立,k=k+p[0]=11;當i=1時,條件仍成立,k=k+p[1]=11+13=24;當i=2時,p[2]%2=0條件不成立,結束while循環(huán),所以k=24。

21.floatfloat解析:在此表達式中x是float類型的變量,經(jīng)過開方所得到的結果仍是float類型,再和2.8進行運算時,應該先將2.8轉換成float類型再運算,最后結果仍是float型。

22.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達式是(y%2)==0。

23.55解析:分析程序,當a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結果為5。

24.E-R圖E-R圖解析:E-R圖是設計概念模型的有力工具。

25.1111解析:首先,程序通過scanf()函數(shù)將18和11分別讀入到變量a和b中。然后,因為a!=b為真,進入外層while循環(huán)。此時a>b為真,執(zhí)行a-=b;,a的值變?yōu)?8-11=7:接下來b>a也為真,執(zhí)行b-=a;,b的值變?yōu)?1-7=4。此時a!=b還是為真,第2次進入外層循環(huán)。a>b為真,執(zhí)行a-=b;,a的值變?yōu)?-4=3。b>a為真,執(zhí)行b-=a;,b的值變?yōu)?-3=1接下來a!=b為真第3次進入外層循環(huán)。a>b為真,執(zhí)行a-=b,a的值變?yōu)?-1=2。b>a為假,不執(zhí)行b-=a;;然后第4次進入外層循環(huán),a>b為真,執(zhí)行a-=b,a的值變?yōu)?-1=1。b>a為假,不執(zhí)行b-=a;此時a和b均為1了,a!=b條件為假,外層循環(huán)結束。故本題輸出的結果是11。

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

27.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

28.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內。在fun函數(shù)內部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。

29.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結果來看,s保存的是最終結果,而s在循環(huán)體中,每次累加一個t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內容”加上循環(huán)變量i,又因為i在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內容”應分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內容”應是t*10。

解析:本題,已知結果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的值在沒有進行類型轉換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

31.1515解析:在函數(shù)f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1];否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3],……直到f(aa,0)返回0。故f(aa,5)實際返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本題最終輸出15。

32.連接兩個字符數(shù)組中的字符連接兩個字符數(shù)組中的字符解析:strcat函數(shù)的作用是連接兩個字符數(shù)組中的字符串。

33.繼承繼承解析:在面向對象的程序設計方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。

34.2626解析:a*=16+(b++)-(++c)等價于a*=a*(16+(b++)-(++c))=2*(16+(2-5)=26。b++是先使用b的值參加運算,再對b加1;++c是先c加1,再使用c的值參加運算。

35.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

36.00解析:已知a=10,b=20,所以邏輯表達式a<b的值為true,即為1,在這個表達式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應當為false,即為0。

37.67G67G解析:字符型變量中保存的是某個字符的ASCII碼值,是一個整數(shù),因此字符型變量的算術運算和整型變量并無區(qū)別。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分別按十進制整數(shù)和字符形式輸出a和b的值為:67G。

38.DIR??C*.*

39.1B1B解析:從鍵盤輸入后,有a=B,b=33。a=a-'A'+'0'='B'-'A'+'0'='1',b=b*2=66,在輸出時均需要把a,b轉化為字符型,因此輸出為1B。

40.有窮性有窮性解析:算法有四個基本特征:可行性、確定性、有窮性和擁有足夠的情報。

41.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數(shù)據(jù),所以選項B)和D)是錯誤的表達式。在選項A)中賦值表達式的兩邊出現(xiàn)相同的變量x,也是錯誤的。選項C)是一個逗號表達式,所以正確答案為C)。

42.A解析:在關系數(shù)據(jù)庫中,關系模型采用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數(shù)據(jù),每行數(shù)據(jù)稱為元組。

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

44.D解析:面向對象的世界是通過對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

45.B解析:在一維數(shù)組中要注意的是作為下標表達式的常量表達式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。

46.D解析:在整個程序運行期間,靜態(tài)局部變量在內存的靜態(tài)存儲區(qū)中占據(jù)著永久的存儲單元,即使退出函數(shù)以后,下次再進入該函數(shù)時,靜態(tài)局部變量仍使用原來的存儲單元,靜態(tài)局部變量的初值是在編譯的時候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)三次調用函數(shù)fun(),三次對靜態(tài)變量x進行操作,x的值應依次為6,7,8。

47.A

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

49.D解析:選項D)為兩條語句。

50.B解析:選項A表示元素w[0][2],選項C表示元素w[0][0],選項D表示元素w[1][2],而選項B中pw+1表示第2行元素的地址,(pw+1)[2]相當于(pw+1)+2,表示第4行元素的地址,顯然超出該二維數(shù)組的范圍。

51.D解析:“||”為或運算符,當其左右表達式中只要一個為非零則整個表達式的值1。是按位或,&是按位與,^是按位異或,這三位運算符是按值的二進制位來比較的。

52.B解析:滿二叉樹指除最后一層外每一層上所有結點都有兩個子結點的二叉樹。完全二叉樹指除最后一層外,每一層上的結點數(shù)均達到最大值,在最后—層上只缺少右邊的若干子結點(葉子結點)的二叉樹。

53.A樹形結構是一類重要的非線性數(shù)據(jù)結構。樹是n(n≥0)個結點的集合,對應任意一棵非空樹,它具有以下幾點重要的性質。

①有且僅有一個特定的稱為根的結點。

②當n>1時,其余結點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個。

54.D解析:本題考查if語句中的一種表達方式,即:if卐lseif叀

該表達式的語句是:

if(表達式1)

語句1

elseif(表達式2)

語句2

elseif(表達式3)

語句3

else

語句4

本題執(zhí)行elsey=1.0,并且以'%f'輸出。

55.B解析:本題對共用體的使用進行了考查。由于共用體所有成員共同占據(jù)一段存儲空間,所以對成員變量的賦值,后面的賦值會覆蓋掉前面的賦值,因為s.income=1000;是最后一次成員變量賦值,變量age與變量income共同占據(jù)一段存儲空間,所以age的值也為1000。

56.A解析:本題的功能是順序的讀兩個文本文件;依次輸出。當打開文件時出現(xiàn)錯誤,fopen函數(shù)將返回NULL。

57.C數(shù)據(jù)結構概念一般包括3個方面的內容,數(shù)據(jù)的邏輯結構、存儲結構(物理結構)及數(shù)據(jù)上的運算集合。數(shù)據(jù)的邏輯結構只抽象地反映數(shù)據(jù)元素之間的邏輯關系,即數(shù)據(jù)元素之間的前后件關系,而不管它在計算機中的存儲表示形式。

58.D解析:字符變量的值為單個字符,并用單引號包含,而本題中的單引號中是兩個字符,不是合法說明。

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

60.B解析:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。

61.D

62.C\r\n

63.B

64.A第一次循環(huán)i為0,i%2為0,執(zhí)行switch(a[0]%2)中的case0語句后內容即a[0]++,a[o]的值變成3;第二次循環(huán)i的值為I,i%2為l,執(zhí)行casel:a[i]=0;因此a[l]的值變成0;第三次循環(huán)i的值為2,1%2為0,執(zhí)行switch(a[2]%2)中的casel語句后的內容a[2]一,a[21的值變成4;第四次循環(huán)i的值為3,1%2為l,執(zhí)行case1:a[i]=0;因此a[3]的值變成O。故本題答案為A)。

65.DmaUoc函數(shù)動態(tài)分配一個整型的內存空間,然后把函數(shù)返回的地址用(int{)強制類型轉換為整型指針,再把它賦給a,b,c,即讓指針變量a,b,c都指向剛申請的內存空間。所以只有最后一個賦值語句+C=3的值保留在了該空間內,因為a、b、C三個指針變量均指向該空間,所以打印該空間內的數(shù)值為3。

66.A在面向對象方法中,對象的基本特點包括:標識唯一性、分類性、多態(tài)性、封裝性、模塊獨立性好。一致性不屬于對象的基本特點,因此本題答案為A)。

67.D

68.B

69.C本題中,程序開始定義了一個數(shù)組a,并對這個數(shù)組進行賦初值。然后定義一個整型變量i和一個整型指針變量p,并使指針變量p指向數(shù)組a的首地址。然后執(zhí)行for循環(huán),循環(huán)變量i的初值為0,循環(huán)結束條件為變量i的值大于等于4,循環(huán)變量i的值每循環(huán)一次自加1,通過這些分析我們知道,循環(huán)執(zhí)行了4次結束。

第一次循環(huán)時,由于*p表示數(shù)組的第一個元素值1,那么執(zhí)行a[i]=*p;語句,即將數(shù)組的第一個元素變?yōu)?;第二次循環(huán)時,由于i為1,即將數(shù)組的第二個元素變?yōu)?,同理,第三次與第四次循環(huán)分別將數(shù)組的第三和第四個元素值變?yōu)?。

循環(huán)結束,程序執(zhí)行輸出語句,這時數(shù)組中所有元素的值分別為1,1,1,1,9,因此,程序最后的輸出結果是1,9,答案選C。

70.A軟件需求規(guī)格說明書是需求分析階段最后的成果,它是作為需求分析的一部分而制定的可交付文檔。概要設計說明書、數(shù)據(jù)庫說明書、集成測試計劃都是概要設計階段需要編寫的文檔。

71.D

72.D

73.B本題考查的是標準輸入輸出函數(shù)。在使用標準輸入輸出庫函數(shù)(除了printf和scanf)前,必須要用預編譯命令”#include”將頭文件”stdio.h”包括到用戶源文件中。調用printf函數(shù)時可以沒有輸出項,比如printf(””)是允許的。c語言中整數(shù)的輸出形式中沒有十二進制的形式。getchar函數(shù)讀人字符時可以得到第一個輸入字符的ASCIl碼,無法通過輸入相應字符的ASCIl得到該字符。

74.C本題考查位運算,屬于基礎知識,題目中將整型變量8,二進制表達為00(301000,右移一位為00000100,即4,選項c正確。

75.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。

76.D在for(i=0;i<12;i++)e[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標,當退出循環(huán)時,數(shù)組C的4個元素的值分別為l、1、1、1。所以選項D)正確。

77.C

78.A在C語言中存在直接存取和間接存取兩種訪問內存數(shù)據(jù)的方法。前者利用變量名隱式地訪問內存:首先定義變量,然后由編譯系統(tǒng)完成從變量名到內存地址的映射工作,用戶通過變量名訪問內存空間,變量地址對用戶完全透明。后者則通過指針顯式地訪問內存:用戶直接使用變量的地址,或者將變量的地址值儲存于特殊的變量中,然后通過此特殊的變量獲取地址值訪問內存。

為了更好地使用指針變量,C語言提供了獲取變量地址和通過地址訪問變量的運算符“&”和“*”。

(1)取地址運算符“&”的使用格式為:&變量名,如&a表示變量a在內存中的地址。本運算符實現(xiàn)從變量到地址的轉化。

(2)指針運算符“*”的使用格式為:*指針變量名,如*p表示指針變量p所指向的變量的值。本運算符實現(xiàn)從地址到變量的轉化。

在本題中,程序的作用已經(jīng)給出,下面分別分析各選項中的語句。在選項A中,定義了一個整型變量n和一個整型指針變量p,并使其指向一個空,即不指向任何變量,該語句是正確的語句;在選項B中,由于*p表示值,而&n表示地址,它們之間進行賦值操作明顯是錯誤的;在選項C中,由于p是指針變量,沒有&p表示方法,因此錯誤;在D選項中,輸出的是p指針所指向的地址,而不是p指針所指向的變量值,不符合題目的要求。

79.D本題考查結構體的相關操作以及傳值、傳址的區(qū)別,該題中調用f函數(shù)后,會生成參數(shù)C的一個副本,而不會改變c的值,所以c值維持原值,選項D正確。

80.C選項A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項中由于c的值不為0,在將c的值賦給變量a后,表達式a=c的值為1,不再對表達式b=c計算;對于c選項,表達式a=c的值為1,再求表達式b=c的值為1,然后進行邏輯與運算;D選項將b的值賦給c后再賦給e,故選擇C選項。

81.(1)錯誤:k++

正確:k++;

(2)錯誤:if(m=k)

正確:if(m==k)

【解析】根據(jù)C語言的語法規(guī)則,每一條語句都要以分號結束,因此,要在語句“k++”之后加上分號。判斷變量m與變量k是否相等應該用符號“==”,符號“=”為賦值符號,因此,“if(m=k)”應改為“if(m==k)”。

82.Voidfun(char*w,intm)chart;for(i=1;i<=m;i++)/*進行m次的循環(huán)左移*/{t=w[o];for(j=1;w[j]!='\0';j++)/*從第2個字符開始以后的每個字符都依次前移一個字符*/w[j-l]=w[j];9w[j-l]=t;/*將第1個字符放到最后一個字符中*/10}}本題應采用“循環(huán)左移”的算法。外層循環(huán)用于控制移動的字符的個數(shù),即需進行多少次循環(huán)。內層循環(huán)的作用是將第2個字符以后的每個字符依次前移一個位置,最后將第1個字符放到最后一個字符中。2022-2023年安徽省馬鞍山市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數(shù)是A.O(n)

B.O(n2)

C.O(log2n)

D.O(nlog2n)

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

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

4.下列說法不正確的是()。

A.圖的遍歷是從給定的源點出發(fā)每一個頂點僅被訪問一次

B.圖的深度遍歷不適用于有向圖

C.遍歷的基本算法有兩種:深度遍歷和廣度遍歷

D.圖的深度遍歷是一個遞歸過程

5.設x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

6.在16位IBM-PC機上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結構變量b占用內存的字節(jié)數(shù)是

A.1B.2C.7D.11

7.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

8.下列關于邏輯運算符兩側運算對象的敘述中正確的是()。

A.只能是整數(shù)0或1B.只能是整數(shù)0或非0整數(shù)C.可以是結構體類型的數(shù)據(jù)D.可以是任意合法的表達式

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

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

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

C.各模塊之間的聯(lián)系應盡量緊密

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

10.以下選項中,合法的一組C語言數(shù)值常量是()。

A.12.0Xa234.5e0

B.028.5e-3-0xf

C..1774e1.50abc

D.0x8A10,0003.e5

11.以下關于C語言的敘述中正確的是()。

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

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術表達式的書寫中,運算符兩側的運算數(shù)類型必須一致

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

12.若有如下函數(shù)定義:doublefun(intx,inty){return(x+y);}return語句中表達式值的類型與說明的類型不一致,則以下敘述中正確的是()。

A.運行時出錯B.函數(shù)返回的值為int型C.編譯出錯D.函數(shù)返回的值為double型

13.若變量已正確定義,要求程序段完成5!的計算,不能完成此操作的程序段是______。

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5);

14.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結束條件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

15.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運行后的輸出結果是()。

A.A2A3BB.2B4DFC.B4CD7D.B2D4F

16.下列排序算法中,其時間復雜度和記錄的初始排列無關的是()

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

17.算法分析的目的是()。

A.找出數(shù)據(jù)結構的合理性B.研究算法中的輸入和輸出的關系C.分析算法的效率以求改進D.分析算法的易讀性和文檔性

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

A.循環(huán)隊列是隊列的一種鏈式存儲結構

B.循環(huán)隊列是隊列的一種順序存儲結構

C.循環(huán)隊列中的隊尾指針一定大于隊頭指針

D.循環(huán)隊列中的隊尾指針一定小于隊頭指針

19.

20.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}執(zhí)行后的輸出結果是______。

A.58B.56C.45D.24

二、2.填空題(20題)21.表達式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。

22.設y為int型變量,請寫出描述“y是偶數(shù)”的表達式______。

23.下列程序的運行結果是______。

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

24.在數(shù)據(jù)庫的概念結構設計中,常用的描述工具是【】。

25.有以下程序,若運行時從鍵盤輸入:18,11<回車>,則程序的輸出結果是【】。

main()

{inta,b;

printf("Entera,b:");scanf("%d,%d",&a,&b);

while(a!=b)

{while(a>b)a-=b;

while(b>a)b-=a;

}

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

}

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

intn='c':

switch(n++)

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

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

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

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

}

27.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

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

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

printf("%d\n",fun(a,B)/m);

}

29.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

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

}

30.下列程序的輸出結果是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);

}

31.以下程序運行后的輸出結果是【】。

intf(inta[],intn)

{

if(n>=1)

returnf(a,n-1)+a[n-1];

else

return0;

}

main()

{

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

s=f(aa,5);

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

}

32.strcat函數(shù)的作用是【】。

33.在面向對象方法中,類之間共享屬性和方法的機制稱為______。

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

main()

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

a*=16+(b++)-(++C);

printf("%d",a);

}

35.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

36.若a=10,b=20,則表達式!(a<b)的值是【】。

37.已知字母A的ASCII碼為65。以下程序運行后的輸出結果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

38.為了列出當前盤當前目錄中所有第三個字符為C的文件名的有關信息,應該使用命令【】。

39.已知字符A的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33<回車>,則輸出結果是【】。

#include

main()

{chara,b;

a=getchar();scanf("%d",&b);

a=a-'A'+'0';b=b*2;

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

}

40.算法的基本特征是可行性、確定性、【】和擁有足夠的情報。

三、1.選擇題(20題)41.設變量已正確定義并賦值,以下正確的表達式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

42.關系表中的每一橫行稱為—個______。

A.元組B.字段C.屬性D.碼

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

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

44.在面向對象方法中,一個對象請求另一對象為其服務的方式是通過發(fā)送()。A.調用語句B.命令C.口令D.消息

45.以下不正確的定義語句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′xa′,′\x8′};

46.閱讀下列程序,則運行結果為

#include"stdio.h"

fun()

{staticintx=5;

x++;

returnx;}

main()

{inti,x;

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

x=fun();

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

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

47.下列程序執(zhí)行后輸出結果是()main(){chararr[2][4];strcpy(arr,"you");strcpy(arr,[1],"me");arr[0][3]='&';printf("%s\n",arr);}

A.you&meB.youC.meD.err

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

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

49.以下4個選項中,不能看成一條語句的是

A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;

50.若有以下定義和語句,則對w數(shù)組元素非法引用的是______。intw[2][3],(*pw)[3];pw=w;

A.w[0]+2B.*(pw+1)[2]C.pw[0][0]D.*(pw[1]+2)

51.整型變量X和Y的值相等,且為非0值,則以下選項中結果為0的表達是______。

A.X||YB.X|YC.X&YD.XY

52.下面關于完全二叉樹的敘述中,錯誤的是______。

A.除了最后—層外,每—層上的結點數(shù)均達到最大值

B.可能缺少若干個左右葉子結點

C.完全二叉樹—般不是滿二叉樹

D.具有結點的完全二叉樹的深度為[log2n]+1

53.樹是結點的集合,它的根結點數(shù)目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

54.有如下程序

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x>10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);}

該程序的輸出結果是

A.0.000000B.0.250000C.0.500000D.1.000000

55.下列程序的輸出結果為main(){unionu{char*name;intage;intincome;}="WANGLIONG";s.age=28;s.income=1000;printf("%d\n",s.age);}

A.28B.1000C.0D.不確定

56.假定當前盤符下有兩個如下文本文件:文件名a1.txta2.txt內容123#321#則下面程序段執(zhí)行后的結果為#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('\n');}

A.123321B.123C.321D.以上答案都不正確

57.數(shù)據(jù)結構中,與所使用的計算機無關的是數(shù)據(jù)的()。A.存儲結構B.物理結構C.邏輯結構D.物理和存儲結構

58.設有語句“chara='72';”則變量a()。

A.包含一個字符B.包含二個字符C.包含三個字符D.說明不合法

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

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

60.數(shù)據(jù)庫系統(tǒng)的核心是()

A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程

四、選擇題(20題)61.

62.

63.

64.有以下程序

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

A.3040B.2050C.3344D.0304

65.有以下程序:

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

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

66.在面向對象方法中,不屬于“對象’’基本特點的是()。A.一致性B.分類性C.多態(tài)性D.標識唯一性

67.

68.

69.若有以下程序

#include<stdio.h>

main()

{inti;

inta[]={1,3,5,7,9}

int*p=a;

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

a[i]=*p;

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

}

上面程序的輸出結果是

A.3,9B.5,9

C.1,9D.1,1

70.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A.軟件需求規(guī)格說明書B.數(shù)據(jù)庫說明書C.集成測試計劃D.概要設計說明書

71.

72.

73.以下敘述中正確的是(.。

A.調用printf函數(shù)時,必須要有輸出項

B.使用putChar函數(shù)時,必須在之前包含頭文件stdio.h

C.在C語言中,整數(shù)可以以十二進制、八進制或十六進制的形式輸出

D.調用getChar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應的ASCIl碼

74.若有以下程序段:

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

A.16B.8C.4D.2

75.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

76.有以下程序:

程序的運行結果是()。

A.1234B.5678C.9101112D.1111

77.

78.有以下程序

#include<stdio.h>

main

{intn,*p=NULL;

*p=&n;

printf("Inputn:");

scanf("%d",&p);

printf("outputn:");

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

}

該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是

A.intn,*p=NULL;B.*p=&n;

C.scanf("%d",&p)D.printf("%d\n",p);

79.有以下程序:

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

A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

80.當c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。A.A.a=b=c;B.(a=c)C.(a=c)&&(b=c);D.(b=c);

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!

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

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

試題程序:

六、程序設計題(1題)82.使用VC++2010打開觸文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是移動字符串中的內容,移動的規(guī)則是把第1~m個字符,移動到字符串的最后,把第m+1到最后的字符移動到于符串的前面。例如,字符串中原有的內容為“ABCDEFGHIJK”,m的值為3,移動后,字符串中的內容應該是“DEFGHUKABC”。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.D

2.C解析:二分查找法也稱為折半查找法。它的基本思想是:將n個元素分成個數(shù)大致相同的兩半,取a[n/2]與欲查找的x作比較,如果x=a[n/2],則找到x,算法終止;如果x<a[n/2],則只要在數(shù)組a的左半部繼續(xù)搜索x(這里假設數(shù)組元素呈升序排列);如果x>a[n/2],則只要在數(shù)組a的右半部繼續(xù)搜索x。每次余下n/(2i)個元素待比較,當最后剩下一個時,即n/(2i)=1。故n=2i;所以i=log2n。

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

4.C

5.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

6.D解析:結構體變量所占用內存的字節(jié)數(shù)是其所有成員所占用內存字節(jié)數(shù)之和。本題中整型變量i所占用的內存是2字節(jié),字符型變量ch所占用的內存是1字節(jié),雙精度型變量f所占用的內存是8字節(jié),三者相加即可。

7.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應注意下列兩點:①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大??;當初值的個數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

8.D解析:邏輯運算符兩側的運算對象可以是任意合法的表達式。邏輯表達式的運算結果或者為1(“真”),或者為0(“假”)。

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

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

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

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

經(jīng)過上述分析,本題的正確答案是選項D。

10.AC語言中,八進制整型常量以0開頭,十六進制整型常量以0x或0X開頭。C語言中的實型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。小數(shù)形式,表示的實型常量必須要有小數(shù)點;指數(shù)形式,在e或E后加一個整數(shù)來表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項中“028”不合法,八進制中沒有數(shù)字8。C選項中,e后面的指數(shù)不是整數(shù)。D選項中“10,000”數(shù)字之間不能有逗號。故本題答案為A選項。

11.B解析:C語言中注釋可以放在任何位置,選項A錯誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項B正確;C語言中兩側數(shù)據(jù)類型可以不一致,系統(tǒng)可進行強制類型轉換,選項C錯誤;C語言數(shù)值常量中不允許存在空格,選項D錯誤。

12.D題干中“x+y”是整型,函數(shù)的返回值是double類型,由于整型可以自動轉換成double類型,因此函數(shù)值返回時自動轉換成double類型。故本題答案為D選項。

13.B解析:選項B中每次執(zhí)行循環(huán)體都要執(zhí)行p=1,無法保存上次的運算結果,執(zhí)行完while循環(huán)后p=5。

14.D解析:本題考查的知識點是do-while循環(huán)結構循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點:

先執(zhí)行語句,后判斷表達式。所以,無論一開始表達式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點與while不同,

如果do-while語句循環(huán)體部分是由多個語句組成,則必須用花括號括起來,使其形成復合語句。

C語言中的do—while語句是在表達式“真”時重復執(zhí)行循環(huán)體。

在本題中,循環(huán)執(zhí)行判斷條件為while后面括號里的表達式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結束的條件為:p大于12345或者p小于12345又或者

溫馨提示

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

評論

0/150

提交評論