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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關系

2.以下程序的輸出結果是()。main{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;for(k=1;k<3;k++)printf("%s\n",w[k]);A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

3.已知廣義表:A=(a,b),B=(A,A),C=(a,(b,A),B),tail(head(tail(C)))的運算結果是()。

A.(a)B.AC.aD.(A)

4.下面不屬于需求分析階段任務的是()。

A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審

5.數(shù)據(jù)在計算機存儲器內(nèi)表示時,物理地址與邏輯地址相同并且是連續(xù)的,稱為()。

A.存儲結構B.邏輯結構C.順序存儲結構D.鏈式存儲結構

6.數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是()。

A.概念設計和邏輯設計B.模式設計和內(nèi)模式設計C.內(nèi)模式設計和物理設計D.結構特性設計和行為特性設計

7.若有定義“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

8.設有以下函數(shù):voidfun(intn,char*s){…}則下面對函數(shù)指針的定義和賦值均正確的是()。

A.void(*pf)();pf=fun;

B.void*pf();pf=fun

C.void*pf();*pf=fun;

D.void(*pf)(int,char);pf=&fun;

9.程序執(zhí)行后的輸出結果是()。A.321.cbaB.123.abcC.abc,123D.1bc,a23

10.有以下程序

#defineN15

fun(inta[],intn,intm)

{inti,j;

for(i=m;i>=n;i--)

a[i+1]=a[i];

}

main()

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

fun(a,3,7);

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

printf("%d",a[i]);

}

程序的運行結果是A.A.45678

B.44567

C.45567

D.45677

11.

12.

13.在下列排序算法中,在待排序的數(shù)據(jù)表已經(jīng)為有序時,花費時間反而最多的是()

A.希爾排序B.堆排序C.冒泡排序D.快速排序

14.C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為()。

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

15.按照標識符的要求,()符號不能組成標識符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符

16.

17.下列關于AOE網(wǎng)的敘述中,不正確的是()。

A.關鍵活動不按期完成就會影響整個工程的完成時間

B.任何一個關鍵活動提前完成,那么整個工程將會提前完成

C.所有的關鍵活動提前完成,那么整個工程將會提前完成

D.某些關鍵活動提前完成,那么整個工程將會提前完成

18.以下程序段中,輸出信息不能正確反映變量大小關系的是()。

A.if(x>y)printf(“x>y”);if(x<y)printf(“x<y”);elseprintf(“x=y”);

B.if(x>=y)if(x>y)printf(“x>y”);elseprintf(“x=y”);elseprintf(“x<y”);

C.if(x>y)printf(“x>y”);if(y>x)printf(“x<y”);if(x==y)printf(“x=y”);

D.if(x>y)printf(“x>y”);elseif(y<x)printf(“x<y”);elseprintf(“x=y”);

19.在一個C語言源程序文件中所定義的全局變量,其作用域為()。

A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說明來決定范圍

20.以下敘述中正確的是______。

A.C語言比其他語言高級

B.C語言可以刁;用編譯就能被計算機識別執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式

D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點

二、2.填空題(20題)21.在數(shù)據(jù)庫的概念結構設計中,常用的描述工具是【】。

22.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結果是______。

23.若從鍵盤輸入58,則以下程序輸出的結果是【】。

mam()

{inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

24.以下程序運行后的輸出結果是______。

main()

{

intx=15;

while(x>10&&x<50)

{

x++;

if(x/3){x++;break;}

elsecontinue;

}

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

}

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

26.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調用fun函數(shù)計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

27.根據(jù)以下if語句寫出與其功能相同的switch語句(x的值在0~100之間)。

if語句:

if(x<60)m=1;

elseif(x<70)m=2;

elseif(x<80)m=3;

elseif(x<90)m=4;

elseif(x<100)m=5;

switch語句:

switch(【】)

{

【】m=1;break;

case6:m=2;break;

case7:m=3;break;

case8:m=4;break;

【】m=5;

}

28.設有如下程序段:

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

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

上述程序段的輸出結果是【】。

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

#include<stdio.h>

main()

{inti;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

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

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

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1][

32.以下涵數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=【】;【】=a[N-1][i];}}

