2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.下列不屬于C語言關(guān)鍵字的是()。A.A.default

B.register

C.enum

D.external

3.有以下程序:#include<stdio.h>intf(intx):main{intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;)程序運行后的輸出結(jié)果是()。A.1B.2C.4D.8

4.以下非法的賦值語句是

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

5.設(shè)有宏定義:#defineIsDIV(k,n)((k%n==1)?1:0)且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是A.判斷m是否能被5或者7整除

B.判斷m是否能被5和7整除

C.判斷m被5或者7整除是否余1

D.判斷m被5和7整除是否都余1

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

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

B.c程序可以由多個程序文件組成

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

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

7.有如下定義:inta[5],*p;p=a;則下列描述錯誤的是()。

A.表達式p=p+1合法的B.表達式a=a+1是合法的C.表達式p-a是合法的D.表達式a+2是合法的

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

A.當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

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

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

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

9.有以下程序

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;

*q=*(p+5);

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

}

程序運行后的輸出結(jié)果是A.運行后報錯B.66C.611D.510

10.

11.從未排序序列中依次取出元素與已排序序列中的元素作比較,將取出的元素放入已排序序列中的正確位置上,此方法稱為______。

A.歸并排序B.選擇排序C.交換排序D.插入排序

12.下面關(guān)于編譯預(yù)處理的命令行中,正確的是()。

A.#defineintINT

B.##defineeps0.001

C.##DEFINETRUE

D.#defineE2.88

13.有以下程序:#include<stdio.h>main(){structSTU{charname[9];charsex;doublescore[2];};structSTUa={“Zhao”,‘m’,85.0,90.0},b={“Qian”,‘f’,95.0,92.0};b=a;printf(“%s,%c,%2.0f,%2.0f\n”,,b.sex,b.score[0],b.score[1]);}程序的運行結(jié)果是()。

A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

14.以下關(guān)于鏈?zhǔn)酱鎯Y(jié)構(gòu)說法錯誤的是()

A.比順序存儲結(jié)構(gòu)的存儲密度小

B.每個節(jié)點是由數(shù)據(jù)域和指針域組成

C.查找結(jié)點時鏈?zhǔn)酱鎯Ρ软樞虼鎯?/p>

D.邏輯上不相鄰的節(jié)點物理上可能相鄰

15.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

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

16.若有下面的說明和定義

structtest

{intml;charm2;floatm3;

unionuu{charul[5];intu2[2];}ua;

}myaa;

則sizeof(structtest)的值是A.A.12B.16C.14D.9

