2022年安徽省宿州市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2022年安徽省宿州市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2022年安徽省宿州市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2022年安徽省宿州市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2022年安徽省宿州市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年安徽省宿州市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.函數(shù)fun的功能是在a所指的具有n個元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),但函數(shù)不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應(yīng)填入的選項是()。

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

2.若有定義語句“chars[10]=“1234567\0\0”;”,則Strlen(s)的值是()。

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

3.閱讀以下程序:#include<stdio.h>main(){intcase;floatprintF;printf("請輸人2個數(shù):");scanf("%d%fl"&case,&printF);printf("%dofof\n",case,printF);}該程序在編譯時產(chǎn)生錯誤,其出錯原因是()。A.定義語句出錯,case是關(guān)鍵字,不能用做用戶自定義標(biāo)識符

B.定義語句出錯,printF不能用做用戶自定義標(biāo)識符

C.定義語句無錯,scanf不能作為輸入函數(shù)使用

D.定義語句無錯,printf不能輸出case的值

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

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

B.eotinue語句的作用是結(jié)束整個循環(huán)的執(zhí)行

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

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

5.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.0,1,0B.0,1,1C.0,0,1D.0,0,0

6.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

程序的運行結(jié)果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

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

A.將p1所指字符串復(fù)制到p2所指內(nèi)存空間

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

C.對p1和p2兩個指針?biāo)缸址M行比較

D.檢查P1和p2兩個指針?biāo)缸址惺欠裼?\0'

8.

9.能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達式是()。

A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)

B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)

C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)

D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)

10.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}執(zhí)行程序時,給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45

11.

12.按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在用戶標(biāo)識符中的是()。

A.大寫字母B.下劃線C.數(shù)字D.連接符

13.以下敘述中錯誤的是______。A.C程序必須由—個或—個以上的函數(shù)組成

B.函數(shù)調(diào)用可以作為—個獨立的語句存在

C.若函數(shù)有返回值,必須通過return語句返回

D.函數(shù)形參的值也可以傳回給對應(yīng)的實參

14.若變量c為char類型,能正確判斷出c為小寫字母的表達式是A.A.′a′<=c<=′z′c="">=′a′)||(c<=′z′)

B.(′a′>=c)and(′z′>=c)

C.(′a′<=c)and(′z′>=c)

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

15.下列程序段中完全正確的是()。A.int*p;scanf(“%d”,&p);

B.int*p;scanf(“%d”,p);

C.intk,*p=&k;scanf(“%d”,p);

D.intk,*p;*p=&k;scanf(“%d”,p);

16.若查找每個記錄的概率均等,則在具有n個記錄的連續(xù)順序文件中采用順序查找法查找一個記錄,其平均查找長度ASL為()

A.(n-1)/2B.n/2C.(n+1)/2D.n

17.有以下程序: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í)行后的輸出結(jié)果是______。

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

18.下面敘述中錯誤的是()。

A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤

B.對被調(diào)試的程序進行“錯誤定位”是程序調(diào)試的必要步驟

C.程序調(diào)試通常也稱為Debug

D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性

19.需求分析的主要任務(wù)是()。

A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)入員

20.設(shè)有以下語句

typedefstructS

{intg;charh;}T;

則下面敘述中正確的是()A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

二、2.填空題(20題)21.設(shè)有下列宏定義:#defineA2

#defineBA+3

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

22.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

23.設(shè)有定義:FILE*fw;,請將以下打開文件的語句補充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。

fw=fopen("readme.txt",【】);

24.如果一個工人可管理多個設(shè)施,而一個設(shè)施只被一個工人管理,則實體“工人”與實體“設(shè)備”之間存在______聯(lián)系。

25.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

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

main()

inta.b,c;

a=10;b=20;c=(a%b<)||{a/b>1);

printf("%d%d%dn",a,b,c);

}

27.有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

執(zhí)行后輸出結(jié)果是______。

28.面向?qū)ο蟮哪P椭校罨镜母拍钍菍ο蠛蚠_____。

29.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}

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

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

32.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

33.已定義charch='$';inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為______。

