2022年安徽省宿州市全國計算機等級考試C語言程序設計模擬考試(含答案)_第1頁
2022年安徽省宿州市全國計算機等級考試C語言程序設計模擬考試(含答案)_第2頁
2022年安徽省宿州市全國計算機等級考試C語言程序設計模擬考試(含答案)_第3頁
2022年安徽省宿州市全國計算機等級考試C語言程序設計模擬考試(含答案)_第4頁
2022年安徽省宿州市全國計算機等級考試C語言程序設計模擬考試(含答案)_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年安徽省宿州市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

2.以下程序中函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運行后的輸出結果是

A.22B.10C.34D.30

3.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA

4.有以下程序:#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,j;for(i=0;i<=3;i++){a[i]=*P;p++;}printf("oAd\n",a[2]);}程序運行后的輸出結果是()。A.30B.40C.10D.20

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

6.在Windows環(huán)境下,單擊當前窗口中的按鈕“”,其功能是A.將當前應用程序轉(zhuǎn)為后臺運行

B.退出Windows后再關機

C.終止當前應用程序的運行

D.退出Windows后重新啟動計算機

7.

8.每次從無序表中挑選出一個最小或最大元素,把它交換到有序表的一端,此種排序方法叫做()排序。

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

9.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

10.請選出可用作C語言用戶標識符的一組()。

A.voiddefineWORD

B.a3_b3_123IF

C.For_abccase

D.2aDOsizeof

11.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調(diào)試

12.

13.參加百年阿里培訓的n位同學結伴去西湖旁邊為游人指路,兩人一組,他們打算先讓體重之和恰好為102公斤的同學一組,請給出一個算法找到這樣的組合,或者確定他們中不存在這樣的組合,其中最優(yōu)的算法時間復雜度為?(假設體重均為整數(shù))()

A.O(log(n))B.O(n)C.O(nlog(n))D.O(n^2)

14.下面關于串的的敘述中,哪一個是不正確的()。

A.串是字符的有限序列

B.空串是由空格構成的串

C.模式匹配是串的一種重要運算

D.串既可以采用順序存儲,也可以采用鏈式存儲

15.按照標識符的要求,()符號不能組成標識符。

A.連接符B下劃線B.大小寫字母C.數(shù)字字符

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

A.c語言是一種結構化程序設計語言

B.使用三種基本結構構成的程序只能解決簡單問題

C.結構化程序設計提倡模塊化的設計方法

D.結構化程序由順序、分支、循環(huán)三種基本結構組成

17.有以下函數(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ù)

18.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。

A.p+1B.a+1C.a++D.++p

19.有以下程序:#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>,則狴序輸出結果為()。

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

20.有以下程序:

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

A.1,3

B.2,3

C.1,4

D.1,2

二、2.填空題(20題)21.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,【】負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建。

22.軟件是程序、數(shù)據(jù)和【】的集合。

23.下列程序的運行結果為【】。

#include<stdio.h>

main()

{staticcharstr1[40];

charstr2140];

strcpy(str2,"China");

strcat(str1,str2);

strcat(str1,"isagreatcountry!");

printf("%s%s",str2,strl);

printf("%d%d\n",strlen(str2),strlen(str1));

}

24.求任意一個數(shù)(用16位二進制碼表示)的補碼。

main()

{

unsignedinta;

【】;

scanf("%o",&a);

printf("%o\n",getbits(a));

}

unsignedintgetbits(value)

unsignedintvalue;

{

unsignedintz;

z=【】;

if(z==0100000)

【】;

else

z=value;

return(z);

}

25.軟件工程研究的內(nèi)容主要包括:【】技術和軟件工程管理。

26.下面程序的運行結果是()。

#defineEXCH(a,B){intt;t=a;a=b;b=t;}

main()

{intx=1,y=2;

EXCH(x,y);

printf("x=%d,y=%d\n",x,y);

}

27.設有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

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

28.已知head指向一個帶頭結點的單向鏈表,鏈表中每個結點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在橫線處填入正確內(nèi)容。

structlink

{intdata;structlink*next;}

main()

{structlink*head;

......

sum(head);

......

}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

29.在C語言中(以16位PC機為例),一個float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為4;一個double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【】。

30.以下程序運行后的輸出結果是【】。

main()

