2022年內(nèi)蒙古自治區(qū)鄂爾多斯市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第1頁
2022年內(nèi)蒙古自治區(qū)鄂爾多斯市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第2頁
2022年內(nèi)蒙古自治區(qū)鄂爾多斯市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第3頁
2022年內(nèi)蒙古自治區(qū)鄂爾多斯市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第4頁
2022年內(nèi)蒙古自治區(qū)鄂爾多斯市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年內(nèi)蒙古自治區(qū)鄂爾多斯市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序運行后的輸出結(jié)果是______。

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

2.二進制數(shù)1110111.11轉(zhuǎn)換成十進制數(shù)是()。

A.119.375B.119.75C.119.125D.119.3

3.有以下程序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]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是

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

4.在下面的二維數(shù)組定義中,正確的是()。

A.inta[5][];

B.inta[][5];

C.inta[][3]={{1,3,5},{2}};

D.inta[](10);

5.設(shè)"char**s;",以下正確的表達式是()。

A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';

6.if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是A.A.必須是邏輯值

B.必須是整數(shù)值

C.必須是正數(shù)

D.可以是任意合法的數(shù)值

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

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

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點有且僅有一個前件和后件

D.線性表可以是空表

9.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達式值的類型

C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型

D.函數(shù)定義時形參的類型

10.使用數(shù)組名作為函數(shù)的實參時,傳遞給形參的是()。

A.數(shù)組中第1個元素的值B.數(shù)組的首地址C.數(shù)組中全部元素的值D.數(shù)組元素的個數(shù)

11.第

17

若有條件表達式(exp)?a++:b--,則以下表達式中能完全等價于表達式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

12.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再復(fù)制到字符串str3之后

C.將字符串str2復(fù)制到字符串str1之后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串strl復(fù)制到字符串str3中

13.對于線性表(7,34,55,25,64,46,20,10)進行散列存儲時,若選用H(K)=K%9作為散列函數(shù),則散列地址為1的元素有()個。

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

14.若有定義:“inta,b,c,*p=&c;”,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。

A.scanf(“%d”,a,b,c);

B.scanf(“%d%d%d”,a,b,c);

C.scanf(“%d”,p);

D.scanf(“%d”,&p);

15.有以下程序:#include<stdio.h>#include<stdlib.h>main{int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序運行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3

16.有以下程序:#include<stdio.h>main(){inta=-2,b=2;for(;++a&&--b;)printf(“%d,%d\n”,a,b);}程序運行后的輸出結(jié)果是()。

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

17.軟件詳細(xì)設(shè)計產(chǎn)生的圖如圖所示。該圖是()。A.N—S圖B.PAD圖C.程序流程圖D.E—R圖

18.

19.下列說法錯誤的是______。

A.關(guān)系中每一個屬性對應(yīng)一個值域

B.關(guān)系中不同的屬性可對應(yīng)同一值域

C.對應(yīng)同一值域的屬性為不同的屬性

D.DOM(A)表示屬性A的取值范圍

20.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件

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

main()

{charc='z';

printf("%c",c-25);}

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

23.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

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

main()

{

intx=10,y=20,t=0

if(x==y)t=x;x=y;y=t;

printf("%d,%d/n",x,y);

}

25.執(zhí)行下列語句段后,x的值是______。

int*p,x;

x=100;

p=&x;

x=*p+50;

26.對軟件是否能達到用戶所期望的要求的測試稱為【】。

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

28.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

29.用樹型結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為【】。

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

#include<stdio.h>

main()

{inta=2,b=-1,C=2;

if(a<B)

if(b<O)c=0;

elsec++;

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

}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

primf("%d,%d%d\n",c,D);

}

32.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。

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

#include<stdio.h>

main()

{intx=10,y=10,i;

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

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

}

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

#include<stdio.h>

main()

{inti;

for(i-'a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

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

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

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

#include<stdio.h>

msin()

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

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

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

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

}

}

37.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

38.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和方法的機制稱為______。

39.在程序設(shè)計階段應(yīng)該采取【】和逐步求精的方法,把一個模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進而用某種程序設(shè)計語言寫成程序。

40.棧的基本運算有三種:入棧、退棧和【】。

三、1.選擇題(20題)41.以下標(biāo)識符不是關(guān)鍵字的是()。

A.breakB.charC.switchD.return

42.模塊本身的內(nèi)聚是模塊獨立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強內(nèi)聚的一類是__________。

A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚

43.C語言可執(zhí)行程序的開始執(zhí)行點是()。

A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

44.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運行后的輸出結(jié)果是______。

A.8B.10C.7D.11

45.假定w、x、y、m均為血型變量,則執(zhí)行下列的語句后,m的值是()。

w=6,x=4,y=3;

