2021-2022年山東省日照市全國計算機等級考試C語言程序設(shè)計_第1頁
2021-2022年山東省日照市全國計算機等級考試C語言程序設(shè)計_第2頁
2021-2022年山東省日照市全國計算機等級考試C語言程序設(shè)計_第3頁
2021-2022年山東省日照市全國計算機等級考試C語言程序設(shè)計_第4頁
2021-2022年山東省日照市全國計算機等級考試C語言程序設(shè)計_第5頁
已閱讀5頁,還剩104頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年山東省日照市全國計算機等級考試C語言程序設(shè)計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.C語言中邏輯表達式的值為()

A.0或1B.非零值或者零值C.ture或falseD.'ture'或者'false'

3.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

4.

5.在Internet中,域名服務器的主要功能是實現(xiàn)()的轉(zhuǎn)換。

A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問

6.已知廣義表:A=(a,b),B=(A,A),C=(a,(b,A),B),tail(head(tail(C)))的運算結(jié)果是()。

A.(a)B.AC.aD.(A)

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

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強

8.

9.以下程序運行后,輸出結(jié)果是()#include<stdio.h>ss(char*s){char*p=s;while(*p)p++return(p-s);}main(){char*a=“abded”inti;i=ss(a);printf(“%d\n”,i);}A.8B.7C.6D.5

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

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

11.下列對于線性鏈表的描述中正確的是()。

A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

12.

13.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的運行結(jié)果是()。

A.acc,bbxxyy

B.accbbxxyy,bbxxyy

C.accxxyy,bbxxyy

D.accxyy,bbxxyy

14.下面關(guān)于圖的存儲的敘述中正確的是()。

A.用鄰接表法存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點個數(shù)無關(guān)

B.用鄰接表法存儲圖,占用的存儲空間大小與圖中邊數(shù)和頂點個數(shù)都有關(guān)

C.用鄰接矩陣法存儲圖,占用的存儲空間大小與圖中頂點個數(shù)和邊數(shù)無關(guān)

D.用鄰接矩陣存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點個數(shù)無關(guān)

15.有以下程序:#includeintadd(inta,intb){return(a+b);}Main(){Intk,(*f)(),a=5,b=10;f=add;...}則以下函數(shù)調(diào)用語句錯誤的是()。A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);

16.已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97"C.c=97D.c="a"

17.帶有頭節(jié)點的單向鏈表head,其3個數(shù)據(jù)節(jié)點A、B、C的連接關(guān)系如下圖所示:節(jié)點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點,在不改變P指向的前提下,以下選項中不能訪問C節(jié)點數(shù)據(jù)成員dt的表達式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

18.采用折半查找法查找長度為n的線性表時,每個元素的平均查找長度為()。

A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)

19.設(shè)有6個結(jié)點的無向圖,該圖至少應有()條邊才能確保是一個連通圖。

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

20.在一個元素個數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時間復雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)

二、2.填空題(20題)21.若有定義:inta=10,b=8,c=4;然后順序執(zhí)行下列語句后,變量a中的值是()。c=(b-=(a-4));a=(c%2)+(b-1);

22.設(shè)y是int型變量,請寫出y為奇數(shù)的關(guān)系表達式【】。

23.要使以下程序段輸出10個整數(shù),請?zhí)钊胍粋€整數(shù);

for(i=0;i<=【】;printf("%d\n",i+=2));

24.設(shè)x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。

25.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)—管理與控制。

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=a;a=C;c=t;

if(a<c&&b<c)t=b;b=a;a=t

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

}

27.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

28.【】是指一個數(shù)據(jù)對象中的各個數(shù)據(jù)元素之間存在的聯(lián)系。

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

【】(double,double);

main()

{doublex,y;

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

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

}

doublemax(doublea,doubleb)

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

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

31.下面程序的功能是:將字符數(shù)組a中下標值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

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

for(j=i+2;j<=k;j+=2;)

if(【】)

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

puts(a);printf("\n");

}

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

33.下面程序

main()

{inti,j,m,n;

i=5;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

運行后,i,j,m,n的值分別是_______。

34.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進行測試。

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

main()

{inta[]={31,27,20,12,6,1},*p=a;

p++;

printf("%d\n",*(p+2));

}

36.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。

word_num(str)

for(i=0;str[i]!=【】;i++)

if(【】='')word=0;

【】;

}

return(num);

}

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

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2,&b,*p;

*(p=&c)=*p1*(*p2);

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

}

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

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

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

40.以下程序用于判斷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)成三解形*/

}

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

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

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

