2021-2022年吉林省白山市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2021-2022年吉林省白山市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2021-2022年吉林省白山市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2021-2022年吉林省白山市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2021-2022年吉林省白山市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年吉林省白山市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.語句:“printf("%d",(a=)&&(b=-2));”的輸出結果是()。

A.無輸出B.結果是不確定C.-1D.1

2.在軟件設計中不使用的工具是()。

A.系統(tǒng)結構圖B.程序流程圖C.PAD圖D.數(shù)據(jù)流圖(DFD圖)

3.

4.設有定義的語句:“charc1=92,c2=92;”,則以下表達式中的值為零的是()。

A.c1^c2B.c1&c2C.~c2D.c1|c2

5.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”

6.設有定義:intx=2.以下表達式中,值不為6的是()。A.2*x,x+=2B.x++.2*xC.x*=(1+x)D.x*=x+1

7.一個二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為()。

A.0B.4C.8D.6

8.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關于語句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構成無限循環(huán)

9.棧通常采用的兩種存儲結構是A.A.線性存儲結構和鏈表存儲結構

B.散列方式和索引方式

C.鏈表存儲結構和數(shù)組

D.線性存儲結構和非線性存儲結構

10.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

11.

12.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價的循環(huán)語句是()。A.for(w=k;w!=0;w--)printf("*");

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

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

13.有以下程序:#include<stdio.h>main(){unsignedchara=8,C;C=a>>3:printf("%d\n",c);}程序運行后的輸出結果是()。A.32B.16C.1D.0

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

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

15.十進制數(shù)124轉換成二進制數(shù)是()

A.111l010B.1111100C.1011111D.1111011

16.有以下函數(shù)intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函數(shù)的功能是()。A.查找X和y所指字符串中是否有\(zhòng)o

B.統(tǒng)計x和Y所指字符串中最前面連續(xù)相同的字符個數(shù)

C.將Y所指字符串賦給X所指定存儲空間

D.統(tǒng)計X和Y所指字符串中相同的字符個數(shù)

17.有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf(“%d\n”,s);}程序的運行結果是()。

A.10B.30C.0D.64

18.有下列程序:程序執(zhí)行后的輸出結果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

19.設n、m為一棵二叉樹上的兩個結點,在中序遍歷時,n在m之前的條件是_____________。

A.n在m右方B.n是m的祖先C.n在m左方D.n是m子孫

20.

二、2.填空題(20題)21.在對文件進行操作的過程中,若要求文件的位置指針重新指向文件的開頭,應當調(diào)用的函數(shù)是【】函數(shù)。

22.設有定義:FILE*fw;,請將以下打開文件的語句補充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。

fw=fopen("readme.txt",【】);

23.算法的復雜度主要包括空間復雜度和______復雜度。

24.下列程序的輸出結果是______。

#include<stdio.h>

sb(ints[].intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8);

inti,x=0;

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

{x=sb(s,x);

printf(:%d",x);

}

printf("\n");

}

25.下列程序段的輸出結果是【】。

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

}

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

#include<stdio.h>

fun()

{staticinta=0;

a+=2;printf("%d",a);}

main()

{intcc;

for(cc=1;CC<4;CC++)fun();

printf("\n");}

27.下面程序的運行結果是【】。

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

}

main()

{intaa[3]={1,2,3},s;

s=f(&aa[0],3);

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

}

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

#include<stdio.h>

#defineMAX_COUNT4

voidfun()

main()

{intcount;

for(count=1;count<=MAX_COUNT;coun++)fun();

}

voidfun()

{staicinti;

i+=2;

printf(”%d,i);

}

29.下列程序的循環(huán)次數(shù)是______。

x=2;

do

{x=x*x;}

while(!x);

30.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

31.下面程序的運行結果是()。#include<stdio.h>main(){chara[80],*p"AbabCDcd";inti=0,j=0;while(*(p++)!='\0'){if(*p>='a'&&*p<='z'){a[i]=*p;i++;}}a[i]='\0';puts(A);}

