2021年甘肅省白銀市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第1頁
2021年甘肅省白銀市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第2頁
2021年甘肅省白銀市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第3頁
2021年甘肅省白銀市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第4頁
2021年甘肅省白銀市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年甘肅省白銀市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下選項中非法的字符常量是()。

A.\101B.\65C.\xffD.\019

2.

3.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()

A.無序線性表B.線性鏈表C.二叉鏈表D.順序存儲的有序表

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

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

5.下列說法不正確的是()。

A.圖的遍歷是從給定的源點出發(fā)每一個頂點僅被訪問一次

B.圖的深度遍歷不適用于有向圖

C.遍歷的基本算法有兩種:深度遍歷和廣度遍歷

D.圖的深度遍歷是一個遞歸過程

6.現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續(xù)的3個結(jié)點。structnode{hardata;structnode*next;)*P,*q,*r;現(xiàn)要將q和r所指結(jié)點交換前后位置,同時要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;

B.q-:>next=r;q->next=r->next;r->next=q;

C.q-:>next=r->next;r->next=q;p->next=r;

D.q-:>next=q;p->next=r;q->next=r->next;

7.若有說明chars1[30]="Thecity",s2[]="isbeautiful";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。

A.s1的內(nèi)容更新為Thecityisbeautiful\0

B.s1的內(nèi)容更新為isbeaut\0

C.s1的內(nèi)容更新為Thecity\0isbeautiful\0

D.s1的內(nèi)容更新為Thecityisbeautiful\0

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

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

9.下列程序執(zhí)行后的輸出結(jié)果是()。main{charx=0xFFFF;printf("%d\n",x--);}A.-32767B.FFFEC.1D.32768

10.有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}程序執(zhí)行后的輸出結(jié)果是()。A.7B.3C.2D.0

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

12.有以下程序:#include<stdio.h>main(){chars[]="012xy\O8s34f4w2‘;inti;n=0;,for(i=0;s[i]!=0;i++)if(s[i]>=0s[i]<=9)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.3C.7D.8

13.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

14.對于長度為n的線性表,在最壞情況下,下列各種排序法所對應(yīng)的比較次數(shù)中正確的是(

A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-1)/2

15.有以下程序:#include<stdio.h>main(){char*s="[2]34";intk=0,a=0;whil(s[k+1]!=\0){k++;if(k%2=o){a=a+(s[k]-0+1);continue;}a=a+(s[k]-0);printf("k=%da=%d\n",k,a);}程序運(yùn)行后的輸出結(jié)果是()。A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15

16.對于n個元素,下列哪種操作時間復(fù)雜度不是O(nlogn)()

A.凸包計算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序

17.在順序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找關(guān)鍵碼12需做()次關(guān)鍵碼比較。

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

18.有以下程序:#include<stdio.h>voidfunc(intn){inti;for(i=0;i<=n;i++)printf("*"):printf("#");}main(){func(3);printf("????");func(4);printf("n\");程序運(yùn)行后的輸出結(jié)果()。A.****#????***#

B.***#????****#

C.**#????****#

D.****#????*****#

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

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

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

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

D.線性表可以是空表

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

A.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

B.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

C.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

D.break語句只能用于switch語句體中

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

22.如果兩個8位二進(jìn)制數(shù)00010101與01000111相加,其結(jié)果用十進(jìn)制表示為【】。

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

inti=9;

printf("%o\n",i);

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

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

25.有以下語句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>

n1=10

n2=20

26.結(jié)構(gòu)化分析方法是面向______進(jìn)行分析的方法。

27.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【】對其中的圖形元素進(jìn)行確切解釋。

