2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第1頁
2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第2頁
2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第3頁
2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第4頁
2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021年安徽省合肥市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.下述哪一條是順序存儲(chǔ)結(jié)構(gòu)的優(yōu)點(diǎn)()。

A.插入運(yùn)算方便B.可方便地用于各種邏輯結(jié)構(gòu)的存儲(chǔ)表示C.存儲(chǔ)密度大D.刪除運(yùn)算方便

3.對(duì)于下述程序,在方式串分別采用“wt”和“wb”運(yùn)行時(shí),兩次生成的文件TEST的長度是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fputc('\n',fp);fputc('C',fp);fclose(fp);}

A.7字節(jié)、7字節(jié)B.7字節(jié)、5字節(jié)C.5字節(jié)、7字節(jié)D.5字節(jié)、5字節(jié)

4.對(duì)含有16個(gè)元素的有序表進(jìn)行二分查找,關(guān)鍵字比較次數(shù)最多是()

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

5.

6.若有如下程序:intsub(){staticintn=1;intx=1;x*=n;n++;returnx;}main(){intn,t=1;for(n=1;n<6;n++)t*=sub();printf("%d\n",t);}則程序運(yùn)行后的輸出結(jié)果是()

A.15B.120C.34560D.-30976

7.以下能正確定義一維數(shù)組的選項(xiàng)是

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

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

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

D.inta[5]="0123";

8.以下敘述中不正確的是

A.預(yù)處理命令行都必須以#號(hào)開始

B.在程序中凡是以#號(hào)開始的語句行都是預(yù)處理命令行

C.宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間

D.在以下定義是正確的:#definePI3.1415926;

9.下列結(jié)構(gòu)體的定義語句中錯(cuò)誤的是()。

A.structord{intx;inty;intz;}structorda;

B.structord{intx;inty;intz;};structorda;

C.structord{intx;inty;intz;}a;

D.struct{intx;inty;intz;}a;

10.

11.對(duì)于線性表(7,34,55,25,64,46,20,10)進(jìn)行散列存儲(chǔ)時(shí),若選用H(K)=K%9作為散列函數(shù),則散列地址為1的元素有()個(gè)。

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

12.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時(shí)在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達(dá)式值的類型

C.調(diào)用函數(shù)時(shí)主調(diào)函數(shù)所傳遞的實(shí)參類型

D.函數(shù)定義時(shí)形參的類型

13.

14.以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能。#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];)returnmax;}造成錯(cuò)誤的原因是()。A.定義語句“inti,max;”中max未賦初值

B.賦值語句“max=MIN;”中,不應(yīng)給max賦MIN值

C.語句“if(max<x[i])max=x[i];”中判斷條件設(shè)置錯(cuò)誤

D.賦值語句“max-MIN;”放錯(cuò)了位置

15.如果要求一個(gè)線性表既能較快地查找,又能適應(yīng)動(dòng)態(tài)變化的要求,可以采用下列哪一種查找方法()

A.分塊B.順序C.折半D.哈希

16.已知一個(gè)大小為n的整型數(shù)組,現(xiàn)求該數(shù)組的全部連續(xù)子數(shù)組的元素之和的最大值,最優(yōu)算法的時(shí)間復(fù)雜度是()如:a[4]={2,-1,3,-4},它的全部連續(xù)子數(shù)組為{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-4]},它們的元素之和為{2,-1,3,-4,1,2,-1,4,-2,0},其中的最大值為4。

A.O(logN)B.O(N)C.O(N*logN)D.O(N^2)

17.表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為()。A.intB.floatC.doubleD.不確定

18.

19.

20.連通圖G中有n個(gè)頂點(diǎn),G的生成樹是()連通子圖。

A.包含G的所有頂點(diǎn)B.包含G的所有邊C.不包含G的所有頂點(diǎn)D.包含G的所有頂點(diǎn)和所有邊

二、2.填空題(20題)21.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}

22.設(shè)C語言中,一個(gè)int型數(shù)據(jù)在內(nèi)存中占兩個(gè)字節(jié),則int型數(shù)據(jù)的取值范圍為【】。

