2021-2022年吉林省四平市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第1頁
2021-2022年吉林省四平市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第2頁
2021-2022年吉林省四平市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第3頁
2021-2022年吉林省四平市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第4頁
2021-2022年吉林省四平市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年吉林省四平市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,按先進后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

2.對一個關(guān)系投影操作以后,新關(guān)系的元組個數(shù)______原來關(guān)系的元組個數(shù)。

A.小于B.小于或等于C.等于D.大于

3.設(shè)有定義:charpE]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

4.若以“a+”方式打開一個已存在的文件,則下列敘述正確的是()。

A.文件打開時,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進行添加或讀操作

B.文件打開時,原有文件內(nèi)容不被刪除,只能進行讀操作

C.文件打開時,原有文件內(nèi)容被刪除,只能進行寫操作

D.以上三種說法都不正確

5.在面向?qū)ο笤O(shè)計中,對象有很多基本特點,其中“從外面看只能看到對象的外部特性,而對象的內(nèi)部對外是不可見的?!边@一性質(zhì)指的是對象的

A.分類性B.標(biāo)識惟一性C.多態(tài)性D.封裝性

6.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯Y(jié)構(gòu)

7.有以下程序:#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序的運行結(jié)果是()。

A.0B.-12C.-20D.10

8.設(shè)有定義“intx[10],*p=x,i;”,若要為數(shù)組x讀入數(shù)據(jù),以下選項正確的是()。

A.for(i=0;i<10;i++)scanf(“%d”,p+i);

B.for(i=0;i<10;i++)scanf(“%d”,*p+i);

C.for(i=0;i<10;i++)scanf(“%d”,*(p+i));

D.for(i=0;i<10;i++)scanf(“%d”,x[i]);

9.

10.若有定義“inta,b;”,通過語句“scanf(“%d;%d,”&a,&b)能把整數(shù)3賦給變量a、5賦給變量b的輸入數(shù)據(jù)是()。

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

11.若有以下定義和語句

chars1[10]="abcd!",*s2="\n123\\";

printf("%d%d\n",strlen(s1),strlen(s2));

則輸出結(jié)果是A.A.55B.105C.107D.58

12.

13.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序經(jīng)運行后形成下圖所示的數(shù)據(jù)結(jié)構(gòu)。則以下可以刪除中間節(jié)點b的正確選項是()。

A.pt=p->next;p->next=p->next->next;free(pt);

B.pt=p->next;p->next=p->next->next->next;free(pt);

C.pt=&b;free(pt);

D.pt=&b;p->next=p->next->next->next;free(pt);

14.C語言中,要求參加運算的數(shù)必須是整數(shù)的運算符是()。

A./B.!C.%D.==

15.

16.對含有16個元素的有序表進行二分查找,關(guān)鍵字比較次數(shù)最多是()

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

17.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

18.有以下程序

#include<stdio.h>

main()

{inta=1,b=0;

if(--a)b++;

elseif(a==0)b+=2;

elseb+=3:

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

}

程序運行后的輸出結(jié)果是A.A.0B.1C.2D.3

19.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ

20.以下敘述中正確的是A.A.C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面

B.C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個語句

C.C程序書寫格式自由,一個語句可以寫在多行上

D.用C語言編寫的程序只能放在一個程序文件中

二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是【】。

main()

{

intx=0210;

printf("%X\n",x);

}

22.關(guān)系表達式x<y<z,用C語言的表達式為【】。

23.fseek函數(shù)的正確調(diào)用形式是【】。

24.以下程序運行時,若從鍵盤輸入:102030<回車>,輸出的結(jié)果是【】。

#include<stdio.h>

main()

{inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);

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

}

25.對數(shù)組中的元素值進行排序。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[]={2,4,15,3,17,5,8,23,9,7,11,13,}i,j,k;

for(k=0;k<12;k++)

for(i=k;i<12;i++)

if(a[i]>【】)