{charm;

m='B'+32;printf("%c\n",m);

31.按照“先進先出”的原則組織數(shù)據(jù)的結構是______。

32.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

33.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

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

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

int*p,x;

x=100;

p=&x;

x=*p+50;

35.軟件危機的核心問題是【】和軟件開發(fā)效率低。

36.下列程序的輸出結果是【】。

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

37.沒有chara,b;,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進制是【】。

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

intn='c';

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("morning");

case'd':printf("class");

}

39.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設計來實現(xiàn)。

40.若a的值為1,則表達式!a‖++a的值是______。

三、1.選擇題(20題)41.某二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數(shù)為()

A.n+1B.n-1C.2nD.n/2

42.數(shù)據(jù)存儲和數(shù)據(jù)流都是______,僅僅是所處的狀態(tài)不同。

A.分析結果B.事件C.動作D.數(shù)據(jù)

43.若有程序fun(inta,intb){staticintc=0c+=a+b;retumc;}main(){intx=5,y=3,z=7,r;r=fun((y,x+y),z);r=fun(x,y);printf("%d\n",r);}上面程序的輸出結果______。

A.23B.15C.19D.18

44.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲形式是______。

A.反碼B.補碼C.EBCDIC碼D.ASCII碼

45.下列選項中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

46.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進行理解和交流

B.反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

47.軟件文檔不僅是軟件開發(fā)各階段的重要依據(jù),而且也影響軟件的______。

A.可維護性B.可移植性C.可擴展性D.可用性

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

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

49.有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的輸出結果是()。

A.13B.14C.208D.209

50.有以下程序:#include<stdio,h>main(){intm=0256,n=256;printf("%o%o\n",m,n);程序運行后的輸出結果是()。

A.02560400B.0256256C.256400D.400400

51.若已建立如下圖所示的單向鏈表結構:在該鏈表結構中,指針p、s分別指向圖中所示結點,則不能將s所指的結點插入到鏈表末尾仍構成單向鏈表的語句組是______。

A.p=p->next;s->next=p;p->next=s;

B.p=p->next;s->next=p->next;p->next=s;

C.s->next=NULL;p=p->next;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

52.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

53.下列敘述中正確的是A.break語句只能用于switch語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.在switch語句中,不一定使用break語句

54.fgetc函數(shù)的作用是從指定文件讀入一個字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

55.有下列二叉樹,

對此二叉樹前序遍歷的結果為()。

A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI

56.以下不屬于對象的基本特點的是()

A.分類性B.多態(tài)性C.繼承性D.封裝性

57.設有程序段:intk=12:while(k=1)k=k-1:則下列描述中正確的是()。

A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

58.下列程序的輸出結果是()。

#include<stdio.h>

intb=2;

intfunc(int*A)

{b+=*a;retumb;}

main()

{inta=1,t=2;

t+=func(&A);

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

}

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

59.請選出以下程序的輸出結果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}

A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7

60.有以下程序main()intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,p=789

D.123456789

四、選擇題(20題)61.以下敘述中不正確的是()。

A.在不同的函數(shù)中可以使用相同名字的變量

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效

62.在數(shù)據(jù)庫設計中,將E—R圖轉(zhuǎn)換成關系數(shù)據(jù)模型的過程屬于()。

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

63.數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)完整性、安全性定義的語言是()。

A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

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

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒有

65.

66.設有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是()。

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

67.

68.一棵二叉樹共有25個結點,其中5個是葉子結點,則度為1的結點數(shù)為()。

A.16B.10C.6D.4

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

A.123456B.14C.1234D.12

70.

71.

72.數(shù)據(jù)庫關系模型中可以有三類完整性約束,下列選項中不屬于三類完整性約束的是()。

A.實體完整性規(guī)則B.參照完整性規(guī)則C.對象完整性規(guī)則D.用戶自定義完整性規(guī)則

73.有以下程序:

程序的運行結果是()。

A.1234B.5678C.9101112D.1111

74.以下程序中函數(shù)f的功能是:當na9為1時,進行由小到大排序;當na9為0時,進行由大到小排序。

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

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

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

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

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

75.

76.有以下程序:

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

A.在給P和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結束符,故輸出的長度都為3

B.由于P數(shù)組中沒有字符串結束符,長度不能確定;但q數(shù)組中字符長度為3

C.由于q數(shù)組中沒有字符串結束符,長度不能確定;但P數(shù)組中字符長度為3

D.由于P和q數(shù)組中沒有字符串結束符,故長度都不能確定

77.以下選項中表示一個合法的常量是(說明:符號口表示空格)()。

