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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.數(shù)據(jù)庫的故障恢復(fù)一般是由()來執(zhí)行恢復(fù)

A.電腦用戶B.數(shù)據(jù)庫恢復(fù)機(jī)制C.數(shù)據(jù)庫管理員D.系統(tǒng)普通用戶

2.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

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

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

3.以下關(guān)于算法的敘述中錯誤的是()。

A.算法可以用偽代碼、流程圖等多種形式來描述

B.一個正確的算法必須有輸入

C.一個正確的算法必須有輸出

D.用流程圖描述的算法可以用任何一種計算機(jī)高級語言編寫成程序代碼

4.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.0,1,0B.0,1,1C.0,0,1D.0,0,0

5.運(yùn)算符________的優(yōu)先級最高。

A.[]B.+=C.?:D.++

6.

7.線性表是具有n個()的有限序列。

A.字符B.數(shù)據(jù)元素C.數(shù)據(jù)項D.表元素

8.有以下程序:#include<stdio.h>main(){inta=-2,b=2;for(;++a&&--b;)printf(“%d,%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。

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

9.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序運(yùn)行后的輸出結(jié)果是()。

A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy

10.判斷一個循環(huán)隊列cq(最多元素為m)為滿的條件是()。

A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

11.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];

B.intN=10;intx[N];

C.int:x[0.10];

D.intx[];.

12.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

13.設(shè)一棵二叉樹共有50個葉子結(jié)點(終端結(jié)點),則共有___個度為2的結(jié)點。

A.25B.49C.50D.51

14.

15.CPU能夠直接訪問的存儲器是

A.軟盤B.硬盤C.RAMD.CD-ROM

16.有以下程序:

執(zhí)行后輸出結(jié)果是()。

A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday

17.

18.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.11B.43C.57D.53

19.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運(yùn)行后的輸出結(jié)果是()。

A.A2A3BB.2B4DFC.B4CD7D.B2D4F

20.以下關(guān)于指針的說法錯誤的是()。

A.可以向指針中寫入任意數(shù)據(jù)

B.可以向指針?biāo)竷?nèi)存單元中寫入數(shù)據(jù)

C.指針可以指向與其基類型相同的普通變量

D.可以通過加法運(yùn)算,使指針指向下一個內(nèi)存單元

二、2.填空題(20題)21.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

22.若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的的輸出語句()。

23.以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisisNO.”??瞻滋幮枰钊氲膬?nèi)容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES.\n");

case'n':

case'N':Printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnte

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

main()

{inta=1,b=2,c=3,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);

}

25.執(zhí)行下面程序后,輸出結(jié)果是【】。

main()

{chars[12]="verygood!";

printf("%d",strlen(s));

}

26.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

【】(double,double);

main()

{doublex,y;

seanf("%1f%1f",&x,&y);

pfintf("%1f\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

27.函數(shù)count(head)統(tǒng)計鏈表的結(jié)點個數(shù),head為表頭指針,閱讀程序,要求將整個if語句改成while循環(huán)控制結(jié)構(gòu),其形式為【】。

#include<stdio.h>

intcount(NODE*head)

{intn=0;

if(head!=NULL)

do

{n++;

head=head->next;

}while(head!=NULL);

returnn;}

28.下面程序的運(yùn)行結(jié)果是:【】。

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf(“%d%d\n”,i1,i2);

}

29.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。

30.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

31.在樹形結(jié)構(gòu)中,樹根結(jié)點沒有______。

32.自動批處理文件名必須是【】。

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

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

primf("%d,",z<y?x++:y++);

primf("%d,%d",x,y);

}

34.如下語句printf("%c\n",'B'+40);在執(zhí)行后的輸出結(jié)果是【】。

35.______是數(shù)據(jù)庫應(yīng)用的核心。

36.有以下程序:

voidf(int*x,iht*y)

{intt;

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

}

main()

{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p)

{f(p,q);p++;q--;}

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

}

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

37.數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。

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

intn='c';

switch(n++)

{default:printf("error");break;

case'a':

case'A':

case'b':

case'B':printf("good");break;

case'c':case'C':printf("pass");

case'd':case'D':printf("warn");

}

39.有以下語句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>

n1=10

n2=20

40.在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

三、1.選擇題(20題)41.程序段:inti=65536;prinff("%d\n",i);,則輸出結(jié)果是______。

A.65536B.0C.有語法錯誤,無輸出結(jié)果D.-1

42.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

43.下列選項中,不屬于模塊間耦合的是()

A.數(shù)據(jù)耦合B.同構(gòu)耦合C.異構(gòu)耦合D.公用耦合

44.假定a和b為int型變量,則執(zhí)行以下語句后,b的值為______。a=1;b=10;do{b-=a;a++;}while(b--<0);

A.9B.-2C.-1D.8

45.數(shù)字字符0的ASCII值為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

46.以下程序的功能是進(jìn)行位運(yùn)算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是______。

A.43B.73C.70D.40

47.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

