2021年陜西省渭南市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2021年陜西省渭南市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2021年陜西省渭南市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2021年陜西省渭南市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2021年陜西省渭南市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年陜西省渭南市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列關于線性鏈表的描述中正確的是()。

A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

2.若要求從鍵盤讀入含有空格字符的字符串,應使用函數(shù)

A.getc()B.gets()C.getehar()D.scanf()

3.設有一個二維數(shù)組A[m][n],假設A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個元素占一個空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進制表示)。

A.688B.678C.692D.696

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

A.c語言是一種結構化程序設計語言

B.使用三種基本結構構成的程序只能解決簡單問題

C.結構化程序設計提倡模塊化的設計方法

D.結構化程序由順序、分支、循環(huán)三種基本結構組成

5.若已知一個棧的進棧序列是l,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=3,則P2為()。

A.可能是2B.一定是2C.可能是1D.一定是1

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

A.局部變量說明為static存儲類,其生存期將得到延長

B.全局變量說明為static存儲類,其作用域將被擴大

C.任何存儲類的變量在未賦初值時,其值都是不確定的

D.形參可以使用的存儲類說明符與局部變量完全相同

7.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運行的結果是()。A.1,2,3,4,5,6,7,8,9,0,

B.0,9,8,7,6,5,1,2,3,4,

C.0,9,8,7,6,5,4,3,2,1,

D.1,2,3,4,9,8,7,6,5,0,

8.軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是()。

A.學生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

9.以下敘述正確的是

A.continue語句的作用是結束整個循環(huán)的執(zhí)行

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

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

D.從多層循環(huán)嵌套中退出時,只能使用goto語句

10.設char型變量x中的值為10100111,則表達式(2+x)(-3)的值為______。

A.10101001B.10101000C.11111101D.1010101

11.下面的排序算法中初始數(shù)據(jù)集的排列順序對算法的性能無影響的是()A.插入排序B.堆排序C.冒泡排序D.快速排序

12.要求當A的值為奇數(shù)時,表達式的值為“真”,A的值為偶數(shù)時,表達式的值為“假”,以下不滿足要求的表達式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)

13.

14.在下列定義語句中,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=‘\x2d’;B.chara=‘\n’;C.chara=‘a(chǎn)’;D.chara=“aa”;

15.下列二叉排序樹中查找效率最高的是()

A.平衡二叉樹B.二叉查找樹C.沒有左子樹的二叉排序樹D.沒有右子樹的二叉排序樹

16.有1000個無序的整數(shù),希望使用最快的方式找出前50個最大的,最佳的選擇是()

A.冒泡排序B.基數(shù)排序C.堆排序D.快速排序

17.在深度為5的滿二叉樹葉中,葉子結點的個數(shù)為()。

A.32B.31C.16D.15

18.有以下程序:程序運行后的輸出結果是()。A.1.000000B.0.000000C.0.250000D.0.500000

19.有以下程序段:charc1,c2;for(c=‘0’,c2=‘9’;c1<c2;c1++,c2--)printf(“%c%c”,c1,c2);程序段的執(zhí)行結果是()。

A.0123456789B.0918273645C.0123498765D.9876543210

20.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結果是()。A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯

二、2.填空題(20題)21.深度為5的滿二叉樹中,葉子結點的個數(shù)為______。

22.下列語句的輸出結果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

23.數(shù)據(jù)流圖的類型有【】和事務型。

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

main()

{

intx,y,z;

X=12;

y=012;

z=0l2;

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

}

25.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當字符串是回文時,函數(shù)返回字符串“yes!”,否則函數(shù)返回字符串“no!”,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adsda。請?zhí)羁铡?/p>

#include<stdio,h>

#include<string,h>

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=【】;

for(i=0;i<=strlen(str)/2;i++)

if(*pl++!=*p2--){t=1;break

if(【】)return("yes!");

elsereturn("no!");

}

