2022年遼寧省撫順市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2022年遼寧省撫順市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2022年遼寧省撫順市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2022年遼寧省撫順市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2022年遼寧省撫順市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

2022年遼寧省撫順市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下選項中與“(!a==0)”的邏輯值不等價的表達式是()。

A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)

2.有以下程序:

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

A.0B.一1C.1D.7

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

A.算法的執(zhí)行效率與數(shù)據(jù)存儲結構無關

B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.以上3種描述都不對

4.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

5.下列對于線性鏈表的描述中正確的是()。

A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

6.寫出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波蘭表達式()。

A.a(b-c*d)*+e-(f/g(h+i*j-k)*)

B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)

C.a(bcd*-)*+e-(fg/hij*+k-*)

D.abcd*-*e+fg/hij*+k-*-

7.C語言的邏輯表達式在特定情況下會產(chǎn)生“短路”現(xiàn)象。若有邏輯表達式“x++&&y++,”則以下敘述中正確的是()。

A.若x的值為0,則“y++”操作被“短路”,y值不變

B.若x的值為1,則“y++”操作被“短路”,y值不變

C.若y的值為0,則“&&”運算被“短路”,y值不變

D.若y或x的值為0,則表達式值為0,“x++”和“y++”均不執(zhí)行

8.若在以下定義和賦值語句,則才s數(shù)組的第i行第j列(假設i,j已正確說明并賦值)元素地址的合法引用為ints[2][3]={0},(*p)[3];p=s;

A.*(*(p+i)+j)B.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]

9.以下程序執(zhí)行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不確定D.0

10.若有定義“intk=7,x=12;”,則以下表達式值為3的是()。

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

11.當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是______。

A.數(shù)組的長度B.數(shù)組的首地址C.數(shù)組每一個元素的地址D.數(shù)組每個元素中的值

12.若有以下定義和語句:#include<stdio.h>charsl[10]=“abcd!”,*s2=“\nl23\\”;printf(“%d%d\n”,strlen(s1),strlen(s2));程序的運行結果是()。

A.107B.105C.55D.58

13.

14.結構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法

A.對象B.數(shù)據(jù)結構C.數(shù)據(jù)流D.目標

15.若已定義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]

16.軟盤上第()磁道最重要,一旦損壞,該盤就不能使用了。

A.0B.40C.1D.80

17.以下能正確定義一維數(shù)組的選項是______。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

18.數(shù)據(jù)結構若采用鏈式存儲結構,要求內(nèi)存中可用存儲單元的地址()。

A.必須是連續(xù)的B.部分地址必須是連續(xù)的C.一定是不連續(xù)的D.連續(xù)不連續(xù)都可以

19.以下不能將s所指字符串正確復制到t所指存儲空間的是()A.do{*t++=*s++;}while(*s);

B.for(=0;t[的]=s@];i++);

C.while(*t=*s){t++;s++}

D.for(i=0.j=0;t[i++]=sj++];);.

20.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調(diào)試

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

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

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

}

22.按照“先進先出”的原則組織數(shù)據(jù)的結構是______。

23.若有如下定義:

int[]={11,24,56,19,29,39),*t=s;

則不移動指針t,且通過指針t引用數(shù)組中值為29的元素的表達式是【】。

24.以下程序的輸出結果是______。

main()

{chars[]="abcdef";

s[3]='\0';

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

}

25.以下程序用來輸出結構體變量ex所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));}

26.設有如下定義

#defineMYSWAP(z,x,y){z=x;x=y;y=z;}

floata=5,b=16,c;

MYSWAP(______,a,b);

27.以下函數(shù)sstrcat()的功能是實現(xiàn)字符串的連接,即將t所指字符串復制到s所指字符串的尾部。例如:s所指字符串為abed,t所指字符串為efgh,函數(shù)調(diào)用后s所指字符串為abodefgh。請?zhí)羁铡?/p>

#include<string.h>

voidsstrcat(char*s,char*t)

{intn;

n=strlen(s);

while(*(s+n)=【】){s++;t++;}

}