48.有以下程序:#inlucde<stdio.h>main()D)233{intn,*P=NULL;*p=&n;printf("inputn:");scanf("%d",&p);printf("outputn:");printf("%d\n",p);}該程序試圖通過指針P為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()。

A.intn,*P=NULL;

B.*P=&n;

C.scanf(“%d",&p)

D.printf("%d\n",p);

49.若有如下程序:voida(char*p,charc){while(*p){if(*p==c)*p=c-'b'+'B';;p++;}}main(){chars[50]="abcdeeffgee",b='e';a(s,b);printf("%s\n",s);}則程序運(yùn)行后的輸出結(jié)果是()。

A.AbcdeeffgeeB.ABCDeeFFGeeC.abcdEEffgEED.ABCDEEFFGEE

50.下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

51.現(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

52.有以下程序#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);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是。

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

53.下列程序中函數(shù)reverse()的功能是將a所指數(shù)組中的內(nèi)容進(jìn)行逆置。#include<stdio.h>voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;)}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,10);for(i=0;i<3;i++)s+=b[i];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。

A.27B.6C.25D.30

54.有如下程序:main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序運(yùn)行后的輸出結(jié)果是______。

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

55.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達(dá)式是______。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

56.某二叉樹共有60個葉子結(jié)點與50個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為()。

A.148B.169C.182D.198

57.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達(dá)式的值為11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->x

58.若有以下的定義和語句:main(){inta[4][3]*p[4],j;for(j=0;j<4;j++)p[j]=a[j];}則能表示數(shù)組元素的表達(dá)式是______。

A.*(p[1])B.a[4][3]C.a[1]D.*(p+4)[1]

59.有以下程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;執(zhí)行該程序段后,k的值是______。A.3B.2C.1D.0

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

A.在C語言程序中預(yù)處理是指完成宏替換和文件包含指定的文件的調(diào)用

B.預(yù)處理指令只能位于C源程序文件的首部

C.預(yù)處理命令可以放在程序中的任何位置

D.預(yù)處理命令結(jié)尾需要加分號

四、選擇題(20題)61.

62.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

63.

64.

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

A.28B.24C.32D.36

66.

67.

有以下程序:

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);

}

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

A.235B.0235C.02356D.2356

68.以下程序執(zhí)行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不確定D.0

69.若運(yùn)行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是()。

A.v0=7,vl=4,v2=7

B.v0=8,vl=4,v2=8

C.v0=11,vl=4,v2=11

D.v0=13,vl=4,v2=12

70.設(shè)有如下函數(shù)定義若執(zhí)行調(diào)用語句:n=fun(3);,則函數(shù)fun總共被調(diào)用的次數(shù)是()。

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

71.

72.下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是A.它們的運(yùn)算對象可以是任何變量和常量

B.它們的運(yùn)算對象可以是char型變量和int型變量,但不能是float型變量

C.它們的運(yùn)算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運(yùn)算對象可以是char型變量、int型變量和float型變量

73.已定義:inta=25,b=14,c=19;,以下三目運(yùn)算符(?:)所構(gòu)成語句的執(zhí)行后

a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是

A.***a=25,b=13,c=19B.***a=26,b=14,c=19C.###a=25,b=13,c=19D.###a=26,b=14,c=19

74.若有定義:能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()

A.3:5B.3,5C.35D.35

75.

有以下程序:

#include<strintg.h>

main

{charp[20]={a,b,c,d),q[]="abc",r[]="

abcde";

strcpy(p+strlen(q),r);strcat(p,q);

printf("%d%d\n",sizeof(p),strlen(p));

}

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

A.209B.99C.2011D.1111

76.

77.有以下程序

fun(int*a,intn)

{inti,j=0,p;

p=j;

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

if(a[i]<a[p])

____;

return(p);

}

在下畫線處應(yīng)填入的是

A.i=pB.a(chǎn)[p]=a[i]

C.p=jD.p=i

78.

79.

80.當(dāng)把以下四個表達(dá)式用做if語句的控制表達(dá)式時,有一個選項與其他三個選項含義不同,這個選項是()。

A.k%2B.k%2==1C.(K%2)!=0D.!k%2==1

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達(dá)式。例如,變量a中的值原為8,b中的值原為3,程序運(yùn)行后,a中的值為3,b中的值為8。請改正程序中的錯誤,使它得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:將所有大于1小于整數(shù)m的非素數(shù)存入XX所指數(shù)組中,非素數(shù)的個數(shù)通過k傳回。例如,輸入20,則應(yīng)輸出4689101214151618。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.CC)【解析】數(shù)據(jù)庫一旦發(fā)生故障,需要及時進(jìn)行故障恢復(fù),并由數(shù)據(jù)庫管理員負(fù)責(zé)執(zhí)行故障恢復(fù)。

2.Cf函數(shù)的功能是對形參a的各個成員用結(jié)構(gòu)體變量b的各個成員進(jìn)行賦值后,然后返回變量a。

3.B【答案】B

【知識點】算法描述

【解析】一個算法應(yīng)該有0個或多個輸入,但是必須有一個或多個輸出。