{j=a[i];

a[i]=【】;

【】=j(luò);}

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

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

printf("\n");

}

26.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進行測試。

27.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;

28.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機制稱為______。

29.若有以下程序:

main()

{

inta[4][4]={{l,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},

{-31,32,-33,0}};

inti,j,s=0;

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

{

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

{

if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

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

30.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。

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

#defineMCNA(m)2*m

#defineMCNB(n,m)2*MCRA(n)+m

#definef(x)(x*x)

main()

{inti=2,j=3;

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

}

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

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

p=S;q=p->next;r=q->next;

sum+=q=>next->num;sum+=r->next->next->num;

33.若有以下程序:

intf(intx,inty)

{return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

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

}

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

34.結(jié)構(gòu)化分析方法是面向______進行分析的方法。

35.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當(dāng)字符串是回文時,函數(shù)數(shù)返回字符串:yes!否則函數(shù)返回這符串:no!并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda。請?zhí)羁?/p>

#include<string.h>

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

pl=str;p2=______;

for(i=0;i<=strlen(str)/2;i+*)

if(*p1++!=*p2--){t=1;break;}

if(______)return("yes!");

elsereturn(*no!");

}

main()

{charstr[50];

printf("Input:");scanf("%s",str);

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

}

36.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。

37.以下條件表達式可計算:1+|a|的值,請?zhí)羁?。a>=0?【】:【】

38.以下程序的運行結(jié)果是【】。

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

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

main()

{inta=0;

a+=(a=8);

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

}

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

charb[]="ABCD";

main()

{

charb[30];

strcpy(&b[0],"GH");

strcpy(&b[1],"GH”);

strcpy(&b[2],"GH");

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

}

三、1.選擇題(20題)41.若下列各選項中所有變量已正確定義,函數(shù)fun通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是()。

A.main(){...x=fun(2,10);...}floatfun(inta,intb){...}

B.floatfun(inta,intb){...}main(){...x=fun(i,j);...}

C.floatfun(int,int);main(){...x=fun(2,10);...}floatfun(ihta,intb){...}

D.main(){floatfun(inti,intj);...x=fun(i,j);...}floatfun(inta,intb){...}

42.已定義ch為字符型變量,以下賦值語句中錯誤的是

A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';

43.有以下程序段:intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。

A.55566B.566C.7777D.566777

44.下列語句執(zhí)行后的結(jié)果是______。y=5;p=;x=*p++;

A.x=5,y=5B.x=5,y=6C.x=6,y=5D.x=6,y=6

45.設(shè)語句inta=3;,當(dāng)執(zhí)行了以下語句后,變量a的值是______。a+=a-=a*a;

A.3B.0C.9D.-12

46.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d\n",j);}

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

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

47.軟件需求分析階段的工作,可以分為四個方面:需求獲取、編寫需求規(guī)格說明書、需求評審和()

A.階段性報告B.需求分析C.需求總結(jié)D.都不正確

48.有定義語句:"inta=1,b=2,c=3,x;",則以下選項中各程序段執(zhí)行后,x的值不為3

A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;

B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;

D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;

49.不合法的main函數(shù)命令行參數(shù)表示形式是______。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

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

A.x=y*5=x+z

B.int(15.8%5.

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

D.x=25%5.0

51.在下列選項中,沒有構(gòu)成死循環(huán)的程序段是()。

A.inti=100;for(;;){i=i%10+1;if(i>10)break;}

B.while(1);

C.intk=0;do{++k;}while(k<=10);

D.ints=12;while(s);--s;

52.下列選項中錯誤的說明語句是

A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};

B.chara[]={"toyou\0"};

C.chara[]="toyou\0";

D.chara[]=′toyou\0′;

53.一個C程序中______。

A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前

B.main函數(shù)可以在任何地方出現(xiàn)

C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后

D.main函數(shù)必須出現(xiàn)在固定位置

54.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf(“%d\n”,j);}程序運行后的輸出結(jié)果是

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

55.C語言函數(shù)返回值的類型是由______決定的。

A.return語句中的表達式類型B.調(diào)用函數(shù)的主調(diào)函數(shù)類型C.調(diào)用函數(shù)時臨時D.定義函數(shù)時所指定的函數(shù)類型

56.已知chara;intb;floate;doubled;則表達式a-b+c-d結(jié)果為()型。

A.doubleB.floatC.intD.char

57.按照“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

58.下列敘述中不正確的是()。

A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動變量實質(zhì)上是一個函數(shù)內(nèi)部的局部變量

59.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是______。

A.EOFB.-1C.非零值D.NULL

60.有以下程序main(){char*p[10]={"abc",aabdfg","dedbe","abbd","cd"};printf("%d\n",stxlen(p[4]));}執(zhí)行后輸出結(jié)果是

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

四、選擇題(20題)61.下列敘述中正確的是()。

A.棧是“先進先出”的線性表

B.隊列是“先進后出”的線性表

C.循環(huán)隊列是非線性結(jié)構(gòu)

D.有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)

62.以下數(shù)組定義中錯誤的是()。

A.intx[2][3]=|1,2,3,4,5,6|;

B.intx[][3]=|0|

C.intx[][3]={|1,2,3|,|4,5,6|}

D.intx[2][3]=||1,2|,|3,4|,|5,6||

63.設(shè)有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語句中錯誤的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

64.以下程序段中的變量已正確定義。

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

for(k=1;k<;3;k++);prinff(”*”);該程序段的輸出結(jié)果是()。

A.*B.****C.**D.********

65.

66.以下敘述中正確的是

A.自定義的函數(shù)中一定要有return語句

B.自定義的函數(shù)中不可以有多個return語句

C.自定義的函數(shù)中可以沒有return語句,此時函數(shù)應(yīng)被定義為void類型

D.函數(shù)的return語句一定要帶有表達式

67.

68.下面程序段的運行結(jié)果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

69.有以下函數(shù)定義:

voidfun(intn,doublex){……}

若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用的語句是

A.fun(inty,doublem);B.k=fun(10,12.5);

C.fun(x,n);D.voidfun(n,x);

70.

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

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

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

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

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

72.

73.以下結(jié)構(gòu)體類型說明和變量定義中正確的是()。

A.

B.

C.

D.

74.

75.表達式3.6-5/2+1.2+5%2的值是()。A.3.8B.4.8C.3.3D.4.3

76.有以下程序:

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

A.4321098765B.5678901234C.0987654321D.0987651234

77.下列敘述中,正確的是()。

A.用E—R圖能夠表示實體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系

B.用E—R圖只能表示實體集之間一對一的聯(lián)系

C.用E—R圖只能表示實體集之間一對多的聯(lián)系

D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型

78.

79.冒泡排序的時間復(fù)雜度為

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

80.下列程序的運行結(jié)果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為87653142時,t中的數(shù)為8642。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:利用以下所示的簡單迭代方法求方程cos(x)-x=0的一個實根。

xn+1=COS(xn)

迭代步驟如下:

(1)取x1初始值為0.0;

(2)x0=x1,把?X1的值賦給x0;

(3)x1=cos(xO),求出一個新的x1;

(4)若x0-x1的絕對值小于0.000001,則執(zhí)行步驟

(5),否則執(zhí)行步驟(2);

(5)所求x1就是方程cos(x)-x=0的一個實根,作為函數(shù)值返回。

程序?qū)⑤敵鼋Y(jié)果root=0.739085。

注意:部分源程序給出如下。

請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.B解析:棧是限定在二端進行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)的。注意:隊列組織數(shù)據(jù)的原則是“先進先出”或“后進后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊列組織數(shù)據(jù)的原則。

