2022-2023年甘肅省蘭州市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第1頁
2022-2023年甘肅省蘭州市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第2頁
2022-2023年甘肅省蘭州市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第3頁
2022-2023年甘肅省蘭州市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第4頁
2022-2023年甘肅省蘭州市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年甘肅省蘭州市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式()。

A.從左起輸出該字串,右補空格B.按原字符長從左向右全部輸出C.右對齊輸出該字串,左補空格D.輸出錯誤信息

2.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結(jié)束條件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

3.以下選項中關(guān)于C語言算術(shù)表達式的敘述中錯誤的是()。

A.可以通過使用圓括號來改變算術(shù)表達式中某些算術(shù)運算符的計算優(yōu)先級

B.C語言采用的是人們熟悉的四則運算規(guī)則,即先乘除后加減

C.算術(shù)表達式中,運算符兩側(cè)類型不同時,將進行類型之間的轉(zhuǎn)換

D.C語言僅提供了“+”“-”“*”“/”這4個基本算術(shù)運算符

4.在n個結(jié)點的線性表的數(shù)組實現(xiàn)中,算法的時間復(fù)雜度是O(1)的操作是()。

A.訪問第i(1<=i<=n)個結(jié)點和求第i個結(jié)點的直接前驅(qū)(1<i<=n)

B.在第i(1<=i<=n)個結(jié)點后插入一個新結(jié)點

C.刪除第i(1<=i<=n)個結(jié)點

D.以上都不對

5.有以下程序main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運行后的輸出結(jié)果是______。A.2,3,3B.2,3,2C.2,3,1D.2,2,1

6.稀疏矩陣一般的壓縮存儲方式有兩種,即()。

A.二維數(shù)組和三維數(shù)組B.三元組和散列C.三元組和十字鏈表D.散列和十字鏈表

7.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進棧,元素進?;虺鰲m樞蚴俏粗模铝行蛄兄?,不可能成為??諘r彈出的元素構(gòu)成序列的有()

A.{d,e,c,f,b,g,a}

B.{f,e,g,d,a,c,b}

C.{e,f,d,g,c,b,a}

D.{c,d,b,e,f,a,g}

8.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環(huán),不能確定次數(shù)

9.具有20個結(jié)點的二叉樹,其深度最多為_______。

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

10.

11.表達式“(int)((double)9/2)-9%2”的值是()。

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

12.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)

13.下列關(guān)于線性鏈表的描述中正確的是()。

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

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

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

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

14.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項中錯誤的是

A.x++;B.y++;C.c++;D.D++;

15.

16.設(shè)S為一個長度為n的字符串,其中的字符各不相同,則S中的互異的非平凡子串(非空且不同于S本身)的個數(shù)為()。

A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1

17.

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

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

19.下列關(guān)于棧的描述中錯誤的是()。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針

20.以下選項中,值為1的表達式是()。

A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’

二、2.填空題(20題)21.以下程序中給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{dOuble*p;

p=(double*)malloc();

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

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

23.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

24.對于長度為n的線性表,若進行順序查找,時間復(fù)雜性為【】;若進行二分查找,則時間復(fù)雜性為【】。

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

26.以下程序的運行結(jié)果是【】。

#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]);

printf("\n");}

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

28.若輸入Ihaveatest.#,則以下程序的運行結(jié)果為【】。

#include<stdio.h>

main()

{FILE*fp;

charstr[100],filename[10];

inti=0;

if((fp=fopen("test","w"))==NULL)

{printf("cannotopenthefile!\n");

exit(0);

}

getchar();

gets(str);

while(str[i]!='#')

{if(str[i]>='a'&&str[i]<='z')

str[i]=str[i]-32;

fputc(str[i],fp);

i++;

}

fclose(fp);

fp=fopen("test","r");

fgets(str,strlen(str)+1,fp);

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

fclose(fp);

}

29.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進行測試。

30.若有如下程序:

voidsub()

{staticintx=6;

x/=2;printf("%d",x);}

main()

{intm;

for(m=0;m<=2;m++)sub();}

則程序運行后的輸出結(jié)果是【】。

31.下列語句使指針p指向一個double類型的動態(tài)存儲單元。

p=【】malloc(sizeof(double));

32.下面程序的功能是實現(xiàn)變量x、y內(nèi)容交換,請?zhí)羁铡?/p>

#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}

main()

{intx=10,y=8,z;

【】

printf("%d,%d",x,y);}

33.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯(lián)系屬于【】的聯(lián)系。

