2021年廣東省東莞市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第1頁
2021年廣東省東莞市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第2頁
2021年廣東省東莞市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第3頁
2021年廣東省東莞市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第4頁
2021年廣東省東莞市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年廣東省東莞市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.以下敘述中錯(cuò)誤的是()。

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型

B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針

C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

3.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

4.為了使模塊盡可能獨(dú)立,要求()。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)

5.

有以下程序

#include<stdio.h>

main

{inta=1,b=2,c=3,x;

x=(a^b)&C;printf("%d",x);

}

程序的運(yùn)行結(jié)果是()。

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

6.

7.在下列幾種排序方法中,空間復(fù)雜度最高的是()

A.歸并排序B.快速排序C.插入排序D.選擇排序

8.若有以下定義,則能使值為3的表達(dá)式是intk=7,x=12;

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

9.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是()。

A.文件B.數(shù)據(jù)庫C.字段D.記錄

10.鏈表不具有的特點(diǎn)是()。

A.插入、刪除不需要移動(dòng)元素B.可隨機(jī)訪問任一元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與線性長度成正比

11.

12.下列選項(xiàng)中,能夠滿足“若字符串s1等于字符串s2,則執(zhí)行ST”要求的是()。A.if(strcmp(s2,s1)==0)ST;

B.if(s1===s2)ST;

C.if(strcpy(s1,s2)==1)ST;

D.if(s1,s2==0)ST;

13.表達(dá)式a*(-b+c)的逆波蘭式是()

A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*

14.有以下程序

#include<stdio.h>

intfun()

{staticintx=1;

x*2;returnx;

}

main()

{inti,s=1,

for(i=1;i<=2;i++)s=fun();

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

程序運(yùn)行后的輸出結(jié)果是A.A.0B.1C.4D.8

15.以下選項(xiàng)中,不能作為合法常量的是

A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0

16.有以下程序:#include<stdio.h>main(){intx=0x9;printf(“%c\n”,‘A’+x);}程序運(yùn)行后的輸出結(jié)果是()。

A.IB.JC.KD.H

17.堆是一種有用的數(shù)據(jù)結(jié)構(gòu)。下列關(guān)鍵碼序列()是一個(gè)堆。

A.94,31,53,23,16,72

B.94,53,31,72,16,23

C.16,53,23,94,31,72

D.16,31,23,94,53,72

18.有以下程序:#include<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf(“%d,”,p->x);p=p->y;}}程序的運(yùn)行結(jié)果是()。

A.20,30,B.30,17,C.15,30,D.20,15,

19.下列定義中,不正確的有______。

A.#definePI3.141592

B.#defineS345;

C.intmax(x,y);

D.staticcharc;intx,y;{...}

20.有以下程序

#include<stdio.h>

main()

{structnode{intn;structnode*next;}*p;

structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};

p=x:

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

printf("%d\n",P->next->n);

}

程序運(yùn)行后的輸出結(jié)果是A.A.2,3B.2,4C.3,4D.4,6

二、2.填空題(20題)21.若i、j為int類型,則以下程序段內(nèi)循環(huán)體的總執(zhí)行次數(shù)是【】。

for(i=5;i;i--)

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

{

}

22.下面程序把從終端讀入的文本(用#作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為file.txt的新文件中。補(bǔ)足所缺語句。

main()

{charch;

FILE*fp;

if((fp=fopen(______))=NULL)exit(0);

while((ch=getchar())!='#')

fputc(ch,fp);

______;

}

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

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

24.將代數(shù)式轉(zhuǎn)換成程序設(shè)計(jì)中的表達(dá)式為【】。

25.下面程序由兩個(gè)源程序文件:t4.h和t4.c組成,程序編譯運(yùn)行的結(jié)果是:【】。

t4.h的源程序?yàn)椋?/p>

#defineN10

#dennef2(x)(x*N)

t4.c的源程序?yàn)椋?/p>

#include<stdio.h>

#defineM8

#definef(x)((x)*M)

#include"t4.h"

#main()

{inti,j;

i=f(1+1);j=f2(1+1);

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

}

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

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

27.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的【】集合。

28.在程序設(shè)計(jì)階段應(yīng)該采取【】和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語言寫成程序。

29.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

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

30.與表達(dá)式a+=b等價(jià)的另一書寫形式是______。

31.對(duì)下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。

32.若fp已正確定義為一個(gè)文件指針,d1.dat為二進(jìn)制文件,請(qǐng)?zhí)羁眨员銥椤白x”而打開此文件:

