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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'3'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}從第一列開始輸入數(shù)據(jù)(<CR>代表…個回車符):3845<CR>,則狴序輸出結(jié)果為()。

A.77889B.77868C.776810D.7.78866e+007

2.軟件詳細(xì)設(shè)計的主要任務(wù)是確定每個模塊的()。

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

3.在下面的字符數(shù)組定義中,哪一個有語法錯誤()。A.chara[20]=”abcdefg”;

B.chara[]=”x+y=55.”;

C.chara[15];

D.chara[10]=’5’;

4.下列語句中,()是錯誤的。A.x=x+1;B.x=x+y;C.x+y=x;D.x=4;

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

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

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

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

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

6.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并

7.設(shè)s1="Good",s2="",s3="Bye",則s1、s2和s3連接后的結(jié)果是()。

A.GoodB.GoodByeC.GoodByeD.Bye

8.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

9.如有inta=11;則表達(dá)式(a/1)的值是()。

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

10.數(shù)據(jù)庫設(shè)計中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設(shè)計的()。

A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段

11.在數(shù)據(jù)庫系統(tǒng)中,用戶所見數(shù)據(jù)模式為______。A.概念模式B.外模式C.內(nèi)橫式D.物理模式

12.設(shè)有以下函數(shù)“voidfun(intn,char*s){…}”,則下列對函數(shù)指針的定義和賦值均正確的是()。

A.void(*pf)(int,char);pf=&fun;

B.void*pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char*);pf=fun;

13.

14.

15.有以下程序:

#include<stdio.h>

main()

{ints=0.n;

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

{switch(s)

{case0;

case1:s+=1;

case2:s+=2;break;

case3:S+=3;

default:s+=4;

}

printf("%d,"s);

}

}

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

A.1,2,4,

B.1,3,6,

C.3,10,14,

D.3,6,10,

16.

17.若已知一個棧的入棧序列是1,2,3,......,n,其輸出序列為p1,p2,p3,..,pn,若p1=n-1,則pi可能為()

A.nB.n-iC.n-i+1D.不確定

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

A.C程序中的#include和#define行均不是C語句

B.除逗號運算符外,賦值運算符的優(yōu)先級最低

C.C程序中,j++;是賦值語句

D.C程序中,+、-、*、/、%是算術(shù)運算符,可用于整型和實型數(shù)的運算

19.

20.數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,()沒有專門的軟件對數(shù)據(jù)進行管理。

I.人工管理階段

II.文件系統(tǒng)階段

Ⅲ.?dāng)?shù)據(jù)庫階段A.A.僅IB.僅ⅢC.I和IID.II和Ⅲ

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

main()

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

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

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

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

}

}

22.在______個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。

23.以下程序通過函數(shù)SunFun求這里f(x)=x2+1,由F函數(shù)實現(xiàn)。請?zhí)羁铡?/p>

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{return(【】);}

24.在面向?qū)ο蟮脑O(shè)計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。

25.如下語句printf("%c\n",'B'+40);在執(zhí)行后的輸出結(jié)果是【】。

26.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

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

main()

{

intp[7]=(11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

29.下列循環(huán)的循環(huán)次數(shù)是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

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

#definePR(ar)printf("ar=%d",ar)

main()

{intj,a[]={1,3,5,7,9,1l,13,1},*p=a+5;

for(j=3;j;j--)

switch(j)

{case1:

case2:PR(*p++);break;

case3:PR(*(--p));}}

31.二叉樹的遍歷可以分為三種:前序遍歷、()遍歷和后序遍歷。

32.有以下程序:

#include<stdio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序運行時,如果從鍵盤輸入Y?N?<回車>,則輸出結(jié)果為【】。

33.棧和隊列通常采用的存儲結(jié)構(gòu)是【】。

34.在對文件進行操作的過程中,若要求文件的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】函數(shù)。

35.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置為A',例如:

#defineN4

voidrotate(inta()[N])

{inti,j,t;

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

for(j=0;【】;j++)

{t=a[i][j];

【】;

a[j][i]=t;

}

}

36.有以下程序:

voidfun(int*a,inti,intj)

{intt;

if(i<j)

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

i++;j--;

fun(a,i,j);

}

}

main()

{intx[]=(2,6,1,8),i;

fun(x,0,3);

for(i=0;i<4;i++)printf("%2d",x[i]);

}

程序運行后的輸出結(jié)果是【】。

37.如下圖所示的二叉樹后序遍歷序列是【】。

38.以下程序運行后,若輸入:3,abcde<回車>,則輸出結(jié)果是【】。

#include<stdio.h>

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

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

}