17.以下程序的輸出結(jié)果是()。main{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;for(k=1;k<3;k++)printf("%s\n",w[k]);A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

18.若有定義:Typedefint*T[10];T*a;則以下與上述定義中a類型完全相同的是()。

A.int*a[10];

B.int**a[10];

C.int*(*a)[10];

D.int*a[][10];

19.以下選項中,非法的字符常量是______。

A.'t\'B.'\17'C.\nD.'\xaa'

20.算法分析的目的是()。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.研究算法中的輸入和輸出的關(guān)系C.分析算法的效率以求改進D.分析算法的易讀性和文檔性

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

while(s[i])(d[j]=【】;j++;}

d[j]=0;

22.執(zhí)行以下程序時,若輸入end<回車>,則輸出結(jié)果是【】。

main()

{charch[10]="Begin";

gets(&ch[1]);puts(ch);

}

23.在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比較次數(shù)為【】。

24.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

25.結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。

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

main()

{chars[]="abcdef";

s[3]='\0';

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

}

27.解題方案的準(zhǔn)確而完整的描述稱為______。

28.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>

#include<string.h>

main()

{infi,j,[13];charstr[]={"1234567"};

for(i=0,j=strlen(str)[14];i<j;i++,j--)

{k=str[i];str[i]=str[i];str[j]=k;}

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

29.注釋一般分為序言性注釋和______注釋。

30.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。

31.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

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

33.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預(yù)防性維護。

34.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個數(shù)中,找出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

35.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。

36.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

37.下述函數(shù)統(tǒng)計—個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

38.與十進制數(shù)101等值的二進制數(shù)為【】。

39.數(shù)據(jù)庫設(shè)計分為以下6個設(shè)計階段:需求分析階段、______、邏輯設(shè)計階段、物理設(shè)計階段、實施階段、運行和維護階段。

40.下列程序的功能是將2個數(shù)從小到大輸出。

main()

{floata,b,【】;

scanf(【】,&a,&b);

if(a>b)

{t=a;

【】;

b=t;

}

printf("%5.2f,%5.2f\n",a,b);

}

三、1.選擇題(20題)41.模塊本身的內(nèi)聚是模塊獨立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強內(nèi)聚的一類是__________。

A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚

42.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

A.languageB.lnugC.有語法錯誤D.lang

43.設(shè)變量已正確定義,則以下能正確計算f=n!的程序段是______。A.f=0;for(i=1;i<n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

44.有下列程序,其中%u表示按無符號整數(shù)輸出。main(){unsignedintx=0xFFFF;/*x的初值為十六進制數(shù)*/printf("%u\n",x);}程序運行后的輸出結(jié)果是()。

A.-1B.65535C.32767D.0xFFFF

45.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}

A.258B.741C.852D.369

46.當(dāng)用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是()。

A.scanfB.getcharC.getsD.getc

47.下面不屬于軟件設(shè)計原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

48.下面程序段的運行結(jié)果是char*s="abcde";s+=2;printf("%d",s);

A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結(jié)果

49.設(shè)有以下程序:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0];下面選項中,表達式值為6的是______。

A.p++->nB.p->n++C.(*p).n++D.++p->n

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

#include<stdio.h>

intfun(intx)

{intp;

if(x==0‖x=1)

return3;

else

p=x-fun(x-2);

returnp;

}

voidmain()

{printf("\n%d",fun(5));

}

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

51.下列不屬于軟件工程的3個要素的是______。

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

52.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進行理解和交流

B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

53.若有定義和語句()chars[10];s="abcd";printf("%s\n",s);則結(jié)果是(以下μ代表空格)

A.輸出abcdB.輸出aC.abcdμμμμμD.編譯不通過

54.下面說明不正確的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

55.設(shè)有定義語句:charc1=92,c2=92;則以下表達式中值為零的是()。

A.c1∧c2B.c1&c2C.~c2D.c1|c2

56.不能把字符串"Hello!"賦給數(shù)組b的語句是______。

A.charb[10]={'H','e','l','l','o','!'};

B.charb[10]={'h','e','l','l','o','!'};

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

57.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}

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

58.若有以下說明和語句:structst{intn;char*ch;};structsta[3]{5,"abc",7,"def",9,"ghk"},*p=a則值為6的表達式是______。

A.p++->nB.p->n++C.(*p).n++D.++p->n

59.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為______。

A.真B.假C.0D.1

60.下列程序的運行結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}

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

四、選擇題(20題)61.有三個關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是()。

A.自然連接B.交C.除D.并

62.設(shè)pl和p2是指向一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是()。