4.Bif條件表達(dá)式“a--‖b--&&--c”使用了邏輯或運(yùn)算符和邏輯與運(yùn)算符。因為邏輯與運(yùn)算符優(yōu)先級比邏輯或運(yùn)算符優(yōu)先級高,所以條件表達(dá)式等價于“(a--)‖(b--&&--c)”,自左向右運(yùn)算,執(zhí)行“a”,因為a初值為1,所以a--的值為1,執(zhí)行完后a的值為0;又因為邏輯或運(yùn)算符的短路原則,當(dāng)a--的值為1時,條件為真,后面的表達(dá)式b--&&--c不執(zhí)行。程序執(zhí)行if語句塊,輸出a、b、c的值為:0,1,1。本題答案為B選項。

5.A

6.A

7.B

8.A在語句“for(;++a&&--b;)”中,for循環(huán)的表達(dá)式1和表達(dá)式3為缺省項。首先判斷條件表達(dá)式“b”。當(dāng)“a=-2,b=2”時,第1次執(zhí)行“++a”和“--b”,條件表達(dá)式為真,循環(huán)條件成立。第2次執(zhí)行“++a”為0,由于運(yùn)算符,當(dāng)?shù)?個條件為假時,不執(zhí)行第2個條件,因此“b=1”,發(fā)生短路,“--b”不再執(zhí)行。因此輸出的最終值為0,1。故本題答案為A選項。

9.Dmain函數(shù)定義一個二維字符數(shù)組a,它包含5個字符串,每個字符串存放在一個長度為10的一維數(shù)組中。指針數(shù)組P包含5個字符指針元素。for循環(huán)中,每次將*(a+i)賦給P[i],再輸出P[i]和*P[i]。由于*(a+i)等價于a[i],因此每次都是將下標(biāo)為i的字符串首地址賦給p[i],再輸出該字符串和該字符串的首字符。i=3時,輸出字符串“welcome”和首字符“w”;i=4時,輸出字符串“you”和首字符“y”。綜上,輸出結(jié)果為welcomewyouy。故本題答案為D選項。

10.B

11.A[解析]數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串?dāng)?shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。\u3000\u3000

12.B解析:一個算法應(yīng)當(dāng)具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應(yīng)該選擇B。

13.B難易程度:易

14.C

15.C解析:CPU讀取和寫人數(shù)據(jù)都是通過內(nèi)存來完成的。

16.CP指向字符串”tuesday”,因此*(P+1)的值為n。s[0]=”monday”。

17.B

18.D函數(shù)f是一個遞歸函數(shù)。當(dāng)x>=2時,遞歸調(diào)用自身,返回值為x*f(x-l)+(x-l)*f(x-2);3x<2時,返回值為1。main函數(shù)中,調(diào)用函數(shù)f傳入4,所以y的值是f(4)。f(4)等價于4*f(3)+3*f(2);f(3)等價于3*f(2)+2*f(1);f(2)等價于2*f(1)+1*f(0);f(0)、f(1)等價于1。綜上:f(2)等于3,f(3)等于11,f(4)等于53。本題答案為D選項。

19.D程序首先定義字符變量a并賦初值‘0’,定義字符變量b并賦初值‘A’。然后執(zhí)行for循環(huán),當(dāng)i為偶數(shù)時,輸出字符“a+i”;當(dāng)i為奇數(shù)時,輸出字符“b+i”。因為數(shù)字和字母的ASCII值都是按順序遞增的,所以本題輸出為B2D4F。故本題答案為D選項。

20.A指針變量必須區(qū)分基類型,可以向指針?biāo)竷?nèi)存單元寫入與基類型相同的數(shù)據(jù),而不能寫入任意數(shù)據(jù),選項A錯誤,選項B正確;指針可以指向與其基類型相同的普通變量,選項C正確;指針是一個內(nèi)存地址,它是一個整數(shù),可以通過加法運(yùn)算,使指針指向下一個內(nèi)存單元,選項D正確。故本題答案為A選項。

21.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。

22.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函數(shù)的一般格式為:“printf(格式控制,輸出表列)”。

23.

24.3123,1,2解析:分析程序,第一個if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。

25.1010解析:strlen(s)函數(shù)的返回值為字符串s包含的字符個數(shù)<不計最后的'\\0')。

26.doublemax或externdoublemaxdoublemax或externdoublemax解析:函數(shù)聲明是對所用到的函數(shù)的特征進(jìn)行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對調(diào)用表達(dá)式進(jìn)行檢測,以保證調(diào)用表達(dá)式與函數(shù)之間的參數(shù)正確傳遞。函數(shù)聲明的一般格式為:類型標(biāo)識符函數(shù)名(類型標(biāo)識符形參,…);這些信息就是函數(shù)定義中的第一行的內(nèi)容。本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extem說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

