2021-2022年江蘇省泰州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2021-2022年江蘇省泰州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2021-2022年江蘇省泰州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2021-2022年江蘇省泰州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2021-2022年江蘇省泰州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年江蘇省泰州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.計算機硬件組成中,CPU包含______。

A.控制器和存儲器B.控制器和運算器C.控制器、運算器和存儲器D.內(nèi)存儲器和外存儲器

3.若有說明語句:charc='\72'則變量c()。

A.包含1個字符B.包含2個字符C.包含3個字符D.說明不合法,c的值不確定

4.下列標(biāo)識符不是關(guān)鍵字的是()。

A.breakB.charC.SwithchD.return

5.

6.表達(dá)式a+=a-=a=9的值是()。

A.9B.-9C.18D.0

7.有以下程序:#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);}程序的運行結(jié)果是()。

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

8.下面程序的輸出是()。A.17B.18C.23D.24

9.有以下程序

#include<stdio.h>

#include<stdlib.h>

main()

{int*a,*b,*c;

a=b=c=(int*)malloc(sizeof(int));

*a=1;*b=2,*c=3;

a=b

printf(”%d,%d,%d\n”,*a,*b,*c);

}

程序運行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3

10.下列關(guān)于字符串的說法中錯誤的是

A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標(biāo)志

B.'\0'作為標(biāo)志占用存儲空間,計入串的實際長度

C.在表示字符串常量的時候不需要人為在其末尾加入'\0'

D.在C語言中,字符串常量隱含處理成以'\0'結(jié)尾

11.下列排序算法中,()算法可能會出現(xiàn)下面情況:初始數(shù)據(jù)有序時,花費的時間反而最多。

A.堆排序B.冒泡排序C.快速排序D.希爾排序

12.如果某圖的鄰接矩陣是對角線元素均為零的上三角矩陣,則此圖是_______

A.有向完全圖B.連通圖C.強連通圖D.有向無環(huán)圖

13.

14.對n個元素的數(shù)組進(jìn)行(),其平均時間復(fù)雜度和最壞情況下都為O(nlogn)。

A.希爾排序B.快速排序C.堆排序D.選擇排序

15.設(shè)有定義:intx=2.以下表達(dá)式中,值不為6的是()。A.2*x,x+=2B.x++.2*xC.x*=(1+x)D.x*=x+1

16.表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為()。A.intB.floatC.doubleD.不確定

17.設(shè)inta=12,則執(zhí)行完語句a+=a-=a*a后,a的值是()。

A.552B.264C.144D.-264

18.

19.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)當(dāng)執(zhí)行程序時,輸出的結(jié)果是()。A.-1B.1C.4D.0

20.以下敘述中錯誤的是()。

A.C語言程序在運行過程中的所有計算都以二進(jìn)制方式進(jìn)行

B.C語言程序在運行過程中的所有計算都以十進(jìn)制方式進(jìn)行

C.所有C語言程序都需要編譯、鏈接無誤后才能運行

D.C語言程序中字符變量存放的是字符的ASCII值

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

22.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

23.如果一個工人可管理多個設(shè)施,而一個設(shè)施只可被一個工人管理,則實體“工人”與實體“設(shè)備”之間存在【】聯(lián)系。

24.不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是()。

25.以下程序運行后的輸出結(jié)果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}

26.在樹形結(jié)構(gòu)中,樹根結(jié)點沒有______。

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

28.一棵二叉樹中共有80個葉子結(jié)點與10個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為【】。

29.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。

30.【】是從二維表列的方向進(jìn)行的運算。

31.以下程序輸出的最后一個值是【】。

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<5;i++)printf("%d\n",ff(i));}

32.下面程序的輸出是【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA"m,"BB","CC:,"DD"};

printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);

}

33.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+4的值為______。

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

voidfun(int*n)

{

while((*n)--);

printf("%d",++(*n));

}

main()

{inta=100;

fun(&a);

}

35.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;}

36.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。

