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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.有定義語句intb;charc[10];,則正確的輸入語句是______。A.scallf("%d%s",&b,&c);

B.scallf("%d%s",&b,c);

C.scanf("%d%s",b,c)

D.scanf("%d%s",b,&c);

2.以下不能作為合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

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

A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B.花括號"{"和"}"只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

4.以下不能輸出字符A的語句是(注:字符A的ASCII值為65,字符a的ASCII值為97)()。

A.printf(“%c\n”,‘a(chǎn)’-32);

B.printf(“%d\n”,‘A’);

C.printf(“%c\n”,65);

D.printf(“%c\n”,‘B’-1);

5.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}輸出的結(jié)果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

6.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

7.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

8.已知字母A的ASCII碼為十進制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的輸出是_________。

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

9.判斷一個順序存儲的隊列sp為空的條件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

10.線性表是具有n個()的有限序列。

A.字符B.數(shù)據(jù)元素C.數(shù)據(jù)項D.表元素

11.以下說法正確的是()。

A.C語言只接受十進制的數(shù)

B.C語言只接受八進制、十進制、十六進制的數(shù)

C.C語言接受除二進制之外任何進制的數(shù)

D.C語言接受任何進制的數(shù)

12.假設(shè)某算法的計算時間可用遞推關(guān)系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時間復(fù)雜度為()

A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)

13.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)當(dāng)執(zhí)行程序時,輸出的結(jié)果是()。A.-1B.1C.4D.0

14.設(shè)有條件表達式:(EXP)?i++:j--,則以下表達式中與(E)(P)完全等價的是A.(EXP==0)B.(EXP!=0)C.(EXP=-1)D.(EXP!=1)

15.設(shè)x和y均為bool量,則x&&y為真的條件是()。

A.它們均為真B.其中一個為真C.它們均為假D.其中一個

16.

17.在順序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找關(guān)鍵碼12需做()次關(guān)鍵碼比較。

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

18.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。

A.概要設(shè)計B.詳細設(shè)計C.可行性分析D.需求分析

19.

20.設(shè)有如下定義和語句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的數(shù)據(jù)為58192765190,其中第1個數(shù)據(jù)代表的是它后面數(shù)據(jù)的個數(shù)。若文件已正確打開,則以下程序段中能將文件的最后5個數(shù)據(jù)依次正確讀入數(shù)組data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

二、2.填空題(20題)21.以下程序的功能是計算。補足所缺語句。

longf(intn)

{inti;longs;

s=【】;

for(i=1;i<=n;i++)s=【】;

returns;

}

main()

{longs;intk,n;

scanf("%d",&n);

s=【】;

for(k=0;k<=n,k++)s=s+【】;

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

}

22.下列程序的運行結(jié)果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

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

}

23.設(shè)C語言中,一個int型數(shù)據(jù)在內(nèi)存中占兩個字節(jié),則int型數(shù)據(jù)的取值范圍為【】。

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

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

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

26.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

27.下面程序的功能是輸出數(shù)組中最大的數(shù),由a指針指向該元素。請?zhí)羁铡?/p>

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b;

for(【】)

if(*a<*b)a=b;

printf("%d",*a);

}

28.軟件危機出現(xiàn)于60年代末,為了解決軟件危機,人們提出了【】的原理來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。

29.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

30.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

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

31.需求分析的最終結(jié)果是產(chǎn)生【】。

32.函數(shù)compare的功能是比較兩個字符串是否相等,若相等則函數(shù)返回1,否則返回o,請?zhí)羁铡?/p>

compare(chars[],chart[])

{

inti=0

while(s[i]==t[i]&&【】)i++;

return(【】?1:0);

}

33.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡t=(char*)【】;

34.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。

35.子程序通常分為兩類:【】和函數(shù),前者是命令的抽象,后者是為了求值。

36.已知字符'A'的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33<回車>,則輸出結(jié)果是【】。

#include<stdio.h>

main()

{chara,b;

a=getchar();seanf("%d",&b);

a=a-'A'+'0';b=b*2;

prinff("%c%c\n",a,b);

}

37.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotate(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=______;______=a[N-1][i];}

}

38.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。

39.有以下語句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值:

n1=10

n2=20

每個輸出行從第一列開始,請?zhí)羁铡?/p>

40.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),隊列屬于______。

三、1.選擇題(20題)41.需求分析階段的任務(wù)是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能

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

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

B.mmn(intarc,char**arv)

C.main(intargc,char*argv)

D.majn(intargv,char*atgc[])

43.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。

A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)

44.以下選項中不能作為合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0

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

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

46.若有定義:inta=4,b=5;floatx=3.4,y=2.1;,則下列表達式的值為()

(float)(a+b)/2+(int)×%(int)y

A.5.5B.55C.5.500000D.55.00000

47.設(shè)有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果從鍵盤上輸入name<回車>name1<回車>,則程序運行后的輸出結(jié)果是()

A.$8B.@10C.$9D.@9

48.設(shè)有以下程序段;inta[5]={0},*p,*q;p=a;q=a;則合法的運算是______。

A.p+qB.p-qC.p*qD.p%q