27.while(p!=NULL){n++;head=head→next;}while(p!=NULL){n++;head=head→next;}解析:do…while循環(huán)轉(zhuǎn)化為while循環(huán),循環(huán)體執(zhí)行的內(nèi)容應(yīng)該是一致的,不同的是do…while結(jié)構(gòu)是先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否滿足,而while循環(huán)則是先判斷循環(huán)條件是否滿足,滿足則執(zhí)行循環(huán)體。所以do…while循環(huán)結(jié)構(gòu)若想轉(zhuǎn)換為while循環(huán)結(jié)構(gòu),必須在do…while循環(huán)之前先對循環(huán)條件進(jìn)行一個判斷,即此題中的if(head!=NULL)。注意:3種循環(huán)結(jié)構(gòu)的比較。

28.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。

29.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。

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

31.前件前件

32.AUTOEXEC.BAT

33.22132,2,1,3解析:本題考查++,--運(yùn)算符和條件運(yùn)算符的使用。

“表達(dá)式1?表達(dá)式2:表達(dá)式3”的功能是:表達(dá)式1的值若非0,則計算表達(dá)式2的值,且表達(dá)式2的值為最終結(jié)果;若表達(dá)式1的值為0,則計算表達(dá)式3的值,且為最終結(jié)果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。

34.jj解析:在C程序中的字符量可參與任何整數(shù)運(yùn)算。

35.數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計

36.876543218,7,6,5,4,3,2,1解析:函數(shù)f是將x、y指針的內(nèi)容互換,整個while循環(huán)是將a[0]與a[7]互換,a[2]與a[5]互換,a[3]與a[4]互換。

37.物理獨立性物理獨立性解析:數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為物理獨立性。

38.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。

39.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù),其中格式控制參數(shù)由兩種成分組成:格式說明和普通字符,普通字符將被簡單地復(fù)制顯示,格式說明項將引起一個輸出參數(shù)項的轉(zhuǎn)換與顯示,它是由“%”引出并以一個類型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數(shù),所以格式說明項為%d,也可以在%與d之間加上域?qū)?,另外還要在每行輸出結(jié)束時加轉(zhuǎn)義字符\\n進(jìn)行換行。所以,應(yīng)填寫n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。

40.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。

41.D

42.B解析:一個算法應(yīng)當(dāng)具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應(yīng)該選擇B。

43.C解析:模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項C),沒有這種耦合方式。注意:評價模塊獨立性的主要標(biāo)準(zhǔn),以及對它們的定義和分類。

44.D

45.C解析:本題考查了字符型變量的運(yùn)算及輸出。在C語言中,字符型變量可以看作整型變量來對待,與整型所不同的是字符型變量在內(nèi)存中只占1個字節(jié),而整型是2個字節(jié)。字符型變量中所存的數(shù)值是它所表示字符的ASCII碼值。ASCII碼中的一些相關(guān)字符是順序排列的,如\'0\'的ASCII碼值為48,\'1\'為49以此類推一直到\'9\';\'A\'的ASCII碼值為65,\'B\'為66以此類推一直到\'Z\'。本題程序一開始就定義了兩個字符型變量a和b,并初始化為字符\'1\'和\'2\',由于題目已經(jīng)告訴,0,的ASCII值為48,所以變量a、b中所存儲的數(shù)據(jù)分別為49和50。第一條輸出語句是按字符格式輸出表達(dá)式b++的值和字符\',\',后綴自加表達(dá)式b++的值就是b的值,不過執(zhí)行完該表達(dá)式之后,變量b中的值會增1。所以第一次輸出的字符串是'2,',執(zhí)行完后b中的數(shù)據(jù)為51.第二條輸出語句是按整型格式輸出表達(dá)式b-a的值和一個換行符\'\\n\',b-a的值是51-49=2,故最終的輸出應(yīng)該為'2,2\\n',\'\\n\'是非打印字符,即不會在屏幕上顯示什么,所以,4個選項中選項C符合題意。

46.A解析:a=7^3=00000111^00000011=00000100=4;b=~4&3=~00000100&00000011=11111011&00000011=00000011=3

47.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達(dá)式。

48.A

49.C解析:函數(shù)a的功能是將字符數(shù)組s中的小寫字母e變?yōu)榇髮懽帜福溆嘧址蛔儯?個選項中只有C符合題意。

50.B解析:在C語言中,可以用break語句和continue語句跳出本層循環(huán)和結(jié)束本次循環(huán)。goto語句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內(nèi)使用return語句,就會直接結(jié)束循環(huán)返回函數(shù)值。

51.D

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

53.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)reverse將數(shù)組b進(jìn)行了逆置,此時的b[10]={10,9,8,7,6,5,4,3,2,1},后面for語句的功能是將b中的前3個數(shù)累加,將結(jié)果放在s中,最后將s輸出,結(jié)果s=10+9+8=27。

54.C解析:continue語句是結(jié)束本次循環(huán)。

for循環(huán)語句的執(zhí)行過程為:

第1次循環(huán):循環(huán)前n=0,執(zhí)行n++得n=1,n%3!=0成立,執(zhí)行continue語句結(jié)束本次循環(huán),k=4;

第2次循環(huán):循環(huán)前n=1,執(zhí)行n++得n=2,n%3!=0成立,執(zhí)行continue語句結(jié)束本次循環(huán),k=4;