A.9口9口9B.0XabC.123E0.2D.2.7e

78.main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}假定以上程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入PROGABCDEFGHIJKL,則輸出結果為______。

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

79.

80.在一個C源程序文件中所定義的全局變量。其作用域為()。A.由具體定義位置和extern說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

五、程序改錯題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參m,計算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入10,則應輸出2.928968。請修改程序中的錯誤,使它能計算出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.使用vc++2010打開文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是在一組得分中,去掉一個最高分和一個最低分,然后求平均值,并通過函數(shù)返回該值。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個數(shù)(n>2)。例如,若輸入9.98.57.68.59.39.58.97.88.68.4共10個得分,則輸出結果為8.687500。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.DD。【解析】面向?qū)ο笤O計方法與面向過程設計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。

2.A解析:本題考查的知識點是數(shù)組名作為函數(shù)參數(shù)及函數(shù)調(diào)用。reverse()數(shù)的功能是將具有n個元素的數(shù)組a反序存放。在主函數(shù)中調(diào)用語句是“reverse(b,8);”,實現(xiàn)的功能是把b數(shù)組的前八個元素逆置,所以b數(shù)組中依次存放的值為“8,7,6,5,4,3,2,1,9,10”。for循環(huán)了4次,分別把b[6]、b[7]、b[8]和b[9]的值(分別是2、1、9、10)加到了s中,s的結果是22,所以最后輸出的s值為22。所以4個選項中A正確。

3.B棧是先進后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。

4.AFor循環(huán)結束后,數(shù)組a的值并沒有變化,由于數(shù)組是由0開始,所以a[2]的值是30。

5.D函數(shù)fun是2的次方的運算,而s*=fun,所以答案為64。

6.C解析:在Windows環(huán)境下,單擊當前窗口中的按鈕“x”,其功能是終止當前應用程序的運行,關閉當前窗口。

7.C

8.B

9.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。

10.B解析:C語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。A)中的void與C語言的關鍵字重名,不合法;C)中的case和C語言的關鍵字重名,不合法;D)中的2a是數(shù)字開頭,而且sizeof與C語言的關鍵字重名,不合法。

11.C解析:軟件系統(tǒng)結構的總體設計包括:基于功能層次結構建立系統(tǒng)、按功能劃分成模塊的層次結構、確定每個模塊的功能、建立與已確定的軟件需求的對應關系、確定模塊間的調(diào)用關系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細設計的任務是:在使用程序設計語言編制程序以前,對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調(diào)試的任務是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設計階段。

12.B

13.B

14.B

15.A

16.BC語言是一種結構化程序設計語言。結構化程序設計是以模塊化設計為中心的,有三種基本結構:順序、選擇和循環(huán)結構。各模塊相互獨立,因而可將原來較為復雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護性。

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

18.C

19.A

20.Af函數(shù)功能使第二個指針指向的元素增1,第一個指針指向的元素不變,所以答案選擇A)。

21.數(shù)據(jù)定義語言數(shù)據(jù)定義語言解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言,數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,數(shù)據(jù)定義語言負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建,數(shù)據(jù)操縱語言負責數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作,數(shù)據(jù)控制語言負責數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、恢復等功能。

22.文檔文檔解析:計算機軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關文檔的完整集合。

23.ChinaChinaisagreatcountry!525

24.unsignedintgetbits()value&0100000z=~value+1unsignedintgetbits()\r\nvalue&0100000\r\nz=~value+1

25.軟件開發(fā)

26.x=2y=1

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

28.structlink*headstructlink*head解析:考查用指針引用結構體變量成員數(shù)據(jù)的方法。因為本題中是用結構體變量構成了鏈表,所以要從鏈表頭節(jié)點,逐個節(jié)點的引用結構體的數(shù)據(jù)域,需要有指向結構體變量的指針,依次指向各個節(jié)點,即p=p->next,而用指針引用結構體成員數(shù)據(jù)的方法為:p->data。

29.88解析:在一般系統(tǒng)中,一個float型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位),一個double型數(shù)據(jù)占8個字節(jié)。

30.bb解析:在ASCII碼表中,至少有3個值考生得記住:,0,的ASCII碼為48;‘A’的ASCII碼為65;‘a(chǎn)’的ASCII碼為97。因為記住這3個后,其他字母和數(shù)字的ASCII碼就可以很容易推出來了。本題中,“B”的ASCII碼為‘A’+1=66,所以,字符類型m的ASCII為66+32=98=97+1=‘a(chǎn)’+1,所以最后輸出的結果為字符‘b’。

