2021-2022年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第1頁(yè)
2021-2022年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第2頁(yè)
2021-2022年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第3頁(yè)
2021-2022年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第4頁(yè)
2021-2022年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.若有以下定義,則對(duì)a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

2.

3.

4.

5.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

6.檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱(chēng)為_(kāi)_____。

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

7.C語(yǔ)言中char類(lèi)型數(shù)據(jù)占字節(jié)數(shù)為()。

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

8.以下對(duì)C語(yǔ)言函數(shù)的有關(guān)描述中,正確的是

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

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

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

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

9.一個(gè)有n個(gè)頂點(diǎn)的連通無(wú)向圖至少有()條邊。

A.n-1B.nC.n+1D.n+2

10.若有以下說(shuō)明和定義:則對(duì)函數(shù)fun的正確調(diào)用語(yǔ)句是()。A.(*a)(&c);B.a=a(x);C.b=*b(x);D.fun(b);

11.廣義表(a,b,c,d)的表頭是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

12.下列關(guān)于c語(yǔ)言用戶標(biāo)識(shí)符的敘述中正確的是()。

A.用戶標(biāo)識(shí)符中可以出現(xiàn)下劃線和中劃線(減號(hào))

B.用戶標(biāo)識(shí)符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線

C.用戶標(biāo)識(shí)符中可以出現(xiàn)下劃線,但不可以放在用戶標(biāo)識(shí)符的開(kāi)頭

D.用戶標(biāo)識(shí)符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標(biāo)識(shí)符的開(kāi)頭

13.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

14.在下面棧的基本運(yùn)算中,不是加工型運(yùn)算的是______。

A.初始化B.進(jìn)棧C.退棧D.判???/p>

15.某某二叉樹(shù)的中序序列和后序序列正好相反,則該二叉樹(shù)一定是______的二叉樹(shù)

A.空或只有一個(gè)結(jié)點(diǎn)B.高度等于其結(jié)點(diǎn)數(shù)C.任一結(jié)點(diǎn)無(wú)左孩子D.任一結(jié)點(diǎn)無(wú)右孩子

16.二叉樹(shù)中第5層上的結(jié)點(diǎn)個(gè)數(shù)最多為_(kāi)_______

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

17.

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

#include<stdio.h>

main

{inta=0,i;

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

{switch(i)

{case0:

case3:a+=1;

case1;

case2:a+=2;

default:a+=3;

}

}

printf("%d",a);

}

A.19B.1C.6D.8

18.冒泡排序在最壞情況下的比較次數(shù)是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

19.有如下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=P[5];則b的值是()。

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

20.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項(xiàng)中錯(cuò)誤的是

A.x++;B.y++;C.c++;D.D++;

二、2.填空題(20題)21.下面程序的功能是調(diào)用sub函數(shù)計(jì)算數(shù)組a中字符串的長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>

sub(chars[])

{intn;

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

return【】;

}

main()

{char*a;intk;

gets(a);

【】

printf("%d",k);

22.以下條件表達(dá)式可計(jì)算:1+|a|的值,請(qǐng)?zhí)羁铡>=0?【】:【】

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

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

}

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

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

#defineMAX(x,y)(x)>(y)?(x)L:(y)

main()

{inta=5,b=2,C=3,d=3,t;

t=MAX(a+b,c+D)*10;

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

}

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

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA"m,"BB","CC:,"DD"};

printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);

}

27.一個(gè)算法的空間復(fù)雜度是指該算法所耗費(fèi)的【】。

28.在樹(shù)形結(jié)構(gòu)中,樹(shù)根結(jié)點(diǎn)沒(méi)有______。

29.算法的工作量大小和實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少分別稱(chēng)為算法的【】。

30."printf("%d\n",strlen("\t\"'\023\xABC\n"));"語(yǔ)句的輸出結(jié)果是______。

31.若a是血型變量,且a的初值為4,則計(jì)算a+=a-=a*a表達(dá)式后a的值為_(kāi)_____。

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

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

33.對(duì)數(shù)據(jù)元素之間的邏輯關(guān)系的描述是()。

34.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫(xiě)適當(dāng)內(nèi)容,使程序能正常運(yùn)行。

#include<stdio.h>

【】(double,double);

main()

{doublex,y;

scanf("%If%If",&x,&y);

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

}

doublemax(doublea,doubleb)

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

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

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

p=a;

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

37.以下函數(shù)用來(lái)求出兩整數(shù)之和,并通過(guò)形參將結(jié)果傳回,請(qǐng)?zhí)畛渫暾?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;

}

38.若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和【】測(cè)試方法。

39.下面rotate函數(shù)的功能:將n行n列的矩陣A轉(zhuǎn)置為A',請(qǐng)?zhí)羁铡?/p>

#defineN4

voidrotate(inta[][N])

{inti,j,t;

for{i=0;i<N;j++}

for{j=0;【】;j++}

{t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

40.指針變量p和數(shù)組a的說(shuō)明如下:

int*a[3]={"aa","bb","cc"},**p;

執(zhí)行語(yǔ)句p=&a[2];后,*p指向的字符串是______。

三、1.選擇題(20題)41.下列敘述中正確的是A.軟件測(cè)試的主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤

B.軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置

C.為了提高軟件測(cè)試的效率,最好由程序編制者自己來(lái)完成軟件測(cè)試的工作

D.軟件測(cè)試是證明軟件沒(méi)有錯(cuò)誤

42.若有說(shuō)明語(yǔ)句:inta,b,c,*d=&c;,則能正確從鍵盤(pán)讀入三個(gè)整數(shù)分別賦給變量a、b、d的語(yǔ)句是()

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

43.有以下程序:main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,B);}程序運(yùn)行后的輸出結(jié)果是()。

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

44.下列程序的輸出結(jié)果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

45.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%\n",(a+=a-=a*a));}