49.下面程序輸出的結(jié)果是()。main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=-i;elseif(ok2)x=10;x=1;printf("%d\n",x);}

A.-1B.0C.1D.不確定的值

50.有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序運行后的輸出結(jié)果是______。

A.15B.16C.12D.59

51.算法的時間復(fù)雜度是指______。

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

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

main

{

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

printf("%d\n",d*y);

}

A.3B.3.2C.0D.3.07

53.fwrite函數(shù)的一般調(diào)用形式是

A.fwrite(buffer,count,size,fp);

B.fwrite(fP,size,count,buffer);

C.fwrite(fp,count,size,buffer);

D.fwrite(buffer,size,count,fp);

54.設(shè)R是一個二元關(guān)系,S是一個三元關(guān)系,則下列運算中正確的是()。

A.R-SB.R×SC.RNSD.RUS

55.微型計算機的性能主要取決于______。

A.內(nèi)存B.硬盤C.中央處理器D.顯示卡

56.以下程序的輸出結(jié)果是_______。main(){inta=-1,b=1,k;if(++a<0)&&!(b-<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.00

57.下列不是合法的C語言語句是()。

A.a=5B.{inti;i++;}C.;D.{;}

58.若有以下定義和語句,則輸出結(jié)果是______。char*s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));

A.4B.5C.9D.10

59.程序中對fun()函數(shù)有如下說明void*fun();此說明的含義是______。

A.fun函數(shù)無返回值

B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型

C.fun函數(shù)的返回值是無值型的指針類型

D.指針fun指向一個函數(shù),該函數(shù)無返回值

60.下列的程序用來輸出兩個字符串前7個字符中對應(yīng)相等的字符及其位置號,程序空白處應(yīng)該填寫的是()。#include<stdio.h>main(){chars1[]="chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]==s2[i]&&i<7)__________________;}

A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

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

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

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

D.軟件的運行維護過程

62.閱讀下面程序,則執(zhí)行后的結(jié)果是()。

A.tomeetme

B.tmem

C.oete

D.tome

63.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,先后經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)管理階段。其中數(shù)據(jù)獨立性最高的階段是

A.?dāng)?shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.?dāng)?shù)據(jù)項管理

64.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。

A.A.A,BB.A,68C.65,66D.65,68

65.

66.

67.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

68.按照c語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。A.連接符B.大寫字母C.數(shù)字字符D.下劃線

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

A.3B.5C.7D.9

70.

71.下列選項中屬于軟件生命周期中開發(fā)階段任務(wù)的是()。

A.詳細設(shè)計B.運行維護C.可行性研究D.需求分析

72.有以下程序:

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

A.y=0B.y=1C.y=2D.y=3

73.

74.有以下程序

#include<stdio.h>

#defineP24;

#defineS(x)P*x+x;

main()

{inta=2,b=2;

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

}

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

A.程序編譯運行時報錯,無法輸出B.54

C.96D.100

75.

有以下結(jié)構(gòu)說明和變量定義,指針p、q、r分別指向鏈表中的3個連續(xù)結(jié)點。

structnode

{intdata;structnode*next;)*p,*q,*r;

現(xiàn)要將q所指結(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),以下不能按要求完成操作的語句是()。

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

B.P-next=P->next->next;

C.p->next=r;

D.p=q->next;

76.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A.軟件需求規(guī)格說明書B.數(shù)據(jù)庫說明書C.集成測試計劃D.概要設(shè)計說明書

77.

78.

79.

有下列程序段:

intn,t=1,S=0;

scanf("%d",&n);

do{s=s+t;t=t-2;while(t!=n);

為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。

A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)

80.有以下程序則輸出結(jié)果是()。A.1245B.1256C.1278D.1267

五、程序改錯題(1題)81.以下程序可把輸入的十進制數(shù)以十六進制數(shù)的形式輸出。請在橫線上填上適當(dāng)?shù)膬?nèi)容并把橫線刪除,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾析下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),它的功能是將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4Efg”,則應(yīng)輸出“aBc4EFg”。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B解析:scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是地址,而不是變量名。對于變量,通過地址運算符“&”求出內(nèi)存中的地址;對于數(shù)組c[10],數(shù)組名c即為數(shù)組在內(nèi)存中的地址。

2.A字符常量是使用單引號標(biāo)注的單個字符,選項A錯誤;選項B屬于浮點數(shù)常量,正確;選項C屬于轉(zhuǎn)義字符常量,正確;選項D屬于轉(zhuǎn)義字符,代表八進制數(shù)011的ASCII值的字符,正確。本題答案為A選項。

3.A解析:/*與*/之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進行嵌套,故選項A正確:在C語言中,函數(shù)體是從花括號{開始,到花括號}結(jié)束。但沒有規(guī)定花括號{和}只能作為函數(shù)體定界符,故選項B錯誤;選項C中前半句是正確的,C程序由一個或多個函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù),比如主函數(shù)main()就不能由用戶來命名,故選C不正確;在C語言中明確規(guī)定每條語句以分號;結(jié)束,分號是語句不可缺少的一部分,故選項D不正確。所以,4個選項中選項A符合題意。