28.當先后輸入1、3、4、12、23時,屏幕上出現(xiàn)【】;再輸入12時,則屏幕上出現(xiàn)【】。

#include<stdio.h>

#defineN5

main()

{inti,j,number,top,bott,min,loca,a[N],flag;

charc;

printf("Pleaseinput5numbers(a[i]>a[i-1])\n");

scanf("%d",&a[0]);

i=1;

while(i<N)

{scanf("%d",&a[i]);

if(a[i]>=a[i-1))i++;

}

printf("\n");

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

printf("\n");

flag=1;

while(flag)

{scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((number<a[0])||(number>a[N-1]))loca=-1;

while((loca==0)&&(top<=bott))

{min=(bott+top)/2;

if(number==a[min])

{loca=min;

printf("%disthe%dthnumber\n",number,loca+1);

}

elseif(number<a[min])bott=min-1;

elsetop=min+1;

}

if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);

c=getchar();

if(c=='N'||c=='n')flag=0;

}

}

29.當線性表采用順序存儲結構實現(xiàn)存儲時,其主要特點是______。

30.數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨立性,數(shù)據(jù)獨立性包括物理獨立性和【】兩個含義。

31.某二義樹中度為2的結點有18個,則該二叉樹中有______個葉子結點。

32.對長度為8的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為()。

33.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

34.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】

35.軟件工程的出現(xiàn)是由于【】。

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

#include<stdio.h>

main()

{chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{if(i%2==0)*p='*';

p++;i++;

}

puts(a);

}

37.與表達式a+=b等價的另一書寫形式是______。

38.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結果是______。

#definePI3.14159;printf("PI=%P",PI);

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

#include<stdio.h>

main()

{intx=10,y=10,i;

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

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

}

40.若線性表的長度經(jīng)常發(fā)生變化,那么該線性表應采用的存儲結構是【】。

三、1.選擇題(20題)41.在下列語句中,其含義為“q為一個指針的函數(shù),該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q)0;C.int*q;D.int*q();

42.對下面的程序進行編譯與連接生成可執(zhí)行文件c.exe,并在DOS命令提示符下輸入:cIsaid"IloveChina"!程序代碼如下:main(intargc,char*argv[]){printf("%d",argC);}其輸出結果為______。

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

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

A.C語言的源程序不必通過編譯就可以直接運行

B.C語言中的每條叫執(zhí)行語句最終都將被轉換成二進制的機器指令

C.C源程序經(jīng)編譯形成的二進制代碼可以直接運行

D.C語言中的函數(shù)不可以單獨進行編譯

44.以下能正確定義字符串的語句是()。

A.charstr[]={'\064'};

B.charstr="kx43";

C.charstr=";

D.charstr[]="\0";

45.以下程序段的執(zhí)行結果為#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}

A.SUM=9B.SUM=12C.SUM=18D.SUM=28

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

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

47.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。下列不能將變量c中的大寫字母轉換為對應小寫字母的語句是()。

A.c=(c-'A')%26+'a'

B.c=c+32

C.c=C-'A'+'a'

D.c=('A'+C)%26-'a'

48.非空的循環(huán)單鏈表head的尾結點(由p所指向),滿足()

A.p->next==NULIB.p==NULLC.p->next=headD.p=head

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

A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項管理

50.下列4個關于C語言的結論中錯誤的是()。

A.可以用do…while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

B.可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

C.可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關鍵字“while”出現(xiàn)的位置不同

51.以下不能正確定義二維數(shù)組的選項是

A.inta[2][2]={{1},{2)};

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

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

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

52.下列選項中不屬于結構化程序設計方法的是()。

A.自頂向下B.逐步求精C.模塊化D.可復用

53.下列程序的輸出結果是______。#include<stdio.h>main(){printf("%d\n",NULL);}

A.不確定(因變量無定義)B.0C.-1D.1

54.線性表的順序存儲結構和線性表的鏈式存儲結構分別是______。

