2021年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第1頁
2021年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第2頁
2021年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第3頁
2021年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第4頁
2021年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年福建省廈門市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過程中可以出棧,則下列不可能的一個出棧序列是______。

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

2.c源程序中不能表示的數(shù)制是()。

A.二進(jìn)制B.八進(jìn)制C.十進(jìn)制D.十六進(jìn)制

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

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

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

A.可以用關(guān)系運(yùn)算符比較字符串的大小

B.空字符串不占用內(nèi)存,其內(nèi)存空間大小是0

C.兩個連續(xù)的單引號是合法的字符常量

D.兩個連續(xù)的雙引號是合法的字符串常量

5.以下敘述中錯誤的是()。

A.c語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言

B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

C.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

6.有以下程序

include<stdio.h>

main()

{chara[30],b[30];

scanf(“%s”,a);

gets(b);

printf(“%s\n%s\n”,a,b);

}

程序運(yùn)行時若輸入:

howareyou?Iamfine<回車>

則輸出結(jié)果是A.howareyou?Iamfine

B.howareyou?1amfine

C.howareyou?Iamfine

D.howareyou?

7.

8.在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

9.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.2,14,3,18,4,18

B.1,14,2,18,3,18

C.2,14,3,18,4,22

D.1,14,2,18,3,18,4,18

10.下列關(guān)于效率的說法不正確的是()

A.效率是一個性能要求,其目標(biāo)應(yīng)該在需求分析時給出

B.提高程序效率的根本途徑在于選擇良好的設(shè)計(jì)方法,數(shù)據(jù)結(jié)構(gòu)與算法

C.效率主要指處理機(jī)時間和存儲器容量兩個方面

D.程序的效率與程序的簡單性無關(guān)

11.下列存儲器中,存取速度最快的是()。

A.軟盤B.硬盤C.光盤D.內(nèi)存

12.已知有double型變量x=2.5,y=4.7,整型變量a=7,則表達(dá)式x+a%3*(int)(x+y)%2/4的值是()。

A.2.4B.2.5C.2.75D.0

13.以下選項(xiàng)中敘述錯誤的是()。

A.C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值

B.在同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限本復(fù)合語句內(nèi)

C.C程序函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值

D.C程序函數(shù)的性能不可以說明為static型變量

14.以下程序的輸出結(jié)果是()。main{intx=0.5;charz=‘a(chǎn)’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3

15.以下是if語句的基本形式:

if(表達(dá)式.語句

其中“表達(dá)式”()。

A.必須是邏輯表達(dá)式B.必須是關(guān)系表達(dá)式C.必須是邏輯表達(dá)式或關(guān)系表達(dá)式D.可以是任意合法的表達(dá)式

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

A.C語言函數(shù)可以嵌套調(diào)用,例如:fim(fun(X))

B.C語言程序是由過程和函數(shù)組成的

C.C語言函數(shù)不可以單獨(dú)編譯

D.C語言中除了main函數(shù)外,其他函數(shù)不可作為單獨(dú)文件形式存在

17.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:

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

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

18.使用數(shù)組名作為函數(shù)的實(shí)參時,傳遞給形參的是()。

A.數(shù)組中第1個元素的值B.數(shù)組的首地址C.數(shù)組中全部元素的值D.數(shù)組元素的個數(shù)

19.為了使模塊盡可能獨(dú)立,要求()。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)

20.若有定義:inta,b;,通過語句scanf("%d;%d",&a,&b);,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是A.A.35B.3,5C.3;5D.35

二、2.填空題(20題)21.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。

22.性表的順序存儲中,元素之間的邏輯關(guān)系是通過【】決定的;性表的鏈接存儲中,元素之間的邏輯關(guān)系是通過【】決定的。

23.下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

24.下面的程序?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;}

25.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。

26.數(shù)據(jù)流圖的類型有【】和事務(wù)型。

27.常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

28.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是______。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

29.下列程序的運(yùn)行結(jié)果是______。

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

30.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。

31.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

32.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置未AT,例如:

請?zhí)羁?/p>

#defineN4

voidrotate(inta[][])

{inti,j,t;

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

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

{t=a[i][j];【】;a[j][i]=t;}

}

33.在關(guān)系運(yùn)算中,【】運(yùn)算是對兩個具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。

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

main()