34.閱讀下列程序,則在執(zhí)行后,程序的運行結(jié)果為#include"stdio.h"#include"string.h"main(){chara[30]="nicetomeetyou!";strcpy(a+strlen(a)/2,"you");printf("%s\n",a);}

35.在一個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。

36.以下程序的功能是計算: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);

}

37.對于圖書管理數(shù)據(jù)庫,將圖書表中“人民郵電出版社”的圖書的單價漲價5%。請對下面的SQL語句填空:UPDATE圖書______WHERE出版單位="人民郵電出版社"

38.如下圖所示的二叉樹后序遍歷序列是【】。

39.下列程序的運行結(jié)果是______。

#definePOWER(x)((x)*(x))

main()

{inti=1;

printf("%d,%d",POWER(i++),i);

}

40.以下程序的輸出結(jié)果是_______。

main()

{char*p[]={"BOOL","OPK","H","SP:,};

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

三、1.選擇題(20題)41.設(shè)有以下語句

charx=3,y=6,z;

z=x^y<<2;

則z的二進制值是

A.00010100B.00011011C.00011100D.00011000

42.有以下程序:main(){inti;for(i=1,i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執(zhí)行后的輸出結(jié)果是()。

A.5B.24C.32D.40

43.設(shè)有定義:inta=2,b=3,c=4;則以下選項中值為0的表達式是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

44.為了使模塊盡可能獨立,要求

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡最強

45.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為

A.TRUEB.FALSEC.0D.1

46.下列程序的輸出結(jié)果是______。main(){inta=12,b=12;printf("%d%d\n",--a,++b);

A.1010B.1212C.1110D.1113

47.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。

A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值

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

49.下面一組中都是C語言關(guān)鍵字的是______。

A.doubleIntfor

B.mainwhilegoto

C.volatilebreakstatic

D.mallocsizeofnew

50.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。

A.從文件file中讀取長度為n的字符串存入字符數(shù)組s中

B.從文件file中讀取長度不超過n-1個字符的字符串放到字符數(shù)組s中

C.從文件file中讀取n個字符串存入字符數(shù)組s中

D.從文件file中讀取長度為n-1個字符的字符串存入字符數(shù)組s中

51.下列選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

52.能夠?qū)τ嬎銠C的硬件設(shè)備進行管理,并使應(yīng)用軟件能夠方便、高效地使用這些設(shè)備的是()

A.數(shù)據(jù)庫存系統(tǒng)B.操作系統(tǒng)C.編輯軟件D.應(yīng)用軟件

53.在執(zhí)行完下列的C語句段之后,則B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));

A.0B.1C.真D.假

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

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'};

55.設(shè)有一共用體變量定義如下:uniondata{longw;floatx;inty;charz;};uniondatabeta;執(zhí)行下列語句后,正確的共用體變量beta的值是()。beta.w=123456;beta.y=888;beta.x=3.1416;beta.z='x';

A.123456B.888C.3.1416D.'X'

56.以下選項中,與k=n++完全等價的表達式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

57.若有以下定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項中錯誤的語句是

A.*q=0;B.w=p;C.*p=a;D.*p=*w;

58.在下列敘述中,不正確的一條是______。

A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次,賦一次初值

B.在C語言中,外部變量的隱含類別是自動存儲類別

C.在C語言中,在調(diào)用函數(shù)時,實際參數(shù)和對應(yīng)形參在類型上只需賦值兼容

D.在C語言中,函數(shù)形參可以說明為register變量

59.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.sets(&s[0]);

B.scarf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

60.以下程序的輸出結(jié)果是#include<stdi0.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf(“%d\n”,A);}

A.21B.32C.33D.11

四、選擇題(20題)61.以下敘述中正確的是()。

A.在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面

B.每個后綴為C的C語言源程序都可以單獨進行編譯

C.在C語言程序中,只有main函數(shù)才可單獨進行編譯

D.每個后綴為.C的C語言源程序都應(yīng)該包含一個main函數(shù)

62.設(shè)有定義:“char*c;”,以下選項中能夠使字符型指針c正確指向一個字符串的()。

A.charstr[]="string";c=str;

B.scanf(%s,c):

C.c=getchar();

D.*c="strin9";

63.

64.

65.若變量均已正確定義并賦值,以下合法的c語言賦值語句是()。A.x---y=--5;B.x--n%2.5;C.x+n=i;D.x=5--4+1;

66.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細設(shè)計說明書C.用戶手冊D.軟件需求規(guī)格說明書

67.有以下程序:

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

A.32B.12C.21D.22

68.有以下程序:

當(dāng)執(zhí)行程序時,按下列方式輸人數(shù)據(jù)(從第l列開始,<CR>代表回車,注意,回車也是—個字符)l<CR>

234<CR>

則輸出結(jié)果是()。

A.34

B.134

C.123

D.1234

69.有以下程序:

#include<stdio.h>

main()

{chara[5][10]={"one","tw0","three","four","five"};

inti,j;

chart:、

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

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

if(a[i][O]>a[j][0])

{t=a[i][O];a[i][O]=a[j][O];a[j][O]=t;)

puts(a[1]);

}

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

A.fwo

B.fix

C.two

D.owo

70.(66)為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為()

A.PAD圖

B.N-S圖

C.結(jié)構(gòu)圖

D.數(shù)據(jù)流圖

71.在面向?qū)ο蠓椒ㄖ?,實現(xiàn)信息隱蔽是依靠()。

A.對象的繼承B.對象的多態(tài)C.對象的封裝D.對象的分類

72.

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

A.在C語言中,可以使用動態(tài)內(nèi)存分配技術(shù)定義元素個數(shù)可變的數(shù)組

B.在c語言中,數(shù)組元素的個數(shù)可以不確定,允許隨機變動

C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致

D.在C語言中,定義一個數(shù)組后.就確定了它所容納的元素的個數(shù)

74.

75.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點,指針變量s總是作為指針指向鏈表的第一個結(jié)點。

若有以下程序段:

該程序段實現(xiàn)的功能是()。

A.刪除尾結(jié)點B.尾結(jié)點成為首結(jié)點C.刪除首結(jié)點D.首結(jié)點成為尾結(jié)點

76.

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

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

78.有以下程序

main()

{inta[3][2]={0},(*ptr)[2],i,j;

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

{ptr=a+i;scanf("%d",ptr);ptr++;}

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

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

printf("\n");

}

}

