2021-2022年江西省景德鎮(zhèn)市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2021-2022年江西省景德鎮(zhèn)市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2021-2022年江西省景德鎮(zhèn)市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2021-2022年江西省景德鎮(zhèn)市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2021-2022年江西省景德鎮(zhèn)市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年江西省景德鎮(zhèn)市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。

A.EOFB.-lC.非零值D.0

2.以下選項中不屬于c語言的類型的是()。

A.unsignedlongint

B.longshort

C.unsignedint

D.signedshortint

3.下列程序的輸出結果是()。#include<stdio.h>main{inti;for(i=1;i<=10,i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i;}A.49B.36C.25D.64

4.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,則上面程序的輸出結果是______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

5.在面向對象設計中,對象有很多基本特點,其中“從外面看只能看到對象的外部特性,而對象的內部對外是不可見的。”這一性質指的是對象的

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

6.若有以下定義,則對a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

7.由權值分別為3,8,6,2,5的葉子結點生成一棵哈夫曼樹,它的帶權路徑長度為________。

A.24B.48C.72D.53

8.下面程序的運行結果是

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

for(i=0,j=0;a[i]!=′\n′;i++)

if(a[i]>=′0′&&a[i]<=′9′)

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

printf("\n%s",item);}

A.abcB.34C.a34D.a34bc

9.有以下程序:#include<stdio.h>#include<string.h>main(){charv[4][10]={“efg”,“abcd”,“mnopq”,“hijkl”},*p[4],*t;inti,j;for(i=0;i<4;i++)p[i]=v[i];for(i=0;i<3;i++) for(j=i+1;j<4;j++) if(strcmp(p[i],p[j])>0) {t=p[i];p[i]=p[j];p[j]=t}for(i=0;i<4;i++) printf(“%s”,p[i]);}程序運行后的輸出結果是()。

A.efgabcdhijklmnopq

B.abcdefghijklmnopq

C.mnopqhijklefgabcd

D.efgabcdmnopqhijkl

10.在C語言中,函數(shù)隱含的類型是()

A.autoB.staticC.intD.void

11.假定已建立以下鏈表結構,且指針p和q已指向如圖所示的結點:

則以下選項中司將q所指結點從鏈表中刪除并釋放該結點的語句組是______。A.(*p).next=(*q).next;free(p);

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

C.p=q;free(q);

D.p->next=q->next;free(q);

12.在KMP算法中,已知模式串為ADABCADADA,請寫出模式串的next數(shù)組值()

A.0,1,1,2,1,1,2,3,4,3

B.1,2,3,2,1,1,2,4,4,3

C.0,1,1,1,2,1,2,3,4,3

D.2,1,1,2,1,1,2,3,3,4

13.數(shù)據(jù)流圖(DFD)的作用是()。

A.描述軟件系統(tǒng)的控制流B.支持軟件系統(tǒng)的功能建模C.支持軟件系統(tǒng)的面向對象分析D.描述軟件系統(tǒng)的數(shù)據(jù)結構

14.對于棧操作數(shù)據(jù)的原則是()。

A.先進先出B.后進先出C.后進后出D.不分順序

15.如果最常用的操作是取第i個結點及其前驅,最節(jié)省時間的存儲方式是()。

A.單鏈表B.雙向鏈表C.單循環(huán)鏈表D.順序表

16.在有序表(12,24,36,48,60,72,84)中二分查找關鍵字72時所需進行的關鍵字比較次數(shù)是()

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

17.

18.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,則對a數(shù)組元素不正確的引用是()

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

19.設x,y,t均為int型變量,執(zhí)行語句:

x=y=3;

t=++x||++y;

完成后,y的值為A.A.不確定B.4C.3D.1

20.設R是一個二元關系,S是一個三元關系,則下列運算中正確的是()。

A.R-SB.R×SC.R∩SD.R∪S

二、2.填空題(20題)21.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結束循環(huán)。請?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

22.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

23.C語言用于結構化程序設計的3種基本結構是______、選擇結構和循環(huán)結構。

24.以下程序的輸出結果為【】。

main()

{intk=1;

white(k<=15)

if(++k%3!=2)continue;

elseprintf("%d",k);

printf("\n");

}

25.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

26.若有如下結構體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁眨酝瓿蓪數(shù)組的定義,t數(shù)組的每個元素為該結構體類型。

【】t[20]

