2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.對矩陣進行壓縮存儲是為了()。

A.方便運算B.方便存儲C.提高運算速度D.減少存儲空間

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

A.順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈式存儲結(jié)構(gòu)的存儲空間不一定是連續(xù)的

B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈式存儲結(jié)構(gòu)只針對非線性結(jié)構(gòu)

C.順序存儲結(jié)構(gòu)能存儲有序表,鏈式存儲結(jié)構(gòu)不能存儲有序表

D.鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間

3.允許對隊列進行的操作有()。

A.對隊列中的元素排序B.取出最近進隊的元素C.在隊頭元素之前插入元素D.刪除隊頭元素

4.在一個長度為n(n>1)的單鏈表上,設(shè)有頭和尾兩個指針,執(zhí)行()操作與鏈表的長度有關(guān)。

A.刪除單鏈表中的第一個元素

B.刪除單鏈表中的最后一個元素

C.在單鏈表第一個元素前插入一個新元素

D.在單鏈表最后一個元素后插入一個新元素

5.高度為h的滿二叉樹的結(jié)點數(shù)是________個。

A.log2h+1B.2h+1C.2h-1D.2h-1

6.關(guān)于結(jié)構(gòu)化程序設(shè)計原則和方法的描述錯誤的是()。

A.選用的結(jié)構(gòu)只準許有一個入口和一個出口

B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)

C.不允許使用GOTO語句

D.語言中若沒有控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

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

A.可以給指針變量賦一個整數(shù)作為地址值

B.函數(shù)可以返回地址值

C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值

D.當程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值

8.下列關(guān)于數(shù)據(jù)結(jié)構(gòu)的敘述中,正確的是()。

A.數(shù)組是同類型值的集合

B.遞歸算法的程序結(jié)構(gòu)比迭代算法的程序結(jié)構(gòu)更為精煉

C.樹是一種線性結(jié)構(gòu)

D.用一維數(shù)組存儲二叉樹,總是以先序遍歷的順序存儲各結(jié)點

9.以下選項中錯誤的是()。A.printf(“%s\n”,‘s’);

B.printf“%d%c\n”,‘s’,‘s’);

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

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

10.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是()。

A.隨機值B.0C.5D.6

11.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運行后的輸出結(jié)果是(選項D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No

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

A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時,實參和對應(yīng)形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量

13.有如下定義:structperson{charname[9];intage;}structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};能輸出字母M的是()

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[1]);

D.printf("%c\n",class[2].name[0]);

14.下面判斷正確的是

A.char*a="china";等價于char*a;*a="china";

B.charstr[5]={"china"};等價于charstr[]={"china"};

C.char*s="china";等價于char*s;s="china";

D.charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";

15.設(shè)有以下定義則下面語句中錯誤的是()。A.a++;B.b++C.c++;D.d++;

16.設(shè)無向圖的頂點數(shù)為n,則該圖最多有()條邊。

A.n-1B.n(n-1)/2C.n(n+1)/2D.0

17.下面合法的C語言字符常量是()。

A.'\t'B."A"C.65D.A

18.

19.下列程序執(zhí)行后的輸出結(jié)果是()。main{charx=0xFFFF;printf("%d\n",x--);}A.-32767B.FFFEC.1D.32768

20.在10000個int型變量中找出最大的100個,使用下列排序算法中哪一種用時最快()

A.冒泡排序B.快速排序C.歸并排序D.堆排序

二、2.填空題(20題)21.若從鍵盤輸入58,則以下程序輸出的結(jié)果是______。

main{)

{inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

22.若a的值為1,則表達式!a‖++a的值是______。

23.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。

24.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。

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

main()

{inti=010,j=10;

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

26.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inti=10,j=0;do{j=j+i;i--;}while(i>5);printf("%d\n",j);}

27.當先后輸入1、3、4、12、23時,屏幕上出現(xiàn)【】;再輸入12時,則屏幕上出現(xiàn)【】。

#include<stdio.h>

#defineN5

main()

{inti,j,number,top,bott,min,loca,a[N],flag;

charc;

printf("Pleaseinput5numbers(a[i]>a[i-1])\n");

scanf("%d",&a[0]);

i=1;

while(i<N)

{scanf("%d",&a[i]);

if(a[i]>=a[i-1))i++;

}

printf("\n");

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

printf("\n");

flag=1;

while(flag)

{scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((number<a[0])||(number>a[N-1]))loca=-1;

while((loca==0)&&(top<=bott))

{min=(bott+top)/2;

if(number==a[min])

{loca=min;

printf("%disthe%dthnumber\n",number,loca+1);

}

elseif(number<a[min])bott=min-1;

elsetop=min+1;

}

if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);

c=getchar();

if(c=='N'||c=='n')flag=0;

}

}

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

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

