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.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.歸并排序

2.數(shù)據(jù)處理的最小單位是()。

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結(jié)構

3.定義無符號整數(shù)類為UInt,下面可以作為類UInt實例化值的是()。

A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}

4.下面不能正確表示a*b/(c*d)的表達式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

5.有以下程序:#include<stdio.h>intf(intm){staticintn=0;n+=m;returnn;}main(){intn=0;printf("%d,"f(++n));printf("%d\n",f(n++));}程序運行后的輸出結(jié)果是()。A.1,2B.1,1C.2,3D.3,3

6.依次插入序列(50,72,43,85,75,20,34,45,65,30)后建立的二叉搜索樹中,查找元素30要進行()次元素間的比較。

A.4B.5C.7D.10

7.有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf(“%d\n”,m);}程序的運行結(jié)果是()A.1B.0C.2D.3

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

A.軟件工程只是解決軟件項目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應用工程化原則

D.軟件工程只是解決軟件開發(fā)過程中的技術問題

9.當很頻繁的對序列中部進行插入和刪除操作時,應該選擇使用的容器是()

A.vectorB.listC.dequeD.stack

10.

11.

12.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運行后的輸出結(jié)果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3

13.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應填入的是()。A.i-1B.iC.i+1D.4一i

14.第

2

現(xiàn)有如下程序段

#include"stdio.h"

main()

{intk[30]={12,324,45,6,768,98,21,34,453,456};

intcount=0,i=0;

while(k[i])

{if(k[i]%2==0‖k[i]%5==0)count++;

i++;}

printf("%d,%d\n",count,i);}

則程序段的輸出結(jié)果為

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

15.VC6.0中int類型變量所占字節(jié)數(shù)是()。

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

16.下面程序的運行結(jié)果是______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}

A.7654321B.1714171C.1711717D.7177171

17.下面函數(shù)的功能是()intfunl(char*X){char*y=X;whar(*y++);return(y-x-1);}

A.求字符串的長度B.比較兩個字符串的大小C.將字符串x復制到字符串y中D.將字符串x連接到字符串y后面

18.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結(jié)構形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),可被各個應用程序所共享。

A.視圖B.消息C.數(shù)據(jù)D.關系

19.指針可以用來表示數(shù)組元素,若已知語句:inta[3][7];則下列表示中正確的是()。

A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)

20.有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}程序執(zhí)行后的輸出結(jié)果是()。A.7B.3C.2D.0

二、2.填空題(20題)21.某二叉樹中度為2的節(jié)點有18個,則該二叉樹中有()個葉子節(jié)點。

22.下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

23.以下程序運行后的輸出結(jié)果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}

24.在一個容量為25的循環(huán)隊列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊列中共有【】個元素。

25.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

26.與結(jié)構化需求分析方法相對應的是【】方法。

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

main()

{inta[4][4]={{1,2,3,4),{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4)

{

if(i==2||i==4)continue;

j=0;

do{S+=a[i][j];j++;}while(j<4);

}

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

}

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

main()

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

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

29.將代數(shù)式轉(zhuǎn)換成程序設計中的表達式為【】。

30.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。

31.在面向?qū)ο蟮某绦蛟O計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。

32.以下程序的運行結(jié)果為【】。

#include<stdio.h>

main()

{staticintb[2][3]={{1,2,3},{4,5,6}};

staticint*pb[]={b[0],b[1]};

inti,j;

i=0;

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

printf("b[%d][%d]=%d",i,j,*(pb[i]+j));

printf("\n");

}

33.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')

s[j]='\0';

puts(s);

}

34.在對文件進行操作的過程中,若要求文件的位置回到文件的開頭,應當調(diào)用的函數(shù)是【】函數(shù)。

35.執(zhí)行以下程序后,輸出“#”的個數(shù)是【】。

#include<stdio.h>

main()

{inti,j;

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

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

}

36.在面向?qū)ο蠓椒ㄖ校尽棵枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。

