2021年山西省呂梁市全國計算機等級考試C語言程序設計測試卷一(含答案)_第1頁
2021年山西省呂梁市全國計算機等級考試C語言程序設計測試卷一(含答案)_第2頁
2021年山西省呂梁市全國計算機等級考試C語言程序設計測試卷一(含答案)_第3頁
2021年山西省呂梁市全國計算機等級考試C語言程序設計測試卷一(含答案)_第4頁
2021年山西省呂梁市全國計算機等級考試C語言程序設計測試卷一(含答案)_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年山西省呂梁市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列敘述中正確的足

A.軟件交付使用后還需要進行維護

B.軟件一旦交付使用就不需要再進行維護

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護是指修復程序中被破壞的指令

2.C語言中的變量名只能由字母,數(shù)字和下劃線三種字符組成,且第一個字符()。

A.必須為字母B.必須為下劃線C.必須為字母或下劃線D.可以是字母,數(shù)字或下劃線中的任意一種

3.設有以下函數(shù):voidfun(intn,char*s){…}則下面對函數(shù)指針的定義和賦值均正確的是()。

A.void(*pf)();pf=fun;

B.void*pf();pf=fun

C.void*pf();*pf=fun;

D.void(*pf)(int,char);pf=&fun;

4.由兩個棧共享一個向量空間的好處是______。

A.減少存取時間,降低下溢發(fā)生的機率

B.節(jié)省存儲空間,降低上溢發(fā)生的機率

C.減少存取時間,降低上溢發(fā)生的機率

D.節(jié)省存儲空間,降低下溢發(fā)生的機率

5.設某無向圖中有n個頂點e條邊,則建立該圖鄰接表的時間復雜度為()。

A.O(n+e)B.O(n^2)C.O(ne)D.O(n^3)

6.有如下嵌套的if語句:if(a<b)if(a<c)k=a;elsek=C:elseif(b<c)k=b;elsek=C;以下選項中與上述if語句等價的語句是()。A.k=(a<b)?a:b;k=(b<c)?b:C;

B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);

C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);

D.k=(a<b)?a:b;k=(a<c)?a:c;

7.在一個無向圖中,所有頂點的度數(shù)之和等于所有邊數(shù)的()倍。

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

8.定義結(jié)構(gòu)體數(shù)組:structstu{intnum;charnameE20];}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的輸出結(jié)果為()。A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I

9.下面哪個序列不是此圖的一個拓撲排序()A.ebfgadchB.aebdgfchC.adchebfgD.Aedbfgch

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

A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存諸結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存諸結(jié)構(gòu)影響數(shù)據(jù)處理的效率

11.有以下程序#include<stdi0.h>main(){inta[]={2,3,5,4),i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;casel:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運行后的輸出結(jié)果是()。A.3344B.2050C.3040D.0304

12.有以下函數(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ù)

13.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

14.以下程序中函數(shù)sort的功能是對數(shù)組a中的數(shù)據(jù)進行由大到小的排序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[]={1,2,3,4,5,6,7,8,9,10},i;son(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運行后的輸出結(jié)果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.1,2,3;8,7,6,5,4,9,10,

D.1,2,10,9,8,7,6,5,4,3,

15.以下程序的功能是()。#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.將磁盤文件的內(nèi)容顯示在屏幕上

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

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

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

16.若有定義“inta[2][3],*p[3];”,則以下語句中正確的是()。

A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a;

17.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序運行后的輸出結(jié)果是()。

A.20045537B.20044550C.20042580D.20041703

18.

19.

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

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

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

intk=0;

voidfun(intm)

{m+=k;k+=m;

printf("m=%dk=%d",m,k++)

}

main()

{inti=4;

fun(i++);

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

}

22.無論對于順序存儲,還是鏈接存儲的棧和隊列來說,進行插入或刪除運算的時間復雜性均相同,則為【】。

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

24.在算法正確的前提下,評價一個算法的兩個標準是【】。

25.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

whi1e()s[i]){d[j]=【】:j++;}

