2021年四川省廣安市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2021年四川省廣安市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2021年四川省廣安市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2021年四川省廣安市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2021年四川省廣安市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年四川省廣安市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________一、單選題(20題)1.廣義表((a))的表尾是()。

A.aB.(a)C.((a))D.()

2.下面哪些使用的不是貪心算法()

A.單源最短路徑中的Dijkstra算法

B.最小生成樹的Prim算法

C.最小生成樹的Kruskal算法

D.計算每對頂點最短路徑的Floyd-Warshall算法

3.下列程序的輸出結果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

4.軟件生命周期中,花費最多的階段是()。

A.詳細設計B.軟件編碼C.軟件測試D.軟件維護

5.下列程序的輸出結果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}

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

6.以下不能輸出字符A的語句是(注:字符A的ASCII值為65,字符a的ASCII值為97)()。

A.printf(“%c\n”,‘a’-32);

B.printf(“%d\n”,‘A’);

C.printf(“%c\n”,65);

D.printf(“%c\n”,‘B’-1);

7.以下敘述中正確的是_____。A.用C程序實現(xiàn)的算法必須要有輸入和輸出操作

B.用C程序實現(xiàn)的算法可以沒有輸出但必須要輸入

C.用C程序實現(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序實現(xiàn)的算法可以既沒有輸入也沒有輸出

8.執(zhí)行以下程序后,a,b的值分別為main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

9.兩個或兩個以上模塊之間關聯(lián)的緊密程度稱為()。

A.耦合度B.內聚度C.復雜度D.數據傳輸特性

10.

11.在含有n個項點有e條邊的無向圖的鄰接矩陣中,零元素的個數為________。

A.eB.2e9C.n2-eD.n2-2e

12.有以下程序:#include<stdio.h>main(){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);}程序的運行結果是()。

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

13.有如下程序:

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn(2);

}

main()

{printf("%d\n",fib(3));}

該程序的輸出結果是A.A.2B.4C.6D.8

14.

15.以下程序的輸出結果是()。main(){inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a[O][3],a[1][2],a[2][1],a[3][0];}A.0650B.1470C.5430D.輸出值不定

16.

17.無向圖中一個頂點的度是指圖中與該頂點相鄰接的頂點數。若無向圖G中的頂點數為n,邊數為e,則所有頂點的度數之和為()

A.n*eB.n+eC.2nD.2e

18.若以“a+”方式打開一個已存在的文件,以下敘述正確的是()。

A.文件打開時,原有文件內容不被刪除,可以進行添加和讀操作

B.文件打開時,原有文件內容不被刪除,位置指針移到文件開頭,可以進行重寫和讀操作

C.文件打開時,原有文件內容不被刪除,位置指針移到文件中間,可以進行重寫和讀操作

D.文件打開時,原有文件內容被刪除,只可進行寫操作

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

A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤

B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟

C.程序調試通常也稱為Debug

D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性

20.與單鏈表相比,雙向鏈表的優(yōu)點之一是()。

A.插入、刪除操作更加簡單B.可以隨機訪問C.可以省略表頭指針或表尾指針D.順序訪問相鄰結點更加靈活

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

main()

{inti;

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

{if(i>4)

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

break;}

printf("%d\n",i++);}}

22.按"先進后出"原則組織數據的數據結構是【】。

23.在算法正確的前提下,評價一個算法的兩個標準是【】。

24.以下函數把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

25.若按功能劃分,軟件測試的方法通常分為______測試方法和黑盒測試方法。

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

#include<stdio.h>

voidfun()

{staticinta=0;

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

}

main()

{intcc;

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

printf("\n");

}

27.下面程序輸出的結果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

如:dp=x*-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

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

}

29.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運行后的輸出結果是()。

30.設有如下程序:

main()

{intn1,n2;

scanf("%d",&n2);

while(n2!=0)

{n1=n2%10;

n2=n2/10;

printf("%d",n1);

}

}

程序運行后,如果從鍵盤上輸入1298,貝愉出結果為【】。

31.執(zhí)行以下程序后,輸出‘#’號的個數是______。

#include<stdio.h>

main()

{

inti,j;

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

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

putchar('#');

}

32.以下程序運行后的輸出結果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

33.在軟件測試中,動態(tài)測試和靜態(tài)測試手段只能發(fā)現(xiàn)程序中的錯誤,而不能證明程序中不存在錯誤,只有【】證明才有可能證明程序的正確性。

34.下面函數的功能是將一個字符串的內容顛倒過來,請?zhí)羁铡?/p>

voidfun(charstr[])