A.順序存取的存儲結構、順序存取的存儲結構

B.隨機存取的存儲結構、順序存取的存儲結構

C.隨機存取的存儲結構、隨機存取的存儲結構

D.任意存取的存儲結構、任意存取的存儲結構

55.在結構化方法中,軟件功能分解屬于軟件開發(fā)中的______階段。

A.詳細設計B.需求分析C.總體設計D.編程調(diào)試

56.若有定義floata=25,b,*p=&b;,則下列對賦值語句*p=a;和p=&a;的正確解釋為()。

A.兩個語句都是將變量a的值賦予變量p

B.*p=a是使p指向變量a,而p=&a是將變量a的值賦予變量指針p

C.*p=a是將變量a的值賦予變量b,而p=&a是使p指向變量a

D.兩個語句都是使p指向變量a

57.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。

A.5B.6C.7D.8

58.在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關鍵碼值11,所需的關鍵碼比鉸次數(shù)為______。

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

59.下列描述中不正確的是()。

A.字符型數(shù)組中可以存放字符串

B.可以對字符型數(shù)組進行整體輸入、輸出

C.可以對整型數(shù)組進行整體輸入、輸出

D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進行整體賦值

60.以下程序的輸出結果是______。intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f():printf("%d\n",a);}

A.20B.24C.25D.15

四、選擇題(20題)61.已知inta,b;doublec;,則以下語句中錯誤的函數(shù)調(diào)用是

A.scanf("%d,%x,%lf",&a,&b,&c);B.scanf("%d,%d,%le",&a,&b,&c);

C.scanf("%o,%x,%o",&a,&b,&c);D.scanf("%d,%o,%e",&a,&b,&c);

62.當執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

63.

有下列程序:

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結果是()。

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

64.以下程序的輸出結果是______。main(){charst[20]="hello'、0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}

A.99B.520C.1320D.2020

65.以下敘述中錯誤的是()。A.使用三種基本結構構成的程序只能解決簡單問題

B.結構化程序由順序、分支、循環(huán)三種基本結構組成

C.c語言是一種結構化程序設計語言

D.結構化程序設計提倡模塊化的設計方法

66.以下敘述中正確的是()。A.A.當對文件的讀(寫)操作完成之后,必須將它關閉,否則可能導致數(shù)據(jù)丟失

B.打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個程序中當對文件進行了寫操作后,必須先關閉該文件然后再打開,才能讀到第1個數(shù)據(jù)

D.c語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

67.

68.若有以下程序

#include<stdio.h>

main()

{inti;

inta[]={1,3,5,7,9}

int*p=a;

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

a[i]=*p;

printf("%d,%d\n",a[2],a[4]);

}

上面程序的輸出結果是

A.3,9B.5,9

C.1,9D.1,1

69.

70.以下程序的運行結果是()。

A.m=4k=5i=5k=5

B.m=4k=4i=5k=5

C.m=4k=4i=4k=5

D.m=4k=5i=4k=5

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

A.123456B.14C.1234D.12

72.結構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法

A.對象B.數(shù)據(jù)結構C.數(shù)據(jù)流D.目標

73.請選出以下程序的輸出結果()。

A.1234

B.4321

C.0000

D.4444

74.有以下程序:

#include<stdio.h>

voidfunc(intn)

{staticintnum=1);

num=num+n;printf("%d",num);

}

main()

{funo(3);func(4);printf("n");}

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

A.48B.34C.35D.45

75.

76.關系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼

77.

78.

79.

80.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后輸出結果是()。

A.賦初值的字符串有錯B.6,7C.5,6D.6,6

