2021年湖北省荊州市全國計算機等級考試C語言程序設計真題(含答案)_第1頁
2021年湖北省荊州市全國計算機等級考試C語言程序設計真題(含答案)_第2頁
2021年湖北省荊州市全國計算機等級考試C語言程序設計真題(含答案)_第3頁
2021年湖北省荊州市全國計算機等級考試C語言程序設計真題(含答案)_第4頁
2021年湖北省荊州市全國計算機等級考試C語言程序設計真題(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年湖北省荊州市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義:typedefint*INTEGER;INTEGERp,*q;則以下敘述正確的是()。

A.q是基類型為int的指針變量

B.p是int型變量

C.p是基類型為int的指針變量

D.程序中可用INTEGER代替類型名int

2.下面不合法的常量數(shù)據(jù)是()。

A..023E-5B.0x3f7b8a90C.‘\0x6d’D.‘\0123321’

3.

4.在說明語句:int*f();中,標識符f代表的是

A.一個用于指向整型數(shù)據(jù)的指針變量

B.一個用于指向一維數(shù)組的行指針

C.一個用于指向函數(shù)的指針變量

D.一個返回值為指針型的函數(shù)名

5.設有向無環(huán)圖G中的有向邊集合E={<1,2>,<2,3>,<3,4>,<1,4>},則下列屬于該有向圖G的一種拓撲排序序列的是()。

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

6.將數(shù)組a[0,1,…,m-1]作為循環(huán)隊列SQ的存儲空間,f為隊頭指示,r為隊尾指示,則執(zhí)行出隊操作的語句為()A.f=f+1B.f=(f+1)%mC.r=(r+1)%mD.f=(f+1)%(m+1)

7.設變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數(shù)據(jù)類型為()。

A.intB.floatC.doubleD.不確定

8.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達式值為11的是()。

A.++p->xB.pt->xC.*pt->yD.(pt++)->x

9.深度為5的二叉樹至多有C個結點。

A.16B.32C.31D.10

10.對于只在表的首、尾兩端進行插入操作的線性表,宜采用的存儲結構為()。

A.順序表B.用頭指針表示的循環(huán)單鏈表C.用尾指針表示的循環(huán)單鏈表D.單鏈表

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

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

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

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

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

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

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

13.以下程序的輸出結果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

14.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。

A.a==lB.++iC.a=a++=5D.a=int(i)

15.若有定義“inta=0,b=1,c=1;”,關于邏輯表達式“a++||b++&&c++”中各個部分的執(zhí)行順序,以下說法正確的是()。

A.先執(zhí)行“b++”,再執(zhí)行“c++”,最后執(zhí)行“a++”

B.先執(zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“c++”

C.先執(zhí)行“c++”,再執(zhí)行“b++”,最后執(zhí)行“a++”

D.先執(zhí)行“b++”,再執(zhí)行“a++”,最后執(zhí)行“c++”

16.下列關于棧的描述中錯誤的是()。

A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針

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

I.人工管理階段

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

Ⅲ.數(shù)據(jù)庫階段A.A.僅IB.僅ⅢC.I和IID.II和Ⅲ

18.能正確表示x>=3或者x<1的關系表達式是()。

A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1

19.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

20.向一個棧頂指針為h的帶頭結點的鏈棧中插入指針s所指的結點時,應執(zhí)行()操作。

A.h->next=s;

B.s->next=h;

C.s->next=h;h->next=s;

D.s->next=h->next;h->next=s;

二、2.填空題(20題)21.用鏈表表示線性表的突出優(yōu)點是______。

22.以下函數(shù)用于求出一個2×4矩陣中的最大元素值。

max_value(arr)

intarr[][4];

{

inti,j,max;

max=arr[O][0];

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

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

if(【】>max)max=【】;

return(max);

}

23.瀑布模型將軟件生存周期劃分為【】、開發(fā)和運行3個階段。

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

intmystrlen(char*str)

{intI;

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

return(I);}

25.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,

否則返回0。請?zhí)羁铡?/p>

intisprime(inta)

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

26.若a是int型變量,則下列表達式的值為______。

(a=2*3,a*2),a+4

27.結構化分析方法是面向______進行分析的方法。

28.當數(shù)據(jù)的物理結構(存儲結構)改變時,不影響數(shù)據(jù)庫的邏輯結構,從而不致引起應用程序的變化,這是指數(shù)據(jù)的【】。

29.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請?zhí)羁铡?/p>

main()

{inti,j,x;

for(j=4;j>0;j--)

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

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

30.設有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

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

31.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計算它們的和值,和值通過形參傳回主函數(shù)輸出。請?zhí)羁眨?/p>