m=(w<x)?w:x;

m=(m<y)?m:y;

A.3B.4C.5D.6

46.若定義:inta=511,*b=&a;則printf(“%d\n”,*B);的輸出結(jié)果為

A.無確定值B.a的地址C.512D.511

47.

執(zhí)行下列程序中的輸出語句后,a的值是()。

main

{inta;

printf("%d\n",(a=2*3,a*5,a+7));

}

A.17B.37C.6D.13

48.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}執(zhí)行后的輸出結(jié)果是

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

49.按條件f對關(guān)系R進行選擇,其關(guān)系代數(shù)表達式是()。

A.R||R

B.

C.f(R)

D.f(R)

50.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄

B.數(shù)據(jù)行

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

D.字符(字節(jié))序列

51.若有如下程序:voids(char*m,intn){*m=*m+3;n=n+3;printf("%c,%c,",*m,n);}main(){charp='b',q='B';s(&q,p);printf("%c,%c\n",p,q);}則程序運行后的輸出結(jié)果是()

A.E,e,b,EB.e,E,b,F(xiàn)C.E,e,e,ED.e,E,b,E

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

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

53.在數(shù)據(jù)庫系統(tǒng)的組織結(jié)構(gòu)中,下列()映射把用戶數(shù)據(jù)庫與概念數(shù)據(jù)庫聯(lián)系了起來。

A.外模式/模式B.內(nèi)模式/外模式C.模式/內(nèi)模式D.內(nèi)模式/模式

54.下列敘述中正確的是_______。

A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鍵表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

55.下列哪個是面向?qū)ο蟪绦蛟O(shè)計不同于其他語言的主要特點?

A.繼承性B.消息傳遞C.多態(tài)性D.靜態(tài)聯(lián)編

56.若a、b、c、d都是血型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

57.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試

58.結(jié)構(gòu)化程序設(shè)計的3種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

59.下列程序的輸出結(jié)果是______。main(){char*s="12134211";intv[4]={0,0,0,0},k,i;for(k=0;s[k];k++){switch(s[k]){case'1':i=0;case'2':i=1;case'3':i=2;case'4':i=3;}vii]++;}for(k=O;k<4;k++)printf("%d",v[k]);}

A.4211B.0008C.4678D.8888

60.下面程序的輸出結(jié)果是()main(){intx=2,y=0,z;x+=3+2;printf("%d",x);x*=y(tǒng)=z=4;printf("%d",x);}

A.728B.無法計算C.7,4D.8,4

四、選擇題(20題)61.有定義如下:

structsk

{inta;

floatb;

}data,*p;

如果p=&data;則對于結(jié)構(gòu)變量data的成員a的正確引用時()

A)(*).data.aB)(*p).a

C)p->data.aD)p.data.a

62.若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的c語言表達式是()。

63.

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

main

{inti,k,a[10],p[3];

k=5;

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

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

for(i=0;i<3;i++)k+=p[i]*2;

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

}

A.20B.21C.22D.23

64.

65.設(shè)有charstr[10],下列語句正確的是

A.scanf("%s",&str);B.printf("%c",str);

C.printf("%s",str[0]);D.printf("%s",str);

66.以下程序的功能是進行位運算

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

A.43B.73C.70D.40

67.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性

68.有以下函數(shù)intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函數(shù)的功能是()。A.查找X和y所指字符串中是否有\(zhòng)o

B.統(tǒng)計x和Y所指字符串中最前面連續(xù)相同的字符個數(shù)

C.將Y所指字符串賦給X所指定存儲空間

D.統(tǒng)計X和Y所指字符串中相同的字符個數(shù)

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

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

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

A.有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)

B.只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)

C.循環(huán)鏈表是非線性結(jié)構(gòu)

D.雙向鏈表是非線性結(jié)構(gòu)

71.

72.(4)下面描述中,符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是______。

A.使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)表示程序的控制邏輯

B.模塊只有一個入口,可以有多個出口

C.注重提高程序的執(zhí)行效率

D.不使用goto語句

73.有以下程序:

#include<stdio.h>

intf(intx):

main

{intn=1,m;

m=f(f(f(n)));printf("%d\n",m);

}

intf(intx)

{returnx*2;)

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

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

74.已知字母A的ASCII碼為十進制的65,下面程序的輸出為()。

voidmain()

{charch1,ch2;

ch1=’A’+’5’-’3’;

ch2=’A’+6-3;

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

}

A.67,DB.B,CC.C,DD.不確定的值

75.

76.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運行后的輸出結(jié)果是______。

A.0B.70C.35D.1

77.

78.

79.

80.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。