32.在面向?qū)ο蟮姆椒ㄖ校琠_____描述的是具有相似屬性與操作的一組對象。

33.算法的復雜度主要包括【】復雜度和空間復雜度。

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

#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';}

35.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

請?zhí)羁?使下面程序段的功能與之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

printf("s=%f\n\n",s);

36.在宏定義#definePI3.14159中,用宏名PI代替一個______。

37.面向?qū)ο蟮哪P椭?,最基本的概念是對象和______。

38.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組bo請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4==0)printf("\n");

printf("%3d",b[i]);

}

}

39.有以下程序:

#include<string.h>

main(intargc,char*argv[])

{inti,len=0;

for(i=1;i<argc;i+=2)len+=strlen(argv[i]);

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

}

經(jīng)編譯連接后生成的可執(zhí)行文件是ex.exe,若運行時輸入以下帶參數(shù)的命令行:

exabcdefgh3k44

執(zhí)行后的輸出結果是【】。

40.沒有chara,b;,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進制是【】。

三、1.選擇題(20題)41.若有以下定義和語句,且0<=I<10,則對數(shù)組元素的錯誤引用是()

inta[]={1,2,3,4,5,6,7,8,9,0};

int*p,I

p=a;

A.*(a+I)B.a[p-a]C.p+ID.*(&a[I])

42.設變量已正確定義,則下列能正確計算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

43.以下有四組用戶標識符,其中合法的一組是()

A.For-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

44.數(shù)據(jù)獨立性是數(shù)據(jù)庫技術的重要特點之一。所謂數(shù)據(jù)獨立性是指()

A.數(shù)據(jù)與程序獨立存放

B.不同的數(shù)據(jù)被存放在不同的文件中

C.不同的數(shù)據(jù)只能被對應的應用程序所使用

D.以上三種說法都不對

45.以下程序的輸出結果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}

A.7B.6C.5D.4

46.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運行后的輸出結果是______。

A.8B.10C.7D.11

47.在以下給出的表達式中,與while(E)中的(E)不等價的表達式是()。

A.(!E==0)B.(E>0‖E<O)C.(E==0)D.(E!=0)

48.假定有以下變量定義,則能使值為3的表達式是______。intk=7,x=12;

A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)

49.______是構成C語言程序的基本單位。

A.函數(shù)B.過程C.子程序D.子例程

50.下面敘述正確的是_______。

A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結構無關

B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.算法的時間復雜度是指執(zhí)行算法程序所需要的時間

51.已知intt=0;while(t=1){…}則以下敘述正確的是()。

A.循環(huán)控制表達式的值為0B.循環(huán)控制表達式的值為1C.循環(huán)控制表達式不合法D.以上說法都不對

52.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()

A.數(shù)據(jù)字典B.詳細設計說明書C.數(shù)據(jù)流圖說明書D.軟件需求規(guī)格說明書

53.下列選項中,值為1的表達式是()。

A.1-'0'B.1-'\0'C.'1'-0D.'\0’'-'0'

54.結構化程序設計的核心和基礎是()。

A.結構化分析方法B.結構化設計方法C.結構化設計理論D.結構化編程方法

55.以下數(shù)據(jù)結構中不屬于線性數(shù)據(jù)結構的是______。

A.隊列B.線性表C.二叉樹D.棧

56.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。

A.*p=&a;sCanf("%1f",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);

57.下列程序是用來判斷數(shù)組中特定元素的位置所在。如果輸入如下整數(shù):876675896101301401980431451777#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,45l,777},k;clrscr();fun(a,10,&k);printf("%d,%d\n",k,a[k]);}則輸出結果為

A.7,431B.6C.980D.6,980

58.以下不正確的定義語句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

59.有以下程序inta=2;intf(int*a){return(*a)++;}main()ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);執(zhí)行后輸出結果是