27.子程序通常分為兩類:【】和函數(shù),前者是命令的抽象,后者是為了求值。

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

29.有如下圖所示的雙鏈表結構,請根據(jù)圖示完成結構體的定義:

structaa

{intdata;

【】}node;

30.\13'在內存中占1個字節(jié),"\12"在內存中占______個字節(jié)。

31.以下程序中函數(shù)fun()的功能是構成一個如圖所示的帶頭結點的單向鏈表,在結點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單向鏈表中所有結點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。

#include<atdio.h>

typedefstructnode/*鏈表結點結構*/

{charsub[3];

structnode*next;

}Node

Node~un(chars)/*建立鏈表*/

{......}

voiddisp(Node*h)

{Node*Ps

p=h->next;

while(【】)

{printf("%s\n",p->suh);p=【】;}

}

main()

{Node*hd;

hd=fun();disp(hd);prinff("\n");

32.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序運行時輸入12<回車>,執(zhí)行后輸出結果是【】。

33.下列程序的運行結果是【】。

#include<stdio.h>

main()

{unionEXAMPLE

{struct

{intx;inty;}in;

inta;

intb;

}e;

e.a=1;e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf("%d,%d\n",e.in.x,e.in.y);

}

34.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

35.一個項目有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于【】的聯(lián)系。

36.下面程序的功能是:計算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta,b,c,i;

a=c=0;

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

{a+=i;

【】;

c+=b;}

printf("偶數(shù)之和=%d\n",a);

printf("奇數(shù)之和=%d\n",c-11);}

37.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,這稱為______。

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

39.以下程序用于判斷a、b、c能否構成三角形,若能,輸出YES,否則輸出NO。當給a、b、c輸入三角形三條邊長時,確定a、b、c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*abc能構成三角形*/

elseprintf("NO\n");/*abc不能構成三角形*/

}

40.診斷和改正程序中錯誤的工作通常稱為【】。

三、1.選擇題(20題)41.用C語言編寫的代碼程序

A.可立即執(zhí)行B.是一個源程序C.經(jīng)過編譯即可執(zhí)行D.經(jīng)過編譯解釋即可執(zhí)行

42.已知各變量的類型說明如下: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)

43.執(zhí)行下列程序后,輸出的結果是()。#include<stdio.h>#defineS(X)X*Xvoidmain(){inta=9,k=3,m=2;a/=S(k+m)/S(k+m);printf("%d",a);}

A.1B.4C.9D.0

44.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}

A.將磁盤文件的內容顯示在屏幕上

B.將兩個磁盤文件合為一個

C.將一個磁盤文件復制到另一個磁盤文件中

D.將兩個磁盤文件合并后送屏幕

45.若有下列語句:chara[]="xyz";charb[]=}'x','y','z'};則下列敘述正確的是______。

A.數(shù)組a和數(shù)組b不等價

B.數(shù)組a和數(shù)組b的長度相同

C.數(shù)組a占用空間大小等于數(shù)組b占用空間大小

D.數(shù)組a占用空間大小大于數(shù)組b占用空間大小

46.以下程序運行后,輸出結果是()#include<stdio.h>#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf("%4.1f\n",s(a+b));}

A.49.5B.9.5C.22D.45

47.關于結構化程序設計原則和方法描述錯誤的是()。

A.選用的結構只準許有一個入口和一個出口

B.復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現(xiàn)

C.不允許使用GOTO語句

D.語言中所沒有的控制結構,應該采用前后一致的方法來模擬

48.有以下程序:main(){intx[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1)>x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1)=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n");}程序運行后的輸出結果是______。

A.75310246B.1234567C.76310462D.13570246

49.設a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

50.有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%c\n,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結果是()。

A.1267B.1256C.1278D.1245

51.有下列程序:

main()

{intt,a=1,b=5,C=-2;

while(a>b>C)

{t=a;a=b;b=t;c++;}

printf("%d,%d,%d",a,b,C);

}

程序的輸出結果是()。

A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2

52.若有定義inta[9],*p=a;則p+5表示

A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5

53.有如下程序:main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}該程序的輸出結果是______。

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

54.若有以下定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項中錯誤的語句是

A.*q=0;B.w=p;C.*p=a;D.*p=*w;

55.在軟件開發(fā)中,下面任務不屬于設計階段的是______。

A.數(shù)據(jù)結構設計B.給出系統(tǒng)模塊結構C.定義模塊算法D.定義需求并建立系統(tǒng)模型

