2022年江蘇省淮安市全國計算機(jī)等級考試C語言程序設(shè)計_第1頁
2022年江蘇省淮安市全國計算機(jī)等級考試C語言程序設(shè)計_第2頁
2022年江蘇省淮安市全國計算機(jī)等級考試C語言程序設(shè)計_第3頁
2022年江蘇省淮安市全國計算機(jī)等級考試C語言程序設(shè)計_第4頁
2022年江蘇省淮安市全國計算機(jī)等級考試C語言程序設(shè)計_第5頁
已閱讀5頁,還剩112頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年江蘇省淮安市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

有以下程序:

main

{intx,i;

for(i=l;i<=50;i++)

{x=i:

if(x%2=0)

if(x%3=0)

if(X%7=0)

printf(”%d,i)”;

}

}

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

A.28B.27C.42D.4l

2.表達(dá)式a*(-b+c)的逆波蘭式是()

A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*

3.有以下定義:structperson{charname[10];intage;};structpersonclass[10]={“Johu”,17,“Paul”,19,“Mary”,18,“Adam”,16,};能輸出字母M的語句是()。

A.printf(“%c\n”,class[2].name[0]);

B.printf(“%c\n”,class[3].name[0]);

C.printf(“%c\n”,class[3].name[1]);

D.printf(“%c\n”,class[2].name[1]);

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

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

5.有如下程序段

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

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

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5;

p=find(s,n);

puts(p);}

則執(zhí)行后輸出的結(jié)果為A.A.heB.andC.youD.tomeetme

6.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并

7.若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語句是()。A.scanf(“%d%lx,%le”,&x,&y,&z);

B.scanf(“%2d*%d%lf”&x,&y,&z);

C.scanf(“%x%*d%o”,&x,&y);

D.scanf(“%x%o%6.2f”,&x,&y,&z)

8.一棵二叉樹共有25個結(jié)點,其中5個是葉子結(jié)點,則度為l的結(jié)點數(shù)為()。

A.16B.10C.6D.4

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

A.m=4

B.m=2

C.m=6

D.m=5

10.輸入序列為ABC,可以變?yōu)镃BA時,經(jīng)過的棧操作為()。

A.push,pop,push,pop,push,pop

B.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,push,pop,pop

11.

12.最大容量為n的循環(huán)隊列,隊尾指針是rear,隊頭是front,則隊空的條件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

13.是哈希查找的沖突處理方法()。

A.求余法B.平均取中法C.二分法D.開放地址法

14.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)

15.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運行時在第1列開始輸入ab@并按<Enter>鍵,則運行結(jié)果是()。

A.7,1B.3,2C.0,5D.5,0

16.設(shè)有如下類型說明語句:typedefstruct{intnum;struct{inty,m,d;}date;}PER;則以下定義結(jié)構(gòu)體數(shù)組并賦初值的語句中錯誤的是()。

A.PERst[2]={{1001},2008,8,1,{1002},2006,5,20};

B.PERst[2]={1001,{2008,8,1},1002,{2006,5,20}};

C.PERst[2]={{1001,2008,8,1},{1002,2006,5,20}};

D.PERst[2]={1001,2008,8,1,1002,2006,5,20};

17.設(shè)無向圖G中有n個頂點e條邊,則其對應(yīng)的鄰接表中的表頭結(jié)點和邊表接點的個數(shù)分別為()。

A.n,eB.e,nC.2n,eD.n,2e

18.下列程序的輸出結(jié)果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

19.若果要求一個線性表既能較快查找,又能適應(yīng)動態(tài)變化的要求,可以采用()查找方法。

A.分塊B.順序C.二分D.散列

20.有下列程序:

程序執(zhí)行后的輸出結(jié)果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7

二、2.填空題(20題)21.有以下程序:

voidswap1(intc[])

{intt;

t=c[0];c[0]=c[1];c[1]=t;

}

voidswap2(intc0,intc1)

{intt;

t=c0;c0=c1;c1=t;

}

main()

{inta[2]={3,5},b[2]={3,5};

swaplA);swap2(b[0],b[1]);

printf("%d,%d,%d,%d\n",a[0],a[1],b[0],b[1]);

}

其輸出結(jié)果是【】。

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

23.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

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

main()

{inti=10,j=0;

do

{j=j+i;i-;}

while(i>2);

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

}

25.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

26.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

28.有如下程序段:

main(intargc,char*argv[])

{intn,i=0;

while(argv[1][i]!='\0')

{n=fun();i++;}

printf("%d\n",n*argc);

}

intfun()

{staticints=0;

s+=1;

returns;

}

假設(shè)程序經(jīng)編譯、連接后生成可執(zhí)行文件exam,exe,若鍵入如下命令行:

examl23<回車>

則運行結(jié)果為【】。

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==O‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

30.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達(dá)式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

31.以下程序的輸出結(jié)果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}

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

intx=5;

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

}while(!(--x));

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

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

main()

{inta=1,b=2;

a=a+b;b=a-b;a=a-b;

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

}