4.BB選項輸出的格式為%d,即整型格式,所以輸出字符‘A’的ASCII值65,而不是字母A。因為大寫字母比其對應(yīng)的小寫字母的ASCII值小32,所以A選項正確。字符‘A’的ASCII值是65,以%c格式輸出可以輸出字母A,所以C選項正確。因為字符‘A’的ASCII值比字符‘B’的小1,所以D選項正確。故本題答案為B選項。

5.B本題考查實參與形參調(diào)用,從實參傳遞到形參時,只是數(shù)值的傳遞,調(diào)用函數(shù)中值的改變不會影響主函數(shù)中的值,因此原樣輸出。

6.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應(yīng)注意下列兩點:①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當(dāng)初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大??;當(dāng)初值的個數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

7.A由題可知fun的參數(shù)為變量,而a[15]為常量,所以答案為A。

8.A解析:由于字符“5”和“3”的ASCII碼相差為2,所以ch1經(jīng)過運算后的值應(yīng)為65+2=67;同理,ch2經(jīng)過運算后的值應(yīng)為65+3=68,即是字符“D”。

9.A

10.B

11.BC語言可以使用格式控制符“%d”“%u”等接受十進制的數(shù),使用“%o”接受八進制的數(shù),使用“%x”接受十六進制的數(shù)。本題答案為B選項。

12.B

13.A本題考查do-while循環(huán)。當(dāng)--y是0(即y是o)時結(jié)束循環(huán),輸出--y,先將y的值減1再輸出Y的值。

14.B解析:在C語言中,邏輯表達式的結(jié)果只有兩種情況“tree”和“false”。如果要把一個邏輯值看成一個整數(shù)的話,true等于1;false等于0。如果要把一個整數(shù)看成一個邏輯值的話,非0等于true:0等于false。由此可見,如果EXP表達式的結(jié)果為0的話;(EXP)為假:(EXP==0)為真;(EXP!=O)為假;(EXP==1)為假;(EXP!=1)為真。如果EXP表達式的結(jié)果為非0的話:(EXP)為真:(EXP=0)為假;(EXP!=0)為真;(EXP=1)結(jié)果不定;(EXP!=1)結(jié)果不定。綜上所述,只有(EXP!=0)完全等價于表達式(EXP)。故應(yīng)該選擇B。

15.A

16.C

17.B

18.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對目標(biāo)系統(tǒng)提出清晰、準(zhǔn)確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。

19.B

20.A由題意可知,文件abc.txt中存放了6個整數(shù)。其中第1個表示后續(xù)數(shù)據(jù)的個數(shù)。要將最后5個數(shù)據(jù)讀入數(shù)組data中,需要讀取數(shù)據(jù)的個數(shù)為5,所以首先調(diào)用fscanf函數(shù),將5讀入整型變量n中;接著通過for循環(huán),i分別取值0~n-1,調(diào)用fscanf函數(shù)將n個整數(shù)讀入data[0]~data[n-1]中。故本題答案為A選項。

21.1s*i0f(k)

22.33解析:分析程序運行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結(jié)果為3。

23.-32768~32767

24.21

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

26.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

27.a=sb=s+1;b-s<sizeof(s)/sizeof(s[0]);b++a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++解析:題目要求輸出數(shù)組中最大的數(shù),所以要遍歷整個數(shù)組,而指針a用來指向最大數(shù),所以循環(huán)變量只有使用指針b。for初始化時,應(yīng)該先讓a指向第1個數(shù),然后讓b指向第2個數(shù),故循環(huán)初始化語句應(yīng)該為a=s,b=s+1或其他等價表達式。因為要使b遍歷整個數(shù)組,故循環(huán)條件應(yīng)該為b-s<sizeof(s)/sizeof(s[0])或其他等價表達式。最后每次循環(huán)應(yīng)該讓b往后移動一位,故for的第3條語句應(yīng)該是++b、b++或其他等價形勢。所以本題應(yīng)填a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++或其他等價語句。

28.軟件工程學(xué)軟件工程學(xué)

29.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

30.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

31.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性和可追蹤性等。

32.s[i]&&t[i]或s[i]!='\0'&&t[i]!='\0'!(s[i]-t[i])s[i]&&t[i]或s[i]!='\\0'&&t[i]!='\\0'\r\n!(s[i]-t[i])解析:while后括號中的判斷條件為兩個字符串相同位置上的字符相等,且兩個字符串都沒有結(jié)束,則循環(huán)。故第一空應(yīng)該填s[i]&&t[i]或其他等價表達式。如果兩個字符串完全相等,則while循環(huán)退出時s[i]和t[i]的值同時為0,否則s[i]和t[i]不相等。故表達式s[i]-t[i]在字符串相等時為0,不相等時為非0,所以第二空應(yīng)該填!(s[i]-t[i])就滿足題意了。

33.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

34.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。

35.過程過程

36.1B1B解析:本題輸入B33,字符'B'被輸入給字符變量a,33賦給b,執(zhí)行a=a-'A'+'0';得到a的值'1';執(zhí)行b=b*2;得到b值66,最后以字符型輸出為1B。

