2021年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2021年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2021年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2021年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2021年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________一、單選題(20題)1.

2.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

3.設(shè)以下變量均為int類型,則值不等于7的表達式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+l,x=y,x+1)

4.以下敘述中正確的是A.局部變量說明為static存儲數(shù),其生存期將得到延長

B.全局變量說明為static存儲類,其作用域?qū)⒈粩U大

C.任何存儲類的變量在未賦初值時,其值都是不確定的

D.形參可以使用的存儲類說明符與局部變量完全相同

5.二叉樹中第5層上的結(jié)點個數(shù)最多為________

A.8B.15C.16D.32

6.有以下程序

#defineN15

fun(inta[],intn,intm)

{inti,j;

for(i=m;i>=n;i--)

a[i+1]=a[i];

}

main()

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,3,7);

for(i=3;i<8;i++)

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

}

程序的運行結(jié)果是A.A.45678

B.44567

C.45567

D.45677

7.以下不能定義為用戶標識符的是()。

A.scanfB.VoidC.3comD.int

8.直接選擇排序的時間復雜度為()。(n為元素個數(shù))

A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)

9.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環(huán),不能確定次數(shù)

10.下列敘述中錯誤的是()。

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒有

11.以下選項中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L

12.采用鄰接表存儲的圖的廣度優(yōu)先遍歷算法類似于二叉樹的()。A.A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷

13.以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}

A.19B.17C.15D.12

14.若有定義和語句int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);則輸出結(jié)果是()

A.10,10B.10,20C.20,10D.20,20

15.

16.設(shè)inta=12,則執(zhí)行完語句a+=a-=a*a后,a的值是()。

A.552B.264C.144D.-264

17.若有定義:typedefint*INTEGER;INTEGERp,*q;則以下敘述正確的是()。

A.q是基類型為int的指針變量

B.p是int型變量

C.p是基類型為int的指針變量

D.程序中可用INTEGER代替類型名int

18.

19.有以下定義和語句:structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。

A.pw->year=1980;

B.w.year=1980;

C.w.s.year=1980;

D.*pw.year=1980;

20.已知數(shù)據(jù)表A中每個元素距其最終位置不遠,為節(jié)省時間,應該采用的算法是()

A.直接選擇排序B.堆排序C.快速排序D.直接插入排序

二、2.填空題(20題)21.執(zhí)行下面程序段后,k的值是【】。

r=1;n=203;k=1

do}k*=n%10*r;n/=10;r++;}while(n);

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

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

#include<stdio.h>

main()

{inta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

elsec++;

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

}

24.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。

25.軟件開發(fā)過程中所使用的資源一般包括:【】、軟件資源和硬件資源。

26.語句printf("%f\n",13.0*(1/5));的輸出結(jié)果為【】。

27.下面程序的輸出是【】

main()

{enumem{eml=3,em2=1,em3};

char*aa[]={"AA',"BB","CC","DD"}

printf("%s%s%\n",aa[em1],aa[em2],aa[em3]);

}

28.在進行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。

29.設(shè)inta=5,b=6,表達式(++a==b--)?++a:--b的值是【】。

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

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

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

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

}

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

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

}

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

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

elsei--;}

i+=11;

a+=i;

}

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

}

33.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

34.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

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

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

36.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test,t","rb");

fseek(myf,0,SEEK_END);f1=ftell(myf);

fclose(myf);

printf("%1d\n",f1);

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

main()