35.在面向?qū)ο蟮某绦蛟O(shè)計方法中,類的實例稱為______。

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

main()

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

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

printf("\n");}

37.以下程序中,select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標(biāo)。請?zhí)羁铡?/p>

#defineN3

#defineM3

select(inta[N][M],int*n)

{inti,j,row=1,colum=1;

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

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

if(a[i][j]>a[row][colum]){row=i;colum=j;}

*n=【】;

return(【】);

}

main()

{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;

max=select(a,&n);

printf(“max=%d,line=%d\n”,max,n);

}

38.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。

39.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。

40.下列的for語句的循環(huán)次數(shù)為______。

for(x=1,y=0;(y!=19)&&(x<7);x++);

三、1.選擇題(20題)41.下列程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}

A.are&youB.youC.areD.&

42.以下語句或語句組中能正確進(jìn)行字符串賦值的是()。

A.ehar以*sp;*sp="right!";

B.chars[10];s="right!";

C.chars[10];*s="right!";

D.char*sp="right!";

43.請讀程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結(jié)果是______。

A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

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

A.scanfB.VoidC.3comD.int

45.下列敘述中正確的是()。A.實體集之間一對一的聯(lián)系實際上就是一一對應(yīng)的關(guān)系

B.關(guān)系模型只能處理實體集之間一對一的聯(lián)系

C.關(guān)系模型屬于格式化模型

D.以上三種說法都不對

46.在計算面中,算法是指______。

A.查詢方法B.加工方祛C.解題方案的準(zhǔn)確而完整的描述D.排序方法

47.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運行該程序的輸出結(jié)果是______。

A.34B.42C.43D.33

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

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

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

A.線性鏈表的各元素在存儲空間中的位置必須是連續(xù)的

B.線性鏈表的頭元素一定存儲在其他元素的前面

C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面

D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的

50.數(shù)據(jù)庫系統(tǒng)的核心是()

A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程

51.若已包括頭文件<string.h>且已有定義chars1[18],s2={"ABCDE"}和inti,現(xiàn)要將字符串“ABCDE”賦給s1,下列語句錯誤的是()。

A.strcpy(s1,s2)

B.strcpy(sl,"ABCDE");

C.s1="ABCDE";

D.for(i=0;i<6;i++)s1[i]=s2[i];

52.若有說明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無確定值

53.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關(guān)系是()。

A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)

B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)

D.三者沒有明顯的包含關(guān)系

54.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()

A.voidfun(double*s)

B.fun(double*s[4])

C.fun(double(*s)[3])

D.voidfun(double(*s)[4])

55.有1000個64×64漢字的點陣漢字庫,其存儲空間為()KB。

A.500B.1000C.512D.1024

56.在C語言程序中,下列說法正確的是()。

A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套

B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套

C.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套

57.下面是對宏定義的描述,不正確的是______。

A.宏不存在類型問題,宏名無類型,它的參數(shù)也無類型

B.宏替換不占用運行時間

C.宏替換時先求出實參表達(dá)式的值,然后代入形參運算求值

D.宏替換只不過是字符替代而已

58.下列敘述中正確的是______。

A.C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方

B.花括號""{""和""}""只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

59.下列語句中,不正確的是______。

A.staticinta[2][3]={1,2,3,4,5,6};

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

C.staticinta[][3]={{1},{4}};

D.staticinta[][]={{1,2,3},{4,5,6}};

60.在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

四、選擇題(20題)61.在數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu)中,處于最上層的是()。

A.應(yīng)用層B.語言翻譯處理層C.數(shù)據(jù)存取層D.數(shù)據(jù)存儲層

62.

63.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

64.有以下程序:

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

A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC

65.下列對于軟件測試的描述正確的是()。

A.軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤

B.軟件測試的目的是證明程序是否正確

C.軟件測試的目的是使程序運行結(jié)果正確

D.軟件測試是證明軟件中沒有錯誤

66.算法的空間復(fù)雜度是指()。

A.算法在執(zhí)行過程中所需要的計算機(jī)存儲空間

B.算法所處理的數(shù)據(jù)量

C.算法程序中的語句或指令條數(shù)

D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)

67.

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

B.1111110100011001

C.0000001011100010

D.1100000000101000

69.有以下程序段:

以下選項中表達(dá)式的值為11的是()。

A.++pt一>xB.pt一>xC.*pt一>yD.(pt++)一>x

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

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

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

#include<stdio.h>

main()

{inti,s=0;

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

if(!(i%2)&&!(i%3))s+=i;

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

}A.4B.39C.45D.6

72.下述程序的運行結(jié)果是()。#includedstdio.h>#includedstrin9.h>main{char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

73.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達(dá)式是()。A.A.(a<b)&&!c‖1

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

C.a&&b

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

74.

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

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

printf("x=%d,y=%d",x,y);

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

75.

76.有以下程序:

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

A.204B.200C.240D.246

77.設(shè)有以下語句:

TypedefstructTT

{charc;inta[4];}CIN;

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