34.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

35.下列程序的運行結(jié)果為【】。

main()

{

intx,y,z;

X=12;

y=012;

z=0l2;

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

}

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

main()

{inta=0;

a+=(a=8);

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

}

37.在一棵二叉樹上第6層的結(jié)點個數(shù)最多是【】。

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

main()

{inta=1,b=2;

a=a+b;b=a-b;a=a-b;

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

}

39.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。

40.在printf格式字符中,以帶符號的十進制形式輸出整數(shù)的格式字符是【】;以八進制無符號形式輸出整數(shù)的格式字符是【】;以十六進制無符號形式輸出整數(shù)的格式字符是【】;以十進制無符號形式輸出整數(shù)的格式字符是【】。

三、1.選擇題(20題)41.有以下程序#include<string.h>main(intarge,char*argv[]){inti,len=0;for(i=1;i<arge;i++)len+=strlen(argv[i]);printf(“%d\n”,len);}程序編譯連接后生成的可執(zhí)行文件是exl.exe,若運行時輸入帶參數(shù)的命令行是:exlabcdefg10<回車>則運行的結(jié)果是

A.22B.17C.12D.9

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

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

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

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

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

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

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

A.1B.4C.9D.0

44.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序輸出結(jié)果是______。

A.0B.0.25C.0.5D.1

45.以下符合C語言語法的實型常量是

A.1.2E0.5B.3.14159EC.5.00E-03D.E15

46.若有如下程序:structstudent{charname[10];floatscore[3];}stu[3]={{"lili",75,90,90},{"liudan",90,85,75};{"guoli",85,85,70}};main(){inti;floatsum=0,aver;for(i=0;i<3;i++)sum=sum+stu[i].score[1];aver=sum/i;printf("%6.2f\n",aver);}則程序運行后的輸出結(jié)果是()

A.83.33B.85C.86D.86.67

47.設(shè)有如下程序#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n",**k);}上述程序的輸出結(jié)果是_______。

A.運行錯誤B.100C.i的地址D.j的地址

48.判斷char型變量cl是否為大寫字母的正確表達式是

A.′A′<=cl<=′Z′

B.(cl>=A)&&(cl<=Z)

C.(′A′>=cl)||(′Z′<=cl)

D.(cl>=′A′)&&(cl<=′Z′)

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

A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)必定一一對應(yīng)

B.由于計算機存儲空間是向量式的存儲結(jié)構(gòu),因此,數(shù)據(jù)的存儲結(jié)構(gòu)一定是線性結(jié)構(gòu)

C.程序設(shè)計語言小的數(shù)組.般是順序存儲結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)

D.以上3種說法都不對

50.以下程序的輸出結(jié)果是______。main(){charstr[12]={'s','t','r','i','n','g'};printf("%d/n",strlen(str));}

A.6B.7C.11D.12

51.若有如下程序:main(){intx=3,y=4,z;z=(x+(y-=X*X));printf("%d,%d\n",y,z);}則程序執(zhí)行后的輸出結(jié)果是()。

A.-4,2B.-5,-2C.-5,-1D.4,-2

52.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k/m)/SQR(k+m);printf("%d\n",A);}

A.16B.2C.9D.1

53.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"}*p=str;printf("%\n",strlen(p+20));}程序運行后的輸出結(jié)果是

A.0B.5C.7D.20

54.下列選項中錯誤的說明語句是

A.chara[]={'t''o','y','o','u','\0'};

B.chara[]={"toyou\0"};

C.chara[]="toyou\O";

D.chara[]='toyou\0';

55.設(shè)q1和q2是指向一個int型一維數(shù)組的指針變最,k為float型變量,下列小能正確執(zhí)行的語句是()。

A.k=*q1*(*q2);B.q1=k;C.q1=q2;D.k=*q1+*q2;

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

B.Date_y-m-d

C.HiDr.Tom

D.caseBigl

57.有以下程序

voidf(int*q)

{inti=0;

for(;i<5;i++)(*q)++;

}

main()

{inta[5]={1,2,3,4,5},i;

f(a);

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

}

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

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

58.下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。

A.軟件測試B.概要設(shè)計C.軟件維護D.詳細設(shè)計

59.若有說明inta[][3]={1,2,3,4,5,6,7,8,9),則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無確定值

60.sizeof(char)是()。

A.一種函數(shù)調(diào)用B.一個整型表達式C.一個字符型表達式D.一個不合法的表達式