37.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是______。

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

38.當輸入的數(shù)據(jù)為2、5時,則下列程序的運行結(jié)果為【】。

#include<stdio.h>

#definemax100

main()

{

intf[max],i,j,k,m;

scanf("%d%d",&k,&m);

for(i=0;i<=m;i++)f[i]=0;

f[k-1]=1;

for(i=k;i<=m;i++)

for(j=i-k;j<=i-1;j++)f[i]+=f[i];

printf("%d%10d%10d\n",k,m,f[m]);

getch();

}

39.下面程序段的輸出結(jié)果是【】。

intx=5;

do{printf("%d",x-=4);

}while(!(--x));

40.關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括選擇、連接和【】。

三、1.選擇題(20題)41.下列程序的運行結(jié)果為()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}

A.500B.5C.4D.400

42.已知intt=0;while(t=1){…}則以下敘述正確的是()。

A.循環(huán)控制表達式的值為0B.循環(huán)控制表達式的值為1C.循環(huán)控制表達式不合法D.以上說法都不對

43.程序流程圖(PFD)中的箭頭代表的是

A.數(shù)據(jù)流B.控制流C.調(diào)用關系D.組成關系

44.分析下面函數(shù)swap(int*p1,*p2){int*p;*p=*p1;*p1=*p2;*p2=*p;}則該程序功能為()

A.交換*p1和*p2的值

B.正確,但無法改變*p1和*p2的值

C.交換*p1和*p2的地址

D.可能造成系統(tǒng)故障,因為使用了空指針

45.在一棵二叉樹中,葉子結(jié)點共有30個,度為1的結(jié)點共有40個,則該二叉樹中的總結(jié)點數(shù)共有()個

A.89B.93C.99D.100

46.需求分析中開發(fā)人員要從用戶那里了解

A.軟件做什么B.用戶使用界面C.輸入的信息D.軟件的規(guī)模

47.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d",a,b);}

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

48.若有以下定義語句:floata[11]={0,1,2,3,4,5,6,7,8,9,10};則以下敘述中錯誤的是()

A.a數(shù)組在內(nèi)存中占44個字節(jié)

B.a數(shù)組的最后一個元素為a[10]

C.a數(shù)組的第一個元素為a[0]

D.以上定義語句給a數(shù)組所賦初值是整數(shù),因此不能正確賦初值

49.下列選項中不屬于結(jié)構化程序設計方法的是()。

A.自頂向下B.逐步求精C.模塊化D.可復用

50.以下程序的運行結(jié)果是#include"stdio.h"main(){structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

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

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

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

52.若程序中已包含頭文件stdio.h,以下選項能正確運用指針變量的程序段是()。

A.int*i=NULL;scanf("%d",i);

B.float*f=NULL;*f=10.5;

C.chart='m',*c;*c=&t;

D.long*L;L='\0';

53.以下程序的輸出結(jié)果是()#include<stdio.h>main(){inta,b,d=241;a=d/100%9b=(-1)&&(+1);printf("%d,%d,a,d");}

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

54.下列程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}

A.3,14,1B.3,14,2C.2,04,1D.2,14,1

55.有以下程序:#include<stdio.h>main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。

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

56.若有定義:inta[3][4],()不能表示數(shù)組元素a[1][1]。

A.*(a[1]+1)B.*(&a[1][1])C.(*(a+1))[1]D.*(a+5)

57.已知小寫字母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是______。main(){unsignedinta=32,b=66;printf("%c\n",b|b);}

A.66B.98C.bD.B

58.下述語句中,在字符串s1和s2相等時顯示"theyareEqual"的是()。

A.if(*s1=*s2)puts("theyareEqual");

B.if(!strcmp(s1,s2))puts("theyareEqual");

C.if(s1==s2)puts("theyareEqual");

D.if(strcmp(s1,s2))puts("theyareEqual");