第3次循環(huán);循環(huán)前n=2,執(zhí)行n++得n=3,n%3!=0不成立,執(zhí)行語句k--得k=3;n<k不成立,結(jié)束整個for循環(huán)。

所以執(zhí)行完for循環(huán)后k=3、n=3,正確答案為選項C。

55.C解析:選項A和B兩個表達(dá)式都越界了;選項D中,*t[2]是目標(biāo)變量,即—個整型值,而不是地址值。

56.B解析:本題考查二叉樹的性質(zhì)。葉子結(jié)點即度為0的結(jié)點,它總是比度為2的結(jié)點多一個,所以,具有60個葉子結(jié)點的二叉樹有59個度為2的結(jié)點??偨Y(jié)點數(shù)等于個葉子結(jié)點加上59個度為2的結(jié)點再加上50個度為1的結(jié)點的和,一共為169個結(jié)點。

57.C解析:要計算一個復(fù)雜的表達(dá)式時,首先要弄明白表達(dá)式中所有運(yùn)算符的優(yōu)先級與結(jié)合性,本題中所涉及的運(yùn)算符中,->的優(yōu)先級最高,*和++的優(yōu)先級相同,但其結(jié)合性為從右至左。所以選項A等價于*pt->y)也就是pt所指向的結(jié)構(gòu)體的成員指針變量y所指向的內(nèi)容。從前面的程序段不難看出,pt指向結(jié)構(gòu)體數(shù)組c的首地址,也就是指向它的第1個元素,在它的第1個元素中,指針變量y又被初始化為指向控型數(shù)組a的首地址,即指向數(shù)組a的第1個元素。故選項A中的表達(dá)式的值為a[0],也就是1。選項B中表達(dá)式的值就是c[0].x,即10。根據(jù)優(yōu)先級和結(jié)合性,選項C中的表達(dá)式等價于++(pt->x),由于是前綴++,所以整個表達(dá)式的值為pt->x的值加1,故為11。而選項D中,++是后綴形式,所以(pt++)的值還是pt的原值,即等于pt->x的值10。故應(yīng)該選擇C。

58.A解析:B項錯在越界,下標(biāo)最大的元素只到a[3][2];C項錯在a[1]只表示第2行;*(p+4)[1]的錯誤也在于越界,p+4相當(dāng)于a[4],實際上是不存在的。

59.B解析:本題考查的知識點是條件表達(dá)式.條件運(yùn)算符?:是C語言中唯一的三目運(yùn)算符,它的規(guī)則是先計算左邊運(yùn)算分量,如果為“真”(非0),則返回中間運(yùn)算分量的值,否則返回右邊運(yùn)算分量的值。本題中因為a<b為“真”,所以第1個條件表達(dá)式的值為b的值2,所以k=2。然后又因為k>c為“假’,所以第2個表達(dá)式的值為k的值2。所以本題應(yīng)該選擇B。

60.C解析:本題考查預(yù)處理命令的特點,編譯預(yù)處理命令的特點:①為了區(qū)別一般的語句,預(yù)處理命令行都必須以“#”號開始,結(jié)尾不加分號;②預(yù)處理命令可以放在程序中的任何位置;③在程序中凡是以“#”號開始的語句行都是預(yù)處理命令行。

61.D

62.C解析:帶參數(shù)宏的格式為:#define標(biāo)識符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實參的宏名,展開成由實參組成的表達(dá)式。

63.C

64.B

65.As得到全局變量a的值為4,第一次循環(huán)返回l2,第二次循環(huán)返回l2,累加結(jié)果為28。

66.D

67.B

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

\n

68.Csum+=i等價于sun+i,在本題中sum沒有賦初值,而題中只輸出sum的值,因此整個結(jié)果為不確定值。

69.D本題考查switch語句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語句的語法格式:

另外,以下幾點關(guān)于switch語句的重點:

①系統(tǒng)在執(zhí)行時計算開關(guān)表達(dá)式的值;②根據(jù)所得的值在各個case標(biāo)號表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的

一般而言,在多分支結(jié)構(gòu)中總會出現(xiàn)”意外”的情況,這時均可歸入default程序段,作統(tǒng)一的處理。default標(biāo)號是可選性的,不必每次都有,視需要而定。switch語句中還可以包含switch語句,形成switch的嵌套。

70.A首先n=fun(3),3被當(dāng)作參數(shù)傳遞進(jìn)去,進(jìn)行了第一次調(diào)用,3被當(dāng)作參數(shù)傳進(jìn)去后,程序會執(zhí)行語句elseretllnlfun(k—1)+1;進(jìn)行第二次調(diào)用,而參數(shù)是3"1也就是2。2被當(dāng)作參數(shù)傳進(jìn)去后,程序會執(zhí)行語句elsereturnfun(1[一l)+1;進(jìn)行第三次調(diào)用,而參數(shù)是2一l也就是1。l被當(dāng)作參數(shù)傳進(jìn)去后。程序會執(zhí)行語句elseif(k==1)returnl;不再遞歸調(diào)用,因此最終結(jié)果為3次,選項A)正確。