d[j]=0;

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

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

voidfun(int*n)

{while((*n))

printf("%d",(*n)--);

}

main()

{inta=10;

fun(&a);

}

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

main()

{inti;

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

{if(i>4)

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

break;}

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

29.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請?zhí)羁铡?/p>

main()

{inti,j,x;

for(j=4;j>0;j--)

{for(i=1;i<=4;i++)

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

30.算法的復雜度主要包括【】復雜度和空間復雜度。

31.下面程序的功能是:對字符串從小到大進行排序并輸出,請?zhí)羁铡?/p>

#include"string.h"

#include"stdio.h"

sort(char*a[],intn)

{inti,j;

char*p;

for(j=1;j<=n-1;j++)

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

if(())>0)

{p=a[i];

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

a[i+1]=p;}

}

main()

{inti;

char*book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};

sort(());

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

printf("%s\n",book[i]);

}

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

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

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

33.下面程序的運行結(jié)果是______。

#include<stdio.h>

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

34.在E-R圖中,矩形表示【】。

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

36.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護o

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

main()

{chars[]="abcdef";

s[3]='\0';

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

}

38.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inti=10,j=0;do{j=j+i;i--;}while(i>5);printf("%d\n",j);}

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%\n",p);

}

40.一棵二叉樹第6層(根結(jié)點為第一層)的結(jié)點最多為______個。

三、1.選擇題(20題)41.以下四個程序中,完全正確的是()。

A.#include<stdio.h>main();{/*programmlng*/printf("programming!\n");}

B.#include<stdio.h>main(){/*/programmingprintf("programming!\n");}

C.#include<stdio.h>main(){/*programming*/printf("programming!\n");}

D.include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

42.計算機軟件系統(tǒng)包括______。

A.計算機與外部設備B.硬件系統(tǒng)與軟件系統(tǒng)C.系統(tǒng)軟件與應用軟件D.CPU與外部設備

43.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的()。

A.存儲問題B.共享問題C.安全問題D.保護問題

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

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6)};

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

D.mtx[2][3]={1,2,3,4,5,6};

45.下面程序段的執(zhí)行結(jié)果可能為()。main(){intb[]={1,2,3),i;for(i=1;i<=4;++i)printf("%u\t",b[i]);}

A.12365516B.0123C.2365516285D.程序不能通過編譯

46.設x,y均為int型變量,且x=10,y=3,則printf("%d\n"x-,-y);語句的輸出結(jié)果是______。

A.10,3B.9,3C.9,2D.10,2}

47.有以下程序:#include<stdio.h>main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()。

A.21,43B.43,21C.43,00D.21,00

48.下面程序的輸出結(jié)果是______。main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;ptintf("%d\n",*p+9);}

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

49.結(jié)構(gòu)化程序設計的核心和基礎是()。

A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設計方法C.結(jié)構(gòu)化設計理論D.結(jié)構(gòu)化編程方法

50.當說明一個結(jié)構(gòu)體變量時,系統(tǒng)分配給它的內(nèi)存是()。

A.各成員所需內(nèi)存量的總和

B.結(jié)構(gòu)中第一個成員所需內(nèi)存量

C.成員中占內(nèi)存量最大者所需的容量

D.結(jié)構(gòu)中最后一個成員所需內(nèi)存量

51.已知下列函數(shù)定義setw(int*b,intm,intn,intdat){intk;for(k=0;k<m*n,k++){*b=dat;b++;}}則調(diào)用此函數(shù)的正確寫法是(假設變量a的說明為inta[50])()

A.setw(*a,5,8,1);

B.setw(&a,5,8,1);

C.setw((int*)a,5,8,1);

D.setw(a,5,8,1);

52.有以下程序unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a,u.z=6;a.k=0;printf("%d\n",a.u.x);}程序運行后的輸出結(jié)果是()

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

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點有且僅有一個前件和后件

D.線性表可以是空表

54.下列敘述中,錯誤的一條是______。

A.已知i=3,執(zhí)行語句k=(++i)+(++i)+(++i)后,k的值為15

