2022年四川省資陽市全國計算機等級考試C語言程序設計測試卷(含答案)_第1頁
2022年四川省資陽市全國計算機等級考試C語言程序設計測試卷(含答案)_第2頁
2022年四川省資陽市全國計算機等級考試C語言程序設計測試卷(含答案)_第3頁
2022年四川省資陽市全國計算機等級考試C語言程序設計測試卷(含答案)_第4頁
2022年四川省資陽市全國計算機等級考試C語言程序設計測試卷(含答案)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年四川省資陽市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.稀疏矩陣一般的壓縮存儲方式有兩種,即()。

A.二維數(shù)組和三維數(shù)組B.三元組和散列C.三元組和十字鏈表D.散列和十字鏈表

2.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||13.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf(“m=%d\n”,m);}程序運行后的輸出結果是()A.m=4B.m=2C.m=6D.m=5

4.執(zhí)行下列程序后,輸出的結果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

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

5.作為信息處理熱點技術之一的“多媒體技術”中的媒體,強調(diào)的是()。

A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體

6.定義int*swap()指的是______。

A.一個返回整型值的函數(shù)swap()

B.一個返回指向整型值指針的函數(shù)swap()

C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值

D.以上說法均錯

7.和順序棧相比,鏈棧有一個比較明顯的優(yōu)勢是()。

A.通常不會出現(xiàn)棧滿的情況B.通常不會出現(xiàn)棧空的情況C.插入操作更容易實現(xiàn)D.刪除操作更容易實現(xiàn)

8.一棵二叉樹中共有70個葉子結點與80個度為1的結點,則該二叉樹中的總結點數(shù)為A.219B.221C.229D.231

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

A.IB.JC.KD.H

10.

11.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(x)

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

12.用樹形結構表示實體之間聯(lián)系的模型的是

A.關系模型B.網(wǎng)狀模型C.層次模型D.以上三個都是

13.若某表最常用的操作是在最后一個結點之后插入一個結點或刪除最后一個結點,則采用()存儲方式最節(jié)省運算時間。

A.單鏈表B.給出表頭指針的單循環(huán)鏈表C.雙鏈表D.帶頭結點的雙循環(huán)鏈表

14.

15.程序調(diào)試的任務是()。

A.設計測試用例B.驗證程序的正確性C.發(fā)現(xiàn)程序中的錯誤D.診斷和改正程序中的錯誤

16.以下關于結構化程序設計的敘述中正確的是()。

A.結構化程序使用goto語句會很便捷

B.在c語言中,程序的模塊化是利用函數(shù)實現(xiàn)的

C.一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成

D.由三種基本結構構成的程序只能解決小規(guī)模的問題

17.有以下程序:#include<stdio.h>main(){charch=‘1’;while(ch<‘9’){printf(“%d”,ch-‘0’);ch++;}}程序運行后的輸出結果是()。

A.12345678B.01234567C.0D.1

18.有下列程序:程序執(zhí)行后的輸出結果是()。A.2,3,1,2B.9,9,2,9C.8,10,2,8D.9,9,1,9

19.以下選項中能用作數(shù)據(jù)常量的是()。

A.115LB.0118C.1.5e1.5D.o115

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

A.有一個以上根結點的數(shù)據(jù)結構不一定是非線性結構

B.只有一個根結點的數(shù)據(jù)結構不一定是線性結構

C.循環(huán)鏈表是非線性結構

D.雙向鏈表是非線性結構

二、2.填空題(20題)21.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

22.以下程序運行后的輸出結果是【】。

main()

{charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

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

}

23.軟件測試分為白箱(盒)測試和黑箱(盒)測試?;韭窂綔y試方法屬于()測試。

24.若a是int型變量,則表達式(a=2*3,a*2),a+4的值為______。

25.若輸入tear、test、arj,則下列程序的運行結果為【】。

main()

{char*strl[20],*str2[20],*str3[20];

charswap();

scanf("%s",str1);

scanf("%s",str2);

scanf("%s",str3);

if(strcmp(str1,str2)>0)swap(str1,str2);

if(strcmp(str1,str3)>0)swap(str1,str3);

if(strcmp(str2,str3)>0)swap(str2,str3);

printf("%s%s%s\n",str1,str2,str3);

}

charswap(p1,p2)