{intx=0;

sub(&x,8,1);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

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

36.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

37.若有如下結(jié)構(gòu)體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。

【】t[20]

38.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

39.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。

40.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運(yùn)行后,如果從鍵盤上輸入1298,則輸出結(jié)果為

三、1.選擇題(20題)41.下列敘述中,正確的一條是______。

A.C語言以函數(shù)為程序的基本單位,便于實(shí)現(xiàn)程序的模塊化

B.C程序的執(zhí)行總是從程序的第一句開始

C.C程序中可以不使用函數(shù)

D.C語言提供了一個輸入語句scanf和一個輸出語句printf

42.以下敘述中正確的是______。

A.C語言比其他語言高級

B.C語言可以不用編譯就能被計(jì)算機(jī)識別執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點(diǎn)

43.以下選項(xiàng)中,正確的if-else語句是()

A.if(x!=0)printf("%d",x)elseprintf("%d",-x);

B.if(x!=0){x=x+y;printf("%d",x);}elseprintf("%d",-x);

C.if(x!=0)x=x+y;printf("%d",x);elseprintf("%d",-x);

D.if(x!=0){x=x+y;printf("%d",x)};elseprintf("%d",-x);

44.以下程序的輸出結(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

45.有以下程序

#include

main()

{intc;

while((c=getchar())!='\n')

{switch(c-'2')

{case0:

case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

case4:putchar(c+3);break;}}

printf("\n")}

從第一列開始輸入以下數(shù)據(jù)代表一個回車符。

2743

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

A.66877B.668966C.6677877D.6688766

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

A.scanfB.getcharC.getsD.getc

47.請閱讀以下程序:main(){inta=5,b=0,c=0;if(a=b+c)printf(”"***\n");elseprintf("$$$\n");}以上程序

A.有語法錯不能通過編譯B.可以通過編譯但不能通過連接C.輸出***D.輸出$$$

48.數(shù)據(jù)庫系統(tǒng)的核心是()

A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程

49.函數(shù)rewind的作用是

A.使文件位置指針重新返回文件的開始位置

B.將文件位置指針指向文件中所要求的特定位置

C.使文件位置指針指向文件的末尾

D.使文件位置指針自動移至下一個字符位置

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

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

51.有以下程序:#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%5)==0)break;elsei--;}i+=13,a+=i;}pfintf("%d\n",A);}程序的輸出結(jié)果是()。

A.62B.63C.23D.36

52.定義如下變量:intn=10;則下列循環(huán)的輸出結(jié)果是()。while(n>7){-n;printf("%d\n",n);}

A.1098B.987C.10987D.9876

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

A.在C語言中,對二進(jìn)制文件的訪問速度比文本文件快

B.在C語言中,隨機(jī)文件以二進(jìn)制代碼形式存儲數(shù)據(jù)

C.語句FILEfp;定義了一個名為fp的文件指針

D.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

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

A.for(i=1,p=1;i<=5;i++)p*=i;

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

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

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

55.請讀程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結(jié)果是______。

A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

56.有以下程序:main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]-'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運(yùn)行時輸入以下命令行tt12345678程序運(yùn)行后的輸出結(jié)果是()。

A.12B.12345C.12345678D.136

57.以下描述中正確的是()。

A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句

B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式.后面不能寫分號

C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷

D.do-while循環(huán)中,根據(jù)情況可以省略while

58.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n")}從第一列開始輸入以下數(shù)據(jù)<CR>代表一個回車符。2743<CR>程序的輸出結(jié)果是

A.66877B.668966C.6677877D.6688766

59.下列軟件中,屬于應(yīng)用軟件的是()

A.UNIXB.人事管理系統(tǒng)C.數(shù)據(jù)庫管理系統(tǒng)D.SYSTEM

60.若程序中已包含頭文件stdio.h,以下選項(xiàng)中,正確運(yùn)用指針變量的程序段是

A.int*i=NULL;scanf("%d",i);

B.float*f=NULL;*f=10.5;

C.chart='m',*c=&t;*c=&t;

D.long*L;L='\0';

四、選擇題(20題)61.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。

A.存儲在外存中的數(shù)據(jù)

B.數(shù)據(jù)所占的存儲空間

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲方式

D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示

62.下列敘述中不正確的是。

A.算法的效率不僅與問題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)

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