A.不可以用TT定義結(jié)構(gòu)體變量

B.TT是結(jié)構(gòu)體標(biāo)識名

C.可以用CIN定義結(jié)構(gòu)體變量

D.CIN是structTT類型的變量

78.以下敘述中錯誤的是()。A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.c語言是一種結(jié)構(gòu)化程序設(shè)計語言

D.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法

79.有以下程序

#include<stdio.h>

main()

{

intnum=0;

while(num<=2)

{

num++;

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

}

}

上面程序的輸出結(jié)果是

80.在JavaScript語言中,要定義局部變量則可以()。

A.由關(guān)鍵字private在函數(shù)內(nèi)定義

B.由關(guān)鍵字private在函數(shù)外定義

C.由var在函數(shù)內(nèi)定義

D.由關(guān)鍵字var在函數(shù)外定義

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:先將字符串s中的字符按順序存放到t中,然后把S中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時,則t中的字符串應(yīng)為WXYZWXYZ。

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

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

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidproc(char*s,char*t)

{

inti,s1;

s1=strlen(s);

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

//****found****

t[i]=s[s1];

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

t[s1+i]一s[i];

t[2*s1]=\O0;

}

voidmain

{

chars[100],t[100];

system("CLS");

print{("\nPleaseenterstrings:");

scanf("%s",s);

proc(s,t);

printf("Theresultis:%s\n",t);

}

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:求出1~1000之間能被7或11整除,但不能同時被7和11整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。

注意:部分原程序在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。

參考答案

1.C只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇C選項。

2.D

3.AC語言規(guī)定數(shù)組的下標(biāo)從0開始,結(jié)構(gòu)體數(shù)組class初始化了前4個元素。第3個元素的name=“Marry”,則class[2].name[0]=‘M’。故本題答案為A選項。

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

5.B在本題中,首先定義了兩個宏N和M,大小都為10,然后定義了一個返回指針的函數(shù)find,該函數(shù)帶有兩個形參,第一個為字符型的指針數(shù)組,第二個為整型變量,在函數(shù)體中,首先定義了一個指針變量q,并將形參中指針數(shù)組的第一個元素賦值給q,然后執(zhí)行for循環(huán),在循環(huán)體中,首先執(zhí)行條件判斷語句,其條件為strcmp(a[i],q)<0(strcmp函數(shù)的作用是比較兩字符串的大小,如果相等,則返回0值,如果參數(shù)中的第一個字符串大,則返回正值,否則返回負(fù)值),如果結(jié)果為真,說明指針數(shù)組當(dāng)前元素所指向的字符串比q所指向的字符串小,此時,程序執(zhí)行將當(dāng)前指針數(shù)組元素賦值給p,最后返回p,通過上面的分析我們可以看出,find函數(shù)的作用是找出指針數(shù)組中各元素所指向字符串的最小字符串。

在主函數(shù)中,定義了一個二維數(shù)組s,并賦了初值,然后定義一個指針變量p,用來存放函數(shù)find的返回值。調(diào)用函數(shù)find的參數(shù)分別為s和5,結(jié)合形參看find函數(shù),不難知道調(diào)用find函數(shù)就是找出二維數(shù)組s中各字符串中最小的字符串,那么應(yīng)該為and。此時,指針變量p指向字符串“and”的首地址,然后執(zhí)行puts(p),完成該字符串的輸出。因此,本題正確的答案是B。

6.C由圖所知,其中,C中只有一個屬性,是除操作。

7.D

8.A根據(jù)二叉樹的性質(zhì),n=n0+n1+n2(n表示總結(jié)點數(shù),n0表示葉子結(jié)點數(shù),nl表示度數(shù)為1的結(jié)點數(shù),n2表示度數(shù)為2的結(jié)點數(shù)),而葉子結(jié)點數(shù)總是比度數(shù)為2的結(jié)點數(shù)多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。

9.C[解析]第一次外循環(huán)的值為1.第一次內(nèi)循環(huán)的值為3.不滿足條件執(zhí)行m*=j即m的值為3;第二次的值為2.不滿足條件執(zhí)行m*=*j,即m的值為6;第三次的值為1.不滿足條件執(zhí)行m*=j,即m的值仍為6.第二次外循環(huán)的值為2.j的值為3.滿足條件,執(zhí)行break語句,跳出循環(huán)。

10.B

11.C

12.B

13.D

14.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。

15.Dfun函數(shù)接收兩個整型指針變量a、b。for循環(huán)判斷a、b指向的值大小和getchar讀入的字符是否為“@”來決定循環(huán)是否執(zhí)行。循環(huán)體內(nèi)對a、b指向的值各自自增1、自減1。main函數(shù)定義并初始化實參i的值為0,實參j的值為5,調(diào)用函數(shù)fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,*b的值為5,*a<*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*a<*b為真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a<*b為真,執(zhí)行循環(huán)體;*a的值為3,*b的值為2,*a<*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為4,*b的值為1,*a<*b為假,getchar讀入字符“b”,執(zhí)行循環(huán)體;*a的值為5,*b的值為0,*a<*b為假,getchar讀入字符“@”,fun函數(shù)執(zhí)行完畢,main函數(shù)輸出5,0。故本題答案為D選項。

16.A結(jié)構(gòu)體PER類型定義了兩個成員:num為整型,date為嵌套的結(jié)構(gòu)體類型。初始化時,成員值的順序必須與成員定義的順序相同,num必須是整數(shù),date必須是用花括號標(biāo)注的嵌套的3個整數(shù)。選項A中,{1001}和{1002}都不是整數(shù),所以選項A錯誤。故本題答案為A選項。

17.A

18.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)條件的判定。當(dāng)能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進(jìn)行i++,判斷循環(huán)條件。