若運行時輸入123<回車>,則輸出結(jié)果為

79.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式

C.數(shù)據(jù)在計算機中的順序存儲方式

D.存儲在計算機外存中的數(shù)據(jù)

80.有以下程序:

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

A.12B.14C.1234D.123456

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:利用插入排序法對字符串中的字符按從大到小的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前2個字符中,插人后前3個字符依然有序,再把第4個字符插入前3個字符中,待排序的字符串已在主函數(shù)中賦予。例如,原始字符串為“goodluck”,則排序后的字符串為“uoolkgdc”。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是根據(jù)以下公式求P的值,結(jié)果由函數(shù)值返回。m與n為兩個正整數(shù)且要求m>n。例如:m=12,n=8時,運行結(jié)果為495.000000。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B函數(shù)fun的功能是在a所指的具有n個元素的數(shù)組中查找最大值并返回。通過for循環(huán)比較,s始終指向最大值的那個元素。取指針的值,使用*P,因此比較使用*P和*s,又因為找最大值,當(dāng)*s<*p時,修改指針s的指向。故本題答案為B選項。

2.Astrlen函數(shù)計算字符串長度時,遇到結(jié)束標(biāo)識為止,且長度不包括結(jié)束標(biāo)識。本題中的字符串從第1個字符開始,遇到第1個結(jié)束標(biāo)識‘\\0’為止,注意不占字符串長度,所以字符串長度為7。故本題答案為A選項。

3.A本題中定義了整形變量case,但case是關(guān)鍵字,關(guān)鍵字不能用做標(biāo)識符。單精度printF不是關(guān)鍵字,因為標(biāo)識符區(qū)分大小寫。所以A不正確。