43.在下列敘述中,正確的一條是______。A.if(表達式)語句中,表達式的類型只限于邏輯表達式

B.語句“goto12;”是合法的

C.for(;;)語句相當于while(1)語句

D.break語句可用于程序的任何地方,以終止程序的執(zhí)行

44.軟件需求分析階段的工作,可以分為四個方面:需求獲取、編寫需求規(guī)格說明書、需求評審和()

A.階段性報告B.需求分析C.需求總結(jié)D.都不正確

45.下列程序執(zhí)行后的輸出結(jié)果是______。#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+b));}

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

46.定義int*swap()指的是______。

A.—個返回整型值的函數(shù)swap()

B.一個返回指向整型值指針的函swap()

C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值

D.以上說法均錯

47.以下所列的各函數(shù)首部中,正確的是______。

A.voidplay(vara:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

48.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運行后的輸出結(jié)果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

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

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

50.對下面的程序進行編譯與連接生成可執(zhí)行文件c.exe,并在DOS命令提示符下輸入:cIsaid"IloveChina"!程序代碼如下:main(intargc,char*argv[]){printf("%d",argC);}其輸出結(jié)果為______。

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

51.有以下程序:#include<stdio.h>voidfun(int*s,intnl,intn2){inti,j,t;i=nl;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序運行的結(jié)果是()。

A.9.87654e+008B.4.3211e+009C.5.6789e+009D.9.87651e+008

52.有一個深度為4的滿二叉樹,下面關(guān)于序號為7的結(jié)點的敘述中,正確的是______。

A.該結(jié)點雙親的序號為4B.該結(jié)點處于二叉樹的第4層C.該結(jié)點沒有右子樹D.該結(jié)點左子樹根結(jié)點的序號為14

53.下列程序的輸出結(jié)果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=ifor(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

54.若有如下程序:structstudent{charname[10];floatscore[3];}stu[3]={{"lili",75,90,90},{"liudan",90,85,75};{"guoli",85,85,70}};main(){inti;floatsum=0,aver;for(i=0;i<3;i++)sum=sum+stu[i].score[1];aver=sum/i;printf("%6.2f\n",aver);}則程序運行后的輸出結(jié)果是()

A.83.33B.85C.86D.86.67

55.在C語言中,要求運算數(shù)必須是整型的運算符是()

A.%B./C.<D.!

56.不合法的main函數(shù)命令行參數(shù)表示形式是______。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

57.設(shè)有以下語句:charstrl[]="string",str2[8],*str3,*str4="string";則_______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(strl,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

58.在面向?qū)ο蟮某绦蛟O(shè)計中,下列敘述錯誤的是()。

A.任何一個對象構(gòu)成一個獨立的模塊

B.一個對象不是獨立存在的實體,各個對象之間有關(guān)聯(lián),相互依賴

C.下一層次的對象可以繼承上一層次對象的某些屬性

D.上述三種說法都正確

59.字符型數(shù)據(jù)在機器中用ASCII碼表示,字符“5”和“7”在機器中表示為()。

A.10100011和01110111

B.01000101和01100011

C.00110101和00110111

D.01100101和01100111

60.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}

A.6,2B.6,4C.8,4D.8,6

四、選擇題(20題)61.

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

voidfun(int*a,inti,inti)

{intt;

if(i<i)

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

i++;j--;fun(a,i,j);

}

}

main

{intK[]={2,6,1,8},i;

fun(x,0,3);

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

printf("\n");

}

A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2

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

A.C語句必須在一行內(nèi)寫完

B.C程序中的每一行只能寫一條語句

C.C語言程序中的注釋必須與語句寫在同一行

D.簡單C語句必須以分號結(jié)束

63.

64.

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

A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

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

D.循環(huán)隊列是一種邏輯結(jié)構(gòu)

66.

67.有以下程序:

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

A.7.5B.31.5C.程序有錯無輸出結(jié)果D.14.0

68.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式

69.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9

70.結(jié)構(gòu)化程序設(shè)計的基本原則不包括A.多態(tài)性B.自頂向下C.模塊化D.逐步求精

71.

72.以下選項中,當x為大于1的奇數(shù)時,值為0的表達式是()。

A.x%2==0B.x/2C.x%21=0D.x%2==1

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

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

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

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

D.線性表可以是空表

74.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。A.A.*p=&a;scanf("%1f”,p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%",*p);

D.p=&a;scanf("%1f",p);

75.

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

A.屬性B.事件C.方法D.類

77.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()0、

A.雙向鏈表

B.帶鏈的棧

C.二叉鏈表