2.B解析:投影操作是從關(guān)系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復(fù)元組,根據(jù)關(guān)系的性質(zhì),應(yīng)消去這些完全相同的元組。這樣使得新關(guān)系的元組數(shù)小于或等于原來的元組數(shù)。

3.A根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組P中所有元素所占用的字節(jié)數(shù),而不是ch”型數(shù)據(jù)所占字節(jié)數(shù)。

4.A解析:本題考查文件使用方式標(biāo)識符,以“a+”方式打開一個已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時,可以進行追加或讀操作。

5.D解析:從外面看只能看到對象的外部特性,而對象的內(nèi)部,即處理能力的實行和內(nèi)部狀態(tài),指的是對象的封裝性。

6.C

7.C宏定義只是做簡單的替換,本題中SUB(a+b)*c=(a+b)-(a+b)*c=-20。故本題答案為C選項。

8.AC語言中scanf函數(shù)的聲明為“scanf(“<格式化字符串>”,<地址表>);”,可知scanf的第2個參數(shù)是地址。因此,從4個答案中可以判斷,只有選項A是p[i]的地址,其他的均是變量本身。故本題答案為A選項。

9.B

10.C輸入數(shù)據(jù)的格式必須與scanf的格式控制字符串完全匹配。函數(shù)中非格式字符需要原樣輸入,所以輸入時必須在3和5之間輸入“;”。故本題答案為C選項。