五、程序改錯題(1題)81.給定程序中,函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符:按排列的順序交叉合并到C所指數(shù)組中,過長的剩余字符接在C所指的數(shù)組的尾部。例如,當a.所指字符串中的內(nèi)容為“abcdef9”,b所指字符串中的內(nèi)容為“1234”時,c所指數(shù)組中的內(nèi)容應“a4b3c2dlef9”;而當a所指字符串中的內(nèi)容為“1234”,b所指字符串的內(nèi)容為“abcdef9”時,c所指數(shù)組中的內(nèi)容應該為“l(fā)g2f3e4dcba”。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.編寫一個函數(shù),該函數(shù)可以統(tǒng)計一個長度為2的字符串在另一個字符串中出現(xiàn)的次數(shù)。例如,假定輸入的字符串為abcdefabcdeabceabcdef,子字符串為cd,則應當輸出3。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A運算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級高于“==”,選項A等價于“(!a)==0”。如果a不等于0,則表達式為真,否則表達式為假。故本題答案為A選項。

2.Ba一一的含義是先用后減l,所以當a的值為0時,跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。

3.C在程序設計中,算法執(zhí)行效率與數(shù)據(jù)的存儲結構密切相關。算法的空間復雜度是指算法執(zhí)行過程中所需存儲空間。

4.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。

5.A解析:在鏈式存儲結構中,存儲數(shù)據(jù)的存儲空間可以不連續(xù),各數(shù)據(jù)結點的存儲順序與數(shù)據(jù)元素之間的邏輯關系可以不一致,數(shù)據(jù)元素之間的邏輯關系,是由指針域來確定的。由此可見,選項A的描述正確。因此,本題的正確答案為A。

6.D

7.A題干中,“x++&&y++”屬于邏輯與表達式。僅當“x++”和“y++”的結果為真,整個邏輯表達式的結果才為真,否則整個表達式的結果為假。當“x++”的結果為0時,“y”就會被短路,即不再執(zhí)行“y++”表達式,整個表達式的結果為假。所以當x的值為0時,“x”的結果也是0,“y”操作被“短路”,y值不變。故本題答案為A選項。

8.A解析:p+i是數(shù)組s的第i+1行的首地址,而*(p+i)則是數(shù)組第i+1行第1列的元素的地址,*(p+i)+j則是第i+1行的第j+1列的地址,*(*(p+i)+j)引用的是數(shù)組元素s[i][j]的值。注意:通過建立一個指針數(shù)組來引用二維數(shù)組元素。

9.Csum+=i等價于sun+i,在本題中sum沒有賦初值,而題中只輸出sum的值,因此整個結果為不確定值。

10.A選項A中,表達式“x%=k”結果為5,表達式“k%=5”結果為2,5-2結果為3;選項B中,“k%=5”結果為2,“x%=2”結果為0;選項C中,“k%5”結果為2,“k-k%5”結果為5,“x%5”結果為2;選項D中,“k%5”結果為2,“k-k%5”結果為5,x%5結果為2。故本題答案為A選項。

11.B解析:當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:

①形參定義成數(shù)組;

②形參定義成可變長數(shù)組:

③形參定義為指針變量。

12.Cstrlen函數(shù)返回字符串的長度。求字符串長度時,遇到結束標識‘\\0’為止,但是長度不包括結束標識。字符數(shù)組s1的后5個元素沒有賦值,都為‘\\0’,即“abcd!”后為‘\\0’,所以“strlen(s1)”的值為5。字符指針s2所指向的字符串中,“\\n”為轉義字符,代表換行符,是1個字符,“\\\\”也為轉義字符,代表“\\”,也是1個字符,其后為字符串結束標識‘\\0’,所以“strlen(s2)”的值也為5。故本題答案為C選項。

13.B

14.CC?!窘馕觥拷Y構化分析方法是面向數(shù)據(jù)流進行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

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

16.A

17.B解析:選項A)定義的是長度為5的數(shù)組元素,但初值有6個元素,所以錯誤;選項C)不符合數(shù)組定義形式,數(shù)組名后應加上“[];選項D)的類型說明符錯誤,應改為char;選項B)中的0,1,2,3,4,5分別表示對應字符的ASCII碼,所以正確。

18.D

19.A[解析]do{*t++=*s++;}while(*s);不能因為當*s=^0'時,while(*s)跳出循環(huán),這樣字符串結束標志“0沒有復制給*t,造成*t不完整。\u3000\u3000注意,*t++=*s++是先執(zhí)行t=*s,然后才進行t=t+1.s=s+1.B),C),D)三項都能將“0復制過去。