四、選擇題(20題)61.

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

A.

B.

C.

D.

63.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之問的通信靠傳遞消息來實現(xiàn)

C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

64.有以下程序:

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

A.1,1,2,0B.0,0,0,3C.編譯有錯D.0,1,2,0

65.有以下程序

structst

{intx;

int*y;

}*p;

intdt[4]={1,2,3,4};

structstaa[4]={10,&dt[0],20,&dt[1],30,&dt[2],40,&dt[3]};

main()

{p=aa;

printf("%d\n",++p->x);

printf("%d\n",(++p)->x);

printf("%d\n",++(*p->y));

程序的運行結(jié)果是

66.下面描述中,不屬于軟件危機表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高

67.設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時,若從鍵盤輸入876543.0<回車>,a和b的值分別是()。A.A.876和543.000000B.87和6.000000

C.87和6543.000000

D.76和543.000000

68.在最壞情況下,堆排序的時間復(fù)雜度是()。

A.0(1902n)B.O(n1092n)C.o(n2)D.0(n1.5)

69.

70.

71.

72.HTTP協(xié)議的內(nèi)容協(xié)商消息頭包括()。

i.內(nèi)容協(xié)商消息頭ii.緩存控制消息頭

iii.條件控制消息頭iv.服務(wù)器狀態(tài)消息頭

A.i和iiB.i、ii和iiiC.ii和iiiD.iii和iv

73.設(shè)有下列二叉樹:

對此二叉樹中序遍歷的結(jié)果為()。

A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC

74.有以下程序:

當運行時輸入:a<回車>后,以下敘述正確的是()。

A.變量c1被賦予字符a,c2被賦予回車符

B.程序?qū)⒌却脩糨斎氲?個字符

C.變量c1被賦予字符a,c2中仍是原有字符2

D.變量c1被賦予字符a,c2中將無確定值

75.

76.面向?qū)ο蠓椒ㄖ?,繼承是指()。

A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制

77.以下程序的運行結(jié)果是()。

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

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

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

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

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

A.數(shù)據(jù)庫系統(tǒng)

B.文件系統(tǒng)

C.人工管理

D.數(shù)據(jù)項管理

79.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。

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

80.讀取二進制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個文件指針,指向待讀取的文件

B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址

D.一個內(nèi)存塊的字節(jié)數(shù)

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

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中下標為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。例如,當str所指字符串中的內(nèi)容為ABCDEFGHIJK(輸入完成以空格、Tab或者Enter鍵加任意非空格、Tab或者Enter鍵的一個字符作為輸入結(jié)束標志),則在t所指數(shù)組中的內(nèi)容應(yīng)是BDFHJ。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.D解析:本題考查的知識點是do-while循環(huán)結(jié)構(gòu)循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點:

先執(zhí)行語句,后判斷表達式。所以,無論一開始表達式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點與while不同,

如果do-while語句循環(huán)體部分是由多個語句組成,則必須用花括號括起來,使其形成復(fù)合語句。

C語言中的do—while語句是在表達式“真”時重復(fù)執(zhí)行循環(huán)體。

在本題中,循環(huán)執(zhí)行判斷條件為while后面括號里的表達式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結(jié)束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項A的意思是:p的值不等于12345并且n的小于3和while后面括號里的表達式等價是循環(huán)執(zhí)行的條件而不是循環(huán)結(jié)束的條件,所以選項A不正確;選項B的意思是:p的值等于12345并且n的值大于3,不是循環(huán)結(jié)束的條件一個子集,所以選項B不正確;選項C的意思是:p的值不等于12345或者n的值小于3前一半是結(jié)束條件的子集,后一部分不是結(jié)束條件,所以選項C不正確;選項D描述的意思是:p的值等于12345或者你的大于等于3是結(jié)束條件的子集,所以選項D滿足題意。所以4個選項中D正確。

3.DC語言的算術(shù)運算符是有優(yōu)先級的。圓括號可以改變算術(shù)表達式中某些算術(shù)運算符的優(yōu)先級,選項A正確;算術(shù)運算符中,乘除運算符的優(yōu)先級比加減運算符的優(yōu)先級高,C語言采用的是四則運算規(guī)則,選項B正確;算術(shù)表達式中,運算符兩側(cè)運算對象的數(shù)據(jù)類型不同時,將進行隱式類型轉(zhuǎn)換,選項C正確;C語言中基本的算術(shù)運算符除了“+”“-”“*”“/”之外,還有“%”,即求余運算符,選項D錯誤。故本題答案為D選項。