19.A

20.C程序定義兩個整型變量i、j,初值為3,7。另外,定義兩個整型指針變量p、q,其中p指向i,q指向j。將i、j的地址傳給swap函數(shù)。在swap函數(shù)中,a指向i,b指向j。通過臨時變量t交換a和b指向的值,此時a指向的實參i、b指向的實參j的值發(fā)生了交換。即a指向i的值為7,b指向j的值為3;再通過臨時變量tp交換a和b的指針值,使得a指向j,b指向i。所以swap中輸出a指向的值為3(j),b指向的值為7(i);swap函數(shù)調(diào)用結(jié)束后,輸出p和q指向的值,即i、j的值為7、3。所以程序輸出:3,7,7,3。本題答案為C選項。

21.53355335解析:函數(shù)swap1的形參是數(shù)組,故形參的改變能夠影響實參,所以執(zhí)行完swap1(a)后,a[0]=5、a[1]=3;函數(shù)swap2的形參是簡單變量,故形參的改變不能夠影響實參,所以執(zhí)行完swap2(b)后,b[0]=3、b[1]=5;正確答案為5335。

22.101091101091解析:for(表達(dá)式1;表達(dá)式2:表達(dá)式3)語句的功能是:首先計算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達(dá)式3的值。然后再檢測表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

23.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

24.5252解析:do...while語句的形式為:

do

{

語句;

}while(條件表達(dá)式)

當(dāng)條件表達(dá)式為非零時,繼續(xù)執(zhí)行循環(huán)體,直到條件表達(dá)式為零時退出循環(huán)。

25.數(shù)據(jù)存儲數(shù)據(jù)存儲

26.格式化模型格式化模型解析:層次模型與網(wǎng)狀模型屬于格式化模型。

27.21

28.66解析:本題中命令行輸入2個符號串,所以argc=2,argv[0]指向符號串'exam',argv[1]指向符號串'123',while循環(huán)的作用是計算argv[1]所指向的字符串的長度,執(zhí)行完while循環(huán)后n=3,所以n*argc=3×2=6。

29.本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當(dāng)x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結(jié)果為4*3*2*1=24。\r\n\r\n

30.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實現(xiàn)。

31.3691236912解析:本題考查最基本的for循環(huán)。for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3,即每次a的值增加3,但因為fun函數(shù)中變量a為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都要保存。

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

33.概念(或概念級)概念(或概念級)

34.21

35.對象對象解析:在面向?qū)ο蟮某绦蛟O(shè)計方法中,類是具有相同的屬性或方法的對象的抽象,對象是類的實例。

36.

37.rowa[row][colum]row\r\na[row][colum]解析:指針變量作為函數(shù)參數(shù)及二維數(shù)組的一個典型算法——求最大值及其下標(biāo)。通過對題意的分析,在select()函數(shù)中,變量row的作用是用來記錄最大元素的行下標(biāo),colum的作用是用來記錄最大元素的列下標(biāo)。程序中通過一個循環(huán)求得數(shù)組元素中最大值的行列下標(biāo),分別存放在變量row和colum中,根據(jù)題意,應(yīng)該把行下標(biāo)賦值給形參指針變量n指向的變量,把最大值a[row][colum]作為函數(shù)值返回。

38.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。

39.有窮性有窮性解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內(nèi)完成,即算法必須在執(zhí)行有限個步驟之后終止。

40.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。

41.A解析:strcpy(a,'are')中數(shù)組名a代表數(shù)組首地址的地址常量,該操作把are復(fù)制到a中,a[0][3]=\'&\',且strcpy(a[1],'you')把you復(fù)制到a[1]中,故輸出a為“are&you”。

42.D解析:選項A)應(yīng)將*sp='right!';中的*叩改為sP,即把字符串'right!”的首地址賦給指針變量sp;選項B)中的s代表數(shù)組的首地址,不能給它賦字符串,只能在定義數(shù)組時,對其進(jìn)行初始化;選項C)中的。s指的是數(shù)組的第一個元素,不能給它賦字符串。

