2021-2022年陜西省咸陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第1頁
2021-2022年陜西省咸陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第2頁
2021-2022年陜西省咸陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第3頁
2021-2022年陜西省咸陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第4頁
2021-2022年陜西省咸陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是

A.選擇B.連接C.投影D.并

2.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是A.A.′a′<=c<=′z′c="">=′a′)||(c<=′z′)

B.(′a′>=c)and(′z′>=c)

C.(′a′<=c)and(′z′>=c)

D.(c>=′a′)&&(c<=′z′)

3.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項(xiàng)與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

4.有以下程序:#include<stdio.h>structstu{intnum;charname[l0];intage;};voidfun(structstu*p){printf("%s\n",p->name);}main(){structstux[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}};fun(x+2);}程序運(yùn)行后的輸出結(jié)果是()。A.ZhangB.ZhaoC.WangD.19

5.有3個節(jié)點(diǎn)的二叉樹可能有()種。

A.12B.13C.5D.15

6.若某表最常用的操作是在最后一個結(jié)點(diǎn)之后插入一個結(jié)點(diǎn)或刪除最后一個結(jié)點(diǎn),則采用()存儲方式最節(jié)省運(yùn)算時間。

A.單鏈表B.給出表頭指針的單循環(huán)鏈表C.雙鏈表D.帶頭結(jié)點(diǎn)的雙循環(huán)鏈表

7.

8.以下函數(shù)調(diào)用語句中含有實(shí)參個數(shù)為().func((exp1,exp2),(exp3,exp4,exp5));

A.1個B.2個C.4個D.5個

9.數(shù)據(jù)的邏輯關(guān)系是指數(shù)據(jù)元素的()。

A.關(guān)聯(lián)B.結(jié)構(gòu)C.數(shù)據(jù)項(xiàng)D.存儲方式

10.下列程序段的輸出結(jié)果是()。chara=9,b=020;prihtf("%o\n",~a&b<<1);

A.100000B.8C.40D.77

11.有以下程序

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

12.有以下程序

A.741B.963C.852D.87542l

13.非線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。

A.一對多關(guān)系B.多對多關(guān)系C.多對一關(guān)系D.一對一關(guān)系

14.若有如下形式的函數(shù):intfun(inta[],int*p,intn){…}調(diào)用函數(shù)之前需要對函數(shù)進(jìn)行聲明,則以下選項(xiàng)中錯誤的是()。

A.intfun(int,int,int);

B.intfun(inta[],int*p,intn);

C.intfun(inta[],int*,int);

D.intfun(int[],int*,int);

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

A.由3種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

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

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

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

16.若有定義:“inta,b,c,*p=&c;”,接著執(zhí)行以下選項(xiàng)中的語句,則能正確執(zhí)行的語句是()。

A.scanf(“%d”,a,b,c);

B.scanf(“%d%d%d”,a,b,c);

C.scanf(“%d”,p);

D.scanf(“%d”,&p);

17.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的運(yùn)行結(jié)果是

A.987654321B.4321098765C.5678901234D.987651234

18.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序運(yùn)行后的輸出結(jié)果是()。A.1,2B.3,4C.5,6D.123,456

19.下而程序的輸出結(jié)果是()。

A)32

B)26

C)24

D)4

20.若有定義“inta,b,c;”,想通過語句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分別賦給變量a、b、c,則正確的鍵盤輸入是()。

A.1,2,3<Enter>

B.1,2<tab>3<Enter>

C.1<Enter><tab>2<tab>3

D.1<Enter>2<Enter>3

二、2.填空題(20題)21.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。

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

main()

{charm;

m='B'+32;printf("%c\n",m);

}

23.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fsetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

25.若有程序:

main()

{inti,j;

scanq("i=%d,j=%d",&i,&j);

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

}

要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入【】。

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

#include<string.h>

typeaefstructstudent{

charname[10];

longsno;

floatscore;

{STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(a.name,b.name)>0)d=b;

if(strcmp(C.name,)>0)d=C;

printf("%1d%s\n",d.sno,p->name);

}

27.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于[]。

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

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