fp=fopen(【】);。

33.數(shù)據(jù)庫理論中,數(shù)據(jù)的獨(dú)立性一般可分為物理獨(dú)立性和______。

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

#include<stdio.h>

main()

{inti,m=0,n=0,k=0;

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

switch(i/10)

{case0:m++;n++;break;

case10:n++;break;

default:k++;n++;

}

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

}

35.下面程序是計(jì)算100以內(nèi)能被4整除且個(gè)位數(shù)為4的所有整數(shù),請(qǐng)?zhí)羁铡?/p>

main()

{intm,n;

for(m=0;【】;m++)

{n=m*10+4;

If(【】)continue;

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

36.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。

37.若有以下程序

main()

{intp,a=5;

if(p=a!=0)

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

else

pfintf("%d\n",p+2);

}

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

38.現(xiàn)有如下定義:structaa{inta;floatb;charc;}*p;現(xiàn)需用malloc函數(shù)動(dòng)態(tài)的申請(qǐng)一個(gè)structaa類型大小的空間(由p指向),則定義的語句為:【】。

39.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(i);}

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

三、1.選擇題(20題)41.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中的三個(gè)連續(xù)結(jié)點(diǎn)。structnode{intdata;tractnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結(jié)點(diǎn)的先后位置交換,同時(shí)要保持鏈表的連續(xù),以下錯(cuò)誤的程序段是

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

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

C.p->next=r;q->next=r->next;r->next=q;

D.q->next=r->next;r->next=q;P->next=r;

42.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。

A.從文件file中讀取長度為n的字符串存入字符數(shù)組s中

B.從文件file中讀取長度不超過n-1個(gè)字符的字符串放到字符數(shù)組s中

C.從文件file中讀取n個(gè)字符串存入字符數(shù)組s中

D.從文件file中讀取長度為n-1個(gè)字符的字符串存入字符數(shù)組s中

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

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

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

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

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

44.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為()。

A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG

45.有以下程序#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);}程序的運(yùn)行結(jié)果是

A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

46.以下程序段的輸出結(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

47.若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}

A.0B.22C.12D.10

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

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

49.請(qǐng)閱讀以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;}case2:a++,b++;break;}printf("a=%d,b=%d\n",a,b);上面程序的輸出結(jié)果是

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

50.閱讀以下程序及對(duì)程序功能的描述,其中正確的是

#include<stdio.h>

main()

{FILE*in,*out;

charch,infile[10],outfile[10];

printf("Entertheinfilename:\n");

scanf("%s",infile);

printf("Entertheoutfilename:\n");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{printf("cannotopeninfile\n");

exit(0);}

if((out=fopen(outfile,"w"))==NULL)

{printf("cannotopenoutfile\n");

exit(0);}

while(!feof(in))fputc(fgetc(in),out);

fclose(in);fclose(out);}

A.程序完成將磁盤文件的信息在屏幕上顯示的功能

B.程序完成將兩個(gè)磁盤文件合二為一的功能

C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中

D.程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出

51.以下程序有錯(cuò),錯(cuò)誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;……}

A.p和q的類型不一致,不能執(zhí)行*p=*q;語句

B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句

C.q沒有指向具體的存儲(chǔ)單元,所以*q沒有實(shí)際意義

D.q雖然指向了具體的存儲(chǔ)單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會(huì)影響后面語句的執(zhí)行結(jié)果

52.C語言程序的基本單位是______。

A.程序行B.語句C.函數(shù)D.字符

53.若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是______。

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

54.結(jié)構(gòu)化程序設(shè)計(jì)的三種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

55.下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。

A.軟件測試B.概要設(shè)計(jì)C.軟件維護(hù)D.詳細(xì)設(shè)計(jì)

56.下列不屬于軟件工程的3個(gè)要素的是______。

A.工具B.過程C.方法D.環(huán)境

57.下列合法的聲明語句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

58.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。

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

59.有以下程序#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.daf","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);

A.12300B.123C.1D.321

60.已知:intc[3][4];,則對(duì)數(shù)組元素引用正確的是()。

A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表達(dá)都錯(cuò)誤

四、選擇題(20題)61.有以下程序

62.以下關(guān)于return語句的敘述中正確的是()。A.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

B.一個(gè)自定義函數(shù)中必須有一條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的retum語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

63.