28.“printf("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。

29.語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。

30.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。

31.軟件測試的方法有動態(tài)測試、靜態(tài)測試和【】13種。

32.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

33.以下程序的功能是建立—個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(struct

34.設(shè)有如下程序段:

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

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

上述程序段的輸出結(jié)果是【】。

35.若有程序

main()

{inti,j;

scanf("i=%d,j=%d",&i,&j);

pfintf("i=%d,j=%d\n",i,j);

}

要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入【】。

36.算法的復(fù)雜度主要包括空間復(fù)雜度和______復(fù)雜度。

37.棧中允許進(jìn)行插入和刪除的一端叫做______。

38.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法。詳細(xì)設(shè)計階段所采用的是【】方法。

39.以下程序的功能是調(diào)用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請?zhí)羁铡?/p>

#include<stdio.h>

intfun(intn)

{intm=0,f=1,i;

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

{m+=i*f;f=【】;}

returnm;

}

main()

{printf("m=%d\n",【】);}

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

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

三、1.選擇題(20題)41.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試

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

A.輸入項可以是一個實型常量,如scanf("%f",3.5);

B.只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");

C.當(dāng)輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf("%4.2f",&f)

D.當(dāng)輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf(“%f",&f);

43.為了提高軟件模塊的獨(dú)立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

44.設(shè)計準(zhǔn)則要求,模塊的作用域和控制域的關(guān)系是()

A.作用域和控制域無關(guān)B.作用域在控制域之外C.控制域在作用域之內(nèi)D.作用域在控制域之內(nèi)

45.若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是______。A.intfun(doublex,int*n);

B.intfun(double,int);

C.intfun(double*x,intn);

D.intfun(double*,int*);

46.以下程序運(yùn)行后,輸出結(jié)果是______。main(){char*d[]={"ab","cde"};printf("%x",d[1]);}

A.cdeB.字符c的AScII碼值C.字符c的地址D.出錯

47.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關(guān)系是()。

A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)

B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)

D.三者沒有明顯的包含關(guān)系

48.有以下程序inta=2;intf(int*a){return(*a)++;}main()ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);執(zhí)行后輸出結(jié)果是

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

49.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

50.下面程序的功能是將從鍵盤輸入的兩個數(shù)由小到大排序輸出,當(dāng)輸入一對相等數(shù)時結(jié)束循環(huán)。請選擇填空。#include<stdio.h>main(){inta,b,t;scanf("%d%d",&a,&b);while(______)}if(a>b){t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}}

A.!a=bB.a!=bC.a==bD.a=b

51.下列關(guān)系運(yùn)算中,能使經(jīng)運(yùn)算后得到的新關(guān)系中元組個數(shù)少于原來關(guān)系中元組個數(shù)的是()。

A.選擇B.投影C.連接D.并

52.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是

A.選擇B.連接C.投影D.并

53.有以下程序:#include<stdio.h>main(){unsignedchara,b;a=413;b=4&3;printf("%d%d\n",a,b);}執(zhí)行后的輸出結(jié)果是()。

A.70B.07C.11D.430

54.以下程序的輸出結(jié)果是______。sub(intx,int*y){*y=*y-x;}main(){inta=1,b=2;sub(a,&B);sub(b,&A);printf("%d,%d\n",a,B);}

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

55.在ASCII代碼表中每一個大寫字母比它相應(yīng)的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

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

A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)

B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)

C.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)

D.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機(jī)中所占的空間不一定是連續(xù)的

57.閱讀下述程序段:y=-1;if(x!=0)if(x>0)y=1;elsey=0;該程序段所描述的數(shù)學(xué)關(guān)系是()

A.

B.

C.

D.

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

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

59.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

60.以下程序(程序左邊的數(shù)字為符加的行號)。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.沒有錯B.第1行有錯C.第6行有錯D.第7行有錯

四、選擇題(20題)61.

62.以下敘述中正確的是()。A.在c語言中,預(yù)處理命令行都以‘‘#”開頭

B.預(yù)處理命令必須位于c源程序的起始位置

C.#include必須放在c程序的開頭

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

63.若有以下定義和語句:

則輸出結(jié)果是()。

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

64.以下程序的功能是計算:s=1+12+123+1234+12345

A.tB.t*10C.t*100D.t+10

65.

66.

67.

68.

69.

