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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.下列程序的輸出結(jié)果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112

2.有以下程序:#includeMain(){intb[3][3]={0.1,2.0,1,},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

3.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。

A.CB.BasicC.DDLD.DML

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

A.向量屬于線性結(jié)構(gòu)B.二叉鏈表是二叉樹的存儲結(jié)構(gòu)C.棧和隊列是線性表D.循環(huán)鏈表是循環(huán)隊列的鏈式存儲結(jié)構(gòu)

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

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

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

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

D.C函數(shù)定義的格式是K&R格式

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

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

7.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

8.下列合法的聲明語句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

9.

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

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

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

C.程序調(diào)試通常也稱為Debug

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

11.有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf(“%d\n”,m);}intf(intx){returnx*2;}程序的運行結(jié)果是()。

A.8B.2C.4D.1

12.一個棧的輸入序列為123…n,若輸出序列的第一個元素是n,輸出第i(1<=i<=n)個元素是()

A.不確定B.n-i+1C.iD.n-i

13.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應填入的是()。

A.i-1B.iC.i+1D.4一i

14.下列可用于C語言用戶標識符的一組是

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

15.對于函數(shù)聲明“voidfun(intarray[4],int*ptr);”,以下敘述中正確的是()。

A.array、ptr都是指針變量

B.調(diào)用fun函數(shù)時,實參的值將逐一復制給array

C.調(diào)用fun函數(shù)時,array按值傳送,ptr按地址傳送

D.array是數(shù)組,ptr是指針,它們的性質(zhì)不同

16.C語言函數(shù)中未指定存儲類的變量,其隱含類別是()

A.autoB.staticC.registerD.void

17.一個有n個頂點的連通無向圖至少有()條邊。

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

18.在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖

19.

20.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];

B.intN=10;intx[N];

C.int:x[0.10];

D.intx[];.

二、2.填空題(20題)21.若a是血型變量,則表達式(a=2*3,a*2),a+6的值為______。

22.執(zhí)行下列程序的輸出結(jié)果是【】。

main()

{

floata=1,b;

b=++a*++a;

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

}

23.若a=10,b=20,則表達式!(a<b)的值是【】。

24.成本估算模型中,Putnam估算模型是一種【】模型。

25.在面向?qū)ο蟮姆椒ㄖ校琠_____描述的是具有相似屬性與操作的一組對象。

26.下面程序執(zhí)行后輸出的結(jié)果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

27.在面向?qū)ο蠓椒ㄖ校瑢傩耘c操作相似的一組對象稱為【】。

28.算法的復雜度主要包括【】復雜度和空間復雜度。

29.在先左后右的原貝嚇,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、【】遍歷和后序遍歷。

30.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當字符串是回文時,函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda。請?zhí)羁铡?/p>

#include<string.h>

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=【】;

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--){t=1;bteak;}

if(【】)return("yes!");

elsereturn("no!");

}

main()

{charsb[50];

printf("Input:");scanf("%s",str);

ptintf("%s\n",【】);

}

31.為了建立如圖所示的存儲結(jié)構(gòu)(即每個結(jié)點含兩個域,data是數(shù)據(jù)域,next是指向結(jié)點的指針域)。請?zhí)羁铡?/p>

structlink{chardata;【】;}node;

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

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

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

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

printf("\n");}

33.以下程序用于判斷a,b,c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當給a,b,c輸入三角形三條邊長時,確定a,b,c能構(gòu)成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*a.b.c能構(gòu)成三角形*/

elseprinff("NO\n");/*a.b.c不能構(gòu)成三解形*/

}

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

fun(intx,inty,intz)

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

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

35.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次放到該文

件中,用井作為結(jié)束輸入的標志。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if((fp=【】)==NULL)

{printf("Cannotope\n");exit(O);}

printf("Enterdata\n");

while((ch=getchar())!='#')

fputc(【】,fp);

fclose(fp);

}

36.以下函數(shù)creat用來建立一個帶頭結(jié)點的單向鏈表,新產(chǎn)生的結(jié)點是插在鏈表頭的

末尾。單向鏈表的頭指針作為函數(shù)值返回。請?zhí)羁铡?/p>

#include<stdio.h>

structlist

{chardata;

structlist*next;

};

structlist*creat;

{structlist*h,*p,*q;

charch;

h=(【】)malloc(sizeof(structlist));

p=q=h;

ch=getchar();

while(ch!='?')

{p=(【】)mallco(sizeof(structlist));

p->data=ch;

q->next=p;

q=p;

ch=getchar();

}

p->next='\0';

【】;

}