B.邏輯表達式!(5>3)&&(2<4)的值為0

C.表達式'c'&&'d'||!(3+4)的值為1

D.整型、實型、字符型數(shù)據(jù)可以混合運算

55.語句int(*ptr)()的含義是()。

A.ptr是一個返回值是血的函數(shù)

B.ptr是指向int型數(shù)據(jù)的指針變量

C.ptr是指向函數(shù)的指針,該函數(shù)返回一個血型數(shù)據(jù)

D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針

56.假設在turboc2.0采用small模式編譯如下程序main(){chara[4]={'a','b'};char*b="abc";printf("%d,%d",sizeof(a),sizeof(b));}其輸出結(jié)果為______。

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

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

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

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

D.intx[2][3]={1,2,3,4,5,6};

58.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=1,b=3;if((++a<0)&&!(b--<=0))printf("%d,%d\n",a,B;elseprintf("%d,%d\n",b,A);}

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

59.若有語句:char*line[5];以下敘述中正確的是()。

A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量

B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C.定義line是一個指針數(shù)組,語句中的.號稱為求地址運算符

D.定義line是一個指向字符型函數(shù)的指針

60.下列選項中,當x為大于1的奇數(shù)時,值為0的表達式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

四、選擇題(20題)61.

62.有以下程序

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

A.6B.9C.11D.7

63.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關,而與數(shù)據(jù)的存儲結(jié)構(gòu)無關

B.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量

C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應的

D.算法的時間復雜度與空間復雜度一定相關

64.有以下程序

voidfun(inta,intb,intc)

{

a=456,b=567,c=678;

}

main()

{

intx=10,y=20,z=30;

fun(x,y,z);

printf("%d,%d,%d\n",x,y,z);

}

輸出結(jié)果是

A.10,20,30B.30,20,10

C.456,567,678D.678,567,456

65.有以下程序若想通過鍵盤輸入,使得al的值為12,a2的值為34,el的值為字符a,c2的值為字符b,程序輸出結(jié)果是:12,a,34,b則正確的輸入格式是()。

66.

67.有以下程序:

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

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

68.有如下程序

#include<stdio.h>

main()

{

FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abc");

fclose(fp1);

}

若文本文件f1.txt中原有內(nèi)容為good,則運行以上程序后,文件f1.txt中的內(nèi)容為

A.goodabcB.a(chǎn)bcd

C.a(chǎn)bcD.a(chǎn)bcgood

69.交換兩個變量的值,不允許用臨時變量,應該使用下列()位運算符。A.A.&B.^C.||D.~

70.(52)棧和隊列的共同點是()

A.都是先進后出B.都是先進先出

C.只允許在端點處插入和刪除元素

D.沒有共同點

71.設有定義:

則以下賦值語句中錯誤的是()。

A.data2=(2,6);

B.data2=datal;

C.data;real=datal.real;

D.data2.real=datal.unreal;

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

A.20,024,0x14

B.20,24,14

C.20,0x14,024

D.20,20,20

73.耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。

A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨立性

B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性

C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度

D.內(nèi)聚性是指模塊間互相連接的緊密程度

74.以下敘述中正確的是()。

A.預處理命令行必須位于C源程序的起始位置

B.在C語言中,預處理命令行都以“#”開頭

C.每個C程序必須在開頭包含預處理命令行:#include

D.C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能

75.軟件生命周期中,花費最多的階段是()。

A.詳細設計B.軟件編碼C.軟件測試D.軟件維護

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

A.C程序可以由多個程序文件組成

B.一個c語言程序只能實現(xiàn)一種算法

C.c程序可以由一個或多個函數(shù)組成,

D.一個C函數(shù)可以單獨作為一個C程序文件存在

77.一個棧的初始狀態(tài)為空?,F(xiàn)將元素l、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,惻元素出棧的順序是()。A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.5432lEDCBA

78.

定義結(jié)構(gòu)體數(shù)組:

structstu

{intnum;

charnameE20];

}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");

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