char*p1,*p2;

{char*p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);

}

26.下列程序用來將從鍵盤上輸入的2個字符串進行比較,然后輸出2個字符串中第1個不相同字符的ASCII碼之差。例如,輸入的2個字符串分別為abcdef和abceef,則輸出為-1。

#include

main()

{charstr[100],str2[100],c;

inti,s;

printf("\ninputstring1:\n");gest(str1);

printf("\ninputstring2:\n");gest(str2);

i=0;

while((strl[i]==str2[i]&&(strl[i]!=【】))

i++;

s=【】;

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

27.閱讀下面程序,則執(zhí)行后的輸出結果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

28.數(shù)據(jù)元素之間______的整體稱為邏輯結構。

29.若用0至9之間不同的三個數(shù)構成一個三位數(shù),下面程序將統(tǒng)計出共有多少種方法。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,j,k,count=0;

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

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

if(【】)continue;

elsefor(k=0;k<=9;k++)

if(【】)count++;

printf("%d",count);}

30.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

31.若已知a=10,b=20,則表達式!a<b的值為【】。

32.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

main()

{intt=0,s=0,i;

for(i=1;i<=5;i++)

{t=i+______;s=s+t;}

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

}

33.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。

34.以下程序建立了一個帶有頭結點的單向鏈表,鏈表結點中的數(shù)據(jù)通過鍵盤輸入,當輸人數(shù)據(jù)為-1時,表示輸入結束(鏈表頭結點的data域不放數(shù)據(jù),表空的條件是ph->next=NULL).

#include<stdio.h>

structlist{intdatd;structlist*next;};

【】creatlist()

{structlist*p,*q,*ph;

inta;

ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;

printf("Inputanintegernumber,enter-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{

p=(structlist*)malloc(sizeof(structlist));

p->data=a;

q->next=p;

【】=p;

scanf("%d",&a);

}

p->next='\0';

return(ph);

}

main()

{

structlisthead;

head=creatlist();

}

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

36.單獨測試一個模塊時,有時需要一個【】程序驅動被測試的模塊。

37.以下程序的定義語句中,x[1]的初值是【】,程序運行后輸出的內(nèi)容是【】。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");)

}

38.數(shù)據(jù)管理技術的發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個階段,其中數(shù)據(jù)獨立性最高的階段是【】。

39.下面的程序能求a:ab.c文件中最長行和它的位置。

#include<stdio.h>

main()

