2022年河南省安陽市全國計算機等級考試C語言程序設計真題(含答案)_第1頁
2022年河南省安陽市全國計算機等級考試C語言程序設計真題(含答案)_第2頁
2022年河南省安陽市全國計算機等級考試C語言程序設計真題(含答案)_第3頁
2022年河南省安陽市全國計算機等級考試C語言程序設計真題(含答案)_第4頁
2022年河南省安陽市全國計算機等級考試C語言程序設計真題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年河南省安陽市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.一個長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一個節(jié)點,A以步長為1向前移動,B以步長為3向前移動,一共需要同時移動多少步A和B才能再次指向同一個節(jié)點()。

A.99B.100C.101D.49E.50F.51

3.若果要求一個線性表既能較快查找,又能適應動態(tài)變化的要求,可以采用()查找方法。

A.分塊B.順序C.二分D.散列

4.若要求從鍵盤讀入含有空格字符的字符串,應使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()

5.軟件生命周期是指()。A.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程

B.軟件從需求分析、設計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護過程

6.以下關于鏈式存儲結構說法錯誤的是()

A.比順序存儲結構的存儲密度小

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

C.查找結點時鏈式存儲比順序存儲快

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

7.有以下程序:#include<stdio.h>main(){intx=10,y=11,z=12;if(y<z)x=y;y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);}程序運行后的輸出結果是()。

A.x=11y=12z=11

B.x=10y=10z=10

C.x=11y=11z=10

D.x=10y=10z=12

8.棧通常采用的兩種存儲結構是A.A.線性存儲結構和鏈表存儲結構

B.散列方式和索引方式

C.鏈表存儲結構和數(shù)組

D.線性存儲結構和非線性存儲結構

9.判斷一個單向鏈表中是否存在環(huán)的最佳方法是()

A.兩重遍歷B.快慢指針C.路徑記錄D.哈希表輔助

10.

11.當很頻繁的對序列中部進行插入和刪除操作時,應該選擇使用的容器是()

A.vectorB.listC.dequeD.stack