A.10B.9C.7D.8

60.模塊本身的內(nèi)聚是模塊獨立性的重要性度量因素之—。在7類內(nèi)聚中,具有最強內(nèi)聚的—項是______。

A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚

四、選擇題(20題)61.若程序中有宏定義行:#defineN100則以下敘述中正確的是()。

A.宏定義行中定義了標識符N的值為整數(shù)100

B.在編譯程序?qū)源程序進行預處理時用100替換標識符N

C.對C源程序進行編譯時用100替換標識符N

D.在運行時用100替換標識符N

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

A.30B.10C.0D.64

63.

64.

65.

66.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的字符是

A.大寫字母B.連接符C.小寫字母D.下畫線

67.以下選項中可用做c程序合法實數(shù)的是()。、、

A.3.0e0.2B..1e0C.E9D.9.12E

68.下列關系表達式中,結果為“假”的是()。

A.(3+4)>6

B.(3!=4)>2

C.3<=4

D.

E.3

F.(3<4)=1

69.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程

B.軟件從需求分析、設計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護過程

70.有三個關系R、S和T如下:

其中關系T由關系R和s通過某種操作得到,該操作為()。

A.選擇B.投影C.交D.井

71.

已知有如下結構體:

structsk

{inta;

floatb;

}data,*p;

若有P=&data,則對data的成員a引用正確的是()。

A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)

72.若變量已正確定義為int型,要通過語句給a賦值l、+給b賦值2、給c賦值

3,以下輸入形式中錯誤的是()(注:口代表一個空格符)。

73.設有定義:intx=3;,以下表達式中,值不為l2的是()。

A.x*=x+1B.x++,3*xC.x*=(1+x)D.2*x.x+=6

74.

有如下程序:

#include<stdio.h>

main

{FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abe");

fclose(fp1);

}

若文本文件f1.txt中原有內(nèi)容為:good。則運行以上程序后文件f1.txt中的內(nèi)容為()。

A.goodabcB.abcdC.abcD.abcgood

75.

有以下程序:

#include<stdio.h>

main

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break:

else

i--;

}

i+=11:

a+=i:

}

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

}

程序的輸出結果是()。

A.62B.63C.33D.32

76.

有下列程序:

intfun(intn)

{if(n==1)}return1;

else

return(n+fun(n-1));

}

main

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",x);

)

執(zhí)行程序時,給變量x輸入10,程序的輸出結果是()。

A.55B.54C.65D.45

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

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

78.下列選擇中,不能用做標識符的是()。

A.1234B._1_2C.int_2_D.2_int_

79.開發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱為()。

A.軟件投機B.軟件危機C.軟件工程D.軟件產(chǎn)生

80.下面程序的輸出結果為()。

structst

{intx;

int*y;

}*p;

intdt[4]={10,20,30,40};

structstaa[4]={50,&dt[0],60,&dt[1],

70,&dt[2],80&dt[3]};

main()

{p=aa;

printf("%d\n",++p->x);

printf("%d\n",(++p)->x);

printf("%d\n",++(*p->y));

}

A.10B.50C.51D.60

20606070

20212131

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進行排序。

例如,排序前的數(shù)據(jù)為:1132-5214

則排序后的數(shù)據(jù)為:-52111432

請修改程序中的錯誤,使它能得到正確結果。

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

試題程序:

#include<stdio.h>

#defineM20

voidproc(inta[],intn)

{

inti,j,t,P;

//****found****

for(j=0;j<n-1;j++);

{

p=j;

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

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

p=i;

t=a[p];

a[p]=aEj3;

//****found****

a[p]=t;

}

}

voidmain

{

intarr[M]={11,32,-5,2,14},i,m=5;

printf("排序前的數(shù)據(jù):");

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

printf("%d",arr[i]);

printf("\n");

proc(arr,m);

printf("排序后的順序:");

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

printf("%d",arr[i]);

printf("\n");

}