A.{B.1C.2D.-12

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

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

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

47.下列敘述中錯(cuò)誤的是()。

A.在C語(yǔ)言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語(yǔ)言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類(lèi)型上只需賦值兼容

C.在C語(yǔ)言中,外部變量的隱含類(lèi)型是自動(dòng)存儲(chǔ)類(lèi)別

D.在C語(yǔ)言中,函數(shù)形參的存儲(chǔ)類(lèi)型是自動(dòng)(auto)類(lèi)型的變量

48.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是()。

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

49.已有定義:intx=3,y=4,z=5;,則表達(dá)式!(x+y)+z-1&&y+z/2的值是

A.6B.0C.2D.1

50.下列描述正確的是()。

A.C語(yǔ)句能嵌套定義函數(shù),但不可以嵌套調(diào)用函數(shù)

B.C語(yǔ)句不能嵌套定義函數(shù),也不可以嵌套調(diào)用函數(shù)

C.C語(yǔ)句能嵌套定義函數(shù),也可以嵌套調(diào)用函數(shù)

D.C語(yǔ)句不能嵌套定義函數(shù),但可以嵌套調(diào)用函數(shù)

51.有以下程序

#include<stdio.h>

voidfun(int*s,intn1,intn2)

{inti,j,t;

i=n1;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<l0;k++)printf("%d",a[k]);printf("\n");

}

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

A.0987654321B.4321098765C.5678901234D.0987651234

52.若w、x、y、z、m均為int型變量,則執(zhí)行下列的語(yǔ)句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;

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

53.若以下選項(xiàng)中的變量已正確定義,則正確的賦值語(yǔ)句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

54.若要求從鍵盤(pán)讀入含有窄格字符的字符串,應(yīng)使用函數(shù)()。

A.getc()B.gets()C.getchar()D.scanf()

55.鏈表不具有的特點(diǎn)是()

A.不必事先估計(jì)存儲(chǔ)空間B.可隨機(jī)訪問(wèn)任一元素C.插入刪除不需要移動(dòng)元素D.所需空間與線性表長(zhǎng)度成正比

56.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

57.對(duì)于基本類(lèi)型機(jī)同的兩個(gè)指針變量之間,不能進(jìn)行的動(dòng)算是()

A.<B.=C.+D.-

58.數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門(mén)學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及()。A.A.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)B.計(jì)算方法C.數(shù)據(jù)映象D.邏輯存儲(chǔ)

59.兩次運(yùn)行下列的程序,如果從鍵盤(pán)上分別輸入3和1,則輸出結(jié)果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}

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

60.閱讀以下程序及對(duì)程序功能的描述,其中正確的是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf(“Entertheinfilename:\n”);scanf(“%s”,infile);printf(“Entertheoutfilename:\n”);scanf(“%s”,outfile);if((in=foen(infile,“r”))==NULL)printf(“cannotopeninfile\n”);exit(0);if((out=fopen(outfile,“w”))==NULL)printf(“cannotopenoutfile\n”);exit(0);while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);A.程序完成將磁盤(pán)文件的信息在屏幕上顯示的功能

B.程序完成將兩個(gè)磁盤(pán)文件合二為一的功能

C.程序完成將一個(gè)磁盤(pán)文件復(fù)制到另一個(gè)磁盤(pán)文件中

D.程序完成將兩個(gè)磁盤(pán)文件合并并在屏幕上輸出

四、選擇題(20題)61.有以下程序:

則以下函數(shù)調(diào)用語(yǔ)句錯(cuò)誤的是()。

A.

B.

C.

D.

62.(47)在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開(kāi)發(fā)中的階段是()

A.詳細(xì)設(shè)計(jì)

B.需求分析

C.總體設(shè)計(jì)

D.編程調(diào)試

63.在JavaScript語(yǔ)言中,要定義局部變量則可以()。

A.由關(guān)鍵字private在函數(shù)內(nèi)定義

B.由關(guān)鍵字private在函數(shù)外定義

C.由var在函數(shù)內(nèi)定義

D.由關(guān)鍵字var在函數(shù)外定義

64.若程序中有宏定義行:

65.已知longi=32768;執(zhí)行語(yǔ)句printf(“%d”,i);屏幕顯示()。

A.-1B.-32768C.1D.32768

66.

67.

68.軟件生命周期中所花費(fèi)用最多的階段是()。

A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)

69.下列選項(xiàng)中不屬于軟件生命周期開(kāi)發(fā)階段任務(wù)的是()。

A.軟件測(cè)試B.概要設(shè)計(jì)C.軟件維護(hù)D.詳細(xì)設(shè)計(jì)

70.若有定義:floatx=1.5;inta=1,b=3,c--2;,則正確的switch語(yǔ)句是()。

71.設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為()。

A.20B.0或35C.15D.16

72.

73.

74.若a是數(shù)值類(lèi)型,則邏輯表達(dá)式(a==1)Il(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

75.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+C—k值的類(lèi)型為:()。

A.intB.doubleC.floatD.char

76.以下定義數(shù)組的語(yǔ)句中錯(cuò)誤的是()。

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

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

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

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

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

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

A.break語(yǔ)句只能用于switch語(yǔ)句體中

B.continue語(yǔ)句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)

D.在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同

79.

80.有以下程序:

voidmain()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{defaule:m++;

case0:m++;break;

}

}

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

}

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

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

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是按以下遞歸公式求函數(shù)值。例如,當(dāng)給n輸入3時(shí),函數(shù)值為60;當(dāng)給n輸入6時(shí),函數(shù)值為480。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。例如,若二維數(shù)組中的數(shù)據(jù)為132333431424344415253545則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>voidproc(int(*s)[103,int*b,int*n,intrain.intnn){ }voidmain{intarr[10][10]={{33,33,33,33),{44,44,44,44},{55,55,55,55}),i,j;inta[l00]={o),n=o;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",arr[i][j]):printf("\n");}proc(arr,a,&n,3,4):printf("TheAarray:\n");for(i=0;i<n;i++)printf("%3d",a[i]):printf("\n\n");}

參考答案

1.D本題考查如何引用數(shù)組元素的地址。選項(xiàng)A)中,p5引用的是af51的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯(cuò)誤;選項(xiàng)B)中,*a1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C)中,這種引用方式錯(cuò)誤;選項(xiàng)D)中,&a[0]引用的是數(shù)組的首地址。