64.下列選項(xiàng)中不合法的十六進(jìn)制數(shù)是()。A."0"xff

B."0"X11

C."0"x1g

D."0"Xabc

65.在E-R圖中,用來表示實(shí)體的圖形是

A.矩形B.橢圓形C.菱形D.三角形

66.

有以下程序

#include<stdi0.h>

main

{FILE*fp;inta[0]一{1,2,3,0,0},i;

fp=fopen("d2.dat,"wb");

fwrite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a.sizeof(int),10,fp);

fclose(fp);

for(i=0;i<10;i++)printft("%d",a[i]);

}

程序的運(yùn)行結(jié)果是()。

A.1,2,3,0,0,o,0,0,0,0,

B.1,2,3,1,2,3,0,0,0,0,

C.123,0,0,0,0,123,0,0,0,0,

D.1,2,3,0,0,1,2,3,0,0,

67.有如下程序

main()

{

chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)

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

}

該程序的輸出結(jié)果是

68.以下程序段完全正確的是()。

69.

70.

71.

若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。

main

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

printf("%d",j-40);

}

A.i=l;i<4;++i

B.i=1;i<3;++i

C.i=4;i>2;i--

D.i=2;i<4;++i

72.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。

A.棧B.樹C.隊(duì)列D.二叉樹

73.

74.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車>,輸出結(jié)果是

main()

{chars[100];intc,i;

scanf("%c",&c);scanf("%d",&i);scanf("%s",s);

prinnf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789

C.1,23,456,789D.1,23,456

75.

有下列程序:

main

{char*p[]={"3697","2584"};

inti,j;longnum=0;

for(i=0;i<2:i++)

{j=0;

while(p[i][j]!=\0)

{if((p[i][j]-\0)%2)num=1O*num+p

[j][j]-0;

j+=2;

}

}

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

}

程序執(zhí)行后的輸m結(jié)果是()。

A.35B.37C.39D.3975

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

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

77.設(shè)有定義intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價(jià)的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

78.若變量已正確定義并賦值,下面符合C語言要求的表達(dá)式是

A.a(chǎn):=b+1B.a(chǎn)=b=c+2C.int18.5%3D.a(chǎn)=a+7=c+b

79.

80.以下選項(xiàng)中不屬于字符常量的是()。

A.

B.

C.

D.

五、程序改錯(cuò)題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參m,計(jì)算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入10,則應(yīng)輸出2.928968。請(qǐng)修改程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),其功能是將形參s所指字符串放入形參a所指的字符數(shù)組中,使a中存放同樣的字符串。說明:不得使用系統(tǒng)提供的字符串函數(shù)。注意:部分源程序存放在文件prog1.c中,請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()指定的部位填入所編寫的若干語句。試題程序:

參考答案

1.D

2.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。

3.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

4.B解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。

5.D

\n首先計(jì)算1與2的或運(yùn)算,再將其結(jié)果與3進(jìn)行“與”運(yùn)算,結(jié)果為00000011,即十進(jìn)制數(shù)3。

\n

6.A

7.A

8.D解析:運(yùn)算符“%”的兩側(cè)都應(yīng)該是整型數(shù)。另外,本題需要掌握的知識(shí)點(diǎn)是:x%=k,等價(jià)于x=x%k。注意:強(qiáng)制類型轉(zhuǎn)換表達(dá)式。

9.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,所以本題答案為D。

10.BB選項(xiàng)的特點(diǎn)是順序存儲(chǔ)結(jié)構(gòu)的特點(diǎn),即數(shù)組的特點(diǎn)。

11.B

12.A解析:strcmp(char*,char*),函數(shù)strcmp用于比較兩個(gè)字符串的長度,長者為大,若字符個(gè)數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCⅡ表值計(jì)算,直到最后一個(gè)字符,若還相同,則兩個(gè)字符串相等,返回值0。選項(xiàng)A中if(strcmp(s2,s1)=0)ST,若s2等于s1,則返回值0,0等于0,所以邏輯表達(dá)式strcmp(s2,s1)=0為真執(zhí)行ST。

13.D

14.C

15.B解析:C語言的語法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而選項(xiàng)B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。

16.B“printf(“%C\\n”,‘A’+X),x=0X9;”中0x9是十六進(jìn)制數(shù),轉(zhuǎn)為十進(jìn)制數(shù)x=9?!皃rintf(“%C\\n”,‘A’+9);”,輸出格式要求是“%c”,因此將字符‘A’按字母順序向后偏移9個(gè)位置,可得結(jié)果為“J”。故本題答案為B選項(xiàng)。