D.循環(huán)鏈表

78.以下關(guān)于簡單程序設(shè)計的步驟和順序的說法中正確的是()。

A.確定算法后,整理并寫出文檔,最后進行編碼和上機調(diào)試

B.首先確定數(shù)據(jù)結(jié)構(gòu),然后確定算法,再編碼,并上機調(diào)試,最后整理文檔

C.先編碼和上機調(diào)試,在編碼過程中確定算法和數(shù)據(jù)結(jié)構(gòu),最后整理文檔

D.先寫好文檔,再根據(jù)文檔進行編碼和上機調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構(gòu)

79.有以下程序:

#include<stdio.h>

main

{inta=1,b=2;

while(a<6){b+=a;a4+=2;b%=10;)

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

}

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

A.5,11B.7,1C.7,11D.6,1

80.

五、程序改錯題(1題)81.下列給定程序的功能是:讀入一個整數(shù)n(2<=n<=5000),打印它的所有為素數(shù)的因子。例如,若輸入整數(shù)1234,則應輸出:2,617。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

//****found****

Prime(intm);

{

intj,P;

p=1;

//****found****

for(j=2;j<m;j++)

if!(m%j)

{

p=0;

break;

}

return(p);inti,n;

printf("\npleaseenteranintegernumberbetween2

and5000:");

scanf("%d",&n);

printf("\n\nTheprimefactor(s)of%dis(are):",n):

for(i=2;i<n;i4+)

if((!(n%i))&&(Prime(i)))

printf("%4d,",i);

printf("\n");

}

六、程序設(shè)計題(1題)82.編寫fun()函數(shù),它的功能是:利用以下所示的簡單迭代方法求方程cos(y)-y=0的一個實根。

yn+1=cos(yn)

迭代步驟如下:

(1)取y1初值為0.0;

(2)y0=y1,把y1的值賦給y0;

(3)y1=cos(y0),求出一個新的y1;

(4)若y0=y1的絕對值小于0.000001,則執(zhí)行步驟

(5),否則執(zhí)行步驟(2);

(5)所求y1就是方程COS(y)-y=0的一個實根,作為函數(shù)值返回。

程序?qū)⑤敵鼋Y(jié)果Result=0.739085。

請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。

部分源程序給出如下。

試題程序:

參考答案

1.D

2.A

3.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)

4.A

5.B在Internet中,把域名翻譯為IP地址的軟件稱為域名系統(tǒng)DNS,運行域名系統(tǒng)的主機稱為域名服務器。域名服務器的主要功能是實現(xiàn)入網(wǎng)主機名字和IP地址的轉(zhuǎn)換。

6.D

7.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。

8.B

9.D

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

11.A解析:在鏈式存儲結(jié)構(gòu)中,存儲數(shù)據(jù)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,數(shù)據(jù)元素之間的邏輯關(guān)系,是由指針域來確定的。由此可見,選項A的描述正確。因此,本題的正確答案為A。

12.A

13.B在函數(shù)fun中,前一個while循環(huán)的作用是,如果形參指針t所指內(nèi)容不為0,則讓t增1,直到它指向0;后一個while循環(huán)的作用是,將s所指內(nèi)容賦給t所指地址,然后兩者同時增1,直到賦給t的內(nèi)容為0。由此可見,函數(shù)fun的作用就是將形參s所指字符串連接到形參t所指字符串末尾,相當于庫函數(shù)strcat。主函數(shù)中使用fun將數(shù)組aa中的字符串連接到數(shù)組ss中原有字符串之后,所以執(zhí)行完后,ss中的字符串為“accbbxxyy”。程序最后輸出的結(jié)果是accbbxxyy,bbxxyy。故本題答案為B選項。

14.B

15.DD)選項中*f(a,b)表示調(diào)用后返回一個指向整型數(shù)據(jù)的地址指針,即該函數(shù)的返回值為指針類型,所以不能將其賦值給整形變量k。

16.C解析:本題考核的知識點是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。