{intlin,i,j=0,k=0;

charc;

FILE*fp;

fp=(【】("a:ab.c","r");

rewind(fp);

while(fgetc(fp)!=EOF)

i=1;

【】

{i++;

j++;

if(i>=k){k=i;【】;}

}

printf("\n%d\t%d\n",k,lin);

【】;

}

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

main()

{intm,n;

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

{n=m*10+4;

If(【】)continue;

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

三、1.選擇題(20題)41.詳細設計主要確定每個模塊具體執(zhí)行過程,也稱過程設計,下列不屬于過程設計工具的是()

A.DFD圖B.PAD圖C.N-S圖D.PDL

42.如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意順序

43.以下不正確的定義語句是()。

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

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

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

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

44.若已包括頭文件<stdio.h>且已有定義staticcharstr[9];,現(xiàn)要使str從鍵盤獲取字符串"Thelady",應使用

A.scanf("%s",str)

B.for(i=0;i<9;i++)gethchar(str[i]);

C.gets(str);

D.for(i=0;i<9;i++)scanf("%s",&str[i]);

45.若有如下程序:intsub(){staticintn=1;intx=1;x*=n;n++;returnx;}main(){intn,t=1;for(n=1;n<6;n++)t*=sub();printf("%d\n",t);}則程序運行后的輸出結果是()

A.15B.120C.34560D.-30976

46.棧和隊列的共同點是()。

A.都是先進后出B.都是先進先出C.只允許在端點處插入和刪除元素D.沒有共同點

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

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

48.下列程序的運行結果為______。main(){intn;for(n=1;n<=10;n++){if(n%3==0)continue;printf("%d",n);}}

A.12457810B.369C.12D.12345678910

49.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。

A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1

50.按條件f對關系R進行選擇,其關系代數(shù)表達式為

A.

B.

C.

D.

51.以下程序段中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個合法的整型單元的是

A.main(){int*p;fun(p);┇}intfun(int*p){ints;p=&s;}

B.main(){int*p;fun(&p);┇}intfun(int**p){ints;*p=&s;}

C.#include<stdlib.h>main(){int*p;fun(&p);┇}intfun(int**p){*p=(int*)malloc(2);}

D.#include<stdlib.h>main(){int*P;fun(p);┇}intfun(int*p){p=(int*)malloc(sizeof(int));}

52.下列關鍵字中,不屬于C語言變量存儲類別的是______。

A.registerB.autoC.externD.public

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

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結構密切相關

B.程序執(zhí)行的效率只取決于程序的控制結構

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

54.若有下列定義(設int類型變量占2個字節(jié)):floatx=123.4567;則下列語句:printf("x=%5.2f",x);輸出的結果是()。

A.x=123.46B.123.4567C.x=123.4567D.123.46

55.定義如下變量和數(shù)組:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結果是()。for(i=0;i<3;i++)printf("%d",x[i][2-i]);

A.159B.147C.357D.369

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

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

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

A.軟件測試B.概要設計C.軟件維護D.詳細設計

58.設有以下聲明語句streetex{intx;floaty;charz;}example;則下面的敘述中不正確的是______。

A.struct是結構體類型的關鍵字

B.example是結構體類型名

C.x,y,z都是結構體成員名

D.structex是結構體類型

59.請選出可用作C語言用戶標識符的是

A.void,define,WORD

B.a3_b3,_123,IF

C.FOR,--abc,Case

D.2a,Do,Sizeof

60.在面向對象的程序設計中,下列敘述錯誤的是()。

A.任何一個對象構成一個獨立的模塊

B.一個對象不是獨立存在的實體,各個對象之間有關聯(lián),相互依賴

C.下一層次的對象可以繼承上一層次對象的某些屬性

D.上述三種說法都正確

四、選擇題(20題)61.有以下函數(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ù)

62.

63.結構化程序所要求的基本結構不包括()。

A.順序結構B.GOT0跳轉C.選擇(分支)結構D.重復(循環(huán))結構

64.下列條件語句中,輸出結果與其他語句不同的是()。

A.if(a)printf("%dn",x);elseprint[("%d\n",y)

B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)

C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)

D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)

65.一間工廠可有多個工人,則實體工廠和工人之間的聯(lián)系是

A.一對一B.一對多C.多對一D.多對多

66.

下面程序輸出的是()。

main

{intt=l;fun(fun(t));}

fun(inth)

{staticinta[3]={1.2.3};

intk;

for(k=0;k<3;k++)a[k]+=a[k]-h;

for(k=0;k<3;k++)printf("%d",a[k]);

printf("\n");

return(a[h]);}

A.1,2,3,1,5,9,

B.1,3,5,1,3,j,

C.1,3,5,0,4,8,

D.1,3。5,-1,3,7,

67.設有數(shù)組定義:chararray[]="Chinese";則數(shù)組array所占的空間為

A.6個字節(jié)B.7個字節(jié)C.8個字節(jié)D.9個字節(jié)

68.下面關于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

69.有以下程序:

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

70.

71.

72.

73.假設a和b為int型變量,則執(zhí)行以下語句后b的值為()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9B.-2C.-lD.8

74.若有以下程序段(n所賦的是八進制數(shù))

intm=32767,n=032767;

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

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

A.32767,32767B.32767,032767

C.32767,77777D.32767,077777

75.

下列程序的運行結果為()。

#defineMAX(x,y)(x)>(y)?(x):(y)

main

{inta=2,b=3,C=1,d=3,t:

printf("%d\n",(MAX(a+h,c+d))*100):

}

A.500B.5C.4D.400

76.一名教師可講授多門課程,一門課程可由多名教師講授。則實體教師和課程間的聯(lián)系是()。

A.1:l聯(lián)系B.1:m聯(lián)系C.m:l聯(lián)系D.m:n聯(lián)系

77.下列程序的輸出結果是()。#include<stdio.h>main{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[o][1]+a[1][1]+a[1][2]);}A.8B.7C.12D.9

78.

79.

80.若有以下程序:

上面程序的輸出結果是()。

A.5B.7C.1D.3

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如,變量a中的值原為8,b中的值原為3,程序運行后,a中的值為3,b中的值為8。請改正程序中的錯誤,使它得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C

2.D本題考查邏輯運算符的使用。當“&&”的兩個運算對象都是邏輯1時,表達式返回值才是1;“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。

3.C第一次外循環(huán)的值為1,第一次內(nèi)循環(huán)j的值為3,不滿足條件執(zhí)行m*=i*j即m的值為3;第二次j的值為2。不滿足條件執(zhí)行m*=i*j,即的值為6;第三次j的值為1,不滿足條件執(zhí)行m*=i*j,即m的值仍為6。第二次外循環(huán)的值2,j的值為3,滿足條件執(zhí)行break語句跳出循環(huán)。

4.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。

5.D媒體分為感覺媒體、表示媒體、存儲媒體、傳輸媒體和表現(xiàn)媒體五種,“多媒體技術”中的媒體強調(diào)的是感覺媒體。

6.B解析:一個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是一個返回整型指針的函數(shù)。

7.A

8.A本題考查數(shù)據(jù)結構中二叉樹的性質。二叉樹滿足如下一條性質,即:對任意一棵二叉樹,若終端結點(即葉子結點)數(shù)為n0,而其度數(shù)為2的結點數(shù)為n2,則n0=n2+l。根據(jù)這條性質可知,若二叉樹中有70個葉子結點,則其度為2的結點數(shù)為70-1,即69個。二叉樹的總結點數(shù)是度為2、度為1和葉子結點的總和,因此,題目中的二叉樹總結點數(shù)為69+80+70,即219。因此,本題的正確答案是選項A。

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

10.B

11.C

12.C解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關系模型。在層次模型中,實體之間的聯(lián)系是用樹結構來表示的,其中實體集(記錄型)是樹中的結點,而樹中各結點之間的連線表示它們之間的關系。因此,本題的正確答案是C。

13.D

14.B

15.D程序調(diào)試的任務是診斷和改正程序中的錯誤。

16.B濫用90t0語句將使程序的流程毫無規(guī)律,可讀性差,對于初學者來說盡量不要使用,所以A錯誤。—個結構化程序可以包含順序、分支、循環(huán)結構中的一種或多種,所以C錯誤。由三種基本結構構成的程序可以解決任何復雜的問題,所以D錯誤。

17.A表達式“ch-‘0’’將數(shù)字字符轉為數(shù)字。輸出的格式為%d。while循環(huán)從‘1’~‘8’,因此輸出的結果是12345678。故本題答案為A選項。

18.D程序定義了一個整型數(shù)組a,它包含5個整型元素,分別是1,2,3,4,5。數(shù)組名a代表數(shù)組的首地址,另外還定義整型指針P,將a傳給函數(shù)f。在函數(shù)f中,首先將指針s向右移動一個整型變量的長度,此時s指向元素2(a[1])。S[1](a[2]);表示元素3,自增6后s[1](a[2])的值為9。表達式“+=7”;表示將*(s--)指向的元素自增7,即S[0](a[1])的值為9,s向左移動一個整型變量的長度,此時s指向元素1(a[0]),最后將s返回并賦給p。經(jīng)過函數(shù)f的調(diào)用可知:P指向數(shù)組a的第1個元素,a[1]和a[2]值為9。綜上,輸出結果為:9,9,1,9。本題答案為D選項。

19.AA選項中“115L”表示長整型數(shù)據(jù)。B選項是八進制常量的表示方法,但是在八進制中不能含有數(shù)字8,所以B選項錯誤。C選項中e后面應該是整數(shù),而不能是小數(shù)1.5,所以C選項錯誤。D選項中八進制常量應該是以數(shù)字“0”開始,而不是以字母“o”開始。故本題答案為A選項。

20.B解析:如果一個非空的數(shù)據(jù)結構滿足以下兩個條件:(l)有且只有一個根結點;(2)每個結點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結構為線性結構。如果一個數(shù)據(jù)結構不是線性結構,則稱之為非線性結構,故A項錯誤。有一個根結點的數(shù)據(jù)結構不一定是線性結構,如二叉樹,B項說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項錯誤。

21.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當前字符小于下—個字符,則通過中間變量temp將字符兩兩交換,所以第一空應填:str[i],第二空應填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應填:'%s',str。

22.220.000000220.000000解析:注意區(qū)分運算符的優(yōu)先級。先是給c賦值,然后計算x=f*=n/=50,得x=f*=2,最后有x=20。x輸出是按浮點數(shù)的形式輸出的,小數(shù)點后的0不能少。

23.自盒自盒解析:自盒測試法即結構測試,它與程序內(nèi)部結構相關,要利用程序結構的實現(xiàn)細節(jié)設計測試實例。白盒測試法主要有邏輯覆蓋、基本路徑測試等。

24.此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以返回值a+4=6+4=10。

25.arjteartest

26.\0'strl[i]-str2[i]

27.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結合。因為x不大于y,所以執(zhí)行printf('%d\\n',z);語句。

28.邏輯關系邏輯關系

29.i==jk!i&&k!ji==j\r\nk!i&&k!j解析:本題用雙重for循環(huán)寫了一段0~9之間不同的3個數(shù)構成一個三位數(shù)的程序,因為要求三位數(shù)各個位數(shù)的數(shù)不能相同,所以第一個空if語句的條件應為i==j,即當兩個位數(shù)上的數(shù)相同的時候,不再執(zhí)行下面的操作,轉去執(zhí)行for循環(huán)的下一次循環(huán)。第二個空,需要判斷第三位上的數(shù)不能與其他兩位的數(shù)相同。

30.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結構,從而大大減少了程序中的冗余,提高軟件的可重用性。

31.11解析:計算表達式!a<b,先計算!a,因a的值為10,!a的值為0,而關系表達式0<20為真,所以表達式!a<b的值為1。

32.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結果來看,s保存的是最終結果,而s在循環(huán)體中,每次累加一個t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因為i在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應是t*10。

33.252H252H解析:要解答本題,首先要明白在對指針進行加,減運算時,數(shù)字“1”不是十進制數(shù)的“1”,而是指“1”個存儲單元長度。1個存儲單元長度占存儲空間的多少,應該視具體情況而定,如果存儲單元的基類型是血型,則移動1個存儲單元的長度就是位移2個字節(jié);如果存儲單元基類型是float型,則移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。

34.structlist*q

35.101091101091解析:for(表達式1;表達式2:表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達式3的值。然后再檢測表達式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

36.驅動驅動

37.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當i=0時,p[0]=&x[1],p[0][0]=2;當i=1時,p[1]=&x[3],p[1][0]=4;當i=2時,p[2]=&x[5],p[2][0]=6;當i=3時,p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結果為2、4、6、8。

38.數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段解析:在數(shù)據(jù)管理技術的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段,其中數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)階段。

39.fopenwhile(fgetc(fp)!='\n')lin=jclose(fp)fopen\r\nwhile(fgetc(fp)!='\\n')\r\nlin=j\r\nclose(fp)

40.m<10n%4!=0

41.AA)【解析】DFD圖(數(shù)據(jù)流圖)是以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動和處理的過私,只反映系統(tǒng)必須完成的邏輯功能,它是需求分析階段的圖形工具。盒式圖(N—S圖)、問題分析圖