71.D

72.D本題主要考查自加與自減運(yùn)算符。在C語言中,自加與自減運(yùn)算符具有以下性質(zhì):

(1)自加運(yùn)算符“++”和自減運(yùn)算符“--”的運(yùn)算本身是一種賦值運(yùn)算,其結(jié)果是使運(yùn)算對象的值增1或減1。

(2)++、--運(yùn)算符是單目運(yùn)算符,運(yùn)算對象可以是整型變量或字符型變量,也可以是實型變量,但不能是常量和表達(dá)式。

(3)自加、自減運(yùn)算符無論是作為前綴還是后綴運(yùn)算符,對于變量而言,其效果相同,但作為表達(dá)式來說,其值不同。

(4)++和--運(yùn)算符的結(jié)合方向是“自右向左”。

(5)不要在一個表達(dá)式中對同一個變量進(jìn)行多次自增或自減運(yùn)算。可以知道本題正確的答案是D。

73.C本題主要考查三目運(yùn)算符(?:)。在本題中,有三個整型變量a、b、c,它們的初值分別為25、14、19,然后執(zhí)行三目運(yùn)算,a<=25&&b--<=2&&c等價于(a<=25)&&(b--<=2)&&c。

由于變量a的初值為25,因此,(a<=25)的結(jié)果為真;由于變量b的初值為14,(b--<=2)的結(jié)果為假,根據(jù)&&的性質(zhì)可知,其中的操作數(shù)只要有假,則計算結(jié)束,返回最終的結(jié)果為假,因此,后面的程序執(zhí)行printf(″###a=%d,b=%d,c=%d\n″,a,b,c)部分,那么答案只能在C和D中產(chǎn)生,從這兩個選項中給出的結(jié)果可以看出,它們的區(qū)別只有b的輸出結(jié)果,一個是13,而一個是14。從上面的程序分析,變量b進(jìn)行了一次自減操作,最后的結(jié)果應(yīng)該是13。因此,本題的正確答案是C。

74.AsCanf中格式控制符里必須原樣輸入,所以分號也必須輸入,A)正確。

75.C

\n在主函數(shù)中,首先定義一個包含20個元素的字符數(shù)組P,執(zhí)行語句“strcpy(P+strlen(q),r);”,數(shù)組P的內(nèi)容變?yōu)閧a,b,C,a,b,c,d,e,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0),執(zhí)行語句“strcat(P,q);”,數(shù)組P的內(nèi)容變?yōu)?,a,b,c,a,b,C,d,P,a,b,c,\0,\0,\0,\0,\0,\0,\0,\0),函數(shù)sizeof(P)是求數(shù)組P的大小,返回20,而函數(shù)strlen(p)是計算以P所指起始地址的字符串的長度,這一長度不包括串尾的結(jié)束標(biāo)志0,所以函數(shù)返回11。

\n

76.A

77.D本題考查對程序作用的理解。該函數(shù)具有兩個形參a和n,a為數(shù)組名,n為數(shù)組中元素的個數(shù)。函數(shù)的返回值為p,這里p為數(shù)組的下標(biāo)。初始時,i、j、p都為0,for循環(huán)的初始表達(dá)式為i=j,條件表達(dá)式為i<n,也就是當(dāng)i=n時,for循環(huán)結(jié)束。該for循環(huán)表達(dá)的含義為:初始時,令a[i]=a[p]=a[0],隨后i可從0開始遞增,直到n-1,對于每一個a[i],都與a[p]進(jìn)行比較,空白處需要填入語句的部分是if語句滿足條件后要進(jìn)行的操作,表示如果a[i]<a[p],應(yīng)當(dāng)進(jìn)行怎樣的處理。選項A是令i=p,此時整個程序中p的值沒有發(fā)生改變,p=0,即如果a[i]<a[p],則令i=0,回到了初始化的狀態(tài),這樣在for語句中造成了死循環(huán),該選項錯誤。選項B是令a[p]=a[i],整個程序在運(yùn)行過程中,p的值依然沒有變化,p=0,即如果a[i]<a[0],則令a[0]=a[i],整個程序運(yùn)行結(jié)束后,a[0]的數(shù)值應(yīng)該為整個數(shù)組的最小值,用return語句返回下標(biāo)0沒有意義。選項C是令p=j,程序在運(yùn)行過程中,j的值和p的值都沒有發(fā)生改變,整個程序沒有意義。選項D是p=i,該語句的含義是如果a[i]<a[p],則令p=i,程序結(jié)束后則有a[p]為數(shù)組中的最小值,將最小值的下標(biāo)返回。

78.B

79.B

80.D本題主要考查if語句的條件表達(dá)式。在本題的四個選項中給出了四個不同的條件表達(dá)式,題目要求找出其中一個意思與其他三個不同的表達(dá)式。

選項A的表達(dá)式k%2的功能是對變量k進(jìn)行取余運(yùn)算,如果運(yùn)算結(jié)果為假,表示變量k能被2整除,如果運(yùn)算結(jié)果為真,表示k不能被2整除。