printf("%d%c",x[i].num,x[i].name[2]);

以上程序段的輸出結(jié)果為()。

A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I

79.有以下程序

main()

{inti=010,j=0X10;

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

}

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

A.10,10B.8,10

C.8,16D.10,16

80.有以下程序五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將tt所指字符串中的小寫字母全部改為對應的大寫字母,其他字符不變。

例如,若輸入“Ab,cD”,則輸出“AB,CD”。

請改正程序中的錯誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

六、程序設計題(1題)82.學生的記錄由學號和成績組成,M名學生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請編寫函數(shù)proc,其功能是:按分數(shù)的高低排列學生的記錄,高分在前。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#defineMl6typedefstruct{charnum[l0];intS;}STREC:voidproc(STRECa[]){inti,j;STRECt;for(i=1;i<M;i++)/*用冒泡法來按從高到低排序*/for(j=0;j<M-1;j++)。if(a[j].s<a[j+1].s)//*按分數(shù)的高低排列學生的記錄,高分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;)}voidmain{STRECstu[M]={{"GA005",85),{"GA003",76},{"GA002",69},{"GA004",85),{"GA001",91),{"GA007",72),{"GA008",64),{"GA006",87),{"GA015",85),{"GA013",91),{"GA012",64),{¨GA014",91),{"GA011",66),{"GA017",64},{"GA018",64),{"GA016",72}};inti;proc(stu);printf("Thedataaftersorted:\n");for(i=0;i<M;i++){if(i%4==0)//每行輸出4個學生記錄printf("n");printf("%s%4d",stu[i],num,stu[i].s);}printf("\n");}

參考答案

1.A解析:本題考核軟件維護的概念.維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段,在軟件交付使用后,還需要進行維護。軟件維護通常有以下四類:為糾正使用中出現(xiàn)的錯誤而進行的改正性維護;為適應環(huán)境變化而進行的適應性維護;為改進原有軟件而進行的完善性維護;為將來的可維護和可靠而進行的預防性維護。軟件維護不僅包括程序代碼的維護,還包括文檔的維護。綜上所述,本題的正確答案是A,其余選項的說法錯誤。

2.C

3.A函數(shù)指針的定義格式為函數(shù)類型(*指針變量名)(形參列表);函數(shù)名和數(shù)組名一樣代表了函數(shù)代碼的首地址,因此在賦值時,直接將函數(shù)指針指向函數(shù)名就行了。所以選項A正確。

4.B

5.A

6.C條件運算符(?:)是C語言中唯一的一個三目運算符,它是對第一個表達式做真/假檢測,然后根據(jù)結(jié)果返回兩個表達式中的一個作為運算的結(jié)果。<表達式1>?<表達式2>:<表達式3>。在運算中,首先對第一個表達式進行檢驗,如果為真,則返回表達式2的值;如果為假,則返回表達式3的值。

7.C

8.A本題主要考查結(jié)構(gòu)體數(shù)組的使用。x[i].num為結(jié)構(gòu)體x[i]中的hum成員,x[i].num[2]是結(jié)構(gòu)體x[i]中name成員的第3個元素。程序執(zhí)行循環(huán)過程時:第1次循環(huán),i=1,輸出x[i].num,x[1].name[2]的值;第2次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第3次循環(huán),i=3,輸出X[3].hum,x[3].name[2]的值,即4A;第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即5U。

9.C

10.D數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),用的存儲結(jié)構(gòu)有順序和鏈式結(jié)構(gòu)。用不同的存儲結(jié)構(gòu),其處理的效率是不同的。