A.k=*pl+*p2B.p2=k;C.pl=p2;D.k=*pl*(*p2.;

63.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是()。

A.i-1B.iC.i+1D.4一i

64.(48)軟件調(diào)試的目的是()

A.發(fā)現(xiàn)錯誤

B.改正錯誤

C.改善軟件的性能

D.挖掘軟件的潛能

65.

66.

67.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是()。

A.函數(shù)調(diào)用可以嵌套和遞歸

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

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

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

68.若有定義floatX=1.5;inta=1,b=3,C=2;,則正確的switch語句是()。

A.

B.

C.

D.

69.算法的有窮性是指A.算法程序的運行時間是有限的

B.算法程序所處理的數(shù)據(jù)量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

70.鏈表不具有的特點是A.A.不必事先估計存儲空間

B.可隨機訪問任一元素

C.插入和刪除不需要移動元素

D.所需空間與線性表長度成正比

71.下列排序方法中,最壞情況下比較次數(shù)最少的是()。

A.冒泡排序B.簡單選擇排序C.直接插入排序D.堆排序

72.

73.

74.

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

main

{intx=f;printf("%c\n",A+(x-a+1));}

A.GB.HC.ID.J

75.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

76.

77.下面對C語言的描述中,正確的是

A.函數(shù)一定有返回值,否則無法使用函數(shù)

B.C語言函數(shù)既可以嵌套定義又可以遞歸調(diào)用

C.在C語言中,調(diào)用函數(shù)時,只能將實參的值傳遞給形參

D.C語言程序中有調(diào)用關(guān)系的所有函數(shù)都必須放在同一源程序文件中

78.已知數(shù)據(jù)表A中每個元素距其最終位置不遠,為了節(jié)省時間,應(yīng)采用的算法是()。

A.堆排序B.直接插入排序C.快速排序D.直接選擇排序

79.

80.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從低位開始取出長整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中。例如,當(dāng)s中的數(shù)為l23456789時,t中的數(shù)為l3579。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:實現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到pl所指的字符串的后面。

例如,分別輸人下面兩個字符串:FirstString——SecondString

程序運行后的輸出結(jié)果是:FirstString————SecondString

注意:部分源程序在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

參考答案

1.D

2.Dregister聲明寄存器變量enum聲明枚舉類型default開關(guān)語句中的“其他”分支

3.D本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結(jié)果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

4.C解析:本題考查的知識點是賦值語句的基本知識。在表達式的運算中,雙目賦值運算符的格式為“變量二表達式”,單目運算符一般形式為“運算符表達式”或“表達式運算符”。常量和表達式是不能被賦值的。選項A為復(fù)合表達式,首先計算(i=2,++i)的值,然后賦值給n,故選項A正確;選項B為簡單自加運算,故選項B正確;選項C在表達式++(i+1);中,(i+1)不是變量,該表達式的值為常量,而在++運算中,其運算對象必須為變量,故選項C錯誤;選項D中為復(fù)合賦值表達式,正確.所以應(yīng)當(dāng)選擇C。

5.D

6.A答案A

解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。

7.B

8.AB選項中,打開一個已存在的文件并進行寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。C選項中,在一個程序中對文件進行寫操作后,不是先關(guān)閉該文件然后再打開才能讀到第1個數(shù)據(jù),用fseek函數(shù)進行重新定位即可。D選項中,C語言中的文件可以進行隨機讀寫。故本題答案為A選項。

9.C解析:本題中第一行代碼對指針P進行了初始化,其指向數(shù)組a的第6個元素,在其后的操作中p的值也沒有改變過,所以最后輸出*p=*\u3000\u3000(p+0)\u3000\u3000=a\u3000[5]\u3000=6,而第二行代碼中對q指向的值進行賦值,等價于*q=a[10]=11,所以輸出結(jié)果*q為11。

10.B

11.D

12.D選項A中,int是關(guān)鍵字,不能作為用戶標(biāo)識符;選項B中,兩個“#”錯誤;選項C中兩個“#”錯誤,另外DEFINE大寫也是錯誤的。故本題答案為D選項。

13.B在main函數(shù)中將結(jié)構(gòu)體變量a賦值給變量b。輸出結(jié)構(gòu)體變量b的值為:Zhao,m,85,90。故本題答案為8選項。

14.C

15.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟毩⒌膬刹?/p>

分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼

續(xù)進行排序,以達到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依

次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整

個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對剩

下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個或兩個以上的有序表組合

成一個新的有序表。

注意:各種排序方法實現(xiàn)過程及實現(xiàn)機制。

16.A

17.D當(dāng)k=1時,循環(huán)成立,輸出w[l]的數(shù)組即EFGH,接著執(zhí)行k++后k為2;當(dāng)k=2時,循環(huán)成立,輸出w[2]的數(shù)組即IJKL,接著執(zhí)行k++后,k為3;當(dāng)k=3時,循環(huán)不成立,退出。

18.B由題意可知,T是一個數(shù)組指針,即int*[],所以使用T*a定義,可知a屬于int**[\n]類型。本題答案為B選項。

19.C解析:C語言中字符常量是以單引號括起來的單個字符,或以“\\”與三位八進制數(shù)值或兩位十六進制數(shù)值代替單個字符。

20.C

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

22.Bend

23.log2n

24.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

25.模塊化模塊化

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

27.算法算法解析:算法是指對解題方案的準(zhǔn)確而完整的描述。

28.顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個變量值為下標(biāo)的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j字符串末元素的下標(biāo)是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中—起定義,所以在第—個空\r\n\r\n

29.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,

30.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。

31.完整性控制完整性控制

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

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

34.q<p+nq<p+n解析:考查對于函數(shù)的地址傳遞的掌握情況。通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進行引用。

35.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

36.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。

37.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄—個單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前—個字符是否是空格,如果是則說明這個字符是—個單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)填flag=0或*(s-1)='';最后—個空格需填寫的是返回的單詞的個數(shù),即num。