17.Alink結(jié)構(gòu)體中的next是鏈表中下一個節(jié)點的地址。由于p當前指向節(jié)點A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節(jié)點數(shù)據(jù)成員dt可以使用C的地址訪問,即p->next->next->dt,選項B正確?;蛘呤褂媒庖谩?”運算符:(*p)表示節(jié)點A,(*p).next表示B的地址,*((*p).next)表示節(jié)點B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點C,所以C的數(shù)據(jù)成員dt可以表示為(*((*(*p).next).next)).dt,因為“.”運算符優(yōu)先級高于“*”運算符,所以也可以寫為(*(*(*p).next).next).dt,選項C正確。同理,也可以既使用指針運算符,又使用解引用運算符來訪問C的節(jié)點數(shù)據(jù)成員dt,即(*(p->next->next)).dt,選項D正確。選項A中,*p表示A節(jié)點,(*p).next表示節(jié)點B的地址,由于“->”運算符的優(yōu)先級高于“*”運算符,因此先執(zhí)行“->”,即表達式(*p).next->next->dt引用了C節(jié)點的數(shù)據(jù)成員dt,然后再執(zhí)行解引用運算“*”,這是錯誤的。故本題答案為A選項。

18.D

19.A:在一個無向圖G中,若從頂點Vi到頂點Vj有路徑相連,則稱Vi和Vj是連通的。連通圖是指任意兩個結(jié)點之間都有一個路徑相連。6個節(jié)點的無向圖,至少要5個邊才能確保是任意兩個節(jié)點之間都有路徑相連。下圖是一種可能的連接方式:故本題選A。

20.A

21.22解析:本題考查的是基本賦值運算符和賦值表達式。表達式c=(b-=a-4)等價于c=(b=b-a+4)等價于c=b=2;表達式a(c%2+(b-1))等價于a=1+2-1=2;因此最后a的值為2。

22.(y%2)==1或(y%2)!=0(y%2)==1或(y%2)!=0

23.18或1918或19

24.4.0或44.0或4

25.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)—管理與控制。

26.4599

27.格式化模型格式化模型解析:層次模型與網(wǎng)狀模型屬于格式化模型。

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

29.doublemax或externdoublemaxdoublemax或externdoublemax解析:函數(shù)聲明是對所用到的函數(shù)的特征進行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對調(diào)用表達式進行檢測,以保證調(diào)用表達式與函數(shù)之間的參數(shù)正確傳遞。函數(shù)聲明的一般格式為:類型標識符函數(shù)名(類型標識符形參,…);這些信息就是函數(shù)定義中的第一行的內(nèi)容。本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extem說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

30.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當y能被3整除時輸出表達式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。

31.a[I]>a[j]a[I]>a[j]解析:本題中的嵌套的循環(huán)結(jié)構(gòu)用在了數(shù)組元素的排序上。本題需要注意的一點是:由于題目只要求出下標值為偶數(shù)的元素從小到大排序,所以內(nèi)外層for循環(huán)的條件變量變更條件都是+=2,最后通過條件a[i]>a[j]對元素大小進行判斷并交換。

32.99解析:本題要輸出的結(jié)果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應該是3+1+3+1+1=9。故本題應該填9。

33.611610。6,11,6,10。解析:本題考查自加的前置和后置的區(qū)別。

34.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進行測試。

35.1212解析:本題簽考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。

36.\O'或0或NULLstr[i]num++或num=num+1或num+=1\\O'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:

①for循環(huán)的結(jié)束條件應當是:str[i]已是字符串的最后一個字符;

②str[i]代表字符串str中的第i+1個字符;

③整形變量num的值是要記錄的單詞的個數(shù)。

C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結(jié)束符“\\0”,所以在題中第一個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第三個空中應當填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。

37.本程序定義了3個指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。\r\n\r\n

38.852852解析:循環(huán)前,變量y的值為9,其中,循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值都減1。循環(huán)體是當y能被3整除時輸出表達式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán),所以程序輸出852。

39.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。

40.(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)或與其等價的形式。

41.D解析:本題中是一個含有兩個結(jié)點的循環(huán)鏈表。

C語言中結(jié)構(gòu)體的定義為:

struct結(jié)構(gòu)題類型名

{

成員項表;

};

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

43.C

44.BB)【解析】軟件需求分析階段的工作,可以概括為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。需求獲取的目的是確定對目標系統(tǒng)的各方面需求。涉及到的主要任務是建立獲取用戶需求的方法框架,并支持和監(jiān)控需求獲取的過程。

\n需求分析是對獲取的需求進行分析和綜合,最終給出系統(tǒng)的解決方案和目標系統(tǒng)的邏輯模型。

\n編寫需求規(guī)格說明書作為需求分析的階段成果,可以為用戶、分析人員和設(shè)計人員之間的交流提供方便,可以直接支持目標軟件系統(tǒng)的確認,又可以作為控制軟件開發(fā)進程的依據(jù)。

\n需求評審是對需求分析階段的工作進行復審,驗證需求文檔的一致性、可行性、完整性和有效性。