11.A

12.A

13.A題干中,a、b、c3個節(jié)點都是node類型,它們都有兩個成員:字符成員id,node類型指針成員next。由于a的next指向b,b的next指向c,因此a、b、c構(gòu)成了鏈表。要想刪除b節(jié)點,只需要將a節(jié)點的next(p->next)指向c(p->next->next),然后將節(jié)點b的存儲空間釋放即可。所以刪除b節(jié)點的語句為“pt=p->next;p->next=p->next->next;free(pt);”。故本題答案為A選項。

14.C

15.D

16.C

17.D解析:本題考查指向字符串指針的運算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。

18.C解析:本題考察運算符和選擇語句,執(zhí)行到if語句時,--a為0,所以不會執(zhí)行后面的語句,但是會執(zhí)行elseif后面的語句,所以執(zhí)行后,b=2,選項C)正確。

19.D

\n所謂二叉樹的前序遍歷是指先訪問根結(jié)點,訪問左子樹,最后訪問右子樹,本題中序為DYBEAFCZX,后序為YDEBFZXCA。

\n

20.C

21.8888解析:C語言規(guī)定,以0開頭的整型常量為八進制。另外,在primf()函數(shù)中,%X表示以十六進制無符號形式輸出一個整數(shù),且十六進制中的ABCDEF為大寫字母。本題的輸出應(yīng)該是八進制210的十六進制形式。將八進制轉(zhuǎn)換為十六進制,可以先將其轉(zhuǎn)換為二進制。因為1位八進制表示3位二進制,4位二進制表示1位十六進制。(210)8=(10001000)2=(88)16,故本題輸出為880

22.(x<y)&&(y<z)(x<y)&&(y<z)解析:x<y<z的意思是y大于x并且y小于z。在C語言中,表達“并且”用邏輯與運算符“&&”。

23.fseek(文件指針位移量起始點)fseek(文件指針,位移量,起始點)解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

fseek(文件指針,位移量,起始點)

“起始點”用0,1或2代替,其中,0代表“文件開始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長度大于64k時不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。

24.1030010300解析:輸入語句使i=10,j=30,k沒有被重新賦值,仍為初值0。

25.a[k]a[k]a[k]

26.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進行測試。

27.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

28.繼承繼承