70.當(dāng)用“#defineF37.5f”定義后,下列敘述正確的是()。

A.F是float型數(shù)B.F是Char型數(shù)C.F無類型D.F是字符串

71.

72.

73.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運(yùn)行后的輸出結(jié)果是______。

A.22B.76C.72D.62

74.有以下程序:

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

A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC

75.閱讀以下程序及對程序功能的描述,其中正確的描述是

#include<stdio.h>

main()

{

FILE*in,*out;

charch,infile[10],outfile[10];

printf("Entertheinfilename:\n");

scanf("%s",infile);

printf("Entertheoutfilename:\n");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{

printf("cannotopeninfile\n");

exit(0);

}

if((out=fopen(outfile,"w"))==NULL)

{

printf("cannotopenoutfile\n");

exit(0);

}

while(!feof(in))fputc(fgetc(in),out);

fclose(in);

fclose(out);

}

A.程序完成將磁盤文件的信息在屏幕上顯示的功能

B.程序完成將兩個磁盤文件合二為一的功能

C.程序完成將一個磁盤文件復(fù)制到另一個磁盤文件中

D.程序完成將兩個磁盤文件合并后在屏幕上輸出

76.

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

#include<stdio.h>

#defineADD(x)x+x

main

{intm=1,n=2,k=3;

intS=ADD(m+n)*k;

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

}

A.sum=18B.sum=10C.sum=9D.sum=25

77.有以下程序:

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

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

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

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

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

78.軟件測試的目的是()。

A.評估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯誤C.改正程序中的錯誤D.發(fā)現(xiàn)程序中的錯誤

79.(12)下列敘述中正確的是______。

A.線性表是線性結(jié)構(gòu)

B.棧與隊列是非線性結(jié)構(gòu)

C.線性鏈表是非線性結(jié)構(gòu)

D.二叉樹是線性結(jié)構(gòu)

80.

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc的功能是:判斷字符ch是,與str所指字符串中的某個字符相同;若相同,則什么也不做,若不同,則將其插在串的最后。請修改程序中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#include<string.h>

//****found****

voidproc(charstr,charch)

{

while(*str&&*str!=ch)str++;

//****found****

if(*str==ch)

{str[0]=ch;

//****found****

str[1]=0:

}

}

voidmain

{

charstr[81],ch;

system("CLS");

printf("\nPleaseenterastring:");

gets(str);

printf("\nPleaseenterthecharacterto

search:");

ch=getchar;

proc(str,ch);

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

}六、程序設(shè)計題(1題)82.編寫函數(shù)proc(),它的功能是求m以內(nèi)(不包括m)同時能被5與11整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。

例如,m為100時,函數(shù)值應(yīng)為s=7.416198。

注意:部分源程序給出如下。

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

試題程序:

參考答案

1.D在選項中,\\019,以0開頭的數(shù)都為八進(jìn)制數(shù),而八進(jìn)制的表示數(shù)字是0~7,所以答案選擇D。

2.D

3.DD)【解析】二分法查找只適用于順序存儲的有序表,表中的元素按值從小到大排列。

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

5.C

6.D由題目中線性鏈表的定義可知,要將q和r所指的結(jié)點交換前后位置,只要使q指向r的后一個結(jié)點,P指向r結(jié)點,r指向q結(jié)點即可。而在選項D中,r->next=q,這時r指向的節(jié)點為q;p->next=r,這時P指向的節(jié)點為r;q->next:r->next,因為r節(jié)點已經(jīng)指向q,所以執(zhí)行這個語句后q又指向q,所以選項D不正確。

7.D解析:該函數(shù)用來使兩個字符串連接成為一個字符串。strcat(str1,str2)將str2中的字符連接到str1的字符后面,并在最后加一個“\\0”。連接后新的字符串存放在strl中。注意:用于字符串處理的函數(shù)。

8.D

9.C因為x=0xFFFF=11111111,因此當(dāng)以整型形式輸出時對應(yīng)的數(shù)為一1。