{inta=3,b=4,c=5,t=99;

i[(b<a&&a<C)t=a;a=c;c=t;

if(a<c&&b<C)t=b;b=a;a=t;

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

}

38.需求分析的最終結(jié)果是產(chǎn)生【】。

39.已知bead指向一個帶頭結(jié)點的單向鏈表,鏈表中每個結(jié)點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有連接點數(shù)據(jù)域的和值作為函數(shù)值返回。請在橫線處填入正確內(nèi)容。

{intdata;structlink*next;}

main()

{structlink*head;

sam(______);

{stmctlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

40.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序運行時,如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。

三、1.選擇題(20題)41.在面向?qū)ο蟮姆椒ㄖ校?)描述的是具有相似屬性與操作的一組對象。

A.屬性B.事件C.方法D.類

42.執(zhí)行以下程序后,y的值是()main(){inta[]={2,4,6,8,10};inty=1,x,*p;p=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf("%d\n",y);}

A.17B.18C.19D.20

43.設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL

44.有以下程序:main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是()。

A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說明符不足,編譯出錯D.程序運行時產(chǎn)生出錯信息

45.下列敘述中,錯誤的是()。

A.在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量

B.在main()函數(shù)體內(nèi)定義的變量是全局變量

C.形參是局部變量,函數(shù)調(diào)用完成即失去意義

D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內(nèi)不起作用

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

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

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

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

47.以下程序段的輸出結(jié)果是______。main(){chars1[10],s2[10],s3[10];scanf("%s",s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);}輸入數(shù)據(jù)如下:(此處<CR>代表回車符)aaa<CR>bbb<CR>

A.aaabbbB.aaabbbC.aaa\0bbb\0D.aaabbb

48.對于n個結(jié)點的單向鏈表(無表頭結(jié)點),需要指針單元的個數(shù)至少為______。

A.n-1B.nC.n+1D.2n

49.以下不能正確定義二維數(shù)組的選項是

A.inta[2][2]={{1},{2)};

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

C.inta[2][2]={{1},2,3};

D.inta[2][]={{1,2},{3,4)};

50.若已定義x和y為double類型,則表達式“x=1,y=x+3/2”的值是()。

A.1B.2C.2D.2.5

51.設(shè)x、y、t均為int型變量,則執(zhí)行語句x=y=3;t=++x||++y;后,y的值為______。

A.不定值B.4C.3D.1

52.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關(guān)文檔的完整集合

53.有以下程序

#include<stdio.h>

intfun(chars[])

{intn=0;

while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;}

retum(n);

}

main()

{chars[10]={'6','1','*','4','*','9','*','0','*'};

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

}

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

A.9B.61490C.61D.5

54.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運行后的輸出結(jié)果是______。

A.22B.76C.72D.62

55.下列關(guān)于單目運算符++、――的敘述中正確的是______。

A.它們的運算對象可以是任何變量和常量

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

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

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

56.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r,分別指向此鏈表中的3個連續(xù)結(jié)點。Structnode{intdata;Structnode*hext;}*p,*q,

*r;

現(xiàn)要將Q所指結(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),以下不能完成指定操作的語句是

A.p->next=q->next;

B.p->next=p->next->next;

C.p->next=r;

D.p=q->next;

57.下列選項中均屬于C語言合法的標識符是()。

A.Int#subbreak

B._3abFORLong

C.3aprintfa_b

D.WORDautoinclude

58.下面程序段的運行結(jié)果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));

A.67B.0C.字符'C'的地址D.字符'C'

59.有以下程序main(){inti;for(i=0;<3;i++)switch(i){csse1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}執(zhí)行后輸出結(jié)果是

A.11122B.12C.12020D.120

60.若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態(tài)存儲單元int*pp=______malloc(sizeof(int));則應填入______。

A.intB.int*C.(*int)D.(int*)

四、選擇題(20題)61.設(shè)有定義:intx=3;,以下表達式中,值不為l2的是()。

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

62.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序運行后的輸出結(jié)果是()。A.6B.10C.11D.15

63.以下選項中敘述錯誤的是()。

A.C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值

B.在同一函數(shù)中,各復合語句內(nèi)可以定義變量,其作用域僅限本復合語句內(nèi)

C.C程序函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值

D.C程序函數(shù)的性能不可以說明為static型變量

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

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

65.

有以下程序段

intj;floaty;charname[50]:

scanf("%2d%f%s",&i,&.y,name):

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。

A.55566.0B.566.0C.7777.0D.566777.0

66.下列語句組中,正確的是()。

A.char*s;s="Olympic";

B.charsE73;s="Olympic";

C.char*S;s={¨Olympic"};

D.charsET3;s={"Olympic"};

67.

68.

69.下列選項中,能正確定義數(shù)組的語句是()。

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

71.設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

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

main()

{charst[20]="hell0\O\t\\\”;

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

}

A.99

B.520

C.1320

D.2020

73.

74.下列敘述中正確的是()。A.A.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句B.cotinue語句的作用是結(jié)束整個循環(huán)的執(zhí)行

C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時,只能使用got0語句

75.在執(zhí)行完下列的c語句段之后,則B的值是()。chara=A;intb;B=((34&&56)&&(a<b));A.0B.1C.TRUED.FALSE

76.若變量已正確定義并賦值,以下符合C++語言語法的表達式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

77.設(shè)intx=7,則~x的值是()。

A.-8B.7C.-1D.1

78.設(shè)變量已正確定義并賦值,以下正確的表達式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

79.以下程序的輸出結(jié)果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}

A.33B.22C.26D.25

80.

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的n個元素按從大到小的順序進行排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.編程將文件read.txt中的字符讀出顯示到屏幕上。

參考答案

1.A

2.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應注意下列兩點:①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大??;當初值的個數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

3.C

4.A解析:全局變量說明為static存儲類,其生命周期將得到延長,但作用域不能被擴大;static存儲類變量在未賦初值時,是有默認值的,形參中的存儲類說明符與局部變量完全相同。

5.C

6.B題目中的程序包括主程序main和fun函數(shù)。主程序中定義了一個數(shù)組a,并賦給了初值。通過調(diào)用fun函數(shù),對數(shù)組a中的值進行更改操作,最后要求的結(jié)果是輸出數(shù)組a中a[3]~a[7]的值。解決本題的關(guān)鍵在于清楚地理解fun函數(shù)的功能。fun函數(shù)有3個形參,包括1個整型數(shù)組a[],2個整型變量n和m。fun函數(shù)的功能是將數(shù)組a[i+1]的值等于a[i]的值,i的初始值大小為m,依次減1,直到數(shù)值等于n。主函數(shù)調(diào)用fun函數(shù)時,輸入的實參為(a,3,7),即fun函數(shù)要將數(shù)組a[i+1]的值等于a[i]的值,i的取值范圍從7到3,如a[8]=a[7]。fun函數(shù)執(zhí)行完畢,數(shù)組a中的值變?yōu)?,2,3,4,4,5,6,7,9,10。輸出a[3]~a[7]的值為4,4,5,6,7。

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