{inti,j,k;

for(i=0,j=【】;i<j;i++,j--)

{k=str[i];

str[i]=str[j];

str[j]=k;}}

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

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

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

37.以下說明語句中,【】是結構體類型名。

typedefstruct

{intn;

charch[8];

}PER;

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

main()

{inta[]={31,27,20,12,6,1},*p=a;

p++;

printf("%d\n",*(p+2));

}

39.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。

40.在面向對象的方法中,______描述的是具有相似屬性與操作的一組對象。

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++)}for(j=0;j<2;j++)prinff("%2d",a[i][j]);prinff("\n");}}若運行時輸入:123<回車>,則輸出結果是()。

A.產生錯誤信息B.102000C.123000D.102030

42.以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是()。

A.chars[10]=="abcdefg";

B.chart[]="abcdefg",*s=t;

C.chars[10];s="abcdefg";

D.chars[10];strcpy(s,"abcdefg");

43.下列程序的輸出結果為main(){unionu{char*name;intage;intincome;}="WANGLIONG";s.age=28;s.income=1000;printf("%d\n",s.age);}

A.28B.1000C.0D.不確定

44.執(zhí)行下列程序段后,變量a,b,c的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?x:++y;b=++x;c=y;

A.a=5,b=5,c=5

B.a=4,b=5,c=5

C.a=5,b=6,c=5

D.a=1,b=5,c=6

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

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

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

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

D.上述三種說法都不對

46.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數據元素的物理順序和邏輯順序相同

47.有以下程序main(){union{unsignedintn;unsignedcharc;}ul;u1.C='A';pfintf("%c\n",u1.n);}執(zhí)行后輸出結果是

A.產生語法錯B.隨機值C.AD.65

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

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

49.對建立良好的程序設計風格,下列描述正確的是()。

A.程序應該簡單、清晰、可讀性好B.符號名的命名只需要符合語法C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無

50.以下選項中不屬于字符常量的是

A.'C'B.CC.'\xCC'D.'\072'

51.下面的程序執(zhí)行后,文件test.t中內容是______。#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}

A.hello,B.newworldhelloC.newworldD.hello,rld

52.請讀程序:#include<stdio.h>main(){floax,y;scanf("%f",&x);if(x<0.0)y=0.0;elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<10.0)y=1.0/x;elsey=10.0;printf("%f\n",y);}若運行時從鍵盤上輸入2.0<CR>(<CR>表示回車),則該程序的輸出結果是()

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

53.若有定義:inta=8,b=5,c;執(zhí)行語句c=a/b+0.4;后,c的值為

A.1.4B.1C.2D.2

54.下列條件語句中,功能與其他語句不同的是()。

A.if(a)printf("%d\n",x);elseprintf("%d\n",y);

B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);

C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);,

D.if(a==O)printf("%d\n",x);elseprintf("%d\n",y);

55.指出下面不正確的賦值語句

A.a++;B.a==b;C.a+=b;D.a=1,b=1;

56.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}

A.252B.1C.0D.運行時出錯,x無定值

57.設有如下定義:structss{charname[10]intage;charsex;}std[3],*p=std;下面各輸入語句中錯誤的是()。

A.scanf("%d",&(*p).age);

B.scanf("%st",&);

C.scanf("%c",&std[0].sex);

D.scanf("%c",&(p->sex));

58.執(zhí)行下面程序后,a的值是()main(){inta;printf("%d\n",(a=3*5,a*4,a+5));}

A.65B.20C.15D.10

59.在下列字符序列中,合法的標識符是()

A.P12&.aB.stud_100C.$water.12D.88sum

60.有如下程序段

inta=14,b=15,x;

charc=′A′;

x=(a&&b)&&(c<′B′);

執(zhí)行該程序段后,x的值為

A.trueB.falseC.0D.1

四、選擇題(20題)61.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序執(zhí)行后輸出結果是()。A.n=5B.n=2C.n=3D.n=4

62.有以下程序

63.(38)索引屬于()

A.模式

B.內模式

C.外模式

D.概念模式

64.(32)數據的存儲結構是指()

A.數據所占的存儲空間量

B.數據的邏輯結構在計算機中的表示

C.數據在計算機中的順序存儲方式

D.存儲在外存中的數據

65.下面不屬于需求分析階段任務的是()。

A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.需求規(guī)格說明書評審D.制定軟件集成測試計劃

66.

67.

68.以下關于結構化程序設計的敘述中正確的是()。

A.一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成

B.結構化程序使用goto語句會很便捷

C.在C語言中,程序的模塊化是利用函數實現(xiàn)的

D.由三種基本結構構成的程序只能解決小規(guī)模的問題