38.1100101

39.概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)

40.t"%f%f"a=b

41.D解析:內(nèi)聚性是一個模塊內(nèi)部各元素間彼此結(jié)合的緊密程度的度量。內(nèi)聚是從功能角度來度量模塊內(nèi)的聯(lián)系。內(nèi)聚共有7類,它們之㈨的內(nèi)聚性由弱到強排列順序為:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。

42.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。

第1次for循環(huán),p=a,p指向數(shù)組的第1個元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。

43.D解析:n!=n*(n-1)*……*2*1,由于選項A中f的初值為0,所以循環(huán)n次后,f值依然為0,故選項A錯誤:選項B中循環(huán)的終止條件是“i<n”,即只執(zhí)行i-1次循環(huán),得到的f值為(n-1)*……*2*1的值,故選項B錯誤;選項C中,當(dāng)n>1時,由于初值“i=n”是符合條件“i>1”的,且增量為+1,故循環(huán)中永遠不會出現(xiàn)不滿足條件“i>1”的值,所以出現(xiàn)死循環(huán)。

44.B解析:“%u”格式符表示以十進制形式輸出無符號整形變最。本題中無符號整形變量x=0xFFFF表示的是十六進制無符號整型變量的最大值65535,所以最后輸出的結(jié)果為65535。

45.C解析:在本題運行時主要注意的是當(dāng)i=9時,a[i]=10-9=1;i=8時,a[i]=10-8=2;i=7時,a[i]=10-7=3;……依此類推,直到i=0時,a[i]=10-0=10;此時,i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8],分別為8,5,2。

46.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數(shù)可以輸入一整行作為一個字符串,其中也包括空格字符,故應(yīng)該選擇C。

47.C解析:軟件設(shè)計遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計中應(yīng)該遵循的基本原理和與軟件設(shè)計有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細節(jié)。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。因此,本題的正確答案是C。

48.C解析:對于字符串指針,其保留的是整個串的首地址,即為第一個字符的起始地址,當(dāng)該指針做算術(shù)運算時,就是該指針根據(jù)其類型向后移動相應(yīng)的存儲空間。

49.D

50.A解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時,fun(5):a=5-fun(3)->fun3:a=3-fun(1)->fun(1):a=3,反推回去fun(3):a=3-3=O->fun(5):a=5-0=5,最后的計算結(jié)果為5。

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

52.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認測試和驗收的依據(jù)。

53.D

54.D解析:C語言中操作一個字符串常量的方法有:①將字符串常量存放在一個字符數(shù)組之中;②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區(qū)域。當(dāng)字符串常量在表達式中出現(xiàn)時,根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,將其轉(zhuǎn)換成字符指針。