29.在樹型結(jié)構(gòu)中,根結(jié)點(diǎn)沒有【】結(jié)點(diǎn),其余每個結(jié)點(diǎn)有且僅有【】個前驅(qū)結(jié)點(diǎn);葉結(jié)點(diǎn)沒有后繼結(jié)點(diǎn),其余每個結(jié)點(diǎn)的【】結(jié)點(diǎn)數(shù)不受限制。

30.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

31.閱讀下列程序,則程序的輸出結(jié)果為【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

32.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。

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

typedefunionstudent

{

charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{

STUa[5];

printf("%d\n",sizeof(A));

}

34.下列程序執(zhí)行后輸出的結(jié)果是【】。

main()

{intarr[10],i,k=0;

for(i=O;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

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

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i;

printf(“%d\n”,s);

}

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

main()

{

inti,a[20],sum,count;

sum=count=【】;

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

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

{

if(a[i]>0)

{count++:

sum+=【】;

}

}

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

}

38.Windows的空口分為兩類,一類是應(yīng)用程序窗口,另一類是【】窗口。

39.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。

#definePI3.14159;printf("PI=%f",PI);

40.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補(bǔ)充家整。

seanf("%d",【】);

printf("%d\n",【】);

三、1.選擇題(20題)41.若執(zhí)行下列程序時從鍵盤上輸入2,則輸出結(jié)果是()。#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<3)printf("%d\n",a);elseprintf("%d\n",va--);}

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

42.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。

A.不確定B.編譯錯誤C.gD.輸出null字符

43.已知各變量的類型說明如下:intk,a,b;unsignedlongw=5;doublex=1.42;則以下不符合C語言語法的表達(dá)式是():

A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

44.若有以下定義的語句:structstudent{intage;intnum;};structstudentstu[3]={{1001,20},{1002,19},{1003,21}};main(){structstudent*p;p=stu;…}則以下不正確的引用是()。

A.(p++)->numB.p++C.(*p).numD.P=&stu.age.

45.在說明語句:int*f();中,標(biāo)識符f代表的是

A.一個用于指向整型數(shù)據(jù)的指針變量

B.一個用于指向一維數(shù)組的行指針

C.一個用于指向函數(shù)的指針變量

D.一個返回值為指針型的函數(shù)名

46.CPU主要由運(yùn)算器與控制器組成,下列說法中正確的是()

A.運(yùn)算器主要負(fù)責(zé)分析指令,并根據(jù)指令要求做相應(yīng)的運(yùn)算

B.運(yùn)算器主要完成對數(shù)據(jù)的運(yùn)算,包括算術(shù)運(yùn)算和邏輯運(yùn)算

C.控制器主要負(fù)責(zé)分析指令,并根據(jù)指令要求做相應(yīng)的運(yùn)算

D.控制器直接控制計(jì)算機(jī)系統(tǒng)的輸入與輸出系統(tǒng)

47.結(jié)構(gòu)化程序設(shè)計(jì)方法的3種基本控制結(jié)構(gòu)中不包括

A.循環(huán)結(jié)構(gòu)B.遞歸結(jié)構(gòu)C.順序結(jié)構(gòu)D.選擇結(jié)構(gòu)

48.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

49.若要說明一個類型名STP,使得定義語句STPs;等價于char*s;,以下選項(xiàng)中正確的是A.typedefSTPchar*s;

B.typedef*charSTP;

C.typedefSTP*char;

D.typedefchar*STP;

50.#define能作簡單的替代,用宏來替代計(jì)算多項(xiàng)式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)

51.利用E-R模型進(jìn)行數(shù)據(jù)庫的概念設(shè)計(jì),可以分成三步:首先設(shè)計(jì)局部E-R模型,然后把各個局部E-R模型綜合成一個全局的模型,最后對全局E-R模型進(jìn)行______,得到最終的E-R模型。

A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化

52.在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換為關(guān)系模式的過程屬于()。

A.需求分析階段B.邏輯設(shè)計(jì)階段C.概念設(shè)計(jì)階段D.物理設(shè)計(jì)階段

53.第

13

設(shè)有程序段

intk=10;

while(k=0)k=k-1;

則下面描述中正確的是A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

54.為了提高軟件模塊的獨(dú)立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

55.若有如下語句:intx=3;do{printf("%d\n",x-=2);}wbile(!(--x));則上面程序段()。

A.輸出的是1B.輸出的是1和-2C.輸出的是3和0D.是死循環(huán)

56.下面說明不正確的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

57.如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意順序

58.有以下程序:main(){inti=0,S=0;do{if(i%2){i++;continue;}i++;s+=i;)while(i<7);printf("%d\n",s);}執(zhí)行后輸出結(jié)果是()。

A.16B.12C.28D.21

59.若要定義a為3×4的二維數(shù)組,正確的定義語句是()

A.floata(3,4);

B.floata[3][4];

C.floata(3)(4);

D.floata[3,4];

60.在嵌套使用if語句時,C語言規(guī)定else總是A.和之前與其具有相同縮進(jìn)位置的if配對

B.和之前與其最近的if配對

C.和之前與其最近的且不帶else的if配對

D.和之前的第一個if配對

四、選擇題(20題)61.若變量已正確定義,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++

62.有三個關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是()。

A.自然連接B.交C.除D.并

63.數(shù)據(jù)庫概念設(shè)計(jì)的過程中,以下各項(xiàng)中不屬于視圖設(shè)計(jì)設(shè)計(jì)次序的是()。

A.自頂向下

B.由整體到個體

C.由內(nèi)向外

D.由底向上

64.(70)需求分析階段的任務(wù)是確定()

A.軟件開發(fā)方法

B.軟件開發(fā)工具

C.軟件開發(fā)費(fèi)用

D.軟件系統(tǒng)功能

65.

66.

67.

68.

設(shè)有下列程序段:

charstr[]="HelloWorld":

char*plr;

ptr=str:

執(zhí)行上面的程序段后,*(ptr+10)的值為()。

A.\0B.0C.不確定的值D.0的地址

69.

70.設(shè)fun函數(shù)的定義形式為

voidfun(charch,floatx){…}

則下列對函數(shù)fun的調(diào)用語句中,正確的是()。A.A.fun("abc",3.0);B.t=fun('D'.16.5);

C.fun('65',2.8);

D.fun(32,32);

71.若有以下程序段,w和k都是整型變量。

w=k;

LB:if(w==0)gotoLE;

w--;

printf("*");

gotoLB;

LE:

M

則不能與上面程序段等價的循環(huán)語句是

A.for(w=k;w!=0;w--)printf("*");

B.w=k;<CR>while(w--!=0)printf("*");w++;

C.w=k;<CR>do{w--;printf("*");}while(w!=0);

D.for(w=k;w;--w)printf("*");

72.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫的劃分原則是()

A.數(shù)據(jù)之間的聯(lián)系方式B.記錄長度C.聯(lián)系的復(fù)雜程度D.文件的大小

73.設(shè)有如下定義:int(*ptr);則以下敘述中正確的是()。

A.ptr是指向一維組數(shù)的指針變量

B.ptr是指向int型數(shù)據(jù)的指針變量

C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)

D.ptr是一個函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針

74.

75.C語言中以只讀方式打開一個文件應(yīng)選擇_______________參數(shù)。

A.“r”B.“w”C.“rb”D.“a”

76.若有定義“floata=25,b,*p=&b;”,則下列對賦值語句“*p=a;”和“p=&a;”的正確解釋為()。

A.兩個語句都是將變量a的值賦予變量P

B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P

C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a

D.兩個語句都是使P指向變量a

77.

78.

79.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()

A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程

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

A.程序就是軟件

B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制

C.軟件既是邏輯實(shí)體,又是物理實(shí)體

D.軟件是程序、數(shù)據(jù)和相關(guān)文檔的集合

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用遞歸算法計(jì)算斐波拉契級數(shù)列中第n項(xiàng)的值。從第一項(xiàng)起,斐波拉契級數(shù)序列為1,1,2,3,5,8,13,21,…例如,若給n輸入8,該項(xiàng)的斐波拉契級數(shù)值為21。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和。號。請編寫函數(shù)fun,其功能是:將字符串尾部的。號全部刪除,前面和中間的*號不動。

參考答案

1.B解析:本題主要考查關(guān)系模型中幾種運(yùn)算的特征。經(jīng)過選擇或投影運(yùn)算得到的新關(guān)系的屬性個數(shù)最多不會超過原關(guān)系中的屬性個數(shù)。經(jīng)過連接運(yùn)算得到的新關(guān)系最多不少于原關(guān)系中屬性的個數(shù)。故選項(xiàng)B正確。

2.D

3.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。

4.Bfun(x+2)表示的是結(jié)構(gòu)體數(shù)組中的第3個元素即{03,"Zhao",l8),而輸出的是name元素,所以答案為B。

5.C

6.D

7.C

8.B

9.A

10.C解析:將變量a按位求反,再與b按位與,最后左移1位。9的二進(jìn)制表示為00001001,020的二進(jìn)制表示為00010000。a按位求反為11110110,再與b按位與結(jié)果為00010000,左移1位結(jié)果為00100000。按八進(jìn)制輸出為040。

11.B解析:在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲,它的存儲形式與整數(shù)的存儲形式類似。C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對字符型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時相當(dāng)于對它們的ASCII碼進(jìn)行算術(shù)運(yùn)算,在本題中,s++相當(dāng)于s=s+1,即讓s指向數(shù)組中的下一個元素。

12.C在for循環(huán)中,當(dāng)y的值為9、6或3時,執(zhí)行輸出語句,輸出表達(dá)式“——y”的值。y先自減1,然后再輸出y的值。

13.B

14.AC語言中,函數(shù)聲明的函數(shù)名、返回值類型和參數(shù)列表必須與函數(shù)定義相同。其中參數(shù)列表中可以省略參數(shù)名。題干中,fun函數(shù)返回整型,3個參數(shù)分別是:整型指針、整型指針、整型。選項(xiàng)A中,第1個參數(shù)應(yīng)該是整型指針類型,第2個參數(shù)也應(yīng)該是指針類型,錯誤;其他選項(xiàng)都正確。故本題答案為A選項(xiàng)。

15.A由順序、選擇(分支)、循環(huán)3種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A選項(xiàng)錯誤。故本題答案為A選項(xiàng)。

16.Cscanf函數(shù)要求為:輸入的變量為地址形式。4個選項(xiàng)中,C選項(xiàng)符合要求。故本題答案為C選項(xiàng)。

17.C解析:函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5.6,7,8,9,01;再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。

18.C此題是考查fprintf和fscanf,其中fprintf是向文件輸出,文件為da2.dat文件,fscanf是向文件輸入,所以根據(jù)程序循環(huán)寫入和寫出.可知答案為C。

19.C本題考查的是聯(lián)合所占的存儲空間。sizeof(t)=sizeof(douhle)*3=8*3=24。聯(lián)合體所占的存儲空間取決于所占空間最大的成員所占的空間。

20.B題干中,格式輸入函數(shù)scanf的格式控制字符串中,第1個%d與第2個%d之間有一個逗號。所以輸入的第1個整數(shù)和第2個整數(shù)之間必須要有一個逗號,選項(xiàng)C、D錯誤;輸入的第2個整數(shù)和第3個整數(shù)之間需要間隔符,可以使用<Tab>鍵、<Enter>鍵、空格符。故本題答案為B選項(xiàng)。

21.continuecontinue解析:continue語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。break語句是終止整個循環(huán)的執(zhí)行,不再進(jìn)行條件判定。

22.BB解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,另外,字符數(shù)據(jù)還可以作為整數(shù)參加運(yùn)算。格式控制參數(shù)中的格式字符用以指定輸出項(xiàng)的數(shù)據(jù)類型和輸出格式,輸出字符與其對應(yīng)的輸出項(xiàng)的類型要一致。本題中,“b”的ASCII碼為98,字符類型m的ASCII碼為98+32=130,所以最后輸出為b。

23.filea.dat"r"filea.dat,'r'解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。

24.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)y能被3整除時輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。

