2021年江西省鷹潭市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第1頁
2021年江西省鷹潭市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第2頁
2021年江西省鷹潭市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第3頁
2021年江西省鷹潭市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第4頁
2021年江西省鷹潭市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年江西省鷹潭市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列敘述中正確的是()。A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率

2.程序中對fun函數(shù)有如下說明

void*fun();

此說明的含義是:A.fun了數(shù)無返回值

B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型

C.fun函數(shù)的返回值是無值型的指針類型

D.指針fun指向一個函數(shù),該函數(shù)無返回值

3.在一個具有n個結(jié)點的有序單鏈表中插入一個新結(jié)點并仍然保持有序的時間復(fù)雜度是()。

A.O(1)B.O(n)C.O(n2)D.O(nlog2n)

4.下面程序的運行結(jié)果是()。#include"stdio.h"main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elseprintf("#");}}

A.*#*#*B.#*#*#*C.*#*#D.#*#*

5.

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

A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分

B.常量是在程序運行過程中值不能被改變的量

C.定義符號常量必須用類型名來設(shè)定常量的類型

D.用符號名表示的常量叫符號常量

7.軟件測試的目的是()。

A.評估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯誤C.改正程序中的錯誤D.發(fā)現(xiàn)程序中的錯誤

8.在循環(huán)隊列中,若front與rear分別表示對頭元素和隊尾元素的位置,則判斷循環(huán)隊列空的條件是()。

A.front==rear+1B.rear==front+1C.front==rearD.front==0

9.對線性表進(jìn)行折半查找時,必須要求線性表()。

A.順序方式存儲B.鏈?zhǔn)椒绞酱鎯.以順序方式存儲,且結(jié)點按關(guān)鍵字有序排列D.以鏈?zhǔn)椒绞酱鎯?,且結(jié)點按關(guān)鍵字有序排列

10.有以下程序段:charname[20】;intnum;scanf("name=%Snum=%d",name,&num);當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilimum=1001<回車>后,name的值為()。A.LiliB.name=LiliC.Lilinum=D.name=Lilinum=1001

11.有以下程序:#include<stdio.h>main(){charch=‘1’;while(ch<‘9’){printf(“%d”,ch-‘0’);ch++;}}程序運行后的輸出結(jié)果是()。

A.12345678B.01234567C.0D.1

12.

13.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達(dá)式是______。

A.p+1B.a+1C.a++D.++p

14.以下選項中能表示合法常量的是()。

A.1,200B.1.5E2.0C.‘\’D.“\007”

15.C語言的邏輯表達(dá)式在特定情況下會產(chǎn)生“短路”現(xiàn)象。若有邏輯表達(dá)式“x++&&y++,”則以下敘述中正確的是()。

A.若x的值為0,則“y++”操作被“短路”,y值不變

B.若x的值為1,則“y++”操作被“短路”,y值不變

C.若y的值為0,則“&&”運算被“短路”,y值不變

D.若y或x的值為0,則表達(dá)式值為0,“x++”和“y++”均不執(zhí)行

16.有以下程序#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");}程序運行的結(jié)果是()。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,

17.若希望下列的程序運行后輸出25,程序空白處的正確選項是()。main{intid=50,a[]=(7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i

18.一個順序棧一旦聲明,其占用空間的大小()。

A.已固定B.可以變動C.不能固定D.動態(tài)變化

19.假設(shè)在程序中a、b、c均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式1/abc的表達(dá)式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c

20.在供應(yīng)關(guān)系中,實體供應(yīng)商和實體零件之間的聯(lián)系是()。

A.多對多B.一對一C.多對一D.一對多

二、2.填空題(20題)21.以下程序中給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>

#include<stdio.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]);

}

22.若輸入2、2,則下列程序的運行結(jié)果為【】。

main()

{inti,j,(*p)[4],

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

p=a;

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

printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));

}

23.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。

24.有以下定義和語句,則sizeof(a.share)的值是()。

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

25.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;}

26.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法。可行性研究階段采用的是【】。