23.以下程序的功能是:從鍵盤上輸入若干學(xué)生的成績(jī),統(tǒng)計(jì)計(jì)算出平均成績(jī),并輸出低于平均分的學(xué)生成績(jī),用輸入負(fù)數(shù)結(jié)束輸入。填空。

main()

{floatx[1000],sum,=0.0,avea;

intn=0,i;

printf("Entermark:"\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+=【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:"\n");

printf("ave=%f"\n",ave);

for(i=0,i<n;i++)

if(【】)frintf("%f\n",x[i]);

}

24.以下函數(shù)的功能是求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過形參n返回。例如,若x中的值為30,則有4個(gè)數(shù)符合要求,它們是1,3,5,15。請(qǐng)按題意,完成填空。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

for(i=1;i<x;i+=2)

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

clrscr();

printf("\nPleasenteranintegernumber:\n");scanf("%d",&x);

fun(x,aa,&n);

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

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

printf("\n");

}

25.黑盒測(cè)試是從【】觀點(diǎn)的測(cè)試。

26.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

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

請(qǐng)?zhí)羁?,使下面程序段的功能與之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

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

27.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=______);}

main()

{charstr1[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

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

}

28.在ER圖中,矩形表示【】。

29.下列程序的運(yùn)行結(jié)果為【】。

main()

{

intx,y,z;

X=12;

y=012;

z=0l2;

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

}

30.設(shè)函數(shù)findbig已定義為求3個(gè)數(shù)中的最大值。以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請(qǐng)?zhí)羁铡?/p>

main()

{intfindbig(int,int,int);

int(*f)(),x,y,z,big;

f=______;

scanf("%d%d%d",&x,&y,&z}:

big=(*f)(x,y,Z);

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

}

31.設(shè)有以下定義和語句,則*(*(P+2)+1)的值為【】。

int[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

32.funl函數(shù)的調(diào)用語句為funl(&a,&b,&c);。它將3個(gè)整數(shù)按由大到小的JI匣序調(diào)整后依次放入a,b,c三個(gè)變量中,a中放最大數(shù),請(qǐng)?zhí)羁铡?/p>

voidfun2(int*x,int*y)

{intt;

t=*x;*x;*y;*y=t;

}

voidfunl(int*pa,int*pb,int*pc)

{if(*pc>*pb)fun2(【】);

if(*pa<*pc)fun2(【】);

if(*pa<*pb)fun2(【】);

}

33.下面程序的運(yùn)行結(jié)果是______。

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

{

main()

{intaa[3]={1,2.3},s;

s=f(&aa[0],3);

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

}

34.下列程序的功能是將2個(gè)數(shù)從小到大輸出。

main()

{floata,b,【】;

scanf(【】,&a,&b);

if(a>b)

{t=a;

【】;

b=t;

}

printf("%5.2f,%5.2f\n",a,b);

}

35.【】(黑箱或白箱)測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征。

36.若有定義intm=5,y=2,則執(zhí)行表達(dá)式y(tǒng)+=y-=m*=y后,y的值為【】。

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

38.在鏈表的運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。

39.若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

40.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。

三、1.選擇題(20題)41.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

42.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

43.以下程序的輸出結(jié)果是()fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);print{("%d",a);}

A.0B.29C.31D.無定值

44.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同特點(diǎn)

45.在C語言中,可以把整數(shù)以二進(jìn)制形式存放到文件中的函數(shù)是()

A.fprintf()函數(shù)B.fread()函數(shù)C.fwrite()函數(shù)D.fputc()函數(shù)

46.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用敘述中錯(cuò)誤的是

A.函數(shù)調(diào)用可以作為獨(dú)立的語句存在

B.函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參

C.函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中

D.函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參

47.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的()。A.存儲(chǔ)結(jié)構(gòu)B.物理結(jié)構(gòu)C.邏輯結(jié)構(gòu)D.物理和存儲(chǔ)結(jié)構(gòu)

48.以下程序的輸出結(jié)果是______。#include<stdio.h>structstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%s\n",(*p).name);}main(){structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};fun(students+2);}