A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若輸入的字符串是:“ab232bd34bkw”,則輸出結(jié)果是:“abbdbkw”。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫fun()函數(shù),其功能是:計算并輸出3~m所有素數(shù)的平方根之和。例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=63.665791。注意:m的值要大于2但不大于l00。部分源程序給出如下。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D解析:C語言覿定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實參傳給形參,而不能由形參傳回來給實參。函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。本題要求輸出aa[0]的值,結(jié)果應(yīng)為1。

2.B

3.B解析:本題考查循環(huán)嵌套,外層循環(huán)控制每一行的輸出,內(nèi)層循環(huán)的第一個for循環(huán)控制空格的輸出,第二個for循環(huán)控制的輸出。而在第i行,輸出的第一個元素是num[i][i],所以下劃線處應(yīng)填i。

4.C

5.B

6.D

7.C解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個結(jié)點。對于滿二叉樹,每一層上的結(jié)點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結(jié)點。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點在第5層上,即其結(jié)點數(shù)為2(k-1)=2(5-1)=16。

8.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C.是錯誤的。

9.A解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達式類型一致。如果函數(shù)值的類型和return語句中的表達式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動進行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。

10.B用數(shù)組名作為函數(shù)參數(shù)時,數(shù)組名退化為指針,傳遞給形參的是數(shù)組的首地址。故本題答案為B選項。

11.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式17表達式2:表達式3其求解順序是:先求解表達式1,若為非O(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。并且注意++、--的用法。

12.Cstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復(fù)制到s1字符串,要保證sl的容量。

13.D

14.Cscanf函數(shù)要求為:輸入的變量為地址形式。4個選項中,C選項符合要求。故本題答案為C選項。

15.A本題中,首先創(chuàng)建一個動態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同.的變量。分別給a、b、c所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量

16.A在語句“for(;++a&&--b;)”中,for循環(huán)的表達式1和表達式3為缺省項。首先判斷條件表達式“b”。當(dāng)“a=-2,b=2”時,第1次執(zhí)行“++a”和“--b”,條件表達式為真,循環(huán)條件成立。第2次執(zhí)行“++a”為0,由于運算符,當(dāng)?shù)?個條件為假時,不執(zhí)行第2個條件,因此“b=1”,發(fā)生短路,“--b”不再執(zhí)行。因此輸出的最終值為0,1。故本題答案為A選項。

17.CN-S圖(也被稱為盒圖或CHAPIN圖)、PAD(問題分析圖)及PFD(程序流程圖)是詳細(xì)設(shè)計階段的常用工具。E—R圖即實體一聯(lián)系圖,是數(shù)據(jù)庫設(shè)計的常用工具。從題中圖可以看出該圖屬于程序流程圖。

18.A

19.C解析:關(guān)系中每一個屬性都有一個取值范圍,稱為屬性的值域。每—個屬性對應(yīng)一個值域,不同屬性可對應(yīng)同一個值域。對應(yīng)同一值域的卻不一定是不同的屬性。屬性的值域用DOM(A)表示,A表示屬性的名稱。

20.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。

21.aa解析:“z”的ASCII碼值為122,經(jīng)過c-25運算后得97,以字符形式輸出是a。

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

23.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

24.20020,0解析:本題考查的知識點是if語句的基本概念。在主函數(shù)中首先定義了三個整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內(nèi)的條件表達式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句X=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。

25.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內(nèi)容,即100,所以x=100+50=150。

26.有效性測試有效性測試

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

28.整型整型解析:上面的表達式中,通過強制類型轉(zhuǎn)換把最后參與運算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。

29.層次模型用樹型結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為層次模型,用有向圖結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型,用二維表格結(jié)構(gòu)表示實體及其聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。

30.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個程序中a、b、c的值沒做任何改變。

31.7979解析:因為在調(diào)用子函數(shù)時進行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。