27.用十六進(jìn)制給存儲器中的字節(jié)地址進(jìn)行編號,其地址編號從0000到FFFF,則該存儲器容量是【】。

28.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

29.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。

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

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

31.若從鍵盤輸入24,則以下程序輸出的結(jié)果是()。

#include<stdio.h>

main()

{inta;

scanf("%d",&A);

if(a>20)printf("%d",A);

if(a>10)printf("%d",A);

if(a>5)printf("%d",A);

}

32.以下程序?qū)蓚€數(shù)從小到大輸出。請?zhí)羁铡?/p>

{floata,b,【】;

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

if(a>b)

{t=a;

【】;

b=t;

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

}

33.若已定義inta[10],i;以下fun函數(shù)的功能是,在第一個循環(huán)中給前10個數(shù)組元素依次賦1,2,3,4,5,6,7,8,9,10;在第二個循環(huán)中使a數(shù)組前10個元素中的值對稱拆疊,變成1,2,3,4,5,5,4,3,2,1。請?zhí)羁铡?/p>

fun(inta[])

{inti;

for(i=1;i<=10;i++)【】=i;

for(i=0;i<5;i++)【】=a[i];

}

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

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

main()

{inti=1;

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

}

35.設(shè)一棵完全二叉樹共有700個結(jié)點,則在該二叉樹中有【】個葉子結(jié)點。

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

37.下列語句使指針p指向一個double類型的動態(tài)存儲單元。

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

38.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和,請?zhí)羁铡?/p>

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

39.問題處理方案的正確而完整的描述稱為______。

40.設(shè)a、b、c為整數(shù),且a=2、b=3、c=4,則執(zhí)行完語句a*=18+(b++)-(++c);后,a的值是【】。

三、1.選擇題(20題)41.以下選項中可作為C語言合法常量的是______。

A.-80B.-80C.-8e1.0D.-80.0e

42.語句:printf("%d\n",12&012);的輸出結(jié)果是()。

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

43.在下列敘述中,錯誤的是()。

A.C語言中,二維數(shù)組或多維數(shù)組是按行存放的

B.賦值表達(dá)式b[1][2]=a[2][3]是正確的

C.chara[1];a[0]='A'與inta[1];a[0]='A'等價

D.數(shù)組名后的方括號內(nèi)可以為常量表達(dá)式,也可以為變量

44.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

45.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是______。

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

46.以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#defineN10voidartin(intx[N]){inti=0;while(i<N)scanf("%d",);}在下劃線處應(yīng)填入的是()。

A.x+iB.&x[i+1]C.x+(i++)D.&x[++i]

47.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);retumy-x-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面

48.有三個關(guān)系R、S和T如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。

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

49.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序的輸出結(jié)果是

A.0B.0.25C.0.5D.1

50.有以下程序段:intk=0;while(k=1)k++;while循環(huán)執(zhí)行的次數(shù)是______。

A.無限次B.有語法錯,不能執(zhí)行C.一次也不執(zhí)行D.執(zhí)行1次

51.結(jié)構(gòu)化程序設(shè)計的三種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

52.有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen(“d1.dat”,“w”);fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”,j);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d%d”,&k,&n);printf(“%d%d\n”,k,n);fclose(fp);}程序運行后的輸出結(jié)果是

A.2030B.2050C.3050D.3020

53.閱讀下列程序,當(dāng)運行函數(shù)時,輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];

A.asdafaaz67B.asdafaa267C.asdD.z67

54.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

55.若有以下程序:#include<stdio.h>voidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf("%d\n",n);}則以下敘述中不正確的是()。

A.若只在主函數(shù)中對函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f

C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:對f函數(shù)重復(fù)說明

D.函數(shù)f無返回值,所以可用void將其類型定義為無返回值型

56.對下述程序的判斷中,正確的是

#include<stdio.h>

voidmain()