8.D

9.D解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當break出現(xiàn)在switch語句體內(nèi)時,其作用只是跳出該switch語句體。當break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)體.而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號內(nèi)表達式的值為真,執(zhí)行循環(huán)體內(nèi)的if語句,判斷if后面括號內(nèi)表達式的值為真,執(zhí)行“continue;”語句.因continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語句也仍然成立,因此循環(huán)將無止境地進行下去。所以,4個選項中D為所選。

10.BB?!窘馕觥拷M合框和列表框都沒有selected屬性。

11.D在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。整型常量和實型常量又稱數(shù)值型常量?;菊统A恐荒苡脭?shù)字表示,不帶小數(shù)點,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個字母l(L的小寫)或L;實型常量必須用帶小數(shù)點的數(shù)表示,例如3.14159、-2.71828、0.0等;選項A中字母o不符合要求,選頂B中超出八進制的范圍,選項C中e后面的不為整數(shù),因此選頂D是正確的。

12.D

13.D解析:C語言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:

#define宏名(形參表)字符串

本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。

14.D

15.B

16.D

17.C題干中使用typedef定義新類型名INTEGER,它代表int*類型。使用INTEGER定義p,相當于int*p。使用INTEGER定義*q,相當于int**q。所以p是基類型為int的指針變量,q是基類型為int*的指針變量,選項A、B、D錯誤。故本題答案為C選項。

18.B

19.C題目中定義了一個結(jié)構(gòu)體,結(jié)構(gòu)體中成員又是一個結(jié)構(gòu)體,w為結(jié)構(gòu)體workers的變量。如果給內(nèi)層結(jié)構(gòu)體成員賦值,先要得到內(nèi)層結(jié)構(gòu)體變量,即“w.s”。若要給year賦值,表示為“w.s.year”即可。故本題答案為C選項。

20.D

21.00解析:本題考查的是do…while循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20;所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4。所以k的值為0。

22.參照完整性參照完整性

23.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個程序中a、b、c的值沒做任何改變。

24.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機制和區(qū)別。

25.人員資源人員資源

26.00解析:/表示整除,1/5為0,0乘以任何數(shù)都得零,但是與浮點型相乘,要轉(zhuǎn)化為浮點型,所以結(jié)果為0.000000。注意:在一個運算符的兩邊如果一個是字符型,一個是整型,則把字符型轉(zhuǎn)換為整型之后再進行運算。

27.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上—個元素存在并有明確值的情況下,這個牧舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=cm2+1=1+1=2,進而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應當為'DDBBCC'。

28.驅(qū)動模塊驅(qū)動模塊解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調(diào)用或驅(qū)動,同時被測試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動模塊,后者稱為承接模塊。其中驅(qū)動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測模塊,調(diào)用其他模塊。

29.77解析:此表達式為三目運算符,++a的值為6,b--的值為6,則整個表達式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。

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

31.a=14a=14解析:逗號表達式的值是以逗號分隔的最后一個表達式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結(jié)果是a=14。

32.3232解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