2.D

3.C

4.D

5.D本題考查邏輯運(yùn)算符的使用。當(dāng)“&&”的兩個(gè)運(yùn)算對(duì)象都是邏輯1時(shí),表達(dá)式返回值才是1;“||”的兩個(gè)運(yùn)算對(duì)象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。

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

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

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

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

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

7.CChar類(lèi)型數(shù)據(jù)占1個(gè)字節(jié)。

8.A解析:C語(yǔ)言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒(méi)有返回值,若有返回值,則返回值類(lèi)型必須確定。

9.A

10.A題干中,函數(shù)fun接收一個(gè)整型指針參數(shù),返回值為int類(lèi)型。main函數(shù)首先定義一個(gè)函數(shù)指針a,將函數(shù)fun的地址賦給a,所以a是指向函數(shù)fun的指針,可以通過(guò)a調(diào)用函數(shù)fun。選項(xiàng)A中,通過(guò)a調(diào)用函數(shù)fun,可以使用(*a),接收的參數(shù)是整型變量c的地址,正確;選項(xiàng)B中,參數(shù)x是一個(gè)數(shù)組,錯(cuò)誤;選項(xiàng)C中,調(diào)用b函數(shù),由于程序沒(méi)有給出函數(shù)b的定義,因此這里調(diào)用b是錯(cuò)誤的,而且函數(shù)b是沒(méi)有參數(shù)的,這里調(diào)用b的時(shí)候傳入了參數(shù),所以C錯(cuò)誤;選項(xiàng)D中,由于b是一個(gè)函數(shù),不能作為整型指針變量傳給fun函數(shù),因此D錯(cuò)誤。本題答案為A選項(xiàng)。

11.A

12.B解析:在C語(yǔ)言中,合法的標(biāo)識(shí)符由字母,數(shù)字和下劃線組成(故選項(xiàng)A不正確),并且第一個(gè)字符必須為字母或者下劃線(故選項(xiàng)B和選項(xiàng)D不正確).所以,B選項(xiàng)為所選.

13.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱(chēng)為棧頂,而不允許插入與刪除的另一端稱(chēng)為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊(duì)列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊(duì)列組織數(shù)據(jù)的原則。

14.D

15.C

16.C

17.A

\n本題考查switch語(yǔ)句。當(dāng)i一1時(shí),執(zhí)行case1,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時(shí),執(zhí)行case2,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時(shí),執(zhí)行case3,a=a+1=11,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,a—a+2—13,a—a+3一l6:當(dāng)i=4時(shí),執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。

18.C冒泡排序的基本思想是:將相鄰的兩個(gè)元素進(jìn)行比較,如果反序,則交換;對(duì)于一個(gè)待排序的序列,經(jīng)一趟排序后,最大值的元素移動(dòng)到最后的位置,其他值較大的元素也向最終位置移動(dòng),此過(guò)程稱(chēng)為一趟冒泡。對(duì)于有n個(gè)數(shù)據(jù)的序列,共需n-1趟排序,第i趟對(duì)從l到n-i個(gè)數(shù)據(jù)進(jìn)行比較、交換。冒泡排序的最壞情況是待排序序列逆序,第l趟比較n-1次,第2趟比較n-2次。依此類(lèi)推,最后趟比較1次,一共進(jìn)行n-l趟排序。因此,冒泡排序在最壞情況下的比較次數(shù)是(n-1)+(n-2)+…+l,結(jié)果為n(n-1)/2。本題的正確答案是選項(xiàng)C。

19.C解析:p=&a[3]將指針指向數(shù)組a的第4個(gè)元素,p[5]則是數(shù)組a的第9個(gè)元素,而a[8]=9,所以b=9。

20.D解析:C語(yǔ)言中++運(yùn)算符的對(duì)象可以是整型、實(shí)型和字符型,但不可是常量,本題中D為常量。

21.s[n]!='\0';或s[n];nk=sub(a);s[n]!='\\0';或s[n];\r\nn\r\nk=sub(a);解析:函數(shù)sub()通過(guò)for循環(huán)計(jì)算字符串的長(zhǎng)度,當(dāng)字符串沒(méi)有結(jié)束時(shí)循環(huán),因此判斷循環(huán)與否的條件是看字符串是否結(jié)束。故第1空應(yīng)該填寫(xiě)s[n];或其他等價(jià)表達(dá)式。循環(huán)結(jié)束返回字符串長(zhǎng)度值,循環(huán)變量n中累計(jì)了循環(huán)的次數(shù)即字符串的長(zhǎng)度,故第2空應(yīng)該填n。主函數(shù)中的空白處應(yīng)該是一條調(diào)用函數(shù)sub()的語(yǔ)句,將字符串的首地址作為實(shí)參傳遞給形參,并將返回值賦值給變量k。故第3空應(yīng)該填k=sub(a);。

22.1+a1-a1+a,1-a解析:考查條件運(yùn)算符的使用。因?yàn)轭}目中求的是1+|a|的值,即1和a的絕對(duì)值之和,所以根據(jù)數(shù)學(xué)中求絕對(duì)值的規(guī)則;當(dāng)a>=0時(shí),絕對(duì)值取本身,當(dāng)a<0時(shí),絕對(duì)值取相反數(shù),再結(jié)合條件運(yùn)算符的計(jì)算規(guī)則,可得到本題的答案為a>=0。

23.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。

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

25.77解析:在C語(yǔ)言中,宏定義是直接替換的,所以在對(duì)表達(dá)式MAX(a+b,c+d)*10進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。

在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。

26.DDBBCCDDBBCC解析:C語(yǔ)言對(duì)枚舉的定義規(guī)定:在枚舉中聲明的各個(gè)枚舉元素,如果沒(méi)有明確指出某個(gè)枚舉元素的值,它的上一個(gè)元素存在并有明確值的情況下,這個(gè)枚舉元素的值為其上一個(gè)元素的值+1。在本題中,沒(méi)有明確說(shuō)明枚舉元素em3的值,則em3=em2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。