37.a[0][i]b[i][0]a[0][i]\r\nb[i][0]解析:因為數(shù)組a[N][N]的第0行表示為a[0][n](n=0~3),而數(shù)組b[N][N]的最后一列表示為b[n][N-1)(n=0~3),所以前一空應(yīng)該填a[0][i]。又因為數(shù)組a[N][N]的最后一行表示為a[N-1)][n](n=0~3),而數(shù)組b[N][N]的第0列表示為b[n][0](n=0~3),所以后一空應(yīng)該填b[i][0]。

38.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。

39.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根據(jù)輸出結(jié)果,可以確定“格式控制”為n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原樣輸出的字符,“%d”是按十進制整數(shù)輸出,“\\n”是轉(zhuǎn)義字符,用于輸出回車換行。

40.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:隊列有且只有一個根結(jié)點,而且每一個結(jié)點最多有一個前件,也最多有一個后件,滿足線性結(jié)構(gòu)的條件,所以屬于線性結(jié)構(gòu)。

41.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書

評析,需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細調(diào)查現(xiàn)實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項A)軟件開發(fā)方法是在總體設(shè)計階段完成的任務(wù);選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務(wù):選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務(wù)。

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

43.B解析:本題中有一個陷阱,很多考生會根據(jù)程序的書寫格式來判斷:while循環(huán)的循環(huán)體為printf('y=%d\\n',y);語句。其實while的循環(huán)體是一條空語句,即y--后面的那個分號就是while的循環(huán)體。所以本題只要弄清楚表達式y(tǒng)--何時為“假”,即等于0,就能得出結(jié)果了。因為--運算符是后綴形式,所以表達式y(tǒng)--的值是y自減之前的值,即y等于。時,表達式y(tǒng)--就等于0了。但此時的y還要被減1,所以循環(huán)結(jié)束后,y的值為-1。故應(yīng)該選擇B。

44.B解析:本題考查的是C語言中實型常量的指數(shù)表示法。實型常量的指數(shù)表示法是用字母e(或E)將一個實數(shù)的小數(shù)部分和指數(shù)部分分隔開。字母e(或E)之前是小數(shù)部分,之后是指數(shù)部分,這兩部分都不能省略,且指數(shù)部分必須為整數(shù)。故選項B不正確。所以,4個選項中選項B符合題意。

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

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

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

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

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

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

成一個新的有序表。

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

46.C解析:在計算(float)(a+b)/2時,由于通過強制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進行計算,得4.500000。

在計算(int)x%(int)y時,先將x和y通過強制類型轉(zhuǎn)換成血型,再進行求余運算,得1。

又因為4.500000是float型,所以將1和它相加時,先將1換成float型,再計算,得到5.500000。

[知識擴展]類型轉(zhuǎn)換的一般規(guī)則是:低級類型服從高級類型,并進行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級別由低到高的排序表示為:char→int→unsigned→long→float→double。

47.D

48.B解析:指向同一字符串的指針可以、也只能進行減運算,返回一個整型數(shù)。

49.C解析:如果沒有大括號,else總是與它上面的最近的if配對。所以本題中的elseif(ok2)是與if(!ok1)配對的,首先因為a<b成立所以進一步判斷b!=15也成立,再進一步判斷!ok1,為假,不執(zhí)行子句X=-1;繼續(xù)判斷ok2是否為真,ok2亦為假,故子句x=10;也不執(zhí)行,最后讓x=1;輸出x,所以結(jié)果應(yīng)該選擇C。

50.A解析:自增運算符“++”放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。語句p=s;使指針p指向字符串s的首地址,第一次輸出語句先輸出字符'1',指針p再往后移一位,指向字符'5'的地址,第二個輸出語句,同樣先輸出字符'5',指針p再往后移一位,指向字符'9'的地址。

51.C解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關(guān)。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。

52.C解析:本題中,程序先執(zhí)行語句x=1.2;,根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將double型的常量1.2轉(zhuǎn)換為int型,即取整為1,然后將1賦值給變量x。接下來執(zhí)行語句y=(x+3.8)/5.0;根據(jù)運算符的優(yōu)先級,先計算小括號內(nèi),再計算除法,最后執(zhí)行賦值運算。小括號內(nèi)的運算過程:先將整型變量x的值1轉(zhuǎn)換為double型1.0,然后與3.8進行加法運算,得到中間結(jié)果4.8。接著進行除法運算4.8/5.0,其結(jié)果小于1.0,這里沒有必要計算出精確值,因為接著進行賦值運算,賦值號左邊的變量y的類型為整型,于是對這個小于1.0的中間結(jié)果進行取整,結(jié)果為0,于是變量y的值為0,d*y的值也為0。注意:格式輸出語句printf的使用。

53.D解析:fwrite的形式是fwrite(buffer,size,count,fp),buffer表示準(zhǔn)備輸出的數(shù)據(jù)塊的起始地址,size表示每個數(shù)據(jù)塊的字節(jié)數(shù),count用來指定每寫一次或輸出的數(shù)據(jù)塊,fp為文件指針。

54.B解析:關(guān)系的交(∩)、并(∪)和差(-)運算要求兩個關(guān)系是同元的,顯然作為二元的R和三元S只能做笛卡兒積運算。

55.C解析:中央處理器是計算機的核心部件,控制著計算機的一切活動。