43.A解析:本題考查字符串比較函數(shù)strcmp()的應(yīng)用。strcmp(s1,s2)是中比較函數(shù),當(dāng)s1>s2時返回值為正數(shù),當(dāng)s1<s2時返回值為負(fù)數(shù),當(dāng)s1=s2時返回值為零。本題中s1,s2分別表示兩個串中第一個字符的地址,s1++和s2++是將指針指向串的第二個字符,指針變量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指針變量s2指向的是字符'B'的地址。而在字符串比較中,寧符串大小的確定是各個字符串相應(yīng)位置字符的ASCII碼值的大小決定的,字符'B'的ASCII碼值為66,字符“b”的ASCII碼值為98,所以s1>s2,返回值為正數(shù)。

44.D解析:標(biāo)識符是C語言中用來表示變量名、數(shù)組名、函數(shù)名、指針名、結(jié)構(gòu)名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語句標(biāo)號等用途的字符序列。標(biāo)識符由1~32個字符組成,第一個字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標(biāo)識符不能與C關(guān)鍵字相同,并區(qū)分大小寫。選項D)錯誤,因為int是C語言中的關(guān)鍵字。

45.D解析:實體集之間一對一的聯(lián)系不一定是一一對應(yīng)的關(guān)系。例如,在一個教室中,實體集“學(xué)生”與實體集“座位”之間是一對一的聯(lián)系。因為實體集“學(xué)生”中的每一個學(xué)生最多與實體集“座位”中的一個座位有聯(lián)系(學(xué)生坐在該座位上);并且,實體集“座位”中中的每一個座位也最多與實體集“學(xué)生”中的一個學(xué)生有聯(lián)系(座位上坐著該學(xué)生)。但該教室中的學(xué)生與座位之間不一定是一一對應(yīng)的關(guān)系,因為有可能某些座位是空的,沒有學(xué)生去坐。因此,選項A)中的說法是錯誤的。在關(guān)系模型中,由于使用表格數(shù)據(jù)來表示實體之間的聯(lián)系,因此,可以直接描述多對多的實體聯(lián)系。因此,選項B)中的說法也是錯誤的。關(guān)系模型是與格式化模型完全不同的數(shù)據(jù)模型,它與層次模型、網(wǎng)狀模型相比有著本質(zhì)的區(qū)別。關(guān)系模型是用表格數(shù)據(jù)來表示實體本身及其相互之間的聯(lián)系,它是建立在數(shù)學(xué)理論基礎(chǔ)上的。因此,選項C)中的說法也是錯誤的。

46.C解析:計算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個基本特征:可行性、確定性、有窮性和擁有足夠的情報。

47.D解析:逗號表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。

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

49.DD.【解析】在線性鏈表中,各元素在存儲空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實現(xiàn)數(shù)據(jù)元素的前后件關(guān)系。

50.B解析:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。

51.C解析:數(shù)組名s1是代表s1數(shù)組首地址的地址常量,而不是變量,因為“=”左邊不能出現(xiàn)常量,因此s1=“ABCDE”的方法是錯誤的。

52.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大?。孩诋?dāng)初值的個數(shù)不能被第二維的常量表達(dá)式的值除盡時,第一維的大小等于所得商數(shù)加1。

53.B數(shù)據(jù)庫可以看成是長期存儲在計算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫可以被直觀地理解為存放數(shù)據(jù)的倉庫,只不過這個倉庫在計算機(jī)的大容量存儲器上,例如,硬盤就是一種最常見的計算機(jī)大容量存儲設(shè)備。數(shù)據(jù)必須按一定的格式存放,因為它不僅需要存放,而且還要便于查找和使用。

數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的完成數(shù)據(jù)管理的系統(tǒng)軟件。它是用戶與數(shù)據(jù)庫的接口。應(yīng)用程序一般要通過DBMS才能訪問數(shù)據(jù)庫。在數(shù)據(jù)庫建立、運用和維護(hù)時對數(shù)據(jù)庫進(jìn)行統(tǒng)一控制。

數(shù)據(jù)庫系統(tǒng)是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。數(shù)據(jù)庫是整個數(shù)據(jù)庫系統(tǒng)最基本的成分。數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。數(shù)據(jù)庫管理員是數(shù)據(jù)庫系統(tǒng)的責(zé)任維護(hù)者,負(fù)責(zé)對數(shù)據(jù)庫系統(tǒng)的整體維護(hù)。

綜上所述,本題中只有B選項的描述是正確的。

54.D

55.A

56.B解析:本題考查函數(shù)調(diào)用的基本概念。因為函數(shù)的結(jié)果是個未知量,而函數(shù)定義時不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。

57.C解析:宏替換實質(zhì)上就是字符替代,它不可能進(jìn)行計算,故C錯誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時不會產(chǎn)生類似于函數(shù)調(diào)用的問題,可以說不占用運行時間。

58.A解析:C程序中注釋部分用“/*”和“*/”括起來,可以出現(xiàn)在程序中任何合適的地方;花括號“{”和“}”不僅可作為函數(shù)體的定界符,也可作為復(fù)合語句的定界符;構(gòu)成C程序的基本單位是函數(shù):一個語句必須在最后出現(xiàn)分號,分號是C語句中不可缺少的部分。