27.存儲(chǔ)空間存儲(chǔ)空間解析:空間復(fù)雜度是指算法在執(zhí)行過(guò)程中臨時(shí)占用的存儲(chǔ)空間大小,包括:①算法本身所占用的存儲(chǔ)空間;②算法的輸入輸出數(shù)據(jù)所占用的存儲(chǔ)空間;③算法在運(yùn)行過(guò)程中臨時(shí)占用的存儲(chǔ)空間。

28.前件前件

29.時(shí)間復(fù)雜度和空間復(fù)雜度時(shí)間復(fù)雜度和空間復(fù)雜度

30.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長(zhǎng)度并作為函數(shù)的返回值,這里的長(zhǎng)度不包括串尾的結(jié)束標(biāo)志\'\\0\'。

\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號(hào):\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符;\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符;\'\\n\'是轉(zhuǎn)義字符,代表回車(chē)換行。

5個(gè)字符常量各代表一個(gè)字符,再加上字母C,所以返回的長(zhǎng)度是6。

31.-24-24解析:本題考查賦值運(yùn)算符a+=b等價(jià)于a=a+b;a-=a*a等價(jià)于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

32.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類(lèi)型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。

33.數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是對(duì)數(shù)據(jù)元素之間的邏輯關(guān)系的描述,它可以用一個(gè)數(shù)據(jù)元素的集合和定義在此集合中的若干關(guān)系來(lái)表示。

34.doublemax或externdoublemaxdoublemax或externdoublemax解析:main函數(shù)中調(diào)用了一個(gè)max函數(shù),而max函數(shù)是在調(diào)用之后定義的,所以要求填空的內(nèi)容應(yīng)該是對(duì)函數(shù)進(jìn)行聲明的語(yǔ)句。由max函數(shù)的定義可知此函數(shù)是double型的,因此空格處應(yīng)該填doublemax或externdoublemax。

35.6060解析:程序中定義a是一個(gè)3行2列的二維數(shù)組,p是指向兩個(gè)元素的一維數(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。

36.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒(méi)有發(fā)生變化,所以輸出結(jié)果為35。

37.int*int*解析:從函數(shù)體中可看出,2是一個(gè)指向整型的指針,該函數(shù)的形參z是傳地址調(diào)用。

38.黑盒軟件測(cè)試的方法有三種:動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試和正確性證明。設(shè)計(jì)測(cè)試實(shí)例的方法一般有兩類(lèi):黑盒測(cè)試法和白盒測(cè)試法。在使用黑盒法設(shè)計(jì)測(cè)試實(shí)例時(shí),測(cè)試人員將程序看成一個(gè)“黑盒”,即不關(guān)心程序內(nèi)部是如何實(shí)現(xiàn)的,只是檢查程序是否符合它的“功能說(shuō)明”,所以使用黑盒法設(shè)計(jì)的測(cè)試用例完全是根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)的。

39.j<=ij<=i解析:由題意可知第一個(gè)空應(yīng)填入j<=i,第二個(gè)空應(yīng)填入a[i][j]=a[j][i]。

40.cc。cc。解析:a是指針數(shù)組,每個(gè)數(shù)組元素存放的是字符數(shù)據(jù)的地址,數(shù)組a的3個(gè)元素分別指向字符串常量'aa'、'bb'和'cc',指針p賦予數(shù)組元素a[2]的值,即指向第3個(gè)字符串。

41.A解析:本題考查軟件工程中測(cè)試的目的和方法。僅就軟件測(cè)試而言,它的目的是發(fā)現(xiàn)軟件的中的錯(cuò)誤,但是,發(fā)現(xiàn)錯(cuò)誤并不是最終目的,最終目的是通過(guò)測(cè)試發(fā)現(xiàn)錯(cuò)誤之后還必須診斷并改正錯(cuò)誤,這就是調(diào)試的目的。

由于測(cè)試的目標(biāo)是暴露程序中的錯(cuò)誤,從心理學(xué)角度看,由程序的編寫(xiě)者自己進(jìn)行測(cè)試是不恰當(dāng)?shù)?。因此,在軟件測(cè)試階段通常由其他人員組成測(cè)試小組來(lái)完成測(cè)試工作。因此,經(jīng)過(guò)上述分析可知選項(xiàng)A的說(shuō)法是正確的,而選項(xiàng)B、C、D的說(shuō)法是錯(cuò)誤的。

42.A

43.B解析:本題的考點(diǎn)是關(guān)于C語(yǔ)言的整數(shù)運(yùn)算和邏輯運(yùn)算。由于d初值為25,“a=d/10%9中d/10”整除結(jié)果是2,再用9求余結(jié)果仍是2,因此a的值為2。而對(duì)于“b=a&&(-1)”,由于a值為2不為0,-1也不為0,因此“a&&(-1)”結(jié)果為真,b值是1。輸出結(jié)果應(yīng)該是2、1。正確選項(xiàng)是B。

44.B解析:continue語(yǔ)句的作用是跳過(guò)本次循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)條件的判定。當(dāng)能被2整除時(shí),a就會(huì)增1,之后執(zhí)行continue語(yǔ)句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進(jìn)行i++,判斷循環(huán)條件。

45.D解析:賦值運(yùn)算符的結(jié)合方向是自右至左,所以表達(dá)式a+a-=a*a先運(yùn)算最右邊的a*a得9,再運(yùn)算a=a-9,即a=3-9,所以此時(shí)a的值由3變成了-6,最后運(yùn)算a=a+(-6),即a-(-6)+(-6)=-12。

46.C解析:C語(yǔ)言中函數(shù)首部中的各參數(shù)必須分開(kāi)單獨(dú)定義,因此選項(xiàng)C才是正確的。而選項(xiàng)A和D是其他語(yǔ)言的函數(shù)定義方式。

47.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類(lèi)型不是自動(dòng)存儲(chǔ)類(lèi)別。