31.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數(shù)據(jù)的。

32.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。

33.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。

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

35.軟件質(zhì)量差軟件質(zhì)量差解析:大約在20世紀60年代末人們在計算機軟件的開發(fā)和維護過程中,遇到了一系列嚴重問題,從而認識到軟件危機的存在。軟件危機的核心問題是軟件開發(fā)的質(zhì)量太差和軟件系統(tǒng)開發(fā)的效率太低。

36.21

37.1000001010000010解析:運算“&”的規(guī)則是只有當兩個相應的二進制位都為1時,該位的結果才為1。要保留第2、8位,只要將其與二進制數(shù)10000010相與。

38.morningclassmorningclass解析:本題考查了兩個知識點:①“++,--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當n='c'時,執(zhí)行“case'c'”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結果為morningclass。

39.測試實例測試實例解析:進行軟件測試時,應精心設計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。

40.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結果為1。

41.A解析:本題考查數(shù)據(jù)結構中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對任意一棵二叉樹,若終端結點(即葉子結點)數(shù)為n0,而其度數(shù)為2的結點數(shù)為n2,則n0=n2+1。根據(jù)這條性質(zhì)可知,若二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數(shù)為n+1。因此,本題的正確答案是選項A。

42.D解析:數(shù)據(jù)流圖有4種成分:源點或終點、處理、數(shù)據(jù)存儲和哦數(shù)據(jù)流。數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運動中的數(shù)據(jù)。

43.A解析:static聲明的外部變量只限于被本文件引用,而不能被其他文件引用static來聲明—個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第—個fun,其兩個實參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結束返回15。第二次調(diào)用fun時,由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。

44.D解析:將一個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。

45.B水平制表符中,'\t'表示的是橫向跳若干格;選項B中,'\039'錯誤,'\039'是八進制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號;選項D中,'\n'表示的是換行。

46.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù);③作為確認測試和驗收的依據(jù)。

47.A

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

49.A解析:本題中,首先定義了一個共用體pw,其中有兩個域:整型變量i和字符數(shù)組ch,因為共用體中的域是共享內(nèi)存空間的,又數(shù)組的元素有低到高存儲:ch[0]在低字節(jié),ch[1]在高字節(jié)。整型變量i占兩個字節(jié),高位與ch[1]共用存儲空間,低位與ch[0]共用存儲空間,而高位ch[1]的值為0,所以輸出的成員變量i的值就是ch[0]的值13。

50.C解析:o格式符是以八進制形式輸出整數(shù)。此題m已是八進制數(shù)(256前面的0表示此數(shù)是八進制數(shù)),n是十進制數(shù),所以輸出時,直接輸出m的值,n的值需要轉(zhuǎn)換成八進制數(shù)400后再輸出。

51.A解析:在答案A中:p=p->next;s->next=p;p->next=s;s的確已插到了鏈表的末尾,但它的next卻并沒有為NULL,而是指向了它的直接前趨p,這樣它就不是一個單向鏈表(單向鏈表最后一個結點的next指針一定是一個NULL)。

52.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達式。

53.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時的分支,也可以不使用default,此時若所有case均失配則跳出switch,因此選項B不正確。在switch語句中,每個case的作用就是標出一個執(zhí)行的起點,當符合某個case時,程序就從該case所標出的起點處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會一直執(zhí)行到switch的最后一條語句,而不是碰到下一個case就跳出switch。雖然break與case的配對使用會讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項C不正確,應該選擇D。

54.D解析:fgetc函數(shù)是指從指定的文件讀入一個字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。

55.C解析:對二叉樹的前序遍歷是指先訪問根結點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結點,再依次訪問其左、右子樹。

56.C解析:對象的基本特點包括;標識惟一性、分類性、多態(tài)性、封裝性和獨立性等。繼承性不屬于對象的基本特點。

57.C本題考查while,while循環(huán)表達式k-1是個賦值表達式而不是邏輯表達式,k的初值為l2不符合循環(huán)條件,所以循環(huán)體語句一次也不執(zhí)行。

58.B解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在執(zhí)行函數(shù)func時,由于全局定義了一個變量b,所以在函數(shù)體中執(zhí)行時b=2+1=3,最終t=2+3=5。

59.B