11.C本題考查嵌套分支語句。共輸出4個值:當i=0時,i%2取余后還是0,則執(zhí)行ease0語句,繼續(xù)switch語句,此時i為0,數(shù)據(jù)的下標是從0開始的,a[03的值為2,則a[0]%2=0,繼續(xù)執(zhí)行case0,數(shù)組a[0]++,值變?yōu)?,執(zhí)行break跳出第二重開關語句。出來后繼續(xù)執(zhí)行break,跳出第一重開關語句,繼續(xù)循環(huán);輸出第一個值為3。i++后值為1,i%2=1%2取余后值為1,執(zhí)行casel,將0賦給a[l],退出開關語句,輸出第二個值為0。i++后值為2,i%2=2%2取余后值為0’a[2]的值為5,則a[2]%2=1,繼續(xù)執(zhí)行casel,數(shù)組a[2]--,值變?yōu)?,執(zhí)行break跳出第二重開關語句。出來后繼續(xù)執(zhí)行break,跳出第一重開關語句,繼續(xù)循環(huán);輸出第三個值為4。i++后值為3,i%2=3%2取余后值為1,執(zhí)行casel,將0賦給a[3],退出開關語句,輸出第四個值為0。結(jié)果為3040。

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

13.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)

14.C解析:在main函數(shù)中調(diào)用sort函數(shù)時,實參&aa[3]把數(shù)組元素aa[3]的首地址傳給形參數(shù)組a,使aa[3]與a[0]相對應。sort函數(shù)將從aa[3]開始的連續(xù)5個數(shù)進行了從大到小的排序,其他數(shù)組元素不變。

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

16.CA選項錯誤,因為p是指向一個指針數(shù)組,而數(shù)組名相當于常量,不能重新賦值。B選項錯誤,因為p[0]是一個int指針,也就是int*,而a是一個指向指針的指針int**。C選項正確,因為p[0]是int*,a[1][2]是int,&a[1][2]是int*,類型吻合。D選項錯誤,因為a作為數(shù)組名,不能取地址,即使能取,P[1]是int*,&a是int***,類型不吻合。故本題答案為C選項。

17.D解析:函數(shù)f中定義了結(jié)構(gòu)體類型的變量P作為形參,在main函數(shù)中,將結(jié)構(gòu)體變量s[0]中的值傳給了形參變量P,在函數(shù)f中,雖然改變了p中的內(nèi)容,但其改變對main函數(shù)中s[0]的值不產(chǎn)生影響,所以main函數(shù)中輸出s[0]的數(shù)據(jù)仍然是main函數(shù)中初始化時的數(shù)據(jù)。

18.D

19.C

20.D

21.m=4k=4i=5k=5m=4k=4i=5k=5解析:main()函數(shù)首先定義了1個變量i,并初始化為4。然后用表達式i++的值為實參調(diào)用函數(shù)fun(),因為后綴”表達式的值為增1之前的值,故此時傳遞給函數(shù)的參數(shù)m值為4。fun()函數(shù)中,首先讓形參m自增k,由于此時k還是0,所以m不變,然后讓k自增m,執(zhí)行后k的值和m相同為4。最后fun()函數(shù)輸出m和k廿的值,兩個值都是4,故首先輸出了“m=4k=4”,輸出完后,k自增1(k變?yōu)?)。fun()函數(shù)執(zhí)行完畢,返回main()函數(shù)中,此時i會被自增1變?yōu)?,故接著又輸出的i和k的值都是5。故最終輸出結(jié)果是“m=4k=4i=5k=5”。

22.O(2)

23.*2*4*6*8**2*4*6*8*解析:程序中定義了一個字符數(shù)組a,并初始化為123456789,接著定義了一個指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個while循環(huán),此循環(huán)的作用是:當i為偶數(shù)時,將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

24.時間復雜度和空間復雜度時間復雜度和空間復雜度

25.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應使用i的自增后置來實現(xiàn)。

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

27.1.09877e+010

28.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當i=1時,因為if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i=3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1;執(zhí)行第三次for循環(huán)時,i=5,if語句條件滿足,所以執(zhí)行printf('%d\\n',i),輸出5,然后break語句跳出了for循環(huán)。

29.ii解析:外循環(huán)是遞減的,方陣中的每個元素為(j-1)*4+i,因此空格處填i。

30.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