20.C解析:軟件系統(tǒng)結構的總體設計包括:基于功能層次結構建立系統(tǒng)、按功能劃分成模塊的層次結構、確定每個模塊的功能、建立與已確定的軟件需求的對應關系、確定模塊間的調(diào)用關系和模塊間的接口、評估模塊劃分的質量等方面。詳細設計的任務是:在使用程序設計語言編制程序以前,對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調(diào)試的任務是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設計階段。

21.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進制的025,c為十六進制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進制輸出,且中間用空格隔開,八進制025轉換為十進制的值為21,十六進制的0x25轉換為十進制的值為37,故最后的輸出結果為252137。

22.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數(shù)據(jù)的。

23.*(t+4)*(t+4)解析:本題定義了指針變量t,并用數(shù)組s的首地址給它賦初值。t+4代表數(shù)組第6個元素的地址,*(t+4)是取得該地址中的值即29,而此時并沒有移動指針t。

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

25.structst或exstructst或ex解析:結構體類型數(shù)據(jù),其數(shù)據(jù)成員各自占據(jù)不同的存儲空間,整個結構體變量所占存儲單元的字節(jié)數(shù)為每一個數(shù)據(jù)成員所占的存儲空間的和。注意:共用體變量所占存儲單元字節(jié)數(shù)的計算。

26.CC解析:本題關鍵在考生是不是了解宏的基本運用,再使用宏的時候明顯少了一個實參。在定義宏的時候變量z是用來做中間變量的,題目中缺的變量就是一個中間變量C。

27.*t*t解析:函數(shù)中首先讓n=strlen(s),所以while循環(huán)的循環(huán)條件表達式中*(s+n)指向字符串s的結束標志'\\0'處,而該處應該等于字符串t的第1個字符,另外循環(huán)體中讓s和t指向下一個字符,即s+n和t同時被移動到下一個位置,所以該處應該填*t,即t所指內(nèi)容。當t指向字符串結束標志'\\0'的時候,整個循環(huán)條件表達式的值也為0(“假”)了,循環(huán)結束。正好滿足將t所指字符串復制到s所指的字符串的尾部。

28.134122312isthe4thnumber.

29.邏輯結構中相鄰的結點在存儲結構中仍相鄰。邏輯結構中相鄰的結點在存儲結構中仍相鄰。解析:順序存儲結構的主要特點是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中,各元素的物理位置和邏輯結構中各結點間的相鄰關系是一致的。

30.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應用程序而不依賴于應用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩個含義。注意:在人工管理階段,文件系統(tǒng)階段和數(shù)據(jù)庫管理階段中數(shù)據(jù)獨立性的特點。

31.1919解析:二叉樹具有如下性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。根據(jù)題意,度為2的節(jié)點為18個,那么,葉子結點就應當是19個。

32.2828解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2;簡單插入排序所需要的比較次數(shù)為n(n-1)/2;希爾排序所需要的比較次數(shù)為O(n1.5);堆排序所需要的比較次數(shù)為O(nlog2n)。

33.10410\r\n4解析:結構體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

34.判定樹、判定表判定樹、判定表

35.軟件危機的出現(xiàn)軟件危機的出現(xiàn)

36.*2*4*6*8**2*4*6*8*解析:程序中指針p指向數(shù)組a,while(*P)語句的循環(huán)條件是*p!=\'\\0\',在循環(huán)體中,當i=0,2,4,6,8時,i%2=0,執(zhí)行*p=\'*\',即a[i]=\'*\',繼續(xù)執(zhí)行p++;i++;使i為奇數(shù);當i=1,3,5,7時,i%2=1,繼續(xù)執(zhí)行p++;i++;使i為偶數(shù)??梢?,程序在字符串'123456789',的下標為偶數(shù)的位置上賦值\'*\',代替原字符串中的1,3,5,7,9。所以,程序輸出結果為*2*4*6*8*。

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