59.下列選項中不屬于軟件生命周期開發(fā)階段任務的是()。

A.軟件測試B.概要設計C.軟件維護D.詳細設計

60.請選出正確的程序段

A.int*p;scanf("%d",p);…

B.int*s,k;*s=100;…

C.int*s,k;char*p,c;s=&k;p=&c;*p=′a′;…

D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…

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

A.分號是C語言的必要組成部分B.C程序的注釋可以寫在語句的后面

C.函數(shù)是C程序的基本組成單位D.程序中可以有一個或多個main函數(shù)

62.有以下程序:

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

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

63.有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

程序運行后的輸出結(jié)果是()。A.A.235B.0235C.02356D.2356

64.

65.

66.下面描述中錯誤的是()。

A.系統(tǒng)總體結(jié)構圖支持軟件系統(tǒng)的詳細設計

B.軟件設計是將軟件需求轉(zhuǎn)換為軟件表示的過程

C.數(shù)據(jù)結(jié)構與數(shù)據(jù)庫設計是軟件設計的任務之一

D.PAD圖是軟件詳細設計的表示工具

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

A.在賦值表達式中,賦值號的左邊既可以是變量,也可以是任意表達式

B.實型變量中允許存放整型數(shù)

C.若a和b類型相同,在執(zhí)行賦值a=b后,b中的值將放入a中,但b中的值不變

D.在C程序中,求余算符“%”兩邊的類型相同時才能進行運算

68.

69.下列不屬于C語言關鍵字的是()。A.A.default

B.register

C.enum

D.external

70.用數(shù)組名作為函數(shù)調(diào)用的實參,則傳遞給形參的是()。

A.數(shù)組中所有元素的值B.數(shù)組的第一個數(shù)據(jù)C.數(shù)組的首地址D.數(shù)組元素的個數(shù)

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

A.棧是“先進先出”的線性表

B.隊列是“先進后出”的線性表

C.循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的

D.循環(huán)隊列中隊頭指針是固定不變的

72.

73.有以下程序:

#include<stdio.h>

main()

{chara[20],b[20],c[20];

scanf("%s%s",a,b);

gets(c);

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

}

程序運行時從第一列開始輸入:

Thisisacat!<回車>

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

A.Thisisacat!

B.Thisisa

C.Thisisacat!

D.Thisisacat!

74.第

42

若有說明語句

chara[]="Itismine";

char*p="Itismine";

則以下不正確的敘述是

A.a+1表示的是字符t的地址

B.p指向另外的字符串時,字符串的長度不受限制

C.p變量中存放的地址值可以改變

D.a中只能存放10個字符

75.

若希望下列的程序運行后輸出25,程序空白處的正確選項是()。

main

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

printf("%d",j-40);

}

A.i=l;i<4;++i

B.i=1;i<3;++i

C.i=4;i>2;i--

D.i=2;i<4;++i

76.

77.

78.

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,當n為l0時,函數(shù)值應為22.550361。f(x)函數(shù)定義如下:請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將一個數(shù)字字符串轉(zhuǎn)換成一個整數(shù)(不得調(diào)用C語言提供的將字符串轉(zhuǎn)換成整數(shù)的函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換成整數(shù)值-1234。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<string.h>longfun(char*p){}voidmain(){ chars[6]; longn; printf(“Enterastring:\n”); gets(s); n=fun(s); printf(“%ld\n”,n);}

參考答案

1.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟毩⒌膬刹?/p>

分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小,再分別對這兩部分記錄繼

續(xù)進行排序,以達到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依

次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整

個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應有的位置),然后對剩

下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個或兩個以上的有序表組合

成一個新的有序表。

注意:各種排序方法實現(xiàn)過程及實現(xiàn)機制。

2.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構是指數(shù)據(jù)之間的相互關系和數(shù)據(jù)運算。故正確答案為選項C)。