{char*p,s[128];

p=s;

while(strcmp(s,"End"))

{printf("Inputastring:");gets(s);

while(*p)

putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止

B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因為代碼有錯誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串

57.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scan("%d,%d,%d",&i,&j,&k);

C.scan("%do/od%d",&i,及j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

58.字長為32位的計算機(jī)是指()

A.該計算機(jī)中的CPU有32個寄器

B.該計算機(jī)能夠處理的最大數(shù)不超過232

C.該計算機(jī)每秒鐘所能執(zhí)行的指令條數(shù)為32MIPS

D.該計算機(jī)中的CPU可以相同時處理32位的二進(jìn)制數(shù)

59.結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序的易讀性

60.若程序執(zhí)行時的輸入數(shù)據(jù)是"2473",則下述程序的輸出結(jié)果是

#include<stdio.h>

voidmain()

{intcs;

while((cs=getchar())!=;'\n')

{switch(cs-'2')

{case0

case1:putchar(cs+4);

case2:putchar(cs+4);

break;

case3:putchar(cs+3);default:putchar(cs+2);}}}

A.668977B.668966C.6677877D.6688766

四、選擇題(20題)61.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6

62.有以下程序

63.

64.

65.

66.有以下程序

voidfunc(int*a,intb[])

{b[0]=*a+6;}

main()

{inta,b[5]={0};

a=0;b[0]=3;

func(&a,b);

rintf("%d\n",b[0]);

}

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

A.6B.7

C.8D.9

67.

68.設(shè)有定義:

69.

70.下列敘述中正確的是()。A.在c程序的函數(shù)中不能定義另一個函數(shù)

B.在c程序中main函數(shù)的位置是固定的

C.C程序中所有函數(shù)之間都可以相互調(diào)用

D.每個C程序文件中都必須要有一個main函數(shù)

71.設(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

72.

73.以下語句的輸出結(jié)果是()。

inta=-1,b=4,k;

k=(++a<0)!(b--<=0);

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

A.1,0,4B.1,0,3C.0,0,3D.0,0,4

74.某循環(huán)隊列的存儲空間為Q(4:m),初始狀態(tài)為front=lea/"=m。現(xiàn)經(jīng)過一系列的人隊操作和退隊操作后,front=m,r6ar=m一1,則該循環(huán)隊列中的元素個數(shù)為()。

A.m一1B.mC.1D.0

75.

76.有以下函數(shù)

fun(char*a,char*b)

{

while((*a!=’\0’)&&(*b!=’\0’)&&(*a==*b))

{

a++;b++;

}

return(*a-*b);

}

該函數(shù)的功能是

A.計算a和b所指字符串的長度之差

B.將b所指字符串連接到a所指字符串中

C.將b所指字符串連接到a所指字符串后面

D.比較a和b所指字符串的大小

77.有如下程序:

該程序的輸出結(jié)果是()。

A.0.000000B.0.250000C.0.500000D.1.000000

78.sizeof(float)是

A.一個雙精度表達(dá)式B.一個整型表達(dá)式

C.一種函數(shù)調(diào)用D.一個不合法的表達(dá)式

79.下面對C語言的描述中,正確的是

A.函數(shù)一定有返回值,否則無法使用函數(shù)

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

C.在C語言中,調(diào)用函數(shù)時,只能將實參的值傳遞給形參

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

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對字符串中的頭兩個元素進(jìn)行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已

在主函數(shù)中賦予。

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

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

試題程序:

#include<strin9.h>

#include<stdi0.h>

#defineM80

voidproc(char*arr)

{inti,j,n;charch;

n=strlen(arr):

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

//****found****

{c=arr[i];

j=i-1;

while((j>=o)&&(ch<arr[j]))

{

arr[j+1]=arr[j];

j--;

}

arr[j+1]=ch;

}

}

voidmain

{

chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";

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

proc(a);

printf("Thestringaftersortin9:

%s\n\n",a);

}

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),對長度為9個字符的字符串,除首、尾字符外,將其余7個字符按ASCⅡ碼值降序排列。例如,原來的字符串為HabcdefA,則排序后輸出為HfedcbaA。注意:部分源程序給出如下。請勿改動main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()中填入所編寫的若干語句。試題程序:

參考答案

1.DD)【解析】數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。采用不同的存儲結(jié)構(gòu),其處理的效率是不同的。

2.D解析:返回指針的函數(shù)定義為:返回值類型,函數(shù)名(\u3000\u3000),而指向函數(shù)的指針定義為:返回值類型(*變量名)(\u3000\u3000)。本題中函數(shù)fun返回一個無類型的指針。

3.B

4.A解析:分析程序呵知.程序循環(huán)5次,然后利用if語句決定每次循環(huán)時輸出的字符。當(dāng)i為奇數(shù)時,i%2=1,if(i%2)為真,輸出“*”;當(dāng)i為偶數(shù)時,i%2=0,if(i%2)為假,執(zhí)行else語句,輸出“#”,所以當(dāng)i取1、3、5值時輸出“*”,當(dāng)i取2、4值時輸出“#”。

5.C

6.C在C語言中,可以用一個標(biāo)識符來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:#define標(biāo)識符常量。

7.D軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,測試要以查找錯誤為中心,而不是為了演示軟件的正確功能,也不是為了評估軟件或改正錯誤,因此本題答案為D)。

8.C

9.C

10.A考查簡單的C程序。由題可知,程序中輸入name的值為Lili,所以輸出的必定是Lili,答案選擇A。

11.A表達(dá)式“ch-‘0’’將數(shù)字字符轉(zhuǎn)為數(shù)字。輸出的格式為%d。while循環(huán)從‘1’~‘8’,因此輸出的結(jié)果是12345678。故本題答案為A選項。

12.C

13.C

14.DA選項中整型常量應(yīng)表示為1200,數(shù)字中不能包含逗號。B選項中E后面的指數(shù)必須為整數(shù)。C選項中轉(zhuǎn)義字符以“\\”開始,若要表示字符“\\”,應(yīng)寫為“\\\\”。故本題答案為D選項。

15.A題干中,“x++&&y++”屬于邏輯與表達(dá)式。僅當(dāng)“x++”和“y++”的結(jié)果為真,整個邏輯表達(dá)式的結(jié)果才為真,否則整個表達(dá)式的結(jié)果為假。當(dāng)“x++”的結(jié)果為0時,“y”就會被短路,即不再執(zhí)行“y++”表達(dá)式,整個表達(dá)式的結(jié)果為假。所以當(dāng)x的值為0時,“x”的結(jié)果也是0,“y”操作被“短路”,y值不變。故本題答案為A選項。

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

17.D要想使程序輸出25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)的語句,使引用的數(shù)組元素累加65-50=15即可,D選項中,i下標(biāo)從0開始,i=2指向第3個數(shù)50+a[2]=50+10=60,繼續(xù)循環(huán)60+a[3]=60+5=65,此時i=4跳出,循環(huán)結(jié)束。

18.A

19.D

20.A一家供應(yīng)商可提供多種零件,一種零件也可被多家供應(yīng)商提供。所以實體供應(yīng)商和實體零件之間的聯(lián)系是多對多。本題答案為A選項。

21.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價的表達(dá)式。

22.a[22]=11

23.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。

24.4

25.int*int*解析:從題中代碼可知:z應(yīng)該是一個整型指針,因此應(yīng)填int*。

26.結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法解析:結(jié)構(gòu)化分析方法主要用于系統(tǒng)分析階段;結(jié)構(gòu)化設(shè)計方法主要用于系統(tǒng)設(shè)計階段;結(jié)構(gòu)化程序設(shè)計方法主要用于編碼階段??尚行匝芯繉儆谙到y(tǒng)分析階段,因此,可行性研究階段采用的是結(jié)構(gòu)化分析方法。

27.64KB

28.88解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。

29.77解析:此表達(dá)式為三目運算符,++a的值為6,b--的值為6,則整個表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。

30.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時,判斷條件不滿足,退出循環(huán)。

31.242424

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

33.a[i-1]或a[-1+i]a[9-i]或a[-i+9]a[i-1]或a[-1+i]\r\na[9-i]或a[-i+9]

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

35.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點。因此,設(shè)一棵完全二叉樹具有n個結(jié)點,若n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點以及n/2-1個度為2的結(jié)點,還有1個是度為1的結(jié)點:若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結(jié)點以及[n/2]個度為2的結(jié)點,沒有度為1的結(jié)點。本題中,完全二叉樹共有700個結(jié)點,700是偶數(shù),所以,在該二叉樹中有350個葉子結(jié)點以及349個度為2的結(jié)點,還有1個是度為1的結(jié)點。所以,本題的正確答案為350。

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

37.(double*)

38.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應(yīng)該填寫地址,由于是循環(huán)輸入,所以填&a[i]。依據(jù)題意第二處應(yīng)該填寫a[i],以實現(xiàn)sum=sum+a[i]的求和。

39.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。

40.3232解析:b++是先使用b的值參加運算,再對b加1。++c是先對c加1,再使用c的值參加運算。a*=18+(b++)-(++c)等價于a=a*(18+(b++)-(++c))則a=2*(18+3-5)=32。

41.A解析:選項B中,以0開頭表示是一個八進(jìn)制數(shù),而八進(jìn)制數(shù)的取值范圍是0~7,所以-080是不合法的;選項C和D中,e后面的指數(shù)必須是整數(shù),所以也不合法。

42.B解析:位運算12&012即1100&1010,結(jié)果是1000,轉(zhuǎn)化成十進(jìn)制數(shù)是8,所以,輸出結(jié)果是8。

43.D解析:本題考查數(shù)組的4個知識點:①C語言中,二維數(shù)組或多維數(shù)組元素排列的順序是按行存放;②不同數(shù)組的元素之間可以相互賦值;③字符型數(shù)組中存放的是字符,int型數(shù)組中存放的是字符對應(yīng)的ASCII碼值,雖然在計算機(jī)內(nèi)部字符常量都是作為蹩型量來處理的,其對應(yīng)的整數(shù)值就是ASCII碼值,但兩者并不完全等價;④數(shù)組名后的方括號內(nèi)可以為常量,也可以為常量表達(dá)式,但不可以為變量。

44.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。

45.D解析:通常,引用一個數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開始的。

46.C解析:根據(jù)scanf()的定義,應(yīng)該在空白處填入一地址值,又因為要為數(shù)組中所有元素賦值,故空白處填入的表達(dá)式應(yīng)使i每次增1,選項A和B不會使i增1,所以不正確。選項D在第一次執(zhí)行時i先自增為1,所以輸入的第一個數(shù)據(jù)被存到x[l]中,而第N次執(zhí)行時會將數(shù)據(jù)輸入到x[N],這個地址已經(jīng)超過數(shù)組x的范圍,屬于越界行為,所以也不正確。故正確答案為C。

47.A解析:在函數(shù)體內(nèi)定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。

48.D自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,因此B錯誤。笛卡兒積是用R集合中的元素為第一元素,s集合中的元素為第二元素構(gòu)成的有序?qū)?,因此C錯誤。根據(jù)關(guān)系T可以很明顯地看出是從關(guān)系R與是系s中取得相同的關(guān)系組,所以使用的是交運算,選擇D。