56.若已定義的函數(shù)有返回值,則以下關于該函數(shù)調用的敘述中錯誤的是A.函數(shù)調用可以作為獨立的語句存在

B.函數(shù)調用可以作為一個函數(shù)的實參

C.函數(shù)調用可以出現(xiàn)在表達式中

D.函數(shù)調用可以作為一個函數(shù)的形參

57.將E-R圖轉換到關系模式時,實體與聯(lián)系都可以表示成________。

A.屬性B.關系C.鍵D.域

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

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

59.以下能正確定義數(shù)組并正確賦初值的語句是A.intN=5,b[N][N];

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

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

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

60.若有如下程序:#definePI3.1415926#defineA(r)2*PI*rmain(){floata,1;a=3.0;1=A(a);printf("r=%.2f,1=%.2f\n",a,1);}則程序運行后的輸出結果是()

A.r=3.001=18.85

B.3.00,18.85

C.r=3.0000001=18.8495555

D.r=3.01=18.8495555

四、選擇題(20題)61.定義如下變量和數(shù)組:

則下面語句的輸出結果是()。

A.951B.741C.753D.963

62.能正確表示a和b同時為正或同時為負的邏輯表達式是_________。

A.a>=0

B.

C.b>=0)(a<0

D.

E.b<0)

F.(a>=0b>=0)(a<0b<0)

G.(a+b>0)(a+b<=0)

H.a*b>0

63.若變量已正確定義,要求程序段完成求5!的計算,不能完成此操作的程序段是

A.for(i=1,p=1;i<=5;i++)p*=i;B.i=1;p=1;while(i<=5){p*=i;i++;}

C.for(i=1;i<=5;i++){p=1;p*=i;}D.i=1;p=1;do{p*=i;i++;}while(i<=5);

64.在數(shù)據(jù)管理技術發(fā)展的三個階段中,數(shù)據(jù)共享最好的是()。

A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個階段相同

65.

66.

67.

68.

若有以下的說明和語句,則在執(zhí)行for語句后,’(*(pt+1)+2)表示的數(shù)組元素是()。

intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

69.

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

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

71.

72.設a=l,b=2,c=3,d=4,則表達式:“a<b?a:b<b?a:c<d?a:d”的結果為()。A.4B.3C.2D.1

73.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。A.定義語句中的*號是一個間址運算符

B.定義語句中的*號是一個說明符

C.定義語句中的p只能存放double類型變量的地址

D.定義語句中,*p=&a把變量a的地址作為初值賦給指針變量P

74.

有以下程序段

intj;floaty;charname[50]:

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

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

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

75.若有以下說明,則()不是對strcpy庫函數(shù)正確的調用。strcpy庫函數(shù)用于復制一個字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";

A.strcpy(str2,strl)

B.strcpy(str3,strl)

C.strcpy(strl,str2)

D.strcpy(str5,strl)

76.

77.以下說法錯誤的是A.A.高級語言都是用接近人們習慣的自然語言和數(shù)學語言作為語言的表達形式

B.計算機只能處理由0和1的代碼構成的二進制指令或數(shù)據(jù)

C.C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.EXE的二進制文件

D.每一種高級語言都有它對應的編譯程序

78.專門的關系運算不包括下列的()運算。

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

79.以下選項中,合法的一組c語言數(shù)值常量是()。

A.12.0Xa234.5e0

B.028.5e…30xf

C.1774el.50abe

D.0x8A10,0003.e5

80.

五、程序改錯題(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.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將放在字符串數(shù)組中的M個字符串(每個字符串的長度不超過N),按順序合并成一個新的字符串。例如,若字符串數(shù)組中的M個字符串為|“AAAA”,“BBBBBBB”,“CC”|,則合并后的字符串內容應該是“AAAABBBBBBBCC”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidfun(chara[M][N],char*b){}voidmain(){ charw[M][N]={“AAAA”,“BBBBBBB”,“CC”}; chara[100]={“##################”}; inti; printf(“Thestring:\n”); for(i=0;i<=""p=""> puts(w[i]); printf(“\n”); fun(w,a); printf(“TheAstring:\n”); printf(“%s”,a); printf(“\n\n”);}

參考答案

1.D本題考查leon(tp)函數(shù),其功能是:測試所指的文件的位置指針是否已達到文件尾,如果已達到文件尾,則函數(shù)返回非0值;否則返回0,表示文件未結束。

2.Bc語言中整型變量分為4種,基本型int,短整型shortint,長整型longint和無符號型(unsignedint、un-signedshort、unsignedlong)。因此B)選項不屬于c語言的類型。

3.C本題考查for循環(huán)及if語句。當執(zhí)行到第一個滿足(i*i>一20)&&(i*i<=100)這個條件的i出現(xiàn)時,break跳出循環(huán),執(zhí)行下列的printf語句。

4.C解析:scanf()把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。

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

6.D本題考查如何引用數(shù)組元素的地址。選項A)中,p5引用的是af51的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤;選項B)中,*a1指的是將數(shù)組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數(shù)組的首地址。