17.D

18.D結(jié)構(gòu)體指針變量p指向a數(shù)組的第1個(gè)元素,所以“p->x”為20。執(zhí)行“p=p->y”后,p指向數(shù)組a的第2個(gè)元素,所以輸出15。故本題答案為D選項(xiàng)。

19.C

20.B解析:p指向x的第一個(gè)元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個(gè)元素,所以p->next->n為4。

21.1515解析:執(zhí)行二重循環(huán)時(shí),外循環(huán)每執(zhí)行一次,內(nèi)循環(huán)將循環(huán)一遍。本題的程序段中外循環(huán)執(zhí)行了5次,內(nèi)循環(huán)執(zhí)行了3次,所以程序段內(nèi)循環(huán)體的總執(zhí)行次數(shù)是15。

22.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中寫數(shù)據(jù),并且該文件是新文件,應(yīng)當(dāng)使用文件打開方式'w',文件操作結(jié)束時(shí)要用函數(shù)fclose關(guān)閉文件,以防數(shù)據(jù)丟失。

23.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個(gè)變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進(jìn)行fun()函數(shù)后的運(yùn)算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時(shí)全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。

24.SQRT(x2+y2)/(a+b)

25.16111611解析:題目中第1條要替換的語句i=f(1+1);展開后是i=((1+1)*M);繼續(xù)展開為i((1+1*8),結(jié)果使i=16。而第2條語句j=f2(1+1)”;展開后為j=(1+1*N);繼續(xù)展開為j=(1+1*10),結(jié)果使j=11。故程序運(yùn)行的結(jié)果是輸出1611。

26.99解析:本題考查宏定義與三目運(yùn)算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個(gè)表達(dá)式的值,否則為b+1的值為整個(gè)表達(dá)式的值,(應(yīng)注意后面的加1)。

27.軟件工具軟件工具

28.自頂而下自頂而下

29.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0'所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

30.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。

31.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當(dāng)二叉樹的根不為空時(shí),依次執(zhí)行如下3個(gè)操作:①按中序遍歷左子樹。②訪問根結(jié)點(diǎn)。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點(diǎn)A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點(diǎn)B,然后訪問結(jié)點(diǎn)D,因?yàn)榻Y(jié)點(diǎn)D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點(diǎn)F的左子樹。然后訪問根結(jié)點(diǎn)F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點(diǎn)E,然后訪問結(jié)點(diǎn)E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點(diǎn)G,最后訪問G的右子樹P。以上就把整個(gè)二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。

32.d1.dat"rb"d1.dat,'rb'解析:打開文件的函數(shù)為fopen('文件名','mode'),其中'mode'表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件。'a'為追加方式打開。若文件存在時(shí),將打開這個(gè)文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件。'r+'打開一個(gè)已存在文件用于更新(可讀可寫)。\'w+'創(chuàng)建一個(gè)新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當(dāng)文件不存在時(shí),創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填'd1.dat','rb'。

33.邏輯獨(dú)立性邏輯獨(dú)立性解析:數(shù)據(jù)的獨(dú)立性一般可分為物理獨(dú)立性和邏輯獨(dú)立性。

34.132132解析:在程序中,i從9開始循環(huán),當(dāng)i=9時(shí),執(zhí)行case0后的語句m++;n++;此時(shí)m=1,n=1,然后執(zhí)行break,跳出循環(huán);當(dāng)i=10時(shí),執(zhí)行detault后的語句k++;n++;此時(shí)k=1,n=2;當(dāng)i=11時(shí),再執(zhí)行default后的語句,k=2,n=3。此時(shí),m=1,n=3,k=2。輸出結(jié)果為132。

35.m<10n%4!=0

36.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。

\'\\t\'f是轉(zhuǎn)義字符,代表橫向跳若干格:'\\'是轉(zhuǎn)義字符,代表雙引號(hào);\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符;’僅AB,是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。

5個(gè)字符常量各代表一個(gè)字符,再加上字母C,所以返回的長度是6。

37.11解析:首先計(jì)算if語句后面的表達(dá)式,根據(jù)運(yùn)算符的優(yōu)先級(jí)可知,先算“a!=o”,該值為1,再把1賦值給p,結(jié)果為1(真),執(zhí)行其后的printf語句,輸出的值為1。