37.對于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價漲價5%。請對下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"

38.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

39.表達(dá)式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

40.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

三、1.選擇題(20題)41.若有以下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為6的表達(dá)式是_______。

A.*p+6B.*(p+6)C.*p+=5D.p+5

42.已有定義:chara[]="xyz"'b[]={'x','y','z');,以下敘述中正確的是______。

A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.上述說法都不對

43.對以下說明語句的正確理解是inta[10]={6,7,8,9,10};

A.將5個初值依次賦給a[1]至a[5]

B.將5個初值依次賦給a[0]至a[4]

C.將5個初值依次賦給a[6]至a[10]

D.因為數(shù)組長度與初值的個數(shù)不相同,所以此語句不正確

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

A.構(gòu)成C程序的基本單位是函數(shù)

B.可以在一個函數(shù)中定義另一個函數(shù)

C.main()函數(shù)必須放在其他函數(shù)之前

D.所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義

45.以下程序的運行結(jié)果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

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

46.設(shè)ch是char型變量,其值為A,且有表達(dá)式:ch=(ch>='A'&&ch<='Z')?(ch+32):ch。該表達(dá)式的值是______。

A.AB.aC.ZD.z

47.以下的for循環(huán)______。for(x=0,y=0;(y!=123)||(x<4);x++)

A.是無限循環(huán)B.循環(huán)次數(shù)不定C.執(zhí)行4次D.執(zhí)行3次

48.若定義了以下函數(shù):voidf(……){……*p=(double*)malloc(10*sizeof(double));……}p是該函數(shù)的形參,要求通過p把動態(tài)分配存儲單元的地址傳回主調(diào)函數(shù),則形參p的正確定義應(yīng)當(dāng)是()

A.double*pB.float**pC.double**pD.float*p

49.若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達(dá)式是______。

A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x

50.數(shù)據(jù)的存儲結(jié)構(gòu)是指______。

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

51.一個良好的算法由下面的基本結(jié)構(gòu)組成,但不包括______。

A.順序結(jié)構(gòu)B.選擇結(jié)構(gòu)C.循環(huán)結(jié)構(gòu)D.跳轉(zhuǎn)結(jié)構(gòu)

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

A.文件打開時,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進(jìn)行添加或讀操作

B.文件打開時,原有文件內(nèi)容不被刪除,只能進(jìn)行讀操作

C.文件打開時,原有文件內(nèi)容被刪除,只能進(jìn)行寫操作

D.以上三種說法都不正確

53.有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);)程序運行后的輸出結(jié)果是

A.12353514B.12353513C.12343514D.12343513

54.軟件需求分析階段的工作,可以分為四個方面需求獲取,需求分析,編寫需求規(guī)格說明書,以及()A.階段性報告B.需求評審C.總結(jié)D.以上都不正確

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

56.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達(dá)式是

A.kk>='A'&&kk<='Z'

B.!(kk>='A'||kk<="Z")

C.(kk+32)>='a'&&(kk+32)<='Z'

D.isalpha(kk)&&(kk<91)

57.結(jié)構(gòu)化程序設(shè)計的一種基本方法是()

A.篩選法B.遞歸法C.歸納法D.逐步求精法