25.i=0j=20i=0,j=20解析:該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應(yīng)要輸入的變量,所以說本題中應(yīng)該原樣輸入i=,j=,后面分別給變量0和20,所以說空格處應(yīng)該填入i=0,j=20。

26.2002Shanxian2002Shanxian解析:本題中第一個if語句將結(jié)構(gòu)體變量a.name和結(jié)構(gòu)體變量b.name中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量c.name和結(jié)構(gòu)體變量d.name較大的那個賦給結(jié)構(gòu)體變量d。通過函數(shù)strcmp比較。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本程序中第一個if語句strcmp(a.name,b.name)>0為真,故將b的值賦給d,第二個if語句strcmp(c.name,d.name)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此d.sno和p->name的值為2002Shangxian。

27.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊(duì)列也是線性表,也町以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。

28.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。運(yùn)算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

29.前驅(qū)一后繼前驅(qū)\r\n一\r\n后繼

30.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。

31.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。

32.參照完整性參照完整性

33.8080解析:本題考查的知識點(diǎn)是共用體數(shù)組變量所占內(nèi)存的長度。數(shù)組a是共用體變量,共用體類型變量所占的內(nèi)存長度為最大成員的長度,即單精度數(shù)組的長度,為4×4=16,因此,數(shù)組a所占的內(nèi)存長度為5×16=80,所以最后輸出的s的值為80。

