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

下載本文檔

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

文檔簡介

2022-2023年福建省寧德市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下與函數fseek(fp,0L,SEEK_SET)有相同作用的是

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

2.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運行后的輸出結果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3

3.若有說明語句:double*P,a;則能通過scanf語句正確給輸入項讀入數據的程序段是()。

A.*p=&a;scanf("%lf",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%lf",*p);

D.p=&a;scanf("%lf",p);

4.

5.下列程序的輸出結果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}

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

6.以下選項中是非轉義字符的是()。

A.‘\d’B.‘\t’C.‘\b’D.‘\r’

7.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。

A.p+1B.a+1C.a++D.++p

8.

9.對一個滿二叉樹,m個葉子,n個結點,深度為h,則()。

A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1

10.有n個結點的二叉樹鏈表共有__________個空指針域。

A.n-1B.nC.n+1D.n+2

11.隊列的“先進先出”特性是指()。

A.最早插入隊列中的元素總是最后被刪除

B.當同時進行插入、刪除操作時,總是插入操作優(yōu)先

C.每當有刪除操作時,總是要先做一次插入操作

D.每次從隊列中刪除的總是最早插入的元素

12.

13.以下敘述中錯誤的是A.gets函數用于從終端讀入字符串

B.getchar函數用于從磁盤文件讀入字符

C.fputs函數用于把字符串輸出到文件

D.fwrite函數用于以二進制形式輸出數據到文件

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

A.算法的時間復雜度是指算法在執(zhí)行過程中基本運算的次數

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

C.算法的時間復雜度是指算法執(zhí)行的速度

D.算法的復雜度是指算法控制結構的復雜程度

15.

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

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

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

C.一個內存塊的首地址,代表讀人數據存放的地址

D.一個內存塊的字節(jié)數

16.在執(zhí)行inta[][3]={{1,2},{3,4}};語句后,a[1][2]的值是()

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

17.在Windows環(huán)境下,單擊當前應用程序窗口中的“關閉”按鈕,其功能是A.將當前應用程序轉為后臺運行

B.退出Windows后再關機

C.退出Windows后重新啟動計算機

D.終止當前應用程序的運行

18.以下程序的輸出結果是()。main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.21

19.以下定義語句中正確的是()。

A.inta=b=0;

B.charA=65+1,b=‘b’;

C.floata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

20.將發(fā)送端數字脈沖信號轉換成模擬信號的過程稱為

A.鏈路傳輸B.調制C.解調D.數字信道傳輸

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

main()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%",n[i]);

}

22.在樹形結構中,樹根結點沒有______。

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

fun(intx,inty,intz)

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

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

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

25.數據的【】結構在計算機存儲空間中的存放形式稱為數據的存儲結構或物理結構。

26.【】是數據庫設計的核心。

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

main()

{inti,a[10];

a[0]=a[1]=1;

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

a[i]=a[i-2]+a[i-1];

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

{if(i%2==0)printf("\n");

printf("%d",a[i]);

}

}

28.一個模塊直接調用的其他模塊的模塊個數稱為______。

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

#include<stdio.h>

main()

{inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("\n%2d,%2.1f,%2.11f",a,b,C);

}

30.以下函數的功能是刪除字符串s中的所有數字字符。請?zhí)羁铡?/p>

vioddele(char*s)

{intn=0,i;

for(i=0;s[i];i++)

if(______)

s[n++];s[i];

s[n]=______;

}

31.若s是int型變量,且s=8,則s%3+(s+1)%3表達式的值為()。

32.下面程序的功能是將字符串a下標值為偶數的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chara[]="labchmfye",t;

inti,j;

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

for(j=i+2;j<9;【】)

if(【】)

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

puts(a);

printf("\n");

}

33.以下程序可以把從鍵盤上輸入十進制數(10ng型)以二到十六進制數的形式輸出,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','

E','F'};

intc[64],d,i=0,base;

longn;

printf("Enteranumber:\n");scanf("%1d",&n);

printf("Enternewbase:\n");scanf("%1d",&base);

do