33.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。

34.調(diào)試調(diào)試

35.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關(guān)系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。

36.fopen

37.45994599解析:本題是一個陷阱題,以書寫格式來考查考生對if語句的理解.if語句只對緊跟其后的一條語句或語句塊產(chǎn)生作用。因此,題目中兩條if語句只有t=a;和t=b是if的子句。第1條if語句中b<a為假,所以跳過語句t=a;,執(zhí)行a=c;c=t;后,a=5、b=4、c=99。第2條if語句的判斷條件a<c&&b<c為真,所以后面三條語句都被執(zhí)行,這三條語句構(gòu)成一次a和b的內(nèi)容交換。所以最后輸出的結(jié)果是:4599。

38.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性和可追蹤性等。

39.

40.BB解析:因為c是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術(shù)運算的時候是用其相應的ASCII碼參與運算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應的字符,所以是B。

41.D解析:類(calss)描述的是具有相似屬性與操作的一組對象,而一個具體對象則是其對應類的一個實例。

42.C

43.B(27)B)解析:函數(shù)feof的功能是:測試fp所指的文件的位置是否已達到文件尾,如果達到文件尾,則函數(shù)返回非0值,否則返回0,表示文件尚未結(jié)束。

44.B解析:因為整個逗號表達式的值為逗號表達式最后一個子表達式的值,所以本題輸出的是a2的值'm'。故應該選擇B。

45.B解析:本題考查函數(shù)調(diào)用時變量的作用域。形參是局部變量,函數(shù)調(diào)用完就失去意義了,所以在同一個C程序文件中,不同的函數(shù)體中可以使用名字相同的局部變量。注意:在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為:從定義變量的位置開始到本源文件結(jié)束.

46.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。

47.B解析:scanf是標準輸入函數(shù),在輸入字符串a(chǎn)aa時,實際的內(nèi)容為“aaa\\0”,“\\0”是由系統(tǒng)自動加入的:gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動以“/0”代替換行符。

48.C解析:在n個結(jié)點的單向鏈表(無表頭結(jié)點)中,每個結(jié)點都有一個指針單元(即指針域),加上頭指針,至少需要n+1個指針單元。

49.D解析:本題考核的知識點是二維數(shù)組的定義和初始化。在定義中如果對所有元素賦初值,其第1維的長度可以省略,故選項B正確;二維數(shù)組初始化也可以只對每行或前若干個行的前若干個元素賦初值,故選項A和選項C正確;在二維數(shù)組定義時不能省略第二維的長度,故選項D錯誤。所以,4個選項中選項D符合題意。

50.C解析:在表達式中3/2是一個整型表達式,它的運算結(jié)果應該為整型,值為1。當變量x與其相加時轉(zhuǎn)換為雙精度實型即y=1.000000+1.000000=2.000000。所以,4個選項中選項C符合題意。

51.C解析:++高于=和||,=的優(yōu)先級最低。而||為自左向右的結(jié)合性,因此先計算表達式++x的值,x的初值為3,3+1=4,4為非零值,不必再計算||右側(cè)表達式的值,即可得到整個邏輯表達式的值1,++y沒有做運算,仍為原值3,所以,選項C正確。

52.D軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設(shè)計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護和使用有關(guān)的圖文資料。因此本題的正確答案是D。

53.C解析:在fin函數(shù)中,while循環(huán)的功能是:逐個取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將其作為個位數(shù)字保存到變量n中,n的原數(shù)據(jù)的各個數(shù)位將相應左移一個十進制位。當指針s指向數(shù)組的第3位時,循環(huán)條件不成立,循環(huán)結(jié)束,返回n的值,輸出n的值為61。

54.C題目中需要求出程序的輸出值i,j,其中i的值由sizeof決定,j的值由strlen函數(shù)決定。

sizeof是C語言的一種運算符,以字節(jié)的形式給出操作數(shù)的存儲空間的大小。sizeof的操作對象可以是具體的數(shù)據(jù)類型,也可以是變量。題目中的操作數(shù)為數(shù)組名,利用sizeof可計算出數(shù)組所占用內(nèi)存的字節(jié)數(shù),題目中數(shù)組類型為char,大小為7,故該數(shù)組占用的內(nèi)存數(shù)為7。

strlen函數(shù)則是計算一段字符串的長度,可以從整個字符串的頭部開始計算,也可以從字符串的中間開始計算,當碰到第一個字符串結(jié)束符“\\0”,則停止計算,返回當前的計算值。題目中在前兩個字符之后就出現(xiàn)了結(jié)束符“\\0”,故strlen函數(shù)的值為2。