4.A本題考查循環(huán)跳出的知識點:①break語句可以出現(xiàn)在switch循環(huán)體內(nèi)及語句體內(nèi),它的作用是跳出循環(huán)體,不能用于其他的語句;②continue語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,而接著判定循環(huán)條件是否成立,確定下一次循環(huán)是否繼續(xù)執(zhí)行,執(zhí)行contiune語句不會使整介循環(huán)終止;③循環(huán)體內(nèi)使用break語句會使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時,可以使用90t0語句或者break語句。

5.Bif條件表達式“a--‖b--&&--c”使用了邏輯或運算符和邏輯與運算符。因為邏輯與運算符優(yōu)先級比邏輯或運算符優(yōu)先級高,所以條件表達式等價于“(a--)‖(b--&&--c)”,自左向右運算,執(zhí)行“a”,因為a初值為1,所以a--的值為1,執(zhí)行完后a的值為0;又因為邏輯或運算符的短路原則,當(dāng)a--的值為1時,條件為真,后面的表達式b--&&--c不執(zhí)行。程序執(zhí)行if語句塊,輸出a、b、c的值為:0,1,1。本題答案為B選項。

6.D解析:本題中fun函數(shù)實現(xiàn)了字符串函數(shù)strcat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\\0')逐個復(fù)制到字符串ss的末尾處。

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

8.C

9.C本題考查邏輯與(&&)和邏輯或(||)運算符的使用。x值在[1,10]之間,C語言中可以寫成x值在[100,11O]之間,C語言表達式應(yīng)寫成“(x>=100)&&(x>=110)”;[1,1O]和[100,110]滿足任意條件就可以,所以是邏輯或的關(guān)系,因此只要將前兩個表達式用邏輯或運算符連接起來即可,所以最后的表達式:(x>=1)&&(x<=10)&&(x<=110)。

10.A函數(shù)intfun(intn)的功能是求1+2+…+n的值并返回。所以執(zhí)行程序時,給變量x輸入10后,執(zhí)行語句“x=fun(x);”,X的值將變?yōu)?到10中10個整數(shù)的累加和,即55。

11.B

12.DC語言只符由字母、數(shù)字、下劃線組成,且第1個字符必須是字母或下劃線,所以D選項中的連接符不合法。故本題答案為D選項。

13.D解析:在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞紿形參,調(diào)用結(jié)束后,形參單元彼釋放,實參單元仍保留并維持原值。因此,在執(zhí)行—個被調(diào)用函數(shù)時,形參的值如果發(fā)生改變,并不會改變主調(diào)函數(shù)的實參的值,也就是說形參的值是不傳回紿對應(yīng)的實參的。

14.D

15.CA選項中,沒有對指針進行初始化,屬于無效指針,并且在“scanf(“%d”,&p);”中無須再進行取地址操作;B選項中,沒有對指針進行初始化,屬于無效指針;D選項中,語句“*p=&k;”書寫錯誤,應(yīng)為“P=&k;”。故本題答案為C選項。

16.C

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

18.A軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,所以選項A錯誤。程序調(diào)試的基本步驟有:錯誤定位、修改設(shè)計和代碼,以排除錯誤、進行回歸測試,防止引進新的錯誤。程序調(diào)試通常稱為Debug,即排錯。軟件測試的基本準(zhǔn)則有:所有測試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。故答案為A選項。

19.A需求分析是軟件開發(fā)之前必須要做的準(zhǔn)備工作之一。需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。故需求分析的主要任務(wù)是確定軟件系統(tǒng)的功能。本題答案為A選項。

20.B解析:結(jié)構(gòu)體類型的定義格式為:

strcut結(jié)構(gòu)體名

{成員說明列表};

結(jié)構(gòu)體變量的定義有3種形式:第一種:定義結(jié)構(gòu)體型的同時定義結(jié)構(gòu)體變量如:strcut結(jié)構(gòu)體名{成員說明列表}變量;第二種先定義一個結(jié)構(gòu)體類型,然后使用該類型來定義結(jié)構(gòu)體變量,如:strcutstudent{成員說明列表):student變量;第三種:定義一個無名稱的結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如:Strctstudent{成員說明列表}變量。和上面三種情況比較我們不難得知只有選項B是正確的。所以,4個選項中選項B符合題意。