C.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的

D.算法的時間復(fù)雜度與空間復(fù)雜度不一定相關(guān)

63.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關(guān)文檔的完整集合

64.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是()。

A.a,point,*&a

B.&*a,&a,*point

C.*&point,*point,&a

D.&a,&*point,point

65.(33)有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

}

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

}

以下關(guān)于程序段執(zhí)行情況的敘述,正確的是

A)for循環(huán)語句固定執(zhí)行8次

B)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時結(jié)束循環(huán)操作

C)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時不做任何操作

D)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時結(jié)束程序運(yùn)行

66.(56)下列不屬于軟件調(diào)試技術(shù)的是()

A.強(qiáng)行排錯法

B.集成測試法

C.回溯法

D.原因排除法

67.

有下列程序:

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

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

68.軟件(程序.調(diào)試的目標(biāo)是()。

A.診斷和改正程序中的錯誤

B.盡可能多地發(fā)現(xiàn)程序中的錯誤

C.發(fā)現(xiàn)并改正程序中的所有錯誤

D.確定程序中錯誤的性質(zhì)

69.(15)在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()

A.概要設(shè)計(jì)

B.詳細(xì)設(shè)計(jì)

C.可行性分析

D.需求分析

70.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。

A.排序、索引、統(tǒng)計(jì)B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表

71.以下選項(xiàng)中不能作為C語言合法常量的是

A.’Fab’B.0.7e+9C."\b"D.’\01211’

72.

73.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12

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

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

C.c語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言

D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

75.

76.有以下程序:

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

A.4,5,6,4,5,6,

B.1,2,3,4,5,6,

C.4,5,6,1,2,3,

D.6,5,4,3,2,1,

77.

78.

79.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

80.有以下程序:

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

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,則輸出后的字符是“456789”。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.學(xué)生記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組中,請編寫函數(shù)fun,其功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放入b所指的數(shù)組中,注意:分?jǐn)?shù)最低的學(xué)生可能不止一個,函數(shù)返回分?jǐn)?shù)最低的學(xué)生人數(shù):

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

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

參考答案

1.C解析:棧是一種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說明此時棧內(nèi)必然有1,2,由于1先于2進(jìn)淺,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。

2.AA?!窘馕觥緾語言源程序不能表示八進(jìn)制,在C語言中,所有的數(shù)值型常量都帶有符號,所以整型數(shù)量只區(qū)別整型和長整型兩種形式,整型常量和長整型常量均可用十進(jìn)制、二進(jìn)制、十六進(jìn)制3種形式表示,故A不正確。

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

4.D比較兩個字符串大小用函數(shù)strcomp(S,t),空字符串有結(jié)束符,所以也要占用字節(jié),兩個雙引號表示的是空字符串。

5.BC語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言。結(jié)構(gòu)化程序設(shè)計(jì)是以模塊化設(shè)計(jì)為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨(dú)立,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護(hù)性。

6.B

7.A

8.A

9.A程序定義整型變量a和i,其中a的初值為7。for循環(huán)中,循環(huán)變量i的取值為1,2,3。循環(huán)體中判斷a的取值,當(dāng)a>14時,執(zhí)行break跳出循環(huán);當(dāng)a取值為奇數(shù)時,a%2==1,a自增3,執(zhí)行continue繼續(xù)執(zhí)行循環(huán)體;當(dāng)a取值為偶數(shù)時,a%2==0,a自增4,輸出i和a的值。i取值為1時,a取值為7,自增3后a的值為10,執(zhí)行下一個循環(huán)。i取值為2時,a取值為10,自增4后a的值為14,輸出2,14。i取值為3時,a取值為14,自增4后a的值為18,輸出3,18。i取值為4時,a取值為18,循環(huán)終止,輸出4,18。綜上,程序輸出:2,14,3,18,4,18。本題答案為A選項(xiàng)。

10.D

11.D\nD【解析】存儲器中.存取速度最快的是內(nèi)存。

\n

12.B

13.A靜態(tài)變量不是每調(diào)用一次就賦一次初值,而是將需要定義許多相同的具有相同屬性的值時,使用靜態(tài)變量來節(jié)省空間,所以A選項(xiàng)錯誤。

14.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a(chǎn)’<‘z’)=1&&1=1,故選擇B選項(xiàng)。