56.C解析:邏輯運算符的優(yōu)先次序如下:!(非)→&&(與)→||(或),但本題特別注意的是短路的概念。

57.A解析:選項A)是一個表達式,它后面沒有分號結(jié)尾(C語言中規(guī)定語句必須以分號結(jié)束),所以它不是語句;選項B)用一個花括號把幾條語句括起來了,這是一個復(fù)合語句;選項C)中只有一個分號,是一個空語句;選項D)是個復(fù)合語句,也是一個空語句。

58.A

59.C解析:C語言中函數(shù)的定義分為有參函數(shù)的定義和無參函數(shù)的定義。無參函數(shù)的定義形式為:

類型標(biāo)識符函數(shù)名()

{說明部分

語句

}

有參函數(shù)的定義有兩種形式:

類型標(biāo)識符函數(shù)名(形式參數(shù)列表)

形式參數(shù)說明

{說明部分

語句

}

類型標(biāo)識符函數(shù)名(類型名形參1,類型名形參2,…)

{說明部分

語句

}

其中函數(shù)名為用戶定義的C語言的合法標(biāo)識符,其前面的類型標(biāo)識符用來說明函數(shù)值的類型,可以是C允許的任何類型,如int、char、float、double和指針類型等。當(dāng)函數(shù)值為整型時類型標(biāo)識符可以省略,如果函數(shù)沒有返回值,類型標(biāo)識符可以是void型。當(dāng)函數(shù)的形參多于一個時,各個形參之間用逗號分隔。

60.C解析:putchar(s)的功能是把字符s輸出到標(biāo)準(zhǔn)輸出設(shè)備;puts(s1)是把s1指向的字符串輸出到標(biāo)準(zhǔn)輸出設(shè)備。

61.A通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。

62.B存放字符串的字符數(shù)組的名字就是這個字符串的首地址。本題的功能是對字符串”tomeetme”進行選擇式輸出,從第一個字母開始,每輸出一個字符即跳過一個。

63.A本題考查數(shù)據(jù)庫中的數(shù)據(jù)管理技術(shù)相關(guān)知識。

數(shù)據(jù)管理技術(shù)的發(fā)展大體可以歸為三個階段:人工管理、文件系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)。

人工管理階段:計算機主要用于科學(xué)計算。外部存儲器只有磁帶、卡片和紙帶等還沒有磁盤等直接存取存儲設(shè)備。軟件只有匯編語言,尚無數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式基本是批處理。這個階段有幾個特點:數(shù)據(jù)不保存;應(yīng)用程序中包含自己要用到的全部數(shù)據(jù);數(shù)據(jù)不共享;數(shù)據(jù)不具有獨立性。

文件系統(tǒng)階段:計算機不僅用于科學(xué)計算,還用在信息管理方面。隨著數(shù)據(jù)量的增加,數(shù)據(jù)的存儲、檢索和維護問題成為緊迫的需要,數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)管理技術(shù)迅速發(fā)展起來。此時,外部存儲器已有磁盤、磁鼓等直接存取的存儲設(shè)備。軟件領(lǐng)域出現(xiàn)了操作系統(tǒng)和高級軟件。操作系統(tǒng)中的文件系統(tǒng)是專門管理外存的數(shù)據(jù)管理軟件,文件是操作系統(tǒng)管理的重要資源之一。數(shù)據(jù)處理方式有批處理,也有聯(lián)機實時處理。在文件系統(tǒng)支持下,數(shù)據(jù)開始從程序中逐步獨立出來,數(shù)據(jù)文件可以獨立、長期地存儲,數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)有了一定的區(qū)別。數(shù)據(jù)的邏輯結(jié)構(gòu)是指呈現(xiàn)在用戶面前的數(shù)據(jù)結(jié)構(gòu)形式。數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)在計算機存儲設(shè)備上的實際存儲結(jié)構(gòu)。文件系統(tǒng)對計算機數(shù)據(jù)管理能力的提高雖然起了很大的作用,但是仍然存在許多根本性問題。主要表現(xiàn)在:數(shù)據(jù)文件是為滿足特定業(yè)務(wù)領(lǐng)域某一部門的專門需要而設(shè)計,數(shù)據(jù)和程序相互依賴,數(shù)據(jù)缺乏足夠的獨立性;數(shù)據(jù)沒有集中管理的機制,其安全性和完整性無法保障,數(shù)據(jù)維護業(yè)務(wù)仍然由應(yīng)用程序來承擔(dān);數(shù)據(jù)冗余度大;對現(xiàn)有數(shù)據(jù)文件不易擴充,不易移植,難以通過增、刪數(shù)據(jù)項來適應(yīng)新的應(yīng)用要求;各數(shù)據(jù)文件之間缺乏聯(lián)系,互相獨立,不能反映現(xiàn)實世界中事物之間的聯(lián)系。文件系統(tǒng)管理數(shù)據(jù)有如下特點:數(shù)據(jù)可以長期保存;由文件系統(tǒng)管理數(shù)據(jù);數(shù)據(jù)共享性差,冗余度大;數(shù)據(jù)獨立性差。

