2022年安徽省亳州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第1頁
2022年安徽省亳州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第2頁
2022年安徽省亳州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第3頁
2022年安徽省亳州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第4頁
2022年安徽省亳州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

2022年安徽省亳州市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf(“%d\n”,m);}程序的運行結果是()A.1B.0C.2D.3

2.輸出語句“printf(“%d\n”,11+011);”的輸出結果是()。

A.20B.22C.022D.021

3.若有定義“inta,b;”,通過語句“scanf(“%d;%d,”&a,&b)能把整數3賦給變量a、5賦給變量b的輸入數據是()。

A.35B.3,5C.3;5D.35

4.數據庫系統的核心是()。

A.數據模型B.數據庫管理系統C.數據庫D.數據庫管理員

5.C語言中的變量名只能由字母,數字和下劃線三種字符組成,且第一個字符()。

A.必須為字母B.必須為下劃線C.必須為字母或下劃線D.可以是字母,數字或下劃線中的任意一種

6.以下選項中不能用做C程序合法常量的是()。

A.1,234B.‘\123’C.123D.“\x7G”

7.在多媒體計算機系統中,不能用以存儲多媒體信息的是A.光纜B.軟盤C.硬盤D.光盤

8.微型計算機的運算器、控制器及內存儲器組合在一起,稱之為()

A.ALUB.CPUC.MPUD.主機

9.有以下程序

main()

{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

程序執行后的輸出結果是A.A.45B.20C.25D.36

10.若有定義:floatx=1.5;inta=1.b=3.c=2;則正確的switch語句是()。A.

B.

C.

D.

11.以下程序的輸出結果是______。

A.54321

B.12345

C.12345

D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}

12.C語言的邏輯表達式在特定情況下會產生“短路”現象。若有邏輯表達式“x++&&y++,”則以下敘述中正確的是()。

A.若x的值為0,則“y++”操作被“短路”,y值不變

B.若x的值為1,則“y++”操作被“短路”,y值不變

C.若y的值為0,則“&&”運算被“短路”,y值不變

D.若y或x的值為0,則表達式值為0,“x++”和“y++”均不執行

13.有下列程序:程序執行后的輸出結果是()。

A.654321

B.65432

C.65453452

D.654534521

14.有以下程序:#include<stdi0.h>#defineS(x)(x)"x"2main(){intk一5,j=2;Drintf("%printf,",S(k+j));printf("%printf\n",S((k—j)));}程序運行后的輸出結果是()。A.98,18B.39,11C.39,18D.98,11

15.

16.有以下程序(說明:字母A的ASCIl碼值是65):#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";Fun(a);printf("\n");}程序運行后的輸出結果是()。A.BYB.BTC.YTD.YE

17.以下不能對二維數組a進行正確初始化的語句是()。A.inta[2][3]={0};

B.inta[2][3]={{1,2},{3,4},{5,6}};

C.inta[][3]={{1,2},{0}};

D.inta[][3]={1,2,3,4,5,6};

18.有以下程序:#include<stdio.h>main(){charx,a=‘A’,b=‘B’,c=‘C’,d=‘D’;x=(a<b)?a:b;x=(x>c)?c:x;x=(d>x)?x:d;printf(“%c\n”,x);}程序運行后的輸出結果是()。

A.DB.BC.CD.A

19.對包含N個元素散列表進行查找,平均查找長度()。

A.為OB.為O(N)C.不直接依賴ND.上述三者都不是

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

A.模擬現實世界中不同事物之間的聯系

B.強調模擬現實世界中的算法而不強調概念

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

D.不強調模擬現實世界中的算法而強調概念

二、2.填空題(20題)21.若定義#definePI3.14159,則執行完下列程序后輸出結果是______。

#definePI3.14159;printf("PI=%f",PI);

22.數據字典是各類數據描述的集合,它通常包括5個部分,即數據項、數據結構、數據流、______和處理過程。

23.執行以下程序段后,s的值為【】。

staticcharch[]="600";

inta,s=0;

for(a=0;ch[a]>='0'&&ch[a]<='9';a++)

s=10*s+ch[a]-'0';

24.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEP<CR>QTHRG<CR>,則程序的輸出結果是______。

25.函數my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負值。請填空。

My_cmp(char*s,char*t)

{while(*s==*t)

{if(*s==′\0)return0;

++s;++t;

}return【】;

}

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