選項B的表達(dá)式k%2==1的功能是對變量k進(jìn)行取余運(yùn)算,并判斷結(jié)果等于1,如果運(yùn)算結(jié)果為假,表示k%2的運(yùn)算結(jié)果為0,即k能被2整除;如果運(yùn)算結(jié)果為真,表示k%2的運(yùn)算結(jié)果為1,即k不能被2整除。

選項C的表達(dá)式(k%2)!=0的功能是對變量k進(jìn)行取余運(yùn)算,并判斷結(jié)果不等于0,如果運(yùn)算結(jié)果為假,表示k%2的運(yùn)算結(jié)果0,即k能被2整除;如果運(yùn)算結(jié)果為真,表示k%2的運(yùn)算結(jié)果為1,即k不能被2整除。

選項D的表達(dá)式!k%2==1等價于(!k)%2==1,其功能是先對變量k進(jìn)行邏輯非運(yùn)算,然后將運(yùn)算結(jié)果對2進(jìn)行取余運(yùn)算,再判斷其結(jié)果是否等于1。這與前面三個選項的意思完全不同,因此本題的正確答案選D。

81.(1)錯誤:t=x;x=y;

正確:t=*x;。x=y;

(2)錯誤:return(y);

正確:return(t);或returnt;

【解析】該題考查的是指針型變量的使用和如何通過return語句返回函數(shù)值。首先應(yīng)該明確,題目中給出的X是指針型函數(shù),所以數(shù)據(jù)交換時應(yīng)使用“*x”而不是“x”;t是一個中間變量,而且由賦值語句“b=fun(8a,b)”可知,返回值將賦給變量b,而b中應(yīng)存放交換前*X中的值,所以返回的變量應(yīng)為t。而非y。

82.

【解析】題目中要求將所有大于l小于整數(shù)m的非素數(shù)存入xx所指數(shù)組中,因此需要判斷所有大干1小于m的整數(shù)是否為素數(shù)。將所有大干1小于m的非素數(shù)放入數(shù)組xx中,并將非素數(shù)的個數(shù)通過形參k傳遞回主函數(shù)中。

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

一、單選題(20題)1.數(shù)據(jù)庫的故障恢復(fù)一般是由()來執(zhí)行恢復(fù)

A.電腦用戶B.數(shù)據(jù)庫恢復(fù)機(jī)制C.數(shù)據(jù)庫管理員D.系統(tǒng)普通用戶

2.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

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

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

3.以下關(guān)于算法的敘述中錯誤的是()。

A.算法可以用偽代碼、流程圖等多種形式來描述

B.一個正確的算法必須有輸入

C.一個正確的算法必須有輸出

D.用流程圖描述的算法可以用任何一種計算機(jī)高級語言編寫成程序代碼

4.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.0,1,0B.0,1,1C.0,0,1D.0,0,0

5.運(yùn)算符________的優(yōu)先級最高。

A.[]B.+=C.?:D.++

6.

7.線性表是具有n個()的有限序列。

A.字符B.數(shù)據(jù)元素C.數(shù)據(jù)項D.表元素

8.有以下程序:#include<stdio.h>main(){inta=-2,b=2;for(;++a&&--b;)printf(“%d,%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。

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

9.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序運(yùn)行后的輸出結(jié)果是()。

A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy

10.判斷一個循環(huán)隊列cq(最多元素為m)為滿的條件是()。

A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

11.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];

B.intN=10;intx[N];

C.int:x[0.10];

D.intx[];.

12.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

13.設(shè)一棵二叉樹共有50個葉子結(jié)點(終端結(jié)點),則共有___個度為2的結(jié)點。

A.25B.49C.50D.51

14.

15.CPU能夠直接訪問的存儲器是

A.軟盤B.硬盤C.RAMD.CD-ROM

16.有以下程序:

執(zhí)行后輸出結(jié)果是()。

A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday

17.

18.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.11B.43C.57D.53

19.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運(yùn)行后的輸出結(jié)果是()。

A.A2A3BB.2B4DFC.B4CD7D.B2D4F

20.以下關(guān)于指針的說法錯誤的是()。

A.可以向指針中寫入任意數(shù)據(jù)

B.可以向指針?biāo)竷?nèi)存單元中寫入數(shù)據(jù)

C.指針可以指向與其基類型相同的普通變量

D.可以通過加法運(yùn)算,使指針指向下一個內(nèi)存單元

二、2.填空題(20題)21.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

22.若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的的輸出語句()。

23.以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisisNO.”??瞻滋幮枰钊氲膬?nèi)容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES.\n");

case'n':

case'N':Printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnte

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

main()

{inta=1,b=2,c=3,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);

}

25.執(zhí)行下面程序后,輸出結(jié)果是【】。

main()

{chars[12]="verygood!";

printf("%d",strlen(s));

}

26.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

【】(double,double);

main()