{c[i]=【】;

i++;

n=n/base;

}while(n!=0);

printf("Theresultis:\n");

for(--i;i>=0;--i)

{d=c[i];

printf("%c",b【】);

}

}

34.若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

35.若a是int型變量,且a的初值為4,則計算a+=a-=a*a表達式后a的值為______。

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

main()

{

intx=0210;

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

}

37.執(zhí)行以下程序后sum的值是【】。

main()

{

inti,sum;

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

sum+=i;

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

}

38.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序運行時輸入12<回車>,執(zhí)行后輸出結果是【】。

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

intn='c';

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("morning");

case'd':printf("class");

}

40.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數為【】。

三、1.選擇題(20題)41.關系數據庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括()。

A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關聯(lián)、更新、排序D.顯示、打印、制表

42.算法的有窮性是指A.算法程序的運行時間是有限的

B.算法程序所處理的數據量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

43.有以下定義和語句:structstudents{intnum;charname[20];charc;struct{intgrade1;intgrade2;}s;};structstudentsw,*pw;*pw=w;下列賦值語句不正確的是()。

A.w.num=1002;B.w.grade1=85;C.pw->num=1002;D.w.s.grade2=85;

44.設有以下語句,其中不是對a數組元素的正確引用的是:______(其中0≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;

A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))

45.變量a所占的內存字節(jié)數是______。

A.4

B.5

C.6

D.8unionU{charst[4];inti;longl;};StructA{intc;unionUu;}a;

46.若有定義和語句int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);則輸出結果是()

A.10,10B.10,20C.20,10D.20,20

47.下列數據模型中,具有堅實理論基礎的是()。

A.層次模型B.網狀模型C.關系模型D.以上3個都是

48.設x=011050,則x=x&01252的值是()。

A.1000101000

B.1111110100011000

C.1011100010

D.1100000000101000

49.因特網(習慣上稱國際互聯(lián)網)的英文名是()

A.InternetB.IntranetC.NCFCD.ISDN

50.下列關于棧的敘述中正確的是()

A.在棧中只能插入數據B.在棧中只能刪除數據C.棧是先進先出的線性表D.棧是先進后出的線性表

51.單個用戶使用的數據視圖的描述稱為______。

A.外模式B.概念模式C.內模式D.存儲模式

52.下面四個選項中,均是不正確的八進制數或十六進制數的選項是

A.0160x8f018

B.0abc0170xa

C.010-0x110x16

D.0a127ff-123

53.若有結構體定義:

structstu{intnum;

charsex;

intage;

}al,a2;

則下列語句中錯誤的是()。

A.printf("%d,%C,%d",a1);

B.a2.age=a1.age;

C.a1.age++;

D.a1.num=5;

54.設有定義intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

55.若k是int型變量,且有下面程序片段:k=-3;if(k<=0)printf("####")elseprintf("&&&&")上面程序片段的輸出結果是()

A.####

B.&&&&

C.###&&&&

D.有語法錯誤,無輸出結果

56.C語言中,能識別處理的文件為

A.文本文件和數據塊文件B.文本文件和二進制文件C.流文件和文本文件D.數據文件和二進制文件

57.有以下程序

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);}

程序執(zhí)行后的輸出結果是

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

58.若有定義:intaa[8]則以下表達式中不能代表數組元aa[1]的地址的是

A.&aa[0]+1B.&aa[1]C.&aa[0]++D.aa+1

59.如下程序的輸出結果是

#include<stdio.h>

main()