doublesub(doublex,doubley,doublez)

{y-=1.0;

z=z+x;

returnz;

}

main()

{doublea=2.5,b=9.0;

printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));

}

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

28.結構化程序設計的三種基本邏輯結構為順序、選擇和【】。

29.下列程序中字符串中各單詞之間有一個空格,則程序的輸出結果是【】。

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"eshe");

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

}

30.以下程序運行后的輸出結果是()。

#include<stdio.h>

main()

{intx=20;

printf("%d",0<x<20);

printf("%d\n",0<x&&x<20);

}

31.設有chara,b;,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進制是【】。

32.按照邏輯結構分類,數據結構可分為線性結構和非線性結構,二叉樹屬于______。

33.下列程序的輸出結果是______。

#defineLEN5

inta[LEN],k;

main()

{fun1();

fun2();

}

fun1()

{for(k=0;k<LEN;k++)

a[k]=k;

}

fun2()

{intk;

for(k=0;k<LEN;k++)

printf("%d",*(a+k));

}

34.在面向對象方法中,類的實例稱為______。

35.下述函數用于統計一行字符中的單詞個數,單詞之間用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fo(i=0;str[i]!=【】;i++)

if(【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

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

#include<stdio.h>

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

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

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

}

38.在數據庫的概念結構設計中,常用的描述工具是【】。

39.若有定義intm=5,y=2,則執行表達式y+=y-=m*=y后,y的值為【】。

40.若輸入thistestterminal,以下程序的輸出結果為:terminaltestthis。請填空。

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

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

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

for(j=i+1;j<3;j++)

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

三、1.選擇題(20題)41.若變量a、i已正確定義,且i已正確賦值,合法的語句是______。

A.a=1B.++i;C.a=a++=5;D.a=int(i);

42.設intx=1,y=1;表達式(:x||y--)的值是______。

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

43.下列敘述中,不屬于測試的特征的是

A.測試的挑剔性B.完全測試的不可能性C.測試的可靠性D.測試的經濟性

44.以下敘述中錯誤的是

A.在程序中凡是以“#”開始的語句行都是預處理命令行

B.預處理命令行的最后不能以分號表示結束

C.#defineMAX是合法的宏定義命令行

D.C程序對預處理命令行的處理是在程序執行的過程中進行的

45.編碼是指______。

A.總體設計到詳細設計的過程B.用0、1代碼改寫詳細設計的結果C.用編程語言改寫詳細設計的結果D.上述都不對

46.軟件開發離不開系統環境資源的支持,其中必要的測試數據屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源

47.若有以下定義和語句;inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;

A.p+=2,*(p++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p

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

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

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

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

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

49.運行以下程序后,如果從鍵盤上輸入china#<回車>,貝愉出結果為_______。#include<stdio.h>main(){intv1=0,v2=O;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'O':v2++;}printf("%d,%d\n",v1,v2);}

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

50.在下列字符序列中,不可用做C語言標識符的是()

A.student___numB.classC.#88D.month___12

51.有下列程序段:intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環,從鍵盤輸入的數據應該是()。

A.任意正奇數B.任意負偶數C.任意正偶數D.任意負奇數

52.有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的輸出結果是()。

A.13B.14C.208D.209

53.關系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼

54.在位運算中,操作數每右移兩位,其結果相當于()。

A.操作數乘以2B.操作數除以2C.操作數除以4D.操作數乘以4

55.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執行上述程序段后輸出結果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

56.設有下列二叉樹:

對此二叉樹中序遍歷的結果為

A.ABCDEFB.DAECFC.BDAECFD.DBEFCA

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

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

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

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

D.上述三種說法都不對

58.下列敘述中正確的是()。A.一個邏輯數據結構只能有一種存儲結構

B.邏輯結構屬于線性結構,存儲結構屬于非線性結構

C.一個邏輯數據結構可以有多種存儲結構,且各種存儲結構不影響數據處理的效率

D.一個邏輯數據結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率

59.在c語言中,變量的隱含存儲類別是()。

A.autoB.staticC.externD.無存儲類別

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

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

B.反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據

C.作為確認測試和驗收的依據

D.便于開發人員進行需求分析

四、選擇題(20題)61.(64)在單鏈表中,增加頭結點的目的是()

A.方便運算的實現

B.使單鏈表至少有一個結點

C.標識表結點中首結點的位置

D.說明單鏈表是線性表的鏈式存儲實現

62.

63.設有說明double(*p1)[N];其中標識符p1是()。

A.N個指向double型變量的指針。

B.指向N個double型變量的函數指針。

C.一個指向由N個double型元素組成的一維數組的指針。

D.具有N個指針元素的一維指針數組,每個元素都只能指向double型量。

64.下面函數的功能是()。

intfunc(char*x)

{char*y=x;

while(*y++);

return(y-x-1);

}

A.求字符串的長度

B.比較兩個字符串的大小

C.將字符串x復制到字符串y

D.將字符串x連接到字符串y后面

65.有以下程序程序運行后的輸出結果是()。

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

66.下列選項中不合法的十六進制數是()。

A."0"xffB."0"X11C."0"x1gD.”0”Xabc

67.

68.設以下變量均為int類型,則值不等于7的表達式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+1,x=y,x+1)