33.以下程序運行后的輸出結果是______。

main()

{chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));

}

34.一棵二叉樹第六層(根節(jié)點為第一層)的節(jié)點數(shù)最多為______。

35.最簡單的交換排序方法是______。

36.通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為【】。

37.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getehar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序運行時輸入:12<回車>,執(zhí)行后的輸出結果是【】。

38.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯(lián)系屬于【】的聯(lián)系。

39.若有以下程序:

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

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

}

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

40.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。

wordnum(str)

charstr[];

{inti,num=0,word=0;

for(i=0;str[i]!=【】;i++)

if(【】==)word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

三、1.選擇題(20題)41.若有下列定義(設int類型變量占2個字節(jié)):floatx=123.4567;則下列語句:printf("x=%5.2f",x);輸出的結果是()。

A.x=123.46B.123.4567C.x=123.4567D.123.46

42.有以下程序

main()

{inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;

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

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

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

}

程序運行后的輸出結果是

A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,

43.設有定義語句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次輸出x數(shù)組6個元素中的值,不能完成此操作的語句是()。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);

44.以下程序的輸出結果是______。main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.00

45.若有說明: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

46.若有以下說明和定義typedeint*INTEGER;INTEGERp,*q;以下敘述正確的是

A.p是int型變量

B.p是基類型為int的指針變量

C.q是基類型為int的指針變量

D.程序中可用INTEGER代替int類型名

47.以下敘述中正確的是______。

A.C語言比其他語言高級

B.C語言可以不用編譯就能被計算機識別執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式

D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點

48.下列能正確定義一維數(shù)組的選項是()。

A.inta[5]={0,1,2,3,4,5}

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

49.假定當前盤符下有兩個如下文本文件:文件名a1.txta2.txt內(nèi)容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);

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

50.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為:good,則運行以上程序后文件f1.txt中的內(nèi)容為

A.goodabcB.abcdC.abcD.abcgood

51.有以下程序#include<stdio.h>main(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n

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

52.軟件開發(fā)的結構化生命周期方法將軟件生命周期劃分成()

A.定義、開發(fā)、運行維護

B.設計階段、編程階段、測試階段

C.總體設計、詳細設計、編程調試

D.需求分析、功能定義、系統(tǒng)設計

53.下列程序的輸出結果是()。

#include<stdio.h>

#defineF(x)2.84+x

#definew(y)printf("%d",(int(y))

#defineP(y)w(y)pmchar('\n'》

main()

{intx=2;

P(F(5)*x);

}

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

54.設有以下語句()structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0]則表達式()的值是6。

A.p++->nB.p->n++C.(*P).n++D.++p->n

55.有下列程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<CR>45678<CR>則輸出結果是()。

A.1267B.1256C.1278D.1245

56.以下敘述中錯誤的是

A.C語言中對二進制文件的防問速度比文本文件快

B.C語言中,隨機文件以二進制代碼形式存儲數(shù)據(jù)

C.語句FILEfp;定義了一個名為fp的文件指針

D.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

57.有以下等程序#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstt[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);}

A.abcdefgB.gfedcbaC.gbcdefaD.abedcfg

58.有如下程序:#include<stdio.h>main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);}該程序的輸出結果是

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

59.若執(zhí)行下面的程序時,從鍵盤上輸入5和2,則輸出結果是main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}

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

60.設x=2.5、a=7、y=4.7,算術表達式x+a%3*(int)(x+y)%2/4的值為______。

A.2.5B.7C.4.7D.2.75

四、選擇題(20題)61.有以下程序

62.程序調試的目的是

A.發(fā)現(xiàn)程序中的錯誤B.改正程序中的錯誤C.驗證程序的正確性D.改善軟件的性能

63.在軟件設計中不使用的工具是()。