{charch[2][5]={"6937","8254"},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

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

for(j=0;p[i][j]>′\0′;j+=2)

s=10*s+p[i][j]-′0′;

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

A.69825B.63825C.6385D.693825

60.當a=1、b=3、c=5、d=4時,執(zhí)行下面一段程序:if(a<B)if(c<D)x=1;elseif(a<C)if(b<D)x=2;elsex=3;elesx=6;elsex=7;程序執(zhí)行后,x的值為()

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

四、選擇題(20題)61.

62.有以下程序:

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

A.12

B.15

C.16

D.20

63.若有定義和語句:inta,b;scanf("%d,%d",&a,&b);以下選項中的輸人數據,不能把值3賦給變量a、5賦給變量b的是()。

A.3,5,

B.3,5,4

C.3,5

D.35

64.在結構化程序設計方法中,下面內聚性最弱的是()。

A.邏輯內聚B.時間內聚C.偶然內聚D.過程內聚

65.

有如下程序:

main

{inta=2,b=-1.c=2;

if(a<0)if(b<0)c=0;

elsec++;

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

}

該程序的輸出結果是()。

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

66.有以下程序:

執(zhí)行時輸入:aBeDefG##<;回車>;,則輸出結果是()。

A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bedefgh

67.

68.有以下程序:

當執(zhí)行程序時,按下列方式輸人數據(從第l列開始,<CR>代表回車,注意,回車也是—個字符)l<CR>

234<CR>

則輸出結果是()。

A.34

B.134

C.123

D.1234

69.設有以下定義和語句:

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

A.str數組長度和P所指向的字符串長度相等

B.*P與str[0]的值相等

C.str與P的類型完全相同

D.數組str中存放的內容和指針變量P中存放的內容相同

70.有如下嵌套的if語句:

以下選項中與上述if語句等價的語句是()。

A.

B.

C.

D.

71.

72.

73.

74.

75.

76.

77.有下列函數定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數的類型是()。A.int類型B.float類型C.void類型D.函數無類型說明,定義有錯

78.若有定義:“inta[2][3];”,則對a數組的第i行第j列元素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

79.有以下程序:

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

A.2,2,3,4,5,

B.6,2,3,4,5,

C.1,2,3,4,5,

D.2,3,4,5,6,

80.

五、程序改錯題(1題)81.下列給定程序中函數fun的功能是:用冒泡法對6個字符串進行升序排列。請改正程序中的錯誤,使它能得出正確的結果。

注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結構!

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數proc,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內容為****a*bc*def*g****,刪除后,字符串中的內容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

參考答案

1.D解析:本題考查的是文件操作函數.題目中fseek(fp,0L,SEEK_SET)的作用將文件指針定位到文件開始。feof(fp)的作用是判斷文件指針是否已到文件結尾,因此選項A不對。ftell(fp)的作用是獲取當前文件指針的位置,因此選項B不對。fgetc(fp)的作用是從文件中讀取一個字節(jié),因此選項C不對。rewind(中)的作用是將文件指針重定位到文件開頭,所以應該選擇D。

2.Asizeof是運算符,計算數組、指針、類型、對象、函數等所占的字節(jié)大小。strlen(*char)是函數,參數必須是字符型指針(char*)。該函數的功能是:返回字符串的長度,不包括字符串結束標識。“sizeof(a)”是求數組a所占空間的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就結束,“strlen(a)”=4?!皊trier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小。“strlen(c)”是字符串的長度,“sizeof(c)”是數組的長度。因此,輸出結果是4,5,2,4,1,3,。故本題答案為A選項。

3.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對。scanf()的輸入變量必須為地址,因此C是錯誤的。

4.C

5.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a=1>0,此條件成立,又因為是進行邏輯或運算,在已知其中一個運算對象為真的情況下,不必判斷另外一個運算符的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執(zhí)行下列的++c。

6.AC語言中,轉義字符又稱反斜線字符,這些字符常量總是以一個反斜線開頭后加一個特定的字符。題干中,‘\\t’表示橫向跳若干格,‘\\b’表示退格符,‘\\r’表示回車符,選項B、C、D正確,選項A錯誤。故本題答案為A選項。

7.C

8.A

9.D

10.C

11.D

12.A

13.B其中B選項的getchar函數用于從終端讀入字符。故本題答案為B選項。

14.A算法的時間復雜度是指執(zhí)行算法所需要的計算工作量,其計算工作量是用算法所執(zhí)行的基本運算次數來度量的。本題答案為A選項。

15.Cfread函數中的參數buffer是內存塊的首地址,輸入的數據存入此內存塊中。

16.D

17.D

18.A循環(huán)的作用是求行下標從l到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

19.BA選項中的變量b沒有定義,不能直接給變量a賦值。C選項中,*b、*c表示的是一個實型變量的地址,不能將指針型變量b的地址賦值給指針型變量c。D選項中,“a=0.0”后面應該為逗號,不能是分號。故本題答案為B選項。

20.B

21.1371513715解析:本題中數組n有5個元素且初值為0,以下為for循環(huán)的執(zhí)行過程。

第1次循環(huán):循環(huán)前i=1,執(zhí)行循環(huán)語句n[1]=n[1-1)*2+1=n[0]*2+1=1,輸出1;

第2次循環(huán):循環(huán)前i=2,執(zhí)行循環(huán)語句n[2]=n[2-1)*2+1=n[1]*2+1=1*2+1=3,輸出3;

第3次循環(huán):循環(huán)前i=3,執(zhí)行循環(huán)語句n[3]=n[3-1]*2+1=n[2]*2+1=3*2+1=7,輸出7;

第4次循環(huán):循環(huán)前i=4,執(zhí)行循環(huán)語句n[4]=n[4-1)*2+1=n[3]*2+1=7*2+1=15,輸出15;

所以程序的運行結果為:13715。

22.前件前件

23.3131解析:在函數調用時,形參值和改變,不會改變實參的值。

24.類類解析:在面向對象方法中,類描述的是具有相似屬性與操作的一組對象。

25.邏輯邏輯解析:數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構或物理結構。

26.數據模型數據模型

27.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數組中前面兩項的和賦值給數組當前元素,得到a的值應為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數組中的元素以每行2個的形式輸出。

28.扇出扇出解析:在結構圖中,調用一個給定模塊的模塊個數稱為扇入,一個模塊直接調用的其他模塊個數稱為扇出。

29.1234123.512345.51234,123.5,12345.5解析:在primf()函數的格式控制符中:'%2d'表示輸出一個有符號整數,如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的a按原樣輸出為1234:'%2.1尸表示輸出一個單精度實數,只輸出小數點后1位,后面若有小數則四舍五入,如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的b四舍五入到小數點后1位再輸出為123.5;'%2.11f'除了表示輸出一個雙精度實數外,其余參數和'%2.1f'一樣。所以本題中的c四舍五入到小數點后1位再輸出為12345.5。故輸出結果是:1234,123.5,12345.5。

30.s[i]<'0'‖s[i]>9或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))isdigit(s[i])==0或s[i]>'9'‖s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'!(*(s+i)<='9'&&*(s+i)>='0'或iss[i]<'0'‖s[i]>9,或\r\n!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))\r\nisdigit(s[i])==0或s[i]>'9'‖s[i>'0'或\r\n!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或\r\n!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或\r\n*(s+i)>='9'&&*(s+i)<='0'\r\n!(*(s+i)<='9'&&*(s+i)>='0'或is解析:本題考核的知識點是字符指針變量作為函數的參數以及與字符串有關的算法。從一個字符串中刪除某字符的方法是從字符串的第一個字符開始一一判斷該字符是否是要刪除的字符,若不是則把它放到結果字符串中,若是則不放入結果字符串中。本題的第一個空應判斷a[i]是否為數字字符,只有在不是數字字符的情況下才存入結果字符串,所以應填入s[i]<'0'‖s[i]>'9'。最后應在結果字符串的末尾填上字符串結束標志“\\0”。