39.在關(guān)系模型中,二維表的行稱為______。

40.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

三、1.選擇題(20題)41.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是

A.c=(c-′A′)%26+′a′B.c=c+32C.c=c-′A′+′a′D.c=(′A′+c)%26-′a′

42.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

A.languageB.lnugC.有語法錯誤D.lang

43.若有運算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序為()。

A.%、sizeof、>、<<、=

B.sizeof、%、>、=、<<

C.sizeof、<<、>、%、=

D.sizeof、%、<<、>、=

44.在C語言中,引用數(shù)組元素時,其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()。

A.整型表達(dá)式B.整型常量C.整型常量或整型表達(dá)式D.任何類型的表達(dá)式

45.設(shè)有定義:#defineSTR"12345";,則以下敘述中正確的是()

A.宏名STR代替的是數(shù)值常量12345

B.宏定義以分號結(jié)束,編譯時一定會產(chǎn)生錯誤信息

C.宏名STR代替的是字符串"12345";

D.宏名STR代替的是字符串常量"12345"

46.對專門從事數(shù)據(jù)庫管理、維護的人員,稱之為()

A.NBAB.DBAC.DMAD.DDS

47.當(dāng)用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是

A.scanf()B.getchar()C.gets()D.Setc()

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

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

49.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.歸并排序

50.設(shè)有以下聲明語句streetex{intx;floaty;charz;}example;則下面的敘述中不正確的是______。

A.struct是結(jié)構(gòu)體類型的關(guān)鍵字

B.example是結(jié)構(gòu)體類型名

C.x,y,z都是結(jié)構(gòu)體成員名

D.structex是結(jié)構(gòu)體類型

51.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),

A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

52.設(shè)a=12、b=12345,執(zhí)行語句printf('%4d,%4d",a,b);的輸出結(jié)果為()

A.12,123B.12,12345C.121,234D.12,123456

53.有以F程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結(jié)果是

A.741B.963C.852D.875421

54.以下不正確的定義語句是

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

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

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

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

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

A.在C語言中的保留字必須小寫

B.變量的存儲類型決定了變量的存儲位置及其生存期

C.宏定義以#define開頭,行末必須加分號

D.在C語言中的注釋行可以出現(xiàn)在程序的任何位置

56.有以下程序: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

57.下列寫法正確的是()。

A.main(){inti=3,j;j=5}

B.main(){inti=3;

C.main()

D.main(){;}

58.下面語句的輸出結(jié)果是______。printf("/od\n",strlen("\t\"\065\xff\n"))

A.14B.8C.5D.輸出項不合法,無正常輸出

59.若有定義和語句()chars[10];s="abcd";printf("%s\n",s);則結(jié)果是(以下μ代表空格)

A.輸出abcdB.輸出aC.abcdμμμμμD.編譯不通過

60.下面函數(shù)的功能是()。sss(s,t)char*s,*t;{while((*s)&&(*t)&&(*t++==*s++));return(*s-*t):}

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

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

#include"stdio.h"

#defineM(x,y)(x)*(y)

#defineN(x,y)(x)/(y)

main()

{inta=5,b=6,c=8,k;

k=N(M(a,b),c);

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

}

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

A.3B.5

C.6D.8

62.下列描述中正確的是()。

A.軟件工程只是解決軟件項目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題

63.(67)數(shù)據(jù)處理的最小單位是()

A.數(shù)據(jù)

B.數(shù)據(jù)元素

C.數(shù)據(jù)項

D.數(shù)據(jù)結(jié)構(gòu)

64.軟件測試的目的是()。

A.評估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯誤C.改正程序中的錯誤D.發(fā)現(xiàn)程序中的錯誤

65.(16)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名不屬于數(shù)據(jù)流圖合法圖符的是_____。

A.控制流

B.加工

C.數(shù)據(jù)存儲

D.源和潭

66.

67.設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)^(~3)的值是

A.10101001B.10101000C.11111101D.01010101

68.“商品”與“顧客”兩個實體集之間的聯(lián)系一般是()。

A.一對一B.多對一C.一對多D.多對多

69.

有以下程序:

intfun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

執(zhí)行后的結(jié)果是()。

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

70.已知字符‘A’的ASCII代碼值是65,字符變量cl的值是‘A’,c2的值是‘D’。則執(zhí)行語句printf(”%d,%d”,cl,c2—2);的輸出結(jié)果是()。

A.65,68B.A,68C.A,BD.65,66

71.

72.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

73.

74.

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

char*p1="abcd",*p2="ABCD",str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A.xyabcABB.abcABzC.ABabczD.xycdBCD

76.有三個關(guān)系R、S和T如下:

則由關(guān)系R和s得到關(guān)系T的操作是()。

A.自然連接B.差C.交D.并

77.

78.有以下程序:

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

A.16B.1C.32D.0

79.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程

B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護過程

80.在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是()。

A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的n個元素按從大到小的順序進行排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:計算并輸出下列多項式值。S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)例如,若輸入10,則輸出為S=3.597740。n的值要求大于1但不大于100。注意:部分源程序給出如下。請勿改動函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A