3.BB【解析】只有B選項369可以用無符號整數(shù)來表示和存儲。A選項一369有負號,選項C0.369是小數(shù)都不能用無符號整數(shù)類存儲。選項D是一個整數(shù)集合得用數(shù)組來存儲。

4.A

5.A解析:static變量用于局部變量中有記憶功能和全局生存期。函數(shù)中的靜態(tài)變量的特點是每次調(diào)用函數(shù),靜態(tài)變量的值是上次調(diào)用完該函數(shù)后的靜態(tài)變量值,所以在此題中,第一調(diào)用函數(shù),返回1,此時函數(shù)中的靜態(tài)變量n的值為l,所以第二次調(diào)用函數(shù)時,返回值為2。

6.B

7.A雖為嵌套的for循環(huán),但“m=m%j”只執(zhí)行1次,即當i=3時,內(nèi)層循環(huán)條件成立,m=55%3=1,故選A。

8.CC?!窘馕觥寇浖こ淌侵笇⒐こ袒乃枷霊糜谲浖拈_發(fā)、應用和維護的過程,包括軟件開發(fā)技術和軟件工程管理。

9.B

10.B

11.C

12.Asizeof是運算符,計算數(shù)組、指針、類型、對象、函數(shù)等所占的字節(jié)大小。strlen(*char)是函數(shù),參數(shù)必須是字符型指針(char*)。該函數(shù)的功能是:返回字符串的長度,不包括字符串結(jié)束標識?!皊izeof(a)”是求數(shù)組a所占空間的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就結(jié)束,“strlen(a)”=4?!皊trier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小?!皊trlen(c)”是字符串的長度,“sizeof(c)”是數(shù)組的長度。因此,輸出結(jié)果是4,5,2,4,1,3,。故本題答案為A選項。

13.B本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標相同,所以j=i。

14.D

15.DVC6.0中基本整型int占4個字節(jié)。

16.C

17.A

18.C解析:數(shù)據(jù)庫是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構造復雜的數(shù)據(jù)結(jié)構,以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復雜的關系-故答案為C。

19.D

20.C在函數(shù)funlintx)中,有個if語句判斷,如果參數(shù)x等于0或1時,返回值,否則進入下面的p=x-fun(x-2)遞歸函數(shù)。當在主函勢中調(diào)用fun(7)時,其過程為:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的輸出結(jié)果為2。

21.19

22.HowdoessheHowdoesshe解析:strcpy(str1,s1):字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組str1中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實際長度,不包括\'\\0\'在內(nèi)。本題中strlen(str1)的值為13,則strcpy(str1+strlen(str1)/2,'esshe');相當于strcpy(str1+6,'esshe');,因此可得答案為Howdoesshe。

23.1020010200解析:本題考查的是混合運算?!?a/b<1)&&(a%b<1)”的運算順序為:括號>算術運算符>關系運算符>邏輯運算符。其中a%b=10,a,b=0,所以a%b<1的值為0,a/b<1的值為1,故整個表達式的結(jié)果為0,所以輸出的a,b,c的值為10200。

24.1818解析:設循環(huán)隊列的容量為n。若rear>front,則循環(huán)隊列中的元素個數(shù)為rear-front;若rear<front,則循環(huán)隊列中的元素個數(shù)為n+(rear-front)。題中,front=16,rear=9,即rear<front,所以,循環(huán)隊列中的元素個數(shù)為m+(rear-front)=25+(9-16)=18。

25.概念概念

26.結(jié)構化設計結(jié)構化設計解析:與結(jié)構化需求分析方法相對應的是結(jié)構化設計方法。結(jié)構化設計就是采用最佳的可能方法設計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術。