37.函數(shù)sstrcmp的功能是對兩個字符串進行比較。當s所指字符串和t所指字符串相等時,返回值為0;當s所指字符串大于t所指字符串時,返回值大于0;當s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp)。請?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{while(*s&&*t&&*s==【】)

{s++;t++;}

return【】;

}

38.算法的復雜度主要包括時間復雜度和______復雜度。

39.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下

1

11

121

1331

14641

其構(gòu)成規(guī)律是:

(1)第0列元素和主對角線元素均為1

(2)其余元素為其左上方和正上方元素之和

(3)數(shù)據(jù)的個數(shù)每行遞增1

請將程序補充完整。

#defineN6

voidYangHui(intx[N][N])

{inti,j;

x[0][0]=1;

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

{x[i][0]=【】=1;

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

x[i][j]=【】;

}

}

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

main()

{

chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

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

if(*p1+k)==*{p2+k))

printf("%c",*(p1+k));

}

三、1.選擇題(20題)41.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]:a[j];a[j]=t;}}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},ifun(c+4

A.1,2,3,4,5,6,7,8,9,0,

B.0,9,8,7,6,5,1,2,3,4,

C.0,9,8,7,6,5,4,3,2,1,

D.1,2,3,4,9,8,7,6,5,0,

42.源程序的文檔化不包括()。

A.符號名的命名要有實際意義B.正確的文檔形式C.良好的視覺組織D.正確的程序注釋

43.對表進行水平方向和垂直方向的分割,分別對應的關(guān)系運算是()

A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接

44.C語言中,能識別處理的文件是()。

A.文本文件和數(shù)據(jù)塊文件B.文本文件和二進制文件C.流文件和文本文件D.數(shù)據(jù)文件和二進制文件

45.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

46.一個源文件中的外部變量的作用域為()。

A.本文件的全部范圍B.本程序的全部范圍C.本函數(shù)的全部范圍D.從定義該變量的位置開始到本文件結(jié)束

47.下面函數(shù)的功能是()。sss(s,t)char*s,*t;{while(*s);while(*t)*(s++)=*(t++);returns;}

A.將字符串s復制到字符串t中B.比較兩個字符串的大小C.求字符串的長度D.將字符串t續(xù)接到字符串s中

48.有以下程序:#include<stdio.h>main(){charc[6];inti=0;for(;i<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i];printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結(jié)果為______。

A.abcdefB.abcdC.abcdD.abcdef

49.下面程序的輸出結(jié)果是#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*p+9);}

A.0B.1C.10D.9

50.下列程序段選擇項,使i的運行結(jié)果為3的程序段是()。

A.inti=0,j=O;(i=2,(j++)+i);

B.inti=1,j=0;j=i=((i=3)*2);

C.inti=0,j=1;(j=1)?(i=1):(i=3);

D.inti=1,j=1;i+=j+=1;

51.在“文件包含”預處理語句的使用形式中,當#include后面的文件名用"",(雙撇號)括起時,尋找被包含文件的方式是()。

A.直接按系統(tǒng)設(shè)定的標準方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標準方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當前目錄

52.下列程序語句中,不正確的是______。

A.maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}intadd(floatx,floaty){……}

B.main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}

C.floatadd()maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}

D.floatadd(floatx,floaty){……}main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}

53.表達式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8

54.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

55.設(shè)有以下程序段:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'),*p;p=&a[0];下面選項中,其值為6的表達式為______。

A.P++->nB.p->n++C.(*p).n++D.++p->n

56.設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為______。

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

57.在一棵二叉樹上第5層的結(jié)點數(shù)最多是______。

A.8B.16C.32D.15

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

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

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

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

60.下面是對宏定義的描述,不正確的是______。

A.宏不存在類型問題,宏名無類型,它的參數(shù)也無類型

B.宏替換不占用運行時間

C.宏替換時先求出實參表達式的值,然后代入形參運算求值

D.宏替換只不過是字符替代而已

四、選擇題(20題)61.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。

62.

63.第

15

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

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

64.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[o][1]+a[1][1]+a[1][2]);}A.8B.7C.12D.9

65.

66.源程序的文檔不包括()。

A.符合號名的命名要有實際意義B.正確的文檔形式C.良好的視覺組織D.正確的程序注釋

67.

68.