六、程序設計題(1題)82.某學生的記錄由學號、8門課程成績和平均分組成,學號和8門課程的成績已在主函數(shù)中給出,請編寫函數(shù)fun,其功能是:求出該學生的平均分,并放人記錄的ave成員中。

例如,學生的成績是:85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應為78.875。注意:部分源程序在文件PROGl.C中。

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

參考答案

1.D因為在邏輯表達式中,兩邊的賦值表達式都成立,即值為1,故選擇D選項。

2.D【答案】:D

【知識點】:軟件設計中使用的工具

【解析】:數(shù)據(jù)流圖是結構化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的。PAD圖是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,是在詳細設計階段用到的。系統(tǒng)結構圖是對軟件系統(tǒng)結構的總體設計的圖形顯示,是在概要設計階段用到的。程序流程圖是對程序流程的圖形表示,故選D。

3.C

4.A當值相同時按位異或,則為0,按位或與按位與時仍不變,負數(shù)也為非0。

5.D在C語言中,字符串常量是用雙引號標注的字符序列,因此B選項和C選項不正確。字符序列中可包含一些轉義字符,轉義字符以“\\”開頭。A選項中包含3個前兩個(\\\\)代表一個“\\”字符,后面一個為“””。因為\\”被看作一個“””,所以該字符串缺少一個結束的“””。因此A選項不正確。D選項的兩個“”之間沒有任何字符,代表的是一個空串,是合法的字符串常量,因此D選項正確。B選項的abc應該使用雙引號標注。故本題答案為D選項。

6.A[解析]A)選項中逗號表達式先計算第一表達式2*x,然后計算表達式x+=2的值,即x=x+2即4.整個逗號表達式為第二個表達式的值4.所以選A)。B)選項中首先計算逗號表達式中第一個表達式x++,此時x為3.再執(zhí)行第二個表達式2*x=2*3=6.所以逗號表達式為第二個表達式的值6.C)選項的賦值表達式可以表示為x==x*(1+x)=2*(1+2)=6.D)選項中的表達式可以表示為x=x*(x+1)=2*3=6.

7.A

8.D此題考查的是基本的循環(huán),答案為D。

9.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結構是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結構中的應用。

10.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

11.B

12.C當循環(huán)結束時,w的值應為-1,而其他選項中w的值為0,故選擇c選項。

13.C題中定義了無符號數(shù),c=a>>3;是指右移3位,然后輸出。結果為C。

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

15.B

16.B由題中while(*x==*y*x!=\\n)可知此函數(shù)是統(tǒng)計x和y所指向的字符串中最前面的聯(lián)系相同的字符的個數(shù)。

17.D本題中靜態(tài)局部變量X,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元,在程序整個運行期間都不釋放。在main函數(shù)中,執(zhí)行for循環(huán),第1次循環(huán),變量s的值為2;第2次循環(huán),函數(shù)的返回值為4,所以變量s的值為8;第3次循環(huán),函數(shù)的返回值為8,所以s的值為64。故本題答案為D選項。

18.A程序定義一個二維字符數(shù)組v,使用5個字符串對其初始化。對于表達式“*v”等價于“*(v+0)”,輸出的是數(shù)組v的第1個元素efg;“**(v+3)”等價于“*(*(v+3)+0)”,輸出的是數(shù)組v的第4個元素的第1個字符h;“v[4]”表示數(shù)組v的第5個元素,“v[4]+2”表示輸出從下標2開始的所有字符,即z;“v[2]”表示數(shù)組v的第3個元素,“*(v[2]+4)”表示數(shù)組v的第3個元素的下標為4的字符q;“v[1]+1”表示數(shù)組v的第2個元素從下標1開始的子字符串,即bcd。所以程序輸出:efg,h,z,q,bcd。本題答案為A選項。

19.C

20.C