31.strcmp(a[i]a[i+1])book6strcmp(a[i],a[i+1])book,6解析:此程序段的功能是使字符串從大到小進行排列。顯然,第一空白處,是利用strcmp函數(shù)比較字符串a(chǎn)[i]和a[i+1]的大小,若不符合題意,就進行調(diào)換;main函數(shù)中,sort函數(shù)是對數(shù)組book中的字符串按從小到大進行排序,所以第二空白處填入“book,6”(6是指book所指向的字符串的個數(shù))。

32.77解析:在C語言中,宏定義是直接替換的,所以在劉表達式MAX(a+b,c+d)*10進行替換后,表達式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個條件表達式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個表達式的值(否則用(c+d)*10的值作為整個表達式的值),而(a+b)的值為7。所以整個表達式的值為7。

33.

34.實體實體解析:E-R模型中,有3個基本的抽象概念:實體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實體,菱形框表示聯(lián)系,橢圓形框表示屬性。

35.概念概念

36.完善性完善性解析:軟件維護活動包括以下幾類:改正性維護、適應性維護、完善性維護和預防性維護。完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

37.abcabc解析:字符串的結(jié)束標記'\\0',當輸出一個存放在字符數(shù)組中的字符串時,只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個字符“abc”。

38.4040解析:分析程序,初始時i=10,j=0,這時do循環(huán)中的“i=j+i”

39.efghefgh解析:函數(shù)ss的作用是讓形參指針s指向該字符串的右半部分。主函數(shù)中首先定義了一個字符型指針變量p和字符型指針str,并初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(str)的返回值)所指向的字符串為“efgh”。

40.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結(jié)點。第6層的結(jié)點數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點最多數(shù)”和“某一層的結(jié)點最多數(shù)”。前者的計算是深度為m的二叉樹最多有2m-1個結(jié)點。

41.C解析:選項A)main();后面不應該有分號;選項B)中的注釋語句不正確;選項D)的include前缺少#。

42.C

43.B解析:數(shù)據(jù)庫產(chǎn)生的背景就是計算機的應用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對數(shù)據(jù)共享的要求越來越高。共享的含義是多個用戶、多種語言、多個應用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫技術,以便對數(shù)據(jù)庫進行管理。因此,數(shù)據(jù)庫技術的根本目標就是解決數(shù)據(jù)的共享問題。故選項B正確。

44.B解析:二維數(shù)組賦初值時,第一個維數(shù)即行數(shù)可以省略,但是列數(shù)不能省略。因此選項A、C正確。選項D是按數(shù)據(jù)在二維數(shù)組中的順序初始化。在選項B中,列維數(shù)的初始化格式跟定義的維數(shù)不一致,為錯誤選項。

45.C解析:本題使用了一個for循環(huán)輸出b[1]~b[4]的值,由于數(shù)組b定義時初始化列表只有3個值,所以數(shù)組b的長度為3,下標范圍是0~2,故輸出的前面兩個數(shù)一定是2和3,后面的數(shù)就不能確定了,因為已經(jīng)超出數(shù)組b的范圍。故正確答案為C。

46.D解析:C語言的自減運算符有前置與后置兩種形式。當自減運算符前置時,變量先自減一后再參與表達式運算;而后置時,變量先參與表達式運算后再自身減一。

47.A解析:int型變量和字符數(shù)組ch共用兩個字節(jié)的存儲單元,通常ch[0]位于低字節(jié),ch[1]位于高字節(jié),所以s.ch[0]=21,s.c[1]=43。

48.C解析:p是一個指向整型數(shù)據(jù)的指針,執(zhí)行p=a后,p指向a[0]。指針運算比算術運算的級別高,先運算*p,得到1,然后執(zhí)行加9,結(jié)果等于10。

49.CC。【解析】結(jié)構(gòu)化程序設計的核心和基礎是結(jié)構(gòu)化設計理論,其中包括:結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設計方法和結(jié)構(gòu)化編程方法。

50.A解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員所占內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元,而共用體變量所占的內(nèi)存長度等于最長的成員的長度。

51.D

52.D

53.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C.是錯誤的。

54.A