#include<stdio.h>

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*sum)

{inti,j,k,s=0;

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

k=O;

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

if(a[k][i]>a[j][i])k=j;

s+:【】;

}

【】=s;

}

main()

{intx[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin(【】);

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

}

32.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當s<t時返回負值。請?zhí)羁铡?/p>

my_cmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}return【】;

}

33.若已經(jīng)定義inta=25,b=14,c=19;,以下三目運算符(?:)所構成的語句的執(zhí)行結果是【】。

a++<=2&&b--<=2&&c++?printf("***

a=%d,b=%d,c=%d\n",a,b,C):printf("a=%d,b=%d,c=%d\n",a,b,C);

34.當運行以下程序時,輸入abcd,程序的輸出結果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

36.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內存空間中,形成一個新字符串s。請?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

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

}

37.下面程序的輸出結果是【】。

charb[]="ABCD";

main()

{

charb[30];

strcpy(&b[0],"GH");

strcpy(&b[1],"GH");

strcpy(&b[2],"GH");

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

}

38.若輸入12、3、2、5、7,則以下程序的運行結果為【】。

intmax,min;

voidmax_min_value();

main()

{inti,number[5];

printf("輸入5個整數(shù);\n");

for(i=0;i<5;i++)scanf("%d",&number[i]);

maxminvalue(number,5);

printf("max=%d,min=%d\n",max,min);

getch();

}

voidmax_min_value(array,n)

intarray[],n;

{int*p;

max=min=*array;

for(p=array+1;p<array+n;p++)

if(*p>max)max=*p;

elseif(*p<min)min=*p;

}

39.設有如下程序段:

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

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

上述程序段的輸出結果是【】。

40.樹中度為零的結點稱為______。

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入:a<回車>后,以下敘述正確的是()。

A.變量c1被賦予字符a,c2被賦予回車符

B.程序將等待用戶輸入第2個字符

C.變量c1被賦予字符a,c2中仍是原有字符2

D.變量c1被賦予字符a,c2中將無確定值

42.應用數(shù)據(jù)庫的主要目的是A.A.解決數(shù)據(jù)保密問題

B.解決數(shù)據(jù)完整性問題

C.解決數(shù)據(jù)共享問題

D.解決數(shù)據(jù)量大的問題

43.以下程序運行后,輸出結果是()。main(){inty=18,i=0,j,a[8];do{a[i]’y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}

A.1000B.10010C.110D.10100

44.表示關系a≤b≤c的C語言表達式為()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

45.設有定義:intn1=0,n2,*p=&n2,*q=&n1;,下列賦值語句中與n2=n1;語句等價的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

46.樹是結點的集合,它的根結點的數(shù)目是()。

A.有且只有1個B.1或多于1C.0或1D.至少有2個

47.要求通過while循環(huán)不斷讀入字符,當讀入字母N時結束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

48.軟件設計中,有利于提高模塊獨立性的一個準則是______。A.低內聚低耦合B.低內聚高耦合C.高內聚低耦合D.高內聚高耦合

49.設有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是

A.PER是結構體變量名

B.PER是結構體類型名

C.typedefstruct是結構體類型

D.struct是結構體類型名

50.下面的關鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

51.若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

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

A.一個C語言程序只能實現(xiàn)一種算法

B.c程序可以由多個程序文件組成

C.C程序可以由一個或多個函數(shù)組成

D.一個c函數(shù)可以單獨作為一個C程序文件存在

53.實體一聯(lián)系模型中,實體與實體之間的聯(lián)系不可能是

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

54.以下scanf函數(shù)調用語句中對結構體變量成員的不正確引用是structpupil{charname[20];intageintsex;}pup[5],*p;p=pup;

A.scanf("%s",pup[0].name);

B.scanf("%d",&pup[0].age);

C.scanf("%dT",&(p->sex));

D.scanf("%d",p->age);

55.以下對C語言函數(shù)的有關描述中,正確的是

A.在C語言中調用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參

B.C函數(shù)既可以嵌套定義又可以遞歸調用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.函數(shù)必須有返回值,返回值類型不定

56.以下選項中,不能正確賦值的是______。

A.chars1[10];s1="chest";

B.chars2[]={'C','t','e','s','t'};

C.chars3[20]="Chest";

D.char*s4="Ctest\n"

57.設有如下枚舉類型定義:enumpro_lan{Basic=3,C,Delphi=10,Pascal,Fortran};枚舉量Fortran的值為______。

A.4B.7C.12D.13

58.若變量a是int類型,并執(zhí)行了語句:a='A'+1.6;則正確的敘述是

A.a的值是字符CB.a的值是浮點型C.不允許字符型和浮點型相加D.a的值是字符'A'的ASCII值加上1。

59.算法的時間復雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)