本題D)項中錯誤的關(guān)鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。

55.A解析:按位異或“^”運算,是當(dāng)對應(yīng)位上的二進制數(shù)值相同時結(jié)果為0,否則為1。因為c1,c2的值相同,所以異或的結(jié)果為0,選項A)正確。按位與“&”運算符只有當(dāng)所有對應(yīng)位上的數(shù)都不相同時結(jié)果才為0,所以c1&c2的值不可能為0,選項B)錯誤?!啊笔前次蝗》矗捎谑M制數(shù)92轉(zhuǎn)化成二進制數(shù)并不是全為1,所以即使取反也不能得到全為。的答案,所以錯誤。“|”是按位或運算,由于十進制數(shù)92轉(zhuǎn)化為二進制數(shù)也不是全為0,所以按位或運算后也不會全為0。

56.B解析:在C語言中,大寫字母和小寫字母被認為是兩個不同的字符,因此,“hello!”和“Hello!”是兩個不同的字符串。

57.B解析:本題主要考查結(jié)構(gòu)體和聯(lián)合內(nèi)存使用的區(qū)別:結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨立;聯(lián)合所占用的內(nèi)存空間為最長的成員所占用的空間。

58.D解析:根據(jù)結(jié)構(gòu)變量的存儲特點,p+1意味著增加地址值為結(jié)構(gòu)體數(shù)組a的一個元素所占的字節(jié)數(shù),即p++使p由a[0]指向a[1]起始地址。本題++p->n得到p指向的結(jié)構(gòu)體變量中成員n的值使之加1。因為p指向數(shù)組a起始地址,p->n的值為5,再執(zhí)行自加1運行,結(jié)果為6。

59.D解析:a&&b的值為true,c<'B'的值也為true,所以(a&&b)&&(c<'B')的值為true。但x是int型變量,所以(a&&b)&&(c<'B')的值最后要從bool型轉(zhuǎn)換為int型賦給x。這樣x的值應(yīng)為1。

60.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第二個if語句,先判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對的else語句,c+=1,得c=5。

61.C

62.B本題主要考查了一維數(shù)組指針的賦值和用指針引用數(shù)組元素進行運算。選項B)中p2為指向int型變量的指針,而k為int型變量,不能將int型變量直接賦值給指向int型變量的指針,所以選項B)錯誤,應(yīng)該為p2=&k。

63.B

\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標(biāo)相同,所以j=i。

\n

64.B注:與軟件測試要對比著復(fù)習(xí)

65.A

66.D

67.DC語言中有規(guī)定,函數(shù)定義不能再有其他函數(shù),因為函數(shù)有返回值,那么函數(shù)調(diào)用可以嵌套和遞歸,也可以作為一個函數(shù)的實參,但是不能作為一個函數(shù)的形參,這是在對一個函數(shù)的定義。

68.Bc語言中,switch語句專用于實現(xiàn)多分支結(jié)構(gòu)程序,其特點是各分支清晰且直觀。switch后面括號中可以是任何表達式,取其整數(shù)部分與各常量表達式進行比較。常量表達式中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達式各不相同。

69.A算法的有窮性,是指算法必須能在有限的時間內(nèi)做完,即算法必須能在執(zhí)行有限個步驟之后終止。

70.B鏈表是一種特殊的線性表,鏈表的存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)不同,它的存儲區(qū)域可以是任意的存儲單元,對存儲系統(tǒng)中零碎的存儲部分具有更好的應(yīng)用,在給其分配存儲單元時,不必事先估計整個存儲單元的空間大小;由于鏈表的元素是通過指針域的指針相連的,用鏈表存儲數(shù)據(jù)時,對其進行插入和刪除操作時,不需要移動其他元素,只需改變其直接前驅(qū)指針域,使其指向該結(jié)點,并將該結(jié)點的指針域修改為指向其直接后繼結(jié)

溫馨提示

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

最新文檔

評論

0/150

提交評論