27.9292解析:本題的主函數(shù)中首先定義了一個4行4列的二維數(shù)組,然后執(zhí)行一個while循環(huán),該循環(huán)中又嵌套了一個do-while循環(huán)。先看while循環(huán),該循環(huán)通過i++的值來判斷是否結(jié)束循環(huán),當i++的值為4的時候結(jié)束循環(huán),當i=O時,執(zhí)行while的循環(huán)體,顯然if語句條件不滿足不執(zhí)行,接著讓j=0,然后執(zhí)行do-while循環(huán)體,不難看出do-while循環(huán)的功能是將第i+1行的所有元素加起來,所以這時s的值為s=a[1][0]+a[1][1]+a[1][2]+a[1][3]=26,當i=1時,i+1=2,if后面括號里的表達式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán);當i=2時,i加1變?yōu)?,把第3+1行的所有元素的值加到s上,此時s=s+a[2][0]+a[2][1]+a[2][2]+a[2][3]=92,當i=3時,3+1=4,if后面括號里的表達式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán),當i=3時,if后面括號里的表達式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán)當i=4時while循環(huán)結(jié)束,所以最后輸出的s的值為92。

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

29.SQRT(x2+y2)/(a+b)

30.x+=1x+=1解析:本題考查“++”,“--”運算符?!?+”、“--”只能作用于變量,不能用于表達式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。

31.消息消息解析:消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

32.b[0][0]=1b[0][1]=2b[0][2]=3

33.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當前值;如果不相同,則將當前值賦予數(shù)組指定位置,并通過j++將下標加1,指向下一元素要存儲的位置。

34.rewind()或fseek()rewind()或fseek()

35.66解析:本題考察的是一個嵌套的循環(huán),當滿足j<=i時,輸出一個“#”號,符合條件的有i=2,j=2;i=3,j=2;i=3,j=3;i=4,j=2;i=4,j=3;i=4,j=4,共輸出6個“#”。

36.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對象。

37.*(p+5)或p[5]*(p+5)或p[5]

38.255

39.1-41-4解析:題目中首先讓x=5,然后進入do-while循環(huán)體,輸出x-4的值1,此時x為1,表達式!(--x)的值為!(0)為真(此時x變?yōu)?),所以再次執(zhí)行循環(huán)體,輸出x-4的值-4,此時x為-4,表達式!(--x)的值為!(—5)為假,退出循環(huán)。故輸出結(jié)果是1-4。

40.投影專門關系運算包括對單個關系進行垂直分解(投影操作)或水平分解(選擇操作)和對多個關系的結(jié)合(連接操作)等。

41.A解析:本題考查帶參數(shù)的宏的定義及相關運算:(x)>(y)?(x):(y)是x>y時輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時,(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。

42.B解析:t=1是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應用t==1,注意“=”與“==”的用法。

43.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應用廣泛的軟件過程設計表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。

44.D

45.C解析:根據(jù)二叉樹性質(zhì)3:對任何一棵二叉樹,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。所以該二叉樹度為2的結(jié)點有29個,故總結(jié)點數(shù)=30個葉子結(jié)點+29個度為2的結(jié)點+40個度為1的結(jié)點=99個結(jié)點。

46.A解析:需求分析是軟件定義時期的最后一個階段,它的基本任務就是準確問答“系統(tǒng)必須做什么”。這個問題即軟件系統(tǒng)功能,需求分析的任務還不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。

47.B解析:在表達式的值作為邏輯值時,非0值一律為1,0值才為0。

48.D

49.D解析:20世紀70年代以來,提出了許多軟件設計方法,主要有①逐步求精:對復雜的問題,應設計一些子目標作過渡,逐步細化;②自頂向下:程序設計時應先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節(jié),先從最上層總目標開始設計,逐步使問題具體化;⑧模塊化:一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊,而可復用是面向?qū)ο蟪绦蛟O計的一個優(yōu)點。

50.A解析:在解答本題時應該考慮兩個問題:結(jié)構體變量的長度及sizeof()求字節(jié)數(shù)的運算符。結(jié)構體變量的長度是其內(nèi)部成員總長度之和,本題中,structdate中包含year,month,day三個整型變量。一個整型變量所占的字節(jié)數(shù)為2。

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