15.D解析:本題主要考查關(guān)于if語句的說明,if后面圓括號中的表達(dá)式,可是任意合法的C語言表達(dá)式(如:邏輯表達(dá)式、關(guān)系表達(dá)式、算術(shù)表達(dá)式、賦值表達(dá)式等),也可以是任意類型的數(shù)據(jù)(如:整型、實(shí)型、字符型、指針型等。)

16.AC語言程序是由函數(shù)組成的,所以B選項(xiàng)錯誤。C語言函數(shù)可以單獨(dú)進(jìn)行編譯,所以C選項(xiàng)錯誤。每個C語言程序必須包含一個main函數(shù),但不是每個C語言程序文件都必須有一個main函數(shù),用戶單獨(dú)編寫的某個函數(shù)也可以存儲為一個C語言程序文件,所以D選項(xiàng)錯誤。故本題答案為A選項(xiàng)。

17.D調(diào)用缸函數(shù)后,實(shí)參數(shù)組名sl傳給形參指針P,P也指向數(shù)組sl。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個字符是空格并且前一個字符是小寫字母的話,就把前一個字符轉(zhuǎn)換為大寫。程序中語句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉(zhuǎn)換為大寫。因此D選項(xiàng)正確。

18.B用數(shù)組名作為函數(shù)參數(shù)時,數(shù)組名退化為指針,傳遞給形參的是數(shù)組的首地址。故本題答案為B選項(xiàng)。

19.B解析:模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。

20.C解析:在C語言中scanf函數(shù)中輸入數(shù)據(jù)時要嚴(yán)格按照所規(guī)定的樣式輸入。

21.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時,才可能執(zhí)行循環(huán)體;在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。

22.相鄰位置鄰接指針相鄰位置\r\n鄰接指針

23.2424解析:本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當(dāng)x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結(jié)果為4*3*2*1-24。

24.

25.參照完整性參照完整性

26.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。

27.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實(shí)心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

28.*(p+5)或p[5]*(p+5)或p[5]

29.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。

30.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。

31.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個臨時最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k)更大時,應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。

32.j<=ia[i][j]=a[j][i]j<=i\r\na[i][j]=a[j][i]解析:將矩陣轉(zhuǎn)置就是將行列互換,所以第一處應(yīng)填j<=i,第二處應(yīng)填a[i][j]=a[j][i]。

33.自然連接自然連接解析:在關(guān)系運(yùn)算中,自然連接運(yùn)算是對兩個具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。

34.77解析:在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語句,該語句的執(zhí)行過程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回推到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,在回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。

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

36.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

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

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項(xiàng)表;

};

定義結(jié)構(gòu)體變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,...?

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

38.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標(biāo)識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

39.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對象。

40.89218921

41.A

42.C解析:計(jì)算機(jī)語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項(xiàng)A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計(jì)算機(jī)識別的二進(jìn)制數(shù)才能執(zhí)行,選項(xiàng)B錯誤;C語言出現(xiàn)在1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項(xiàng)D也是錯誤的。

43.B

44.C解析:在本題運(yùn)行時主要注意的是當(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。

45.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運(yùn)算。

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

47.D解析:解答本題時,先判斷if語句,因?yàn)閍=b+c不成立,則執(zhí)行else語句。

48.B解析:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。

49.A解析:函數(shù)rewind的功能是將文件指針重新指向一個流的開頭。用法如下:

intrewind(FILE*stream);并且無返值。

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

51.D

52.B解析:第1次循環(huán),10>7,--n=9,輸出9。第2次循環(huán),9>7,--n=8,輸出8。第3次循環(huán),8>7,--n=7,輸出7。

53.C在C語言中,文件指針實(shí)際上是指向一個結(jié)構(gòu)體類型的指針,一般稱這個結(jié)構(gòu)體類型名為FILE,可以用此類型名來定義文件指針。定義文件類型指針變量的一般形式為:FILE*指針變量名:選項(xiàng)c)中少了“*”,所以選項(xiàng)C)錯誤。

54.B解析:選項(xiàng)B中for循環(huán)了5次,而每次循環(huán)的時候,都將p的值重新賦值為1后,再乘以當(dāng)前數(shù)字i,所以最后的結(jié)果為5,顯然不是5!的值,同樣的分析可知選項(xiàng)A、選項(xiàng)C和選項(xiàng)D計(jì)算的都是5!。所以,4個選項(xiàng)中選項(xiàng)B符合題意。