69.有以下程序

voidfunc(int*a,intb[])

{b[0]=*a+6;}

main()

{inta,b[5]={0};

a=0;b[0]=3;

func(&a,b);

rintf("%d\n",b[0]);

}

程序的運行結果是

A.6B.7

C.8D.9

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

A.

B.

C.

D.

71.

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

A.算法的效率不僅與問題的規模有關,還與數據的存儲結構有關

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

C.數據的邏輯結構與存儲結構是一一對應的

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

73.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統上,程序執行后的輸出結果是______。A.21,43B.43,21C.43,00D.21,00

74.

75.

76.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運行后的輸出結果是______。

A.0B.70C.35D.1

77.以下選項中有語法錯誤的是()。A.char*str[]={"guest"};

B.charstr[][lO]={"guest"};

C.char*str[3];str[t]={"9uest"};

D.charstr[3][lO];str[1]={"guest"};

78.若a為int類型,且其值為3,則執行完表達式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

79.設有以下語句:typedefstructTY{charC;inta{41;}CIN;

則下面敘述中正確的是()。

A.CIN是structTr類型的變量

B.TT是struct類型的變量

C.可以用,lr定義結構體變量

D.可以用CIN定義結構體變量

80.

五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:對M名學生的學習成績,按從低到高的順序找出m(m≤10)名學生來,并將這些學生數據存放在一個動態分配的連續存儲區中,此存儲區的首地址作為函數值返回。

請改正程序中的錯誤,使它能得出正確的結果。

注意:不要改動main函數.不得增行或刪行,也不得更改程序的結構。

試題程序:

六、程序設計題(1題)82.編寫函數fun(),其功能是計算:

s作為函數值返回。

在C語言中可調用log(n)函數求1n(n)。log函數的引

用說明為:doublelog(doublex)。

例如,若m的值為20,則fun()函數值為6.506583。

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

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

試題程序:

參考答案

1.A雖為嵌套的for循環,但“m=m%j”只執行1次,即當i=3時,內層循環條件成立,m=55%3=1,故選A。

2.A“printf(“%d\\n”,11+011);”中,“11”為十進制數,“011”為八進制數,%d表示以十進制格式輸出。因此,先將八進制數轉化為十進制數,即(011)8=81×1+1×80=(9)10,相當于“printf(“%d\\n”,11+9)”,輸出結果為20。故本題答案為A選項。

3.C輸入數據的格式必須與scanf的格式控制字符串完全匹配。函數中非格式字符需要原樣輸入,所以輸入時必須在3和5之間輸入“;”。故本題答案為C選項。

4.B解析:數據庫管理系統是數據庫系統的核心,是負責數據庫的建立、使用和維護的軟件。數據庫管理系統建立在操作系統之上,實施對數據庫的統一管理和控制。用戶使用的各種數據庫命令以及應用程序的執行,最終都必須通過數據庫管理系統。另外,數據庫管理系統還承擔著數據庫的安全保護工作,按照數據庫管理員所規定的要求,保證數據庫的完整性和安全性。

5.C

6.AA選項中逗號是一個操作符。

7.A解析:光纜是傳輸多媒體信息的通道,不能用以存儲多媒體信息。

8.D

9.C解析:統計1~9九個數中的奇數和,此題考察指向數組的指針,C語言規定數組名代表數組的首地址,也就是第一個元素的地址。因此*(t+i)代表數組的第i+1個元素。程序運行的結果是1+2+3+4+5+6+7+8+9=25。

10.AB)選項中switch(n[nx);語句中不應該有最后的分號。switch(expr1),中的exp1不能用浮點類型或Iong類型,也不能為一個字符串,所以C)錯誤。case后面常量表達式的類型必須與switch后面表達式的類型一致,所以D)錯誤。