10.C在函數(shù)funlintx)中,有個if語句判斷,如果參數(shù)x等于0或1時,返回值,否則進(jìn)入下面的p=x-fun(x-2)遞歸函數(shù)。當(dāng)在主函勢中調(diào)用fun(7)時,其過程為:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的輸出結(jié)果為2。

11.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)中每個成員相互獨(dú)立;聯(lián)合所占用的內(nèi)存空間為最長的成員所占用的空間。

12.B考查簡單的C程序數(shù)組和循環(huán)。for循環(huán)是指i=0,如果s/[3]!=0,則i自動加1。if循環(huán)指的是s[i]中的元素大于等于0且小于等于9,則n加l,所以答案為B。

13.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。

14.D在最壞情況下,冒泡排序和快速排序的比較次數(shù)都是n(n一1)/2?!局R拓展】所謂冒泡排序,就是將相鄰的兩個數(shù)據(jù)比較,如前面的數(shù)據(jù)大于后面的,則位置互換。這樣不停地比較、互換,其實就是把大的數(shù)往后排,小的數(shù)往前排(就像冒泡一樣冒出來了)。

15.C輸出結(jié)果:k=1a=2\r\nk=2a=4\r\nk=3a=7\r\nk=4a=12

16.C

17.B

18.D本題考查簡單的for循環(huán),func(3)由于i是從0開始,所以會輸出四個“*”和一個“#”,然后打印四個“?”func(4),會輸出五個“*”和一個“#”,所以答案選擇D。

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

20.Bcontinue語句的作用是跳過循環(huán)體中剩余的語句而進(jìn)行下一次循環(huán),所以A選項錯誤。break語句的作用是終止正在執(zhí)行的switch語句體,跳出switch語句體或者強(qiáng)制終止當(dāng)前循環(huán),從當(dāng)前執(zhí)行的循環(huán)中跳出,所以C、D選項錯誤。故本題答案為B選項。

21.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。

22.92

23.1111解析:本題考核的知識點是printf()函數(shù)的輸出格式。本題中定義了一個整型變量i并賦初值為9,然后要求以八進(jìn)制輸出i的值,9的八進(jìn)制數(shù)的表示為11。

24.77解析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。

25.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù),其中格式控制參數(shù)由兩種成分組成:格式說明和普通字符,普通字符將被簡單地復(fù)制顯示,格式說明項將引起一個輸出參數(shù)項的轉(zhuǎn)換與顯示,它是由“%”引出并以一個類型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數(shù),所以格式說明項為%d,也可以在%與d之間加上域?qū)挘硗膺€要在每行輸出結(jié)束時加轉(zhuǎn)義字符\\n進(jìn)行換行。所以,應(yīng)填寫n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。

26.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

27.數(shù)據(jù)字典或DD數(shù)據(jù)字典或DD解析:數(shù)據(jù)流圖用來對系統(tǒng)的功能需求進(jìn)行建模,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數(shù)據(jù)詞典(DataDictionary,DD)用于對數(shù)據(jù)流圖中出現(xiàn)的所有成分給出定義,它使數(shù)據(jù)流圖上的數(shù)據(jù)流名字、加工名字和數(shù)據(jù)存儲名字具有確切的解釋。

28.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。

\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號:\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;\'\\xAB\'是以兩位+六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。

5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

29.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識符(*指針變量名)()。注:“類型標(biāo)識符”為函數(shù)返回值的類型。

30.33解析:本題考查的是C語言逗號表達(dá)式的相關(guān)知識。程序在計算逗號表達(dá)式時,從左到右計算由逗號分隔各表達(dá)式的值,整個逗號表達(dá)式的值等于其中最后一個表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。

31.正確性測試正確性測試

32.

33.解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。

34.16

35.i=0j=20i=0,j=20解析:scanf()函數(shù)的使用,該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應(yīng)要輸入的變量,所以說本題中應(yīng)該原樣輸入i=,j=,后面分別給變量0和20,所以說空格處應(yīng)該填入i=0,j=20。