38.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進行替換的。

39.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)。

40.鏈式存儲結構鏈式存儲結構

41.B解析:本題考查的是指針函數(shù)。指針函數(shù)定義的基本格式:類型說明符(*函數(shù)名)()。其中,類型說明符表示返回的指針值指向的數(shù)據(jù)類型。

42.B解析:帶參數(shù)的main()函數(shù)常用形式為:main(intargc,char*argv[])其中,參數(shù)的個數(shù)由C程序運行時自動計算出來。字符型指針數(shù)組argv的第一個元素存放命令名,其后各個元素依次存放命令行中各個參數(shù)的首地址:整型變量argc用來記錄命令行中的參數(shù)個數(shù),文件名也作為一個參數(shù),對于命令行中雙引號內(nèi)的字符串,即使空格分開,也只算是一個參數(shù),同時雙引號本身不算參數(shù)的內(nèi)容,因此本題argc的值等于5。

43.B解析:C語言采用編譯方式將源程序轉換為二進制的目標代碼,編寫好一個C程序到完成運行一般經(jīng)過以下幾個步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進制的目標代碼,經(jīng)編譯后的得到的二進制代碼還不能直接執(zhí)行,因為每一個模塊往往是單獨編譯的,必須把經(jīng)過編譯的各個模塊的目標代碼與系統(tǒng)提供的標準模塊連接后才能運行;連接,將各模塊的二進制目標代碼與系統(tǒng)標準模塊經(jīng)連接處理后,得到具有絕對地址的可執(zhí)行文件,它是計算機能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個經(jīng)過編譯和連接的可執(zhí)行的目標文件。由以上定義可知,選項A、C、D均不正確。所以,4個選項中選項B符合題意。

44.D解析:字符串必須以‘\\0’為結束符。

45.B解析:本題考查帶參數(shù)的宏定義及應用方法,這種宏不只是進行字符串的替換,還要進行參數(shù)的替換。

格式為:#define宏名(參數(shù)表)字符串

我們先看一個簡單的帶參數(shù)的宏定義:#defineX(A,B)A*B*B并且在程序中有語句:y=X(4,3);經(jīng)過替換后變?yōu)閥=4*3*3;這就是帶參數(shù)的宏定義的使用方法。注意:宏是按原形替換,本題替換后為sun=1+2+3*2+3;。

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

47.D解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項C)能將大寫字符c的ASCII代碼轉換為小寫字符c的ASCⅡ代碼;選項A)和C)左側的表達式都是大寫字符c與大寫字符A的差與'a'的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項D)中應該是加上'a',而不是減去'a'。

48.C

49.A在數(shù)據(jù)管理技術的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)這一階段。數(shù)據(jù)庫系統(tǒng)階段用數(shù)據(jù)模型來表示復雜的數(shù)據(jù),有較高的數(shù)據(jù)獨立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式來操作。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。

50.D解析:本題考查幾個循環(huán)語句的關系。①do…while語句、while語句、for語句所實現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。

51.D解析:本題考核的知識點是二維數(shù)組的定義和初始化。在定義中如果對所有元素賦初值,其第1維的長度可以省略,故選項B正確;二維數(shù)組初始化也可以只對每行或前若干個行的前若干個元素賦初值,故選項A和選項C正確;在二維數(shù)組定義時不能省略第二維的長度,故選項D錯誤。所以,4個選項中選項D符合題意。

52.D解析:20世紀70年代以來,提出了許多軟件設計方法,主要有①逐步求精:對復雜的問題,應設計一些子目標作過渡,逐步細化;②自頂向下:程序設計時應先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節(jié),先從最上層總目標開始設計,逐步使問題具體化;⑧模塊化:一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊,而可復用是面向對象程序設計的一個優(yōu)點。

53.B

54.B【命題目的】考查有關線性表存儲結構的基本知識。