\n(PAD圖)和PDL(偽碼)是詳細設計的常用工具。

42.B解析:由?!昂筮M先出”的特點可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中棧是先進后出的,所以不可能是任意順序。所以B是正確的。它執(zhí)行的順序是:e1進?!鷈2進?!鷈2出?!鷈3進?!鷈4進?!鷈4出?!鷈3出?!鷈1出棧,所以只看出棧序列應為e2,e4,e3,e1。

43.B解析:選項B中初值列表中的初值個數(shù)超過了數(shù)組包含的元素的個數(shù)。

44.C解析:gets(str)是專門用來輸入字符串的函數(shù),可以包含空格,因此只有選項C)正確,其他選項都不正確。注意:通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)。

45.B

46.C棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種“后進先出”的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種“先進先出”的線性表:本題答案為C)。

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

48.A

49.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標是i,說明它前面還有i行,有i*m個元素,數(shù)組第二維的下標是j,說明它前面還有j列,有j個元素,所以共有i*m+j個元素。

50.C解析:選擇運算是一個一元運算,關系R通過選擇運算(并由該運算給出所選擇的邏輯條件)后仍為一個關系。這個關系是由R中那些滿足邏輯條件的元組所組成。如果關系的邏輯條件為f,則R滿足f的選擇運算可以寫成;бf(R)。