21.rewind或fseekrewind或fseek解析:本題考查文件的定位。在對文件進行操作的過程中,若要求文件的位置指針回到文件的開頭,可以調(diào)用rewind函數(shù)或fseek函數(shù)來完成。其中,rewind函數(shù)的作用是將位置指針重新返回文件的開頭;而fseek函數(shù)也可以實現(xiàn)文件指針的定位。

22.aa解析:本題考查的是文件的打開方式。要向文本文件的末尾續(xù)寫內(nèi)容,需要使用方式“a”(追加)打開文件。

23.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。

24.86518651解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。

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

26.246246解析:本題考查了for循環(huán)語句的使用,同時靜態(tài)局部變量的存儲和生存其特性也要注意。第一次執(zhí)行fun()函數(shù)時,a=0,所以a+=2=2;第二次執(zhí)行fun()函數(shù)時,a保留著上次制形式的結果2,所以a+=2=4;同理第三次執(zhí)行fun()函數(shù)時,a=6,所以輸出結果為246。

27.66解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學表達式如下:

本題中定義了一個長度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f,由上面的數(shù)學表達式以計算其返回值s=1+2+3=6,所以空格處應該填6。

28.2468(若字符間有空格扣1分)2468(若字符間有空格扣1分)

29.11解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán);do…while語句的特點是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。

30.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。

31.babcdbabcd解析:c語言中\(zhòng)\0表示字符串的結束。程序?qū)指針指向字符串“AbabCDcd”的首地址,循環(huán)開始后,若指針當前不是指向字符串結束標志位,則進入循環(huán)體。循環(huán)中每次檢驗字符串中字母是否在a與z之間,若滿足則將當前值賦于數(shù)組a,最后給數(shù)組添加字符結束標志。此程序可以篩選出字符串中的小寫字母。

32.類類解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實例。

33.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

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

35.k<=nk++k<=n,k++解析:本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句'k++;'\ue009。

36.字符串字符串解析:本題考查字符替換格式:#define標識符字符串。

37.類類

38.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

39.66解析:本題中命令行輸入5個符號串,所以argc=5,argv[0]指向符號串'ex',argv[1]指向符號串'abcd',argv[2]指向符號串'efg',argv[3]指向符號串'h3',argv[4]指向符號串'k44',for循環(huán)的作用是計算strlen(argv[1]),strlen(argv[3])=4+2=6。

40.1000001010000010解析:運算“&”的規(guī)則是只有當兩個相應的二進制位都為1時,該位的結果才為1。要保留第2、8位,只要將其與二進制數(shù)10000010相與。

41.C

42.D解析:要正確計算函數(shù)f=n!,由n!的數(shù)學定義可知n!=n*(n-1)*(n-2)*……*1。在選項A)中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計算f=n!=O,所以選項A)不正確。在選項B)中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計算得到f=(n-1)!,所以選項B)不正確。在選項C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項C)不正確。在選項D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計算f=n!,所以選項D)正確。

43.C

44.D解析:在數(shù)據(jù)庫系統(tǒng)中,通過系統(tǒng)提供的映象功能,使數(shù)據(jù)具有兩方面的獨立性:一是物理獨立性。即由于數(shù)據(jù)的存儲結構與邏輯結構之間由系統(tǒng)提供映象,使得當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改。二是邏輯獨立性。即由于數(shù)據(jù)的局部邏輯結構(它是總體邏輯結構的一個子集,由具體的應用程序所確定,并且根據(jù)具體的需要可以作一定的修改)與總體邏輯結構之間也由系統(tǒng)提供映象,使得當總體邏輯結構改變時,其局部邏輯結構可以不變,從而根據(jù)局部邏輯結構編寫的應用程序也可以不必修改。由此可知,選項A.B與C中的說法都是錯誤的。

45.B解析:注意自增和自減運算符在變量的左右側的不同用法。本題條件表達式m++>5,即5>5不成立,此時m=6,執(zhí)行else后面的語句,輸出6后再m--使得m又等于5了。