49.C解析:該題目測驗考生對if…elseif結(jié)構(gòu)的理解,比較簡單。x的值滿足x<10.0的關(guān)系,所以程序?qū)?zhí)行y=1.0/x;語句,y的值應(yīng)該等于0.5。最后,用printf函數(shù)輸出時,%f的輸出格式為小數(shù)點后保留6位。

50.A解析:注意本題有個陷阱,馬虎的考生將紛紛落馬。本來、while中的表達(dá)式應(yīng)為k==1,而本題卻為k=1,是賦值表達(dá)式而不是邏輯表達(dá)式。因此,編譯器將其值一直認(rèn)為是1,因此表達(dá)式一直為真,陷入無限次的循環(huán)。

51.D結(jié)構(gòu)化程序設(shè)計以模塊化設(shè)計為中心,采用自頂向下、逐步求精的程序設(shè)計方法。任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來實現(xiàn)。

52.A解析:本題首先以創(chuàng)建方式打開文件“d1.dar”,兩次調(diào)用fprintf()把i和j的值寫到文件“d1.dat”中,文件“d1.dar的內(nèi)容為20〈回車〉30〈回車〉后把該文件關(guān)閉再以讀的方式打開,文件位置指針指向文件頭,在通過fscard()函數(shù)從中讀取兩個整數(shù)到k和n中,由于格式符無間隔,因此輸入數(shù)據(jù)可以用回車隔開,故輸入的k值為20,n的值為30。