p=S;q=p->next;r=q->next;

sum+=q=>next->num;sum+=r->next->next->num;

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

#include<conio.h>

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0‖i%11==0)

a[j++]=i;

*n=j;}

main()

{intaa[M],n,k;

clrscr();

fun(10,aa,&n);

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

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");}

30.程序的功能是將文件filel.c的內(nèi)容輸出到屏幕上并復(fù)制到文件file2.c中,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE【】;

fp1=fopen("filel.c","r");

fp2=fopen("file2.c","w");

while(!feof(fp1))putchar(getc(fp1));

rewind(fp1);

while(!feof(fp1))putc(【】);

fclose(fp1);

fclose(fp2);

}

31.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實現(xiàn)的。

32.軟件定義時期主要包括______和需求分析兩個階段。

33.棧的3種基本運算是:入棧、退棧和______。

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

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

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

main()

{char*p-"abcdefgh",*r;

long*q;

q=(long*)p;

q++;

r=[char*)q;

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

}

37.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

38.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

39.一個模塊直接訪問另一個模塊的內(nèi)容,稱為【】藕合。

40.與結(jié)構(gòu)化需求分析方法相對應(yīng)的是【】方法。

三、1.選擇題(20題)41.有以下程序:#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序運行后的輸出結(jié)果是______。

A.64,28B.4,4C.4,3D.64,64

42.若有以下定義和語句;doubler=99,*p=7;*p=r;則以下正確的敘述是()

A.兩處的*p含義相同,都說明給指針變量P賦值3

B.在“doubler=99,*p=7;*p=r;”中,把r的地址賦給了p所指的存儲單元

C.語句“*p=r;”把變量r的值賦給指針變量p

D.語句“*p=r;”把變量r的值放回P中

43.為了使模塊盡可能獨立,要求()。

A.內(nèi)聚程度要盡量高,耦臺程度要盡量強

B.內(nèi)聚程度要盡量高,耦合程度要盡量弱

C.內(nèi)聚程度要盡量低,耦合程度要盡量弱

D.內(nèi)聚程度要盡量低,耦合程度要盡最強

44.以下程序段的輸出結(jié)果是()。inta=1234;printf("%2d\n",a);

A.12B.34C.1234D.提示出錯,無結(jié)果

45.下列敘述中,不符合良好程序設(shè)計風(fēng)格要求的是()

A.程序的效率第一,清晰第二B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息

46.以下不正確的定義語句是()。

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={O,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

47.下面的程序段運行后,輸出結(jié)果是inti,j,x=0;staticinta[8][8];for(i=0;i<3;i++)for(j=0;j<3;j++)a[i][j]=2*i+j;for(i=0;i<8;i++)x+=a[i][j];printf("%d",x);

A.9B.不確定值C.0D.18

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

A.'A'<=c1<='Z'

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

C.('A'>=c1)||('Z'<=c1)

D.(c1>='A')&&(c1<='Z')

49.有以下程序#include<stdio.h>main(){intk=5,n=0;while(k>0){switch(k){defhult:break;case1:n+=k:case2:case3:n+=k;}k--;}printf("%d\n",n);}程序運行后的輸出結(jié)果是()

A.0B.4C.6D.7

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

對此二叉樹先序遍歷的結(jié)果是

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

51.若變量已正確定義,要求程序段完成求51的計算,不能完成此操作的程序段是

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5)

52.設(shè)有如下3個關(guān)系表:

下列操作中正確的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

53.下列程序執(zhí)行后的輸出結(jié)果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

A.6B.7C.8D.9

54.以下敘述正確的是

A.函數(shù)可以嵌套定義但不能嵌套調(diào)用

B.函數(shù)既可以嵌套調(diào)用也可以嵌套定義

C.函數(shù)既不可以嵌套定義也不可以嵌套調(diào)用

D.函數(shù)可以嵌套調(diào)用但不可以嵌套定義

55.完整的計算機存儲器應(yīng)包括______。