38.p=(structaa*)malloc(sizeof(structaa));p=(structaa*)malloc(sizeof(structaa));解析:ANSIC標(biāo)準(zhǔn)規(guī)定malloc函數(shù)的返回值類型為void*,函數(shù)的調(diào)用形式為:malloc(size)要求size的類型為unsignedint。由于返回類型為void*,所以在調(diào)用函數(shù)時(shí),必須利用強(qiáng)制轉(zhuǎn)換將其轉(zhuǎn)換為所需要的類型。

39.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。

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

41.A解析:題目中要求將q和r所指結(jié)點(diǎn)的先后位置交換,即要求p所指結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)。選項(xiàng)A首先讓r所指向的指針的指針域指向q所指向的結(jié)點(diǎn),這樣就將r所指向的結(jié)點(diǎn)的指針域指向的結(jié)點(diǎn)丟失了。選項(xiàng)B首先q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),然后,讓p所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),最后讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),滿足要求。選項(xiàng)C首先讓p所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),然后讓q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),最后讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),滿足要求。選項(xiàng)D首先讓q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),然后,讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),最后讓P所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),滿足要求。

42.B解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“s”可以是一個(gè)字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個(gè)數(shù);“fp”是指向該文件的文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個(gè)字符的字符串,并將該字符串放到字符數(shù)組s中;讀入字符串后會(huì)自動(dòng)在字符串末尾加入“'\\0'”結(jié)束符,表示字符串結(jié)束。

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

44.B遍歷是按照一定規(guī)則對(duì)樹中全部結(jié)點(diǎn)逐一訪問的方法。二叉樹可由根結(jié)點(diǎn)、左子樹和右子樹三個(gè)部分組成。根據(jù)對(duì)根結(jié)點(diǎn)訪問的先后順序,可將遍歷方法分為先序遍歷、中序遍歷和后序遍歷三種。先序遍歷首先訪問根結(jié)點(diǎn),再先序遍歷左子樹,最后先序遍歷右子樹,可見遍歷是一個(gè)遞歸的過程。求樹的遍歷這種問題的關(guān)鍵在于認(rèn)清每棵子樹的根結(jié)點(diǎn)的訪問順序。題目給出了一棵樹的先序遍歷和中序遍歷的結(jié)點(diǎn)順序,先序遍歷的第一個(gè)結(jié)點(diǎn)為整棵樹的根結(jié)點(diǎn),即根結(jié)點(diǎn)為A,而在中序遍歷的順序中,結(jié)點(diǎn)A的前面還有DBGE四個(gè)結(jié)點(diǎn),表示這四個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹的左子樹,同理,中序遍歷中A結(jié)點(diǎn)后面的CHF三個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹的右子樹。于是原來的對(duì)一棵二叉樹的分析變?yōu)閷?duì)該二叉樹的左右子樹的分析。以左子樹為例,左子樹結(jié)點(diǎn)的先序遍歷為BDEG,中序遍歷為DBGE,該子樹的根結(jié)點(diǎn)為B,B結(jié)點(diǎn)的左子樹為一個(gè)結(jié)點(diǎn)D,右子樹為以E為根結(jié)點(diǎn),結(jié)點(diǎn)G是E的左孩子。同理,可對(duì)CHF三個(gè)結(jié)點(diǎn)進(jìn)行分析。

最后得到整棵樹的結(jié)構(gòu)后,按照后序遍歷寫出所有結(jié)點(diǎn)的順序:DGEBHFCA。

45.D解析:本題考查switch語句,首先,x=1符合條件case1,執(zhí)行switch(y)語句。y=0符合case0語句,執(zhí)行a抖并跳出switch(y)語句,此時(shí)a=1。因?yàn)閏ase1語句后面沒有break語句,所以向后執(zhí)行case2語句,執(zhí)行a++,b++,然后跳出switch(x),得a=2,b=1。

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

47.A解析:本題考查的是三目運(yùn)算符的用法,三目運(yùn)算符的形式為(表達(dá)式1)?(表達(dá)式2):(表達(dá)式3)。當(dāng)(表達(dá)式1)的值為真時(shí),求(表達(dá)式2)的值為整個(gè)表達(dá)式的值;如果(表達(dá)式1)的值為假,則求(表達(dá)式3)的值為整個(gè)表達(dá)式的值。題中,表達(dá)式x>12的結(jié)果為假,所以執(zhí)行的語句是x-12,最終y的值應(yīng)該是0。

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

49.A