數(shù)據(jù)庫管理系統(tǒng)階段:數(shù)據(jù)管理技術(shù)進入數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫系統(tǒng)克服了文件系統(tǒng)的缺陷,提供了對數(shù)據(jù)更高級、更有效的管理。這個階段的程序和數(shù)據(jù)的聯(lián)系通過數(shù)據(jù)庫管理系統(tǒng)來實現(xiàn)(DBMS)。數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)管理具有以下特點:

采用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)模型不僅描述數(shù)據(jù)本身的特征,還要描述數(shù)據(jù)之間的聯(lián)系,這種聯(lián)系通過存取路徑實現(xiàn)。通過所有的存取路徑表示自然的數(shù)據(jù)聯(lián)系是數(shù)據(jù)庫與傳統(tǒng)文件的根本區(qū)別。這樣,數(shù)據(jù)不再面向特定的某個或多個應(yīng)用,而是面向整個應(yīng)用系統(tǒng)。數(shù)據(jù)冗余明顯減少,實現(xiàn)了數(shù)據(jù)共享。

有較高的數(shù)據(jù)獨立性。數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)之間的差別可以很大。用戶以簡單的邏輯結(jié)構(gòu)操作數(shù)據(jù)而無須考慮數(shù)據(jù)的物理結(jié)構(gòu)。數(shù)據(jù)庫的結(jié)構(gòu)分成用戶的局部邏輯結(jié)構(gòu)、數(shù)據(jù)庫的整體邏輯結(jié)構(gòu)和物理結(jié)構(gòu)三級。用戶(應(yīng)用程序或終端用戶)的數(shù)據(jù)和外存中的數(shù)據(jù)之間轉(zhuǎn)換由數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)。

數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口。用戶可以使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式(如用C語言和數(shù)據(jù)庫語言聯(lián)合編制的程序)操作數(shù)據(jù)庫。

數(shù)據(jù)庫系統(tǒng)提供了數(shù)據(jù)控制功能,增加了系統(tǒng)的靈活性。對數(shù)據(jù)的操作不一定以記錄為單位,可以以數(shù)據(jù)項為單位。

64.C在C語言中,用整型格式輸出字符時,輸出的是其ASCII碼值。

65.B

66.B

67.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。

68.AC語言中標(biāo)識符由字母、下劃線或數(shù)字組成,且開頭必須是字母或下劃線。因此A選項中的連接符不合法。

69.A向switch語句塊傳送參數(shù)后,編譯器會先尋找匹配的case語句塊,找到后就執(zhí)行該語句塊,遇到break跳出;如果沒有匹配的語句塊,則執(zhí)行default語句塊。case與default沒有順序之分。因此第一次循環(huán)k的值為l,執(zhí)行c+=k,c的值為1,再執(zhí)行ease2后的語句c++,c的值為2,遇到break語句跳出循環(huán);第:二次循環(huán)k的值為2,執(zhí)行case2后面的語句c++,c的值為3,跳出循環(huán)。故本題答案為A)。

70.D

71.A\n軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。定義階段包括問題定義、可行性研究和需求分析,開發(fā)階段包括概要設(shè)計、詳細設(shè)計、實現(xiàn)和測試,運行維護即軟件的運行和維護。

\n

72.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a[2]的值賦給變量y,所以輸出為y=3。

73.C

74.A本題主要考查宏的定義。宏定義用一個標(biāo)識符來表示一個字符串,這個字符串可以是常量、變量或表達式。在宏調(diào)用中將用該字符串代換宏名。宏定義中,我們主要需要注意以下幾點:

(1)同一宏名不能重復(fù)定義,除非這兩個宏定義命令行完全一致。

(2)定義宏時,記得其結(jié)尾處不要用分號隔開。

(3)替換帶參數(shù)的宏名時,一對圓括號必不可少,圓括號中實參個數(shù)應(yīng)該與形參個數(shù)相同,若有多個參數(shù),它們之間用逗號隔開。

(4)宏定義中的字符串應(yīng)加括號,字符串中出現(xiàn)的形式參數(shù)兩邊也應(yīng)加括號。

在本題中,定義宏時,出現(xiàn)了一個明顯的錯誤,即在宏的定義后面用分號表示結(jié)束,這顯然是不對的。程序編譯時,系統(tǒng)會報錯,無法完成輸出。因此,本題的正確答案是A。

75.D

\n本題考查鏈表結(jié)點的刪除,q一>next中存放的是r所指結(jié)點的首地址,將r所指結(jié)點的首地址存于p--next中,則實現(xiàn)刪除q所指點的功能,并保持鏈表連續(xù),P所指點與r所指結(jié)點相連。

\n

76.A軟件需求規(guī)格說明書是需求分析階段最后的成果,它是作為需求分析的一部分而制定的可交付文檔。概要設(shè)計說明書、數(shù)據(jù)庫說明書、集成測試計劃都是概要設(shè)計階段需要編寫的文檔。

77.D

78.C

79.D

\n本題主要考查do—while循環(huán),因為變量t的初始值等于1,經(jīng)過第一次do-while循環(huán)后,執(zhí)行t=t-1這條語句一次,所以變量t的值為-1,判斷關(guān)系表達式t!=n是否成立,如果關(guān)系表達式成立,則執(zhí)行第二次循環(huán),如果關(guān)系表達式不成立,退出循環(huán)。由此可見,只要輸入變量n的值為負奇數(shù),則一定會使t==n成立,故退出do-while循環(huán)。