A.系統(tǒng)結構圖B.PAD圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖

64.軟件設計中衡量模塊獨立性的度量標準是()。

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機制和控制方法

65.

66.以下程序段

67.

68.設x為int型變量,則執(zhí)行以下語句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

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

A)C程序中的#include和#define行均是C語句,只是語法不同

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

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

D)C程序中,+、-、*、/、%號是算數(shù)運算符,可用于整型和實型數(shù)的運算

70.以下程序的輸出結果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21

71.

72.有以下程序:

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

A.12

B.15

C.16

D.20

73.以下關于typedef的敘述錯誤的是()。A.用tyFedef可以增加新類型

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

C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名

D.用typedef為類型說明一個新名,通常可以增加程序的可讀性

74.下列數(shù)據(jù)結構中,屬于非線性結構的是()。

A.帶鏈隊列B.循環(huán)隊列C.帶鏈棧D.二叉樹

75.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

76.(22)下列關于棧的敘述中正確的是()

A.在棧中只能插入數(shù)據(jù)

B.在棧中只能刪除數(shù)據(jù)

C.棧是先進先出的線性表

D.棧是先進后出的線性表

77.若有語句:Char*line[5];,以下敘述中正確的是()。

A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為Char的指針變量

B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符

D.定義line是一個指向字符型函數(shù)的指針

78.

79.

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

B.1111110100011001

C.0000001011100010

D.1100000000101000

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n的值,計算如下公式的值。t=1-1/(2*2)-1/(3*3)-…-l/(n*n)例如,當n=7時,t=0.488203。請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),用來求出數(shù)組中值最大的元素在數(shù)組中的下標并將其存放在k所指向的存儲單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結果為6,980。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

2.D當k=1時,循環(huán)成立,輸出w[l]的數(shù)組即EFGH,接著執(zhí)行k++后k為2;當k=2時,循環(huán)成立,輸出w[2]的數(shù)組即IJKL,接著執(zhí)行k++后,k為3;當k=3時,循環(huán)不成立,退出。

3.D

4.C【答案】:C

【知識點】:需求分析階段的任務

【解析】:需求分析階段的任務是深入描述軟件的功能和性能,確定軟件設計的約束和軟件同其他系統(tǒng)元素的接口細節(jié),定義軟件的其他有效性需求,借助于當前系統(tǒng)的邏輯模型導出目標系統(tǒng)邏輯模型,解決目標系統(tǒng)“做什么”的問題。可分為需求提出、需求描述及需求評審三個階段。從此可以看出需求分析的任務不包括制定軟件集成測試計劃,故選C。

5.C

6.A解析:模式設計和內(nèi)模式設計是概念設計的兩種方法。物理設計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結構和存取方法進行設計,從而實現(xiàn)從邏輯結構到物理結構的轉換。從系統(tǒng)開發(fā)的角度來看,結構特性設計和行為特性-設計是數(shù)據(jù)庫應用系統(tǒng)所具有的兩個特性。結構特性的設計,設計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

7.B運算符“%”為二元運算符,具有左結合性,參與運算的量均為整型。B選項中的變量a是double型,不符合規(guī)定。故本題答案為B選項。

8.A函數(shù)指針的定義格式為函數(shù)類型(*指針變量名)(形參列表);函數(shù)名和數(shù)組名一樣代表了函數(shù)代碼的首地址,因此在賦值時,直接將函數(shù)指針指向函數(shù)名就行了。所以選項A正確。

9.D[解析]字符串是一個特殊的數(shù)組,所以按照數(shù)組的規(guī)則,s1應該指向的是數(shù)組的首地址,即"abc的第一個字符的地址。s2指向的是"123"的第一個字符的地址。調用swap函數(shù)之后交換的是兩個字符串的第一個字符ai和1的內(nèi)容,所以打印輸出為D)。