11.B

12.A題干中,“x++&&y++”屬于邏輯與表達式。僅當“x++”和“y++”的結果為真,整個邏輯表達式的結果才為真,否則整個表達式的結果為假。當“x++”的結果為0時,“y”就會被短路,即不再執行“y++”表達式,整個表達式的結果為假。所以當x的值為0時,“x”的結果也是0,“y”操作被“短路”,y值不變。故本題答案為A選項。

13.C程序首先定義整型變量a和b,a的初值為123456。接著通過while循環,判斷a的值是否為0,若不為0,則執行循環體。每次循環將a當前值的個位數字(a%10)賦給b,a自身除以10。再通過switch語句判斷b的值執行對應分支語句。所以對應a的每個個位數,b的取值為6,5,4,3,2,1。當b取值為6時,執行default,輸出6,接著繼續執行case1,通過break退出switch。執行下一次循環,當b取值為5時,執行case5輸出5。執行下一次循環,當b取值為4時,執行case4輸出4,繼續執行case5輸出5。接著執行下一次循環,當b取值為3時,執行case3輸出3,執行case4輸出4,執行case5輸出5;當b取值為2時,執行case2輸出2,通過break退出switch;當b取值為1時,執行break,此時a的取值為0,循環終止。綜上,程序輸出結果為:65453452。本題答案為C選項。

14.BS(k+j)=(k+j)*k+j*2=(5+2)*5+2*2=39,同理S(k-1)=(k+j)*k+j*2=\r\n(5-2)*5-2*2=11,所以答案選擇B。

15.C

16.Dfun函數的意思是當*s%2==0的時候就輸出并且s自加l次,然后判斷。所以可知只有第2和第4個位置上的才符合要求,所以答案為D。

17.B選項A中,將二維數組a的6個元素都賦值為0,正確;選項B中,由于a包含2個元素,每個元素都是包含3個元素的一維數組,初始化列表中包含3個元素,每個元素是包含2個元素的數組,錯誤;選項C中,a的每個元素是包含3個元素的一維數組,初始化列表將a[0]的3個元素初始化為1,2,0,將a[1]的3個元素初始化為0,0,0,正確;選項D中,將a[0]初始化為1,2,3,將a[1]初始化為4,5,6,正確。本題答案為B選項。

18.D題干中,字符變量a、b、c、d都是大寫字母字符。C語言中,大寫字母的ASCII值是按照字母順序連續遞增的,所以a小于b,b小于c,c小于d。則表達式“x=(a<b)?a:b”等價于“x=a”;“x=(x>c)?c:x”等價于“x=(a>c)?c:a”,等價于“x=a”;“x=(d>x)?x:d”等價于“x=(d>a)?a:d”,等價于“x=a”;所以程序輸出x的值為A。故本題答案為D選項。

19.C

20.C\n面向對象的設計方法的基本原理是:使用現實世界的概念抽象地思考問題從而自然地解決問題。它雖強調模擬現實世界中的概念而不強調算法,但是它鼓勵開發者在軟件開發的過程中從應用領域的概念角度去思考。

\n

21.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現PI都用3.14159替代,但是C語言規定:雙引號中的宏名是不進行替換的。

22.數據存儲數據存儲

23.600600解析:程序中for循環的條件是當前字符大于或等于字符\'0\'且小于或等于字符\'9\'的ASCII碼值,則s=10*s+ch[a]-\'0\'。計算結果是將字符串'600'轉換為整型數600。

24.函數strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數值大于0;若t=s,則函數值等于0;若t<s,則函數值小于0。函數strcpy(t,s)的功能:把字符數組s所指字符串的內容復制到字符數組t所指存儲空間中。

本題中,t[10]='CDEF'。第一次循環,s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執行第二次循環,s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執行下列的語句,將字符數組s所指字符串的內容復制到字符數組t