31.22解析:考查基本表達式的計算,“%”運算符的功能是取余。題中條件s=8,則s%3=2,(s+1)%3=9%3=0,所以表達式s%3+(s+1)%3=2+0=2。

32.j++a[i]>a[j]或a[j]<a[i]j++\r\na[i]>a[j]或a[j]<a[i]解析:題目要求排序的元素是下標值為偶數的元素,外循環(huán)循環(huán)4次,i的值分別為0、2、4、6,所以內循環(huán)也循環(huán)4次,i的值就應為2、4、6、8,在循環(huán)體中已經有了對j加1的操作,因此for后括號中的語句應再對j加1,保證下標為偶數。if語句的功能是如果后一個數比前一個數小則交換位置。

33.n%base[d]

34.00解析:函數getchar()是從鍵盤得用戶輸入的一個字符。用戶輸入的第1個字符a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。

35.-24-24解析:本題考查賦值運算符a+=b等價于a=a+b;a-=a*a等價于a=a-a*a=4-4*4=-12;a+=a,即a=a+a=-24。

36.8888解析:C語言規(guī)定,以0開頭的整型常量為八進制。另外,在primf()函數中,%X表示以十六進制無符號形式輸出一個整數,且十六進制中的ABCDEF為大寫字母。本題的輸出應該是八進制210的十六進制形式。將八進制轉換為十六進制,可以先將其轉換為二進制。因為1位八進制表示3位二進制,4位二進制表示1位十六進制。(210)8=(10001000)2=(88)16,故本題輸出為880