53.A解析:本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用“留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,每走到一個字符都判斷其是否為空格,若不是空格(注意在if()的單引號之間有一個空格),則將其保存str[j]中。注意j的下標(biāo)變化、初值及最后加串結(jié)束符'\\0'。

54.CC。【解析】結(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

55.C解析:f函數(shù)沒有重復(fù)說明,在main函數(shù)中是對f函數(shù)聲明,在main函數(shù)外則是對f函數(shù)的定義。

56.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。gets從標(biāo)準(zhǔn)輸入設(shè)備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),即strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果字符串1>字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負(fù)整數(shù)。putchar(c)函數(shù)將字符c輸出到標(biāo)準(zhǔn)輸出設(shè)備上。

57.B解析:函數(shù)scan()的調(diào)用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符:“輸入項地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。

58.D

59.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

60.A解析:本題主要考查switch語句的使用方法。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對條件表達(dá)式進(jìn)行運算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。

61.B本題考查自加(++)、自減(--)運算符的使用?!?+x,--x”,在變量x前使用,先使X的值加1或者減1,再使用此時的表達(dá)式的值參與運算;“x++,x--”,先把使用X的值參與運算,在使用X之后,再使x的值加1或者減1。對于表達(dá)式--x=4,y++=4,兩者相等,--x=y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。第2個表達(dá)式b=++x,x的值先加1,然后賦給b,即b=x+1=5;第一個表達(dá)式c=y=5。故B正確。