10.B題目中的程序包括主程序main和fun函數(shù)。主程序中定義了一個數(shù)組a,并賦給了初值。通過調用fun函數(shù),對數(shù)組a中的值進行更改操作,最后要求的結果是輸出數(shù)組a中a[3]~a[7]的值。解決本題的關鍵在于清楚地理解fun函數(shù)的功能。fun函數(shù)有3個形參,包括1個整型數(shù)組a[],2個整型變量n和m。fun函數(shù)的功能是將數(shù)組a[i+1]的值等于a[i]的值,i的初始值大小為m,依次減1,直到數(shù)值等于n。主函數(shù)調用fun函數(shù)時,輸入的實參為(a,3,7),即fun函數(shù)要將數(shù)組a[i+1]的值等于a[i]的值,i的取值范圍從7到3,如a[8]=a[7]。fun函數(shù)執(zhí)行完畢,數(shù)組a中的值變?yōu)?,2,3,4,4,5,6,7,9,10。輸出a[3]~a[7]的值為4,4,5,6,7。

11.D

12.D

13.D

14.CChar類型數(shù)據(jù)占1個字節(jié)。

15.A

16.D

17.B

18.A選項A中,若條件“x>y”為真,輸出“x>y”;若條件“x<y”為真,輸出“x<y”;若條件“x>=y”為真,輸出“x=y”。選項A錯誤,其他選項都正確。故本題答案為A選項。

19.D

\n全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個源文件結束止。當全局變量定義在后,引用它的函數(shù)在前時,應該在引用它的函數(shù)中用extern對此全局變量進行說明,以便通知編譯程序該變量是一個已在外部定義了的全局變量,這時全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾。

\n

20.C解析:計算機語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須譯成能被計算機識別的二進制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)從1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。

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

22.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結束標志\'\\0\'。

\'\\t\'f是轉義字符,代表橫向跳若干格:'\\'是轉義字符,代表雙引號;\'\\023\'只代表一個字符,而不管轉義字符后面有幾個字符;’僅AB,是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉義字符,代表回車換行。

5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

23.585858585858解析:在程序小,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個if語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>40,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。

24.1717解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當break出現(xiàn)在循環(huán)體中的switch語句體內(nèi)時,其作用只是跳出該switch語句體。當break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)體。而continue語句的作用時結束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。本題中首先定義了一個變量x并賦初值15,然后判斷循環(huán)條件“x>5&&x<50”,即“x>5&&x<50”,為真,執(zhí)行循環(huán)體.語句“x++;”執(zhí)行后,x的值變?yōu)?6,“X/3”的值為5為真,執(zhí)行其后的語句“x++;”,x的值變?yōu)?7,執(zhí)行語句“break”,退出循環(huán),輸出。x的值為17。

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

26.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調用相關知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

27.x/10case0:case1:case2:case3:case4:case5:case9:x/10\r\ncase0:case1:case2:case3:case4:case5:\r\ncase9:

28.16

29.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當其變?yōu)椤癵”時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達式“i-'a'+'A'”即表示輸出i對應的大寫字母,結果為ACE。

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

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

32.a[0][i]b[i][o]a[0][i]\r\nb[i][o]解析:b[i][N-1]=a[0][i]實現(xiàn)把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]實現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中。

33.gae

34.在二叉樹的第k層上,最多有2k-1(k>1)個結點。

35.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

36.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設計、實現(xiàn)、測試、交付使用以及維護等活動。

37.1212解析:程序中的ch1與ch2為字符型變量,輸入12后,ch1得到字符'1',ch2得到字符'2'。n1=ch1-'0'將字符1,轉換為數(shù)值1,同理,n2為1*10+2=12。程序執(zhí)行后輸出十進制整數(shù)12。

38.一對多(或1∶N)一對多(或1∶N)解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關系,這種函數(shù)關系可以有3種,即一對一(1∶1)的聯(lián)系、一對多(1∶N)或多對一(N∶1)的聯(lián)系和多對多(N∶N)的聯(lián)系。