2.A解析:從軟件開發(fā)的工程化觀點來看,在使用程序設(shè)計語言編制程序以前,需要對所采用算法的邏輯關(guān)系進行分析,設(shè)計出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計的任務(wù)就是要決定各個模塊的實現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項A。

3.D

4.C

5.D解析:選項A、選項B和選項C都是在a的值為0的時候輸出y,a不為0的時候輸出x,而選項D是在a為0的時候輸出x,a不為0的時候輸出y。所以,4個選項中選項D符合題意。

6.C由圖所知,其中,C中只有一個屬性,是除操作。

7.C

8.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.

9.D

10.CC。【解析】E—R(Entity—Relationship)圖為實體一聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。

11.B解析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。夕模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的—部分。內(nèi)模式,或存儲模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取力式的描述。

12.D函數(shù)的參數(shù)可以是指針類型,它的作用是將一個變量的地址傳送到另一個函數(shù)中。函數(shù)名代表函數(shù)的入口地址,指向函數(shù)的指針應(yīng)該定義為“void(*Pf)();”。如果定義為“void*pf();”,則表示函數(shù)pf的返回值是一個基類型為void的指針。故本題答案為D選項。

13.A

14.A

15.C\n本題考查switch…ease語句,在本題的程序中,只有在case2:s=s+2;break;,才有break語句,所以當(dāng)s=0時會執(zhí)行s=s+1;s=s+2;,所以s=3,當(dāng)s=3時,會執(zhí)行s=s十3;s=s+4;,所以s=10,依此類推,答案選擇C。

\n

16.D

17.D

18.D解析:“%”是求余運算符,其兩側(cè)的數(shù)值只能為整型,不能用于實型數(shù)據(jù)的運算。

19.C

20.A數(shù)據(jù)管理技術(shù)發(fā)展的蘭個階段中,只有人工管理階段,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。

21.1371513715解析:本題中,定義了一個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,使后一個數(shù)為前一個數(shù)的2倍加1。所以最后輸出為1、3、7、15。

22.3131解析:設(shè)隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。

23.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:題目中要求從x=0開始將f(x)的值累加起來,直到x=10。在SunFun()函數(shù)中用了一個for循環(huán),每循環(huán)一次將f(x)累加到s中,所以在本題的第一個空格處我們應(yīng)該填x,然后x+1,共循環(huán)10次。F()函數(shù)的功能應(yīng)該是求數(shù)學(xué)表達(dá)式f(x)的值,所以其返回值應(yīng)該為x*x+1。

24.消息消息解析:在面向?qū)ο蠹夹g(shù)中,主要用到對象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。

25.jj解析:在C程序中的字符量可參與任何整數(shù)運算。

26.概念(或概念級)概念(或概念級)