21.88解析:本題考查帶參數(shù)的宏定義及相關(guān)運算.運算過程為:t=B*2=A+3*2=2+3*2=8。

22.概念(或概念級)概念(或概念級)

23.aa解析:本題考查的是文件的打開方式。要向文本文件的末尾續(xù)寫內(nèi)容,需要使用方式“a”(追加)打開文件。

24.一對多(或1:N)一對多(或1:N)

25.非0非0解析:邏輯運算中,非0表示邏輯“真”,用。表示邏輯“假”。

26.1020010200解析:本題的關(guān)鍵在于求表達式(a%b<1)‖a/b>1)的值。已知a=10,b=20,所以a%b=10,因此(a%b<1)為“假”。而a/b=0,因此(a/b>1)亦為“假”。,D運算的兩邊同時為“假”,所以整個表達式的值為?!凹佟保碿等于0。所以,本題最終輸出為:10200。

27.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值相乘,最后當(dāng)i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。

28.類類

29.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。

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

31.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關(guān)系表達式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。

32.軟件開發(fā)

33.11解析:在執(zhí)行邏輯表達式“j=!ch&&i++”時,首先判斷j=!ch的值,因為“ch='$'”不為0,所以“j=!ch=0”,編譯系統(tǒng)便不再計算表達式“i++”的值,i的值不變,仍為1。

34.D

35.3131解析:設(shè)隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。

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

37.更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個或多個屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達式賦值給對應(yīng)的屬性名(SET單價=單價*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進行限制,即對符合條件的元組進行更新。\r\n\r\n

38.GDBHIEFCAGDBHIEFCA解析:后序遍歷二叉樹的順序為:后序遍歷左子樹→后序遍歷右子樹→訪問根結(jié)點。按照定義,后序遍歷序列是GDBHIEFCA。

39.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

40.

41.B本題主要考查位運算?!鞍次划惢颉边\算(^)是雙目運算符,其功能是把參與運算的兩數(shù)各對應(yīng)的二進制位相異或,它在操作時,兩對應(yīng)位相同結(jié)果為0,不同則為1?!白笠啤边\算(<<)的功能是把“<<”左邊的運算數(shù)的各二進制位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。左移時,若左端移出的部分不包含有效二進制數(shù)1,則每左移一位,相當(dāng)于移位對象乘以2。

本題中,有三個字符型的變量x,y,z,其中x和y的值分別為3和6。先轉(zhuǎn)換為二進制數(shù)分別為00000011和00000110。本題中需要注意的是邏輯左移運算符的優(yōu)先級比按位異或運算符的優(yōu)先級高,因此,先將y進行運算邏輯左移2位操作,得到的結(jié)果為00011000,然后進行按位異或運算,得到最后的結(jié)果是00011011。本題正確的答案選B。

42.C解析:i=30時,條件表達式“i++%5==0”為真,i++后i=31,++i后i=32,即條件表達式“++i%8==0”為真。

43.A解析:邏輯運算符的優(yōu)先級由高到低運算次序如下:!(非)→&&(與)→||(或),選項A)的表達式中,先計算!a,結(jié)果為0,由于'0==1'不成立,故整個表達式的值為0。

44.B解析:系統(tǒng)設(shè)計的質(zhì)量主要反映在模塊的獨立性上.評價模塊獨立性的主要標(biāo)準(zhǔn)有兩個:一是模塊之間的耦合,它表明兩個模塊之間互相獨立的程度;二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚.一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨立,而要求模塊的內(nèi)聚程度盡量地高。綜上所述,選項B的答案正確。

45.D解析:在C語言中,邏輯運算符有4個,它們分別是:!(邏輯非)、||(邏輯或)、&&及(邏輯與)、^(異或)。在位運算里面還有&(位與)、|(位或)的運算。本題考查邏輯與運算符的用法,在表達式x=(a&&b)&&(c<'B');中,先判斷a&&b條件,邏輯與條件的兩邊都要保證為1,即a和b都成立,當(dāng)然c<'B'是成立的,顯然,該表達式的值為1。

46.D

47.B解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。

48.C2(n-1)

=2(5-1)=16