37.1515解析:程序的功能是求1、2、3、4、5的和即15。

38.1212解析:字符類型的數據在內存中以相應的ASCII碼存放,在C語言中,字符數據可以等價為與其相應的ASCII碼的整數,還可以作為整數參加運算。在本題中,n1=ch1-'0'='1-'0'=49-48=1,n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后輸出為12。

39.morningclassmorningclass解析:本題考查了兩個知識點:①“++,--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當n='c'時,執(zhí)行“case'c'”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結果為morningclass。

40.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數為E=1/(n+1)(n-i+1)=n/2。

41.B解析:此題為數據庫的基本概念,可以對照辦工軟件的電子表格進行如下理解:選擇:我們根據某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學生關系(學號,姓名,出生年月,性別),學號、姓名…都是屬性)選取一列或多列(一個二維表中所有元組在某一列或幾列上截取出來)。連接:2個或2個以上的表連接組成一張新的表,通常有條件連接。比如學生關系(學號,姓名,系號),又有一張系表(系號,系名,主任),2張表可以合并為一張這樣的表(學號,姓名,系號,系名,主任)。

42.A算法的有窮性,是指算法必須能在有限的時間內做完,即算法必須能在執(zhí)行有限個步驟之后終止。

43.B

44.D解析:觀察程序可知,a實際上就是數組a的首地址,所以“*(a+i)”表示的就是數組a中的第i個元素的值,進而,我們可以知道*(*(a+i))必然不是對a數組元素的正確引用。

45.C解析:結構體變量所占內存長度是各成員占內存長度之和,而共用體變量所占的內存長度等于最長的成員的長度。本題結構體變量a中成員c為整型占2個字節(jié),共用體變量u最大長度為4個字節(jié),故選C。

46.D

47.C在數據庫設計中,目前常用的數據模型主要有三種,分別是層次模型、網狀模型和關系模型。

層次模型是數據庫系統(tǒng)中最早出現(xiàn)的數據模型。我們通常把滿足以下兩個條件的數據模型稱為層次模型。

(1)有且僅有一個結點無雙親,這個結點稱為根結點。

(2)其他結點有且僅有一個雙親。

層次模型用樹形結構來表示各實體與實體間的聯(lián)系。實體是數據庫中數據描述的對象,可以是一個人、一種商品等。在層次模型中,每個結點表示一個記錄類型,記錄之間的聯(lián)系用結點之間的連線表示,這種聯(lián)系是父子之間一對多的聯(lián)系。記錄就是描述實體的相關數據。

如果取消層次模型中的兩個限制,即允許一個以上的結點無雙親,則每一個結點可以有多個父結點,便形成了網狀。我們把網狀表示實體之間聯(lián)系的模型稱為網狀模型。

關系模型用表格形式表示實體類型及其實體間的聯(lián)系。關系模型是目前最重要的一種模型,它是建立在嚴格的數學概念的基礎上的,具有最堅實的理論基礎。關系模型的基本數據結構是二維表,每一張二維表稱為一個關系。

48.A解析:本題主要考查按位與運算,x=011050的二進制形式為000100100010t000,01252的二進制形式為0000001010101010,兩者相與得0000001000101000。