27.2424解析:本題程序定義了一維數(shù)組p,有七個數(shù)組元素,整型變量i,j初值分別為0,當(dāng)while的條件表達(dá)式(i<7&&p[i]%2=1)的值為真時,執(zhí)行語句j+=p[i++];,如:當(dāng)i=0時,i<7為真,p[i]%2=11%2=1,表達(dá)式(p[i]%2=1)的值為真,所以接個表達(dá)式(i<7&&p[i]%2=1的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類推可以得出答案24。

28.101091101091解析:for(表達(dá)式1;表達(dá)式2:表達(dá)式3)語句的功能是:首先計算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達(dá)式3的值。然后再檢測表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

29.00解析:解答本題需要注意表達(dá)式“k=0”,它是賦值表達(dá)式而不是關(guān)系表達(dá)式,不論k為何值,表達(dá)式k=0總會使k為0,所以不能進入循環(huán)。

30.ar=9ar=9ar=11ar=9ar=9ar=11解析:本題綜合考查了for循環(huán),switch語句及宏替換等幾個知識點。j=3時,執(zhí)行PR(*(--p));輸出數(shù)組元素a[4]的值;j=2時,執(zhí)行PR(*p++);取出p所指位置的元素a[4],然后p++;當(dāng)j=1時,執(zhí)行PR(*p++);取得是數(shù)組元素a[6]的值11。

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

32.XX解析:程序是從鍵盤緩沖區(qū)循環(huán)接收字符,并輸出接收到的字符在ASCII碼表中的前一個字符,直到接收到‘?’為止。

33.鏈?zhǔn)酱鎯晚樞虼鎯︽準(zhǔn)酱鎯晚樞虼鎯?/p>

34.rewind()或fseek()rewind()或fseek()

35.j<ia[i][j]=a[j][i]j<i\r\na[i][j]=a[j][i]解析:本題中要求將n行n列的矩陣A轉(zhuǎn)置,即讓數(shù)組中行上的元素變成對應(yīng)列上的元素。即把對角線兩邊的元素對換,所以本題的第一個空格處應(yīng)該填寫j<i,第二個空格處填寫交換對角線兩邊的元素的語句a[i][j]=a[j][i]。

36.81628162解析:第一次調(diào)用函數(shù)fun時,x[0]=2、xL1]=6、x[2]=1、x[3]=8,執(zhí)行完函數(shù)fun后,x[0]與x[3]的值互換,即x[0]=8、x[1]=6、x[2]=1、x[3]=2;第二次調(diào)用函數(shù)fun時,i=1、j=2,故將x[1]與x[2]的值互換,即得x[0]=8、x[1]=1、x[2]=6、x[3]=2。

37.GDBHIEFCAGDBHIEFCA解析:后序遍歷二叉樹的順序為:后序遍歷左子樹→后序遍歷右子樹→訪問根結(jié)點。按照定義,后序遍歷序列是GDBHIEFCA。

38.cdeabcdeab解析:程序中的move函數(shù)的作用是保存輸入數(shù)組中的最后一個元素,然后從最后一個數(shù)組元素開始,依次向后移動一個位置,再把保存的最后一個元素置于首位,循環(huán)次數(shù)由n控制。輸入3,abcde<回車>后主函數(shù)開始執(zhí)行,其中n=3,s[50]={'abcde'},z=5。第一次循環(huán),i=1時,調(diào)用move(s,5)函數(shù),temp=str[4]語句把數(shù)組中最后一個元素\'e\'保存在temp中,然后i從4開始循環(huán),將str[3](字符\'d\')賦給str[4],str[2](字符\'c\')賦給str[3],……,循環(huán)結(jié)束時str所指字符串為'aabcd',再將保存在temp中的\'e\'置于首位,字符串變?yōu)?eabcd';i=2時,調(diào)用move函數(shù),字符串為'deabc';i=3時,調(diào)用move函數(shù),字符串為'cdeab'。最后輸出結(jié)果為'cdeab'。

39.元組元組解析:在關(guān)系型數(shù)據(jù)庫中,用二維表來表示關(guān)系,二維表的表名即關(guān)系名,二維表的行稱為關(guān)系的元組,二維表的列,稱為關(guān)系的屬性。

40.str[i]或str+iistr[i]或str+i\r\ni