59.D

60.D解析:在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個關(guān)系。即關(guān)系模型是用表格數(shù)據(jù)來表示實體本身及其相互之間的聯(lián)系。本題的正確答案是D。

61.A在數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu)中,應(yīng)用層是直接面向終端客戶的,因此它是出于最上層得。

62.A

63.B當(dāng)n為9時,此時if語句成立,執(zhí)行n++后,n為10,因此輸出n的值為10,故選擇B選項。

64.A函數(shù)fun(char*s[],intn)的功能是對字符串?dāng)?shù)組的元素按照字符串的長度從小到大排序。在主函數(shù)中執(zhí)行fun(ss,5)語句后,*ss[]={“xy”,“bcc”,“bbcc”,“aabcc”,“aaaacc”},ss[0],ss[4]的輸出結(jié)果為xy,aaaacc。所以選項A)為正確答案。

65.A\n軟件測試的目標(biāo)是發(fā)現(xiàn)軟件中的錯誤。

\n

66.A算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。所以選擇A項。

67.B

68.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

69.A本題考查結(jié)構(gòu)體數(shù)組初始化以及結(jié)構(gòu)體變量的引用,題目中定義了一個結(jié)構(gòu)體數(shù)組C并初始化,指針pt指向c的第一個元素,那么pt一>x為10,++pt一>x為11,4pt一>Y為1,(pt++)一>x為20,所以答案為A。

70.Af函數(shù)功能使第二個指針指向的元素增1,第一個指針指向的元素不變,所以答案選擇A)。

71.Dif語句的條件是當(dāng)i既是3的倍數(shù)又是2的倍數(shù)時成立,所以此程序?qū)崿F(xiàn)的功能是將10以內(nèi)既是3的倍數(shù)又是2的倍數(shù)的數(shù)相加。

72.A本題考查符符串比較函數(shù)和兩個字符串比較的原則這兩個知識點。

(1)兩字符串比較的原則是依次比較兩個字符串同一位置的一對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大(2)strcmp(s1,s2)的返回值,當(dāng)str1<str2時,返回值為負(fù)數(shù);當(dāng)str1=str2時,返回0;當(dāng)str1>str2,返回值為正數(shù)。

73.B對于這種問題可以用真假來判斷,當(dāng)數(shù)值不為0時都一律為真,只有是0才是假

A:(a<b)為真,!c為假,所以(真&&假)為假,后來(假‖真)為真,不是0<b)為真,!c為假,所以(真&&假)為假,后來(假|(zhì)|真)為真,不是0B:(真&&假)為假,是0

C:(真&&真)為真,不是0

D:(真||真)為真,c-a為真,(真&&真)為真,不是0</b)為真,!c為假,所以(真&&假)為假,后來(假|(zhì)|真)為真,不是0

74.C解析:逗號表達(dá)式的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個逗號表達(dá)式的值就是最后一個表達(dá)式N的值。

表達(dá)式(x=3*y,x+1)中,第一個表達(dá)式x=3*y=3*5=15;第二個表達(dá)式x+1=16,但沒有給x或y賦值,所以x還是等于15;第3個表達(dá)式x-1=15-1=14,所以y的值為14。

75.B

76.A本題中輸入的3個數(shù)據(jù)2,4,6分別賦值給了x[0[0],x[1][0],x[2][0]。x[o][1]仍為初始時的0,所以打印輸出時的結(jié)果為A選項。

77.D類型定義;CIN不是structII類型的變量,它是structII類型的代替,即可以用它定義結(jié)構(gòu)體變量。

78.A使用順序、選擇(分支)、循環(huán)3種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,因此A)選項錯誤。

79.C本題考查while()語句。程序中使用的是while循環(huán),為“當(dāng)型”循環(huán)結(jié)構(gòu),即當(dāng)條件為真時循環(huán),將值代入循環(huán),當(dāng)num為3時,循環(huán)的條件已經(jīng)為假,將不再循環(huán)。故本題答案為C。

80.C

81.\n\t錯誤:t[i]=s[l];

\n正確:t[i]=s[i];

\n【解析】函數(shù)proc首先要實現(xiàn)將數(shù)組s中的元素順序放在數(shù)組t中,即數(shù)組t中下標(biāo)為i的元素在數(shù)組S中下標(biāo)也為i,因此“t[i]=s[s1];”應(yīng)改為“t[i]=s[i];”。\n

82.

【考點分析】

本題考查:if語句,用來判斷能被7整除或者能被11整除,但是又不能同時被7和11整除的數(shù),在這里充分理解”邏輯與”和”邏輯或”的區(qū)別;for循環(huán)語句的循環(huán)變量用來控制取值范圍。

【解題思路】

該題需要運用循環(huán)判斷結(jié)構(gòu)來實現(xiàn),其中循環(huán)語句比較容易,只要確定循環(huán)變量的范圍即可,下面來看判斷語句,題目要求找出能被7或11整除,但不能同時被7和11整除的所有整數(shù)。能同時被7和ll整除的整數(shù)一定能被77整除,且不能被