45.B解析:MA(1+a+b)展開為:1+a+h*(1+a+b-1)=1+1+2×(1+1+2-1)=2+2×3=8。

46.B解析:—個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是—個返回整型指針的函數(shù)。

47.C解析:除選項C項外,其他各項都沒有按照C語言中的函數(shù)定義規(guī)則定義函數(shù)。

48.B解析:主函數(shù)中先定義了一個整型變量a,一個字符變量c并賦初值10,一個浮點型變量f并賦初值100.00和一個double型x,接著執(zhí)行a=f/=c*=(x=6.5),該語句從右向左計算,先把6.5賦值給x(該括號表達式的值也為6.5),此時x的值變?yōu)?.5,然后執(zhí)行c*=(x=6.5)相當于執(zhí)行c=c*(x=6.5),此時c的值為65,接著向左執(zhí)行f/c*=(x=6.5),語句相當于執(zhí)行f=f/c,所以f的值為100/65≈1.538。接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數(shù)部分為1。程序最后輸出的a、c、f和x的值(f和x只保留小數(shù)點后面1位)分別為1、65、1.5、6.5。所以,4個選項中選項B符合題意。

49.A解析:在C語言中,數(shù)組元素是從0開始的。指針變量p指向數(shù)組的首地址,(p+2)就會指向數(shù)組中的第3個元素。題目中要求輸出的是元素的值。

50.B解析:帶參數(shù)的main()函數(shù)常用形式為:main(intargc,char*argv[])其中,參數(shù)的個數(shù)由C程序運行時自動計算出來。字符型指針數(shù)組argv的第一個元素存放命令名,其后各個元素依次存放命令行中各個參數(shù)的首地址:整型變量argc用來記錄命令行中的參數(shù)個數(shù),文件名也作為一個參數(shù),對于命令行中雙引號內(nèi)的字符串,即使空格分開,也只算是一個參數(shù),同時雙引號本身不算參數(shù)的內(nèi)容,因此本題argc的值等于5。

51.C解析:函數(shù)fun的功能是:將數(shù)組s中從n1至n2的元素首尾互換,然后將第2個和倒數(shù)第2個元素互換,依次類推,其實也就是將原來的元素倒置。執(zhí)行fun(a,0,3);將數(shù)組a中的第0~3個元素互換,結(jié)果為4321;執(zhí)行fun(a,4,9);將數(shù)組a中的第4~9個元素互換,結(jié)果為098765。此時a中的元素依次為4321098765,執(zhí)行fun(a,0,9);再次將這10個元素倒置,結(jié)果為5678901234。

52.D深度為4的二叉樹,共有15個節(jié)點,第三層共7個節(jié)點。因此位于第3層,其雙親節(jié)點為3,因為是滿二叉樹,所以肯定有右子樹,子樹的序號為14,15

53.B

54.D

55.A解析:題目的四個選項中,B、C、D都不要求運算數(shù)必須為整數(shù),參與模運算(%)的運算數(shù)必須是整型數(shù)據(jù)。

56.C解析:main()函數(shù)可以帶有參數(shù),并且參數(shù)只能有兩個,第一個參數(shù)類型為整型,用來記下命令行的參數(shù)個數(shù);第二個參數(shù)為一個字符型指針數(shù)組,或字符型二級指針變量(指向一個數(shù)組,數(shù)組元素又是一個一級字符指針),其各個元素用來記下從命令行各參數(shù)字符中的首地址。故本題只有C選項不符合要求。

57.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。

58.B解析:在面向?qū)ο蟪绦蛟O(shè)計中,對象是可以獨立存在的實體。

59.C解析:字符“5”和“7”的ASCII碼值分別為53和55,其二進制形式分別為00110101和00110111。

60.B解析:本題主要考查結(jié)構(gòu)體和聯(lián)合內(nèi)存使用的區(qū)別:結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨立;聯(lián)合所占用的內(nèi)存空間為最長的成員所占用的空間。

61.C

\n本題用了函數(shù)調(diào)用,fun中if語句成立則進行i,j的交換,用到主函勢中則為把下標為0、3,1、2互換,因此,當執(zhí)行完后X的數(shù)組為8,1,6,2,故選擇C選項。

\n

62.DC語句可以跨行來寫,但是必須以分號結(jié)束,所以A選項錯誤。c程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行也可以不放在一行,所以C選項錯誤。

63.B

64.D

65.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。

66.C

67.C宏定義不是C語句,末尾不需要有分號。所以語句printf(”%4.1f\n”,S(8+b));展開后為parintf(”%4.1f\n”,3.5;*a+b}a+b;);所以程序會出現(xiàn)語法錯誤。