69.

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

A.1,2,3,1,5,9,

B.1,3,5,1,3,5,

C.1,3,5,0,d,8,

D.1,3,5,-1,3,7,

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

printf("%d,%d\n",a,b);}A.A.6,1B.2,1C.6,0D.2,0

72.以下描述錯誤的是

A.C程序中,函數(shù)可以直接或間接調(diào)用自己

B.函數(shù)調(diào)用時,函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致

C.函數(shù)說明語句中的類型必須與函數(shù)返回值的類型一致

D.實參個數(shù)可以與形參個數(shù)不一致

73.

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

A.6,4,3,2B.6,2,l,l,C.1,1,2,6,D.2,3,1,6,

75.若有如下定義,則__________是對數(shù)組元素的正確的引用。.

inta[10],*p;p=a;

A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p

76.

77.下面程序的功能是輸出以下形式的金字塔圖案。

main()

{

inti,j;

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

{

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

printf("");

for(j=1;j<=______;j++)

printf("*");

printf("\n");

}

}

在下畫線處應填入的是

A.iB.2*i-1C.2*i+1D.i+2

78.有以下程序:

#include<stdioh>

voidmain()

{

charc1,c2,c3,c4,c5,c6;

c5=getchar();c6=getchar();

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第1列開始),則輸出結(jié)果是()。

123<回車>

45678<回車>

A.3B.1C.3D.3456

122345

79.

80.以下對C語言函數(shù)的有關(guān)描述中,正確的是()。

A.C函數(shù)可以遞歸調(diào)用也可以嵌套調(diào)用

B.在C中,調(diào)用函數(shù)時,只能把實參值傳給形參,形參值不能返回給實參

C.沒有返回值的函數(shù)不能被使用.

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。

例如,輸入opdye,則應輸出deopy。

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

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

試題程序:

#include%string.h>

#include%stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charC;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j4-+)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=C;

}

}

voidmain

{

charst/[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

printf("\nknBeforesorting:\n%s",str);

proc(str);

printf("\nAftersortingdecendingly:\n

%S",str);

}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。程序中將m個人的成績存放在score數(shù)組中,請編寫函數(shù)fun(),它的功能是將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分數(shù)放在below所指的數(shù)組中。例如,當score數(shù)組中的數(shù)據(jù)為10、20、30、40、50、60、70、80、90時,函數(shù)返回的人數(shù)應該是4,below中的數(shù)據(jù)應為10、20、30、40。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.C當執(zhí)行fun函數(shù)時,因為參數(shù)傳遞時是地址傳遞,因此形參值的改變會影響實參中的數(shù),在執(zhí)行fun函數(shù)時先輸出12,接著把*X賦3,*y賦4,此時帶回主函數(shù)中,輸出的值為34。

2.B

3.C解析:選項A)、選項B)顯然不合題意。數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)負責數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作。

4.D循環(huán)鏈表是線性表的一種鏈式存儲結(jié)構(gòu),循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)。因此D選項敘述錯誤。本題答案為D選項。

5.A解析:本題考查C語言的綜合基礎(chǔ)知識。構(gòu)成C程序的基本單位是函數(shù),一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何。C語言的函數(shù)定義都是互相平行、獨立的,在定義函數(shù)時,一個函數(shù)內(nèi)不能定義另一個函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。

6.D數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)則是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結(jié)構(gòu)。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構(gòu)只涉及到數(shù)據(jù)之間抽象的數(shù)學關(guān)系。存儲結(jié)構(gòu)則涉及到如何在計算機中通過對數(shù)據(jù)的物理存儲進行組織來表達數(shù)據(jù)元素之間的邏輯關(guān)系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數(shù)據(jù)的前后件關(guān)系;在線性表的鏈式存儲中是通過指針域構(gòu)成的邏輯鏈條來表達數(shù)據(jù)的前后件關(guān)系。一般的,一種數(shù)據(jù)的邏輯結(jié)構(gòu)對應的物理實現(xiàn),即數(shù)據(jù)的存儲結(jié)構(gòu)不止一種。因此選項D正確。

7.C本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過調(diào)用fun函數(shù),按上面的規(guī)則對數(shù)組a重新賦值,最后輸出數(shù)組a。

8.A解析:C語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。另外C語言規(guī)定了一些專用的標識符,它們有著固定的含義,不能更改。int就是表達變量類型的標識符,它不能再用做變量名和函數(shù)名,所以選項B)不正確。do是C語言的一個關(guān)鍵字,也不能再用做變量名和函數(shù)名,所以選項C)不正確。