A.軟盤、硬盤B.磁盤、磁帶、光盤C.內(nèi)存儲器、外存儲器D.RAM、ROM

56.設(shè)有以下定義和語句,輸出的結(jié)果是(用small模式編譯,指針變量占2個字節(jié))______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));

A.20B.16C.14D.12

57.下列說法中,正確的是______。

A.指針是一個變量B.指針中存放的可以是任何類型的值C.指針變量是變量地址D.指針變量占用存儲空間

58.下列敘述中正確的是A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鏈表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

59.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。

A.0,7B.7,7C.0,6D.1,6

60.以下不正確的定義語句是()。

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5.3]={0,1,3,5,7,9};

C.charc\[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

四、選擇題(20題)61.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

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

B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

62.下列字符數(shù)組初始化語句中,不正確的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d');

D.charc[]={"ffgoodmorning"};

63.

64.若有定義inta[2][3];,則對a數(shù)組的第i行第j列(假設(shè)i,j已正確說明并賦值.元素值的正確引用為()。

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

65.

66.

67.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta=3,b=2,c=1;if(a<b)if(b<0)c=0;elsec++:printf("%d\n",c);}A.2B.0C.1D.不確定的值

68.

69.

70.

71.

72.(23)在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為______。

A.32

B.31

C.16

D.15

73.

74.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。

A.EOFB.-lC.非零值D.0

75.設(shè)有定義:charp[]={1,2,3),*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

76.

77.

78.運算符________的優(yōu)先級最高。

A.[]B.+=C.?:D.++

79.在下列語句中,其含義為“q是一個函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

80.在調(diào)用函數(shù)時,如果實參是簡單的變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是

A.地址傳遞B.單向值傳遞

C.由實參傳形參,再由形參傳實參D.傳遞方式由用戶指定

五、程序改錯題(1題)81.已知一個數(shù)列從0項開始的前3項為0,0,1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數(shù)proc的功能是:計算并輸出該數(shù)列前n項的和sum。n的值通過形參傳人。例如,當n=20時,程序的輸出結(jié)果應(yīng)為42762.000000。

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

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

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

doubleproc(intn)

{

doublesum,s0,s1,s2,s;

intk;

sum=1.0;

if(n<=2)

sum=0.0;

s0=0.0;

s1=0.0;

s2=1.0;

//****found****

for(k=4;k<n;k++)

}

{

s=s0+s1+s2;

sum+=S:

s0=s1;

s1=s2;

//****found****

s2=s;

returnsum;

}

voidmain

{

intn;

system("CLS");

printf("InputN=");

scanf("%d",&nJ;

printf("%f\n",proc(n));

}

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將str所指字符串中ASCⅡ值為偶數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為aBcdef9789,其中字符8的ASCⅡ碼值為偶數(shù)……字符8的ASCⅡ碼值為偶數(shù)……都應(yīng)當刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是ace979。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D

2.A解析:順序存儲結(jié)構(gòu)就是用一組地址連續(xù)的存儲單元依次存儲該線性表中的各個元素,鏈式存儲結(jié)構(gòu)中各數(shù)據(jù)結(jié)點的存儲序號是不連續(xù)的,并且各結(jié)點在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致,所以選項A是正確的。兩者都可以存儲線性的、有序的邏輯結(jié)構(gòu),所以選項B、C不正確。順序結(jié)構(gòu)使用的是連續(xù)物理空間,鏈式結(jié)構(gòu)可以使用零散的物理空間存儲,鏈式結(jié)構(gòu)更靈活,不存在誰節(jié)約空間的說法,所以選項D不正確。

3.D

4.B

5.C

6.C結(jié)構(gòu)化程序設(shè)計的原則和方法之一是限制使用GOT0語句,但不是絕對不允許使用GOT0語句。其他三項為結(jié)構(gòu)化程序設(shè)計的原則。

7.A不能將一個整數(shù)直接賦給指針變量作為地址值,A選項錯誤。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實參。故本題答案為A選項。

8.B

9.A%d表示以字符和整型類型的格式輸出,%c表示以字符類型的格式輸出,%s表示以字符串類型的格式輸出。選項A中,‘s’是字符,不能用%s格式來輸出。故本題答案為A選項。

10.B解析:通過賦值語句“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中的spl等價于*(s+2),即x[5]值為0。所以,B選項為所選。

11.B本題考核的知識點是puts()函數(shù)的應(yīng)用。主函數(shù)中定義了一個字符數(shù)組s并賦初值,一個字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個元素的地址,而調(diào)用put(str_adr)函數(shù)時,將從str_adr這一地址開始,依次輸出存儲單元中的字符,遇到第一個“\\0”時結(jié)束輸出,并自動輸出一個換行符。所以put(p++4)將輸出n/No,put(s)將從s第一個元素開始輸出到第3個元素結(jié)束(因為執(zhí)行*(p4)c0語句后s中的第5個元素的值為0,而s中的第4個元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。所以,4個選項中選項B符合題意。

12.C解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。

13.D

14.C解析:選項A)char*a;*a=“china”應(yīng)改為a=china;,選項B)應(yīng)該是charstr[6];D)項表述方法有錯誤。