main(){charstr[50];

printf("Iaput:");scanf("%s",str);

printf("%s\n",【】);

26.若有程序:

main()

{inti,j;

scanf('i=%d,j=%d";&i,&j);

printf("i=%d,j=%d\n",i,j);

}

要求給i賦10,給j賦20,則應該從鍵盤輸入上【】。

27.可以把具有相同屬性的一些不同對象歸類,稱為【】。

28.設有下面的程序段:chars[]="china";char*p;p=S;則下列敘述正確的是

29.【】是指一個數(shù)據(jù)對象中的各個數(shù)據(jù)元素之間存在的聯(lián)系。

30.以下程序中給指針p分配3個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>

#include<stdllb.h>

main()

{double*p;

p=(double*)malloc(【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

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

voidfunc(intx,inty,【】z)

{*z=x+y;

}

32.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

33.在數(shù)據(jù)庫理論中,數(shù)據(jù)庫總體邏輯結構的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要修改相應的應用程序,稱為【】。

34.診斷和改正程序中錯誤的工作通常稱為【】。

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

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

#include<stdio.h>

fun(intx)

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

printf("%d",x);

}

main()

{fun(6);}

37.請在以下程序第一行的下劃線處填寫適當內(nèi)容,使程序能正確運行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

38.有以下程序:

floatf1(floatn)

{returnn*n;}

floatf2(floatn)

{return2*n;}

main()

{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;

p1=f1;p2=f2;

y1=p2(p1(2.0));

t=P1;p1=p2;p2=t;

y2=p2(p1(2.0));

printf("%3.0f,%3.0f\n",y1,y2);

}

程序運行后的輸出結果是【】。

39.在程序設計階段應該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設計語言寫成程序。

40.設有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

三、1.選擇題(20題)41.下列對C語言字符數(shù)組的描述中正確的是

A.任何一個一維數(shù)組的元素在引用時,其下標可以是整型、實型或字符型常量

B.一維數(shù)組的元素實質上就是一個變量,代表內(nèi)存中的一個存儲單元

C.如果要引用數(shù)組中的每一個元素,則直接使用該數(shù)組名稱即使

D.以上都不對

42.設有定義:floata=2,b=4,h=3;以下c語言表達式中與代數(shù)式(a+B)h計算結果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

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

A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfum(n,x);

44.以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價的是

A.if((a>b)&&(b>c))k=1;elsek=0;

B.iff(a>b)‖(b>c))k=1;elsek=0;

C.iffa<=b)k=0;elseiffb<=c)k=1;

D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;

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

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

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

A.C語言的源程序不必通過編譯就可以直接運行

B.C語言中的每條叫執(zhí)行語句最終都將被轉換成二進制的機器指令

C.C源程序經(jīng)編譯形成的二進制代碼可以直接運行

D.C語言中的函數(shù)不可以單獨進行編譯

47.下列程序的輸出結果是#include"stdio.h"#defineN3#defineM3voidfun(inta[M][N]){printf("%d\n",*(a[1]+2));}main(){inta[M][N];inti,j;for(i=0;i<M;i++)for(j=0;j<N;j++)a[i][j]=i+j-(i-j);fun(a);}

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

48.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為()。

A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG

49.假設線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為

A.log2nB.n2C.O(n1.5)D.n(n-1)/2

50.分析以下程序,執(zhí)行后的輸出結果是()intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d,e,f;d=f1(a,B);d=f1(d,C);e=f2(a,B);e=f2(e,C);f=a+b+c-d-e;printf("%d,%d,%d",d,f,e);}

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

51.若有如下程序:sub(inta,intb,int*z){*z=a+b;return;}main(){inta=1,b=2,c=3,d,e;sub(a,b,&D);sub(c,d,&e);printf("%d",e);}則程序運行后的輸出結果是

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

52.以下程序的運行結果是()#include<stdio.h>main(){inta=015,b=22;printf("%d,%d\n",a++,--b);}

A.15,22B.15,21C.13,21D.14,21

53.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是

A.p=q;B.*p=*q;C.n=*q;D.p=n;

54.設有以下定義inta=0;doubleb=1.25;charcc='A';#defined2則下面語句中錯誤的是

A.a++;B.b++;C.c++;D.d++;

55.以下程序的輸出結果是______。main(){inta=3;printf("%d\n",(a+=a-=a*A));}

A.-6B.1C.2D.-12

56.下面程序段的運行結果是()。char*p="%d,a=%d,b=%d\n";inta=111,b=10,c;c=a%b;p+=3;printf(p,c,a,b);

A.1,a=111,b=10B.a=1,b=111C.a=111,b=10D.以上結果都不對

57.下列的程序用來輸出兩個字符串前7個字符中對應相等的字符及其位置號,程序空白處應該填寫的是()。#include<stdio.h>main(){Charsl[]="Chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]=s2[i]&&i<7)____________________;}