51.C解析:在選項A中,main()函數(shù)中定義了一個指針變量P,調(diào)用fun()函數(shù)時把p傳給形參P,在函數(shù)中讓p指向局部變量s,由于函數(shù)調(diào)用返回后,局部變量s將被釋放,因此無法實現(xiàn)讓實參p指向一個整型單元。選項B中實現(xiàn)的也是讓實參p指向一個在函數(shù)fun()定義的局部變量s;選項C在函數(shù)fun()中分配了兩個字節(jié)的內(nèi)存單元并把首地址賦值給形參p指向的變量,即main()函數(shù)的指針變量p中,由于整型變量占兩個字節(jié);選項D在主函數(shù)中定義了一個指針地址變量p,并把指針變量的值傳給形參變量p,在fun()函數(shù)分配了一個整型單元并把首地址賦值給形參指針變量P,由于C語言中變量作為參數(shù)是傳值的,所以并沒有改變對應實參指針變量的值。

52.D解析:變量的存儲類別具體包含四種:自動的(auto),靜態(tài)的(static),寄存器的(register),外部的(extern)。

53.A本題考查程序效率。程序效率是指程序運行速度和程序占用的存儲空間。影響程序效率的因素是多方面的,包括程序的設計、使用的算法、數(shù)據(jù)的存儲結構等。在確定數(shù)據(jù)邏輯結構的基礎上,選擇一種合適的存儲結構,可以使得數(shù)據(jù)操作所花費的時間少,占用的存儲空間少,即提高程序的效率。因此,本題選項A的說法是正確的。