60.A解析:本題考查的是標準輸入函數(shù)scanf()的運用。scanf函數(shù)的第一個參數(shù)是格式控制串,若在格式控制串中插入了格式控制符以外的其他字符,則在輸入數(shù)據(jù)時要在對應的位置原樣輸入這些字符才能正確輸入。所以本題若想使變量m的值為123、n為456、p為789,則應該輸入的字符串為:用這三個數(shù)據(jù)按m、n、p出現(xiàn)在scanf()函數(shù)中的位置順序替換掉scanf()函數(shù)格式控制串中的格式控制符后所得到的格式控制串,即“m=123n=456p=789”。所以,4個選項中選項A符合題意。

61.D在一個函數(shù)中的復合語中定義的變量,只能在這個復合語句范圍內(nèi)有效。

62.CC)【解析】邏輯結構設計的任務:概念結構是各種數(shù)據(jù)模型的共同基礎,為了能夠用某一DBMS實現(xiàn)用戶需求,還必須將概念結構進一步轉(zhuǎn)化為相應的數(shù)據(jù)模型,這正是數(shù)據(jù)庫邏輯結構設計所要完成的任務。它包括從E—R圖向關系模式轉(zhuǎn)換和邏輯模式規(guī)范化及調(diào)整、實現(xiàn)。

63.D數(shù)據(jù)定義語言負責數(shù)據(jù)的模式定義和數(shù)據(jù)的物理存取構建;數(shù)據(jù)操縱語言負責數(shù)據(jù)的操縱;數(shù)據(jù)控制語言負責數(shù)據(jù)完整性、安全性的定義與檢查,以及并發(fā)控制、故障恢復等功能。無“數(shù)據(jù)管理語言”的說法。

64.BB?!窘馕觥拷M合框和列表框都沒有selected屬性。

65.B

66.B解析:條件表達式的形式為:“表達式1?表達式2:表達式3”。其含義為:當“表達式1”的值為非零時,求出“表達式2”的值,此時“表達式2”的值就是整個條件表達式的值;當“表達式1”的值為零時,求出“表達式3”的值,此時“表達式3”的值就是整個條件表達式的值。對于本題來說,當表達式EXP為非0值時條件成立,即執(zhí)行語句i++;當EXP等于0時,執(zhí)行語句j--;這等同于條件表達式“(EXP!=0)?i++:i++;”。

67.D

68.A【答案】:A【知識點】:二叉樹的性質(zhì)

【解析】:由二叉樹的性質(zhì)3可知,度為0的結點數(shù)(即葉子結點數(shù))=度為2的結點數(shù)+1。題目中給出葉子結點數(shù)為5個,利用性質(zhì)3可計算出度為2的結點數(shù)為4個。在二叉樹只有三種結點:度為0的、度為1的、度為2的,總數(shù)為25個,所以度為1的結點數(shù)即為25-5-4=16個,所以答案為A。

69.A將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因為輸出的都是數(shù)字并且每行都沒有分隔符,所以當再對其進行讀取操作時,每一行都會被認為是一個完整的數(shù),而換行符則作為它們的分隔符。

70.D

71.B

72.C數(shù)據(jù)庫關系模型中可以有三類完整性約束,實體完整性,參照完整性和用戶自定義完整性。

73.D在for(i=0;i<12;i++)e[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標,當退出循環(huán)時,數(shù)組C的4個元素的值分別為l、1、1、1。所以選項D)正確。

74.B本題重點考察函數(shù)的參數(shù)傳遞,函數(shù)的參數(shù)傳遞分為傳值和傳地址兩種情況。本題就是結合數(shù)組考查參數(shù)傳遞的情形。函數(shù)f完成的功能是對數(shù)據(jù)進行排序,語句f(&a[2],5,O)的作用是對從a[2]開始的5個元素進行從大到小排序。注意:這里傳遞的是地址&a[2],所以排序操作可看作是直接對數(shù)組a操作,執(zhí)行后的結果為5,4,7,6,3,2,1,8,9,10。語句f(a,5,1)對數(shù)組a的前5個元素從小到大排序,排序后數(shù)組為:3,4,5,6,7,2,1,8,9,10。因此B選項正確。

75.A

76.B本題考查的是庫函數(shù)的調(diào)用。Stden

77.B當用指數(shù)形式表示浮點數(shù)據(jù)時,E的前后都要有數(shù)據(jù),并且E的后面數(shù)要為整數(shù)。