39.503503解析:本題考查的是C語言中if語句的語句體。第一個if語句的語句體為t=a,第二個if語句的語句體為t=a。執(zhí)行第一個if語句時,條件a<b不成立,所以不執(zhí)行t=a,直接執(zhí)行語句a=b和b=t得a=3、b=0,然后判斷第二個if語句的條件a<c是否成立,即判斷3<5是否成立,顯然條件成立,執(zhí)行語句t=a得t=3,接著執(zhí)行a=c;c=t得a=5、c=3,所以a=5、c=3、b=0。

40.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:

①for循環(huán)的結束條件應當是:str[i]已是字符串的最后一個字符;

②str[i]代表字符串sb中的第i+1個字符:

③整型變量num的值是要記錄的單詞的個數(shù)。

C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結束符“\\0”,所以在題中第一個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第二個空中應當填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。

41.A解析:本題考查printf函數(shù)的格式?!?5.2f”格式符中的“f”表示以帶小數(shù)點的形式輸出單精度或者雙精度數(shù):“5”表示指定數(shù)據(jù)輸出寬度為5;“.2”表示指定輸出數(shù)據(jù)小數(shù)位占2位數(shù),并對截去的第一位小數(shù)做四舍五入處理。

42.A解析:本題利用多重for循環(huán)的嵌套來實現(xiàn)對二維數(shù)組元素的按列排序。利用最外層循環(huán)來實現(xiàn)對列的控制。內(nèi)部循環(huán)利用選擇法對數(shù)組元素按照從小到大的順序進行排列,最后輸出對角線上的元素值。

43.D解析:*p=x的作用是將x的首地址賦給指針變量p。選項A)正確,*(P++)中括號內(nèi)的++是在P的后面,所以它先取*P的值x[0],再執(zhí)行p++;選項B)正確,p+i表示x[i]的地址,*(p+i)表示x[i]的值;選項C)中的*和++處于同一優(yōu)先級別,而結合方向為自右而左,因此*p++相當于*(p++),與選項A)相同;選項D)中的(*p)++是使*p的值+1,即x[0]的值加1,它不能實現(xiàn)指針的移動,每次循環(huán)只是x[0]的值在改變,而P的值并沒有改變,所以不能實現(xiàn)6個元素的輸出。

44.C解析:C語言中如果邏輯與運算符左邊的表達式為假,右邊的表達式就不再運算了,(++a<0)=(0<0)=0,所以邏輯與右邊的表達式就不參與運算,沒有改變b的值。因此輸出b=1,a=0。

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

46.B解析:INTEGER是類型名,由它來間接定義p和*q的類型,因此,p是基類型為int的指針變量,故選項A不正確,選項B正確,q是二級指針變量,它指向基類型是int的指針變量,故選項C,D不正確。所以4個選項中B正確。

47.C解析:計算機語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機識別的二進制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)在1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。

48.B解析:在定義數(shù)組時,如果賦給的初始值個數(shù)大于數(shù)值的長度,這樣就會越界,因此選項A)錯誤;選項C)中定義的是一個字符變量C;選項D)中整型數(shù)組,中只能存儲整型數(shù)據(jù),而不能存儲字符串常量“0123”。

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

50.C解析:主函數(shù)中定義了一個文件指針fp1,然后通過fopen()函數(shù),以寫的方式打開文件“fl.txt”,并讓指針fp1指向它,接著調用fpfintf()函數(shù)將“abc”寫到文件fp1所指的文件里,由于開始fp1指向文件的“fl.txt”的開始位置,因此“abc”將把文件“fl.txt”里原來的內(nèi)容“good”覆蓋掉,故文件“fl.txt”里最后的內(nèi)容為“abc”。

51.D解析:將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因為輸出的都是數(shù)字并且每行都沒有分隔符,所以當再對其進行讀取操作時,每一行都會被認為是一個完整的數(shù),而換行符則作為它們的分隔符。

52.A解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。

53.A解析:本題考查帶參數(shù)的宏的定義及相關運算。P(F(5)*x)=P(2.84+5*2)=P(12.84),調用w(12.84),輸出(int)(12.84)=12。