32.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或根據(jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。②循環(huán)鏈表中最后一個結(jié)點的指針不是空,而是指向表頭結(jié)點。

33.101091101091解析:for(表達式1;表達式2:表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達式3的值。然后再檢測表達式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)。

34.ACEACE解析:題目中for循環(huán)的循環(huán)變量i從字符'a'變到字符'e',但由于每次循環(huán)后都連續(xù)執(zhí)行了兩次i++,所以for循環(huán)將執(zhí)行3次,循環(huán)變量i的值依次為'a'、'c'、'e'。循環(huán)體中是一條輸出語句,按字符輸出表達式i-'a'+'A'。因為大小寫字母的ASCII碼是連續(xù)的,例如'b'+1='c'、'W'-1='V',而且小寫字母的ASCII碼比大寫字母的大。所以,同一個字母的大小寫字符之差是一個固定值。由此可見,將一個字符從小寫轉(zhuǎn)換為大寫,只需將其減去這個固定值,而將大寫轉(zhuǎn)為小寫可以加上這個固定值。固定值可以通過任一字符的小寫減去大寫來得到。所以本題的i-'a'+'A'=i-('a'-'A'),即讓i減去了此固定值,從而使整個表達式的值為i所代表的小寫字母的大寫形式。故本題的輸出結(jié)果是ACE。

35.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個元素輸出到文件fp中兩次,共10個字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中,此時數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為'1,2,3,0,0,1,2,3,0,0,'。

36.1371513715解析:程序中n是一個有5個元素,且元素值全為0的數(shù)組。在for循環(huán)中,當(dāng)i=1時,n[1]=n[0]*2+1,此時n[1]=1;i=2時,n[2]=n[1]*2+1,此時n[2]=3;i=3時,n[3]=n[2]*2+1,此時n[3]=7;i=4時,n[4]=n[3]*2+1,此時n[4]=15,循環(huán)結(jié)束。輸出函數(shù)中%d后有空格,因此輸出結(jié)果為13715。

37.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。

38.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。

39.自頂而下自頂而下

40.讀棧頂元素讀棧頂元素解析:棧的基本運算有三種:入棧、退棧和讀棧頂元素。

入棧運算是指在棧頂位置插入一個新元素。這個運算有兩個基本操作:首先將棧頂指針進一(即top加1),然后將新元素插入到棧頂指針指向的位置。

退棧運算是指取出棧頂元素并賦給一個指定的變量。這個運算有兩個基本操作:首先將棧頂元素(棧頂指針指向的元素)賦給一個指定的變量,然后將棧頂指針退一(即top減1)。

讀棧頂元素是指將棧頂元素賦給一個指定的變量。這個運算不刪除棧頂元素,只是將它的值賦給一個變量。

41.C解析:此題考查標(biāo)識符和關(guān)鍵字的概念。需要注意的是C語言是區(qū)分大小寫的,switch是關(guān)鍵字,但Switch不是關(guān)鍵字。

42.D解析:內(nèi)聚性是一個模塊內(nèi)部各元素間彼此結(jié)合的緊密程度的度量。內(nèi)聚是從功能角度來度量模塊內(nèi)的聯(lián)系。內(nèi)聚共有7類,它們之㈨的內(nèi)聚性由弱到強排列順序為:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。

43.C解析:每個C程序有且只有一個主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。

44.A解析:本題中定義一個全局變量a和一個局部變量a。局部變量和全局變量的不同在于,局部變量的存儲單元都是在進入這些局部變量所在的函數(shù)體(或復(fù)合語句)時生成,退出其所在的函數(shù)體(或復(fù)合語句)時消失,而全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域從變量定義的位置開始,到整個源文件結(jié)束為止。若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽,在該函數(shù)內(nèi),起作用的將是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。在程序中首先定義了變量s并賦值為0,接著在嵌套的復(fù)合語句{}中定義了變量a并賦初值為5,接著執(zhí)行語句s+=a+a;在這條語句中a加1,但表達式a++還是原來的值,故s=s+5,s為5,程序執(zhí)行到外層,此時{}內(nèi)定義的變量a不再有效,此時的變量a為{}之前定義的且初值為3,接著執(zhí)行{}后面的語句s+=a++;相當(dāng)于執(zhí)行語句s=s+(++);即s=5+3,最后值為8,所以最后輸出的s值為8。所以4個選項中A正確。

45.A解析:條件表達式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達式b的值,當(dāng)a為假時,其值等于表達式c的值。第一個表達式:w=6<x=4為假,所以返回x的值,即m=x=4:第二個表達式:m=4<y=3為假,所以返回y的值,即m=y=3。

46.D解析:本題考核的知識點是printf()函數(shù)的輸出格式.本題中先定義了一個int型的變量a并賦初值為511,接著定義了一個指向a的指針變量b,在printf()函數(shù)的輸出格式中,是輸出*b,即輸出指針?biāo)赶蜃兞縜的值為511,因此輸出511。所以,4個選項中D為所選。

47.C解析:本題考查逗號表達式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。