78.C解析:本題主函數(shù)帶有兩個參數(shù),一個int型變量argc,另一個是char型的一維一級指針數(shù)組argv。當主函數(shù)被執(zhí)行時,系統(tǒng)自動將根據(jù)命令行的情況,分別給主函數(shù)的兩個參數(shù)賦值。Argc中存放命令行中命令字和參數(shù)的總和的個數(shù),argv用來存放命令行中命令字和所有參數(shù)的字符串的,并規(guī)定avgv[0]存放命令字字符串,argv[1]用來存放第一個參數(shù)的字符串,argv[2]用來存放第2個參數(shù)的字符串,依此類推。題中argc的值是2,執(zhí)行完--argc后為1,輸出argv[1],此數(shù)組存在第一個參數(shù)的字符串ABCDEFGHIJKL。

79.B

80.A全局變量的作用域是從聲明處到文件的結束。所以選擇A)

81.(1)錯誤:t+=1.0/k;

正確:t+=1.o/i;

(2)錯誤:returni;

正確:returnt;

【解析】根據(jù)for循環(huán)可知,變量i中存放每一項的分母,變量k在函數(shù)procee沒有定義,因此t+=l.0/k;應改為t+=1.0/i;。變量t中存放各項的和,題目要求將各項的和返回給主函數(shù),因此returni應改為returnt。

82.1doublefun(doublea[],intn)Doublesum=0,max,min;inti;max=min=a[0];for(i=0;i<n;i++){</n;i++)<n;i++)sum=sum+a[i];</n;i++)if(max<a[i])max=a[i];<n;i++)if(min>a[i])min=a[i];</n;i++)<n;i++)sum=sum-max-min;</n;i++)<n;i++)return(sum/(n-2));</n;i++)<n;i++)}</n;i++)<n;i++)設定3個變量,sum存放和值,max存放最大值,min存放最小值。max和min都賦為數(shù)組中第1個元素的值。利用循環(huán)將數(shù)組中元素累加到sum中,并找出最大值和最小值。sum值減去最大值和最小值。函數(shù)返回sum除以(元素個數(shù)減2)得平均值。</n;i++)2022年安徽省宿州市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

2.以下程序中函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運行后的輸出結果是

A.22B.10C.34D.30

3.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA

4.有以下程序:#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,j;for(i=0;i<=3;i++){a[i]=*P;p++;}printf("oAd\n",a[2]);}程序運行后的輸出結果是()。A.30B.40C.10D.20

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

6.在Windows環(huán)境下,單擊當前窗口中的按鈕“”,其功能是A.將當前應用程序轉(zhuǎn)為后臺運行

B.退出Windows后再關機

C.終止當前應用程序的運行

D.退出Windows后重新啟動計算機

7.

8.每次從無序表中挑選出一個最小或最大元素,把它交換到有序表的一端,此種排序方法叫做()排序。

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

9.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

10.請選出可用作C語言用戶標識符的一組()。

A.voiddefineWORD

B.a3_b3_123IF

C.For_abccase

D.2aDOsizeof

11.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調(diào)試

12.

13.參加百年阿里培訓的n位同學結伴去西湖旁邊為游人指路,兩人一組,他們打算先讓體重之和恰好為102公斤的同學一組,請給出一個算法找到這樣的組合,或者確定他們中不存在這樣的組合,其中最優(yōu)的算法時間復雜度為?(假設體重均為整數(shù))()

A.O(log(n))B.O(n)C.O(nlog(n))D.O(n^2)

14.下面關于串的的敘述中,哪一個是不正確的()。

A.串是字符的有限序列

B.空串是由空格構成的串

C.模式匹配是串的一種重要運算

D.串既可以采用順序存儲,也可以采用鏈式存儲

15.按照標識符的要求,()符號不能組成標識符。

A.連接符B下劃線B.大小寫字母C.數(shù)字字符

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

A.c語言是一種結構化程序設計語言

B.使用三種基本結構構成的程序只能解決簡單問題

C.結構化程序設計提倡模塊化的設計方法

D.結構化程序由順序、分支、循環(huán)三種基本結構組成

17.有以下函數(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ù)

18.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。

A.p+1B.a+1C.a++D.++p

19.有以下程序:#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>,則狴序輸出結果為()。

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

20.有以下程序:

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

A.1,3

B.2,3

C.1,4

D.1,2

二、2.填空題(20題)21.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,【】負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建。