58.設(shè)有以下語句:charstrl[]="string",str2[8],*str,*str4="string";則______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(strl,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

59.若有下面的程序段:chars[]="china";char*p;p=s;則下列敘述正確的是

A.s和p完全相同

B.數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等

C.s數(shù)組長度和p所指向的字符串長度相等

D.*p與s[0]相等

60.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

四、選擇題(20題)61.有以下程序:

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

A.0987654321

B.4321098765

C.5678901234

D.0987651234

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

63.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。

A.結(jié)構(gòu)化程序使用goto語句會很便捷

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

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

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

64.

65.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷e中的字符是否為大寫字母的表達(dá)式是()。

A.isupper(c)

B.A<=c<=Z

C.A<=cc<=Z

D.c<=(z-32)(a-32)<=c

66.下列程序的輸出的結(jié)果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

67.

68.

69.按照c語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。A.連接符B.大寫字母C.數(shù)字字符D.下劃線

70.第

15

非空的循環(huán)單鏈表head的尾結(jié)點(由p所指向),滿足

A.p->next==NULLB.p==NULLC.p->next=headD.p=head

71.以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯誤的是()。

A.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型

B.若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型

C.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型

D.整數(shù)類型表示的自然數(shù)是準(zhǔn)確無誤差的

72.

數(shù)字字符0的ASCII值為48,運行以下程序的輸出結(jié)果是()。

main

(chara=1,b=2;

printf("%C,",b++);printf("%d\n",b—a);}

A.3,2B.50,2C.2,2D.2,50

73.

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

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

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

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

D.線性表可以是空表

75.以下敘述中錯誤的是()。

A.一個C程序中可以包含多個不同名的函數(shù)

B.一個C程序只能有一個主函數(shù)

C.C程序在書寫時,有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過

D.C程序的主函數(shù)必須用main作為函數(shù)名

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

A.

B.

C.

D.

77.若有下面的程序段

#include"stdio.h"

main()

{inti=6;

while(i--)

printf("%d",--i);

printf("\n");

}

那么程序的輸出結(jié)果為

A.531B.420

C.654321D.死循環(huán)

78.軟件需求分析一般應(yīng)確定的是用戶對軟件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

79.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。

A.aChedB.deCabC.deabeD.Cedba

80.在c語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。

A.auto和static

B.extern和register

C.auto和register

D.static和register

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進(jìn)行排序。

例如,排序前的數(shù)據(jù)為:1132-5214

則排序后的數(shù)據(jù)為:-52111432

請修改程序中的錯誤,使它能得到正確結(jié)果。

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

試題程序:

六、程序設(shè)計題(1題)82.使用vc++2010打開文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是在一組得分中,去掉一個最高分和一個最低分,然后求平均值,并通過函數(shù)返回該值。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個數(shù)(n>2)。例如,若輸入8.4共10個得分,則輸出結(jié)果為8.687500。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D

2.B

3.A解析:C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個“\\”開頭的字符。其中,“\\ddd”表示用ASCII碼(八進(jìn)制數(shù))表示一個字符,本題中的charc='\\72'H口表示占一個字符的變量c的ASCII碼值。

4.C在C語言中,字母區(qū)分大小,所以break、char、return、switch都是C語言中的關(guān)鍵字,而Swithch不是。

5.A

6.D解析:+=、-=、=等符號優(yōu)先級相同結(jié)合性是由右至左,所以選D。

7.B內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第1次外循環(huán)時,t=t+b[0][b[0][0]]=1+b[0][0]=1+0=1;第2次外循環(huán)時,t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第3次外循環(huán)時,1=1+b[2][b[2][2]]=2+b[2][2]=2+2=4。故本題答案為B選項。

8.B

9.A解析:本題中,首先創(chuàng)建開辟一個動態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同的變量。分別給a、b、C所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量的值,即3,3,3。所以選A。

10.B解析:'\\0'作為標(biāo)志占用存儲空間,但是不計入串的實際長度。當(dāng)給一個字符型指針賦值時,賦給這個指針的是這個字符串的地址。

11.C

12.D

13.A

14.C

15.A[解析]A)選項中逗號表達(dá)式先計算第一表達(dá)式2*x,然后計算表達(dá)式x+=2的值,即x=x+2即4.整個逗號表達(dá)式為第二個表達(dá)式的值4.所以選A)。B)選項中首先計算逗號表達(dá)式中第一個表達(dá)式x++,此時x為3.再執(zhí)行第二個表達(dá)式2*x=2*3=6.所以逗號表達(dá)式為第二個表達(dá)式的值6.C)選項的賦值表達(dá)式可以表示為x==x*(1+x)=2*(1+2)=6.D)選項中的表達(dá)式可以表示為x=x*(x+1)=2*3=6.