A.putchar(s2[i];putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

58.若變量已正確定義并賦值,以下符合C++語言語法的表達式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

59.下列敘述中正確的是A.C語言中既有邏輯類型也有集合類型

B.C語言中沒有邏輯類型但有集合類型

C.C語言中有邏輯類型但沒有集合類型

D.C語言中既沒有邏輯類型也沒有集合類型

60.下列是用戶自定義標識符的是

A._w1B.3_xyC.intD.LINE-3

四、選擇題(20題)61.

62.設有以下說明語句:

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

A.PER是結構體變量名

B.PER是結構體類型名

C.typedefstruct是結構體類型

D.struct是結構體類型名

63.若x是int型變量,且有下面的程序片段:

上面程序片段的輸出結果是()。

A.

B.

C.

D.

64.在深度為5的滿二叉樹中,葉子結點的個數(shù)為A.32B.31C.16D.15

65.以下選項中值為1的表達式是()。

A.

B.

C.

D.

66.

67.下列條件語句中,輸出結果與其他語句不同的是()

68.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEFGCHI和DBFEGACIH,則該二叉樹的后序遍歷為

A.DFGEBHICAB.DGEBHFCAIC.DFGEBIHCAD.DGEBFIHCA

69.以下程序段中,與語句:k=a>;b?(b>;c?1:O):0;功能相同的是()。

70.

71.層次型、網(wǎng)狀型和關系型數(shù)據(jù)庫劃分原則是()。

A.記錄長度B.文件的大小C.聯(lián)系的復雜程度D.數(shù)據(jù)之間的聯(lián)系方式

72.

73.

有下列程序:

fun(intX,inty){return(x+y);}

main

{inta=1,b=2,c=3,sum;

sum=fun((a++,b++,a+b),c++);

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

}

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

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

74.讀取二進制文件的函數(shù)調(diào)用形式為:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

A.一個內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址

B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個文件指針,指向待讀取的文件

D.一個內(nèi)存塊的字節(jié)數(shù)

75.有以下程序:

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

A.10B.16C.6D.12

76.

77.以下關于字符串的敘述中正確的是()。

A.C語言中有字符串類型的常量和變量

B.兩個字符串中的字符個數(shù)相同時才能進行字符串大小的比較

C.可以用關系運算符對字符串的大小進行比較

D.空串一定比空格打頭的字符串小

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

A.c語言是一種結構化程序設計語言

B.使用三種基本結構構成的程序只能解決簡單問題

C.結構化程序設計提倡模塊化的設計方法

D.結構化程序由順序、分支、循環(huán)三種基本結構組成

79.有以下程序:

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

A.SunDan20044550

B.Penghua20045537

C.LiSiGuo20042580

D.SunDan20041703

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:給定n個實數(shù),輸出平均值,并統(tǒng)計平均值以上(含平均值)的實數(shù)個數(shù)。

例如,n=8時,輸入90.009,179.623,167.575,100.051,6.092,154.986,12.432,45.765,所得平均值為94.566635,在平均值以上的實數(shù)個數(shù)應為4。

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

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

試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中下標為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。

例如,當str所指字符串中的內(nèi)容為abcdefg,則在t所指數(shù)組中的內(nèi)容應是bdf。

注意:部分源程序給出如下。

請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.A解析:線性表的鏈式存儲結構中的結點空間是動態(tài)生成的,它們在內(nèi)存中的地址可能是連續(xù)的,也可能是不連續(xù)的。

2.B解析:scanf()語句用“空格”區(qū)別不同的字符串;getc()與getchar()語句不能用于字符串的讀入。

3.C

4.BC語言是一種結構化程序設計語言。結構化程序設計是以模塊化設計為中心的,有三種基本結構:順序、選擇和循環(huán)結構。各模塊相互獨立,因而可將原來較為復雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護性。

5.A

6.A解析:局部變量在執(zhí)行到它所在的程序塊時產(chǎn)生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結束,故選項B不正確:未賦初值的局部變量的初值是隨機的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。

7.Dfun函數(shù)的功能是對數(shù)組a[]的元素從大到小進行排序。

8.A

9.B解析:continue是結束本次循環(huán),直接進入到下次循環(huán)中,break用于循環(huán)語句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語句除了goto語句,exit,return等語句也能直接跳出多層循環(huán)。注意:continue和break語句在while語句中的作用。

10.D解析:異或運算符(^)的運算規(guī)則是:參加運算的兩個相應位同號,則結果為0(假);異號則為1(真)。取反運算符(-)的運算規(guī)則是:對一個二進制數(shù)按位取反,即將0變?yōu)?,1變?yōu)?。本題(-3)是對3(二進制形式為00000011)按位取反即11111100。表達式(2+x)(-3)的值就等價于(00000010+10100111)^11111100,結果為01010101。