68.C數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。

69.Csum=fun((a++,b++,a+b),c++)中a++,b++,a+b為逗號表達式,運算后取a+b的值為5,c++為3,故函數(shù)調(diào)用后輸出結(jié)果為8。

70.A結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態(tài)性。

71.D

72.A算術(shù)運算符的優(yōu)先級高于關(guān)系運算符的優(yōu)先級,所以當x為大于1的奇數(shù)時,A選項的值為假,即0。B選項的值為不定值,但絕對不是0。c選項的值為真,即l。D選項的值為真,即l。

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

74.Ddouble*p,a定義了一個指向雙精度型的指針變量P和雙精度型變量a,p=&a表示將變量a的地址賦給指針變量p;scanf("%If",p)表示用鍵盤輸入的數(shù)賦給指針變量P所指向的地址單元中,scanf函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f。否則,數(shù)據(jù)不能正確輸入。所以選項D正確。

75.A

76.D解析:類(calss)描述的是具有相似屬性與操作的一組對象,而一個具體對象則是其對應類的一個實例。

77.C數(shù)據(jù)的邏輯結(jié)構(gòu)是描述數(shù)據(jù)之間的關(guān)系,分兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。線性結(jié)構(gòu)是n個數(shù)據(jù)元素的有序(次序)集合,指的是數(shù)據(jù)元素之間存在著“一對一”的線性關(guān)系的數(shù)據(jù)結(jié)構(gòu)。常用的線性結(jié)構(gòu)有:線性表,棧,隊列,雙隊列,數(shù)組,串。非線性結(jié)構(gòu)的邏輯特征是一個結(jié)點元素可能對應多個直接前驅(qū)和多個后驅(qū)。常見的非線性結(jié)構(gòu)有:樹(二叉樹等),圖(網(wǎng)等),廣義表。

\n

78.B\n選項C和D可直接排除,程序是數(shù)據(jù)結(jié)構(gòu)和算法的組合體,所以是先選擇數(shù)據(jù)結(jié)構(gòu),然后繼而選擇相對應的算法,編碼并上機調(diào)試,最后整理文檔。

\n

79.B“b+=a;”等價于“b=b+a;”,“a+=2;”等價于“a=a±2;”,“bA=10;”等價于“b=b%=10;”。循環(huán)體執(zhí)行3次,最終結(jié)果為7,1。

80.B

81.\n\t(1)錯誤:Prime(intm);

\n正確:Prime(intm)

\n(2)錯誤:if(!(m%j)

\n正確:if(!(m%j))

\n【解析】(1)第一個標識下面的“Prime(intm);”在程序中顯然是一個函數(shù),因此應將后面的分號去掉。

\n(2)第二個標識下面的for語句最簡單的應用形式為:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)語句。顯然if語句后面缺少括號,因此,“if!(m%j)”改為“if(!(m%i))”。

\n本題主要考查標點符號、運算符、基本定義。\n

82.

【解析】進入fun()函數(shù),根據(jù)題中給出的求解步驟,首先y1初值為0.0;若y0-yl的絕對值大于0.000001就循環(huán)進行迭代,即“y0-yl;yl-cos(yO);”,直到滿足題目中的要求,返回y1,即實根。本題考查了do-while用法。

2021-2022年山東省日照市全國計算機等級考試C語言程序設(shè)計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.C語言中邏輯表達式的值為()

A.0或1B.非零值或者零值C.ture或falseD.'ture'或者'false'

3.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

4.

5.在Internet中,域名服務器的主要功能是實現(xiàn)()的轉(zhuǎn)換。

A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問

6.已知廣義表:A=(a,b),B=(A,A),C=(a,(b,A),B),tail(head(tail(C)))的運算結(jié)果是()。

A.(a)B.AC.aD.(A)

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

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強

8.

9.以下程序運行后,輸出結(jié)果是()#include<stdio.h>ss(char*s){char*p=s;while(*p)p++return(p-s);}main(){char*a=“abded”inti;i=ss(a);printf(“%d\n”,i);}A.8B.7C.6D.5

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

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

11.下列對于線性鏈表的描述中正確的是()。

A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

12.

13.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的運行結(jié)果是()。

A.acc,bbxxyy

B.accbbxxyy,bbxxyy

C.accxxyy,bbxxyy

D.accxyy,bbxxyy

14.下面關(guān)于圖的存儲的敘述中正確的是()。

A.用鄰接表法存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點個數(shù)無關(guān)