12.有以下定義和語句:structworkers{intnum;charname[20];charC;struct{intday;intmonth;intyear;)S;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

13.若變量已經定義且正確賦值,則針對程序段“temp=a;a=b;b=temp;”,以下敘述中正確的是()。

A.C語言的順序結構不允許將多條語句寫在一行里

B.程序順序結構對于此段程序是從左至右依次執(zhí)行的

C.此程序段的執(zhí)行順序是,先執(zhí)行“b=temp;”,再執(zhí)行“a=b;”,最后執(zhí)行“temp=a;”

D.將此段程序的前兩個分號改成逗號,后面一個不變,則不能實現(xiàn)a和b值的交換

14.在說明語句:int*f();中,標識符f代表的是

A.一個用于指向整型數(shù)據(jù)的指針變量

B.一個用于指向一維數(shù)組的行指針

C.一個用于指向函數(shù)的指針變量

D.一個返回值為指針型的函數(shù)名

15.有以下程序(提示:程序中fseek(fp-2L*sizeof(int),SEEK_END);語句的作用是使位置指針從文件末尾向前移2*sizeof(ing)字節(jié))#include<stdio.h>main(){FILE*fp;inti,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/fclose(fp);printf("%d\n",B);}執(zhí)行后輸出結果是

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

16.檢查軟件產品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

17.則以下函數(shù)調用語句錯誤的是()。#include<stdio.h>intadd(inta,intb){return(a+b)}main(){intk,(*f)(),a=5,b=10;f=add;...}A.k=f(a,b);B.k=add(a,b);C.k=(*f(a,b);D.k=*f(a,b);

18.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:

19.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結果是()。

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

20.

二、2.填空題(20題)21.下面函數(shù)要求計算兩個整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁铡?/p>

add(intx,inty,【】z)

{【】=x+y;}

22.以下程序的輸出結果是【】。

main()

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

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

23.本程序用改進冒泡法對數(shù)組a[n]的元素從小到大排序,請在程序空白處填空。

voidbubble(inta[],intn)

{intj,k,jmax,temp;

jmax=【】;

do{

k=0;

for(j=0;j<jmax;j++)

if(a[j]>a[j+1])

{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;

jmax=k;

}while(jmax>0);}

24.在ER圖中,矩形表示【】。

25.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

26.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

printf("%x\n,p+9);

}

27.以下程序的運行結果是______。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

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

pfintf("\n",);}

28.有以下程序:

voidf(inta[],inti,intj)

{intt;

if(i<j)

{t=a[i];a[i]=a[j];a[j]=t;

f(a,i+1,j-1);

}

}

main()

{inti,aa[5]={1,2,3,4,5};

f(aa,0,4);

for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");

}

執(zhí)行后的輸出結果是【】。

29.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

30.以下程序輸出的結果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"}1,k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

31.以下程序的輸出結果是【】。

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

32.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”語句的輸出結果是()。

33.若有函數(shù)max(a,b),為了讓函數(shù)指針變量p指向函數(shù)max,當調用該函數(shù)時,正確的賦值方法是

34.下面程序的輸出結果是【】。

charb[]="ABCD";

main()

{

charb[30];

strcpy(&b[0],"GH");

strcpy(&b[1],"GH");

strcpy(&b[2],"GH");

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

}

35.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

36.設變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。

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

main()

{intX=10,y=20,t=0;

if(X==y)t=x;x=y;y=t;

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

}

38.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。

39.已有定義;charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

40.若有以下定義語句,則不移動指針p,并且通過指針p引用值為98的數(shù)組元素的表達式是【】。

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

三、1.選擇題(20題)41.閱讀下列程序,則在執(zhí)行后,程序的運行結果為#include"stdio.h"#include"string.h"main(){chara[30]="nicetomeetyou!";strcpy(a+strlen(a)/2,"you");printf("%s\n",a);}

A.nicetomeetyouyouB.nicetoC.meetyouyouD.nicetoyou

42.有以下定義語句doublea,a;intw;longc;若各變量已正確賦值,則下列選項中正確的表達式是

A.a=a+b=b++B.w%((int)a+b)C.(c+w)%(int)aD.w=a==b

43.棧和隊列的共同特點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點

44.已知inta=1,b=3則a^b的值為

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

45.數(shù)據(jù)的存儲結構是指()。

A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結構在計算機中的表示

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

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,

47.設有如下定義,則執(zhí)行表達式(nFa>b)&&(n=c>d)后,n的值為______。inta=1,b=2,c=3,d=4,m=2,n=2;

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

48.可在C程序中用作用戶標識符的一組標識符是

A.andB.DateC.HiD.case_2007y-m-dDr.TomBigl

49.有以下程序:mare(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結果是()。

A.45B.20C.25D.36

50.設已有定義:floatx;則以下對指針變量p進行定義且賦初值的語句中正確的是A.float*p=1024;

B.int*p=(float)x;

C.floatp=&x;

D.float*P=&x;

51.變量m的值為8,m的地址為1010,若欲使p為指向m的指針變量,則下列賦值正確的是()。

A.&m=8B.*p=8C.*p=1010D.p=&m

52.設有定義語句:charc1=92,c2=92;,則以下表達式中值為零的是

A.c1c2

B.c1&c2C.c1~c2D.c1|c2

53.C語言中,文件組成的基本單位為()。

A.記錄B.數(shù)據(jù)行C.數(shù)據(jù)塊D.字符序列

54.下列選項中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

55.對下述程序的判斷中,正確的是voidmain(){char*p,s[128];p=s;while(strcmp(s,"End")){printf("Inputastring:");gets(s);while(*p)putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止

B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因為代碼有錯誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串

56.有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是

A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說明符不足,編譯出錯D.程序運行時產生錯信息

57.對下述程序的判斷中,正確的是#include<stdio.h>voidmain(){char*p,s[128];p=S;while(strcmp(s,"End")){printf("Inputastring:");gets(s);while(*p)putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止

B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因為代碼有錯誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串

58.若有以下定義;chara;intb;floatc;doubled;則表達式“a*b+d-c”值的類型為()

A.floatB.intC.charD.double

59.有如下程序#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

60.下列敘述中正確的是A.程序設計就是編制程序

B.程序的測試必須由程序員自己去完成

C.程序經調試改錯后還應進行再測試

D.程序經調試改錯后不必進行再測試

四、選擇題(20題)61.

62.C語言源程序名的后綴是()。A.CB.exeC.obiD.ep

63.

64.以下程序段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是()。

A.if(a>b)(b>c)k=1;elsek=0;

B.if((a>b)‖(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b>c)k=1;

D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:

65.若變量已正確定義,有以下程序段其輸出結果是()。

A.0,1B.0,0C.1,1D.程序進入無限循環(huán)

66.下面程序的輸出結果是()。

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

67.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉義字符常量是()。

A.\bB.\tC.\vD.\f

68.

對兩個數(shù)組a和b進行下列初始化:

charm[]1="l234567":

charn[]={1,2,3,4,5,6,7);

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同

B.數(shù)組m與數(shù)組n長度相同

C.數(shù)組m比數(shù)組n長1

D.數(shù)組m與數(shù)組n中都存放字符串

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

A.一個算法的空間復雜度大,則其時間復雜度也必定大

B.一個算法的空間復雜度大,則其時間復雜度必定小

C.一個算法的時間復雜度大,則其空間復雜度必定小

D.上述三種說法都不對

70.有以下程序

#include"stdio.h"

voidfun(int*a,int*b,intc)

{c=*a+*b;}

main()

{inta[2]={6,9},c=0;

fun(a,a+1,&c);

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

}

程序輸出的結果是

A.6B.9

C.0D.15

71.面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質不同,它的基本原理是()。

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強調模擬現(xiàn)實世界中的算法而不強調概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.不強調模擬現(xiàn)實世界中的算法而強調概念

72.

73.設整型變量a為5,使b不為2的表達式是()。

A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:1

74.

75.若有定義語句:“charS[3][10],(*k)[3],*p;”,則以下賦值語句正確的是()。

A.p=S;B.p=k;C.p=s[0];D.k=s;

76.檢查軟件產品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

77.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:

78.

79.假定已建立以下鏈表結構,且指針p和q已指向如圖所示的結點:

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

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

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

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

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

五、程序改錯題(1題)81.在主函數(shù)中從鍵盤輸入若干個數(shù)放人數(shù)組中,用0結束輸入并放在最后一個元素中。下列給定程序中,函數(shù)proc()的功能是計算數(shù)組元素中值為負數(shù)的平均值(不包括0)。例如,數(shù)組中元素的值為78、-65、-15、35、-45、0,則程序的運行結果為-41.666667。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.下列程序定義了M×M的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)proc(),函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如,若a數(shù)組中的值為:21098則返回主程序后,s的值為3.750000。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A

2.A

3.A

4.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc(\u3000)函數(shù)的調用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。

5.A通常,將軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。

6.C

7.Aif條件為真,執(zhí)行“x=y;”,此時x=11,y=11,z=12;再執(zhí)行“y=z;z=x;”,此時y=12,z=11,即x=11,y=12,z=11。故本題答案為A選項。

8.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結構是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結構中的應用。

9.B

10.C

11.B

12.D結構workers中的成員s是一個嵌套的結構類型定義,因此在給year賦值時,要用“.”運算在深入一層訪問到最基本的成員year,只有D項反映出了這一點。

13.BC語言允許將多條語句寫在一行,選項A錯誤;題干中的語句是從左至右依次執(zhí)行的,選項B正確,選項C錯誤。題干中的程序前兩個分號改成逗號,就構成了逗號表達式。逗號表達式會依次從左到右計算各個表達式,整個表達式的值是最后一個表達式的值,所以此例也可以實現(xiàn)a和b值的交換,選項D錯誤。故本題答案為B選項。

14.D解析:帶回指針值的函數(shù),其一般定義形式為:

類型標識符*函數(shù)名(參數(shù)表);

例如;int*f(x,y);

其中,f是函數(shù)名,調用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側分別為*運算符和()運算符,而()優(yōu)先級高于*,因此f先與()結合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。

15.D解析:函數(shù)fopen(constchar*filename,constchar*mode)的功能是以mode指定的模式打開filename指定的磁盤文件:fclose(FILE*fp)的功能是關閉文件指針fp指向的文件;函數(shù)fscanf(FILE*fp,constchat\'*format1,address,--])的功能是根據(jù)format中的格式從中指向的文件中讀取數(shù)據(jù),并存入到相應的address指向的變量中.函數(shù)fprintf(FILE*fp,constchar*format[,argument--])的功能是把argument列表中的表達式值寫到fp所指向的文件中;函數(shù)fwfite(void*ptr,intsize,intn,FILE*fp)的功能是把ptr指向的緩沖區(qū)中的size×n個字節(jié)寫到文件指針fp指向的文件中。本題中首先定義了一個文件指針fp,然后通過函數(shù)fopen以可'wb'的方式打開文件'data.daft',直接通過一個for循環(huán),每循環(huán)一次調用函數(shù)fwrite將數(shù)組中的元素a[i]的值寫進fp所指的文件中,該循環(huán)共循環(huán)4次,循環(huán)完后fp所指文件的內容為123,然后通過fclose函數(shù)關閉fp所指文件.接著通過函數(shù)fopen以'rb”的方式打開文件'data.dat',通過fseek函數(shù)讓指針中從文件末尾向前移動2個int型大小字節(jié)的,然后通過函數(shù)fread從中所指的文件中讀取一個int型大小的數(shù)據(jù)到變量b中,故此時b的值為3,因此最后輸出的,b的值為3,所以,4個選項中選項D符合題意。

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

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

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

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

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

17.DD選項中*f(a,b)表示調用后返回一個指向整型數(shù)據(jù)的地址指針,即該函數(shù)的返回值為指針類型,所以不能將其賦值給整形變量k。

18.DD選項中將字符串常量…aa賦給字符變量a是錯誤的。

19.AC語言中的轉義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結束,因此計數(shù)為3。故本題答案為A選項。

20.D

21.int**zint*\r\n*z解析:函數(shù)希望通過形參z帶回結果,形參z必須是指針類型的。由于返回整型結果,所以第一處填int*;函數(shù)返回前必須先把結果通過形參z間接引用傳回,第二處應填*z。

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

23.n-1jn-1\r\nj解析:此題采用了do…while循環(huán)內嵌for循環(huán)的雙層循環(huán)結構來實現(xiàn)了數(shù)組元素的排序。數(shù)組元素通過首地址和數(shù)組下標的方式來引用的。

24.實體實體解析:在E-R圖中用矩形表示實體;橢圓形表示屬性;菱形表示聯(lián)系。

25.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結構,從而大大減少了程序中的冗余,提高軟件的可重用性。

26.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。

27.本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

28.154321,5,4,3,2解析:第一次調用函數(shù)f后aa[0]=5、aa[4]=1;第二次調用函數(shù)f后aa[1]=4、aa[4]=2;第三次調用函數(shù)f后aa[3]=3。正確答案為1,5,4,3,2。

29.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

30.D

31.3131解析:在函數(shù)調用時,形參值和改變,不會改變實參的值。

32.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結束標志\'\\0\'。\'\\t\'是轉義字符,代表橫向跳若干格;\'\\'\'是轉義字符,代表雙引號:\'\\023\'也只代表一個字符,而不管轉義字符后面有幾個符;\'\\xAB\'是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉義字符,代表回車換行。題中語句中的字符串有5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

33.C

34.GGGHGGGH解析:由于在函數(shù)main中定義了數(shù)組變量b,其將屏蔽全局變量b。對于一維數(shù)紐變量,其值為一常數(shù),等于數(shù)組首元素地址。strcpy(&b[0],'GH'),是將字符串'GH'復制到數(shù)組b中從首元數(shù)開始的空間中,此是b中的字符串為”叫”:strcpy(&b[1],'GH'),是將字符串'GH'復制到數(shù)組b中從第二個元素開始的空間中,此是b中的字符串為“GH”。執(zhí)行第三次strcpy函數(shù)后,b中的字符串為'GGGH'。

35.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。

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

37.20020,0解析:在主函數(shù)中首先定義了3個整型變量x、y、t,并分別給它們賦初值為10、20、0,接著執(zhí)行汀語句,在if后面括號內的條件表達式中,條件x==y即10==20不成立,則不執(zhí)行其后的語句t=x,然后退出if語句,順序執(zhí)行語句x=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x、y的值為20和0。

38.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務。

39.00解析:本題考查數(shù)據(jù)類型及其運算的邏輯運算,c為空格字符但其ASCII碼不為0,所以!c=0,在邏輯與運算中,只要有一項為假,其值為0,所以b的值為0。

40.*(p+5)

41.D解析:考查通過賦值的方式給一維數(shù)組賦初值。字符串復制函數(shù)strcpy調用形式為:strcpy(s1,s2),此函數(shù)用來把s2所指字符串的內容復制到s1所指存儲空間中,函數(shù)返回s1的值,即目的串的首地址;求字符串長度函數(shù)strlen的調用形式如下:strlen(s),此函數(shù)計算出以s為起始地址的字符串長度,并作為函數(shù)值返回。注意這一長度不包括串的結束標志。用于字符串處理的函數(shù)。

42.C解析:本題考核的知識點是C語言中一些運算符的簡單應用。選項A中不是合法的賦值語句,將最右邊的第一個般值表達式加括號即為a=b+(b=b++)才正確,故選項A不正確;選項B中運算符“%”的對象必須是整型,而在選項B中(int)a+b為double型,故選項B不正確;選項a,b都為,double“==”應該改為“=”,故選項D不正確.所以,4個選項中選項C符合題意。

43.C解析:考查棧和隊列概念的掌握。棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種'后進先出'的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種'先進先出'的線性表。模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構耦合、控制耦合、公用耦合和內容耦合。選項C),沒有這種耦合方式。

44.C解析:^是按位異或運算,如果對應位不同則結果為1,相同則為0。

45.D數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間的邏輯關系的數(shù)據(jù)結構。數(shù)據(jù)的存儲結構則是數(shù)據(jù)的邏輯結構在計算機中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結構。兩者的區(qū)別是數(shù)據(jù)的邏輯結構只涉及到數(shù)據(jù)之間抽象的數(shù)學關系。存儲結構則涉及到如何在計算機中通過對數(shù)據(jù)的物理存儲進行組織來表達數(shù)據(jù)元素之間的邏輯關系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數(shù)據(jù)的前后件關系;在線性表的鏈式存儲中是通過指針域構成的邏輯鏈條來表達數(shù)據(jù)的前后件關系。一般的,一種數(shù)據(jù)的邏輯結構對應的物理實現(xiàn),即數(shù)據(jù)的存儲結構不止一種。因此選項D正確。

46.C解析:本題考查的知識點是數(shù)組名作為函數(shù)的參數(shù)以及函數(shù)與排序算法結合在一起的綜合應用.本題中首先定義一個長度為10的一個整型數(shù)組,并初始化為“1,2,3,4,5,6,7,8,9,10”,然后調用排序函數(shù)sort(),通過分析不難看出,sort()數(shù)是對具有n個元素的a數(shù)組進行從大到小排序.由于函數(shù)的第一個參數(shù)是數(shù)組名,其對應的實參可以是函數(shù)名或地址。本題在調用該函數(shù)時,實參是&aa[3)的地址,即把aa[3]的地址傳給?行參數(shù)蛆名a,函數(shù)也就是對aa[3]開始的5個元素進行從大到小的排序,aa[0]。aa[1],aa[2]、aa[8]、aa[9]并沒有變化.Sort()執(zhí)行完畢后,接著執(zhí)行后面的for語句輸出數(shù)組aa中各個元素的值,由于函數(shù)sort()只是對aa[3]開始的5個元素進行從大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并沒有變化,所以輸出為“1,2,3,8,7,6,5,4,9,10”。所以4個選項中C正確。

47.B

48.A解析:在C語言中,合法標識符的命名規(guī)則是:標識符可以由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線。C語言的標識符可以分為關鍵字、預定義標識符和用戶標識符。選項B)和C)中的橫線以及點都不合法,選項D)中的case為C語言關鍵字。

49.C解析:要獲得數(shù)組t的第i個元素的內容,既可以使用常規(guī)的t[i]表達式,也可以將數(shù)組名t看作一個指針常量,使用表達式*(t+i)來獲取數(shù)組t的第i個元素的內容。在本題中,for循環(huán)會循環(huán)5次,循環(huán)變量i從。開始,每次加2。所以,循環(huán)結束后,s中的值為t[0]+t[2]+t[4]+t[6]+t[6]+t[8]=1+3+5+7+9=25。故應該選擇C。

50.D解析:指針指向的是變量的地址而不是常量,所以選項A是錯誤的;選項B同樣是將float類型變量的值賦給指針而不是地址,所以選項B也是錯誤的。定義指針變量前面必須有星號(*),如果省略了就變成了把p定義為實型變量,所以選項C不正確。

51.D解析:指針變量是通過指向變量地址來指定變量值的。這里只要取m的地址賦給p,即可實現(xiàn)使p為指向m的指針變量。

52.A解析:選項A為異或運算符,如果參加運算的兩個位相同,結果為0,否則為1。顯然選項A中參加運算c1和c2相同,故其值位0;選項B為位與運算,如果參加運算的兩位都為1,則結果為1,否則結果為0,選項B中參加運算的c1和c2都為真,所以結果為1;選項C為取反運算,用來對一個二進制取反,顯然c2取反后不為0,選項D為異或運算,參加運算的兩位只要有一個為1,那么運算結果為1,顯然參加運算的c1和c2都不為0,故運算結果不為0。

53.D解析:C語言處理文件的方法是將文件以數(shù)據(jù)流的形式處理,不是將文件作為一個結構集合來處理,所以,C語言中文件的組織方式是無結構的字符序列方式。

54.B水平制表符中,'\t'表示的是橫向跳若干格;選項B中,'\039'錯誤,'\039'是八進制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號;選項D中,'\n'表示的是換行。

55.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。Gets從標準輸入設備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果字符串1>字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負整數(shù)。putchar(c)函數(shù)將字符c輸出到標準輸出設備上。

56.B解析:本題考查的是逗號表達式。因為整個逗號表達式的值為逗號表達式最后一個于表達式的值,所以本題輸出的是a2的值'm'。故應該選擇B。

57.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。gets從標準輸入設備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),即strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果宇符串1,字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負整數(shù)。putchar(c)函數(shù)將字符c輸出到標準輸出設備上。