9.C

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

11.A第1次調(diào)用為m=f(f(f(1))),第2次調(diào)用為m=f(f(2)),第3次調(diào)用為m=f(4),即返回值為8。故本題答案為A選項。

12.B

13.B

\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標相同,所以j=i。

\n

14.B解析:C語言規(guī)定標識符只能由字母、數(shù)字和下畫線3種字符組成,且第一個字符必須為字母或下畫線,排除選項C)和D);C語言中還規(guī)定標識符不能為C語言的關(guān)鍵字,而選項A)中void為關(guān)鍵字,故排除選項A)。

15.A聲明函數(shù)fun“voidfun(intarray[4],int*ptr);”,第1個參數(shù)雖然是數(shù)組類型,但是會退化為指針,并且形參數(shù)組的個數(shù)沒有用;第2個參數(shù)是指針。兩個形參都是指針,傳遞的都是地址,可知選項B、C、D錯誤。故本題答案為A選項。

16.A

17.A

18.A【答案】:A

【知識點】:黑盒測試

【解析】:黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只著眼于程序的外部結(jié)構(gòu),主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。

19.A

20.A[解析]數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串數(shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。\u3000\u3000

21.1212解析:本題考查逗號表達式的運算規(guī)則。逗號表達式的基本格式為:“表達式1,表達式2,…”,其整個表達式的結(jié)果取最后一個子表達式的值。本題中首先計算逗號表達式中的第1個表達式a=2*3=6,然后計算第2個表達式a*2,這時整個表達式的值為12,但要注意,因為第2個表達式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達式a+6=12,所以整個表達式最后的值為12。

22.66解析:++的優(yōu)先級高于*,先作自加運算,b=++a*++a=2.0*3.0=6.0。b按實型輸出6.000000。

23.00解析:已知a=10,b=20,所以邏輯表達式a<b的值為true,即為1,在這個表達式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應當為false,即為0。

24.動態(tài)多變量動態(tài)多變量

25.類類解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實例。

26.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應取外部變量的值13,因此輸出2。

27.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。

28.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

29.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前療遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。

30.str+strlen(p1)-1或str+strlen(str)-1或str-1+strlen(str)或str-1+strlen(p1)t==0或!t或t=='\0'huiwen(str)str+strlen(p1)-1或str+strlen(str)-1或str-1+strlen(str)或str-1+strlen(p1)\r\nt==0或!t或t=='\\0'\r\nhuiwen(str)解析:函數(shù)huiwen中開始定義了兩個字符指針p1和p2,并讓p1指向sb的開始位置,所以p2應該指向str的尾部,即&str[strlen(str)-1]或?qū)懗蓅tr+strlen(str)-1或者其他等價形式。然后使用一個循環(huán),循環(huán)str的長度的一半次數(shù),比較p1和p2的內(nèi)容,并分別遞增和遞減這兩個指針。若有不同,則讓標志t為1,并跳出循環(huán)。所以最后一個if語句應該為判斷標志t是否為1,即應該填t==0或者其它等價形式。在主函數(shù)中,應該輸出huiwen()函數(shù)的返回結(jié)果,即最后一空應該填huiwen(str)。

31.structlink*next

32.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

33.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:根據(jù)構(gòu)成三角形的條件:兩邊之和大于第三邊,得出空格應該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。

34.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。

35.fopen(fname:"w")

36.strcurlist*strucrlist*return(h)

37.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:函數(shù)sstrcmp()有兩個字符型指針變量,用來指向兩個字符串。比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應的字符相等則接著比較下一個字符,一直到兩個字符串中對應字符不等,或者有一個為\\0,此時字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為\\0,且*s和*t相同,第一處應填“*t”或其他等價形式。根據(jù)題意可知第二處應填*s-*t或其等價形式。

38.空間空間解析:算法的復雜度主要包括時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

39.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對角線上的元素賦值為1顯然在第一個空中應該填入對角線上的元素即x[i][i],在第二重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應的上一行中同列和同列的前一列的元素相加,所以在第二個空中應該填入x[i-1][j-1]+x[i-1][j]。

40.gaegae解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為Language和Programe,然后定義了兩個指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將pl+k和p2+k所指向的字符進行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后輸出為gae。