48.A解析:本題考核的知識點是數(shù)組的定義、賦初值以及函數(shù)調(diào)用的組合應(yīng)用.本題中函數(shù)sum(int*A)的作用是:將形參a所指的數(shù)組中的第二個元素的值a[1]賦給第一個元素a[0]。主函數(shù)中定義一個長度為10的整型數(shù)組并賦初值,接著執(zhí)行一個for循環(huán),該循環(huán)共執(zhí)行了3次.當(dāng)i=2時,調(diào)用函數(shù)sum(&aa[2]),主函數(shù)中將&aa[2]作為實參傳給行參a,所以此時形參a所指的數(shù)組的第一個元素和第二個元素分別為aa[2]和aa[3],故執(zhí)行完該函數(shù)后將aa[3]的值賦給aa[2],即aa[1]=aa[3]=4,當(dāng)i=1時,調(diào)用函數(shù)sum(&aa[1]),主函數(shù)中將&aa[1]作為實參傳給行參a,所以此時形參a所指的數(shù)組的第一個元素和第二個元素分別為aa[1]和aa[2],故執(zhí)行完該函數(shù)后將aa[2]的值賦給aa[1],即aa[1]=aa[2]=4;當(dāng)i=0時;調(diào)用函數(shù)sum(&aa[0]),,主函數(shù)中將&aa[0]作為實參傳給行參a,所以此時形參a所指的數(shù)組的第一個元素和第二個元素分別為aa[0]和aa[1],故執(zhí)行完該函數(shù)后將aa[1]的值賦給aa[0],即aa[0]=aa[1]=4;故最后輸出的aa[0]的值為4,所以,4個選項中選項A符合題意。

49.C解析:選項A表示關(guān)系R與關(guān)系R進行自然連接;選項B表示關(guān)系R與關(guān)系R按條件f做連接運算;選項C表示按條件f對關(guān)系R做選擇運算;選項D表示在域f上對關(guān)系R做投影運算。

50.D解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構(gòu)文件,即整個文件是一串字符流或二進制流。文件的存取以字符或字節(jié)為單位。

51.A

52.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次冪

53.AA)【解析】數(shù)據(jù)庫有兩層映像,即外模式/模式和模式/內(nèi)模式映像。模式/內(nèi)模式映像定義數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。

54.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

55.A解析:繼承是一個子類直接使用父類的所有屬性和方法。它可以減少相似的類的重復(fù)說明,從而體現(xiàn)出一般性與特殊性的原則,這使得面向?qū)ο蟪绦蛟O(shè)計語言有了良好的重用性,也是其不同于其他語言的主要特點。故答案為A。

56.A解析:C語言規(guī)定,賦值號的右邊可以是一個賦值表達式,因此選項C)、選項D)正確;在選項B)中,a++是一個自加1的表達式,a被重新賦值,因此它是一個合法的賦值表達式;在選項A)中,a+d是一個算術(shù)表達式,雖然最后有一個分號,但這個表達式中沒有賦值操作,因此它不是一條賦值語句。

57.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。

(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

58.D結(jié)構(gòu)化程序設(shè)計的基本要點:①采用自頂向下、逐步求精的程序設(shè)計方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)構(gòu)造。

59.B

60.A

61.B結(jié)構(gòu)體變量的引用。

62.AB)選項中函數(shù)pow(x,e)錯誤,應(yīng)該直接使用exp(x)i垂i數(shù)。c)選項中函數(shù)abs(n^x+e^x)錯誤,應(yīng)該使用fabs()返回浮點數(shù)的絕對值。D)選項中pow(x,n)參數(shù)順序錯誤。本題正確答案為A)。

63.B

\n第一個循環(huán)的作用是把從0~9的數(shù)賦

\n給a數(shù)組;第二個循環(huán)的作用是把a數(shù)組中的部分元素放到數(shù)組P中,即p[0]=a[0]=0,p[1]=a[2]=2,p[2]=a[6]=6;第三個循環(huán)的作用是把P中的各個元素的兩倍之和放到k中,即k=5+0+4+12=21。

\n

64.B

65.D本題主要考查字符數(shù)組的引用。題目中定義了一個大小為10的字符數(shù)組str。下面分別分析每個選項。

在選項A中,從scanf('%s',&str);語句的輸入列表&str可以知道此語句不正確,因為str是數(shù)組名,本身就表示一個地址,再加一個取地址符&,使表示方法不正確。

在選項B中,由于printf('%c',str);語句的輸出格式表示輸出單個字符,而輸出列表中的str表示一個地址,而不是數(shù)值,表示方法不對。

在選項C中,由于printf('%s',str[0]);語句的輸出格式表示輸出一個字符串,而輸出列表中的str[0]表示一個字符,表示方法不對。

在選項D中,由于printf('%s',str);語句的輸出格式表示輸出一個字符串,而輸出列表中的str表示一個字符串的首地址,通過這個方式可以實現(xiàn)輸出str所指向的字符串。

66.A本題考查的是位運算。c語言提供六種

67.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口。

[知識拓展]模塊的獨立程序是評價設(shè)計好壞的一個重要標(biāo)準(zhǔn),衡量軟件的模塊獨立性有兩個定性的度量標(biāo)準(zhǔn)。其中內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度最,內(nèi)聚性是從功能角度來度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量,耦合性從整體的角度來度量模塊間的聯(lián)系。