A.ZhangB.ZhaoC.WangD.18

49.以下程序的輸出結(jié)果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n",*p);free(p);}f(int*s,intp[][3]){*s=p[1][1];}

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

50.在宏定義#defineP13.1415926中,用宏名PI代替一個(gè)()

A.單精度數(shù)B.雙精度數(shù)C.常量D.字符串

51.若有以下結(jié)構(gòu)體,則正確的定義或引用的是()。structTest{intx;inty;}vl;

A.Test.x=10;

B.Testv2;v2.x=10;

C.struetv2;v2.x=10;

D.structTestv2={10};

52.以下程序中函數(shù)sort的功能是對(duì)a所指數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序;voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1,j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)print("%d,",aa[i]);printf('\n");}程序運(yùn)行后的輸出結(jié)果是()。

A.1,2,3,4,5,6,7,8,9,10

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

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

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

53.數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是______,僅僅是所處的狀態(tài)不同。

A.分析結(jié)果B.事件C.動(dòng)作D.數(shù)據(jù)

54.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

55.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運(yùn)行后的輸出結(jié)果是______。

A.0B.70C.35D.1

56.若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)整型變量的動(dòng)態(tài)存儲(chǔ)單元,則應(yīng)填入()int*pp=_______malloc(sizeof(int));

A.intB.intC.(*int)D.(into*)

57.以下對(duì)C語言函數(shù)的有關(guān)描述中,正確的是()

A.在C中,調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳給形參,形參的值不能傳送給實(shí)參

B.C函數(shù)既可以嵌套定義又可遞歸調(diào)用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)源程序文件中

58.詳細(xì)設(shè)計(jì)主要確定每個(gè)模塊具體執(zhí)行過程,也稱過程設(shè)計(jì),下列不屬于過程設(shè)計(jì)工具的是()

A.DFD圖B.PAD圖C.N-S圖D.PDL

59.數(shù)字字符0的ASCⅡ值為48,若有以下程序:main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}程序運(yùn)行后的輸出結(jié)果是()。

A.3,2B.50,2C.2,2D.2,50

60.有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-′a′+′A′;

s++;}}

main()

{charstr1[100]="abcddfefdbd",c=′d′;

ss(str1,c);printf("%s\n",str1);}

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

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

四、選擇題(20題)61.有三個(gè)關(guān)系R、s和T如下:

由關(guān)系R和s通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。

A.并B.自然連接C.笛卡爾積D.交

62.

63.

64.以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是()。A.在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的

B.結(jié)構(gòu)化程序使用sotoi吾句會(huì)很便捷

C.一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成

D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題

65.軟件需求規(guī)格說明書的作用不包括()。

A.軟件設(shè)計(jì)的依據(jù)B.軟件可行性研究的依據(jù)C.軟件驗(yàn)收的依據(jù)D.用戶與開發(fā)人員對(duì)軟件要做什么的共同理解

66.兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結(jié)果是()。

if(x++>5)printf("%d",x);

elseprintf("%d\n",x--);

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

67.若有說明:inti,j=7,*p=&i;,則與i=j;等價(jià)的語句是()。

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

68.

69.以下能定義為用戶標(biāo)識(shí)符的是()。

A.printfB.charC._8abcD.Void

70.有以下程序:

若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是()。

A.編譯錯(cuò)誤2000B.102000C.122030D.10

71.下述程序執(zhí)行的輸出結(jié)果是()。

#include<stdio.h>

main()

{chara[2][4];,

strcpy(a。"are");strcpy(a[1],"you");

a[o][3]=&;

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

}

A.are&you

B.you

C.are

D.&

72.

73.有以下程序:

voidmain()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{defaule:m++;

case0:m++;break;

}

}

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

}

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

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

74.

75.設(shè)a=l,b=2,c=3,d=4,則表達(dá)式:“a<b?a:b<b?a:c<d?a:d”的結(jié)果為()。A.A.4B.3C.2D.1

76.對(duì)長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

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

77.