41.D解析:C語言中,字符數(shù)據(jù)參加運算時,實際上是其ASCII碼參與運算。大寫字母的ASCII碼比其對應(yīng)的小寫字母的ASCII碼小32。因此大寫字母轉(zhuǎn)化為小寫字母只需將其加上32即可。所以選項B)、C)都符合條件,因為變量c中存儲的是大寫字母,所以'c-\'A\''的值一定小于26,故選項A)與選項C)的含義相同。

42.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。

第1次for循環(huán),p=a,p指向數(shù)組的第1個元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。

43.D解析:主要考查運算符的優(yōu)先級。sizeof的優(yōu)先級最高,后面的順序是:%、<<、>,優(yōu)先級最低的是“=”。

44.C解析:在C語言中,引用數(shù)組元素時,其數(shù)組下標(biāo)的數(shù)據(jù)類型可以是整型常量,也可以是整型表達(dá)式。

45.C

46.B

47.C解析:本題綜合考查了輸入函數(shù)的使用。scanf函數(shù)會將空格視為分隔符,getchar函數(shù)只能輸入單個字符,getc函數(shù)是文件操作函數(shù),顯然都不符合題意。通過gets函數(shù)輸入字符串時,輸入的空格被認(rèn)為是字符串的一個字符。

48.C解析:對字符型一維數(shù)組在定義時初始化,既可以使用初始化列表,也可以使用字符串常量。不過由于字符串常量會自動在結(jié)尾添加\'\\0\',字符做結(jié)束標(biāo)志,所以用字符串常量的初始化列表項個數(shù)是字符串的長度加1。因此題目中的chara[]='xyz';等價于chara[]={\'x\',\'y\',\'z\',\'\\0\');,所以a數(shù)組長度大于b數(shù)組長度,應(yīng)該選C。

49.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟毩⒌膬刹?/p>

分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼

續(xù)進行排序,以達(dá)到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依

次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整

個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對剩

下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個或兩個以上的有序表組合

成一個新的有序表。

注意:各種排序方法實現(xiàn)過程及實現(xiàn)機制。

50.B解析:example是結(jié)構(gòu)體變量名。

51.D解析:在C語言的標(biāo)準(zhǔn)中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個字節(jié)。故本題應(yīng)該選擇D。

52.B

53.C解析:本題考查變量的自加“++”和自減“--”問題。當(dāng)y的值為9、6或3時,if語句的條件成立,執(zhí)行輸出語句,輸出表達(dá)式--y的值,y的自減要先于輸出語句執(zhí)行,故輸出結(jié)果為852。

54.B解析:在一維數(shù)組中要注意的是作為下標(biāo)表達(dá)式的常量表達(dá)式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。

55.C解析:本題涉及C語言最基本的4個知識點:①C語言的保留字必須小寫;②變量的存儲類型不同,其存儲位置和生存期也不一樣:③C語言允許其注釋部分出現(xiàn)在程序中的任何位置;④宏定義以#define開頭,行末不需要加分號。

56.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。

57.D解析:本題考查語句的基本構(gòu)成。選項A)中j=5后面少了一個分號:選項B)中少了“}”;選項C)不是一個完整的函數(shù)定義格式,一個完整的函數(shù)定義格式還包括一對花括號:選項D)正確,是一個空語句。

58.C解析:在C語言中,以“\\”開頭的字符均為轉(zhuǎn)義字符,其中“\\”后可跟1~3位八進制數(shù)或在“\\”后跟字母x及1~2位十六進制數(shù),以此來代表一個特定的字符。

59.D

60.B

61.A帶參數(shù)的宏定義的一般形式為#define宏名(參數(shù)表)字符串。題目中定義了兩個宏“#defineM(x,y)(x)*(y)”、“#defineN(x,y)(x)/(y)”,即可以用M(x,y)表示(x)*(y)運算,N(x,y)表示(x)/(y)運算。主函數(shù)main中關(guān)鍵是計算k=N(M(a,b),c),根據(jù)前述的宏,有k=a*b/c,計算后有k=30/8,取整后得到3。

62.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進度無法控制、軟件質(zhì)量難以保證、軟件不可維護或維護程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。

溫馨提示

  • 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

提交評論