60.下面4個關于C語言的結論中錯誤的是()。

A.可以用do…while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

B.可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

C.可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關鍵字“while”出現(xiàn)的位置不同

四、選擇題(20題)61.

62.

63.下列關于線性鏈表的敘述中,正確的是()。

A.各數(shù)據(jù)結點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致

B.各數(shù)據(jù)結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)

C.進行插入與刪除時,不需要移動表中的元素

D.各數(shù)據(jù)結點的存儲順序與邏輯順序可以不一致,它們的存儲空間也可以不一致

64.

65.為了提高軟件的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內容耦合D.數(shù)據(jù)耦合

66.(31)算法一般都可以用哪幾種控制結構組合而成()

A.循環(huán)、分支、遞歸

B.順序、循環(huán)、嵌套

C.循環(huán)、遞歸、選擇

D.順序、選擇、循環(huán)

67.以下結構體類型說明和變量定義中正確的是()。

68.

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

A.軟件測試的目的是確定程序中錯誤的位置

B.軟件測試的目的是發(fā)現(xiàn)程序中的錯誤

C.軟件調試的目的是發(fā)現(xiàn)程序中的錯誤

D.軟件調試后一般不需要再測試

70.

71.

下列程序的運行結果為()。

#include<stdio.h>

main

{structdate

{intyear,month,day;

}today;

printf("%d\n",sizeof(structdate));

}

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

72.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序執(zhí)行后輸出結果是()。A.n=5B.n=2C.n=3D.n=4

73.執(zhí)行下列程序時輸入:123<空格>456<空格>789<回車>輸出結果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456

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

A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化

B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化

C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化

D.以上說法都不正確

75.若有定義語句:inta[2][3],*p[3];,則以下語句中正確的是()。

A.p=a;B.p[0]=a;C.p[o]=&a[1][2];D.p[1]=&a;

76.

77.有以下程序:

#include<stdio.h>

intfun()

{staticintx=1;

X*=2:

returnx;

}

main()

{inti,S=1;

for(i=1;i<=3;i++)S*=fun();

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

}

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

A.0B.10C.30D.64

78.

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

A.

B.

C.

D.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將m(1≤m≤10)個字符串反著連接起來,組成一個新串,放入pt所指字符串中,例如,把“ab、cd、ef9”3個字符串反著串連起來,結果是efgcdab。

請修改程序中的錯誤,使它能得出正確的結果。

注意:不要改動main()函數(shù),不得增行或者刪行,也不得改變程序的結構!

試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc(),它的功能是計算:s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5在C語言中可調用log(n)函數(shù)求1n(n)。例如,若n1的值為30,則proc()函數(shù)值為8.640500。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C題干中使用typedef定義新類型名INTEGER,它代表int*類型。使用INTEGER定義p,相當于int*p。使用INTEGER定義*q,相當于int**q。所以p是基類型為int的指針變量,q是基類型為int*的指針變量,選項A、B、D錯誤。故本題答案為C選項。

2.D選項A是實型常量的指數(shù)形式,表示0.023×10-5;選項B是十六進制表示的整型常量;選項C是十六進制表示的轉義字符常量;選項D是字符串常量,應該使用雙引號標注。故本題答案為D選項。

3.B

4.D解析:帶回指針值的函數(shù),其一般定義形式為:

類型標識符*函數(shù)名(參數(shù)表);

例如;int*f(x,y);

其中,f是函數(shù)名,調用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側分別為*運算符和()運算符,而()優(yōu)先級高于*,因此f先與()結合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。

5.A

6.B

7.C

8.A題目中定義了一個結構體數(shù)組c并初始化,指針pt指向c的第1個元素。則“++pt->x”為11,“pt->x”為10,“*pt->y”為1,“(pt++)->x”為20。故本題答案為A選項。

9.C

10.C

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

12.D

13.A解析:n--是先使用后自減,--n是先自減后使用。n=4時,執(zhí)行n--后,n變?yōu)?,執(zhí)行--n后,n變?yōu)?,所以,第一次輸出時,n為2;同上過程,第二次輸出時,n為0。

14.B選項A為表達式,因此不正確,選項C中a++本身就是表達式,無需再賦值,選項D中,在強制類型轉換時,類型名應用括號括起來,故選擇8選項。