69.

70.在長度為n的有序線性表中進行二分法查找,最壞情況下需要比較的次數是()。A.O(n)B.0(n2)C.O(log2n)D.O(nlog2n)

71.

72.

73.有以下程序

main()

{intx,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

}

若運行時給變量x輸入12,則以下程序的運行結果是

A.0B.22

C.12D.10

74.執(zhí)行以下程序時輸人1234567<CR>,則輸出結果是()。

#include<stdio.h>

main

{

inta=1,b;

scanf("%3d%2d",&a,&b);

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

}

A.12367B.12346C.12312D.12345

75.

76.有以下程序:

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

A.3B.6C.8D.12

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

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

78.下面不屬于軟件工程三個要素的是()。

A.工具B.過程C.方法D.環(huán)境

79.

80.

五、程序改錯題(1題)81.下列給定程序中函數fun()的功能是:求出如下分數序列的前n項之和,結果通過函數值返回。例如,若n=5,則應輸出8.391667。請改正程序中的錯誤,使其得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.有N個學生,每個學生的信息包括學號、性別、姓名、四門課的成績,從鍵盤上輸入N個學生的信息,要求輸出總平均成績最高的學生信息,包括學號、性別、姓名和平均成績。

參考答案

1.D

2.D

3.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)條件的判定。當能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結尾,進行i++,判斷循環(huán)條件。

4.D本題考查對軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開發(fā)階段和維護階段。其中定義階段包括可行性研究與計劃制訂和需求分析;開發(fā)階段包括概要設計、詳細設計、開發(fā)和測試;維護階段是一個單獨階段,不包含在開發(fā)階段內,它是所花費用最多的一個階段。

5.D解析:本題主要考查自加(++)、自減(--)運算符的使用?!?+i,--i”在使用i之前,先使i的值加1或者減1,然后再使用i此時的值參與運算;“i++,i--”是在使用i參與表達式運算之后,再使i的值加1或者減1。本題中--a和++b是先執(zhí)行a減1和b加1操作,再輸出表達式的值。

6.BB選項輸出的格式為%d,即整型格式,所以輸出字符‘A’的ASCII值65,而不是字母A。因為大寫字母比其對應的小寫字母的ASCII值小32,所以A選項正確。字符‘A’的ASCII值是65,以%c格式輸出可以輸出字母A,所以C選項正確。因為字符‘A’的ASCII值比字符‘B’的小1,所以D選項正確。故本題答案為B選項。

7.C解析:算法的特性中包括“有零個或多個輸入”及“有一個或多個輸出”這兩個特性。一個算法得到的結果就是算法的輸出,沒有輸出的算法是沒有意義的,所以一千算法必須至少有一個輸出。

8.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;聲明整型變量a,b,k,m和指針p1,p2,并分別將4和6賦給k和m,將k和m的地址賦給P1和p2;a=p1==&m;等價于a=(p1==&m);將p1是否等于地址m的值(0)賦給變量a,b=(*p1)/(*p2)+7;該句的含義是將后面表達式的的值7賦給變量b。

9.A解析:本題考核模塊獨立性的評價。評價模塊獨立性的主要標準有兩個;一是模塊之間的耦合,它表明兩個模塊之間互相獨立的程度,也可以說是兩個或兩個以上模塊之間關聯(lián)的緊密程度(所以,本題的正確答案為選項A);二是模塊內部之間的關系是否緊密,稱為內聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨立,而要求模塊的內聚程度盡量地高。

10.A

11.D

12.B程序的功能為統(tǒng)計1~9這9個數中的奇數和。C語言中規(guī)定數組名代表數組的首地址,也就是第1個元素的地址,因此“*(t+i)”代表數組的第i+1個元素。程序的運行結果是1+3+5+7+9=25。故本題答案為B選項。

13.B

14.C

15.A當所賦的值不夠其列的寬度時,系統(tǒng)在其后自動補0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項。

16.C

17.D

18.AC語言中,文件打開方式“a+”表示打開一個文本文件,從文件開始位置讀,在文件尾部添加數據,如果指定的文件不存在,系統(tǒng)將使用調用fopen時指定的文件名創(chuàng)建一個新的文件;如果指定的文件存在,那么文件原有內容將被保存,新的數據追加到原有文件之后。故本題答案為A選項。

19.A軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,所以選項A錯誤。程序調試的基本步驟有:錯誤定位、修改設計和代碼,以排除錯誤、進行回歸測試,防止引進新的錯誤。程序調試通常稱為Debug,即排錯。軟件測試的基本準則有:所有測試都應追溯到需求、嚴格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。故答案為A選項。