77整除的數(shù)不一定就是能被7或11整除的數(shù),所以可得出程序中的if語句。注意:(i%7==0||i%11==0)兩邊必須要有小括號。2022年江蘇省淮安市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

有以下程序:

main

{intx,i;

for(i=l;i<=50;i++)

{x=i:

if(x%2=0)

if(x%3=0)

if(X%7=0)

printf(”%d,i)”;

}

}

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

A.28B.27C.42D.4l

2.表達(dá)式a*(-b+c)的逆波蘭式是()

A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*

3.有以下定義:structperson{charname[10];intage;};structpersonclass[10]={“Johu”,17,“Paul”,19,“Mary”,18,“Adam”,16,};能輸出字母M的語句是()。

A.printf(“%c\n”,class[2].name[0]);

B.printf(“%c\n”,class[3].name[0]);

C.printf(“%c\n”,class[3].name[1]);

D.printf(“%c\n”,class[2].name[1]);

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

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

5.有如下程序段

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

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

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5;

p=find(s,n);

puts(p);}

則執(zhí)行后輸出的結(jié)果為A.A.heB.andC.youD.tomeetme

6.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并

7.若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語句是()。A.scanf(“%d%lx,%le”,&x,&y,&z);

B.scanf(“%2d*%d%lf”&x,&y,&z);

C.scanf(“%x%*d%o”,&x,&y);

D.scanf(“%x%o%6.2f”,&x,&y,&z)

8.一棵二叉樹共有25個結(jié)點,其中5個是葉子結(jié)點,則度為l的結(jié)點數(shù)為()。

A.16B.10C.6D.4

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

A.m=4

B.m=2

C.m=6

D.m=5

10.輸入序列為ABC,可以變?yōu)镃BA時,經(jīng)過的棧操作為()。

A.push,pop,push,pop,push,pop

B.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,push,pop,pop

11.

12.最大容量為n的循環(huán)隊列,隊尾指針是rear,隊頭是front,則隊空的條件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

13.是哈希查找的沖突處理方法()。

A.求余法B.平均取中法C.二分法D.開放地址法

14.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)

15.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運行時在第1列開始輸入ab@并按<Enter>鍵,則運行結(jié)果是()。

A.7,1B.3,2C.0,5D.5,0

16.設(shè)有如下類型說明語句:typedefstruct{intnum;struct{inty,m,d;}date;}PER;則以下定義結(jié)構(gòu)體數(shù)組并賦初值的語句中錯誤的是()。

A.PERst[2]={{1001},2008,8,1,{1002},2006,5,20};

B.PERst[2]={1001,{2008,8,1},1002,{2006,5,20}};

C.PERst[2]={{1001,2008,8,1},{1002,2006,5,20}};

D.PERst[2]={1001,2008,8,1,1002,2006,5,20};

17.設(shè)無向圖G中有n個頂點e條邊,則其對應(yīng)的鄰接表中的表頭結(jié)點和邊表接點的個數(shù)分別為()。

A.n,eB.e,nC.2n,eD.n,2e

18.下列程序的輸出結(jié)果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

19.若果要求一個線性表既能較快查找,又能適應(yīng)動態(tài)變化的要求,可以采用()查找方法。

A.分塊B.順序C.二分D.散列

20.有下列程序:

程序執(zhí)行后的輸出結(jié)果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7

二、2.填空題(20題)21.有以下程序:

voidswap1(intc[])

{intt;

t=c[0];c[0]=c[1];c[1]=t;

}

voidswap2(intc0,intc1)

{intt;

t=c0;c0=c1;c1=t;

}

main()

{inta[2]={3,5},b[2]={3,5};

swaplA);swap2(b[0],b[1]);

printf("%d,%d,%d,%d\n",a[0],a[1],b[0],b[1]);

}

其輸出結(jié)果是【】。

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

23.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

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

main()

{inti=10,j=0;

do

{j=j+i;i-;}

while(i>2);

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

}

25.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

26.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

28.有如下程序段:

main(intargc,char*argv[])

{intn,i=0;

while(argv[1][i]!='\0')

{n=fun();i++;}

printf("%d\n",n*argc);

}

intfun()

{staticints=0;

s+=1;

returns;

}

假設(shè)程序經(jīng)編譯、連接后生成可執(zhí)行文件exam,exe,若鍵入如下命令行:

examl23<回車>

則運行結(jié)果為【】。

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==O‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

30.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達(dá)式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

31.以下程序的輸出結(jié)果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}

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

intx=5;

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

}while(!(--x));

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

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

main()

{inta=1,b=2;

a=a+b;b=a-b;a=a-b;

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

}

35.在面向?qū)ο蟮某绦蛟O(shè)計方法中,類的實例稱為______。

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

main()

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

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

printf("\n");}

37.以下程序中,select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標(biāo)。請?zhí)羁铡?/p>

#defineN3

#defineM3

select(inta[N][M],int*n)