15.BC語言中運算符有優(yōu)先級和結合性。自增、自減運算符的優(yōu)先級高于邏輯運算符,邏輯運算符中邏輯與“&&”的優(yōu)先級比邏輯或“||”高,邏輯運算符的結合性自左向右。所以題干中表達式等價于“(a++)||((b++)&&(c++))”。運算順序為:首先執(zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“C++”。故本題答案為B選項。

16.B

\n棧是線性表的一種,它的特點是先進后出,并且只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,因此具有記憶作用,??梢圆捎庙樞虼鎯Γ部梢圆捎面準酱鎯?。

\n

17.A數(shù)據(jù)管理技術發(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)。

18.C

19.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。

20.D

21.便于插入和刪除操作。便于插入和刪除操作。解析:為了克服順序表中插入和刪除時需要移動大量數(shù)據(jù)元素的缺點,引入了鏈式存儲結構。鏈表表示線性表的突出優(yōu)點是插入和刪除操作方便,不必移動數(shù)據(jù)元素,執(zhí)行效率高。

22.j<4arr[i][j]arr[i][j]j<4\r\narr[i][j]\r\narr[i][j]解析:2*4矩陣實際上就是一個二維數(shù)組,結合本題應為arr[2][4],所以在第一個循環(huán)中應當填寫“4”;第二個橫線處是要判斷當前的數(shù)組元素值是否大于max,所以應填寫arr[i][j];第三個橫線處是要將當前大于max的數(shù)組元素的值賦給變量max,所以應當填寫“arr[i][j]”。

23.計劃計劃解析:瀑布模型是B.W.Boehm于1976年提出的。它將軟件生存周期劃分為計劃、開發(fā)、運行3個時期,每個時期又分為若干個階段。

24.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+I)來訪問字符串中的第I個元素,判斷是否為結束標志,如果不是,I=I+1,繼續(xù)取下一個元素進行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標的方式引用字符,如*(str+I)相當于str[I]。

25.return0return1return0,return1解析:如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。

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

27.數(shù)據(jù)流數(shù)據(jù)流解析:結構化分析方法的實質是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

28.物理獨立性數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應用程序而不依賴于應用程序。也就是說,數(shù)據(jù)的邏輯結構、存儲結構與存取方式的改變不會影響應用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩級。

29.ii解析:外循環(huán)是遞減的,方陣中的每個元素為(j-1)*4+i,因此空格處填i。

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

31.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:程序段for(j=1;j<M;j++)if(a[k][i]>a[j][i]))k=j;是找出第i列的最小值,第一處應該是每列最小值累加,所以填a[k][i];和值要通過形參傳回主函數(shù),第二處應該填*sum;根據(jù)形參可以確定第三處應該填x,&s。

32.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應字符相等情況下循環(huán),直至不相等結束。相等時,若字符串已到了字符串的結束標記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環(huán)結束。循環(huán)結束時,就以兩個當前字符的差返回。所以在空框處應填入*s-*t,保證在e>t時返回正值,當s<t時返回負值。

33.a=26b=14c=19a=26,b=14,c=19解析:這種條件表達式的—般形式為:表達式1?表達式2:表達式3,三目運算符的執(zhí)行順序,先求解表達式1,若非0則求解表達式2,此時表達式2的值就作為整個表達式的值,若表達式1的值為0,則求解表達式3,此時表達式3的值就作為整個表達式的值。C語言在做一系列表達式相與時,從左到右分別計算各表達式的值,一旦遇到一個表達式為false,則剩余的表達式都不再進行運算。該題中,a++<=2的值為false,則b-<=2和c++就都不再運算再運算。

34.a*b*c*d*a*b*c*d*解析:字符處理函數(shù)strlen()測試字符串常量的長度,不包括‘\\0’在內。因此,函數(shù)insert()實現(xiàn)了將字符數(shù)組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結果是a*b*c*d*。

35.3232解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假時,結束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結束。

36.*t++*t++解析:要使sstrcpy函數(shù)實現(xiàn)字符串復制,必須將t字符串中的每個字符逐個復制到s字符串中,可以使用*s=*t;s++;t++,也可以寫成*s++=*t++,因此空格處填*t++。

37.GGGHGGGH解析:由于在函數(shù)main中定義了數(shù)組變量b,其將屏蔽全局變量b。對于一維數(shù)紐變量,其值為一常數(shù),等于數(shù)組首元素地址。strcpy(&b[0],'GH'),是將字符串'GH'復制到數(shù)組b中從首元數(shù)開始的空間中,此是b中的字符串為”叫”:strcpy(&b[1],'GH'),是將字符串'GH'復制到數(shù)組b中從第二個元素開始的空間中,此是b中的字符串為“GH”。執(zhí)行第三次strcpy函數(shù)后,b中的字符串為'GGGH'。