48.A解析:在C語(yǔ)言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱(chēng)為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱(chēng)為函數(shù)的間接遞歸調(diào)用。由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是當(dāng)i<j時(shí),將數(shù)組中的元素a[i]和a[j]交換,然后再調(diào)用函數(shù)f(a,i+1,j-1),將數(shù)組中a[i+1]和a[j--]交換,這樣一直遞歸到數(shù)組下標(biāo)i=j,可見(jiàn)該遞歸函數(shù)的作用是使數(shù)組中首尾元素依次互換。主函數(shù)中定義了一個(gè)長(zhǎng)度為5的數(shù)組aa并初始化,然后調(diào)用f(a,0,4),將數(shù)組a中的元素依次互換,故最后for循環(huán)輸出的數(shù)組aa中各元素的值為5、4、3、2、1,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

49.D解析:本題考查的知識(shí)點(diǎn)是!和&&的運(yùn)算規(guī)則.本題中,&&左邊的表達(dá)式!(x+y)為!(3+7),結(jié)果為假,即為0。再加上2,然后減一,相當(dāng)于0+5-1=4。左邊等于4,&&右邊的表達(dá)式y(tǒng)+z/2相當(dāng)于4+5/2為6,所以整個(gè)表達(dá)式相當(dāng)于4&&6為真,即為1,所以選項(xiàng)D正確。

50.D解析:C語(yǔ)句不能嵌套定義函數(shù),但可以嵌套調(diào)用函數(shù)。

51.C解析:函數(shù)fun(int*s,intn1,intn2)的功能是對(duì)數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。

52.A解析:條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時(shí),其值等于表達(dá)式b的值;當(dāng)a為假時(shí),其值等于表達(dá)式c的值。

表達(dá)式運(yùn)算過(guò)程:第1個(gè)表達(dá)式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個(gè)表達(dá)式:m=2<z=5為真,所以返回m的值,即m=2;第3個(gè)表達(dá)式:w=2<y=4為真,所以返回m的值,即m=2。

53.C解析:賦值的一般形式為:變量名:表達(dá)式;,賦值的方向?yàn)橛捎蚁蜃螅磳ⅲ河覀?cè)表達(dá)式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計(jì)算再賦值。選項(xiàng)A中運(yùn)算符%的運(yùn)算對(duì)象必須為整數(shù),而選項(xiàng)A中26.8不為整數(shù),故選項(xiàng)A不正確;選項(xiàng)B將一個(gè)變量賦值給一個(gè)常量,這在C語(yǔ)言中是不允許的,故選項(xiàng)B不正確;選項(xiàng)D中也是將一個(gè)常量3賦值給一個(gè)常量,故選項(xiàng)D不正確;所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

54.B解析:scanf()語(yǔ)句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf()函數(shù)不能輸入空格;getchar()函數(shù)用于輸入字符,其調(diào)用形式為:ch=getchar(),getchar()函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車(chē)符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開(kāi)始執(zhí)行。gets()函數(shù)的調(diào)用形式為:gets(str_adr),其中str_adr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。ge

55.B解析:鏈表采用的是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),它克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來(lái)指示,不需要移動(dòng)數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)也有不足之處:①每個(gè)結(jié)點(diǎn)中的指針域需額外占用存儲(chǔ)空間;②鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一種非隨機(jī)存儲(chǔ)結(jié)構(gòu)。

56.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹(shù)和判定表。PAD(問(wèn)題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。

57.C

58.A解析:數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門(mén)學(xué)科,主要研究和討論以下三個(gè)方面的問(wèn)題:①數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);②在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu);③對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。

59.A解析:本題考查ifelse語(yǔ)句。首先scanf函數(shù)通過(guò)鍵盤(pán)讀入x的值。當(dāng)x=3時(shí),第一個(gè)if語(yǔ)句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語(yǔ)句,輸出x的值4。當(dāng)x=1時(shí),第一個(gè)if語(yǔ)句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語(yǔ)句,先輸出x的值2,再將x的值減1。

60.C

61.C在語(yǔ)句”k=*f(a,b)”中,由于””的優(yōu)先級(jí)高于”*”,所以”*f(a,b);”表示其返回類(lèi)型為指針的帶有兩個(gè)整型參數(shù)的函數(shù)。

62.C注:總體設(shè)計(jì)也就是概要設(shè)計(jì)

63.C

64.A常量定義在編譯時(shí)替換,所以答案選擇A)。

65.D整型的數(shù)據(jù)占4個(gè)字節(jié),即-2147483648~2147483648,32768在其表達(dá)的范圍之內(nèi),所以原樣輸出。

66.B

67.B

68.D解析:軟件生命周期分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。本題中,詳細(xì)設(shè)計(jì)、軟件編碼和軟件測(cè)試都屬于軟什開(kāi)發(fā)階段;維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長(zhǎng),花費(fèi)代價(jià)最大的一個(gè)階段.軟件工程學(xué)的一個(gè)目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價(jià)。

69.C解析:軟件生命周期由軟件定義、軟件開(kāi)發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分為若干個(gè)階段。軟件定義時(shí)期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個(gè)階段。軟件開(kāi)發(fā)時(shí)期是具體設(shè)計(jì)和實(shí)現(xiàn)在前一時(shí)期定義的軟件,它通常由下面五個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫(xiě)代碼、組裝測(cè)試和確認(rèn)測(cè)試。軟件維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當(dāng)軟件在使用過(guò)程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件,以滿足用戶的新要求。根據(jù)上述對(duì)軟件生命周期的介紹,可知選項(xiàng)C中的軟件維護(hù)不是軟件生命周期開(kāi)發(fā)階段的任務(wù)。因此,本題的正確答案是C。

70.AB)選項(xiàng)的“switch((int)x);”語(yǔ)句中不應(yīng)該有最后的分號(hào)。switch(exprl)中1雛Jexprl

能用浮點(diǎn)類(lèi)型或lon9類(lèi)型,也不能為一個(gè)字符串,因此c)錯(cuò)誤。case后面只能是常量表達(dá)式,因此D)錯(cuò)誤。