22.軟件是程序、數(shù)據(jù)和【】的集合。

23.下列程序的運行結果為【】。

#include<stdio.h>

main()

{staticcharstr1[40];

charstr2140];

strcpy(str2,"China");

strcat(str1,str2);

strcat(str1,"isagreatcountry!");

printf("%s%s",str2,strl);

printf("%d%d\n",strlen(str2),strlen(str1));

}

24.求任意一個數(shù)(用16位二進制碼表示)的補碼。

main()

{

unsignedinta;

【】;

scanf("%o",&a);

printf("%o\n",getbits(a));

}

unsignedintgetbits(value)

unsignedintvalue;

{

unsignedintz;

z=【】;

if(z==0100000)

【】;

else

z=value;

return(z);

}

25.軟件工程研究的內(nèi)容主要包括:【】技術和軟件工程管理。

26.下面程序的運行結果是()。

#defineEXCH(a,B){intt;t=a;a=b;b=t;}

main()

{intx=1,y=2;

EXCH(x,y);

printf("x=%d,y=%d\n",x,y);

}

27.設有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

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

28.已知head指向一個帶頭結點的單向鏈表,鏈表中每個結點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在橫線處填入正確內(nèi)容。

structlink

{intdata;structlink*next;}

main()

{structlink*head;

......

sum(head);

......

}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

29.在C語言中(以16位PC機為例),一個float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為4;一個double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【】。

30.以下程序運行后的輸出結果是【】。

main()

{charm;

m='B'+32;printf("%c\n",m);

31.按照“先進先出”的原則組織數(shù)據(jù)的結構是______。

32.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

33.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

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

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

int*p,x;

x=100;

p=&x;

x=*p+50;

35.軟件危機的核心問題是【】和軟件開發(fā)效率低。

36.下列程序的輸出結果是【】。

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

37.沒有chara,b;,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進制是【】。

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

intn='c';

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("morning");

case'd':printf("class");

}

39.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設計來實現(xiàn)。

40.若a的值為1,則表達式!a‖++a的值是______。

三、1.選擇題(20題)41.某二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數(shù)為()

A.n+1B.n-1C.2nD.n/2

42.數(shù)據(jù)存儲和數(shù)據(jù)流都是______,僅僅是所處的狀態(tài)不同。

A.分析結果B.事件C.動作D.數(shù)據(jù)

43.若有程序fun(inta,intb){staticintc=0c+=a+b;retumc;}main(){intx=5,y=3,z=7,r;r=fun((y,x+y),z);r=fun(x,y);printf("%d\n",r);}上面程序的輸出結果______。

A.23B.15C.19D.18

44.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲形式是______。

A.反碼B.補碼C.EBCDIC碼D.ASCII碼

45.下列選項中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

46.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進行理解和交流

B.反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

47.軟件文檔不僅是軟件開發(fā)各階段的重要依據(jù),而且也影響軟件的______。

A.可維護性B.可移植性C.可擴展性D.可用性

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

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

49.有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的輸出結果是()。

A.13B.14C.208D.209

50.有以下程序:#include<stdio,h>main(){intm=0256,n=256;printf("%o%o\n",m,n);程序運行后的輸出結果是()。

A.02560400B.0256256C.256400D.400400

51.若已建立如下圖所示的單向鏈表結構:在該鏈表結構中,指針p、s分別指向圖中所示結點,則不能將s所指的結點插入到鏈表末尾仍構成單向鏈表的語句組是______。

A.p=p->next;s->next=p;p->next=s;

B.p=p->next;s->next=p->next;p->next=s;

C.s->next=NULL;p=p->next;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

52.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

53.下列敘述中正確的是A.break語句只能用于switch語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.在switch語句中,不一定使用break語句

54.fgetc函數(shù)的作用是從指定文件讀入一個字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

55.有下列二叉樹,

對此二叉樹前序遍歷的結果為()。

A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI

56.以下不屬于對象的基本特點的是()

A.分類性B.多態(tài)性C.繼承性D.封裝性

57.設有程序段:intk=12:while(k=1)k=k-1:則下列描述中正確的是()。

A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

58.下列程序的輸出結果是()。

#include<stdio.h>

intb=2;

intfunc(int*A)

{b+=*a;retumb;}

main()

{inta=1,t=2;

t+=func(&A);

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

}

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

59.請選出以下程序的輸出結果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}

A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7

60.有以下程序main()intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,p=789

D.123456789