25.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應字符相等情況下循環,直至不相等結束。相等時,若字符串已到了字符串的結束標記符,則兩字符串相同,函數返回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環結束。循環結束時,就以兩個當前字符的差返回,所以在空框處應填入*s-*t,保證在s>t時,返回正值,當s<t時,返回負值。

26.functionrunningresultis:9.0

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

28.重復(或循環)重復(或循環)

29.HowdoesheHowdoeshe解析:本題的關鍵在于表達式str1+strlen(str1)/2,注意“/”的用法,可得str1+13/2=str1+6。

30.1010解析:表達式0<x<20,首先計算0<x,其值為1,再計算1<20,其值為1,輸出1;表達式0<x&&x<20,0<x為1,x<20為0,再計算1&&0,其值為0,輸出0。所以輸出結果為10。

31.1000001010000010解析:運算“&”的,的規則是只有當兩個相應的二進制位都為1時,該位的結果才為1。要保留第2、8位,只要將其與二進制數10000010相與。

32.非線性結構非線性結構解析:對于一個非空的數據結構,如果同時滿足下列兩個條件,即1)有且只有一個根結點;2)每一個結點最多有一個前件,也最多有一個后件;即為線性結構,而二叉樹的結點可能存在兩個后件,所以是非線性結構。

33.01234。01234。解析:函數fun1給數組a的每個元素賦值,fun2則輸出結果。

34.對象對象解析:類描述的是具有相似性質的一組對象。例如,每本具體的書是一個對象,而這些具體的書都有共同的性質,它們都屬于更一般的概念“書”這一類對象。一個具體對象稱為類的實例。

35.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:

①for循環的結束條件應當是:str[i]已是字符串的最后—個字符;

②str[i]代表字符串str中的第i+1個字符;

③整型變量num的值是要記錄的單詞的個數。

C語言中規定字符串的最后一個字符是一個隱含的字符串結束符“\\0”,所以在題中第—個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第三個空中應當填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數。

36.246246解析:本題考查靜態(static)局部變量的使用。fun函數中的靜態局部變量a所占用的存儲單元在程序運行過程中始終不釋放,即當下一次調用該函數時,該變量仍然保留上一次函數調用結束時已有的值,3次調用fun函數分別得到2,4,6。

37.a=14a=14解析:逗號表達式的值是以逗號分隔的最后一個表達式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結果是a=14。

38.E-R圖E-R圖解析:E-R圖是設計概念模型的有力工具。

39.-16-16解析:將賦值運算符右側的“表達式”的值賦給左側的變量,并且賦值運算符按照“自右而左”的結合順序,本題表達式應先算m的值為10,再運算y的值為8,最后計算y=y+(-8)=-8+(-8)=-16。

40.main()pstr*(pstr+j)

41.B解析:選項D顯然是錯的,而選項A沒有分號結束,不是C語句;a++=5違反了賦值表達式工側必須為一個變量(不能是常量或表達式)的規定。

42.B

43.C解析:軟件測試的目標是在精心控制的環境下執行程序,以發現程序中的錯誤,給出程序可靠性的鑒定。它有3個方面的重要特征,即測試的挑剔性、完全測試的不可能性及測試的經濟性。其中沒有測試的可靠性這一說法。注意:軟件測試與軟件調試的概念,以及相應的方法。

44.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結束,以區別于C語句、定義和說明語句。選項C中的宏定義為不帶參數的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預處理是在編譯程序對C源程序進行編譯前執行的.當然也在程序執行之前執行,因此選項D是錯誤的。

45.C解析:所謂“編碼”,是指把軟件設計的結果用計算機系統可以理解的形式表示出來。用于編碼的程序設計語言可以是計算機系統能夠直接理解的機器語言,也可以是必須通過匯編、編譯(或解釋)才能為計算機系統所理解的匯編語言或高級語言。

46.D軟件開發離不開系統環境資源的支持,其中主要的資源有硬件資源、通信資源、輔助資源等。(1)硬件資源是指組成計算機及相關應用所需要的硬件,它是軟件開發必不可少的資源,因為無論什么樣的軟件工具都需要在硬件上完成任務,它是其他資源的基礎資源。(2)通信資源是指為軟件開發提供通信支撐的資源,它與測試數據無關。(3)支持軟件是指為軟件開發提供操作平臺的軟件,如常用的面向對象開發的Rose軟件,它主要是軟件開發的工具。通過對上述分析的總結,可以知道本題的正確答案選D。