78.(45)信息隱蔽的概念與下述哪一種概念直接相關(guān)()

A.軟件結(jié)構(gòu)定義

B.模塊獨(dú)立性

C.模塊類型劃分

D.模擬耦合度

79.有以下程序

80.以下選項(xiàng)中敘述錯(cuò)誤的是()。

A.C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值

B.在同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限本復(fù)合語句內(nèi)

C.C程序函數(shù)中定義的自動(dòng)變量,系統(tǒng)不自動(dòng)賦確定的初值

D.C程序函數(shù)的性能不可以說明為static型變量

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是根據(jù)整型形參n,計(jì)算如下公式的值:y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(m)例如,n中的值為l0,則應(yīng)輸出0.817962。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。

例如,若二維數(shù)組中的數(shù)據(jù)為

13233343

14243444

15253545

則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。

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

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

試題程序:

#include<stdio.h>

voidproc(int(*s)[103,int*b,int*n,intrain.intnn)

{}

voidmain

{

intarr[10][10]={{33,33,33,33),{44,44,44,44},

{55,55,55,55}),i,j;

inta[l00]={o),n=o;

printf("Thematrix:\n");

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

{

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

printf("%3d",arr[i][j]):

printf("\n");

}

proc(arr,a,&n,3,4):

printf("TheAarray:\n");

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

printf("%3d",a[i]):

printf("\n\n");

}

參考答案

1.D

2.C

3.B解析:以“wt”方式寫入的是字符文件,轉(zhuǎn)義字符\'\\n\'被看作兩個(gè)字符來處理。而'wb'方式寫入的是二進(jìn)制文件,轉(zhuǎn)義字符\'\\n\'是一個(gè)字符。故正確答案為選項(xiàng)B)。

4.C

5.D

6.B

7.B解析:選項(xiàng)A)中,定義的初值個(gè)數(shù)大于數(shù)組的長度;選項(xiàng)C)中,數(shù)組名后少了中括號(hào);選項(xiàng)D)中,整型數(shù)組不能賦予字符串。

8.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標(biāo)識(shí)符PI來代替“3.1415926”這個(gè)字符串,但宏定義不是C語句,不必在行末加分號(hào)。

9.AA選項(xiàng)錯(cuò)誤,在定義結(jié)構(gòu)體語句后少了分號(hào)。故本題答案為A選項(xiàng)。

10.A

11.D

12.A解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時(shí)指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時(shí)對(duì)函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型一致。如果函數(shù)值的類型和return語句中的表達(dá)式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動(dòng)進(jìn)行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。

13.B

14.D“max=MIN;”語句應(yīng)放在for循環(huán)之前,否則每次循環(huán)時(shí)都重新賦值,值沒有變化。

15.D

16.B

17.C因?yàn)閏語言數(shù)據(jù)進(jìn)行計(jì)算時(shí)數(shù)據(jù)類型會(huì)由低級(jí)向高級(jí)進(jìn)行隱式轉(zhuǎn)化,sqrt函數(shù)得到的是double類型,比其他的int數(shù)據(jù)類型高,所以整個(gè)結(jié)果得到的是double類型。

18.C

19.C

20.A

21.aa解析:本程序先將指針ptr1和ptr2分別指向字符數(shù)組a和b,然后通過指針的移動(dòng)比較a和b中是否有相同的字符。若有相同的字符則將其輸出。

22.-32768~32767

23.aasum/n或sum/(float)n或sum/(double)nx[i]<sve或!(x[i]>=sve)或sve>x[i]a\r\na\r\nsum/n或sum/(float)n或sum/(double)n\r\nx[i]<sve或!(x[i]>=sve)或sve>x[i]

24.*n=j*n=j解析:本題題干信息是能整除x且不是偶數(shù)的所有整數(shù)之和。循環(huán)語句中i從1開始且每次增2,所以i始終是奇數(shù),*n=j;語句是記錄能夠符合題意的各個(gè)整數(shù)的各數(shù)。