41.D解析:在本題中,主函數(shù)在調(diào)用fun()函數(shù)進行排序時,傳遞的參數(shù)是c+4和6,fun()函數(shù)實現(xiàn)的功能是將數(shù)組c的第5個元素開始的6個元素依次進行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。

42.B解析:源程序的文檔化主要包括3點:(1)符號名應具有一定實際的含義,便于理解程序功能:(2)正確的程序注釋;(3)良好的視覺組織。利用空格、空行、縮進等技巧使程序?qū)哟吻逦?/p>

43.A解析:從關(guān)系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進行的運算,即水平方向抽取元組。從關(guān)系模式中挑選若干屬性組成新的關(guān)系稱為投影,是從列的角度進行的運算,相當于對關(guān)系進行垂直分解。所以,本題選擇A。

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

45.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。

46.D解析:一個源文件中的外部變量的作用域是從定義該變量的位置開始到本文件結(jié)束。

47.D解析:本題考查指針變量的運用。本題中的函數(shù)數(shù)實質(zhì)上是將字符串t續(xù)接到字符串s中。

48.C解析:getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入—個字符。

2.putchar():此函數(shù)的作用是向終端輸出—個字符,也可以輸出控制字符。

本題在輸入字符時,ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。

49.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因為運算符“*”的優(yōu)先級高于“+”,所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

50.D

51.B解析:本題考查庫函數(shù)調(diào)用的知識點。格式1:#include<文件名>,預處理程序在標準目錄下查找指定的文件;格式2:#include'文件名',預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標準目錄搜索。

52.B

53.D解析:*、/和%的優(yōu)先級要高于+和—,同級別的運算符從左至右運算。所以本題首先計算5/2和5%2,雖然我們都知道5/2的結(jié)果應該是2.5,但C語言中規(guī)定了兩個整數(shù)相除的結(jié)果為整數(shù),而且是截尾取整,所以5/2的結(jié)果是2;5%2表示的是5除以2所得的余數(shù),其結(jié)果為1。計算完后,表達式變?yōu)?.6-2+1.2+1,從左至右計算不難得出結(jié)果為3.8,故應該選擇D。

54.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。

55.D

56.A解析:C語言中比較表達式的運算結(jié)果為0或1。0代表不成立,1表示成立。

57.B[答案]B

[考點]數(shù)據(jù)結(jié)構(gòu)與算法

[評析]依次從上到下,可得出:

第1層結(jié)點數(shù)為1;

第2層結(jié)點數(shù)為2*1=2;

第3層結(jié)點數(shù)為2*2=4;

第n層結(jié)點數(shù)為2的n-1次冪

58.D解析:在switch語句中,若case語句后沒有break語句,則執(zhí)行完本層case后會繼續(xù)執(zhí)行后面case中的操作。k的初值為5,while條件成立,進入switch(5),執(zhí)行default語句,退出switch,執(zhí)行k--后得4,再進入while循環(huán),執(zhí)行switch(4),退出switch,再執(zhí)行k--后得3,繼續(xù)while循環(huán),執(zhí)行switch(3),n=n+k=3,再執(zhí)行k--后得2,進入while循環(huán),執(zhí)行case2,再執(zhí)行n=n+k=5,然后執(zhí)行k--后得1,最后一次進入while循環(huán),執(zhí)行case1,n=n+k=6,然后繼續(xù)執(zhí)行case2和case3后的語句,n=n+k=7,且執(zhí)行k--后得0,此時while條件不滿足,退出循環(huán),輸出n的值為7。

59.C

60.C解析:宏替換實質(zhì)上就是字符替代,它不可能進行計算,故C錯誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時不會產(chǎn)生類似于函數(shù)調(diào)用的問題,可以說不占用運行時間。

61.AB選項中switch((int)x);語句中不應該有最后的分號。switch(exprl),中的exprl不能用浮點類型或10n9類型,也不能為一個字符串,所以c錯誤。ca”后面常量表達式的類型必須與switch后面表達式的類型一致,所以D錯誤。

62.A

63.C循環(huán)鏈表是另一種形式的鏈式存儲結(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。

64.B本題考查for循環(huán)及if…else語句嵌套,第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]=p[1][0]-1=3;第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),p[1][2]=l,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

65.D

66.B本題主要考查源程序的定義:①符號名應具有一定實際的含義;②正確的程序注釋;③良好的視覺組織。

67.D

68.D

69.D

70.Dmain函數(shù)中,fun(fun(t))嵌

溫馨提示

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

評論

0/150

提交評論