\n

80.A本題考查的是輸入輸出函數(shù)。sCanf()是格式化輸入函數(shù);getChar()函數(shù)從鍵盤緩沖區(qū)讀一個字符;putChar()輸出一個字符;printf()函數(shù)是格式化輸出函數(shù)。在題目中,程序執(zhí)行到sCanf()函數(shù)時,會暫停等待用戶輸A4個字符,按題意輸)k123<回車>后,字符l-3被分別賦值到Cl-C3中,而C4會得到一個換行符’\\\\n’。然后執(zhí)行第1個getChar()函數(shù),由于前面的sCanf()函數(shù)讀完了緩沖區(qū)中的所有字符,所以此時程序又會暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區(qū)第一個字符4賦值到。5,第二個字符5賦值給C6,所以本題應(yīng)該選擇A)。

81.(1)錯誤:缺少語句

正確:應(yīng)填人num%base

(2)錯誤:缺少語句

正確:應(yīng)填人[d]

【解析】按題目中的要求把輸入的十進制數(shù)以十六進制數(shù)的形式輸出,首先要對十進制數(shù)對16求余,得出十六進制每一位上的數(shù)字。因此,c[i]__________處填num%base。數(shù)組b為十進制數(shù)0~15所對應(yīng)的十六進制數(shù),數(shù)組c中存放的是十六進制數(shù)每一位上的數(shù)字。因此,b__________處填Ed2。

82.1voidfun(char*ss)2{3inti;4for(i=0;ss[i]!='\\0';i++)/*將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母*/5if(i%2==1&&ss[i]>='a'&&ss[i]<='z')6ss[i]=ss[i]-32;7}本題要求將給定字符串ss中下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母。需要先判斷下標(biāo)為奇數(shù)的字母是否是小寫字母,如果是再通過其轉(zhuǎn)換方法進行轉(zhuǎn)換。從C語言的學(xué)習(xí)中知道,只要將小寫字母減去32即轉(zhuǎn)換成大寫宇母,將大寫字母加上32即換轉(zhuǎn)成小寫字母。本程序用if語句實現(xiàn)轉(zhuǎn)換功能。2022年安徽省滁州市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有定義語句intb;charc[10];,則正確的輸入語句是______。A.scallf("%d%s",&b,&c);

B.scallf("%d%s",&b,c);

C.scanf("%d%s",b,c)

D.scanf("%d%s",b,&c);

2.以下不能作為合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

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

A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B.花括號"{"和"}"只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

4.以下不能輸出字符A的語句是(注:字符A的ASCII值為65,字符a的ASCII值為97)()。

A.printf(“%c\n”,‘a(chǎn)’-32);

B.printf(“%d\n”,‘A’);

C.printf(“%c\n”,65);

D.printf(“%c\n”,‘B’-1);

5.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}輸出的結(jié)果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

6.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

7.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

8.已知字母A的ASCII碼為十進制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的輸出是_________。

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

9.判斷一個順序存儲的隊列sp為空的條件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

10.線性表是具有n個()的有限序列。

A.字符B.數(shù)據(jù)元素C.數(shù)據(jù)項D.表元素

11.以下說法正確的是()。

A.C語言只接受十進制的數(shù)

B.C語言只接受八進制、十進制、十六進制的數(shù)

C.C語言接受除二進制之外任何進制的數(shù)

D.C語言接受任何進制的數(shù)

12.假設(shè)某算法的計算時間可用遞推關(guān)系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時間復(fù)雜度為()

A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)

13.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)當(dāng)執(zhí)行程序時,輸出的結(jié)果是()。A.-1B.1C.4D.0

14.設(shè)有條件表達式:(EXP)?i++:j--,則以下表達式中與(E)(P)完全等價的是A.(EXP==0)B.(EXP!=0)C.(EXP=-1)D.(EXP!=1)

15.設(shè)x和y均為bool量,則x&&y為真的條件是()。

A.它們均為真B.其中一個為真C.它們均為假D.其中一個

16.

17.在順序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找關(guān)鍵碼12需做()次關(guān)鍵碼比較。

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

18.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。

A.概要設(shè)計B.詳細設(shè)計C.可行性分析D.需求分析

19.

20.設(shè)有如下定義和語句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的數(shù)據(jù)為58192765190,其中第1個數(shù)據(jù)代表的是它后面數(shù)據(jù)的個數(shù)。若文件已正確打開,則以下程序段中能將文件的最后5個數(shù)據(jù)依次正確讀入數(shù)組data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

二、2.填空題(20題)21.以下程序的功能是計算。補足所缺語句。

longf(intn)

{inti;longs;

s=【】;

for(i=1;i<=n;i++)s=【】;

returns;

}

main()

{longs;intk,n;

scanf("%d",&n);

s=【】;

for(k=0;k<=n,k++)s=s+【】;

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

}

22.下列程序的運行結(jié)果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

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

}

23.設(shè)C語言中,一個int型數(shù)據(jù)在內(nèi)存中占兩個字節(jié),則int型數(shù)據(jù)的取值范圍為【】。

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

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

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