20.D

21.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結束for循環(huán)直接跳出循環(huán)體外。當i=1時,因為if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i=3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1;執(zhí)行第三次for循環(huán)時,i=5,if語句條件滿足,所以執(zhí)行printf('%d\\n',i),輸出5,然后break語句跳出了for循環(huán)。

22.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數據的數據結構是棧;按'先進先出'原則組織數據的數據結構是隊列。

23.時間復雜度和空間復雜度時間復雜度和空間復雜度

24.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

25.白盒白盒解析:軟件測試的方法分為白盒測試方法和黑盒測試方法.

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

27.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。

28.7979解析:因為在調用子函數時進行的是數值傳遞,調用子函數并不能改變實參的值,所以經過調用子函數,c、d的值并沒有發(fā)生變化還是原來的值。

29.98

30.89218921解析:本題的程序的功能是將輸入的整數反向輸出。

31.66解析:本題中,i,j分別為外循環(huán)和內循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了四次.當i=1時,由于內層循環(huán)判斷條件(2<=1)為假不執(zhí)行內層循環(huán).當i=2時,執(zhí)行內層循環(huán),輸出一個#當i=3時,內層循環(huán)循環(huán)兩次,輸出兩個#,當i=4時,內層循環(huán)循環(huán)三次,輸出三#。當i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。

32.136136解析:本題考核的知識點是函數遞歸。主函數調用函數fun(6),由于6/2>0為真遞歸調用fun(3),接著遞歸調用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應該填136。

33.程序正確性程序正確性

34.strlen(str)-1strlen(str)-1解析:程序中的for循環(huán)就是用來完成串反序的,所以應該對循環(huán)的條件進行初始化,所以在[18]應該填入strlen(str)-1。注意,在串反序的時候,不應該把串結束符‘\\0’也反序。

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

36.10410\r\n4解析:結構體變量所占內存長度是各成員占的內存長度之和。每個成員分別占有其自己的內存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

37.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。

38.1212解析:本題簽考查如何用指針引用數組元素。分析程序,首先定義了一個指向數組a的指針p,p指向數組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。

39.空間復雜度和時間復雜度算法的復雜性是指對一個在有限步驟內終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復雜性,算法的計算量是算法的時間復雜性。

40.類類解析:在面向對象的方法中,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實例。

41.B解析:程序中a[3)[2]={0}將數組元素全部初始化為0,指針變量ptr指向包含2個元素的一維數組。在第一個for語句的循環(huán)體中ptr=a+i;語句用于將指針變量ptr指向第i行的數組元素,通過兩次循環(huán),分別給二維數組a的第。行的第1個元素和第1行的第1個元素賦了值1和2,即a[0][0]=1,a[1][0]=2。

42.C解析:選項A中定義了一個字符型數組并使用字符串常量給它賦初值,故選項A正確。選項B定義了一個字符型數組t并初始化,然后定義了一個指針變量s并讓它指向t,故選項B正確。選項C先定義了一個長度為10的字符型數組,然后再給它賦值,這時應該分別給數組中的每個元素賦值,故選項C不正確;選項D中先定義了一個長度為10的字符型數組s,然后通過字符串復制函數將字符串“abcdefg”賦值給它,選項D正確。所以,4個選項中選項C符合題意。

43.B解析:本題對共用體的使用進行了考查。由于共用體所有成員共同占據一段存儲空間,所以對成員變量的賦值,后面的賦值會覆蓋掉前面的賦值,因為s.income=1000;是最后一次成員變量賦值,變量age與變量income共同占據一段存儲空間,所以age的值也為1000。

44.B解析:本題考查自加(++)、自減(--)運算符的使用?!?+i,--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達式的值參與運算:“i++,i--”,先使用此時的i的值參與運算,在使用i之后,再使i的值加1或者減1。

對于第1個表達式--x=4,y++=4。兩者相等,--x==y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。

第2個表達式b=++x,x的值先加1,然后賦給b,即b=x+1=5第一個表達式c=y=5。

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

46.C【解析】在鏈表中因為除了存放數據元素之外,還要存放指針,所以鏈表花費的存儲空間要比順序表還要多,在插入和刪除數據元素時,只需要移動相應的記錄指針即可,在鏈表中,數據的物理結構與邏輯結構不一定相同,因為是靠指針來實現(xiàn)對數據的指定的,所以不能進行隨機存取。

47.C解析:在定義共用體的同時,定義了一個共用體型變量u1,共占兩個字節(jié),有兩個成員n和c,兩個成員的首地址是相同的。因此給u1,c賦一個“A”,其實就是給無符號整型成員u1.n的低字節(jié)賦一個“A”,輸出u1,n的時候是以字符型的形式輸出,只輸出它的低地址的一個字節(jié),因此為“A”。