11.B

12.D

13.D

14.DD選項中將字符串常量“aa”賦給字符變量a是錯誤的。故本題答案為D選項。

15.A

16.D

17.C根據(jù)二叉樹的性質及定義,一棵深度為k且有2k-1個結點的二叉樹為滿二叉樹。滿二叉樹的葉子結點為最后一層的結點數(shù),又根據(jù)滿二叉樹的性質,在滿二叉樹的第i層上至多有2i-1個結點。因此深度為5的滿二叉樹的葉子結點數(shù)為25-1=16個。

18.D程序定義double變量x、y,給x賦初值2.0。if語句判斷,當x小于0.0時,給y賦值0.0。否則當x小于10.0時,y的值為1.0/x;當x大于等于10.0時,y的值為1.0。題干中x的值為2.0,所以y的值為1.0/x,即0.500000。本題答案為D選項。

19.B程序定義兩個字符變量c1和c2。for循環(huán)中,首先為c1賦值‘0’,為c2賦值‘9’,接著判斷c1和C2的大小。由于字符變量可以作為整型數(shù)處理,數(shù)字字符的ASCII值按字面數(shù)值的大小順序連續(xù)遞增,因此c1小于c2成立,執(zhí)行循環(huán)體輸出“09”,再將c1自增1,c2自減1后,執(zhí)行下一輪循環(huán),直到c1=‘5’,c2=‘4’時,c1<c2不成立,循環(huán)終止。最終程序段輸出:0918273645。故本題答案為B選項。

20.D因為字符數(shù)組s[]中的數(shù)組名s表示的是一個地址常量。所以語句“s+=2;”不能將指針在當前位置的基礎上再向后移動兩位。因而程序編譯時出錯。

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

22.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。

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

24.12101812,10,18解析:本題定義了3個整型變量x、y、z,并分別用十進制數(shù)、八進制數(shù)、十六進制數(shù)為它們賦值。然后以十進制整型輸出這3個變量。八進制數(shù)012的十進制表示為10,十六進制數(shù)0x12的十進制表示為18。此外輸出函數(shù)格式控制中的“,”原樣輸出。

25.p1+(stfien(str)-1)或str+(strlen(str)-1)t==0或!thuiwen(str)或(strlen(str)-1)+p1或(stden(str)-1)+strp1+(stfien(str)-1)或str+(strlen(str)-1)\r\nt==0或!t\r\nhuiwen(str)或(strlen(str)-1)+p1或(stden(str)-1)+str解析:回文字符串是指正向與反向拼寫都一樣。由huiwen函數(shù)可知,第三處應該填寫調(diào)用函數(shù)huiwen(str)。在函數(shù)huiwen中,執(zhí)行P1=str;使p1指向字符串str中第一個字符的地址,則第一處應該使p2指向字符串str中最后一個字符的地址,故填p1+(stden(str)-1)或str+(strlen(str)-1)。本題要求如果是回文,則返回'yes!',否則,返回'no!',故當t=0時,說明字符串str為回文,所以第二處應填t==0或!t。

26.i=10j=20i=10,j=20解析:該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應要輸入的變量,所以本題中應該原樣輸入i=,j=,后面分別給變量10和20,故空格處應該填入i=10,j=20。

27.對象類

28.D

29.數(shù)據(jù)結構數(shù)據(jù)結構

30.3*sizeof(double)3*sizeof(double)解析:malloc(size)函數(shù)用于申請動態(tài)存儲空間,故應填3個double型變量在內(nèi)存中所占的字節(jié)數(shù)。while循環(huán)的功能把字符從第二個元素開始左移一位,并將原第一個元素賦給最后一個元素。

31.int*int*解析:從函數(shù)體中可看出,2是一個指向整型的指針,該函數(shù)的形參z是傳地址調(diào)用。

32.從定義到本源文件結束從定義到本源文件結束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結束。

33.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)庫總體邏輯結構改變,而不需要相應修改應用程序叫做邏輯獨立性。

34.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。

35.完整性控制完整性控制