68.B由題中while(*x==*y*x!=\\n)可知此函數(shù)是統(tǒng)計x和y所指向的字符串中最前面的聯(lián)系相同的字符的個數(shù)。

69.A本題中遇到‘\\’字符循環(huán)結(jié)束,因此只統(tǒng)計‘\\’之前的數(shù)字字符,結(jié)果為3。

70.B解析:如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個條件:(l)有且只有一個根結(jié)點;(2)每個結(jié)點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線性結(jié)構(gòu),故A項錯誤。有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu),如二叉樹,B項說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項錯誤。

71.A

72.A

73.D本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結(jié)果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

74.A將字符進行運算時,進行運算的是ASCII值,所以ch1=65+2=67(‘5’與’3’的ASCII值差為2),ch2=65+6-3=68.

75.D

76.C解析:位與運算是將兩個運算分量看作兩個二進制數(shù),然后對兩個二進制數(shù)的相應(yīng)位進行與運算,若同時為1則結(jié)果相應(yīng)位為1,否則結(jié)果相應(yīng)位為0。因此,當(dāng)兩個運算分量相同時,它們的相應(yīng)位肯定也相同,即不同為1就同為0。所以得到的結(jié)果和運算分量也相同。所以,4個選項中選項C)符合題意。

77.B

78.B

79.C\r\n

80.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說明它前面還有i行,有i*m個元素,數(shù)組第二維的下標(biāo)是j,說明它前面還有j列,有j個元素,所以共有i*m+j個元素。

81.

82.

【解析】首先判斷循環(huán)中n是否為素數(shù),如果不是素數(shù),求其平方根的累加和,并返回計算結(jié)果,否則跳出判斷循環(huán)。其中,對于平方根的求解可以使用C語句中的sqrt()函數(shù)。

2022年內(nèi)蒙古自治區(qū)鄂爾多斯市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序運行后的輸出結(jié)果是______。

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

2.二進制數(shù)1110111.11轉(zhuǎn)換成十進制數(shù)是()。

A.119.375B.119.75C.119.125D.119.3

3.有以下程序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]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是

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

4.在下面的二維數(shù)組定義中,正確的是()。

A.inta[5][];

B.inta[][5];

C.inta[][3]={{1,3,5},{2}};

D.inta[](10);

5.設(shè)"char**s;",以下正確的表達式是()。

A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';

6.if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是A.A.必須是邏輯值

B.必須是整數(shù)值

C.必須是正數(shù)

D.可以是任意合法的數(shù)值

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

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

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點有且僅有一個前件和后件

D.線性表可以是空表

9.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達式值的類型

C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型

D.函數(shù)定義時形參的類型

10.使用數(shù)組名作為函數(shù)的實參時,傳遞給形參的是()。

A.數(shù)組中第1個元素的值B.數(shù)組的首地址C.數(shù)組中全部元素的值D.數(shù)組元素的個數(shù)

11.第

17

若有條件表達式(exp)?a++:b--,則以下表達式中能完全等價于表達式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

12.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再復(fù)制到字符串str3之后

C.將字符串str2復(fù)制到字符串str1之后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串strl復(fù)制到字符串str3中

13.對于線性表(7,34,55,25,64,46,20,10)進行散列存儲時,若選用H(K)=K%9作為散列函數(shù),則散列地址為1的元素有()個。

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

14.若有定義:“inta,b,c,*p=&c;”,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。

A.scanf(“%d”,a,b,c);

B.scanf(“%d%d%d”,a,b,c);

C.scanf(“%d”,p);

D.scanf(“%d”,&p);

15.有以下程序:#include<stdio.h>#include<stdlib.h>main{int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序運行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3

16.有以下程序:#include<stdio.h>main(){inta=-2,b=2;for(;++a&&--b;)printf(“%d,%d\n”,a,b);}程序運行后的輸出結(jié)果是()。

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

17.軟件詳細(xì)設(shè)計產(chǎn)生的圖如圖所示。該圖是()。A.N—S圖B.PAD圖C.程序流程圖D.E—R圖

18.

19.下列說法錯誤的是______。

A.關(guān)系中每一個屬性對應(yīng)一個值域

B.關(guān)系中不同的屬性可對應(yīng)同一值域

C.對應(yīng)同一值域的屬性為不同的屬性

D.DOM(A)表示屬性A的取值范圍

20.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件

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

main()

{charc='z';

printf("%c",c-25);}

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

23.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

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

main()

{

intx=10,y=20,t=0

if(x==y)t=x;x=y;y=t;

printf("%d,%d/n",x,y);

}

25.執(zhí)行下列語句段后,x的值是______。

int*p,x;

x=100;

p=&x;

x=*p+50;

26.對軟件是否能達到用戶所期望的要求的測試稱為【】。

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

28.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

29.用樹型結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為【】。

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