48.C解析:本題中首先定義一個整型變量a并給它賦初值為3,在表達式中,從右開始執(zhí)行,即先執(zhí)行“a-=a*a;”等價于a=a-a*a即a=3-3*3=-6,此時a的值為-6,接著執(zhí)行“a+=a-;”相當于執(zhí)行a=a+a即a=-6+(-6)=-12,此時a的值為-12。所以,4個選項中選項C符合題意。

49.A解析:“清晰第一,效率第二”,在考慮到程序的執(zhí)行效率的同時,一定要保證程序清晰、可讀;對符號名的命名,除了要符合語法要求外,還要具有一定的含義;程序的注釋可以幫助程序員理解程序,不是可有可無的。

50.B解析:在C語言程序中,用單引號把一個字符或反斜線后跟一個特定的字符括起來表示一個字符常量。選項A)、C)和D)為正確的字符常量,而選項B)是用雙引號括起來的字符,表示一個字符串常量。

51.A解析:C語言中文件有文本文件與二進制文件,對文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。

52.C

53.B解析:在表達式中根據運算的結合性和運算符的優(yōu)先級,首先計算的是a/b(8/5=1),再將1+0.4賦值給c,由于c為整型變量所以要將1.4轉換為整型,即舍棄小數位(c的值變?yōu)?)。

54.D解析:選項A)的語句表示若a非0,則輸出x的值,否則輸出y的值;選項B)的語句表示如果a等于o,則輸出y的值,否則輸出x的值,與選項A)等價;選項C)的語句表示如果a不等于0,則輸出x,否則輸出y,與選項A)、B)相同;選項D)的語句表示如果a為0,則輸出x,否則輸出y,與前三個選項都不同。

55.B解析:本題考核的知識點是賦值語句的正確使用。C語言中賦值語句是由賦值表達式加“;”構成的.賦值表達式的形式為:變量:表達式;。選項A中a++相當于a+1,是賦值語句;選項C和選項D也是賦值語句.只有選項B不是,因為選項B中“==”符號是等于的意思,并不是賦值運算符,所以,4個選項中B符合題意。

56.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個指針變量中存儲的地址是不同的。變量x接受的是一個關系運算的結果,因為兩個地址是不同的,所以“z=y”的判斷結果為0。注意:C語言中,邏輯值的表示方法。

57.B解析:選項A中“&(*p).age”代表的是std[0].age的地址,是正確的,選項C也是正確的,選項D先用指針變量引用結構型的成員sex,然后取它的地址,也是正確的,選項B中的“”是錯誤的引用,因為std是數組名,代表的是數組的首地址,地址沒有成員“name”。所以B選項為所選。

58.B

59.B

60.D解析:在C語言中,邏輯運算符有4個,它們分別是:!(邏輯非)、邏輯或)、&&(邏輯與)、^(異或)。在位運算里面還有&(位與)、|(位或)的運算。本題考查邏輯與運算符的用法,在表達式x=(a&&b)&&(c<'B');中,先判斷a&&b條件,邏輯與條件的兩邊都要保證為1,即a和b都成立,當然c<'B'是成立的,顯然,該表達式的值為1。

61.Dcontinue語句的作用是結束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。

62.A函數‰的功能是將字符串倒序,所以結果選擇A)。

63.B

64.B

65.D在軟件開發(fā)的過程中,應該盡早的制定測試計劃,其中在需求分析階段制定系統(tǒng)測試計劃

66.B

67.A

68.C解析:結構化程序設計是指將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,與具體的語句結構無關。Goto語句的濫用會導致程序的可讀性降低。三種基本結構構成的程序依然可以解決大規(guī)模的問題,只是不利于復用。

69.C

70.C當有序線性表為順序存儲時才能用二分法查找??梢宰C明的是,對于長度為n的有序線性表,在最壞情況下,二分法查找只需要比較log2n次,而順序查找需要比較n次,因此本題答案為C)。

71.A

72.C

73.A在本題中,程序首先定義了兩個整型變量x和y,然后通過鍵盤輸入的方式給這變量x賦初值。執(zhí)行語句y=x>12?x+10:x-12;,該題語句是將x>12?x+10:x-12的運算結果保存到變量y中,由于從鍵盤輸入的值是12,那么變量x的值為12,此時x>12的運算結果為假,則執(zhí)行x-12部分,那么計算后的結果為0,并將這個結果賦值給變量y

溫馨提示

  • 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

提交評論