34.1212解析:本題的第一個for循環(huán)用于給數(shù)組arr賦初值,第二個for循環(huán)用于求和運(yùn)算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。

35.前件前件

36.55解析:此程序中,for循環(huán)語句后面直接跟了一個“;”,表明循環(huán)體為空。輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值。s、i的初值分別為0和1,判斷循環(huán)條件,表達(dá)式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達(dá)式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達(dá)式“3<3”不成立,循環(huán)結(jié)束。

37.0&a[i]a[i]0\r\n&a[i]\r\na[i]解析:本題要求從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個數(shù),井計(jì)算它們的和。程序中首先要對存放正數(shù)個數(shù)的變量count及存放和值的變量sum初始化為0,所以第一空應(yīng)填0。接著要求從終端讀入數(shù)據(jù)到數(shù)組中,可以通過scanf函數(shù)實(shí)現(xiàn),因此第二空應(yīng)填&a[i]。最后通過sum+=a[i];語句累加正數(shù)a[i]的值到sum中,因此第三空應(yīng)填a[i]。

38.文檔文檔

39.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進(jìn)行替換的。

40.k[7]*kk[7]*k解析:scanf()函數(shù)有兩個參數(shù),第—個參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空格處位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應(yīng)該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號分隔開)。而第二個空位于printf()函數(shù)的第二個參數(shù)處,所以應(yīng)該填*K。