62.A函數(shù)fun的功能是返回字符串?dāng)?shù)組.,各個字符串第一個字母是T的個數(shù),str數(shù)組里有2個,所以選擇A)。

63.C

64.D

65.D

66.A本題考查數(shù)組作為函數(shù)形參與實參的使用。題目給出的程序分為兩個部分,一個是函數(shù)func,該函數(shù)有兩個形參,一個為整型的指針a,一個為整型的數(shù)組b[],這里的b只是一個形參數(shù)組名,與main函數(shù)中的數(shù)組b沒有關(guān)系。為了區(qū)別,將func函數(shù)中的數(shù)組b用b’表示。func函數(shù)實現(xiàn)的功能是將指針a所指向的整型值*a與6相加,并將結(jié)果放入數(shù)組b’[0]處。main函數(shù)首先對整型數(shù)據(jù)a和數(shù)組b進(jìn)行初始化,初始化后a的值為0,數(shù)組b中第一個值b[0]=3。初始化結(jié)束后,對函數(shù)func進(jìn)行調(diào)用。應(yīng)當(dāng)注意,調(diào)用函數(shù)func時,是將數(shù)組b的數(shù)組名作為函數(shù)的實參。這樣調(diào)用的結(jié)果就是沒有把數(shù)組元素的值傳遞給形參數(shù)組,而是把實參數(shù)組的起始地址傳遞給形參,b和b’共占有同一段內(nèi)存,這樣形參數(shù)組中的值發(fā)生變化也將導(dǎo)致實參數(shù)組中的值發(fā)生變化。題目中雖然main函數(shù)初始化使得b[0]=3,但是在調(diào)用func函數(shù)的過程中,作為該函數(shù)形參的數(shù)組b’有b’[0]=*a+6=6,故main函數(shù)中的實參數(shù)組b[0]值也發(fā)生改變,變?yōu)?。

67.A

68.A選項中可以在聲明變量的同時為data2賦值,但是“data2=(2,6);”應(yīng)寫作

“d2={2,61;’',因此選擇A)。

69.D

70.A在C語言中函數(shù)不能嵌套定義,所以選擇A)。

71.D在三目運算符中,優(yōu)先級相同,按從右到左的結(jié)合性計算,a<b?a:(c<d?a

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論