36.136136解析:程序中定義了一個遞歸調(diào)用函數(shù)fun。程序運行時,先把實參6傳給形參。if語句中6/2>0成立,執(zhí)行fun(x/2),即fun(3),同時輸出x的值6;再判斷if條件,3/2>0成立,再執(zhí)行fun(x/2),即fun(1),同時輸出x的值3;此時1/2>0不再成立,輸出1。而遞歸調(diào)用的輸出順序是相反的,故輸出結果為136。

37.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

38.8168,16解析:float(*p1)(float)是定義p1為指向函數(shù)的float型的指針變量。因此p1=f1;p2=f2;表示p1指向函數(shù)f1,p2指向函數(shù)f2,故所有y1=p2(p1(2.0))=f2(f1(2.0))=8;后面將p1與p2互換,y2=f1(f2(2.0))=16。

39.自頂向下自頂向下解析:在程序設計時,應先考慮總體,后考慮細節(jié),逐步使問題具體化,對復雜的問題,應該設計一些子目標作為過渡,上述方法概括為:自頂向下,逐步細化。

40.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

41.B解析:本題考查了字符數(shù)組的基本概念。選項A,因為數(shù)組元素的下標只能為整數(shù),所以選項A錯誤。選項C,引用數(shù)組中的元素,可以通過數(shù)組名和下標的方式來引用,只使用數(shù)組名不可以。

42.B解析:選項B中由于1和2都是整型,其1/2的運算結果為0,故整個表達式的值為0,所以它的結果和題目中要求的代數(shù)式的討算結果不相符,所以,4個選項中選項B符合題意。

43.C解析:選項A中應將y和m前面的函數(shù)的類型說明符去掉,故選項A不正確;選項B中函數(shù)傳了2個參數(shù),其中一個為整型—個為浮點型,而fun()函數(shù)在定義時聲明的2個參數(shù),一個為整型一個為雙精度型,其參數(shù)類型不一致,故選項B不正確;選項D在調(diào)用函數(shù)時,不應該再聲明其返回類型,故選項D不正確。所以,4個選項中選項C符合題意.

44.A解析:本題考核的知識點是三目運算符“?:”的運用:三目運算表達式的規(guī)則為如果“?”前面的表達式的值為真,則取“:”前的表達式的值,否則,取“:”后面表達式的值。分析題目中給出的表達式可知,如果a>b和b>c同時成立,k=1,否則k=0.所以,4個選項中選項A符合題意。

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

46.B解析:C語言采用編譯方式將源程序轉換為二進制的目標代碼,編寫好一個C程序到完成運行一般經(jīng)過以下幾個步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進制的目標代碼,經(jīng)編譯后的得到的二進制代碼還不能直接執(zhí)行,因為每一個模塊往往是單獨編譯的,必須把經(jīng)過編譯的各個模塊的目標代碼與系統(tǒng)提供的標準模塊連接后才能運行;連接,將各模塊的二進制目標代碼與系統(tǒng)標準模塊經(jīng)連接處理后,得到具有絕對地址的可執(zhí)行文件,它是計算機能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個經(jīng)過編譯和連接的可執(zhí)行的目標文件。由以上定義可知,選項A、C、D均不正確。所以,4個選項中選項B符合題意。

47.B解析:若有以下定義:inta[3][4],i,j;且當0<=i<3,0<=j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:

a[a][j],*(a[i]+j),*(*(a+i)+j),(*(a+i)[j],*(&a[0][0]+4*i+j)”。

48.B遍歷是按照一定規(guī)則對樹中全部結點逐一訪問的方法。二叉樹可由根結點、左子樹和右子樹三個部分組成。根據(jù)對根結點訪問的先后順序,可將遍歷方法分為先序遍歷、中序遍歷和后序遍歷三種。先序遍歷首先訪問根結點,再先序遍歷左子樹,最后先序遍歷右子樹,可見遍歷是一個遞歸的過程。求樹的遍歷這種問題的關鍵在于認清每棵子樹的根結點的訪問順序。題目給出了一棵樹的先序遍歷和中序遍歷的結點順序,先序遍歷的第一個結點為整棵樹的根結點,即根結點為A,而在中序遍歷的順序中,結點A的前面還有DBGE四個結點,表示這四個結點構成以A為結點的二叉樹的左子樹,同理,中序遍歷中A結點后面的CHF三個結點構成以A為結點的二叉樹的右子樹。于是原來的對一棵二叉樹的分析變?yōu)閷υ摱鏄涞淖笥易訕涞姆治?。以左子樹為例,左子樹結點的先序遍歷為BDEG,中序遍歷為DBGE,該子樹的根結點為B,B結點的左子樹為一個結點D,右子樹為以E為根結點,結點G是E的左孩子。同理,可對CHF三個結點進行分析。