7.D

8.B解析:考查用指針引用字符串元素的方法。指針a通過數(shù)組元素下標來從頭逐個地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時,就去掉這個字符,所以程序結束后,字符串item中就只剩下和兩個字符了。

9.Bmain函數(shù)中定義一個二維數(shù)組v,另外還定義一個指針數(shù)組p。通過for循環(huán),將v的各個行(字符串的首地址)賦給P的對應下標的元素。然后通過嵌套的for循環(huán),為該二維數(shù)組中存放的各個字符串進行排序。strcmp函數(shù)返回值大于0時(p[i]>p[j])交換兩個字符串,所以每一輪內嵌的for循環(huán),都將下標為i的字符串放在最終的排序位置上,即排序規(guī)則是按字符串升序排列。字符串排序時,是將兩個字符串自左向右逐個字符比較(按字符的ASCII值大?。?,直到出現(xiàn)不同的字符或遇到‘\\0’為止。排序后,再將v中各個排序后的字符串輸出。所以程序輸出結果為:abcdefghijklmnopq。故本題答案為B選項。

10.C

11.D解析:本題題面要求刪除q所指結點并釋放該結點,而選項A中雖然是刪除了q所指鮚點,但并未釋放q這個結點,而釋放的是p結點,所以選項A錯誤;選項B是將q的下一結點的地址賦值給指針變量p,這意味著p原來的成員變量內容被q的下一結點的成員變量內容所代替,即原p結點也被刪除了,所以選項B錯誤;選項C相當于將q的所有成員變量內容代替了p的所有成員變量內容,即p結點被刪除,所以錯誤;選項D是將q的下—結點的地址賦值給p的成員next\u3000(成員next用于存放一結點的地址),使得p的next成員不再指向q,而是指向q的下一結點,相當于刪除了q這個結點,同叫用free函數(shù)正確釋放了q這一結點,所以選項D正確。

12.A

13.B數(shù)據(jù)流圖是系統(tǒng)邏輯模型的圖形表示,從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變化過程,它直接支持系統(tǒng)的功能建模。本題答案為B選項。

14.B

15.D

16.B

17.A

18.D解析:通常,引用一個數(shù)組元素可以用下標法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。

19.Ct=++x或++y,當++x不為0的時候,即++x為真,則不需要再繼續(xù)判斷++y,那么y就不再執(zhí)行自加,因此y=3.

20.BB?!窘馕觥筷P系的交(∩)、并(∪)和差(-)運算要求兩個關系是同元的,顯然作為二元的R和三元的S只能做笛卡兒積運算。

21.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結束循環(huán)。

22.概念概念

23.順序結構順序結構解析:結構化程序有3種摹本結構,即順序結構、選擇結構(包括if語句和switch語句)和循環(huán)結構(包括for語句、while語句、do…while語句)。

24.25811142581114解析:本題通過while和if語句,求得出1~15之間與3取模為2的整數(shù),并依次輸出。

25.從定義到本源文件結束從定義到本源文件結束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結束。

26.strudctSTRUstrudctSTRU解析:結構件類型是構造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結構體類型的定義:

struct結構體類型名

{

成員項表;

};

定義結構體變量的的形式為:

struct結構體類型名變量1,變量2,...?

其中變量包括;一般變量、指針變量、數(shù)組變量等。

27.過程過程

28.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

29.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結構體對鏈表的定義。

30.22解析:'\\13':表示八進制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結束標志“'\\0'”,所以共有2個字節(jié)。

31.p!=NULL或P或p!=0或p!='0'p->next或(*p).nextp!=NULL或P或p!=0或p!='0'\r\np->next或(*p).next解析:程序中定義了一個結構體類型名Node,其中定義了一個指向結點類型的指針next。接下來用Node定義了頭結點指針變量h和指向第一個結點的指針變量p,在滿足p未指向最后一個結點的空指針時(即為NULL),輸出p所指向結點的字符串,所以第一處應填p!=NULL,然后將p指向下一個非空結點,所以第二處應填P->next或與其等效的形式,反復執(zhí)行直到所有的結點都輸出。

32.1212解析:字符類型的數(shù)據(jù)在內存中以相應的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價為與其相應的ASCII碼的整數(shù),還可以作為整數(shù)參加運算。在本題中,n1=ch1-'0'='1-'0'=49-48=1,n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后輸出為12。

33.484,8解析:C語言規(guī)定,共用體中各個成員變量在內存中占用同一段內存單元,即e.in.x、e.a、e.b占用同一段內存單元。執(zhí)行語句e.b=2;后,e.in.x=e.a=e.b=2;執(zhí)行語句e.in.x=e.a*e.b;時,e.a的值為2,e.b的值為2,所以運算得出e.in.x的值為4;執(zhí)行語句e.in.y=e.a+e.b時,由于e.in.x和e.a、e.b占用的是同一段內存單元,所以此時的e.a、e.b的值為4,因此運算得出e.in.y的值為4+4=8。程序最后的輸出結果為4,8。

34.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

35.一對多或1:N一對多或1:N解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關系,這種函數(shù)關系可以有三種,即一對一(1:1)的聯(lián)系、一對多(1:N)或多對一(N:1)的聯(lián)系和多對多(N:N)的聯(lián)系。

36.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時c去掉多加的11,即為1~10之間的奇數(shù)之和。

37.物理獨立性物理獨立性解析:數(shù)據(jù)的獨立性是指數(shù)據(jù)和應用程序相互獨立,分為物理獨立性和邏輯獨立性。其中物理獨立性是指數(shù)據(jù)的物理結構(包括存儲結構、存取方式)改變時,不需要修改應用程序。而邏輯獨立性是指當邏輯結構改變時,不需要修改應用程序。

38.21

39.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的條件是兩邊之和大于第三邊。要用'&&'指令連接三個條件,表示三個條件都要滿足。

40.程序調試程序調試解析:程序調試的任務是診斷和改正程序中的錯誤。程序調試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調試主要在開發(fā)階段。

41.B解析:C語言一種高級語言,C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個后綴為。OBJ的二進制文件(稱為目標文件),最后還要由稱為“連接程序”(Link)的軟件,把此。OBJ文件與C語言提供的各種庫函數(shù)連接在一起,生成一個后綴.EXE的可執(zhí)行文件。顯然C語言不能立即執(zhí)行,故選項A錯誤;根據(jù)以上定義,選項C和選項D錯誤,所以,4個選項中選項B符合題意。

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

43.D解析:本題主要是考查帶參數(shù)的宏定義及其相關運算。本題中宏運算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

44.C解析:程序首先定義了兩個文件類型的指針fp1、fp2。為讀打開文件filel,并讓指針fp1指向該文件;為寫打開文件file2,并讓指針fp2指向該文件。循環(huán)執(zhí)行從文件file1中讀取一個字符,輸出到文件file2中,直到文件file1結束。因此程序的功能是將文件file1中的內容復制到文件file2中。

45.D解析:數(shù)組a的存儲空間占4個字節(jié)(結束符'\\0'占一字節(jié)),數(shù)組a的存儲空間占3個字節(jié)。

46.B

47.C解析:限制使用GOTO語句是結構化程序設計的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項為結構化程序設計的原則。

48.A解析:本題中第一次執(zhí)行for循環(huán)后,數(shù)組x中的前四個元素按由大到小的次序排序,即x[0]=7、x[1]=5、x[2]=3、x[3]=1、x[4]=2、x[5]=4、x[6]=6、x[7]=0;第二次執(zhí)行for循環(huán)后,數(shù)組x中的后4個元素按由小到大的次序排序,即此時x[0]=7、x[1]=5、x[2]=3、x[3]=1、x[4]=0、x[5]=2、x[6]=4、x[7]=6。故正確答案為A。

49.D解析:選項A:'a'&&'b'是字符a與b的相與,不為0:選項B:a<=b,由題中變量賦值可知,結果為1。選項C:a||+c&&b-c,結果為1;選項D:!((a<B)&&!c||1),運算結果為0。

50.D解析:在題目中,程序執(zhí)行到scanf()函數(shù)時,會暫停等待用戶輸入4個字符,按題意輸入123<回車>后,字符1~3被分別輸入到c1~c3中,而c4會得到一個換行符'\\n'。然后執(zhí)行第1個getchar()函數(shù),由于前面的scanf()函數(shù)讀完了緩沖區(qū)中的所有字符,所以此時程序會又暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區(qū)第1個字符'4'被讀入并賦給c5,第2個getchar()函數(shù)會讀入緩沖區(qū)第2個字符'5'。所以最后依次輸出c1、c2、c5、c6的值后,屏幕上的結果是1245。故應該選擇D。

51.A解析:本題考查while循環(huán)。先判斷while循環(huán)的控制表達式是否成立,發(fā)現(xiàn)a>b>c不成立,所以不執(zhí)行循環(huán)。直接輸出a、b、c的值。

52.B解析:本題考查了通過指針來引用一維數(shù)組元素的方法。題中*p=a;這一賦值語句是指針p指向了數(shù)組a的首地址,p+5是指針p向后移動了5個int類型的存儲單元,所以p+5指向了數(shù)組元素a[5]。

53.A解析:題中的外循環(huán)只執(zhí)行了2次:

第1次:a[1][0]=3,a[1][1]=4,所以s=7;

第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。

54.A解析:本題中定義了3個指向整型的指針變量p、q、w,并讓P指向a,讓q指向b,通過將q的值賦給w,使w也指向b,最后將NULL賦值給q。由整型變量指針的定義可知,可以給整型指針指向的變量賦一個常數(shù)值(表達式);可以給指針變量賦一個同種類型的指針變量(或地址值);選項A因為q不指向任何變量,給一個空指針指向的單元賦值是錯誤的。

55.D【解析】數(shù)據(jù)結構設計、給出系統(tǒng)模塊結構以及定義模塊算法都屬于設計階段,而定義需求并建立系統(tǒng)模型屬于分析階段。

56.D解析:本題考查函數(shù)的調用。在有參函數(shù)調用中,是將主調函數(shù)的實參值傳給被調函數(shù)的形參。按函數(shù)在程序中出現(xiàn)的位置來分,有以下三種函數(shù)調用形式:

①函數(shù)調用作為一條語句。例如:fun();這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。故選項A)正確。