{inti,j,row=1,colum=1;

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

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

if(a[i][j]>a[row][colum]){row=i;colum=j;}

*n=【】;

return(【】);

}

main()

{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;

max=select(a,&n);

printf(“max=%d,line=%d\n”,max,n);

}

38.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。

39.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。

40.下列的for語句的循環(huán)次數(shù)為______。

for(x=1,y=0;(y!=19)&&(x<7);x++);

三、1.選擇題(20題)41.下列程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}

A.are&youB.youC.areD.&

42.以下語句或語句組中能正確進(jìn)行字符串賦值的是()。

A.ehar以*sp;*sp="right!";

B.chars[10];s="right!";

C.chars[10];*s="right!";

D.char*sp="right!";

43.請讀程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結(jié)果是______。

A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

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

A.scanfB.VoidC.3comD.int

45.下列敘述中正確的是()。A.實體集之間一對一的聯(lián)系實際上就是一一對應(yīng)的關(guān)系

B.關(guān)系模型只能處理實體集之間一對一的聯(lián)系

C.關(guān)系模型屬于格式化模型

D.以上三種說法都不對

46.在計算面中,算法是指______。

A.查詢方法B.加工方祛C.解題方案的準(zhǔn)確而完整的描述D.排序方法

47.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運行該程序的輸出結(jié)果是______。

A.34B.42C.43D.33

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

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

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

A.線性鏈表的各元素在存儲空間中的位置必須是連續(xù)的

B.線性鏈表的頭元素一定存儲在其他元素的前面

C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面

D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的

50.數(shù)據(jù)庫系統(tǒng)的核心是()

A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程

51.若已包括頭文件<string.h>且已有定義chars1[18],s2={"ABCDE"}和inti,現(xiàn)要將字符串“ABCDE”賦給s1,下列語句錯誤的是()。

A.strcpy(s1,s2)

B.strcpy(sl,"ABCDE");

C.s1="ABCDE";

D.for(i=0;i<6;i++)s1[i]=s2[i];

52.若有說明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無確定值

53.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關(guān)系是()。

A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)

B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)

D.三者沒有明顯的包含關(guān)系

54.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()

A.voidfun(double*s)

B.fun(double*s[4])

C.fun(double(*s)[3])

D.voidfun(double(*s)[4])

55.有1000個64×64漢字的點陣漢字庫,其存儲空間為()KB。

A.500B.1000C.512D.1024

56.在C語言程序中,下列說法正確的是()。

A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套

B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套

C.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套

57.下面是對宏定義的描述,不正確的是______。

A.宏不存在類型問題,宏名無類型,它的參數(shù)也無類型

B.宏替換不占用運行時間

C.宏替換時先求出實參表達(dá)式的值,然后代入形參運算求值

D.宏替換只不過是字符替代而已

58.下列敘述中正確的是______。

A.C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方

B.花括號""{""和""}""只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

59.下列語句中,不正確的是______。

A.staticinta[2][3]={1,2,3,4,5,6};

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

C.staticinta[][3]={{1},{4}};

D.staticinta[][]={{1,2,3},{4,5,6}};

60.在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

四、選擇題(20題)61.在數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu)中,處于最上層的是()。

A.應(yīng)用層B.語言翻譯處理層C.數(shù)據(jù)存取層D.數(shù)據(jù)存儲層

62.

63.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

64.有以下程序:

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

A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC

65.下列對于軟件測試的描述正確的是()。

A.軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤

B.軟件測試的目的是證明程序是否正確

C.軟件測試的目的是使程序運行結(jié)果正確

D.軟件測試是證明軟件中沒有錯誤

66.算法的空間復(fù)雜度是指()。

A.算法在執(zhí)行過程中所需要的計算機(jī)存儲空間

B.算法所處理的數(shù)據(jù)量

C.算法程序中的語句或指令條數(shù)

D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)

67.

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

B.1111110100011001

C.0000001011100010

D.1100000000101000

69.有以下程序段:

以下選項中表達(dá)式的值為11的是()。

A.++pt一>xB.pt一>xC.*pt一>yD.(pt++)一>x

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

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

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

#include<stdio.h>

main()

{inti,s=0;

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

if(!(i%2)&&!(i%3))s+=i;

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

}A.4B.39C.45D.6

72.下述程序的運行結(jié)果是()。#includedstdio.h>#includedstrin9.h>main{char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

73.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達(dá)式是()。A.A.(a<b)&&!c‖1

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

C.a&&b

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

74.

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

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

printf("x=%d,y=%d",x,y);

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

75.

76.有以下程序:

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

A.204B.200C.240D.246

77.設(shè)有以下語句:

TypedefstructTT

{charc;inta[4];}CIN;

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

A.不可以用TT定義結(jié)構(gòu)體變量

B.TT是結(jié)構(gòu)體標(biāo)識名

C.可以用CIN定義結(jié)構(gòu)體變量

D.CIN是structTT類型的變量

78.以下敘述中錯誤的是()。A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.c語言是一種

溫馨提示

  • 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

提交評論