29.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素;若不是則判斷a[¨剛的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。

30.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應(yīng)用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。

31.1616解析:本題定義了兩個宏MCRA(m)和MCRB(n,m),展開宏MCRB(n,m),得到:MCRB(j,MCRA(i)=2*MCRA(j)+MCRA(i)=2×2×j+2×i=4×3+2×2=12+4=16,因此printf函數(shù)的輸出結(jié)果為16。

32.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點連接成了一個循環(huán)鏈表,即最后一個結(jié)點的指針域指向了頭結(jié)點,整個鏈表形成了一個環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點。

33.99解析:f(3,4)=(4-3)×3=3,f(3,5)=(5-3)×3=6,所以d=f(f(3,4),f(3,5))=f(3,6)=(6-3)×3=9。

34.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

35.str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)t==0或!t或t=='\0'huiwen(str)str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)\r\nt==0或!t或t=='\\0'\r\nhuiwen(str)解析:判斷回文教一般使用兩個指針或下標(biāo)變量分別從檢查串的第1個字符和最后一個字符開始相向移動,并比較兩者內(nèi)容是否相同,直到中間相遇一直相同則是回文數(shù),否則不是。函數(shù)huiwen中開始定義了兩個字符指針p1和p2,并讓p1指向str的開始位置,所以p2應(yīng)該指向str的尾部,即&str[strlen(sir)-1]或?qū)懗蓅tr+strlen(str)-1或者其他等價形式。然后使用一個循環(huán),循環(huán)str的長度的一半次數(shù),比較p1和p2的內(nèi)容,并分別遞增和遞減這兩個指針。若有不同,則讓標(biāo)志t為1,并跳出循環(huán)。所以最后一個if語句應(yīng)該為判斷標(biāo)志t是否為1,即應(yīng)該填t==0或者其他等價形式。在主函數(shù)中,應(yīng)該輸出huiwen()函數(shù)的返回結(jié)果,印最后一空應(yīng)該填huiwen(str)。

36.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。

37.1+a1-a1+a,1-a解析:考查條件運算符的使用。因為題目中求的是1+|a|的值,即1和a的絕對值之和,所以根據(jù)數(shù)學(xué)中求絕對值的規(guī)則;當(dāng)a>=0時,絕對值取本身,當(dāng)a<0時,絕對值取相反數(shù),再結(jié)合條件運算符的計算規(guī)則,可得到本題的答案為a>=0。

38.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標(biāo)號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2:分支,最后a和b的值分別為2和1。

39.1616解析:在程序中首先將8賦值給變量a,然后在進行復(fù)合賦值運算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。

40.GGGHGGGH解析:由于在函數(shù)main中定義了數(shù)組變量b,其將屏蔽全局變量b。對于一維數(shù)組變量,其值為一常數(shù),等于數(shù)組首元素地址。strcpy(&b[0],'GH'),是將字符串,'GH',復(fù)制到數(shù)組b中從首元數(shù)開始的空間中,此是b中的字符串為'GH';strcpy(&b[1],'GH'),是將字符串“GH'復(fù)制到數(shù)組b中從第二個元素開始的空間中,此是b中的字符串為'GH'。執(zhí)行第三次strcpy函數(shù)后,b中的字符串為'GGGH'。

41.A解析:C語言程序從main函數(shù)開始執(zhí)行,當(dāng)程序中定義了多個函數(shù)時,通常情況下是先定義后調(diào)用。若被調(diào)用函數(shù)定義在主調(diào)函數(shù)之后,則必須先聲明后調(diào)用。在選項A)中,先執(zhí)行main函數(shù),并調(diào)用了fun函數(shù),而fun函數(shù)在此調(diào)用之前無定義也無聲明,故無法正常識別調(diào)用,所以錯誤。

42.A解析:字符型變量用來存放字符常量,且只能存放一個字符。賦值反斜杠線“\\”,必須用轉(zhuǎn)義字符實現(xiàn),即ch='\\\\',所以選項A)錯誤;字符型變量可以賦0~255之間的ASCII碼值,整型數(shù)據(jù)和字符型數(shù)據(jù)有時可以通用,所以選項B)正確;可以將NULL賦給一個字符型變量,NULL代表一個空字符,相當(dāng)于0,選項C)正確;'\\xaa'表示的是1~2位16進制數(shù)所代表的字符,所以選項D)正確。