49.C解析:C語言中的關(guān)鍵字有32個關(guān)鍵字(參見C語言教程),本題中只有C符合題意。

50.B解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“s”可以是一個字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個數(shù);“fp”是指向該文件的文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串放到字符數(shù)組s中;讀入字符串后會自動在字符串末尾加入“'\\0'”結(jié)束符,表示字符串結(jié)束。

51.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項D)等于關(guān)系表達式的結(jié)果為假,即等于0。

52.B

53.B解析:本題考查C語言3個知識點:①將一個字符賦給一個字符變量時,并不是將該字符本身存儲到內(nèi)存中,而是將該字符對應(yīng)的ASCII碼存儲到內(nèi)存單元中:②大寫字母的ASCII碼值小于其對應(yīng)小寫字母的ASCII碼值:⑧只要邏輯與運算符&&的兩個運算對象都為非零,返回值就是1。

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

55.D解析:因為共用體的所有成員共同占據(jù)一段存儲空間,所以成員數(shù)據(jù)后賦的值會覆蓋掉先賦的值,最后共用體變量中保留的就是最后一次賦的值。注意:共用體變量所占存儲單元字節(jié)數(shù)的計算。

56.A解析:在本題中k=n++,為后綴運算。根據(jù)其運算規(guī)則,首先n先加一,但n++表達式的值依然n原來的值,即k的值沒有改變。選項A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達式和本題中表達式等價:選項B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個表達式和本題中表達式不等價:選項C中先計算表達式左邊的表達式++=N的值,執(zhí)行++n后,左邊的表達式的值為n的值加1,然后將n+1后的值賦給k,所以這個表達式和本題中的表達式不等價;選項D中表達式展開為k=k+(n+1),k的值發(fā)生了變化,所以這個表達式和本題中的表達式不等價。所以4個選項中A正確。

57.A解析:本題中定義了3個指向整型的指針變量p、q、w,并讓P指向a,讓q指向b,通過將q的值賦給w,使w也指向b,最后將NULL賦值給q。由整型變量指針的定義可知,可以給整型指針指向的變量賦一個常數(shù)值(表達式);可以給指針變量賦一個同種類型的指針變量(或地址值);選項A因為q不指向任何變量,給一個空指針指向的單元賦值是錯誤的。

58.B

59.D解析:在格式輸入中,要求給出的是變量的地址,而D)答案中給出的s[1]是一個值的表達式。

60.B解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用。本題程序為在while循環(huán)中嵌套for循環(huán)。先看內(nèi)層for循環(huán),該循環(huán)的3個表達式全部省略,循環(huán)條件始終為真,但循環(huán)體內(nèi)的break語句為終止循環(huán)的條件。首先,由初始條件判斷外層循環(huán)while括號內(nèi)表達式的值,該值為真,執(zhí)行本次while循環(huán),即執(zhí)行循環(huán)體內(nèi)的if語句,判斷該表達式后面括號里表達式的值為真,執(zhí)行break語句,跣出內(nèi)層循環(huán),執(zhí)行下面的語句,此時i和a的值均變?yōu)?1;回到外層循環(huán),判斷表達式“i<20”仍為真,執(zhí)行內(nèi)層循環(huán)語句,此時if條件不滿足,執(zhí)行else語句,i的值為10,繼續(xù)內(nèi)層循環(huán),if語句條件滿足,執(zhí)行break語句,跳出內(nèi)層循環(huán),執(zhí)行下面的語句后,i和a的值分別是21和32。再判斷外層循環(huán)的條件為假,結(jié)束循環(huán)。

61.BC語言是一種成功的系統(tǒng)描述語言,具有良好的移植性,每個后綴為.C的C語言源程序都可以單獨進行編譯。

62.A選項B是從鍵盤上輸入字符串,選項C是接收字符,選項D不正確。

63.B

64.D

65.A%取余操作數(shù)只能是整數(shù),x+n和數(shù)值5不能作為賦值的左值,NC2B)、C)、D)錯誤。

66.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審四個方面。所以選擇D。

67.Cc語言中函數(shù)

溫馨提示

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

評論

0/150

提交評論