46.A解析:本題中定義一個全局變量a和一個局部變量a。局部變量和全局變量的不同在于,局部變量的存儲單元都是在進入這些局部變量所在的函數(shù)體(或復合語句)時生成,退出其所在的函數(shù)體(或復合語句)時消失,而全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域從變量定義的位置開始,到整個源文件結束為止。若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽,在該函數(shù)內(nèi),起作用的將是局部變量,與同名的全局變量不發(fā)生任何關系。在程序中首先定義了變量s并賦值為0,接著在嵌套的復合語句{}中定義了變量a并賦初值為5,接著執(zhí)行語句s+=a+a;在這條語句中a加1,但表達式a++還是原來的值,故s=s+5,s為5,程序執(zhí)行到外層,此時{}內(nèi)定義的變量a不再有效,此時的變量a為{}之前定義的且初值為3,接著執(zhí)行{}后面的語句s+=a++;相當于執(zhí)行語句s=s+(++);即s=5+3,最后值為8,所以最后輸出的s值為8。所以4個選項中A正確。

47.C解析:while(表達式)語句用來實現(xiàn)“當型”循環(huán)結構,當表達式為非0值時,執(zhí)行while循環(huán)體語句。選項A)若E非。即為1,選項B)與選項D)的結果也為1,只有選項C)為0。

48.D解析:選項A,(k%=5)=2,(x%=2)=0;選項B,(k-k%5)=7-2=5,(x%=5)=2:選項C,(k%5)=2,k-2=7-2=5,(x%5)=2;選項D,(x%=7)=5,(k%=5)=2,5-2=3。

49.A解析:C程序是由函數(shù)構成的?!獋€C源程序至少包含—個main函數(shù),也可以包含—個main函數(shù)和若干個其他函數(shù),因此,函數(shù)是C程序的基本單位。

50.C解析:算法的設計可以避開具體的計算機程序設計語言,但算法的實現(xiàn)必須借助程序設計語言中,提供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結構和算法是計算機科學的兩個重要支柱。它們是一個不可分割的整體。算法在運行過程中需輔助存儲空間的大小稱為算法的空間復雜度。算法的有窮性是指一個算法必須在執(zhí)行有限的步驟以后.結束。算法的時間復雜度是指執(zhí)行算法所需要的計算工作量,即算法執(zhí)行過程中所需要的基本運算次數(shù)。

51.B解析:t=1是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應用t==1,注意“=”與“==”的用法。

52.DD)【解析】需求分析的最終結果是生成軟件需要規(guī)格說明書,可以為用戶、分析人員和設計人員之間的交流提供方便。

53.B解析:在C程序中,字符量可參與任何整數(shù)運算。字符參與運算時,首先要將字符轉換為對應的ASCII碼值再參與整數(shù)運算。字符'1'對應的ASCII碼值是49,字符,'0'對應的ASCII碼值是48,字符'\\0'是字符串結束標識符NULL,其對應的ASCII碼值是0。

54.CC?!窘馕觥拷Y構化程序設計的核心和基礎是結構化設計理論,其中包括:結構化分析方法、結構化設計方法和結構化編程方法。

55.C解析:線性表、棧和隊列所表達和處理的數(shù)據(jù)以線性結構為組織形式。棧是一種特殊的線性表,它只能在固定的一端進行插入和刪除操作,又稱后進先出表(LastInFirstOut);隊列是插入在一端進行,刪除在另一端進行的線性表,又稱先進先出表(FirstInFirstOut)。

56.D解析:double*p,a;語句表示定義了一個指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf'('%1f',p)表示用鍵盤輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項D)為正確答案。

57.D解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算。此外,一開始應知道*k的值為數(shù)組中的某一下標值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。

58.B解析:在一維數(shù)組中要注意的是作為下標表達式的常量表達式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。