15.D

16.B

17.A

18.D

19.C因為x=0xFFFF=11111111,因此當以整型形式輸出時對應(yīng)的數(shù)為一1。

20.B

21.585858585858解析:在程序中,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個訂語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>4O,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。

22.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

23.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。

24.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

25.8108,10解析:以0開頭的是八進制數(shù),輸出時將其轉(zhuǎn)換成十進制數(shù)。

26.4040解析:分析程序,初始時i=10,j=0,這時do循環(huán)中的“i=j+i”

27.134122312isthe4thnumber.

28.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點連接成了一個循環(huán)鏈表,即最后一個結(jié)點的指針域指向了頭結(jié)點,整個鏈表形成了一個環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點。

29.77解析:解答本題的關(guān)鍵是要讀懂程序,要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“‖”運算符,若要找能同時被7和11整除的所有整數(shù)則在if的條件中應(yīng)使用“&&”運算符。

當然,如果m的值輸入50,即表達式fun(10,aa,&n);為fun(50,aa,&n);時輸入結(jié)果為:711142122283335424449。

30.*fp1*fp2getc(fp1)fp2*fp1,*fp2\r\ngetc(fp1),fp2解析:本題主要考查函數(shù)intputc(intch,FILE*fp)的功能,把ch中的字符輸出到fp所指文件,以及intgetc(FILE*fp),從fp所指文件中讀取一個字符。

31.封裝封裝

32.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用及維護等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計、實現(xiàn)和測試;③軟件運行維護階段:交付使用和維護。

33.讀棧頂元素讀棧頂元素解析:棧的基本運算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個新的元素;退棧是指取出棧頂元素并賦值給一個變量;讀棧頂元素是將棧頂元素賦值給一個指定的變量,不刪除棧頂元素。

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

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

36.efghefgh解析:本題定義了一個字符型指針變量p并通過賦初值讓它指向了一個字符串,定義了另一個字符型指針變量r和一個長整型指針變量q。首先通過語句“q=(long*)p;”把P的地址值強制轉(zhuǎn)換為長整型地址值并賦值給q,然后執(zhí)行“q++;”,地址值增加了4,執(zhí)行語句“r=(char*)q”,把長整型指針變量q的值再強制轉(zhuǎn)換成字符型地址值并賦給r,r的值應(yīng)為字符串中字符“e”的地址,最后輸出r指向的字符串,是“efgh”。

37.t*10t*10解析:程序中變量,用于存放表達式1+12+123+1234+12345之和,變量t用于存放其表達式的各項。當i=1時,要使t=1;i=2時,t=12;i=3時,t=123;依此類推。每一次的t值是用上一次的t乘以10再加上此次的i的值,所以本題答案為t*10。

38.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

39.內(nèi)容內(nèi)容

40.結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計解析:與結(jié)構(gòu)化需求分析方法相對應(yīng)的是結(jié)構(gòu)化設(shè)計方法。結(jié)構(gòu)化設(shè)計就是采用最佳的可能方法設(shè)計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術(shù)。

41.C解析:根據(jù)題意,il=f(8)/f(4)進行宏替換后.i1=(8*8)/(4*4)=4,i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3。所以輸出結(jié)果為4、3。

42.D

43.B

44.C解析:在C語言中,對于不同類型的數(shù)據(jù)用不同的格式字符,其中,“%d”是按整型數(shù)據(jù)的實際長度輸出,“%md”中,m為指定的輸出字段的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補以空格,若大于m,則按實際位數(shù)輸出。注意:格式輸入函數(shù)scanf的使用。