52.D解析:本題考查指針變量的運用。選項A)、B)的指針定義錯誤,空指針NULL是對指針變量賦。值而得到的。例如:

#defineNULL0

int*p=NULL;

對指針變量賦。值和不賦值的時候意義是不同的:指針變量未賦值時,它是指向任意不確定的存儲單元,不能使用,否則將造成意外錯誤;而指針變量賦0值后,則可以使用,只是它不指向具體的變量而已。選項C)中的*c=&t;錯誤,因為&t是地址,而*c是值。選項D)是讓指針L指向字符串的末尾,即字符串的結(jié)束符。

53.B

54.A解析:本題主要考查自加運算符(++、--)的使用。①前綴變量“++i、--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達式的值參與運算;②后綴變量“i++、i--”,先使用此時的表達式的值參與運算,在使用i之后,再使i的值加1或者減1。本題中計算表達式c=(a++)-1時先使用a的值進行計算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語句后a的值是3;表達式c+=-a+++(++b)等價于c=c+(-a++)+(++b),c=1+(-3)+3=1,此時a=4,b=3。

55.B解析:“/”表示整除,“%”表示求余。程序中表達式a=d/10%9的值為25/10%9=2,則b=a&&(-1)=2&&(-1)=1(注意:-1表示真,0表示假),所以a,b的值分別為2,1。

56.D

57.C解析:位運算符“|”的作用是按位或,即兩個二進制數(shù)的相應位中只要一個為1,該位的結(jié)果值為1。最后以字符型輸出,98對應的字符“b”。

58.B

59.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個時期組成,每個時期又進一步劃分為若干個階段。軟件定義時期的基本任務是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)時期是具體設計和實現(xiàn)在前一時期定義的軟件,它通常由下面五個階段組成:概要設計、詳細設計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務是使軟件持久地滿足用戶的需要。即當軟件在使用過程中發(fā)現(xiàn)錯誤時應加以改正;當環(huán)境改變時應該修改軟件,以適應新的環(huán)境;當用戶有新要求時應該及時改進軟件,以滿足用戶的新要求。根據(jù)上述對軟件生命周期的介紹,可知選項C中的軟件維護不是軟件生命周期開發(fā)階段的任務。因此,本題的正確答案是C。

60.C解析:本題的選項A)和B)犯了同樣的錯誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預見的,所指的單元也是不可預見的,因此不能進行賦值操作。另外,在選項D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。

61.D本題考查C語言的基礎知識。

C語言中,語句都是以“;”作為語句的結(jié)束標志,如表達式語句就是指在表達式后跟一個分號“;”,函數(shù)表達式加上分號“;”組成函數(shù)調(diào)用語句。

/*……*/是程序的注釋部分,這是為了提高程序的可讀性而加入的。它對程序的運行不起任何作用,它可以放在程序中的任何位置。在程序中添加注釋是一個良好的程序設計習慣,應該在一個程序中添加適當?shù)淖⑨尅?/p>

構成C語言程序的基本單位是函數(shù)。函數(shù)也是C程序中模塊化程序設計的基礎。

一個C語言源程序可以由一個或多個源文件組成,每個源文件可由一個或多個函數(shù)組成,一個源程序不論由多少個文件組成,都有一個且只能有一個main函數(shù),即主函數(shù)。

62.A在函數(shù)point函數(shù)調(diào)用時,系統(tǒng)自動為函數(shù)的形參P分配內(nèi)存空間,并賦值為實參P的值。當執(zhí)行語句P+=3;時,系統(tǒng)操作的是形參P的內(nèi)存空間,更改形參P的內(nèi)容,而實參指針變量P的值未受影響,即指針變量作為函數(shù)參

63.B本題考查分支語句用法加個句號因為變量的初始值分別為k=5、n=0,所以程序第1次進入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進行第4次循環(huán),執(zhí)行case

溫馨提示

  • 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

提交評論