71.BQ(1:35)則隊(duì)列的存儲(chǔ)空間為35;對(duì)空條件:front=rear(初始化時(shí):front=rear),隊(duì)滿時(shí):(rear+1)%n==front,n為隊(duì)列長(zhǎng)度(所用數(shù)組大小),因此當(dāng)執(zhí)行一系列的出隊(duì)與入隊(duì)操作,front=rear.則隊(duì)列要么為空,要么為滿。

72.D

73.D

74.A邏輯或”I|”要求只要兩邊的運(yùn)算對(duì)象有一個(gè)非零,結(jié)果就為真。雖然不知道a的值,但是若a為1,則左邊運(yùn)算對(duì)象為1;若a的值不是1,則右邊運(yùn)算對(duì)象的值為1,所以總能保證一邊非零,所以結(jié)果為真,即1。

75.B雙目運(yùn)算中兩邊運(yùn)算量類(lèi)型轉(zhuǎn)換規(guī)律:

運(yùn)算數(shù)1\t\t\t\r\n\t\t\t\t\t運(yùn)算數(shù)2\t\t\t\t\r\n\t\t\t\t\t轉(zhuǎn)換結(jié)果類(lèi)型\t\t\t\t\r\n\t\t\t\t\t短整型\t\t\t\t\r\n\t\t\t\t\t長(zhǎng)整型\t\t\t\t\r\n\t\t\t\t\t短整型一>長(zhǎng)整型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t長(zhǎng)整型\t\t\t\t\r\n\t\t\t\t\t整型一>長(zhǎng)整型\t\t\t\t\r\n\t\t\t\t\t字符型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t字符型一>整型\t\t\t\t\r\n\t\t\t\t\t有符號(hào)整型\t\t\t\t\r\n\t\t\t\t\t無(wú)符號(hào)整型\t\t\t\t\r\n\t\t\t\t\t有符號(hào)整型一>無(wú)符號(hào)整型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t浮點(diǎn)型\t\t\t\t\r\n\t\t\t\t\t整型一>浮點(diǎn)型\t\t\t\t\r\n\t在a/b的時(shí)候,a,b的類(lèi)型不一致,根據(jù)類(lèi)型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類(lèi)型,之后的加、減類(lèi)似。轉(zhuǎn)化規(guī)則為char,short一>int->unsigned->long->double←float。

76.AA)選項(xiàng)中定義的數(shù)組為2行4列,而賦值時(shí)賦成了3行,因此出錯(cuò)。

77.C線性結(jié)構(gòu)指的是數(shù)據(jù)元素之間存在著“一對(duì)一”線性關(guān)系的數(shù)據(jù)結(jié)構(gòu),這樣的結(jié)構(gòu)中只有一個(gè)根節(jié)點(diǎn),如循環(huán)鏈表和雙向鏈表;非線性結(jié)構(gòu)指的是數(shù)據(jù)元素之間存在著“一對(duì)多”非線性關(guān)系的數(shù)據(jù)結(jié)構(gòu),這樣的結(jié)構(gòu)中可能有一個(gè)根節(jié)點(diǎn)(如樹(shù)形結(jié)構(gòu)),也可能有多個(gè)根節(jié)點(diǎn)(如網(wǎng)狀結(jié)構(gòu))。

78.C解析:只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句。當(dāng)break出現(xiàn)在循環(huán)體的switch語(yǔ)句體內(nèi)時(shí),其作用只是跳出該switch語(yǔ)句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語(yǔ)句中設(shè)置break語(yǔ)句,滿足某種條件,則跳出本層循環(huán)體。

79.A

80.Aa=15,a%3=0,執(zhí)行case0語(yǔ)句標(biāo)號(hào),m++編程1,break;退出結(jié)構(gòu),所以m的值為1.

81.(1)錯(cuò)誤:fun(intn);

正確:fun(intn)

(2)錯(cuò)誤:if(n=1)

正確:if(n==1)

【解析】根據(jù)C語(yǔ)言的語(yǔ)法規(guī)則,函數(shù)定義之后是不加分號(hào)的。由整個(gè)程序看,函數(shù)fun()是函數(shù)定義。因此“fun(intn);”應(yīng)改為“fun(intn)”;表達(dá)式n-1表示的是將1賦給變量n,顯’然是不對(duì)的。這里應(yīng)該判斷變量n是否等于l,因此“if(n=1)”應(yīng)改為“if(n==1)”。