43.B解析:本題scanf()函數(shù)的格式化控制串中,'%2d'表示輸入一個2位的整數(shù):'%f'表示輸入一個浮點數(shù);'%s'表示輸入一個字符串。因此,從鍵盤上輸入'555667777abe'后,前兩位'55'被當(dāng)作2位整數(shù)輸入給j;'566'被當(dāng)作浮點數(shù)輸入給y;跳過空格后,剩下的字符串'7777abc'全部輸入給name。故本題應(yīng)該選擇B。

44.A解析:p=&y使指針p指向y,x=*p++使x=y,P指向下一個數(shù)據(jù)。

45.B

46.B解析:在main函數(shù)中,對f(1)和f(2)的值進行了累加。

f(1)=1

f(2)=f(1)+1=2

最后,j的值為1+2=3

47.BB)【解析】軟件需求分析階段的工作,可以概括為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。需求獲取的目的是確定對目標(biāo)系統(tǒng)的各方面需求。涉及到的主要任務(wù)是建立獲取用戶需求的方法框架,并支持和監(jiān)控需求獲取的過程。

\n需求分析是對獲取的需求進行分析和綜合,最終給出系統(tǒng)的解決方案和目標(biāo)系統(tǒng)的邏輯模型。

\n編寫需求規(guī)格說明書作為需求分析的階段成果,可以為用戶、分析人員和設(shè)計人員之間的交流提供方便,可以直接支持目標(biāo)軟件系統(tǒng)的確認(rèn),又可以作為控制軟件開發(fā)進程的依據(jù)。

\n需求評審是對需求分析階段的工作進行復(fù)審,驗證需求文檔的一致性、可行性、完整性和有效性。

48.C解析:本題考核的知識點是if-else語句的程序分析。

選項A首先判斷if語句條件中表達式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個if-else語句中首先判斷該if語句條件中表達式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。

選項B中首先判斷if語句條件中表達式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。

選項C中,首先選執(zhí)行第一條if,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條語句,由于“1<1”為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。

選項D中,首先選執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3.所以,4個選項中選項c符合題意。

49.C解析:main()函數(shù)可以帶有參數(shù),并且參數(shù)只能有兩個,第一個參數(shù)類型為整型,用來記下命令行的參數(shù)個數(shù);第二個參數(shù)為一個字符型指針數(shù)組,或字符型二級指針變量(指向一個數(shù)組,數(shù)組元素又是一個一級字符指針),其各個元素用來記下從命令行各參數(shù)字符中的首地址。故本題只有C選項不符合要求。

50.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數(shù)據(jù),所以選項B)和D)是錯誤的表達式。在選項A)中賦值表達式的兩邊出現(xiàn)相同的變量x,也是錯誤的。選項C)是一個逗號表達式,所以正確答案為C)。

51.C

52.D解析:通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時直接賦字符串常量。選項B)和C)后面的'\\0'是多余的,在C語言中,系統(tǒng)會自動在字符串的結(jié)尾處加上一個字符'\\0'作為串的結(jié)束標(biāo)記。

53.B解析:本題主要考查main函數(shù)的基本知識。main函數(shù)可以出現(xiàn)在C程序的任何地方。

54.B解析:本題考查的知識點是遞歸函數(shù)。通過分析不難寫出,f()函數(shù)的數(shù)學(xué)表達式為:

f(n)=1n=1;

f(n)=f(n-1)+1n不等于1;

在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調(diào)用f(i)。第一次:i為1,調(diào)用f(1)得到返回值1,并把它加到i中,i的值為1。第二次i為2,調(diào)用f(n),根據(jù)遞歸公式可知“f(2)=f(1)+1”,得到返回值2并把它加到j(luò)中,j的值為3。所以最后輸出的j的值為3。