B.用鄰接表法存儲圖,占用的存儲空間大小與圖中邊數(shù)和頂點個數(shù)都有關(guān)

C.用鄰接矩陣法存儲圖,占用的存儲空間大小與圖中頂點個數(shù)和邊數(shù)無關(guān)

D.用鄰接矩陣存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點個數(shù)無關(guān)

15.有以下程序:#includeintadd(inta,intb){return(a+b);}Main(){Intk,(*f)(),a=5,b=10;f=add;...}則以下函數(shù)調(diào)用語句錯誤的是()。A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);

16.已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97"C.c=97D.c="a"

17.帶有頭節(jié)點的單向鏈表head,其3個數(shù)據(jù)節(jié)點A、B、C的連接關(guān)系如下圖所示:節(jié)點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點,在不改變P指向的前提下,以下選項中不能訪問C節(jié)點數(shù)據(jù)成員dt的表達式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

18.采用折半查找法查找長度為n的線性表時,每個元素的平均查找長度為()。

A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)

19.設(shè)有6個結(jié)點的無向圖,該圖至少應有()條邊才能確保是一個連通圖。

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

20.在一個元素個數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時間復雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)

二、2.填空題(20題)21.若有定義:inta=10,b=8,c=4;然后順序執(zhí)行下列語句后,變量a中的值是()。c=(b-=(a-4));a=(c%2)+(b-1);

22.設(shè)y是int型變量,請寫出y為奇數(shù)的關(guān)系表達式【】。

23.要使以下程序段輸出10個整數(shù),請?zhí)钊胍粋€整數(shù);

for(i=0;i<=【】;printf("%d\n",i+=2));

24.設(shè)x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。

25.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)—管理與控制。

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=a;a=C;c=t;

if(a<c&&b<c)t=b;b=a;a=t

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

}

27.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

28.【】是指一個數(shù)據(jù)對象中的各個數(shù)據(jù)元素之間存在的聯(lián)系。

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

【】(double,double);

main()

{doublex,y;

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

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

}

doublemax(doublea,doubleb)

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

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

31.下面程序的功能是:將字符數(shù)組a中下標值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

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

for(j=i+2;j<=k;j+=2;)

if(【】)

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

puts(a);printf("\n");

}

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

33.下面程序

main()

{inti,j,m,n;

i=5;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

運行后,i,j,m,n的值分別是_______。

34.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進行測試。

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

main()

{inta[]={31,27,20,12,6,1},*p=a;

p++;

printf("%d\n",*(p+2));

}

36.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。

word_num(str)

for(i=0;str[i]!=【】;i++)

if(【】='')word=0;

【】;

}

return(num);

}

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

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2,&b,*p;

*(p=&c)=*p1*(*p2);

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

}

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

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

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

40.以下程序用于判斷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)成三解形*/

}

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

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

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

43.在下列敘述中,正確的一條是______。A.if(表達式)語句中,表達式的類型只限于邏輯表達式

B.語句“goto12;”是合法的

C.for(;;)語句相當于while(1)語句

D.break語句可用于程序的任何地方,以終止程序的執(zhí)行

44.軟件需求分析階段的工作,可以分為四個方面:需求獲取、編寫需求規(guī)格說明書、需求評審和()

A.階段性報告B.需求分析C.需求總結(jié)D.都不正確

45.下列程序執(zhí)行后的輸出結(jié)果是______。#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+b));}

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

46.定義int*swap()指的是______。

A.—個返回整型值的函數(shù)swap()

B.一個返回指向整型值指針的函swap()

C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值

D.以上說法均錯

47.以下所列的各函數(shù)首部中,正確的是______。