36.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。

37.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。

38.結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計解析:在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法。詳細(xì)設(shè)計階段所采用的是結(jié)構(gòu)化設(shè)計方法。

39.(-1)*ffun(10)(-1)*f\r\nfun(10)解析:本題利用一個fun函數(shù)來完成題目要求的計算。程序中變量f起的作用是控制i*f的符號,偶數(shù)位都為負(fù)值,第一處填(-1)*f。在main函數(shù)中要輸出fun函數(shù)返回的m值,因此第二處填fun(10),實參10傳給形參n。

40.4

41.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。

(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機(jī)系統(tǒng)的元素與計算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

42.D

43.D解析:耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn),是互相關(guān)聯(lián)的。在程序設(shè)計中,各模塊間的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨(dú)立性。

44.D

45.D解析:函數(shù)聲明可以照寫已定義的函數(shù)的首部,再加一個號就成為了對函數(shù)的聲明,在函數(shù)聲明中也可以不寫形參名,而只寫形參的類型,但要保證與函數(shù)首部寫法上的—致,即函數(shù)類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型和參數(shù)順序相同。字符數(shù)組可用指針來表示,所以選頂D正確。

46.C解析:指針數(shù)組中的每一個元素都相當(dāng)于一個指針變量。一維指針數(shù)組的定義形式為:類型名*數(shù)組名[數(shù)組長度],在本題main函數(shù)中定義指針數(shù)組d,它有兩個元素,其初值分別是“ab”、“cde”的首地址。d[1]的值為“cde”的首地址。%x是指以十六進(jìn)制數(shù)形式輸出整數(shù)。

47.B數(shù)據(jù)庫可以看成是長期存儲在計算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫可以被直觀地理解為存放數(shù)據(jù)的倉庫,只不過這個倉庫在計算機(jī)的大容量存儲器上,例如,硬盤就是一種最常見的計算機(jī)大容量存儲設(shè)備。數(shù)據(jù)必須按一定的格式存放,因為它不僅需要存放,而且還要便于查找和使用。

數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的完成數(shù)據(jù)管理的系統(tǒng)軟件。它是用戶與數(shù)據(jù)庫的接口。應(yīng)用程序一般要通過DBMS才能訪問數(shù)據(jù)庫。在數(shù)據(jù)庫建立、運(yùn)用和維護(hù)時對數(shù)據(jù)庫進(jìn)行統(tǒng)一控制。

數(shù)據(jù)庫系統(tǒng)是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。數(shù)據(jù)庫是整個數(shù)據(jù)庫系統(tǒng)最基本的成分。數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。數(shù)據(jù)庫管理員是數(shù)據(jù)庫系統(tǒng)的責(zé)任維護(hù)者,負(fù)責(zé)對數(shù)據(jù)庫系統(tǒng)的整體維護(hù)。

綜上所述,本題中只有B選項的描述是正確的。

48.C解析:本題考核的知識點是局部變量和全局變量的區(qū)別。若在函數(shù)中定義與全局變量名字相同局部變量,則全局變量在該函數(shù)中將不起作用。本題中定義了一個全局變量a和局部變量a在主函數(shù)中定義一個整型變量s并賦初值為0,接著定義了一個局部變量a并賦值為5,由于該局部變量的和全局變量a同名,故全局變量在復(fù)合語句中將不起作用,然后調(diào)用函數(shù)f(&a)(該函數(shù)的作用是返回存儲變量a的空間中的值,并讓該值加1,分析程序可知返回值為5,并讓a值加1變?yōu)?),并將返回值加到s中.此時s的值為5,然后執(zhí)行該復(fù)合語句外的其他語句,同樣調(diào)用函數(shù)f(&a),但傳遞的參數(shù)是全局變量a,故其返回值為2,加到。中后s的值變?yōu)?,故最后輸出的s的值為7,所以,4個選項中選項C符合題意。

49.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達(dá)式。