16.C因為c語言數(shù)據(jù)進(jìn)行計算時數(shù)據(jù)類型會由低級向高級進(jìn)行隱式轉(zhuǎn)化,sqrt函數(shù)得到的是double類型,比其他的int數(shù)據(jù)類型高,所以整個結(jié)果得到的是double類型。

17.D

18.D

19.A本題考查do-while循環(huán)。當(dāng)--y是0(即y是o)時結(jié)束循環(huán),輸出--y,先將y的值減1再輸出Y的值。

20.BC語言程序在運行過程中的所有計算都以二進(jìn)制方式進(jìn)行,所以B選項錯誤。故本題答案為B選項。

21.D

22.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對鏈表的定義。

23.一對多或1:N實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)聯(lián)。兩個實體間的聯(lián)系可以歸結(jié)為三種類型:一對一聯(lián)系表現(xiàn)為某一實體與另一實體一一對應(yīng)相關(guān)聯(lián);一對多聯(lián)系表現(xiàn)為某一實體與相關(guān)多個實體相關(guān)聯(lián);多對多聯(lián)系表現(xiàn)為多個實體與相關(guān)多個實體相關(guān)聯(lián)。

24.選擇選擇解析:關(guān)系數(shù)據(jù)庫的專門關(guān)系運算包括選擇、投影和連接3種,其中選擇不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)。

25.1020010200解析:本題考查的是混合運算?!?a/b<1)&&(a%b<1)”的運算順序為:括號>算術(shù)運算符>關(guān)系運算符>邏輯運算符。其中a%b=10,a,b=0,所以a%b<1的值為0,a/b<1的值為1,故整個表達(dá)式的結(jié)果為0,所以輸出的a,b,c的值為10200。

26.前件前件

27.參照完整性參照完整性

28.179179解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中的二叉樹有80個葉子結(jié)點,因此,該二叉樹有80-1=79個度為2的結(jié)點;又知本題中的二叉樹有10個度為1的結(jié)點。因此,本題中的二叉樹總結(jié)點數(shù)為:葉子結(jié)點數(shù)+度為1的結(jié)點數(shù)+度為2的結(jié)點數(shù)=80+10+79=179

29.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。

30.投影投影解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運用常規(guī)的集合運算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關(guān)系運算,如投影、選擇、連接等。投影是從二維表的列方向上進(jìn)行的運算。

31.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。

②對靜態(tài)局部變量是在編譯時賦被值的,即只賦被值一次,在程序運行時它已有被值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。

③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦被值)

④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。

本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。

32.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。

33.此題考查逗號表達(dá)式。逗號表達(dá)式的值是最后一個表達(dá)式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以返回值a+4=6+4=10。

34.00解析:在函數(shù)fun()中,while((*n)-)是先引用*n的值,再做(*n)--運算,所以循環(huán)結(jié)束時*n的值為0,再做(*n)--運算后,*n的值為-1;執(zhí)行++(*n)后,*n的值是0。

35.int*int*解析:從題中代碼可知:z應(yīng)該是一個整型指針,因此應(yīng)填int*。

36.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。

37.SET單價=單價*1.05SET單價=單價*1.05解析:更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個或多個屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達(dá)式賦值給對應(yīng)的屬性名(SET單價=單價*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進(jìn)行限制,即對符合條件的元組進(jìn)行更新。

38.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標(biāo)識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

39.整型整型解析:上面的表達(dá)式中,通過強制類型轉(zhuǎn)換把最后參與運算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。

40.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈?zhǔn)酱鎯碚f,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實現(xiàn)的。

41.C解析:選項A,*p+6,其值等于1+6=7;選項B,*(p+6),其值等于a[6]=7;選項C,*p+=5,其值等于*p=*p+5=1+5=6;選項D,p+5是個地址值。

42.C解析:a數(shù)組是字符串,系統(tǒng)會自動地給它加一個結(jié)束標(biāo)志符'\\0',因此a的長度就變?yōu)?了,所以a數(shù)組比b數(shù)組長。