4.A

5.C解析:x++:表示在使用x之后,使x的值加1;y++:表示在使用y之后,使y的值加1;++y:表示在使用y之前,使\u3000y的值加1。此題中執(zhí)行z=x++,是將x的值先賦給z,所以z=1,接下來x自行加1,其結(jié)果為2:執(zhí)行y++后,y=2,執(zhí)行++后,y=3;故答案選C。

6.C

7.B

8.D解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當break出現(xiàn)在switch語句體內(nèi)時,其作用只是跳出該switch語句體。當break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)體.而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號內(nèi)表達式的值為真,執(zhí)行循環(huán)體內(nèi)的if語句,判斷if后面括號內(nèi)表達式的值為真,執(zhí)行“continue;”語句.因continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語句也仍然成立,因此循環(huán)將無止境地進行下去。所以,4個選項中D為所選。

9.D

10.D

11.B先將int型數(shù)據(jù)9強制轉(zhuǎn)換成double型,然后除以2,得到的結(jié)果與double型保持一致,即4.5;然后將4.5強制轉(zhuǎn)換成int型數(shù)據(jù)4,再計算9%2的值為1;最后計算4-1的值為3。故本題答案為B選項。

12.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。

13.A解析:線性表的鏈式存儲結(jié)構(gòu)中的結(jié)點空間是動態(tài)生成的,它們在內(nèi)存中的地址可能是連續(xù)的,也可能是不連續(xù)的。

14.D解析:C語言中++運算符的對象可以是整型、實型和字符型,但不可是常量,本題中D為常量。

15.D

16.D

17.B

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

19.B棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。??梢圆捎庙樞虼鎯Γ部梢圆捎面準酱鎯?。

20.B字符‘\\0’為空值,其ASCII值為0,所以B選項的值為1。字符‘0’的ASCII值為48,所以A、C、D選項的值均不為1。故本題答案為B選項。

21.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價的表達式。

22.參照完整性參照完整性

23.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。

24.O(n)O(log2n)

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

26.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

27.考查ifelse語句,n=4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。\r\n\r\n

28.IHAVEATEST.

29.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進行測試。

30.310

31.(double*)

32.EXCHANGE(zxy)或EXCHANGE(zxy);EXCHANGE(z,x,y)或EXCHANGE(z,x,y);

33.一對多(或1∶N)一對多(或1∶N)解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即一對一(1∶1)的聯(lián)系、一對多(1∶N)或多對一(N∶1)的聯(lián)系和多對多(N∶N)的聯(lián)系。

34.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因為x不大于y,所以執(zhí)行printf('%d\\n',z);語句。

35.12101812,10,18解析:本題定義了3個整型變量x、y、z,并分別用十進制數(shù)、八進制數(shù)、十六進制數(shù)為它們賦值。然后以十進制整型輸出這3個變量。八進制數(shù)012的十進制表示為10,十六進制數(shù)0x12的十進制表示為18。此外輸出函數(shù)格式控制中的“,”原樣輸出。

36.1616解析:在程序中首先將8賦值給變量a,然后在進行復(fù)合賦值運算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。

37.3232解析:根據(jù)二叉樹的性質(zhì),在二叉樹的第k層上,最多有2的k-1次方個結(jié)點。所以,第6層的結(jié)點數(shù)最多為32。

38.21

39.252H252H解析:要解答本題,首先要明白在對指針進行加,減運算時,數(shù)字“1”不是十進制數(shù)的“1”,而是指“1”個存儲單元長度。1個存儲單元長度占存儲空間的多少,應(yīng)該視具體情況而定,如果存儲單元的基類型是血型,則移動1個存儲單元的長度就是位移2個字節(jié);如果存儲單元基類型是float型,則移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。

40.d0xu

41.D解析:main()函數(shù)可以帶參數(shù),并且參數(shù)只能有兩個,第一個參數(shù)(arge)類型為整型用來記下命令行的參數(shù)個數(shù),第二個參數(shù)(argv)為一個字符型指針數(shù)組,其各個元素用來記下命令行各參數(shù)字符串的首地址。本題執(zhí)行時,arge的值為4,在循環(huán)中依次求出algv[l]、argv[2]和argv[3]指向的字符串(“abcd”、“efg”和“10”)的長度,并把它們加到變量len中,得到len的值9。所以最后輸出的len值為9。

42.D

43.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運算。本題中宏運算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