最后得到整棵樹的結構后,按照后序遍歷寫出所有結點的順序:DGEBHFCA。

49.D解析:假設線性表的長度為n,則在最壞情況下,冒泡排序要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。

50.C

51.D解析:第一次調(diào)用函數(shù)sub返回后,d的值為2+1=3;第二次調(diào)用函數(shù)sub返回后,e的值為3+3=6。

52.C

53.D解析:本題中首先定義了一整型變量n并賦初值為2,接著定義了一個整型指針變量p并讓它指向n,接著又定義了一指向指針的指針變量q。選項A中給指針變量p賦值q,故這個賦值語句正確。選項B中*p=*q就是將*q的值賦給指針變量p所指向的變量n,故這個賦值語句不是非法的賦值語句。選項C中是將*q的值賦給變量n,故這個表達式不是非法的賦值語句。選項D中p為一指針變量,應該將一地址賦給它,而在此選項的表達式中將變量n而不是n的地址賦給它,故這個表達式不合法。

54.D解析:自加運算對象可以是整型變量也可以是實型變量,但不能是表達式和常量。本題中,#defined2定義了d為常數(shù)2,不能再對d進行自加運算。

55.D解析:賦值運算符的結合方向是自右至左,所以表達式a+=a-=a*a先運算最右邊的a*a得9,再運算a=a-9,即a=3-9,所以此時a的值由3變成了-6,最后運算a=a-+(-6),即a=(-6)+(-6)=-12。

56.B解析:題中字符指針p指向了字符串“%d,a=%d,b=%d\\n”,c=a%b=111%10=1,p+=3使指針p向后移動了3個字符的位置。printf(p,c,a,b)相當于printf(“a=%d,b=%d\\n”,c,a,b);,格式控制串指明輸出兩個數(shù)據(jù),輸出項有3項,則最后一項不輸出,所以答案為B)。注意:格式輸出函數(shù)scanf的使用。

57.C解析:putchar(s)的功能是把字符s輸出到標準輸出設備;puts(s1)是把s1指向的字符串輸出到標準輸出設備。

58.B解析:a=b=c+2實際上相當于a=(b=c+2),進而可分解為兩個表達式:b=c+2和a=b。注意:選項A)中包含一個不合法的運算符“:=”;選項C)應改為(int)18.5%3;選項D)可理解為兩個表達式:a+7=c+b和a=a+7,其中第一個是錯的,因為C++語言規(guī)定賦值號的左邊只能是單個變量,不能是表達式或常量等。注意:C++語言賦值語句的運用,

59.D解析:在C語言中沒有邏輯類型,邏輯類型用整型來表示,故選項A和選項C不正確,C語言中沒有集合類型,故選項B不正確。所以,D選項為所選。

60.A本題主要考查標識符的定義。對標識符的定義是考試中??嫉膬?nèi)容之一。標識符主要由數(shù)字、下畫線和字母組成,其中數(shù)字不能放在首位,另外,用戶自定義標識符時,不能將標識符定義為C語言中已定義的關鍵字,如int、while等。

根據(jù)上面對標識符的分析,我們不難看出本題的正確答案是A。在選項B中,3_xy以數(shù)字開頭,不符合標識符定義的規(guī)定;在選項C中,int是C語言系統(tǒng)中已經(jīng)定義了的關鍵字;在選項D中,LINE-3使用的數(shù)字、下畫線和字母以外的字符,因此不正確。

61.B

62.B本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。

63.D

64.C2(n-1)

=2(5-1)=16

65.B解析:‘0’代表ASCⅡ碼為48的字符,‘\\0’代表ASCⅡ碼為0的字符,‘1’代表ASCⅡ碼為49的字符,所以只有選項B的表達式的值為1。

66.D

67.A若a為0,A)選項輸出x,其他輸出y,所以選擇A)。

68.C本題主要考查二叉樹的遍歷。題目中給出了二叉樹的前序遍歷和中序遍歷結果,要求其后序遍歷的結果。

由于二

溫馨提示

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

評論

0/150

提交評論