38.max=12min=2

39.16

40.葉子結點葉子結點解析:樹中度為零的結點,也就是沒有后件的結點,稱為葉子結點。

41.A解析:本題考查的是getchar()函數(shù)。getchar()函數(shù)執(zhí)行時將從鍵盤緩沖區(qū)中讀取用戶的輸入,而不管輸入的是否可打印字符,所以當輸入a<回車>后,鍵盤緩沖區(qū)被輸入的實際上是兩個字符:'a'和'\\n'。故選項A的說法是正確的。

42.C數(shù)據(jù)庫是對數(shù)據(jù)進行操作和管理的,可以看成是長期存儲在計算機內的、大量的、有結構的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫可以被直觀地理解為存放數(shù)據(jù)的倉庫,數(shù)據(jù)庫可以對大量數(shù)據(jù)進行管理和應用。一個應用數(shù)據(jù)庫的主要目的就是要實現(xiàn)數(shù)據(jù)的共享,能使應用數(shù)據(jù)庫的數(shù)據(jù)被大量用戶使用。

43.B解析:do-while循環(huán)的功能是對數(shù)組a中的元素賦值,值為0、1、0、0、1。for循環(huán)的功能是將數(shù)組a中元素按下標從大到小的順序輸出,所以選項B符合題意。

44.A解析:本題考查邏輯與運算符&&。在C語言中使用運算符“&&”連接兩個表達式,也可以表示邏輯與運算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。

45.A解析:在定義指針變量p和q時,分別把變量n2和n1的地址賦給了指針變量p和q,所以*p和*q中內容就分別是變量n2和n1的值,所以語句*p=*q與語句n2=n1等價。因此選項A)正確。

46.CC?!窘馕觥繕渚哂忻黠@的層次關系,即樹是一種層次結構。在樹結構中,根結點在第一層上。當樹為非空時,樹中有且只有一個根結點,當樹為空時,樹中根結點的數(shù)目為0。

47.A解析:while循環(huán)的執(zhí)行過程如下:(1)計算while后面圓括號中表達式的值.當值為非0時,執(zhí)行步驟(2);當值為0時,執(zhí)行步驟(4)。(2)執(zhí)行循環(huán)體一次。(3)轉去執(zhí)行步驟(1)。(4)退出循環(huán)。在選項A)中,表達式(ch=getchar())!='N'表示輸入的字符不等于N,如果這個條件表達式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個條件表達式不成立,即輸入的字符等于N,則退出循環(huán).所以選項A)為正確答案。

48.C耦合是對一個軟件結構內不同模塊之間互連程度的度量,耦合度越高,則模塊的獨立性越差。內聚反映一個模塊內各個元素彼此結合的緊密程度。高內聚是指一個軟件模塊是由相關性很強的代碼組成,只負責一項任務,也就是常說的單一責任原則。低耦合是指不同軟件模塊之間通過穩(wěn)定的接口交互,而不需要關心模塊內部的實現(xiàn)。

49.B解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。

50.B解析:在C語言中,可以用break語句和continue語句跳出本層循環(huán)和結束本次循環(huán)。goto語句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內使用return語句,就會直接結束循環(huán)返回函數(shù)值。

51.A解析:本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達式對字符數(shù)組賦值,如下面的語句就是非法的:strl=“China”,如果想把“China”這5個字符放到數(shù)組strl中,除了逐個地輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復制到一字符數(shù)組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給strl):strl=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

strcpy函數(shù)的結構是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長度不應小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(strl),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

52.A答案A

解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。

53.D解析:實體聯(lián)系模型中實體與實體之間的聯(lián)系有一對一(1:1),一對多或多對一(1:m或m:1),多對多(m:n)其中一對一是最常用的關系。

54.D解析:可用結構體變量名.數(shù)據(jù)成員名或者結構體指針->數(shù)據(jù)成員名兩種方法來引用。注意:結構體類型的變量、數(shù)組和指針變量的定義。

55.A解析:C語言中的函數(shù)可以進行遞歸調用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。

56.A解析:語言中不能將字符串常量直接賦給數(shù)組。但在賦初值時可以。

57.C解析:定義枚舉類型時,若不給枚舉元素指定初值,系統(tǒng)將從0開始依次給每個枚舉元素賦值,若只給某個(或部分)元素指定初值,其后元素的值將依次加1。

58.D解析:在C語言中規(guī)定允許不同類型的量進行運算,但在運算時需轉換成高級的類型進行運算。在表達式中有字符型和

溫馨提示

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

評論

0/150

提交評論