44.C解析:本題考查的是if...else語句的使用。x=2.0,符合第二個IF語句的條件x<10.0,所以執(zhí)行y=1.0/x語句,即y=1.0/2.0=0.500000。

45.C解析:在C語言中,可以用指數(shù)形式將實型常量表示為數(shù)值和指數(shù)兩部分,數(shù)值部分不能為空,指數(shù)部分只能為整數(shù)表示。選項A中1.2和0.5都不是整數(shù),故選項A不正確;選項B中3.14159也不是整數(shù),故選項B不正確;選項D中數(shù)值部分不能為空,故選項D也不正確。所以,4介選項中選項C符合題意。

46.D

47.B解析:j=&i,j的值就是i的地址,*j=100,將j的地址賦給k,這時*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當為100。

48.D解析:本題考查字母大小寫的判斷。字符型數(shù)據(jù)在計算機內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的。大寫字母A到Z是從65到90,所以只要變量c1大于A并且小于Z就能保證其為大寫字母。

49.D解析:一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)不一定一一對應(yīng),選項A錯誤。計算機的存儲空間是向量式的存儲結(jié)構(gòu),但一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),如線性鏈表是線性表的鏈式存儲結(jié)構(gòu),數(shù)據(jù)的存儲結(jié)構(gòu)不一定是線性結(jié)構(gòu),因此選項B錯誤。數(shù)組一般是順序存儲結(jié)構(gòu),但利用利用數(shù)組也能處理非線性結(jié)構(gòu)。選項C錯誤。由此可知,只有選項D的說法正確。

50.A解析:在C語言中,字符串的長度是其首字符到NULL(不含)字符的總字符個數(shù)。本題定義字符數(shù)組str的同時,對第7個元素,由系統(tǒng)自動添加上“\\0”,故字符串的長度為6。

51.B解析:因為x的初始值為3,所以x*x=9,而y的初始值為4,所以y-=9后,y為-5,z=(x+(y-=x*x))=3+(-5)=-2。故程序執(zhí)行后的輸出結(jié)果是-5,-2,選項B正確。

52.B解析:C語言在預(yù)編譯時遇到帶實參的宏名,則按命令行中指定的字符串從左到右進行置換。在做這題時,也不妨運用置換法。得到a/=k+m*k+m/k+m*k+m=16/7=2。注:a為整型,所以在做除法,自動取整。

53.C解析:本題考核的知識點是二維數(shù)組的初始化及庫函數(shù)strlen()的應(yīng)用。主函數(shù)中定義了一個二維字符數(shù)組并初始化,初始化后的結(jié)果為str[0]='Hello',str[1]='Beijing',然后定義一個字符指針變量p并讓它指向數(shù)組的首地址,即指向str[0],而在C語言中無論是一維還是多維數(shù)組,其元素在內(nèi)存中都是順序存放的,故p+20后指針指向str[1],所以strlen(P+20);返回的是str[1]中的字符串的長度,即Beijing的長度為7,所以最后輸出的值為7,所以,4個選項中選項C符合題意。

54.D解析:通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時直接賦字符串常量。選項B)和C)后面的'\\0'是多余的,在C語言中,系統(tǒng)會自動在字符串的結(jié)尾處加上一個字符'\\0'作為串的結(jié)束標記。

55.B

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

57.B解析:調(diào)用函數(shù)f()時,將數(shù)組a的地址傳遞給了指針q,此時q指向的就是數(shù)組a的第一個元素a[0]。在5次循環(huán)過程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為'6,2,3,4,5'。

58.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個時期組成,每個時期又進一步劃分為若干個階段。軟件定義時期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)時期是具體設(shè)計和實現(xiàn)在前一時期定義的軟件,它通常由下面五個階段組成:概要設(shè)計、詳細設(shè)計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當軟件在使用過程中發(fā)現(xiàn)錯誤時應(yīng)加以改正;當環(huán)境改變時應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當用戶有新要求時應(yīng)該及時改進軟件,以滿足用戶的新要求。根據(jù)上述對軟件生命周期的介紹,可知選項C中的軟件維護不是軟件生命周期開發(fā)階段的任務(wù)。因此,本題的正確答案是C。

59.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大小:②當初值的個數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

60.B解析:sizeof(char)是一個C語言的關(guān)鍵字,它不是函數(shù)調(diào)用。sizeof的功能是計算出運算對象在計算機的內(nèi)存中所占用的字節(jié)數(shù)量,該表達式的返回值是一個整數(shù),而不是一個字

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論