25.用戶用戶解析:黑盒測(cè)試又稱為功能測(cè)試,黑盒測(cè)試是把程序看作一個(gè)黑盒子,完全不考慮程序內(nèi)部的結(jié)構(gòu)和處理過程。測(cè)試者只考慮該程序輸入和輸出的關(guān)系,或只考慮程序的功能。黑盒測(cè)試是一種從用戶觀點(diǎn)出發(fā)的測(cè)試。

26.k<=nk++k<=n\r\nk++解析:本題要求將一個(gè)for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會(huì)加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句“k++;”。

27.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個(gè)字符型數(shù)組st1l和str2,并且給str2賦初值“abcdefgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1.在函數(shù)sstrcpy(*s,*t)中,用了一個(gè)while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲(chǔ)空間,然后指針s和指針t都下移到下一個(gè)元素。所以空格處應(yīng)該填*t++或*(t++)。

28.實(shí)體實(shí)體解析:在E-R圖中用矩形表示實(shí)體;橢圓形表示屬性;菱形表示聯(lián)系。

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

30.findbigfindbig解析:本題考核的知識(shí)點(diǎn)是指向函數(shù)的指針變量的使用。本題首先定義了一個(gè)指向函數(shù)的指針變量f,如果希望讓它指向某個(gè)函數(shù),只需把函數(shù)名賦給該指針變量即可。所以說本題的空格處應(yīng)該填入函數(shù)名findbig。

31.6060解析:本題定義了一個(gè)3行2列的二維數(shù)組a,并定義了一個(gè)指向兩個(gè)元素的一維數(shù)組指針p,讓p指向二維數(shù)組a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。

32.pcpb或pbpcpcpa或papcpbpa或papbpc,pb或pb,pc\r\npc,pa或pa,pc\r\npb,pa或pa,pb解析:本題主要考查形參為指針變量時(shí),形參和實(shí)參間的數(shù)據(jù)傳遞。系統(tǒng)為fun2的兩個(gè)形參開辟了對(duì)應(yīng)的基類為int型的臨時(shí)指針變量,并通過空格處的實(shí)參把地址傳遞給形參x,y。

33.66解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學(xué)表達(dá)式如下:

f(&a,n)=a[0]+f(&a[1],n-1)n>1

f(&a,n)=a[0]n=1

本題中定義了一個(gè)長度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f,由上面的數(shù)學(xué)表達(dá)式以計(jì)算其返回值s=1+2+3=6,所以空格處應(yīng)該填6。

34.t"%f%f"a=b

35.黑箱黑箱解析:本題考查了軟件測(cè)試中的黑箱測(cè)試。黑箱測(cè)試是根據(jù)程序規(guī)格說明所規(guī)定的功能來設(shè)計(jì)測(cè)試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。常用的黑箱測(cè)試技術(shù)分為等價(jià)類劃分、邊界分析、錯(cuò)誤猜測(cè)以及因果圖等。

36.-16-16解析:將賦值運(yùn)算符右側(cè)的“表達(dá)式”的值賦給左側(cè)的變量,并且賦值運(yùn)算符按照“自右而左”的結(jié)合順序,本題表達(dá)式應(yīng)先算m的值為10,再運(yùn)算y的值為8,最后計(jì)算y=y+(-8)=-8+(-8)=-16。

37.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。

38.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個(gè)頭結(jié)點(diǎn),因此在任何情況下,循環(huán)鏈表中至少有一個(gè)結(jié)點(diǎn)存在,從而使空表與非空表的運(yùn)算統(tǒng)一。

39.00解析:函數(shù)getchar()是從鍵盤得用戶輸入的一個(gè)字符。用戶輸入的第1個(gè)字符a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個(gè)循環(huán)不會(huì)被執(zhí)行。

40.數(shù)據(jù)模型數(shù)據(jù)模型

41.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對(duì)象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。

42.C算法具有的5個(gè)特性是:有窮性、確定性、可行性、有0個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

43.C

44.C解析:棧和隊(duì)列都是操作受限制的線性表,只允許在端點(diǎn)插入和刪除。不同點(diǎn)是:棧只允許在表的一端進(jìn)行插入和刪除操作,而隊(duì)列允許在表的一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。