55.C解析:本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標識符(指針變量名)()。“類型標識符”為函數(shù)返回值的類型。

56.A解析:用small模式編譯,指針變量占2個字節(jié)。sizeof(array):數(shù)組名array代表數(shù)組本身,sizeof函數(shù)測出的是整個數(shù)組的大小。a數(shù)組的大小為4,b指針變量的大小為2。

57.B解析:二維數(shù)組的初始化有以下幾種形式:①分行進行初始化;②不分行進行初始化;③部分數(shù)組元素進行初始化;④省略第一維的定義,不省略第二維的定義。選頃B)等號右邊分了3行,大于等號左邊數(shù)組的行數(shù)2。

58.C

59.A解析:由于運算符[]優(yōu)先級比*高,所以line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量。

60.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項D)等于關系表達式的結(jié)果為假,即等于0。

61.D

62.A本題首先定義了3個字符數(shù)flip、q、r,并分別被初始化。數(shù)組p;}i旨定的大小為20,初始化列表為la,b,c,d},即只指定了前4個元素的內(nèi)容,根據(jù)c語言的規(guī)定,初始化列表不足時,其余元素均自動初始化為0。然后通過streat()函數(shù),將字符串r連接到字符串p之后,即執(zhí)行后p中的內(nèi)容為“123d123de”。因為“strlen(q)”表示求字符串q的長度,很明顯為3,所以語句“strcpy(p+strlen(q),q);”的作用就是:將字符串q復制到數(shù)9lp的第4個元素位置處。

63.B解析:本題考查數(shù)據(jù)結(jié)構(gòu)中有關算法的基本知識和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)都影響算法的效率。選項A的說法是錯誤的。算法的時間復雜度是指算法在計算機內(nèi)執(zhí)行時所需時間的度量;與時間復雜度類似,空間復雜度是指算法在計算機內(nèi)執(zhí)行時所需存儲空間的度量。因此,選項B的說法是正確的。

數(shù)據(jù)之間的相互關系稱為邏輯結(jié)構(gòu)。通常分為四類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲器中的映象,它包含數(shù)據(jù)元素的映象和關系的映象。存儲結(jié)構(gòu)在計算機中有兩種,即順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)??梢?,邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)不是一一對應的。因此,選項C的說法是錯誤的。

有時人們?yōu)榱颂岣咚惴ǖ臅r間復雜度,而以犧牲空間復雜度為代價。但是,這兩者之間沒有必然的聯(lián)系。因此,選項D的說法是錯誤的。

64.A本題考查函數(shù)中變量的作用范圍,在主函數(shù)中給變量x、y、z賦值,然后將其作為實參傳遞給了函數(shù)fun(),雖然在函數(shù)fun()中改變了這三個變量的值,但只是同名的局部變量,不影響函數(shù)中變量的值。所以,在調(diào)用函數(shù)fun()結(jié)束后,主函數(shù)三個變量的值未改變,即形參值的改變不能影響實參值。

65.A在輸入多個數(shù)據(jù)時,如果格式控制串中沒有非格式字符,則認為所有輸入的字符均為有效字符。因此應按選項A)的順序輸人數(shù)據(jù)。

66.A

67.A題目中靜態(tài)局部變量a,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元,在程序整個運行期間都不釋放。所以第-次調(diào)用函數(shù)執(zhí)行n+=a++;時a先與n相加在再進行自增。n的值為4,a的值為2,且a變量執(zhí)行完后空間沒有釋放。再執(zhí)行s:。+f(a)時,s的值為4,調(diào)用f(a)函數(shù)時n的返回值為n=3+2=5,且此時a的值為3了。所以s的值為9。

68.Cfp1=fopen('f1.txt','w')表示打開名為f1.txt的文件,使用文件方式為向該文件寫數(shù)據(jù),如果原來不存在該文件,則在打開時新建一個以指定的名字命名的文件;如果原來已存在一個以該文件命名的文件,則在打開時將該文件刪去,然后重新建立一個新文件,所

溫馨提示

  • 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

提交評論