#include<stdio.h>

main()

{inta=2,b=-1,C=2;

if(a<B)

if(b<O)c=0;

elsec++;

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

}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

primf("%d,%d%d\n",c,D);

}

32.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。

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

#include<stdio.h>

main()

{intx=10,y=10,i;

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

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

}

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

#include<stdio.h>

main()

{inti;

for(i-'a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

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

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

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

#include<stdio.h>

msin()

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

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

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

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

}

}

37.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

38.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和方法的機制稱為______。

39.在程序設(shè)計階段應(yīng)該采取【】和逐步求精的方法,把一個模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進而用某種程序設(shè)計語言寫成程序。

40.棧的基本運算有三種:入棧、退棧和【】。

三、1.選擇題(20題)41.以下標(biāo)識符不是關(guān)鍵字的是()。

A.breakB.charC.switchD.return

42.模塊本身的內(nèi)聚是模塊獨立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強內(nèi)聚的一類是__________。

A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚

43.C語言可執(zhí)行程序的開始執(zhí)行點是()。

A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

44.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運行后的輸出結(jié)果是______。

A.8B.10C.7D.11

45.假定w、x、y、m均為血型變量,則執(zhí)行下列的語句后,m的值是()。

w=6,x=4,y=3;

m=(w<x)?w:x;

m=(m<y)?m:y;

A.3B.4C.5D.6

46.若定義:inta=511,*b=&a;則printf(“%d\n”,*B);的輸出結(jié)果為

A.無確定值B.a的地址C.512D.511

47.

執(zhí)行下列程序中的輸出語句后,a的值是()。

main

{inta;

printf("%d\n",(a=2*3,a*5,a+7));

}

A.17B.37C.6D.13

48.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}執(zhí)行后的輸出結(jié)果是

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

49.按條件f對關(guān)系R進行選擇,其關(guān)系代數(shù)表達式是()。

A.R||R

B.

C.f(R)

D.f(R)

50.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄

B.數(shù)據(jù)行

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

D.字符(字節(jié))序列

51.若有如下程序:voids(char*m,intn){*m=*m+3;n=n+3;printf("%c,%c,",*m,n);}main(){charp='b',q='B';s(&q,p);printf("%c,%c\n",p,q);}則程序運行后的輸出結(jié)果是()

A.E,e,b,EB.e,E,b,F(xiàn)C.E,e,e,ED.e,E,b,E

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

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

53.在數(shù)據(jù)庫系統(tǒng)的組織結(jié)構(gòu)中,下列()映射把用戶數(shù)據(jù)庫與概念數(shù)據(jù)庫聯(lián)系了起來。

A.外模式/模式B.內(nèi)模式/外模式C.模式/內(nèi)模式D.內(nèi)模式/模式

54.下列敘述中正確的是_______。

A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鍵表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

55.下列哪個是面向?qū)ο蟪绦蛟O(shè)計不同于其他語言的主要特點?

A.繼承性B.消息傳遞C.多態(tài)性D.靜態(tài)聯(lián)編

56.若a、b、c、d都是血型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

57.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試

58.結(jié)構(gòu)化程序設(shè)計的3種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

59.下列程序的輸出結(jié)果是______。main(){char*s="12134211";intv[4]={0,0,0,0},k,i;for(k=0;s[k];k++){switch(s[k]){case'1':i=0;case'2':i=1;case'3':i=2;case'4':i=3;}vii]++;}for(k=O;k<4;k++)printf("%d",v[k]);}

A.4211B.0008C.4678D.8888

60.下面程序的輸出結(jié)果是()main(){intx=2,y=0,z;x+=3+2;printf("%d",x);x*=y(tǒng)=z=4;printf("%d",x);}

A.728B.無法計算C.7,4D.8,4

四、選擇題(20題)61.有定義如下:

structsk

{inta;

floatb;

}data,*p;

如果p=&data;則對于結(jié)構(gòu)變量data的成員a的正確引用時()

A)(*).data.aB)(*p).a

C)p->data.aD)p.data.a

62.若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的c語言表達式是()。

63.

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

main

{inti,k,a[10],p[3];

k=5;

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

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

for(i=0;i<3;i++)k+=p[i]*2;

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

}

A.20B.21C.22D.23

64.

65.設(shè)有charstr[10],下列語句正確的是

A.scanf("%s",&str);B.printf("%c",str);

C.printf("%s",str[0]);D.printf("%s",str);

66.以下程序的功能是進行位運算

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

A.43B.73C.70D.40

67.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性

68.有以下函數(shù)intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函數(shù)的功能是()。A.查找X和y所指字符串中是否有\(zhòng)o

B.統(tǒng)計x和Y所指字符串中最前面連續(xù)相同的字符個數(shù)