41.B解析:本題考查ifelse語句。程序中首先使用函數(shù)scanf()通過鍵盤讀入a的值,并通過第1個if語句,先判斷條件,取a的值2和3比較,然后將a的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出a的值3。

42.A解析:由于s[2][6]表示字符串已超出了數(shù)組s的表示范圍,在C中不會劉數(shù)組越界進(jìn)行檢查,當(dāng)數(shù)組越界時,會得到一個不確定的值。

43.A解析:“%”是求余運(yùn)算符或模運(yùn)算符,“%”兩側(cè)均應(yīng)為整型數(shù)據(jù),選項(xiàng)A)中的x是double型數(shù)據(jù)。

44.D解析:結(jié)構(gòu)體成員的引用可以用“結(jié)構(gòu)體變量名.成員名”或者“結(jié)構(gòu)體變量指針->成員名”兩種方式來引用。注意:結(jié)構(gòu)體類型的變量、數(shù)組和指針變量的定義。

45.D解析:帶回指針值的函數(shù),其一般定義形式為:

類型標(biāo)識符*函數(shù)名(參數(shù)表);

例如;int*f(x,y);

其中,f是函數(shù)名,調(diào)用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運(yùn)算符和()運(yùn)算符,而()優(yōu)先級高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。

46.B

47.B解析:本題考查了程序的基本結(jié)構(gòu)。程序由一些基本結(jié)構(gòu)組成。任何一個大型的程序都由3種基本結(jié)構(gòu)組成,由這些基本結(jié)構(gòu)順序的構(gòu)成了一個結(jié)構(gòu)化的程序。這3種基本結(jié)構(gòu)為:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

48.A解析:while循環(huán)的執(zhí)行過程如下:(1)計(jì)算while后面圓括號中表達(dá)式的值.當(dāng)值為非0時,執(zhí)行步驟(2);當(dāng)值為0時,執(zhí)行步驟(4)。(2)執(zhí)行循環(huán)體一次。(3)轉(zhuǎn)去執(zhí)行步驟(1)。(4)退出循環(huán)。在選項(xiàng)A)中,表達(dá)式(ch=getchar())!='N'表示輸入的字符不等于N,如果這個條件表達(dá)式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個條件表達(dá)式不成立,即輸入的字符等于N,則退出循環(huán).所以選項(xiàng)A)為正確答案。