【解題要點】順序存儲結構中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(I-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈式存儲結構,要對某結點進行存取,都得從鏈的頭指針指向的結點開始,這是一種順序存取的存儲結構。

【考點鏈接】順序存儲結構和鏈式存儲結構的定義和性質,兩種存儲結構的操作方法。

55.C解析:總體設計過程通常由兩個主要階段組成:系統(tǒng)設計,確定系統(tǒng)的具體實現(xiàn)方案;結構設計,確定軟件,結構。為確定軟件結構,首先需要從實現(xiàn)角度把復雜的功能進一步分解。分析員結合算法描述仔細分析數(shù)據(jù)流圖中的每個處理,如果一個處理的功能過分復雜,必須把它的功能適當?shù)胤纸獬梢幌盗斜容^簡單的功能。

56.C解析:“p”是指針變量,指向一個地址:“*p”,為p指針所指向地址的內(nèi)容。

57.B解析:該題目測試考生對宏替換的理解。這是一種簡單的情況:不帶參數(shù)的宏。關鍵要注意在對2*M+1進行宏替換時,要將宏名M原封不動地代進去,得到NUM的形式為2*N+1+1(千萬不要隨意給N+1加上小括號,使NUM變?yōu)?。(N+1)+1,這就是宏名和變量名之間的區(qū)別),在將N代進去,得到NUM的值為6。

58.C解析:二分法查找是用關鍵碼與線性表的中間元素比較,然后根據(jù)比較結果來判斷是結束查找,還是在左邊或者右邊子表按相同的方法繼續(xù)查找。本題中,與11比較的關鍵碼分別為15,8,10,12四個。

59.C解析:本題考查對數(shù)組的理解。C語言規(guī)定只能逐個引用數(shù)組元素,而不能一次引用整個數(shù)組。對于字符數(shù)組,可以將整個字符串一次輸入或輸出。所以,選項C)不正確。

60.D解析:函數(shù)f中變量i為靜態(tài)變量,函數(shù)f調(diào)用結束后變量i所占據(jù)的存儲單元不會釋放,而在主函數(shù)中f被調(diào)用5次,具體過程如下。

第1次調(diào)用f:s=s+i=1+0=1,i=i+1=1,主函數(shù)中a=a+f()=O+1=1

第2次調(diào)用f:s=s+1=1+1=2,i=i+1=2,豐函數(shù)中a=a+f()=1+2=3

第3次調(diào)用f:s=s+1=1+2=3,i=i+1=3,主函數(shù)中a=a+f()=3+3=6

第4次調(diào)用f:s=s+i=1+3=4,i=i+1=4,主函數(shù)中a=a+r()=6+4=10

第5次調(diào)用f:s=s+i=1+4=5,i=i+4=5,主函數(shù)中a=a+f()=10+5=15

所以printf語句的輸出結果為15。

61.C本題主要考查格式輸入函數(shù)scanf。此函數(shù)一般的輸入形式是scanf(格式控制,地址表列);。函數(shù)“格式控制”的含義同printf函數(shù),以%開始,以一個格式字符結束,中間可以插入附加的字符。常用的格式字符主要有:

d:用來輸入有符號的十進制整數(shù)。

u:用來輸入無符號的十進制整數(shù)。

o:用來輸入無符號的八進制整數(shù)。

x:用來輸入無符號的十六進制整數(shù)(大小寫作用相同)。

c:用來輸入單個字符,包括回車鍵。

s:用來輸入字符串,將字符串送到一個字符數(shù)組中,在輸入時以非空格字符開始,以第一個空格字符結束。字符串以串結束標志’\\0’作為其最后一個字符。

f:用來以小數(shù)形式輸入實數(shù)(包括浮點型和雙精度型)。

e:用來以指數(shù)形式輸入實數(shù)。

scanf的附加格式說明字符:

L、l:用于輸入長整型數(shù)據(jù)(可用%ld,%lo,%lx)及double型數(shù)據(jù)(用%lf)。

h:用于輸入短整型數(shù)據(jù)(可用%hd,%ho,%

溫馨提示

  • 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

提交評論