A.voidplay(vara:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

48.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運行后的輸出結(jié)果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

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

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

50.對下面的程序進行編譯與連接生成可執(zhí)行文件c.exe,并在DOS命令提示符下輸入:cIsaid"IloveChina"!程序代碼如下:main(intargc,char*argv[]){printf("%d",argC);}其輸出結(jié)果為______。

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

51.有以下程序:#include<stdio.h>voidfun(int*s,intnl,intn2){inti,j,t;i=nl;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序運行的結(jié)果是()。

A.9.87654e+008B.4.3211e+009C.5.6789e+009D.9.87651e+008

52.有一個深度為4的滿二叉樹,下面關(guān)于序號為7的結(jié)點的敘述中,正確的是______。

A.該結(jié)點雙親的序號為4B.該結(jié)點處于二叉樹的第4層C.該結(jié)點沒有右子樹D.該結(jié)點左子樹根結(jié)點的序號為14

53.下列程序的輸出結(jié)果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=ifor(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

54.若有如下程序:structstudent{charname[10];floatscore[3];}stu[3]={{"lili",75,90,90},{"liudan",90,85,75};{"guoli",85,85,70}};main(){inti;floatsum=0,aver;for(i=0;i<3;i++)sum=sum+stu[i].score[1];aver=sum/i;printf("%6.2f\n",aver);}則程序運行后的輸出結(jié)果是()

A.83.33B.85C.86D.86.67

55.在C語言中,要求運算數(shù)必須是整型的運算符是()

A.%B./C.<D.!

56.不合法的main函數(shù)命令行參數(shù)表示形式是______。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

57.設(shè)有以下語句:charstrl[]="string",str2[8],*str3,*str4="string";則_______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(strl,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

58.在面向?qū)ο蟮某绦蛟O(shè)計中,下列敘述錯誤的是()。

A.任何一個對象構(gòu)成一個獨立的模塊

B.一個對象不是獨立存在的實體,各個對象之間有關(guān)聯(lián),相互依賴

C.下一層次的對象可以繼承上一層次對象的某些屬性

D.上述三種說法都正確

59.字符型數(shù)據(jù)在機器中用ASCII碼表示,字符“5”和“7”在機器中表示為()。

A.10100011和01110111

B.01000101和01100011

C.00110101和00110111

D.01100101和01100111

60.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}

A.6,2B.6,4C.8,4D.8,6

四、選擇題(20題)61.

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

voidfun(int*a,inti,inti)

{intt;

if(i<i)

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

i++;j--;fun(a,i,j);

}

}

main

{intK[]={2,6,1,8},i;

fun(x,0,3);

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

printf("\n");

}

A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2

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

A.C語句必須在一行內(nèi)寫完

B.C程序中的每一行只能寫一條語句

C.C語言程序中的注釋必須與語句寫在同一行

D.簡單C語句必須以分號結(jié)束

63.

64.

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

A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

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

D.循環(huán)隊列是一種邏輯結(jié)構(gòu)

66.

67.有以下程序:

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

A.7.5B.31.5C.程序有錯無輸出結(jié)果D.14.0

68.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式

69.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9

70.結(jié)構(gòu)化程序設(shè)計的基本原則不包括A.多態(tài)性B.自頂向下C.模塊化D.逐步求精

71.

72.以下選項中,當x為大于1的奇數(shù)時,值為0的表達式是()。

A.x%2==0B.x/2C.x%21=0D.x%2==1

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

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

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

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

D.線性表可以是空表

74.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。A.A.*p=&a;scanf("%1f”,p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%",*p);

D.p=&a;scanf("%1f",p);

75.

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

A.屬性B.事件C.方法D.類

77.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()0、

A.雙向鏈表

B.帶鏈的棧

C.二叉鏈表

D.循環(huán)鏈表

78.以下關(guān)于簡單程序設(shè)計的步驟和順序的說法中正確的是()。

A.確定算法后,整理并寫出文檔,最后進行編碼和上機調(diào)試

B.首先確定數(shù)據(jù)結(jié)構(gòu),然后確定算法,再編碼,并上機調(diào)試,最后整理文檔

C.先編碼和上機調(diào)試,在編碼過程中確定算法和數(shù)據(jù)結(jié)構(gòu),最后整理文檔

D.先寫好文檔,再根據(jù)文檔進行編碼和上機調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構(gòu)

79.有以下程序:

#include<stdio.h>

main

{inta=1,b=2;

while(a<6){b+=a;a4+=2;b%=10;)

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

}

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

A.5,11B.7,1C.7,11D.6,1

80.

五、程序改錯題(1題)81.下列給定程序的功能是:讀入一個整數(shù)n(2<=n<=5000),打印它的所有為素數(shù)的因子。例如,若輸入整數(shù)1234,則應輸出:2,617。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

//****found****

Prime(intm);

{

intj,P;

p=1;

//****found****

for(j=2;j<m;j++)

if!(m%j)

{

p=0;

break;

}

return(p);inti,n;

printf("\npleaseenteranintegernumberbetween2

and5000:");

scanf("%d",&n);

printf("\n\nTheprimefactor(s)of%dis(are):",n):

for(i=2;i<n;i4+)

if((!(n%i))&&(Prime(i)))

printf("%4d,",i);

printf("\n");

}

六、程序設(shè)計題(1題)82.編寫fun()函數(shù),它的功能是:利用以下所示的簡單迭代方法求方程cos(y)-y=0的一個實根。

yn+1=cos

溫馨提示

  • 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

提交評論