43.B解析:本題中,表達(dá)式將5個初值分別賦給a[0]至a[4],系統(tǒng)自動給后面的元素a[5]至a[9]賦0。

44.A解析:本題綜合考查C語言的概念部分,關(guān)于C語言,我們應(yīng)該了解以下必須要掌握的基礎(chǔ)知識:

①C程序是由函數(shù)構(gòu)成的。

②一個函數(shù)由兩部分組成:函數(shù)的首部和函數(shù)體。

③一個C程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)的整個程序中的位置如何(main函數(shù)可以放在程序最開始,也可以放在程序最后,或?qū)懺谝恍┖瘮?shù)之前,在另一些函數(shù)之后)。

④C程序在書寫上,表現(xiàn)形式比較自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在幾行上。每個語句和數(shù)據(jù)定義的最后必須有一個分號。

⑤C程序本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成。

⑥可以用/*……*/對C語言的程序的任何部分作注釋。

45.A解析:結(jié)構(gòu)體變量的長度是其內(nèi)部成員總長度之和,在本題中,structdate中包含year,month,day三個整型變量。通常一個整型變量占2個字節(jié),因此,用sizeof求得該結(jié)構(gòu)體變量的長度為6個字節(jié)。

46.B

47.A解析:本題考查for循環(huán)的結(jié)束條件。注意雖然x的值在增加,但y的值不增加,表達(dá)式(y!=123)||(x<4)的值永遠(yuǎn)是1,所以會成為無限循環(huán)。

48.C解析:從上面程序中對指針變量p值的定義可見,p所指單元的內(nèi)容又是一個地址,這個地址是申請分配內(nèi)存空間后的返回首地址,而分配的空間中又存放double型的數(shù)據(jù),因此p是指向指針的指針變量,通過兩層間接尋址對double型的數(shù)據(jù)操作,故正確答案應(yīng)該是選項C。

49.A解析:選項A將變量x的地址賦紿指針變量pb,使pb指向x‘選項B是烙x的值當(dāng)作地址賦給指針pb,pb指向一個地址等于x值的內(nèi)存單元;選項c將x的地址賦給指針pb指向的地址等于x的內(nèi)存單元。

50.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。

51.D解析:1966年,Bohra和Jacopini提出了以下三種結(jié)構(gòu),用這三咱基本結(jié)構(gòu)作為表示一個良好算法的基本單元:1、順序結(jié)構(gòu);2、選擇結(jié)構(gòu);3、循環(huán)結(jié)構(gòu)。

52.A解析:本題考查文件使用方式標(biāo)識符,以“a+”方式打開一個已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時,可以進(jìn)行追加或讀操作。

53.A解析:本題考查的是自加運算符的運用。自加運算符有前綴和后綴兩種不同的形式,對于變量本身來說,無論是前綴還是后綴其作用的效果都是相同的,使變量值增1。但作為表達(dá)式來說卻有著不同的值,前綴時自增表達(dá)式的值是變量增1,后的值,而后綴時自增表達(dá)式的值是變量增1前的值。本題程序開始定義了兩個整型變量m和n,并分別初始化為12和34.第一條輸出語句是按整型格式輸出表達(dá)式m++和++n的值,根據(jù)前面所述,表達(dá)式m++的值為12,++n的值為35,所以第一次輸出的字符串是'1235',執(zhí)行完后m和n的值都自增1,分別是13和35.接下來第二條輸出語句也是按整型格式輸出表達(dá)式n++和++m的值,分別是35和14,故最終的輸出應(yīng)該為“12353514”,所以,4個選項中選項A符合題意。

54.B解析:需求分析階段的工作,可以概括為以下4個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。本題的正確答案為選項B。

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

56.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在“A”和“Z”之間就可以了,選項A和C符合要求。函數(shù)isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65-90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。