54.A解析:本題考查printf函數(shù)的格式。“%5.2f”格式符中的“f”表示以帶小數(shù)點的形式輸出單精度或者雙精度數(shù):“5”表示指定數(shù)據(jù)輸出寬度為5;“.2”表示指定輸出數(shù)據(jù)小數(shù)位占2位數(shù),并對截去的第一位小數(shù)做四舍五入處理。

55.C解析:題中通過二維數(shù)組的行、列下標來定位元素的位置從而實現(xiàn)元素的引用。注意:二維數(shù)組和數(shù)組元素的址。

56.C解析:選項A中for和case為C語言中的保留字,不能作為用戶標志符,故A錯誤。選項B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項D中void為C語言中的保留字,不能作為用戶標志符,故D錯誤。所以,4個選項中選項C符合題意。

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

58.B解析:example是結構體變量名。

59.B解析:C語言規(guī)定用戶標識符由字母、數(shù)字和下畫線組成,且第一個字符必須是字母或下畫線,可見選項C),D)是錯誤的;此外,C語言不允許用戶將關鍵字作為標識符,而選項A)中的void正是C語言的關鍵字。

60.B解析:在面向對象程序設計中,對象是可以獨立存在的實體。

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

62.D

63.B1966年Boehm和Jacopini證明了程序設計語言僅僅使用順序、選擇和重復三種基本控制結構就足以表達出各種其他形式結構的程序設計方法。

64.D主要考查if判斷語句,A選項if(a),如果a為真,則輸出X,否則輸出Y。B選項if(a==0),如果a恒等于0,則輸出Y,否則輸出X。C選項a(!=o),如果a不等于0,則輸出X,否則輸出y。D選項if(a==0),如果a恒等于0,則輸出X,否則輸出y。由以上結論可知,輸出結果不同的為D選項。

65.B常見的實體之間的聯(lián)系有一對一、一對多、多對一、多對多。如果對于實體集A中的每一個實體(工廠),實體集B中有n個實體(工人)(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體(工人),實體集A中至多只有一個實體(工廠)與之聯(lián)系,則稱實體集A與實體集B有一對多聯(lián)系。

66.D

\n本題考查雙重函數(shù)調(diào)用及for循環(huán)使用,fun函數(shù)中第一個for循環(huán)語句的作用是給數(shù)組a賦值。當?shù)谝淮握{(diào)用fun函數(shù)時,把實參1傳給形參,輸出a數(shù)組的元素為1,3,5;第二次調(diào)用fun函數(shù)時,由于數(shù)組a為靜態(tài)局部變量,故輸出a數(shù)組的元素為一1,3,7。

\n

67.C本題主

溫馨提示

  • 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

提交評論