②函數(shù)出現(xiàn)在表達式中,這種表達式稱為函數(shù)表達式。這時要求函數(shù)帶回一個確定的值以參加表達式的運算。例如:c=5*max(a,b);函數(shù)max是表達式的一部分,將其值乘以5后賦給c。故選項C)正確。

③函數(shù)調用作為一個函數(shù)的實參,例如:m=max(a,max(b,c));其中max(b,c)是一次函數(shù)調用,它的值作為max另一次調用的實參。故選項B)正確。

函數(shù)調用不可作為一個函數(shù)的形參,因為函數(shù)調用參數(shù)的數(shù)據(jù)傳遞是單向傳遞,即實參傳給形參,不能由形參傳給實參。故選項D)錯誤。

57.B解析:關系數(shù)據(jù)庫邏輯設計的主要工作是將\ue008E-R\ue009圖轉換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉換是比較直接的,實體與聯(lián)系都可以表示成關系,E-R圖中屬性也可以轉換成關系的屬性,實體集也可以轉換成關系。

58.B解析:a=b=c+2實際上相當于a=(b=c+2),進而可分解為兩個表達式:b=c+2和a=b。注意:選項A)中包含一個不合法的運算符“:=”;選項C)應改為(int)18.5%3;選項D)可理解為兩個表達式:a+7=c+b和a=a+7,其中第一個是錯的,因為C++語言規(guī)定賦值號的左邊只能是單個變量,不能是表達式或常量等。注意:C++語言賦值語句的運用,

59.D解析:選項A中,數(shù)組的長度使用了變量N,而在C語言中是不能用變量來定義數(shù)組的長度的,故選項A錯誤。在C語言中,給二維數(shù)組賦初值時,行數(shù)不能超過定義的行數(shù),每行的初值個數(shù)不能超過定義時的列數(shù),故選項B錯誤。選項C數(shù)組的第二維下標默認,而在C語言中,數(shù)組的第二維下標不能默認,故選項

溫馨提示

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

評論

0/150

提交評論