49.D解析:指針類型的自定義的形式如下:typedef類型說明符*用戶類型名。不難看出只有選項(xiàng)D是正確的定義形式。所以,D選項(xiàng)為所選。

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

51.D解析:在概念設(shè)計(jì)中,按照模塊的劃分畫出各個模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應(yīng)該對全局E-R圖進(jìn)行優(yōu)化,看是否有重復(fù)和不合理的地方。不能只進(jìn)行簡單的合并。

52.BB?!窘馕觥繑?shù)據(jù)庫設(shè)計(jì)階段主要包括需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。其中邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換為關(guān)系模式。

53.C本題中,首先將0賦給k,表達(dá)式變?yōu)?,跳出循環(huán),沒有執(zhí)行循環(huán)體語句。解答本題的關(guān)鍵是掌握while語句。

54.D解析:耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn),是互相關(guān)聯(lián)的。在程序設(shè)計(jì)中,各模塊間的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨(dú)立性。

55.B解析:do-while語句的一般格式為:

do{循環(huán)體語句}while(表達(dá)式);

先執(zhí)行循環(huán)體語句一次,再判斷表達(dá)式的值,若值為真,則繼續(xù)執(zhí)行循環(huán),否則終止循環(huán)。本題中,先執(zhí)行printf('%d\\n',x-=2),值為x=x-2,即為1。然后判斷表達(dá)式的值,!(--x)為真,x=0,繼續(xù)循環(huán)。再次執(zhí)行循環(huán)體語句后,x=-2,此時表達(dá)式!(--x)的值為0,結(jié)束循環(huán)。

56.D解析:C語言中操作一個字符串常量的方法有:①將字符串常量存放在一個字符數(shù)組之中;②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時,根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,將其轉(zhuǎn)換成字符指針。

本題D)項(xiàng)中錯誤的關(guān)鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。

57.B解析:由?!昂筮M(jìn)先出”的特點(diǎn)可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中棧是先進(jìn)后出的,所以不可能是任意順序。所以B是正確的。它執(zhí)行的順序是:e1進(jìn)?!鷈2進(jìn)?!鷈2出?!鷈3進(jìn)棧→e4進(jìn)?!鷈4出棧→e3出?!鷈1出棧,所以只看出棧序列應(yīng)為e2,e4,e3,e1。

58.A解析:在循環(huán)體中有一條if語句,其后面表達(dá)式為i%2,當(dāng)i的值為奇數(shù)時,其值為真,執(zhí)行其后面的語句,i的值加1,重新開始循環(huán),當(dāng)i的值為偶數(shù)時,i%2為假,執(zhí)行“i++;s+=i。在循環(huán)中i為偶數(shù)時的值分別為0、2、4、6,加1后的值分別為1、3、5、7,s中存放的是它們的和,值為16。

59.B

60.C解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合,與書寫格式無關(guān)。所以選項(xiàng)C)為正確答案。

61.A選項(xiàng)A)是非法的表達(dá)式,C語言中沒有“<>”運(yùn)算符。

62.C

63.B\n數(shù)據(jù)庫概念設(shè)計(jì)的過程中,視圖設(shè)計(jì)一般有三種設(shè)計(jì)次序,它們是:

\n自頂向下。這種方法是先從抽象級別高且普遍性強(qiáng)的對象開始逐步細(xì)化、具體化與特殊化。

\n由底向上。這種設(shè)計(jì)方法是先從具體的對象開始,逐步抽象,普遍化與一般化,最后形成一個完整的視圖設(shè)計(jì)。由內(nèi)向外。這種設(shè)計(jì)方法是先從最基本與最明顯的對象著手逐步擴(kuò)充至非基本、不明顯的其他對象。本題答案為B)。

\n

64.D

65.B

66.B

67.C

68.A

\n本題主要考查字符數(shù)組和指針,在c語言中,字符型數(shù)組在存放字符串時會自動在末尾加上\0

溫馨提示

  • 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

提交評論