82.voidproc(int(*s)[10],int*b,int*n,intmm,intnn){inti,j,k=0;for(i=0;i<mm;i++)//i是表示其行的下標(biāo)for(j=0;j<nn;j++)//j是表示其列的下標(biāo)b[k++]=s[i][j];//把其放到b的一維數(shù)組中*n=k;//把b數(shù)組的長(zhǎng)度通過(guò)形參n傳回到主函數(shù)中}【解析】要將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,可以通過(guò)首先行循環(huán),然后列循環(huán)取出二維數(shù)組中的每一個(gè)元素,并將其放入一維數(shù)組中。最后,將一維數(shù)組的長(zhǎng)度通過(guò)形參返回到主函數(shù)當(dāng)中。</y&&!z||1>2021-2022年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.若有以下定義,則對(duì)a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

2.

3.

4.

5.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

6.檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱(chēng)為_(kāi)_____。

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

7.C語(yǔ)言中char類(lèi)型數(shù)據(jù)占字節(jié)數(shù)為()。

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

8.以下對(duì)C語(yǔ)言函數(shù)的有關(guān)描述中,正確的是

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

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

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

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

9.一個(gè)有n個(gè)頂點(diǎn)的連通無(wú)向圖至少有()條邊。

A.n-1B.nC.n+1D.n+2

10.若有以下說(shuō)明和定義:則對(duì)函數(shù)fun的正確調(diào)用語(yǔ)句是()。A.(*a)(&c);B.a=a(x);C.b=*b(x);D.fun(b);

11.廣義表(a,b,c,d)的表頭是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

12.下列關(guān)于c語(yǔ)言用戶標(biāo)識(shí)符的敘述中正確的是()。

A.用戶標(biāo)識(shí)符中可以出現(xiàn)下劃線和中劃線(減號(hào))

B.用戶標(biāo)識(shí)符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線

C.用戶標(biāo)識(shí)符中可以出現(xiàn)下劃線,但不可以放在用戶標(biāo)識(shí)符的開(kāi)頭

D.用戶標(biāo)識(shí)符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標(biāo)識(shí)符的開(kāi)頭

13.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

14.在下面棧的基本運(yùn)算中,不是加工型運(yùn)算的是______。

A.初始化B.進(jìn)棧C.退棧D.判???/p>

15.某某二叉樹(shù)的中序序列和后序序列正好相反,則該二叉樹(shù)一定是______的二叉樹(shù)

A.空或只有一個(gè)結(jié)點(diǎn)B.高度等于其結(jié)點(diǎn)數(shù)C.任一結(jié)點(diǎn)無(wú)左孩子D.任一結(jié)點(diǎn)無(wú)右孩子

16.二叉樹(shù)中第5層上的結(jié)點(diǎn)個(gè)數(shù)最多為_(kāi)_______

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

17.

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

#include<stdio.h>

main

{inta=0,i;

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

{switch(i)

{case0:

case3:a+=1;

case1;

case2:a+=2;

default:a+=3;

}

}

printf("%d",a);

}

A.19B.1C.6D.8

18.冒泡排序在最壞情況下的比較次數(shù)是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

19.有如下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=P[5];則b的值是()。

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

20.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項(xiàng)中錯(cuò)誤的是

A.x++;B.y++;C.c++;D.D++;

二、2.填空題(20題)21.下面程序的功能是調(diào)用sub函數(shù)計(jì)算數(shù)組a中字符串的長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>

sub(chars[])

{intn;

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

return【】;

}

main()

{char*a;intk;

gets(a);

【】

printf("%d",k);

22.以下條件表達(dá)式可計(jì)算:1+|a|的值,請(qǐng)?zhí)羁?。a>=0?【】:【】

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

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

}

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

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

#defineMAX(x,y)(x)>(y)?(x)L:(y)

main()

{inta=5,b=2,C=3,d=3,t;

t=MAX(a+b,c+D)*10;

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

}

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

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA"m,"BB","CC:,"DD"};

printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);

}

27.一個(gè)算法的空間復(fù)雜度是指該算法所耗費(fèi)的【】。

28.在樹(shù)形結(jié)構(gòu)中,樹(shù)根結(jié)點(diǎn)沒(méi)有______。

29.算法的工作量大小和實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少分別稱(chēng)為算法的【】。

30."printf("%d\n",strlen("\t\"'\023\xABC\n"));"語(yǔ)句的輸出結(jié)果是______。

31.若a是血型變量,且a的初值為4,則計(jì)算a+=a-=a*a表達(dá)式后a的值為_(kāi)_____。

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

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

33.對(duì)數(shù)據(jù)元素之間的邏輯關(guān)系的描述是()。

34.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫(xiě)適當(dāng)內(nèi)容,使程序能正常運(yùn)行。

#include<stdio.h>

【】(double,double);

main()

{doublex,y;

scanf("%If%If",&x,&y);

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

}

doublemax(doublea,doubleb)

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

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

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

p=a;

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

37.以下函數(shù)用來(lái)求出兩整數(shù)之和,并通過(guò)形參將結(jié)果傳回,請(qǐng)?zhí)畛渫暾?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;

}

38.若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和【】測(cè)試方法。

39.下面rotate函數(shù)的功能:將n行n列的矩陣A轉(zhuǎn)置為A',請(qǐng)?zhí)羁铡?/p>

#defineN4

voidrotate(inta[][N])

{inti,j,t;

for{i=0;i<N;j++}

for{j=0;【】;j++}

{t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

40.指針變量p和數(shù)組a的說(shuō)明如下:

int*a[3]={"aa","bb","cc"},**p;

執(zhí)行語(yǔ)句p=&a[2];后,*p指向的字符串是______。

三、1.選擇題(20題)41.下列敘述中正確的是A.軟件測(cè)試的主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤

B.軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置

C.為了提高軟件測(cè)試的效率,最好由程序編制者自己來(lái)完成軟件測(cè)試的工作

D.軟件測(cè)試是證明軟件沒(méi)有錯(cuò)誤

42.若有說(shuō)明語(yǔ)句:inta,b,c,*d=&c;,則能正確從鍵盤(pán)讀入三個(gè)整數(shù)分別賦給變量a、b、d的語(yǔ)句是()

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

43.有以下程序:main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,B);}程序運(yùn)行后的輸出結(jié)果是()。

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

44.下列程序的輸出結(jié)果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

45.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%\n",(a+=a-=a*a));}

A.{B.1C.2D.-12

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

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

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

47.下列敘述中錯(cuò)誤的是()。

A.在C語(yǔ)言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語(yǔ)言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類(lèi)型上只需賦值兼容

C.在C語(yǔ)言中,外部變量的隱含類(lèi)型是自動(dòng)存儲(chǔ)類(lèi)別

D.在C語(yǔ)言中,函數(shù)形參的存儲(chǔ)類(lèi)型是自動(dòng)(auto)類(lèi)型的變量

48.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是()。

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

49.已有定義:intx=3,y=4,z=5;,則表達(dá)式!(x+y)+z-1&&y+z/2的值是

A.6B.0C.2D.1

50.下列描述正確的是()。

A.C語(yǔ)句能嵌套定義函數(shù),但不可以嵌套調(diào)用函數(shù)

B.C語(yǔ)句不能嵌套定義函數(shù),也不可以嵌套調(diào)用函數(shù)

C.C語(yǔ)句能嵌套定義函數(shù),也可以嵌套調(diào)用函數(shù)

D.C語(yǔ)句不能嵌套定義函數(shù),但可以嵌套調(diào)用函數(shù)

51.有以下程序

#include<stdio.h>

voidfun(int*s,intn1,intn2)

{inti,j,t;

i=n1;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<l0;k++)printf("%d",a[k]);printf("\n");

}

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