C.將Y所指字符串賦給X所指定存儲空間

D.統(tǒng)計X和Y所指字符串中相同的字符個數(shù)

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

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

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

A.有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)

B.只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)

C.循環(huán)鏈表是非線性結(jié)構(gòu)

D.雙向鏈表是非線性結(jié)構(gòu)

71.

72.(4)下面描述中,符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是______。

A.使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)表示程序的控制邏輯

B.模塊只有一個入口,可以有多個出口

C.注重提高程序的執(zhí)行效率

D.不使用goto語句

73.有以下程序:

#include<stdio.h>

intf(intx):

main

{intn=1,m;

m=f(f(f(n)));printf("%d\n",m);

}

intf(intx)

{returnx*2;)

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

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

74.已知字母A的ASCII碼為十進制的65,下面程序的輸出為()。

voidmain()

{charch1,ch2;

ch1=’A’+’5’-’3’;

ch2=’A’+6-3;

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

}

A.67,DB.B,CC.C,DD.不確定的值

75.

76.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運行后的輸出結(jié)果是______。

A.0B.70C.35D.1

77.

78.

79.

80.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。

A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若輸入的字符串是:“ab232bd34bkw”,則輸出結(jié)果是:“abbdbkw”。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫fun()函數(shù),其功能是:計算并輸出3~m所有素數(shù)的平方根之和。例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=63.665791。注意:m的值要大于2但不大于l00。部分源程序給出如下。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D解析:C語言覿定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實參傳給形參,而不能由形參傳回來給實參。函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。本題要求輸出aa[0]的值,結(jié)果應(yīng)為1。

2.B

3.B解析:本題考查循環(huán)嵌套,外層循環(huán)控制每一行的輸出,內(nèi)層循環(huán)的第一個for循環(huán)控制空格的輸出,第二個for循環(huán)控制的輸出。而在第i行,輸出的第一個元素是num[i][i],所以下劃線處應(yīng)填i。

4.C

5.B

6.D

7.C解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個結(jié)點。對于滿二叉樹,每一層上的結(jié)點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結(jié)點。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點在第5層上,即其結(jié)點數(shù)為2(k-1)=2(5-1)=16。

8.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C.是錯誤的。

9.A解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達式類型一致。如果函數(shù)值的類型和return語句中的表達式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動進行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。

10.B用數(shù)組名作為函數(shù)參數(shù)時,數(shù)組名退化為指針,傳遞給形參的是數(shù)組的首地址。故本題答案為B選項。

11.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式17表達式2:表達式3其求解順序是:先求解表達式1,若為非O(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。并且注意++、--的用法。

12.Cstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復(fù)制到s1字符串,要保證sl的容量。

13.D

14.Cscanf函數(shù)要求為:輸入的變量為地址形式。4個選項中,C選項符合要求。故本題答案為C選項。

15.A本題中,首先創(chuàng)建一個動態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同.的變量。分別給a、b、c所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量

16.A在語句“for(;++a&&--b;)”中,for循環(huán)的表達式1和表達式3為缺省項。首先判斷條件表達式“b”。當(dāng)“a=-2,b=2”時,第1次執(zhí)行“++a”和“--b”,條件表達式為真,循環(huán)條件成立。第2次執(zhí)行“++a”為0,由于運算符,當(dāng)?shù)?個條件為假時,不執(zhí)行第2個條件,因此“b=1”,發(fā)生短路,“--b”不再執(zhí)行。因此輸出的最終值為0,1。故本題答案為A選項。

17.CN-S圖(也被稱為盒圖或CHAPIN圖)、PAD(問題分析圖)及PFD(程序流程圖)是詳細(xì)設(shè)計階段的常用工具。E—R圖即實體一聯(lián)系圖,是數(shù)據(jù)庫設(shè)計的常用工具。從題中圖可以看出該圖屬于程序流程圖。

18.A

19.C解析:關(guān)系中每一個屬性都有一個取值范圍,稱為屬性的值域。每—個屬性對應(yīng)一個值域,不同屬性可對應(yīng)同一個值域。對應(yīng)同一值域的卻不一定是不同的屬性。屬性的值域用DOM(A)表示,A表示屬性的名稱。

20.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。

21.aa解析:“z”的ASCII碼值為122,經(jīng)過c-25運算后得97,以字符形式輸出是a。

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

23.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

24.20020,0解析:本題考查的知識點是if語句的基本概念。在主函數(shù)中首先定義了三個整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內(nèi)的條件表達式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句X=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。

25.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內(nèi)容,即100,所以x=100+50=150。

26.有效性測試有效性測試

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

28.整型整型解析:上面的表達式中,通過強制類型轉(zhuǎn)換把最

溫馨提示

  • 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

提交評論