58.D解析:參加運算的數(shù)據(jù)類型不同,要轉換為統(tǒng)一的數(shù)據(jù)類型,double在數(shù)據(jù)類型轉換中的級別最高,其他數(shù)據(jù)類型都要轉化為double,因此表達式值的類型為double。

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

60.C解析:軟件設計的基本目標是用比較抽象概括的方式確定目標系統(tǒng)如何完成預定的任務,軟件沒計是確定系統(tǒng)的物理模型。軟件測試即使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其日的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件調試后要進行回歸測試,防止引進新的錯誤。

61.A

62.AC語言源程序名的后綴為.C’所以A)正確。

63.B

64.A\n本題考查了雙重三目運算符的用法。例如:表達式a>b?c:d可以看成,當a>b時取C的值,否則取d的值。在本題中k=a>b?(b>c?1:0):0可以看做:當b>c時為真,則k=a>b?1:0。當b<c時則k=a>b?0:0。也就是說,當a>b并且b>C時,k=1,否則k=0。所以A選項符合題意。

\n

65.A循環(huán)語句中輸出o,i為。循環(huán)結束,執(zhí)行循環(huán)條件后i為l,輸出1,所以選擇A)。

66.C本題考查的重點是拷貝字符串一一使用strepy函數(shù),該函數(shù)的調用方式是:strcpy(字符數(shù)組,字符串),其中”字符串”可以是字符串常量,也可以是字符數(shù)組。函數(shù)的功能是:將”字符串”完整地復制到”字符數(shù)組”中,字符數(shù)組中原有的內容被覆蓋。

使用該函數(shù)時注意:①字符數(shù)組必須定義得足夠大,以便容納復制過來的字符串。復制時,連同結束標志\0一起復制;②不能用賦值運算符”=”將一個字符串直接賦值給一個字符數(shù)組,只能用strcpy函數(shù)處理。

另外,本題還考查連接字符串的strcat函數(shù),其調用方式是:strcat(字符數(shù)組,字符串)。功能是把”字符串”連接到”字符數(shù)組”中的字符串尾端,

67.C本題考查C語言轉義字符的含義。我們歸類了常用的轉義字符及其含義,如下,根據(jù)這些不難選出正確答案

轉義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進制數(shù)所代表的字符、\xhh1~2位十六進制數(shù)所代表的字符。

68.C

\n在m數(shù)組中賦值的是字符串,其長度為7,末尾有結束符\0,故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長度為7,故C選項正確。

\n

69.D解析:時間復雜度是指一個算法執(zhí)行時間的相對度量;

溫馨提示

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

最新文檔

評論

0/150

提交評論