{doublex,y;

seanf("%1f%1f",&x,&y);

pfintf("%1f\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

27.函數(shù)count(head)統(tǒng)計鏈表的結(jié)點個數(shù),head為表頭指針,閱讀程序,要求將整個if語句改成while循環(huán)控制結(jié)構(gòu),其形式為【】。

#include<stdio.h>

intcount(NODE*head)

{intn=0;

if(head!=NULL)

do

{n++;

head=head->next;

}while(head!=NULL);

returnn;}

28.下面程序的運(yùn)行結(jié)果是:【】。

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf(“%d%d\n”,i1,i2);

}

29.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。

30.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

31.在樹形結(jié)構(gòu)中,樹根結(jié)點沒有______。

32.自動批處理文件名必須是【】。

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

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

primf("%d,",z<y?x++:y++);

primf("%d,%d",x,y);

}

34.如下語句printf("%c\n",'B'+40);在執(zhí)行后的輸出結(jié)果是【】。

35.______是數(shù)據(jù)庫應(yīng)用的核心。

36.有以下程序:

voidf(int*x,iht*y)

{intt;

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

}

main()

{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p)

{f(p,q);p++;q--;}

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

}

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

37.數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。

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

intn='c';

switch(n++)

{default:printf("error");break;

case'a':

case'A':

case'b':

case'B':printf("good");break;

case'c':case'C':printf("pass");

case'd':case'D':printf("warn");

}

39.有以下語句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>

n1=10

n2=20

40.在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

三、1.選擇題(20題)41.程序段:inti=65536;prinff("%d\n",i);,則輸出結(jié)果是______。

A.65536B.0C.有語法錯誤,無輸出結(jié)果D.-1

42.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

43.下列選項中,不屬于模塊間耦合的是()

A.數(shù)據(jù)耦合B.同構(gòu)耦合C.異構(gòu)耦合D.公用耦合

44.假定a和b為int型變量,則執(zhí)行以下語句后,b的值為______。a=1;b=10;do{b-=a;a++;}while(b--<0);

A.9B.-2C.-1D.8

45.數(shù)字字符0的ASCII值為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

46.以下程序的功能是進(jìn)行位運(yùn)算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是______。

A.43B.73C.70D.40

47.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

48.有以下程序:#inlucde<stdio.h>main()D)233{intn,*P=NULL;*p=&n;printf("inputn:");scanf("%d",&p);printf("outputn:");printf("%d\n",p);}該程序試圖通過指針P為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()。

A.intn,*P=NULL;

B.*P=&n;

C.scanf(“%d",&p)

D.printf("%d\n",p);

49.若有如下程序:voida(char*p,charc){while(*p){if(*p==c)*p=c-'b'+'B';;p++;}}main(){chars[50]="abcdeeffgee",b='e';a(s,b);printf("%s\n",s);}則程序運(yùn)行后的輸出結(jié)果是()。

A.AbcdeeffgeeB.ABCDeeFFGeeC.abcdEEffgEED.ABCDEEFFGEE

50.下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

51.現(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

52.有以下程序#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);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是。

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

53.下列程序中函數(shù)reverse()的功能是將a所指數(shù)組中的內(nèi)容進(jìn)行逆置。#include<stdio.h>voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;)}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,10);for(i=0;i<3;i++)s+=b[i];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。

A.27B.6C.25D.30

54.有如下程序:main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序運(yùn)行后的輸出結(jié)果是______。

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

55.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達(dá)式是______。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

56.某二叉樹共有60個葉子結(jié)點與50個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為()。

A.148B.169C.182D.198

57.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達(dá)式的值為11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->x

58.若有以下的定義和語句:main(){inta[4][3]*p[4],j;for(j=0;j<4;j++)p[j]=a[j];}則能表示數(shù)組元素的表達(dá)式是______。

A.*(p[1])B.a[4][3]C.a[1]D.*(p+4)[1]

59.有以下程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;執(zhí)行該程序段后,k的值是______。A.3B.2C.1D.0

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

A.在C語言程序中預(yù)處理是指完成宏替換和文件包含指定的文件的調(diào)用

B.預(yù)處理指令只能位于C源程序文件的首部

C.預(yù)處理命令可以放在程序中的任何位置

D.預(yù)處理命令結(jié)尾需要加分號

四、選擇題(20題)61.

62.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

63.

64.

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

A.28B.24C.32D.36

66.

67.

有以下程序:

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);

}

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

A.235B.0235C.02356D.2356

68.以下程序執(zhí)行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不確定D.0

69.若運(yùn)行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是()。

A.v0=7,vl=4,v2=7

B.v0=8,vl=4,v2=8

C.v0=11,vl=4,v2=11

D.v0=13,vl=4,v2=12

70.設(shè)有如下函數(shù)定義若執(zhí)行調(diào)用語句:n=fun(3);,則函數(shù)fun總共被調(diào)用的次數(shù)是()。

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

71.

72.下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是A.它們的運(yùn)算對象可以是任何變量和常量

B.它們的運(yùn)算對象可以是char型變量和int型變量,但不能是float型變量

C.它們的運(yùn)算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運(yùn)算對象可以是char型變量、int型變量和float型變量

溫馨提示

  • 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

提交評論