45.A解析:本題考查軟件工程的程序設(shè)計風(fēng)格。軟件在編碼階段,力求程序語句簡單、直接,不能只為了追求效率而使語句復(fù)雜化。除非對效率有特殊的要求,程序編寫要做到清晰第一、效率第二。

人們在軟件生存期要經(jīng)常閱讀程序,特別是在軟件測試和維護階段,編寫程序的人和參與測試、維護的人都要閱讀程序,因此要求程序的可讀性要好。

正確的注釋能夠幫助讀者理解程序,可為后續(xù)階段進行測試和維護提供明確的指導(dǎo)。

所以注釋不是可有可無的,而是必須的,它對于理解程序具有重要的作用。

I/O信息是與用戶的使用直接相關(guān)的,因此它的格式應(yīng)當盡可能方便用戶的使用。在以交互式進行輸入/輸出時,要在屏幕上使用提示符明確提示輸入的請求,指明可使用選項的種類和取值范圍。經(jīng)過上述分析可知,選項A是不符合良好程序設(shè)計風(fēng)格要求的。

46.B解析:選項B中初值列表中的初值個數(shù)超過了數(shù)組包含的元素的個數(shù)。

47.C解析:本題主要考查的用二維數(shù)組首地址和下標來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:

由于數(shù)組的下標是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。

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

49.D解析:因為沒有break語句,當k=2的時候,會順序執(zhí)行兩條語句,k=1的時候,會順序執(zhí)行3條語句。

50.C解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷遍歷順序應(yīng)該為:訪問根結(jié)點->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF。

51.B解析:本題考核的知識點是C語言在生活中的簡單應(yīng)用。選項B中for循環(huán)了5次,而每次循環(huán)的時候,都將p的值重新賦值為1后,再乘以當前數(shù)字i,最后的結(jié)果為5,顯然不是51的值,同樣的分析可知選項A、選項C和選項D計算的都是5!。所以,4個選項中選項B符合題意。

52.C解析:R表中只有一個域名A,有兩個記錄,分別是m和n;s表中有兩個域名,分別是B和C,其所對應(yīng)的記錄分別為1和3。表T是由R的第一個記錄依次與s的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運算符合關(guān)系代數(shù)的笛卡爾積運算規(guī)則。關(guān)系代數(shù)中,笛卡爾積運算用“×”來表示。因此,上述運算可以表示為T=R×S。

53.A解析:函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù),還可以是指針型。它的作用是將一個變量的地址傳遞到另一個函數(shù)中。當數(shù)組名作參數(shù)時,如果形參數(shù)組中的各元素的值發(fā)生變化,實參數(shù)組元素的值也將隨之發(fā)生變化。

54.D解析:在C語言中,所有的函數(shù)都是平行的,即在定義函數(shù)時是互相獨立的,一個函數(shù)并不從屬于另一個函數(shù),即函數(shù)不能嵌套定義,但可以互相調(diào)用,但不能調(diào)用main函數(shù)。注意:函數(shù)不能嵌套定義,但可以嵌套調(diào)用,故選項A)、B)和C)中的描述都錯誤。

55.C

56.D解析:sizeof函數(shù)計算已知類型所占的字節(jié)數(shù)。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。指針變量占2個字節(jié),所以cat和*next各占2個字節(jié);double型占8個字節(jié),故too共占12個字節(jié)。

57.D解析:指針是地址,存放指針的變量是指針變量,不同類型的指針變量存放不同類型數(shù)據(jù)的地址,指針變量作為可存儲指針的變量,也要占用一定的存儲空間。

58.A根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件:1,有且只有一根節(jié)結(jié)點,2,每一個結(jié)點最多有一個前件,也最多有一個后件,則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

59.A解析:本題考查while循環(huán).y的值在while循環(huán)的控制表達式中加1,在循環(huán)體內(nèi)減1,所以總的y值不變,且控制條件++y永遠非零。當x加到7時不滿足循環(huán)條件,結(jié)束循環(huán)。

60.B解析:在一維數(shù)組中要注意的是下標常量表達式的值必須是大于等于零,并且小于自身元素的個數(shù),選項B)的下標不是整數(shù),所以錯誤。

61.D解析:軟件需求規(guī)格說明書

溫馨提示

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

最新文檔

評論

0/150

提交評論