55.D解析:函數(shù)值的類型應(yīng)當(dāng)是在定義函數(shù)時指定的。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達式類型—致,如果不—致,則以函數(shù)類型為準(zhǔn),即函數(shù)類型決定返回值的類型。

56.A解析:C語言中允許進行不同數(shù)據(jù)類型的混合運算,但在實際運算時,要先將不同類型的數(shù)據(jù)轉(zhuǎn)化成同一類型再進行運算。類型轉(zhuǎn)換的一般規(guī)則是:①運算中將所有char型轉(zhuǎn)換成int型,float型轉(zhuǎn)換成double型;②低級類型服從高級類型,并進行相應(yīng)的轉(zhuǎn)換,數(shù)據(jù)類型由低到高的順序為:*char->int->unsigned->long->float->double;③賦值運算中最終結(jié)果的類型,以賦值運算符左邊變量的類型為準(zhǔn),即賦值運算符右端值的類型向左邊變量的類型看齊,并進行相應(yīng)轉(zhuǎn)換。

57.BB.【解析】棧是一種特殊的線性表,其插入和刪除運算都只在線性表的一端進行,而另一端是封閉的。進行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元索是最后被插入的元素,也是最后被刪除的元素。棧是按先進后出的原則組織數(shù)據(jù)的。

【知識拓展】“?!钡男问饺缡謽尩膹椣?,最后壓入的子彈總是最先被彈出,而最先壓人的子彈最后才被彈出,也就是“先進后出”。

58.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時,編譯系統(tǒng)根據(jù)需要要臨時分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。

59.C

60.A解析:本題中首先定義了一個長度為10的指針數(shù)組,并賦初值,因此執(zhí)行strlen(p[4])后的返回值為字符串“cd”的長度為2。

61.D棧是先進后出的線性表,所以A錯誤;隊列是先進先出的線性表,所以B錯誤;循環(huán)隊列是線性結(jié)構(gòu)的線性表,所以C錯誤。故答案為D選項。

62.DD選項中x[2][3]定義的是一個兩行三列的二維數(shù)組,而在給數(shù)組元素賦值時卻賦成了三行,所以錯誤。

63.C結(jié)構(gòu)體不能通過結(jié)構(gòu)體名字整體賦值,通過結(jié)構(gòu)體名.成員名的方式賦值。所以C選項錯誤。

64.Ac語言約定分號為一條語句的結(jié)束。因此for(i=0;i<4;i++,i++)for(k=1;k<3;k++);是完整的語句,對研nd();沒有任何影響,最后一nff(”·’),執(zhí)行一次。因此答案為A選項。

65.A

66.C本題考查自定義函數(shù)的類型。函數(shù)執(zhí)行過程中通過return語句返回的值的類型稱為該函數(shù)的類型。當(dāng)一個函數(shù)不需要通過return語句返回一個值時,稱為無返回值函數(shù)或無類型函數(shù),此時需要使用保留字void作為類型名。對于類型為非void的函數(shù),函數(shù)體中至少必須帶有一條return語句,并且每條return語句必須帶有一個表達式,當(dāng)執(zhí)行到任一條return語句時,將計算出它的表達式的值,結(jié)束整個函數(shù)的調(diào)用過程,把這個值作為所求的函數(shù)值帶回到調(diào)用位置,參與相應(yīng)的運算。對于類型為void的函數(shù),它不需要返回任何函數(shù)值,所以,在函數(shù)體中既可以使用return語句,也可以不使用,對于使用的每條return語句不允許也不需要帶有表達式,當(dāng)執(zhí)行到任一條return語句時,或執(zhí)行到函數(shù)體最后結(jié)束的位置時,將結(jié)束函數(shù)的調(diào)用過程,返回到調(diào)用位置向下繼續(xù)執(zhí)行。

67.D

68.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。

strcpy的調(diào)用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復(fù)制到目的地址中,這種復(fù)制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復(fù)制到目的地址字符串的后面。

strlen的調(diào)用格式是:strl

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論