四、選擇題(20題)61.以下敘述中不正確的是()。

A.在不同的函數(shù)中可以使用相同名字的變量

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效

62.在數(shù)據(jù)庫設計中,將E—R圖轉(zhuǎn)換成關系數(shù)據(jù)模型的過程屬于()。

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

63.數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)完整性、安全性定義的語言是()。

A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

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

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒有

65.

66.設有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是()。

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

67.

68.一棵二叉樹共有25個結點,其中5個是葉子結點,則度為1的結點數(shù)為()。

A.16B.10C.6D.4

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

A.123456B.14C.1234D.12

70.

71.

72.數(shù)據(jù)庫關系模型中可以有三類完整性約束,下列選項中不屬于三類完整性約束的是()。

A.實體完整性規(guī)則B.參照完整性規(guī)則C.對象完整性規(guī)則D.用戶自定義完整性規(guī)則

73.有以下程序:

程序的運行結果是()。

A.1234B.5678C.9101112D.1111

74.以下程序中函數(shù)f的功能是:當na9為1時,進行由小到大排序;當na9為0時,進行由大到小排序。

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

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

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

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

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

75.

76.有以下程序:

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

A.在給P和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結束符,故輸出的長度都為3

B.由于P數(shù)組中沒有字符串結束符,長度不能確定;但q數(shù)組中字符長度為3

C.由于q數(shù)組中沒有字符串結束符,長度不能確定;但P數(shù)組中字符長度為3

D.由于P和q數(shù)組中沒有字符串結束符,故長度都不能確定

77.以下選項中表示一個合法的常量是(說明:符號口表示空格)()。

A.9口9口9B.0XabC.123E0.2D.2.7e

78.main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}假定以上程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入PROGABCDEFGHIJKL,則輸出結果為______。

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

79.

80.在一個C源程序文件中所定義的全局變量。其作用域為()。A.由具體定義位置和extern說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

五、程序改錯題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參m,計算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入10,則應輸出2.928968。請修改程序中的錯誤,使它能計算出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.使用vc++2010打開文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是在一組得分中,去掉一個最高分和一個最低分,然后求平均值,并通過函數(shù)返回該值。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個數(shù)(n>2)。例如,若輸入9.98.57.68.59.39.58.97.88.68.4共10個得分,則輸出結果為8.687500。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.DD。【解析】面向?qū)ο笤O計方法與面向過程設計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。

2.A解析:本題考查的知識點是數(shù)組名作為函數(shù)參數(shù)及函數(shù)調(diào)用。reverse()數(shù)的功能是將具有n個元素的數(shù)組a反序存放。在主函數(shù)中調(diào)用語句是“reverse(b,8);”,實現(xiàn)的功能是把b數(shù)組的前八個元素逆置,所以b數(shù)組中依次存放的值為“8,7,6,5,4,3,2,1,9,10”。for循環(huán)了4次,分別把b[6]、b[7]、b[8]和b[9]的值(分別是2、1、9、10)加到了s中,s的結果是22,所以最后輸出的s值為22。所以4個選項中A正確。

3.B棧是先進后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。

4.AFor循環(huán)結束后,數(shù)組a的值并沒有變化,由于數(shù)組是由0開始,所以a[2]的值是30。

5.D函數(shù)fun是2的次方的運算,而s*=fun,所以答案為64。

6.C解析:在Windows環(huán)境下,單擊當前窗口中的按鈕“x”,其功能是終止當前應用程序的運行,關閉當前窗口。

7.C

8.B

9.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。

10.B解析:C語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。A)中的void與C語言的關鍵字重名,不合法;C)中的case和C語言的關鍵字重名,不合法;D)中的2a是數(shù)字開頭,而且sizeof與C語言的關鍵字重名,不合法。

11.C解析:軟件系統(tǒng)結構的總體設計包括:基于功能層次結構建立系統(tǒng)、按功能劃分成模塊的層次結構、確定每個模塊的功能、建立與已確定的軟件需求的對應關系、確定模塊間的調(diào)用關系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細設計的任務是:在使用程序設計語言編制程序以前,對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調(diào)試的任務是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設計階段。

12.B

13.B

14.B

15.A

16.BC語言是一種結構化程序設計語言。結構化程序設計是以模塊化設計為中心的,有三種基本結構:順序、選擇和循環(huán)結構。各模塊相互獨立,因而可將原來較為復雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊

溫馨提示

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

評論

0/150

提交評論