A.0987654321B.4321098765C.5678901234D.0987651234

52.若w、x、y、z、m均為int型變量,則執(zhí)行下列的語(yǔ)句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;

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

53.若以下選項(xiàng)中的變量已正確定義,則正確的賦值語(yǔ)句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

54.若要求從鍵盤(pán)讀入含有窄格字符的字符串,應(yīng)使用函數(shù)()。

A.getc()B.gets()C.getchar()D.scanf()

55.鏈表不具有的特點(diǎn)是()

A.不必事先估計(jì)存儲(chǔ)空間B.可隨機(jī)訪問(wèn)任一元素C.插入刪除不需要移動(dòng)元素D.所需空間與線性表長(zhǎng)度成正比

56.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

57.對(duì)于基本類(lèi)型機(jī)同的兩個(gè)指針變量之間,不能進(jìn)行的動(dòng)算是()

A.<B.=C.+D.-

58.數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門(mén)學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及()。A.A.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)B.計(jì)算方法C.數(shù)據(jù)映象D.邏輯存儲(chǔ)

59.兩次運(yùn)行下列的程序,如果從鍵盤(pán)上分別輸入3和1,則輸出結(jié)果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}

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

60.閱讀以下程序及對(duì)程序功能的描述,其中正確的是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf(“Entertheinfilename:\n”);scanf(“%s”,infile);printf(“Entertheoutfilename:\n”);scanf(“%s”,outfile);if((in=foen(infile,“r”))==NULL)printf(“cannotopeninfile\n”);exit(0);if((out=fopen(outfile,“w”))==NULL)printf(“cannotopenoutfile\n”);exit(0);while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);A.程序完成將磁盤(pán)文件的信息在屏幕上顯示的功能

B.程序完成將兩個(gè)磁盤(pán)文件合二為一的功能

C.程序完成將一個(gè)磁盤(pán)文件復(fù)制到另一個(gè)磁盤(pán)文件中

D.程序完成將兩個(gè)磁盤(pán)文件合并并在屏幕上輸出

四、選擇題(20題)61.有以下程序:

則以下函數(shù)調(diào)用語(yǔ)句錯(cuò)誤的是()。

A.

B.

C.

D.

62.(47)在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開(kāi)發(fā)中的階段是()

A.詳細(xì)設(shè)計(jì)

B.需求分析

C.總體設(shè)計(jì)

D.編程調(diào)試

63.在JavaScript語(yǔ)言中,要定義局部變量則可以()。

A.由關(guān)鍵字private在函數(shù)內(nèi)定義

B.由關(guān)鍵字private在函數(shù)外定義

C.由var在函數(shù)內(nèi)定義

D.由關(guān)鍵字var在函數(shù)外定義

64.若程序中有宏定義行:

65.已知longi=32768;執(zhí)行語(yǔ)句printf(“%d”,i);屏幕顯示()。

A.-1B.-32768C.1D.32768

66.

67.

68.軟件生命周期中所花費(fèi)用最多的階段是()。

A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)

69.下列選項(xiàng)中不屬于軟件生命周期開(kāi)發(fā)階段任務(wù)的是()。

A.軟件測(cè)試B.概要設(shè)計(jì)C.軟件維護(hù)D.詳細(xì)設(shè)計(jì)

70.若有定義:floatx=1.5;inta=1,b=3,c--2;,則正確的switch語(yǔ)句是()。

71.設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為()。

A.20B.0或35C.15D.16

72.

73.

74.若a是數(shù)值類(lèi)型,則邏輯表達(dá)式(a==1)Il(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

75.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+C—k值的類(lèi)型為:()。

A.intB.doubleC.floatD.char

76.以下定義數(shù)組的語(yǔ)句中錯(cuò)誤的是()。

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

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

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

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

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

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

A.break語(yǔ)句只能用于switch語(yǔ)句體中

B.continue語(yǔ)句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)

D.在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同

79.

80.有以下程序:

voidmain()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{defaule:m++;

case0:m++;break;

}

}

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

}

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

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

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是按以下遞歸公式求函數(shù)值。例如,當(dāng)給n輸入3時(shí),函數(shù)值為60;當(dāng)給n輸入6時(shí),函數(shù)值為480。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。例如,若二維數(shù)組中的數(shù)據(jù)為132333431424344415253545則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>voidproc(int(*s)[103,int*b,int*n,intrain.intnn){ }voidmain{intarr[10][10]={{33,33,33,33),{44,44,44,44},{55,55,55,55}),i,j;inta[l00]={o),n=o;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",arr[i][j]):printf("\n");}proc(arr,a,&n,3,4):printf("TheAarray:\n");for(i=0;i<n;i++)printf("%3d",a[i]):printf("\n\n");}

參考答案

1.D本題考查如何引用數(shù)組元素的地址。選項(xiàng)A)中,p5引用的是af51的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯(cuò)誤;選項(xiàng)B)中,*a1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C)中,這種引用方式錯(cuò)誤;選項(xiàng)D)中,&a[0]引用的是數(shù)組的首地址。

2.D

3.C

4.D

5.D本題考查邏輯運(yùn)算符的使用。當(dāng)“&&”的兩個(gè)運(yùn)算對(duì)象都是邏輯1時(shí),表達(dá)式返回值才是1;“||”的兩個(gè)運(yùn)算對(duì)象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。

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

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

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

(3)確認(rèn)測(cè)試用于驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測(cè)試主要用于發(fā)現(xiàn)需求分析時(shí)犯下的錯(cuò)誤,一般使用黑盒法測(cè)試,以表明軟件符合需求說(shuō)明書(shū)的要求,應(yīng)該仔細(xì)設(shè)計(jì)測(cè)試用例和測(cè)試過(guò)程。確認(rèn)測(cè)試必須有用戶參加,或以用戶為

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論