59.C解析:本題考核的知識點是局部變量和全局變量的區(qū)別。若在函數(shù)中定義與全局變量名字相同局部變量,則全局變量在該函數(shù)中將不起作用。本題中定義了一個全局變量a和局部變量a在主函數(shù)中定義一個整型變量s并賦初值為0,接著定義了一個局部變量a并賦值為5,由于該局部變量的和全局變量a同名,故全局變量在復合語句中將不起作用,然后調(diào)用函數(shù)f(&a)(該函數(shù)的作用是返回存儲變量a的空間中的值,并讓該值加1,分析程序可知返回值為5,并讓a值加1變?yōu)?),并將返回值加到s中.此時s的值為5,然后執(zhí)行該復合語句外的其他語句,同樣調(diào)用函數(shù)f(&a),但傳遞的參數(shù)是全局變量a,故其返回值為2,加到。中后s的值變?yōu)?,故最后輸出的s的值為7,所以,4個選項中選項C符合題意。

60.D解析:內(nèi)聚性是—個模塊內(nèi)部各元素間彼此結合的緊密程度的度量。內(nèi)聚共有7類,它們之間的內(nèi)聚性由弱到強排列順序為:偶然內(nèi)聚、邏輯內(nèi)聚,時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。

61.B解析:宏定義是預處理命令,即在C源程序進行編譯之前,編譯程序?qū)υ闯绦蜻M行編譯預處理時所進行的一種替換操作。所以選項C和\u3000D可以排除。宏定義是用宏名代替一個字符串,也就是作簡單的置換,不做正確性檢查。所以選項A的敘述也不正確,宏替換時100被當作一個字符串來替換宏名的,而不是被看作整數(shù)值100。故本題的正確答案為B。

62.D本題目中靜態(tài)局部變量x,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元,在程序整個運行期間都不釋放。因此第一次循環(huán)s的值為2;第二次循環(huán)中,返回的x的值為4,因此s的值為8;第三次循環(huán),返回的x的值為8,因此s的值為64。

63.C

64.C

65.C

66.B標識符是用來表示變量名、符號常量名、函數(shù)名、數(shù)組名、類型名和文件名的有效字符序列。C語言的標識符可以分為三類:關鍵字、預定義標識符、用戶標識符。

C語言中的標識符命名規(guī)則如下:

(1)C語言中規(guī)定,標識符只能由字母、數(shù)字和下畫線三種字符構成,而且標識符的第一個字符必須是字母或下畫線。

(2)標識符的長度有一定的限制,TC2.0規(guī)定標識符的前8個字符有效。

(3)標識符中大寫字母和小寫字母被認為是不同的字符。

根據(jù)前述的標識符命名規(guī)則第一條,我們不難看出,連接符不是組成標識符的字符。

67.BA選項中e后面的指數(shù)必須為整數(shù),所以錯誤。C語言規(guī)定,E之前必須要有數(shù)字,所以c選項錯誤。E后面必須要有數(shù)字,且必須為整數(shù),所以D選項錯誤。

68.B\n在一個表達式中,括號的優(yōu)先級高,先計算3!=4,為真即是l,1>2為假。

\n

69.A通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。

70.D關系T中包含了關系R與s中的所有元組,所以進行的是并的運算。

71.B

\n本題主要考查結構指針:P=&data,訪問結構體的成員。它可以通過結構變量訪問,即data,可以用等價的指針形式:(*p).a(chǎn)和P->a來訪問結構體變量中的成員。

\n

72.A本題考查的是格式化輸入函數(shù)scanf()基本用法。使用該語句時,要求除格式控制符以外的字符都要原樣輸入,

“,”為非格式符,要原樣輸入。選項A)中沒有輸入非格式符“,”,所.以是不正確的。

73.D本題考查逗號運算符的運算方式,逗號運算符的作用是將若干表達式連接起來,它的優(yōu)先級別在所有運算符中是最低的,結合方向為”自左至右”。

溫馨提示

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

評論

0/150

提交評論