55.D解析:本題考查++與--運算符的問題。自增運算符++與自減運算符--的運算對象只能是變量,不能是表達式或常量,變量的數(shù)據(jù)類型可以是int、char、float和double型,其結(jié)果是將變量的值加1或減1。

56.D解析:要刪除鏈表中間的某個結(jié)點,只需要使它的前一個結(jié)點的next指針指向它的后一個結(jié)點-不過,嚴格來講還需要使用free()函數(shù)釋放掉該結(jié)點在內(nèi)存中所占的空間。本題要刪除的是q所指結(jié)點(以下簡稱q結(jié)點),只需使p結(jié)點的next指針指向r結(jié)點即可。選項A中,因為Q結(jié)點的next指向r結(jié)點,所以執(zhí)行p->next=q->next;語句后p結(jié)點的next就指向了r結(jié)點,故選項A能完成刪除。選項B中,p->next->next等價于q->next,因此也能完成刪除。選項C直接讓p->next指向r結(jié)點,當然可以刪除。選項D使指針p指向q->next(即r結(jié)點),這樣做不會影響到內(nèi)存中的鏈表,所以應該選擇D。

57.B解析:選項A中#sub含有非法字符‘#’、break屬于C語言關(guān)鍵字都不是合法標識符;選項C中3a以數(shù)字開頭不是合法標識符;選項D中的auto是C語言關(guān)鍵字不屬于合法標識符;故應該選擇B。

58.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應該是該字符串中的首地址,p+3指向的是字符串結(jié)束標志'\\0'的地址,因而。(p+3)的值為0。

59.A解析:for循環(huán)執(zhí)行了3次,第一次時i的值為0,執(zhí)行其后的switch語句,沒有匹配的case,執(zhí)行default語句后的printf語句,輸出為0;第二次循環(huán)時i的值為1,執(zhí)行其后的switch語句,與第一個case分支匹配,執(zhí)行其后的printf語句,輸出1,由于沒有遇到break語句,所以一直向下執(zhí)行,又輸出了兩個1,第三次循環(huán)時i值為2,執(zhí)行其后的switch語句,同理輸出兩個2。

60.D解析:不論p是指向什么類型的指針變量,都可以通過強制類型轉(zhuǎn)換的方法使之類型一致,強制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)。

61.D本題考查逗號運算符的運算方式,逗號運算符的作用是將若干表達式連接起來,它的優(yōu)先級別在所有運算符中是最低的,結(jié)合方向為”自左至右”。A)選項和c)選項的結(jié)果是一樣的,可展開為:x=x*(x+1)=3*4=12;B)選項中先執(zhí)行x++,因為++運算符有自加功能,逗號之前執(zhí)行后x的值為4,逗號后的值就是整個表達式的值,即12;D)選項逗號之前并未給x賦值,所以表達式的值就是x+=6的值,即9。因此,本題答案為D)。

62.C本題考查數(shù)組的使用。本題定義了兩個數(shù)組,注意數(shù)組的下標是從0開始的,進行第1次for循環(huán):當i=0時,b[0]為數(shù)組b中第l個元素,結(jié)果為0,那么a[0]也是數(shù)組a中第l個元素,結(jié)果為1,所以S的值為1。第2次循環(huán):i此時自加為l,b[1]為數(shù)組的第2個元素,值為2,所以可求出a[2](數(shù)組中的第3個元素)的值為3,s=s+3,所以S的值為4。進入第3次for循環(huán),依此類推,第3次for循環(huán)結(jié)束時s的值為6。第4次for循環(huán),s的值變?yōu)閘0。第5次for循環(huán)時,此時i的值為4,s的值變?yōu)閘l,i=5不符合題意,所以跳出循環(huán),輸出結(jié)果,所以本題答案為C。

63.A靜態(tài)變量不是每調(diào)用一次就賦一次初值,而是將需要定義許多相同的具有相同屬性的值時,使用靜態(tài)變量來節(jié)省空間,所以A選項錯誤。

64.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。

65.B

\n變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到浮點型變量Y中。

\n

66.A給字符串數(shù)組賦值時,要先定義數(shù)組長度,然后再賦值??梢灾唤o部分元素賦初值,當中值的個數(shù)少于元素個數(shù)時,只給前面部分元素賦值。數(shù)組的下標是從0開始的,所以s[7]代表從s[0]到s[6]七個元素。其格式可

溫馨提示

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

評論

0/150

提交評論