57.D解析:在結(jié)構(gòu)化程序設(shè)計中,通常采取自頂向下、逐步求精的方法,尤其是在詳細(xì)設(shè)計和編碼階段,其總的思想就是先全局后局部、先整體后細(xì)節(jié)、先抽象后具體、程序自頂向下、逐步細(xì)化。而篩選法、遞歸法和歸納法指的都是程序的某種具體算法。逐步求精法是結(jié)構(gòu)化程序設(shè)計中很重要的思想,一定要牢記!

58.C解析:C語言中strcpy(stl,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。

59.D解析:字符型指針變量p中存放的是'china'的首地址,所以選項A)和B)錯誤。e數(shù)組長度為6,而p所指向的字符串長度為5,二者不相等,排除選項C)。

60.C解析:當(dāng)switch后面括弧內(nèi)的表達(dá)式的值與某一個case后面的常量的表達(dá)式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達(dá)式的值都沒有與表達(dá)式的值匹配的,就執(zhí)行default后面的語句。

61.C函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。所以正確答案為c)。

62.A涵數(shù)返回的結(jié)構(gòu)體為在涵數(shù)里賦值的結(jié)構(gòu)體,所以選擇A)。

63.B濫用90t0語句將使程序的流程毫無規(guī)律,可讀性差,對于初學(xué)者來說盡量不要使用,所以A錯誤?!獋€結(jié)構(gòu)化程序可以包含順序、分支、循環(huán)結(jié)構(gòu)中的一種或多種,所以C錯誤。由三種基本結(jié)構(gòu)構(gòu)成的程序可以解決任何復(fù)雜的問題,所以D錯誤。

64.B

65.B解析:在本題中,選項B,實際是先計算關(guān)系表達(dá)式“‘A<=c’”的值是0還是1,再比較該值與字符‘Z’之間的大小關(guān)系,顯然不能實現(xiàn)題目所要求的功能,而選項A,C,D都可以。

66.C根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將double型的常量l.2轉(zhuǎn)換為int型,因為x的類型是int,則X的值為1;執(zhí)行語句y=(K+3.8)/5.0時,即先將整型變量X的值1轉(zhuǎn)換為double型1.0,然后3.8相加得4.8,進(jìn)行除法運算4.8/5.0結(jié)果為0.即變量y的值為0,d*Y的值也為0,故選C選項。

67.C

68.A

69.AC語言中標(biāo)識符由字母、下劃線或數(shù)字組成,且開頭必須是字母或下劃線。因此A選項中的連接符不合法。

70.C循環(huán)鏈表是另一種形式的鏈?zhǔn)酱鎯Y(jié)構(gòu)。表中最后一個結(jié)點的指針域指向頭結(jié)點,整個鏈表形成一個環(huán)。這種循環(huán)鏈表的好處是從任意結(jié)點開始都可以找到其他結(jié)點。

循環(huán)鏈表的操作和線性鏈表基本一致,差別僅在于鏈表最后的結(jié)點,線性鏈表的判斷條件是結(jié)點的指針域是否為“空”,而循環(huán)鏈表的判斷條件是結(jié)點的指針域是否指向頭結(jié)點。非空的循環(huán)單鏈表head的尾結(jié)點p滿足p->next=head。

71.CC語言中沒有邏輯類型,所以選項C錯誤。若要保存帶有多位小數(shù)的數(shù)據(jù),可以用單精度類型,也可以用雙精度類型。處理包含不同類型的相關(guān)數(shù)據(jù)可以自定義結(jié)構(gòu)體類型。整數(shù)類型可以無誤差地表示自然數(shù)。故本題答案為C選項。

72.C

\nb++是先用表達(dá)式的值然后自增l,因此表達(dá)式值為2,b為3;b-a=3-1=2,因此最后輸出的結(jié)果為2,2,前一個為字符2,后一個為數(shù)字2。

\n

73.B

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

75.C【答案】C

【知識點】C程序的函數(shù)

【解析】C程序必須有且只有一個主函數(shù)m

溫馨提示

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

評論

0/150

提交評論