50.C解析:本題中,最主要的是掌握幾個(gè)有關(guān)文件的函數(shù)的應(yīng)用。

函數(shù)名:fopen

功能:打開一個(gè)文件

調(diào)用方式FILE*fp;fp=fopen(文件名,使用文件方式);

函數(shù)名:feof

功能:檢查文件是否結(jié)束

調(diào)用方式:feof(FILE*fp);

函數(shù)名:fputc

功能:把一個(gè)字符寫到磁盤文件上去

調(diào)用方式:fputc(ch,fp)(ch是要輸出的字符,fp是從指定的文件讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開的調(diào)用方式:ch=fgetc(fp)(ch是字符變量,fp是文件指針變量);

函數(shù)名:fclose

功能:關(guān)閉一個(gè)文件

調(diào)用方式:fclose(文件指針)。

51.D解析:該程序的執(zhí)行過程是:首先聲明整型指針變量P和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,將40賦給*p,此時(shí),q已經(jīng)指向了一個(gè)具體的存儲(chǔ)單元,但ch的值不確定,即*p沒有確定的值,所以不能執(zhí)行*p=*q語句。

52.C解析:C語言是一個(gè)函數(shù)語言,C語言的主體就是一個(gè)主函數(shù),然后有庫函數(shù)和用戶自定義的函數(shù)來配合主函數(shù)完成一系列的任務(wù),所以說,C語言的基本單位是函數(shù)。

53.B解析:指針是—種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個(gè)運(yùn)算符的優(yōu)先級(jí)相同,按自右而左的方向結(jié)合,所以*&j運(yùn)算選進(jìn)行&j運(yùn)算,得j的地址,再進(jìn)行*運(yùn)算,取所得地址里面的值,故*&j與j等價(jià)。

54.D結(jié)構(gòu)化程序設(shè)計(jì)以模塊化設(shè)計(jì)為中心,采用自頂向下、逐步求精的程序設(shè)計(jì)方法。任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。

55.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分為若干個(gè)階段。軟件定義時(shí)期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個(gè)階段。軟件開發(fā)時(shí)期是具體設(shè)計(jì)和實(shí)現(xiàn)在前一時(shí)期定義的軟件,它通常由下面五個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、組裝測試和確認(rèn)測試。軟件維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當(dāng)軟件在使用過程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件,以滿足用戶的新要求。根據(jù)上述對(duì)軟件生命周期的介紹,可知選項(xiàng)C中的軟件維護(hù)不是軟件生命周期開發(fā)階段的任務(wù)。因此,本題的正確答案是C。

56.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。

57.A解析:C語言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。另外C語言規(guī)定了一些專用的標(biāo)識(shí)符,它們有著固定的含義,不能更改。int就是表達(dá)變量類型的標(biāo)識(shí)符,它不能再用做變量名和函數(shù)名,所以選項(xiàng)B)不正確。do是C語言的一個(gè)關(guān)鍵字,也不能再用做變量名和函數(shù)名,所以選項(xiàng)C)不正確。

58.B解析:先計(jì)算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時(shí),如果變量為int型變量則真用1表示,假用0表示),即a=1。

59.B解析:在函數(shù)中首先把整型數(shù)組a[10]中的每個(gè)元素寫入文件d1.dat中,然后再次打開這個(gè)文件,把文件d1.dat中的內(nèi)容讀入到整型變量n中,最后輸出變量n的值。

60.C

61.Aa<<2的值為20,2011結(jié)果為21,所以答案選擇A)。

62.A一個(gè)函數(shù)可以有多個(gè)return語句,所以選擇A)。

63.D

64.C十六進(jìn)制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個(gè)數(shù)字和a、b、C、d、e、f這6個(gè)字母。

65.A解析:在E-R圖中,用三種圖框分別表示實(shí)體、屬性和實(shí)體之間的聯(lián)系,其規(guī)定如下:用矩形框表示實(shí)體,框內(nèi)標(biāo)明實(shí)體名;用橢圓狀框表示實(shí)體的屬性,框內(nèi)標(biāo)明屬性名;用菱形框表示實(shí)體間的聯(lián)系,框內(nèi)標(biāo)明聯(lián)系名。所以,選項(xiàng)A正確。

66.D

\n本題程序首先用函數(shù)fopen以“wb”的方式開打文件“d2.dat”,然后調(diào)用兩次fwrite函數(shù)將數(shù)組a的5個(gè)元

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論