47.A解析:引用一個數組元素,可以用:(1)下標法,如a[i]形式;(2)指針法,如*(a+i)或*(p+i)。數組的下標從0開始,值為3的數組元素是a[2]。B、C的內容為a[3],D將a[2]前自加,結果為4。

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

49.C解析:執行完一個case后面的語句后,流程控制移到下一個case繼續執行。“case常量表達式”只是起語句標號作用,并不是在該處進行條件判斷。在執行switch語句時,根據switch后面表達式的值找到匹配的入口標號,就從此標號開始執行下去,不再進行判斷。

50.C

51.D解析:因為變量t的初始值等于1,經過第一次dowhile循環中,執行t=t-2這條語句一次,所以變量t的值為-1,判斷關系表達式t!=n是否成立,如果關系表達式成立,則執行第二次循環,再執行t=t-2這條語句一次,所以變量t的值為-3,接著再判斷關系表達式t!=n是否成立,如果關系表達式成立,執行第三次循環,否則退出循環。由此可知,所以只要輸入變量n的值為負奇數,則一定會使t==n成立,則退出dowhile循環。

52.A解析:本題中,首先定義了一個共用體pw,其中有兩個域:整型變量i和字符數組ch,因為共用體中的域是共享內存空間的,又數組的元素有低到高存儲:ch[0]在低字節,ch[1]在高字節。整型變量i占兩個字節,高位與ch[1]共用存儲空間,低位與ch[0]共用存儲空間,而高位ch[1]的值為0,所以輸出的成員變量i的值就是ch[0]的值13。

53.A解析:關系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為表中的一個屬性,對應表中的一個字段;在二維表中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。

54.C解析:在位運算中,操作數每右移兩位,相當于在操作數的左側添0,最右面的兩位被移出,即操作數除以4。

55.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數輸出,所以第一個輸出語句輸出的結果為a,97;第二個輸出語句輸出的結果為k=12。

56.C解析:叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求中序遍歷,其遍歷順序應該為:中序遍歷左子樹->,訪問根結點->中序遍歷右子樹.按照定義,中序遍歷序列是BDAECF,故答案為B。

57.D解析:時間復雜度是指一個算法執行時間的相對度量;空間復雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數據,又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復雜度和空間復雜度之間雖然經常矛盾,但是二者不存在必然的聯系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。

58.DD)【解析】數據的存儲結構是指數據的邏輯結構在計算機存儲空間中的存放形式,一種數據結構可以根據需要采用不同的存儲結構,常用的存儲結構有順序和鏈式結構。采用不同的存儲結構,其處理的效率是不同的。

59.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態存儲方式。大多數變量是自動變量。用static聲明的局部變量是靜態局部變量。函數調用結束后靜態局部變量占據的內存存儲單元空間不釋放,局部變量保留原值,下次調用時可以繼續使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變全局變量的作用域,實際上,關鍵字'auto'可以省略,auto不寫則隱含確定為'自動存儲類別',屬于動態存儲方式。

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

61.A

62.B

63.C

64.A首先將x指向的字符串的首地址賦給y,然后進行掃描,知道遇到結束標志0,y-x-1的意思就是求字符串的長度,因為y指向字符串的最后一個字符的下一位,而x指向字符的首地址。

65.A“&”按位與,如果兩個相應的二進制位都為l,則該位的結果值為l,否則為0。

“r’按位或,即兩個相應的二進制位中只要有一個為l,該位的結果值為l。2的二進制為00000010.4的二進制為00000100,因此做或運算結果為00000110,該數與51/1100000101做與運算,結果為00000100,即4,選項A)正確。

66.C十六進制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個數字和a、b、C、d、e、f這6個字母。

67.C

68.C逗號表達式,其值為最后一個表達式的值。如A,值為x+1,x=6,所以結果為7,而C,x+y,x=6,y=6,x+y=12.

69.A本題考查數組作為函數形參與實參的使用。題目給出的程序分為兩個部分,一個是函數func,該函數有兩個形參,一個為整型的指針a,一個為整型的數組b[],這里的b只是一個形參數組名,與main函數中的數組b沒有關系。為了區別,將func函數中的數組b用b’表示。func函數實現

溫馨提示

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

最新文檔

評論

0/150

提交評論