50.B解析:根據(jù)本題提出的條件可知,控制循環(huán)的表達(dá)式應(yīng)該是所輸入的兩數(shù)互不相等(相等時結(jié)束循環(huán)),也即只有滿足這一條件時,才對兩數(shù)進(jìn)行排序輸出操作,由此得出循環(huán)的控制表達(dá)式應(yīng)該為a!=b。

51.A解析:選擇運(yùn)算是在指定的關(guān)系中選取所有滿足給定條件的元組,構(gòu)成一個新的關(guān)系,而這個新的關(guān)系是原關(guān)系的一個子集。因此,一個關(guān)系經(jīng)選擇運(yùn)算后得到的新關(guān)系中,元組個數(shù)少于原來關(guān)系中元組個數(shù)。

52.B解析:本題主要考查關(guān)系模型中幾種運(yùn)算的特征。經(jīng)過選擇或投影運(yùn)算得到的新關(guān)系的屬性個數(shù)最多不會超過原關(guān)系中的屬性個數(shù)。經(jīng)過連接運(yùn)算得到的新關(guān)系最多不少于原關(guān)系中屬性的個數(shù)。故選項B正確。

53.A解析:&是按位“與”運(yùn)算符,其運(yùn)算規(guī)則是:參加運(yùn)算的兩個運(yùn)算量,如果兩個相應(yīng)的位都為1,則該位的結(jié)果值為1,否則為0。|是按位“或”運(yùn)算符,其運(yùn)算規(guī)則是:兩個相應(yīng)位中只要有一個為1,該位的結(jié)果為1。4轉(zhuǎn)換為二進(jìn)制數(shù)為0100,3轉(zhuǎn)換為二進(jìn)制數(shù)為0011,則4|3=0111,即7,4&3=0000,即0。

54.C解析:函數(shù)fun的功能是將形參指針變量y所指變量的值減去形參x中的值,計算結(jié)果賦給y所指變量。主函數(shù)第一次調(diào)用函數(shù)sub之后,b的值為1,第二次調(diào)用函數(shù)sub之后,a的值為0,程序輸出為0,1。

55.A解析:本題考查大小寫字母的ASCII碼值的關(guān)系。大寫字母比它相應(yīng)的小寫字母的ASCII碼小32。

56.BB。【解析】數(shù)據(jù)的存儲結(jié)構(gòu)分為順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu),一個數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)。順序結(jié)構(gòu)中數(shù)據(jù)元素所占的存儲空間是連續(xù)的,而鏈?zhǔn)酱鎯Y(jié)構(gòu)中,數(shù)據(jù)元素所占的存儲空間不一定是連續(xù)的。數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)。

57.C解析:y的初值為-1,第一個if語句的判斷條件為x!=0,即當(dāng)x!=0時y的值變化,x=0時y的值不變,仍為-1。第二個if語句的判斷條件為x>O,如果x>0則y=1,否則y=0,即x<O時,y=O。4個選項中C符合題意。

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

59.DD?!窘馕觥棵嫦?qū)ο笤O(shè)計方法與面向過程設(shè)計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計的特點。

60.B解析:字符串復(fù)制函數(shù)strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯誤的。

61.C

62.A預(yù)處理命令是以“#”號開頭的命令,它們不是c語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,因此B)、c)選項錯

63.Cstrlen函數(shù)返回字符串的長度,求字符串1長度時,遇到結(jié)束標(biāo)志‘、0’為止,但是長度不包括結(jié)束標(biāo)識。f字符數(shù)組sl的后5個元素沒有賦值,都為‘\0’,即“abcd!”后為‘\0’。所以sMen(s1)的值為5。字符指針s2所指向的字符串中,、n為轉(zhuǎn)義字符換行符,表示1個字符,\、也為轉(zhuǎn)義字符,代表\,也是l個字符,其后為字符串結(jié)束標(biāo)識‘0’;所以strlen(s2)的值也為5。因此C選項正確。

6

溫馨提示

  • 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

提交評論