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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

2.若變量c為char類型,能正確判斷出c為小寫字母的表達式是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í)行上述程序段后輸出結果是

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

B.輸出項與格式描述符個數不符,輸出為零值或不定值

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);}程序運行后的輸出結果是()。A.ZhangB.ZhaoC.WangD.19

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

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

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

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

7.

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

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

9.數據的邏輯關系是指數據元素的()。

A.關聯B.結構C.數據項D.存儲方式

10.下列程序段的輸出結果是()。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);}

程序運行后的輸出結果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

12.有以下程序

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

13.非線性結構是數據元素之間存在一種()。

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

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

A.intfun(int,int,int);

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

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

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

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

A.由3種基本結構構成的程序只能解決簡單問題

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

C.C語言是一種結構化程序設計語言

D.結構化程序設計提倡模塊化的設計方法

16.若有定義:“inta,b,c,*p=&c;”,接著執(zhí)行以下選項中的語句,則能正確執(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");}程序的運行結果是

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);}程序運行后的輸出結果是()。A.1,2B.3,4C.5,6D.123,456

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

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ū)別是:______語句只是結束本次循環(huán),然后進行循環(huán)的條件判定。

22.以下程序運行后的輸出結果是【】。

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.以下程序的輸出結果是【】。

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,則應該從鍵盤輸入【】。

26.以下程序的運行結果是【】。

#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.數據結構分為線性結構和非線性結構,帶鏈的隊列屬于[]。

28.下列程序的運行結果是______。

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

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

29.在樹型結構中,根結點沒有【】結點,其余每個結點有且僅有【】個前驅結點;葉結點沒有后繼結點,其余每個結點的【】結點數不受限制。

30.按照邏輯結構分類,結構可以分為線性結構和非線性結構,棧屬于______。

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

#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ī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。

33.下面程序的運行結果是______。

typedefunionstudent

{

charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{

STUa[5];

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

}

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

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.在樹形結構中,樹根結點沒有______。

36.以下程序的輸出結果是【】。

main()

{ints,i;

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

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

}

37.以下程序是從終端讀入數據到數組中,統計其中正數的個數,并計算它們的和。請?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的空口分為兩類,一類是應用程序窗口,另一類是【】窗口。

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

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

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

seanf("%d",【】);

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

三、1.選擇題(20題)41.若執(zhí)行下列程序時從鍵盤上輸入2,則輸出結果是()。#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語言語法的表達式是():

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();中,標識符f代表的是

A.一個用于指向整型數據的指針變量

B.一個用于指向一維數組的行指針

C.一個用于指向函數的指針變量

D.一個返回值為指針型的函數名

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

A.運算器主要負責分析指令,并根據指令要求做相應的運算

B.運算器主要完成對數據的運算,包括算術運算和邏輯運算

C.控制器主要負責分析指令,并根據指令要求做相應的運算

D.控制器直接控制計算機系統的輸入與輸出系統

47.結構化程序設計方法的3種基本控制結構中不包括

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

48.要求通過while循環(huán)不斷讀入字符,當讀入字母N時結束循環(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;,以下選項中正確的是A.typedefSTPchar*s;

B.typedef*charSTP;

C.typedefSTP*char;

D.typedefchar*STP;

50.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數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模型進行數據庫的概念設計,可以分成三步:首先設計局部E-R模型,然后把各個局部E-R模型綜合成一個全局的模型,最后對全局E-R模型進行______,得到最終的E-R模型。

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

52.在數據庫設計中,將E-R圖轉換為關系模式的過程屬于()。

A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段

53.第

13

設有程序段

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.為了提高軟件模塊的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內容耦合D.數據耦合

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.如果進棧序列為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í)行后輸出結果是()。

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

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

A.floata(3,4);

B.floata[3][4];

C.floata(3)(4);

D.floata[3,4];

60.在嵌套使用if語句時,C語言規(guī)定else總是A.和之前與其具有相同縮進位置的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.有三個關系R、S和T如下:

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

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

63.數據庫概念設計的過程中,以下各項中不屬于視圖設計設計次序的是()。

A.自頂向下

B.由整體到個體

C.由內向外

D.由底向上

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

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

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

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

D.軟件系統功能

65.

66.

67.

68.

設有下列程序段:

charstr[]="HelloWorld":

char*plr;

ptr=str:

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

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

69.

70.設fun函數的定義形式為

voidfun(charch,floatx){…}

則下列對函數fun的調用語句中,正確的是()。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.層次型、網狀型和關系型數據庫的劃分原則是()

A.數據之間的聯系方式B.記錄長度C.聯系的復雜程度D.文件的大小

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

A.ptr是指向一維組數的指針變量

B.ptr是指向int型數據的指針變量

C.ptr是指向函數的指針,該函數返回一個int型數據

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

74.

75.C語言中以只讀方式打開一個文件應選擇_______________參數。

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.軟件設計包括軟件的結構、數據接口和過程設計,其中軟件的過程設計是指()

A.模塊間的關系B.系統結構部件轉換成軟件的過程描述C.軟件層次結構D.軟件開發(fā)過程

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

A.程序就是軟件

B.軟件開發(fā)不受計算機系統的限制

C.軟件既是邏輯實體,又是物理實體

D.軟件是程序、數據和相關文檔的集合

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

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

參考答案

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

2.D

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

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

5.C

6.D

7.C

8.B

9.A

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

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

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

13.B

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

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

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

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

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

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

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

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

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

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

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

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

26.2002Shanxian2002Shanxian解析:本題中第一個if語句將結構體變量a.name和結構體變量b.name中較小的那個賦值給結構體變量d,第二個if語句將結構體變量c.name和結構體變量d.name較大的那個賦給結構體變量d。通過函數strcmp比較。strcmp()函數有兩個參數,分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本程序中第一個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.線性結構線性結構解析:與棧類似,隊列也是線性表,也町以采用鏈式存儲結構。

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

29.前驅一后繼前驅\r\n一\r\n后繼

30.線性結構線性結構解析:數據的邏輯結構是指數據元素之間的邏輯關系,分為線性結構和非線性結構。常見的線性結構有線性表、棧和隊列等,常見的非線性結構有樹、二叉樹等。

31.30x30x解析:本題的參數傳遞屬于值傳遞,所以函數內不能改變調用函數中的數據。

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

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

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

35.前件前件

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

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

38.文檔文檔

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

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

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

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

43.A解析:“%”是求余運算符或模運算符,“%”兩側均應為整型數據,選項A)中的x是double型數據。

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

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

類型標識符*函數名(參數表);

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

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

46.B

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

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

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

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

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

52.BB?!窘馕觥繑祿煸O計階段主要包括需求分析、概念設計、邏輯設計和物理設計。其中邏輯設計的主要工作是將E-R圖轉換為關系模式。

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

54.D解析:耦合性與內聚性是模塊獨立性的兩個定性標準,是互相關聯的。在程序設計中,各模塊間的內聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內聚、低耦合,有利于提高模塊的獨立性。

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

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

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

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

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

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

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

59.B

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

61.A選項A)是非法的表達式,C語言中沒有“<>”運算符。

62.C

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

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

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

\n

64.D

65.B

66.B

67.C

68.A

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

溫馨提示

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

評論

0/150

提交評論