55.A解析:本題考查字符串比較函數(shù)strcmp()的應(yīng)用。strcmp(s1,s2)是中比較函數(shù),當(dāng)s1>s2時返回值為正數(shù),當(dāng)s1<s2時返回值為負(fù)數(shù),當(dāng)s1=s2時返回值為零。本題中s1,s2分別表示兩個串中第一個字符的地址,s1++和s2++是將指針指向串的第二個字符,指針變量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指針變量s2指向的是字符'B'的地址。而在字符串比較中,寧符串大小的確定是各個字符串相應(yīng)位置字符的ASCII碼值的大小決定的,字符'B'的ASCII碼值為66,字符“b”的ASCII碼值為98,所以s1>s2,返回值為正數(shù)。

56.D解析:因?yàn)轭}目給出的命令行為tt12345678,所以main函數(shù)的兩個參數(shù)分別為4和{'tt','12','345','678')。程序中,通過一個for循環(huán),遍歷了后面的三個參數(shù)字符串,每次將n自乘10,然后累加*argv[i]-\'0\',即第i個參數(shù)字符串的首字符減去\'0\'。一個數(shù)寧字符減去,O字符,即可得到這個數(shù)字字符的實(shí)際數(shù)值,因此三次循環(huán)的結(jié)果是讓n的值變?yōu)?36,故本題應(yīng)該選擇D。

57.C解析:do-while語句的一般形式為:do循環(huán)體語句while(表達(dá)式);,其中循環(huán)體語句可以是復(fù)合型語句,但必須用花括號括起來。while后必須要有分號作為語句的結(jié)束,在do-while循環(huán)中,不可以省略while。

58.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上。并且字符可以看作整數(shù)參與運(yùn)算。

59.B

60.D解析:選項(xiàng)A定義了一個整型變量i,并且初始化讓它指向NULL,接著通過seanf()函數(shù),改變i指向的存儲空間的值,選項(xiàng)A中首先定義了整型指針變量i并初始化為NULL,即表示指針i不指向任何內(nèi)存,即此時程序還沒有為i在內(nèi)存中開辟存儲單元,而在scanf()函數(shù)中笫;個參數(shù)是地址參數(shù),顯然在這里i不在表示地址,所以下面的scanf('%d',i)語句是不正確的,故選項(xiàng)A不正確;選項(xiàng)B定義了一個浮點(diǎn)型變量f并初始化讓它指向NULL,而當(dāng)一個指針變量指向NULL以后不能在給它賦值,而按下來的程序中為其賦了一值,故選項(xiàng)B錯誤;選項(xiàng)C中首先定義了一個字符變量t并給它賦初值\'m\',然后定義一個字符型指針c并讓它指向了變量t,這一部分正確,然后接著用了一個語句“c=&t;”應(yīng)該特該語句中c前的“*”去掉,故選項(xiàng)c運(yùn)用指針變量不正確。所以,4個選項(xiàng)中選項(xiàng)D符合題意。

61.D數(shù)據(jù)的存儲結(jié)構(gòu)也稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲空間中的具體存放形式。

62.C本題主要考查與算法有關(guān)的基本知識。算法是對一個問題求解步驟的描述,是求解問題的方法,它是指令的有限序列,其中的每條指令表示一個或多個操作。算法的效率不僅與問題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)。

算法的時間復(fù)雜度和空間復(fù)雜度是衡量一個算法好壞的度量,其中時間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;空間復(fù)雜度是指算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲空間。算法的空間復(fù)雜度與時間復(fù)雜度不一定相關(guān)。

數(shù)據(jù)的邏輯結(jié)構(gòu)反映的是數(shù)據(jù)的邏輯關(guān)系,與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān),是獨(dú)立于計(jì)算機(jī)的。因此,題目中說數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)一一對應(yīng)的說法不正確。本題答案選C。

63.D軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設(shè)計(jì)語言描述的、適合計(jì)算機(jī)執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料。因此本題的正確答案是D。

64.D本題主要考查指針變量對數(shù)值的引用。在題目中,首先定義了整型指針變量point和一個整型變量a,變量a的初值為4,然后是指針變量指向a

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論