26.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

27.下面程序的功能是輸出數(shù)組中最大的數(shù),由a指針指向該元素。請?zhí)羁铡?/p>

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b;

for(【】)

if(*a<*b)a=b;

printf("%d",*a);

}

28.軟件危機出現(xiàn)于60年代末,為了解決軟件危機,人們提出了【】的原理來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。

29.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

30.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

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

31.需求分析的最終結(jié)果是產(chǎn)生【】。

32.函數(shù)compare的功能是比較兩個字符串是否相等,若相等則函數(shù)返回1,否則返回o,請?zhí)羁铡?/p>

compare(chars[],chart[])

{

inti=0

while(s[i]==t[i]&&【】)i++;

return(【】?1:0);

}

33.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡t=(char*)【】;

34.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。

35.子程序通常分為兩類:【】和函數(shù),前者是命令的抽象,后者是為了求值。

36.已知字符'A'的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33<回車>,則輸出結(jié)果是【】。

#include<stdio.h>

main()

{chara,b;

a=getchar();seanf("%d",&b);

a=a-'A'+'0';b=b*2;

prinff("%c%c\n",a,b);

}

37.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotate(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=______;______=a[N-1][i];}

}

38.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。

39.有以下語句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值:

n1=10

n2=20

每個輸出行從第一列開始,請?zhí)羁铡?/p>

40.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),隊列屬于______。

三、1.選擇題(20題)41.需求分析階段的任務(wù)是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能

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

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

B.mmn(intarc,char**arv)

C.main(intargc,char*argv)

D.majn(intargv,char*atgc[])

43.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。

A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)

44.以下選項中不能作為合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0

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

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

46.若有定義:inta=4,b=5;floatx=3.4,y=2.1;,則下列表達式的值為()

(float)(a+b)/2+(int)×%(int)y

A.5.5B.55C.5.500000D.55.00000

47.設(shè)有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果從鍵盤上輸入name<回車>name1<回車>,則程序運行后的輸出結(jié)果是()

A.$8B.@10C.$9D.@9

48.設(shè)有以下程序段;inta[5]={0},*p,*q;p=a;q=a;則合法的運算是______。

A.p+qB.p-qC.p*qD.p%q

49.下面程序輸出的結(jié)果是()。main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=-i;elseif(ok2)x=10;x=1;printf("%d\n",x);}

A.-1B.0C.1D.不確定的值

50.有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序運行后的輸出結(jié)果是______。

A.15B.16C.12D.59

51.算法的時間復(fù)雜度是指______。

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

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

main

{

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

printf("%d\n",d*y);

}

A.3B.3.2C.0D.3.07

53.fwrite函數(shù)的一般調(diào)用形式是

A.fwrite(buffer,count,size,fp);

B.fwrite(fP,size,count,buffer);

C.fwrite(fp,count,size,buffer);

D.fwrite(buffer,size,count,fp);

54.設(shè)R是一個二元關(guān)系,S是一個三元關(guān)系,則下列運算中正確的是()。

A.R-SB.R×SC.RNSD.RUS

55.微型計算機的性能主要取決于______。

A.內(nèi)存B.硬盤C.中央處理器D.顯示卡

56.以下程序的輸出結(jié)果是_______。main(){inta=-1,b=1,k;if(++a<0)&&!(b-<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.00

57.下列不是合法的C語言語句是()。

A.a=5B.{inti;i++;}C.;D.{;}

58.若有以下定義和語句,則輸出結(jié)果是______。char*s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));

A.4B.5C.9D.10

59.程序中對fun()函數(shù)有如下說明void*fun();此說明的含義是______。

A.fun函數(shù)無返回值

B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型

C.fun函數(shù)的返回值是無值型的指針類型

D.指針fun指向一個函數(shù),該函數(shù)無返回值

60.下列的程序用來輸出兩個字符串前7個字符中對應(yīng)相等的字符及其位置號,程序空白處應(yīng)該填寫的是()。#include<stdio.h>main(){chars1[]="chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]==s2[i]&&i<7)__________________;}

A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

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

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

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

D.軟件的運行維護過程

62.閱讀下面程序,則執(zhí)行后的結(jié)果是()。

A.tomeetme

B.tmem

C.oete

D.tome

63.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,先后經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)管理階段。其中數(shù)據(jù)獨立性最高的階段是

A.?dāng)?shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.?dāng)?shù)據(jù)項管理

64.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。

A.A.A,BB.A,68C.65,66D.65,68

65.

66.

67.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

68.按照c語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。A.連接符B.大寫字母C.數(shù)字字符D.下劃線

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

A.3B.5C.7D.9

70.

71.下列選項中屬于軟件生命周期中開發(fā)階段任務(wù)的是()。

A.詳細設(shè)計B.運行維護C.可行性研究D.需求分析

72.有以下程序:

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

A.y=0B.y=1C.y=2D.y=3

73.

74.有以下程序

#include<stdio.h>

#defineP24;

#defineS(x)P*x+x;

main()

{inta=2,b=2;

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

}

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

A.程序編譯運行時報錯,無法輸出B.54

C.96D.100

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論