45.C

46.D解析:在c語言中規(guī)定,無返回值的函數(shù)調(diào)用,可以作為表達(dá)式或表達(dá)式的一部分,也可以作為一條語句;而有返回值的函數(shù)調(diào)用只能作為一個(gè)函數(shù)的實(shí)參(即將其返回值傳給相應(yīng)的形參),而不能作為形參(因?yàn)樾螀⑹窃诤瘮?shù)定義時(shí)說明的)。

47.C數(shù)據(jù)結(jié)構(gòu)概念一般包括3個(gè)方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))及數(shù)據(jù)上的運(yùn)算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,即數(shù)據(jù)元素之間的前后件關(guān)系,而不管它在計(jì)算機(jī)中的存儲(chǔ)表示形式。

48.B

49.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動(dòng)態(tài)存儲(chǔ)分配函數(shù)malloc分配了一個(gè)int型數(shù)據(jù)長度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對(duì)p所指向的數(shù)據(jù)進(jìn)行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對(duì)應(yīng)于實(shí)參a的元素5,所以輸出結(jié)果為5。

50.D

51.D解析:此題考查結(jié)構(gòu)體的定義和引用。選項(xiàng)A)的錯(cuò)誤是通過結(jié)構(gòu)體名引用結(jié)構(gòu)體成員;選項(xiàng)B)的錯(cuò)誤是將結(jié)構(gòu)體名作為類型名使用;選項(xiàng)C)的錯(cuò)誤是將關(guān)鍵字struct作為類型名使用;選項(xiàng)D)是定義變量v2并對(duì)其初始化的語句,初始值只有前一部分,這是允許的。

52.C解析:本題中首先定義一個(gè)長度為10的一個(gè)整型數(shù)組,并初始化為“1,2,3,4,5,6,7,8,9,10”,然后調(diào)用排序函數(shù)sort(),通過分析不難看出,sort()函數(shù)是對(duì)具有n個(gè)元素的a數(shù)組進(jìn)行從大到小排序。由于函數(shù)的第一個(gè)參數(shù)是數(shù)組名,其對(duì)應(yīng)的實(shí)參可以是函數(shù)名或地址。本題在調(diào)用該函數(shù)時(shí),實(shí)參是&aa[3]的地址,即把a(bǔ)a[3]的地址傳給了行參數(shù)組名a,函數(shù)也就是對(duì)aa[3]開始的5個(gè)元素進(jìn)行從大到小的摔序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并沒有變化。Sort()執(zhí)行完畢后,接著執(zhí)行后面的for語句輸出數(shù)組aa中各個(gè)元素的值,由于函數(shù)sort()只是對(duì)aa[3]開始的5個(gè)元素進(jìn)行從大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并沒有變化,所以輸出為“1,2,3,8,7,6,5,4,9,10”。所以4個(gè)選項(xiàng)中C正確。

53.D解析:數(shù)據(jù)流圖有4種成分:源點(diǎn)或終點(diǎn)、處理、數(shù)據(jù)存儲(chǔ)和哦數(shù)據(jù)流。數(shù)據(jù)存儲(chǔ)是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運(yùn)動(dòng)中的數(shù)據(jù)。

54.D解析:C語言規(guī)定,字符常量在程序中要用單引號(hào)括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項(xiàng)的這種形式在C語言中沒有,所以選項(xiàng)D)正確.

55.C解析:位與運(yùn)算是將兩個(gè)運(yùn)算分量看作兩個(gè)二進(jìn)制數(shù),然后對(duì)兩個(gè)二進(jìn)制數(shù)的相應(yīng)位進(jìn)行與運(yùn)算,若同時(shí)為1則結(jié)果相應(yīng)位為1,否則結(jié)果相應(yīng)位為0。因此,當(dāng)兩個(gè)運(yùn)算分量相同時(shí),它們的相應(yīng)位肯定也相同,即不同為1就同為0。所以得到的結(jié)果和運(yùn)算分量也相同。所以,4個(gè)選項(xiàng)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論