54.D

55.D解析:當用scanf函數(shù)從鍵盤輸入數(shù)據(jù)時,每行數(shù)據(jù)的末尾按下回車鍵(Enter鍵)之前,可以任意修改。但按下回車鍵putchar(c1)(Enter鍵)之后,scanf函數(shù)即接受了這一行數(shù)據(jù),不能再回去修改。所以本題中,當輸入123<CR>時,變量c1、c2、c3的值分別為1、2、3,當輸入45678<CR>時,變量c5、c6的值4和5。所以用輸出函數(shù)putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。所以選項D)為正確答案。

56.C解析:本題考查了C語言中文件的一些基本概念。定義文件類型指針變量的一般形式為:

FILE*指針變量名;

因此選項C是錯誤的,應該選擇C。

57.B解析:本題考查的是遞歸函數(shù)。在一個函數(shù)中直接或間接地調用了自身,則稱此函數(shù)為遞歸函數(shù)。本題定義的函數(shù)f()就是一個遞歸函數(shù)。它先交換兩個字符指針所指的內(nèi)容,然后將第1個指針往后移動一位,第2個指針往前移動一位,如果第1個指針所指內(nèi)容不是字符串結束標志,則遞歸調用自身。主函數(shù)中首先定義了一個字符數(shù)組sTR[10]='abcdefg',然后定義了一個字符指針p=str+strlen(str)/2+1,即讓p指向str+4(或&str[4])的位置.然后調用f(p,p-2);,這使得p所指的str[4]及其以后的2個位置str[5]、str[6]中的內(nèi)容同p-2所指的3tr[2]及其以前的2個位置str[1]、str[0]中的內(nèi)容互相交換。即讓整個字符串逆序。所以本題應該選擇B。

58.C解析:if語句嵌套使用時,else總是與它上面最近的if配對。因此,本題中先判斷(a<b),因為表達式的值為0,故不執(zhí)行下面的if語句,直接跳到printf行,c值沒有改變。

59.C解析:本題考查簡單的if...else語句。先執(zhí)行條件if(a<b),顯然不成立,則執(zhí)行else語句。

60.A解析:取模運算只能在整型數(shù)據(jù)之間進行,a為整型變量。因為%、*、/這三個運算符的優(yōu)先級別相同,而類型轉換符優(yōu)先于*和/運算符。a的值為7,7%3=1,所以(int)(2.5+4.7)=7,1*7=7,7%2=1,1/4=0,所以表達式x+a%3*(int)(x+y)%2/4=x+0=2.5。

61.A函數(shù)fun的功能是將第二個字符串鏈接到第一個字符串的末尾,第二個字符串不變。所以選擇A)。

62.B調試也稱排錯或糾錯。它與成功的測試形影相隨,測試成功的標志是發(fā)現(xiàn)錯誤。根據(jù)錯誤跡象,診斷錯誤的原因和位置,進而改正程序中的錯誤,這就是調試的任務。

調試分為靜態(tài)調試和動態(tài)調試,靜態(tài)調試就是指對源程序進行分析,然后確定可能出錯的地方并進行排錯。動態(tài)調試是指對程序的運行進行跟蹤并觀察其出錯點,然后進行排錯。

靜態(tài)調試通常可以采用如下兩種方法。

(1)輸出寄存器的內(nèi)容

在測試中出現(xiàn)問題,設法保留現(xiàn)場信息。把所有的寄存器和主存中有關部分的內(nèi)容打印出來(通常以八進制或十六進制的形式打印),進行分析研究。用這種方法調試,輸出的是程序的靜止狀態(tài)(程序在某一時刻的狀態(tài)),效率非常低,不得已才采用。

(2)為取得關鍵變量的動態(tài)值,在程序中插入打印語句。這是取得動態(tài)信息的簡單方法,并可檢驗在某事件后某個變量是否按預期要求發(fā)生了變化。此方法

溫馨提示

  • 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

提交評論