49.A

50.D解析:棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂的元素,即剛剛被插入的元素,所以棧也被稱為“先進后出”表或“后進先出”表。

51.A解析:選項A)正確,外模式是用戶的數據視圖,也就是用戶所見到的數據模式;選項B)不正確,全局數據視圖的描述稱為概念模式,即數據庫中全部數據的整體邏輯結構的描述;選項C)不正確,物理存儲數據視圖的描述稱為內模式,即數據庫在物理存儲方面的描述;選項D)不正確,存儲模式即為內模式。

52.D解析:八進制中,不可能包括8以上的數字,它的范圍只在07之間,以0開頭。同樣,十六進制是以0x開頭,數字在0~9和A~F之間。

53.A解析:題中a1和a2兩個結構體變量名所對應的成員相同,可以與運算'++'相結合。結構體變量的輸出格式:prinf('要輸出變量名:%d\\t',結構變量名.要輸出的成員變量名)。

54.A解析:題面中各變量定義后,指針變量p指向了變量n2所在的存儲單元,指針變量q指向了變量n1所在的存儲單元,要使得n1的值賦n2,可用指針變量q所指向的存儲單元的值賦給指針變量p所指向的存儲單元,即*p=*q。

55.D

56.B解析:在計算機中,對于輸入輸出均采用數據流的形式。文件按照存取方式分為順序存取文件和隨機存取文件。按照存儲形式分為二進制文件和文本文件。文本文件存儲的是一個ASCII碼,文件的內容可以直接進行輸入輸出。二進制文件直接將字符存儲,不能將二進制文件的內容直接輸出到屏幕上。所以,C語言所能夠處理文件是按照存放形式分為文本文件和二進制文件。

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

58.C解析:本題考核的知識點是數組中元素地址的表示方法。在C語言中:數組的地址和數組中的第一個元素的地址相同。數組中第一個元素地址的表示方法為&aa[0],與其等價的有&aa[0]++,所以選項C不正確的;選項A為數組的第1個元素的地址下移一位即是第二個元素aa[1]的地址;B也為數組的第二個元素的地址,選項D中aa表示數組的地址,加1表示數組首地址后移一位,即代表數組元素中的第二個元素aa[1]的地址。所以,4個選項中C為所選。

59.C解析:考查通過指針引用字符串數組中的元素。通過行指針p來實現(xiàn)數組元素的引用。用格式說明符%s進行整串輸入與輸出。

60.B

61.A

62.A本題的考查點是帶參數的宏定義。本題的程序中就定義了一個帶參數的宏,對F(a++,b++)進行展開后,宏的返回值為12,注意a++,b++都是先使用變量值,再自增。

63.C在輸入3和5之間除逗號外不能有其他字符。

64.C內聚按強度從低到高有以下幾種類型:

(1)偶然內聚,如果一個模塊的各成分之間毫無關系,則稱為偶然內聚,也就是說模塊完成一組任務,這些任務之間的關系松散,實際上沒有什么聯(lián)系。(2)邏輯內聚,幾個邏輯上相關的功能被放在同一模塊中,則稱為邏輯內聚。如一個模塊讀取各種不同類型外設的輸入。盡管邏輯內聚比偶然內聚合理一些,但邏輯內聚的模塊各成分在功能上并無關系,即使局部功能的修改有時也會影響全局,因此這類模塊的修改也比較困難。(3)時間內聚,如果一個模塊完成的功能必須在同一時間內執(zhí)行(如系統(tǒng)初始化),但這些功能只是因為時間因素關聯(lián)在一起,則稱為時間內聚。

(4)過程內聚,如果一個模塊內部的處理成分是相關的,而且這些處理必須以特定的次序執(zhí)行,則稱為過程內聚。

65.C

\nelse與離它最近的if構成if…else語句,而當a為2時,第一個if語句不成立,因此什么也不做,即c的值仍然為2,故選擇C選項。

\n

66.C循環(huán)的作用是將輸入的字符串轉化為大寫,9etchar()每次讀入一個字符

溫馨提示

  • 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

提交評論