




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023年貴州省畢節(jié)地區(qū)全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。
A.5,5B.5,11C.11,11D.11,5
2.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.7B.10C.8D.9
3.下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是()。
A.使用順序、選擇和重復(fù)(循環(huán).三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B.模塊只有一個(gè)入口,可以有多個(gè)出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語(yǔ)句
4.以下能夠正確描述“k是大于0的偶數(shù)”的表達(dá)式是()。
A.(k>0)&&(k%2!=1)
B.(k>0)&&(k%2=0)
C.(k>0)||!(k%2)
D.(k>0)||(k%2==0)
5.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在
6.
7.檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱為_(kāi)_____。
A.確認(rèn)測(cè)試B.集成測(cè)試C.驗(yàn)證測(cè)試D.驗(yàn)收測(cè)試
8.
9.若有說(shuō)明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。
A.2B.3C.4D.無(wú)確定值
10.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A.AB.aC.HD.h
11.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);
A.aB.bC.cD.d
12.若已包括頭文件且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語(yǔ)句錯(cuò)誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
13.若有定義“intb[8],*p=b;”,則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
14.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是________。
A.23B.26C.33D.36
15.
16.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12
17.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。
A.&B.^C.‖D.~
18.以下選項(xiàng)中敘述錯(cuò)誤的是()。
A.C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值
B.在同一函數(shù)中,各復(fù)合語(yǔ)句內(nèi)可以定義變量,其作用域僅限本復(fù)合語(yǔ)句內(nèi)
C.C程序函數(shù)中定義的自動(dòng)變量,系統(tǒng)不自動(dòng)賦確定的初值
D.C程序函數(shù)的性能不可以說(shuō)明為static型變量
19.
20.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。
A.EOFB.-lC.非零值D.0
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
22.與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是【】方法。
23.以下函數(shù)用來(lái)求出兩整數(shù)之和,并通過(guò)形參將結(jié)果傳回,請(qǐng)?zhí)畛渫暾?/p>
voidfunc(intx,inty,【】z)
{*z=x+y;
}
24.設(shè)有定義“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc______。
25.數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。
26.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
27.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>
#include<string.h>
main()
{infi,j,[13];charstr[]={"1234567"};
for(i=0,j=strlen(str)[14];i<j;i++,j--)
{k=str[i];str[i]=str[i];str[j]=k;}
printf("%s\n",str);}
28.若由以下定義,則不移動(dòng)指針p,且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
29.需求分析的最終結(jié)果是產(chǎn)生【】。
30.算法的執(zhí)行過(guò)程中,所需要的存儲(chǔ)空間稱為算法的【】。
31.已知字符A的ACSII碼值為65,以下語(yǔ)句的輸出結(jié)果是______。
charch='B';
printf("%c%d\n",ch,ch);
32.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
33.在鏈表的運(yùn)算過(guò)程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。
34.在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊),其中【】的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。
35.設(shè)有下面的程序段:chars[]="china";char*p;p=S;則下列敘述正確的是
36.下面的程序是將從終端讀入的20個(gè)字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;
chars[21],*p;
for(i=0;i<20;i++)
s[i]=getehar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
37.以下程序用來(lái)統(tǒng)計(jì)文件中字符的個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>
#include“stadio.h”
main()
{FILE*fp;longnum=0L;
if((fp=fopen(“fname.dat”,“r”))==NULL);
{printf(“0penerror\n”);exit(0);}
while(【】)
{fsetc(fp);num++;}
printf(“num=%1d\n”,num-1);
fclose(fp);
}
38.下述程序的輸出結(jié)果是【】。
#include<stdio.h>
voidmain()
{
charc1[20]="1234";
charc2[20]="5678";
char*p1,*p2;
p1=c1;
p2=c2;
while(*p1++)
while(*p1++=*p2++);
printf("%s,c1);
}
39.以下程序段打開(kāi)文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
40.下面程序的運(yùn)行結(jié)果是【】。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
]
main()
{intaa[3]={1,2,3),s;
s=f(&aa[0],3);printf("%d\n",s);
}
三、1.選擇題(20題)41.以下程序運(yùn)行后的輸出結(jié)果是______。main(){intx=0210;printf("%x\n",x);}
A.88B.86C.77D.21
42.若執(zhí)行下面的程序時(shí),從鍵盤(pán)輸入5和2,則輸出結(jié)果是
main()
{inta,b,k;
scanf("%d,%d",&a,&b);
k=a;
if(a<b)k=a%b;
elsek=b%a;
printf("%d\n",k);}
A.5B.3C.2D.0
43.下面程序的輸出結(jié)果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
44.請(qǐng)讀程序段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));程序段的輸出結(jié)果是______。
A.68B.0C.字符'D'的地址D.不確定的值
45.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.22B.11C.34D.12
46.在C語(yǔ)言中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是()。
A.%B.\C.%和\D.**
47.下列定義變量的語(yǔ)句中錯(cuò)誤的是______。A.int_int;B.doubleint_;C.charFor;D.floatUS$;
48.在16位IBM-PC上使用C語(yǔ)言,如定義下列共用體類型變量:uniondata{inti;charch;floatf;}a,b,c;則共用體變量a,b,c占用內(nèi)存的字節(jié)數(shù)為()。
A.1B.2C.4D.6
49.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int.*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
50.樹(shù)是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
51.數(shù)據(jù)封裝要解決的問(wèn)題是()
A.實(shí)現(xiàn)規(guī)范化B.防止書(shū)寫(xiě)錯(cuò)誤C.防止非法訪問(wèn)D.實(shí)現(xiàn)類型轉(zhuǎn)換
52.在C語(yǔ)言的函數(shù)中()
A.必須有形參B.形參必須是變量名C.可以有電可以沒(méi)有形參D.數(shù)組名不參與形參
53.若有以下定義,則正確的switch語(yǔ)句是______。floatx;inta,b;
A.switch(x){case1.0:printf("*\n");csse2.0:printf("**\n");}
B.switch(x){case1,2:printf("*\n");case3:printf("**\n");}
C.switch(a+b){case1:printf("\n");case1+2:printf("**\n");}
D.switch(a+b);{case1:printf("*\n");case2:printf("**\n");}
54.下列能正確定義且賦初值的語(yǔ)句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
55.設(shè)有定義:inta,*p=&a,**pp=&p;,則與a=100;等價(jià)的語(yǔ)句為()
A.**p=100;B.**pp=100;C.&*p=100;D.*pp=10;
56.關(guān)系表中的每一橫行稱為一個(gè)()。A.元組B.字段C.屬性D.碼
57.對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
58.若有定義int(*pt)[3];,則下列說(shuō)法不正確的是()。
A.int(*pt)[3]是一個(gè)數(shù)組指針
B.指針pt指向一個(gè)有3個(gè)整型變量的數(shù)組
C.定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組
D.定義了一個(gè)名為pt的指針變量,它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組
59.對(duì)于下面的語(yǔ)句,敘述正確的是______。charc1[]="abcd";charc2[]={'a','b','c','d'};
A.數(shù)組c1和數(shù)組c2等價(jià)
B.數(shù)組c1占用空間大于數(shù)組c2占用空間
C.數(shù)組c1占用空間小于數(shù)組c2占用空間
D.數(shù)組c1和數(shù)組c2的長(zhǎng)度相同
60.有以下程序main(){chars[]="Yse\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是(選項(xiàng)D中的第一行是空行)
A.n/NoYes/NoB./NoYesC.n/Noyes/NoD./NoYes
四、選擇題(20題)61.
62.
63.有以下程序:
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
64.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語(yǔ)言的先進(jìn)性D.程序易讀性
65.
有以下程序:
#include<stdio.h>
main
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break:
else
i--;
}
i+=11:
a+=i:
}
printf("%d\n",a);
}
程序的輸出結(jié)果是()。
A.62B.63C.33D.32
66.下列合法的聲明語(yǔ)句是()。
A.intabc=50;
B.doubleint=3+5e2.5;
C.longdo=1L;
D.float3asd=3e一3;
67.
68.
69.有如下嵌套的if語(yǔ)句:
以下選項(xiàng)中與上述if語(yǔ)句等價(jià)的語(yǔ)句是()。
A.
B.
C.
D.
70.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
71.
72.有以下程序:
#include<stdiO.h>
main()
{inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2+b);‘’
}
程序運(yùn)行后的輸出結(jié)果是()。
A.0,0B.1,3C.3,2D.1,2
73.有如下程序段
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5]={0};
a=0;b[0]=3;
func(&a,b);
printf("%d\n",b[0]);
}
程序運(yùn)行后輸出的結(jié)果是
A.6B.7
C.8D.9
74.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是()。
A.枚舉型B.共用型C.結(jié)構(gòu)型D.數(shù)組型
75.若有定義和語(yǔ)句:inta,b;scanf("%d,%d",&a,&b);以下選項(xiàng)中的輸人數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是()。
A.3,5,
B.3,5,4
C.3,5
D.35
76.
77.如圖所示,兩個(gè)關(guān)系R1和R2:
則由關(guān)系R1和R2得到關(guān)系R3的操作是()。
A.笛卡爾積B.連接C.交D.除
78.有以下程序(注:字符a的ASCIl碼值為97):
程序運(yùn)行后的輸出結(jié)果是()。
A.789B.abeC.7890D.979899
79.若有以下程序段,w和k都是整型變量。
w=k;
LB:if(w==0)gotoLE;
w--;
printf("*");
gotoLB;
LE:
M
則不能與上面程序段等價(jià)的循環(huán)語(yǔ)句是
A.for(w=k;w!=0;w--)printf("*");
B.w=k;<CR>while(w--!=0)printf("*");w++;
C.w=k;<CR>do{w--;printf("*");}while(w!=0);
D.for(w=k;w;--w)printf("*");
80.非空循環(huán)鏈表所表示的數(shù)據(jù)結(jié)構(gòu)()。
A.有根結(jié)點(diǎn)也有葉子結(jié)點(diǎn)B.沒(méi)有根結(jié)點(diǎn)但有葉子結(jié)點(diǎn)C.有根結(jié)點(diǎn)但沒(méi)有葉子結(jié)點(diǎn)D.沒(méi)有根結(jié)點(diǎn)也沒(méi)有葉子結(jié)點(diǎn)
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用遞歸算法計(jì)算斐波拉契級(jí)數(shù)列中第n項(xiàng)的值。從第一項(xiàng)起,斐波拉契級(jí)數(shù)序列為1,1,2,3,5,8,13,21,…例如,若給n輸入8,該項(xiàng)的斐波拉契級(jí)數(shù)值為21。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中。注意:分?jǐn)?shù)低的學(xué)生可能不止一個(gè)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.B解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。
2.D調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。
3.A解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的四條原則是:①自頂向下;②逐步求精;③模塊化;④限制使用goto語(yǔ)句?!白皂斚蛳隆笔侵冈诔绦蛟O(shè)計(jì)時(shí),先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。“逐步求精”是指對(duì)復(fù)雜問(wèn)題應(yīng)設(shè)計(jì)一些子目標(biāo)作過(guò)渡,逐步細(xì)節(jié)化?!澳K化”是指一個(gè)復(fù)雜問(wèn)題由若干稍簡(jiǎn)單的問(wèn)題構(gòu)成;解決這個(gè)復(fù)雜問(wèn)題的程序,也應(yīng)由若干稍簡(jiǎn)單問(wèn)題的小程序組成。
4.A判斷k大于0的表達(dá)式為“k>0”,判斷k是偶數(shù)的表達(dá)式為“k%2==0”或“k%2!=1”。兩個(gè)表達(dá)式必須都成立才能確定k是大于0的偶數(shù),則對(duì)應(yīng)的表達(dá)式為“(k>0)&&(k%2==0)”或“(k>0)&&(k%2!=1)”。故本題答案為A選項(xiàng)。
5.A答案A
解析:一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C語(yǔ)言程序可以實(shí)現(xiàn)多種算法。
6.B
7.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ò)誤。
8.C
9.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小:②當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小等于所得商數(shù)加1。
10.D多元運(yùn)算符問(wèn)號(hào)前面表達(dá)式為真,所以(a-A+a)賦值給a,括號(hào)里的運(yùn)算是把大寫(xiě)字母變成小寫(xiě)字母,所以答案應(yīng)為選項(xiàng)D。
11.A解析:C函數(shù)的參數(shù)傳遞方式采用按值傳遞,不能通過(guò)調(diào)用函數(shù)改變形參指針本身的值,只能改變指針?biāo)缸兞康闹怠U{(diào)用point函數(shù)時(shí),將實(shí)參指針p的值(b數(shù)組的首地址)傳給了形參指針P,P+=3運(yùn)算使形參指針指向字符d,但并不能改變main函數(shù)中p的值,所以本題正確答案應(yīng)該是選項(xiàng)A)。
12.C數(shù)組名sl是代表sl數(shù)組首地址的地址常量,因?yàn)椤?”左邊不能出現(xiàn)常量,所以s1="ABCDE"的方法是錯(cuò)誤的。
13.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是一個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。所以題中“P+6”指的是將指針向后移動(dòng)了6個(gè)存儲(chǔ)單元,即指向uE63,存放的是b[6]的地址。
14.A解析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][0]語(yǔ)句實(shí)際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時(shí),aa[0][1]=3,*p=2;*p輸出的是指針?biāo)赶虻臄?shù)組值,此時(shí)p所指向的是aa[O][0],輸出2,而i=1時(shí)執(zhí)行了++p操作使指針向后移動(dòng)指向了aa[0][1],所以在輸出*p時(shí)應(yīng)為3。
15.A
16.D本題可以寫(xiě)成:a+a+(a-(a*a)),所以*的優(yōu)先級(jí)最高,其次是-=的,+的優(yōu)先級(jí)最低,因此先求a-=a*a=9,表達(dá)式變?yōu)閍+a+-=9,a即a=a-9=-6,再次變?yōu)閍+(-6)=-12,故選擇D選項(xiàng)。
17.B按邏輯位運(yùn)算特點(diǎn):①用按位與運(yùn)算將特定位清為0或保留特定位;②用按位或運(yùn)算將特定的位置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。
18.A靜態(tài)變量不是每調(diào)用一次就賦一次初值,而是將需要定義許多相同的具有相同屬性的值時(shí),使用靜態(tài)變量來(lái)節(jié)省空間,所以A選項(xiàng)錯(cuò)誤。
19.D
20.D本題考查leon(tp)函數(shù),其功能是:測(cè)試所指的文件的位置指針是否已達(dá)到文件尾,如果已達(dá)到文件尾,則函數(shù)返回非0值;否則返回0,表示文件未結(jié)束。
21.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當(dāng)其變?yōu)椤癵”時(shí),循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個(gè)字符。表達(dá)式“i-'a'+'A'”即表示輸出i對(duì)應(yīng)的大寫(xiě)字母,結(jié)果為ACE。
22.結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)解析:與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是結(jié)構(gòu)化設(shè)計(jì)方法。結(jié)構(gòu)化設(shè)計(jì)就是采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個(gè)組成部分以及各個(gè)成分之間的內(nèi)部聯(lián)系的技術(shù)。
23.int*int*解析:從函數(shù)體中可看出,2是一個(gè)指向整型的指針,該函數(shù)的形參z是傳地址調(diào)用。
24.若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abe,則引用變量abe成員s的標(biāo)記形式有abe.a和p_abc->a。
25.共享性共享性解析:數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)有以下幾個(gè)方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨(dú)立性,數(shù)據(jù)統(tǒng)一管理與控制。
26.33解析:C語(yǔ)言的語(yǔ)法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因?yàn)閤不大于y,所以執(zhí)行printf('%d\\n',z);語(yǔ)句。
27.顛倒一個(gè)字符串中的字符,就是首尾對(duì)應(yīng)的元素兩兩交換。簡(jiǎn)單地可用兩個(gè)游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個(gè)變量值為下標(biāo)的元素str[i]和str[j]。開(kāi)始時(shí),i的值為0,j的值為字符串末元素的下標(biāo)(字符串長(zhǎng)度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j字符串末元素的下標(biāo)是它的長(zhǎng)度減1,所以在第二個(gè)空框處應(yīng)填入-1。程序?yàn)榱私粨Qstr[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中—起定義,所以在第—個(gè)空\(chéng)r\n\r\n
28.*(p+5)或p[5]*(p+5)或p[5]解析:本題的考查點(diǎn)是通過(guò)指針引用數(shù)組元素。98是數(shù)組w的第5個(gè)元素(最開(kāi)始的為第0個(gè)),而通過(guò)*p=w已經(jīng)將p指向了數(shù)組w,要想不移動(dòng)指針p而引用98,可以有以下兩種方法:p[5]、*(p+5)。
29.需求規(guī)格說(shuō)明書(shū)需求規(guī)格說(shuō)明書(shū)解析:軟件需求規(guī)格說(shuō)明書(shū)是需求分析階段的最后成果,是軟件開(kāi)發(fā)中的重要文檔之一。需求規(guī)格說(shuō)明書(shū)包括正確性、無(wú)歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性等。
30.空間復(fù)雜度空間復(fù)雜度解析:算法執(zhí)行時(shí)所需要的存儲(chǔ)空間,稱為算法的空間復(fù)雜度。
31.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標(biāo)準(zhǔn)輸出設(shè)備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項(xiàng)參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進(jìn)制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計(jì)算機(jī)中B的十進(jìn)制整數(shù)格式是66。所以,輸出為B66。
32.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
33.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個(gè)頭結(jié)點(diǎn),因此在任何情況下,循環(huán)鏈表中至少有一個(gè)結(jié)點(diǎn)存在,從而使空表與非空表的運(yùn)算統(tǒng)一。
34.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊)。其中,驅(qū)動(dòng)模塊相當(dāng)于被測(cè)試模塊的主程序,它接收測(cè)試數(shù)據(jù),并傳給被測(cè)試模塊,輸出實(shí)際測(cè)試結(jié)果。承接模塊通常用于代替被測(cè)試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個(gè)模擬子程序,不必將子模塊的所有功能帶入。
35.D
36.\0s*p++\\0\r\ns\r\n*p++解析:本題先通過(guò)for循環(huán)從鍵盤(pán)讀入20個(gè)字符,然后賦值'\\0'作為字符串結(jié)束標(biāo)志,再使指針p指向字符串的首地址,最后通過(guò)while循環(huán)對(duì)字符串進(jìn)行掃描并輸出。
37.!feof(fP)!feof(fP)解析:統(tǒng)計(jì)文件中字符個(gè)數(shù)的算法可描述如下:首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個(gè)字符,同時(shí)字符的個(gè)數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開(kāi)了文件“fname.dar”,如果打開(kāi)成功則把返回的文件型指針賦值給fp,然后通過(guò)循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加1。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。
38.1567815678解析:本題使用了雙重while循環(huán),外循環(huán)的循環(huán)條件是*p1++,即每次循環(huán)時(shí)讓p1指向其后面的一個(gè)元素,而p1自增之前所指內(nèi)容為0時(shí)循環(huán)結(jié)束。內(nèi)循環(huán)的循環(huán)條件是*p1++=*p2++,即每次循環(huán)時(shí)讓p1和p2指向其后面的一個(gè)元素,而將p2自增之前所指的元素復(fù)制到p1自增之前所指的地址中去,直到p2自增之前所指內(nèi)容為0時(shí)循環(huán)結(jié)束。p1本來(lái)一開(kāi)始是指向c1[0],由于外循環(huán)判斷條件時(shí)讓p1自增了,所以進(jìn)入內(nèi)循環(huán)時(shí)p1指向c1[1],而內(nèi)循環(huán)將p2所指字符串復(fù)制到p1所指位置,所以內(nèi)循環(huán)的結(jié)果是c1[1]、c1[2]、c1[3]、c1[4]、c1[5]分別被c2[0]、c2[1]、c2[2]、c2[3]、c2[4]改寫(xiě)成'5'、'6'、'7'、'8'、'\\0'。故程序輸出的結(jié)果為15678。
39.fopenfopen解析:C語(yǔ)言中的文件分為:ASCII文件與二進(jìn)制j文件。文件在使用前打開(kāi),使用后要關(guān)閉。打開(kāi)文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式:);
關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。
40.66解析:經(jīng)過(guò)分析將遞歸函數(shù)寫(xiě)成其數(shù)學(xué)表達(dá)式如下:
f(&a,n)=a[0]+f(&a[1],n-1)n>1
f(&a,n)=a[0]n=1
本題中定義了一個(gè)長(zhǎng)度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f(),由上面的數(shù)學(xué)表達(dá)式以計(jì)算其返回值s=1+2+3=6,所以空白處應(yīng)該填6。
41.A解析:x以0開(kāi)頭是以八進(jìn)制的形式賦值的,輸出時(shí)要輸出其對(duì)應(yīng)的十六進(jìn)制。0210對(duì)應(yīng)的十六進(jìn)制是88。
42.C解析:本題考查簡(jiǎn)單的if…else語(yǔ)句。先執(zhí)行條件if(a<b),顯然不成立,在執(zhí)行else語(yǔ)句。
43.A解析:在C語(yǔ)言中,數(shù)組元素是從0開(kāi)始的。指針變量p指向數(shù)組的首地址,(p+2)就會(huì)指向數(shù)組中的第3個(gè)元素。題目中要求輸出的是元素的值。
44.B解析:在對(duì)字符數(shù)組賦字符串值時(shí),系統(tǒng)會(huì)自動(dòng)在字符串的末尾加上一個(gè)字符串結(jié)束標(biāo)志“\\0”,故指向字符數(shù)組的指針p的*(p+4)的值為“\\0”。由于“\\0”的編碼值就是0,所以本題輸出為0。
45.D解析:程序首先定義了一個(gè)指向一維數(shù)組a的指針p,一個(gè)指向指針變量p的指針變量q,輸出*(p++)是先輸出*p即a[0]的值,再將指針p指向數(shù)組的下一個(gè)元素a[1],輸出**q是輸出指針p所指向單元的內(nèi)容,即a[1]的值。
46.A解析:在C語(yǔ)言中,“%”運(yùn)算符兩側(cè)的運(yùn)算數(shù)必須是整型。
47.DC語(yǔ)言規(guī)定,變量名必須符合標(biāo)識(shí)符的命名規(guī)則。D選項(xiàng)中包含非法字符“$”,所以錯(cuò)誤。標(biāo)識(shí)符由字母、數(shù)字、下劃線組成,且第1個(gè)字符必須是字母或者下劃線,而不能是數(shù)字。大寫(xiě)字母與小寫(xiě)字母被認(rèn)為是兩個(gè)不同的字符,所以“For”不是關(guān)鍵字“for”。故本題答案為D選項(xiàng)。
48.C解析:共用體變量中的所有成員占有同一個(gè)存儲(chǔ)空間,其字節(jié)數(shù)與成員中占字節(jié)數(shù)最多的那個(gè)成員相等。char占1個(gè)字節(jié),int占2個(gè)字節(jié),float占4個(gè)字節(jié),因此本題中的共用體變量a,b,c占用內(nèi)存的字節(jié)數(shù)為4。
49.B解析:由于實(shí)參傳送的是變量的地址,所以對(duì)形參指針?biāo)赶虻膯卧獌?nèi)容的改變,即對(duì)實(shí)參內(nèi)容的改變。
50.A樹(shù)形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹(shù)是n(n≥0)個(gè)結(jié)點(diǎn)的集合,對(duì)應(yīng)任意一棵非空樹(shù),它具有以下幾點(diǎn)重要的性質(zhì)。
①有且僅有一個(gè)特定的稱為根的結(jié)點(diǎn)。
②當(dāng)n>1時(shí),其余結(jié)點(diǎn)可分為m(m>0)個(gè)互不相交的有限集T1,T2,…,TM,其中每一個(gè)集合本身又是一棵樹(shù),稱為子樹(shù)。
因此,本題的正確答案有且只有一個(gè)。
51.C
52.C
53.C
54.B解析:C語(yǔ)言規(guī)定,可以在定義變量的同時(shí)給變量賦初值,稱為變量初始化。在選項(xiàng)A)中在給n1和n2進(jìn)行賦初值,但變量02沒(méi)有定義;在選項(xiàng)C)中定義變量f時(shí),不能在賦值表達(dá)式的右邊出現(xiàn)變量f自身,所以選項(xiàng)C)錯(cuò)誤:在選項(xiàng)D)用指數(shù)表達(dá)式的常量中,字母E后面的數(shù)應(yīng)該為整數(shù),而不應(yīng)該為小數(shù)形式。因此,選項(xiàng)B)正確。
55.B
56.A解析:關(guān)系表中,每一行稱為一個(gè)元組,對(duì)應(yīng)表中的一條記錄;每一列稱為表中的一個(gè)屬性,對(duì)應(yīng)表中的一個(gè)字段;在二維表中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。
57.CC?!窘馕觥繉?duì)線性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開(kāi)始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。
58.D解析:首先,pt跟*結(jié)合,所以是一個(gè)指針,所指向的對(duì)象是含有3個(gè)元素的數(shù)組。所定義的指針沒(méi)加const,所以是個(gè)指針變量,還可以指向類似對(duì)象的其他元素,也就是說(shuō)還可以指向其他含有3個(gè)元素的數(shù)組。
59.B解析:給字符數(shù)組按字符串方式初始化,則在字符串末尾有一個(gè)字符串結(jié)束標(biāo)志,占一個(gè)字節(jié)的存儲(chǔ)空間,如逐個(gè)元素賦值,則不加字符串結(jié)束標(biāo)志。
60.B解析:主函數(shù)中定義了一個(gè)字符數(shù)組,并賦初值,一個(gè)字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個(gè)元素的地址,而調(diào)用put(str_adr)函數(shù)時(shí),將從sb_adr這一地址開(kāi)始,依次輸出存儲(chǔ)單元中的字符,遇到第一個(gè)“\\0”時(shí)結(jié)束輸出,并自動(dòng)輸出一個(gè)換行符。所以put(p+4)將輸出n/No,put(s)將從a第一個(gè)元素開(kāi)始輸出到第3個(gè)元素結(jié)束(因?yàn)閳?zhí)行*(p+4)=0語(yǔ)句后s中的第5個(gè)元素的值為0,而s中的第4個(gè)元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。
61.A
62.D
63.Aa=15,a%3=0,執(zhí)行case0語(yǔ)句標(biāo)號(hào),m++編程1,break;退出結(jié)構(gòu),所以m的值為1.
64.D結(jié)構(gòu)化程序設(shè)計(jì)由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設(shè)計(jì)為中心,將待開(kāi)發(fā)的軟件系統(tǒng)劃分為若干個(gè)相互獨(dú)立的模塊,這樣使完成每一個(gè)模塊的工作變得單純而明確,為設(shè)計(jì)一些較大的軟件打下了良好的基礎(chǔ)。
由于模塊相互獨(dú)立,因此,在設(shè)計(jì)其中一個(gè)模塊時(shí),不會(huì)受到其他模塊的牽連,因而可將原來(lái)較為復(fù)雜的問(wèn)題化簡(jiǎn)為一系列簡(jiǎn)單模塊的設(shè)計(jì)。模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來(lái)了不少的方便,因?yàn)榭梢猿浞掷矛F(xiàn)有的模塊作為積木式的擴(kuò)展。
結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計(jì)方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計(jì)方法從問(wèn)題本身開(kāi)始,經(jīng)過(guò)逐步細(xì)化,將解決問(wèn)題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個(gè)復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過(guò)組合、嵌套構(gòu)成,那么這個(gè)新構(gòu)造的程序一定是一個(gè)單入口單出口的程序。據(jù)此就很容易編寫(xiě)出結(jié)構(gòu)良好、易于調(diào)試的程序。
65.D
\n本題考查while循環(huán)。當(dāng)i<20時(shí),進(jìn)入while循環(huán)體,循環(huán)體內(nèi)的for循環(huán)實(shí)現(xiàn)的功能是i%10==0,也就是說(shuō)當(dāng)i值為0或者l0的倍數(shù)的時(shí)候,跳出循環(huán),執(zhí)行i+=11;a+=i;,若i值不是10的倍數(shù),則一直執(zhí)行for循環(huán)i--。①當(dāng)i=0時(shí),執(zhí)行i+=11;a+=i;,i=11,a=11;②判斷i=10時(shí),跳出for循環(huán),執(zhí)行i+=11;a+=i;,i=21,a=32;③判斷i=21>20,不符合題意,結(jié)束循環(huán)。
\n
66.A標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。B選項(xiàng)int不是表達(dá)變量類型的標(biāo)識(shí)符,它不能再用做變量名和函數(shù)名。C選項(xiàng)do是C語(yǔ)言的一個(gè)關(guān)鍵字。D選項(xiàng)標(biāo)識(shí)符只能以字母或下劃線開(kāi)始。
67.D
68.B
69.C嵌套的if語(yǔ)句功能是將k賦值為a、b、c中的最小值,選項(xiàng)A)中沒(méi)有比較a、c的大小,選項(xiàng)B)中語(yǔ)句”((b<c)?a:b):((b>c)?b:c)“錯(cuò)誤,選項(xiàng)D)中沒(méi)有比較b、c大小。
70.C在計(jì)算(float)(a4-b)/2時(shí),由于通過(guò)強(qiáng)制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計(jì)算,得4.500000。在計(jì)算(int)x%(int)y時(shí),先將x和y通過(guò)強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,結(jié)果為1。又因?yàn)?.500000是float型,所以將1和它相加時(shí),先將1換成float型,再計(jì)算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級(jí)類型從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級(jí)別由低到高的排序表示為:char→int→unsigned→log→float→double。
71.B
72.D本題輸出兩個(gè)值,第一個(gè)printf語(yǔ)句輸出b的值b=a+b=1。第二個(gè)printf語(yǔ)句輸出了a的值,a=2b,此時(shí)b的值為1,所以a的值為2。
73.A在本題中,程序首定義了一個(gè)無(wú)返回值的函數(shù)func,該函數(shù)帶有兩個(gè)形參,第一個(gè)形參是一個(gè)指針變量,第二個(gè)形參是一個(gè)數(shù)組。
在主函數(shù)中,定義一個(gè)整型變量a和一個(gè)整型數(shù)值b,并將b初始化為0,然后通過(guò)賦值操作改變變量a的值為0,b[0]的值為3。接著調(diào)用函數(shù)func,傳遞的實(shí)參分別為變量a的地址和數(shù)組b,這時(shí)執(zhí)行func函數(shù)的函數(shù)體b[0]=*a+6;語(yǔ)句將數(shù)組b的第一個(gè)元素值變?yōu)?+6=6,由于采用的傳值方式是傳址傳值,可以實(shí)現(xiàn)數(shù)據(jù)的雙向傳遞,因此,實(shí)參數(shù)組b的第一個(gè)元素值被改為6。然后程序用輸出語(yǔ)句輸出數(shù)組b的第一個(gè)元素值,輸出的結(jié)果應(yīng)該是6,本題正確答案選A。
74.A本題考查高級(jí)語(yǔ)言的數(shù)據(jù)類型。其中屬于構(gòu)造類型的主要有結(jié)構(gòu)體類型、聯(lián)合體類型,即共用體類型和數(shù)組類型。
75.C在輸入3和5之間除逗號(hào)外不能有其他字符。
76.C
77.B連接運(yùn)算也稱0連接,是對(duì)兩個(gè)關(guān)系進(jìn)行運(yùn)算,其意義是從兩個(gè)關(guān)系的笛卡爾積中選擇滿足給定屬性間一定條件的那些元組。本題關(guān)系R3為關(guān)系R1中B屬性和關(guān)系R2中D屬性相等連接而成。
78.A因?yàn)樾?xiě)字符a,b,c的ASCIl碼值分別為97,98,99,而在dowhile循環(huán)語(yǔ)句中,每次對(duì)字符的ASCII碼值取余數(shù)并輸出,所以分別輸出7,8,9。
79.C本題主要考查幾種循環(huán)結(jié)構(gòu)的比較。在題目中,給出了一段程序,程序首先對(duì)整型變量w賦值;然后定義了一段程序LB,在該段程序中,首先判斷變量w是否為零,如果是,則用GOTO語(yǔ)句跳出該段程序至LE,如果不為零,則w自減并輸出*,然后用GOTO語(yǔ)句跳到該程序段開(kāi)始的地方執(zhí)行。該段程序其實(shí)相當(dāng)于一個(gè)循環(huán),循環(huán)的結(jié)束條件是變量w的值等于零。
在選項(xiàng)A中,我們可以看到循環(huán)結(jié)束的條件是變量w的值等于零,而初值也一樣,與題目中的程序段意思完全一致。
在選項(xiàng)B中,我們可以看出循環(huán)結(jié)束的條件是變量w的值等于零,而程序也是先判斷,再執(zhí)行后面的語(yǔ)句,與原程序段描述的意思一致。
在選項(xiàng)C中,do-while循環(huán)是直到型循環(huán),即先執(zhí)行一次循環(huán)體中的語(yǔ)句后,再判斷循環(huán)條件,當(dāng)w的值已經(jīng)等于0時(shí),循環(huán)依然要運(yùn)行一次,與原程序段描述的內(nèi)容不一致,是題目的答案。
在選項(xiàng)D中,循環(huán)所描述的內(nèi)容也與原程序段一致。
提醒:在完成這類題時(shí),首先需要弄明白原程序段的作用,如果看不懂,則可以比較選項(xiàng)中與其他選項(xiàng)不同的結(jié)果。
80.A在單鏈表的第一個(gè)結(jié)點(diǎn)前增加一個(gè)表頭結(jié)點(diǎn),隊(duì)頭指針指向表頭結(jié)點(diǎn),最后一個(gè)結(jié)點(diǎn)的指針域的值由NULL改為指向表頭結(jié)點(diǎn),這樣的鏈表稱為循環(huán)鏈表。循環(huán)鏈表是線性結(jié)構(gòu),有且只有一個(gè)根結(jié)點(diǎn),每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。循環(huán)鏈表表頭結(jié)點(diǎn)為根結(jié)點(diǎn),鏈表的最后一個(gè)結(jié)點(diǎn)為葉子節(jié)點(diǎn),雖然它含有一個(gè)指向表頭結(jié)點(diǎn)的指針,但是表頭結(jié)點(diǎn)并不是它的一個(gè)后件。故選擇A選項(xiàng)。
81.(1)錯(cuò)誤:switch(g);
正確:switch(g)
(2)錯(cuò)誤:case1;case2:return1;
正確:case1:return1;case2:return1;
【解析】由C語(yǔ)言的語(yǔ)法規(guī)則可知,switch語(yǔ)句后面是沒(méi)有分號(hào)的,因此,“switch(g);”要把后面的分號(hào)去掉;在C語(yǔ)言中,case語(yǔ)句后面是冒號(hào)而不是分號(hào),因此,“case1;case2:return1;”應(yīng)改為“case1:return1;case2:return1;”。
82.
【解析】要返回分?jǐn)?shù)最低的學(xué)生個(gè)數(shù),首先要找出學(xué)生中的最低分?jǐn)?shù)。然后將各個(gè)學(xué)生的成績(jī)與最低分?jǐn)?shù)相比較,最后將分?jǐn)?shù)最低的學(xué)生個(gè)數(shù)返回給主函數(shù)。
2022-2023年貴州省畢節(jié)地區(qū)全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。
A.5,5B.5,11C.11,11D.11,5
2.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.7B.10C.8D.9
3.下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是()。
A.使用順序、選擇和重復(fù)(循環(huán).三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B.模塊只有一個(gè)入口,可以有多個(gè)出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語(yǔ)句
4.以下能夠正確描述“k是大于0的偶數(shù)”的表達(dá)式是()。
A.(k>0)&&(k%2!=1)
B.(k>0)&&(k%2=0)
C.(k>0)||!(k%2)
D.(k>0)||(k%2==0)
5.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在
6.
7.檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱為_(kāi)_____。
A.確認(rèn)測(cè)試B.集成測(cè)試C.驗(yàn)證測(cè)試D.驗(yàn)收測(cè)試
8.
9.若有說(shuō)明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。
A.2B.3C.4D.無(wú)確定值
10.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A.AB.aC.HD.h
11.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);
A.aB.bC.cD.d
12.若已包括頭文件且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語(yǔ)句錯(cuò)誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
13.若有定義“intb[8],*p=b;”,則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
14.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是________。
A.23B.26C.33D.36
15.
16.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12
17.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。
A.&B.^C.‖D.~
18.以下選項(xiàng)中敘述錯(cuò)誤的是()。
A.C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值
B.在同一函數(shù)中,各復(fù)合語(yǔ)句內(nèi)可以定義變量,其作用域僅限本復(fù)合語(yǔ)句內(nèi)
C.C程序函數(shù)中定義的自動(dòng)變量,系統(tǒng)不自動(dòng)賦確定的初值
D.C程序函數(shù)的性能不可以說(shuō)明為static型變量
19.
20.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。
A.EOFB.-lC.非零值D.0
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
22.與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是【】方法。
23.以下函數(shù)用來(lái)求出兩整數(shù)之和,并通過(guò)形參將結(jié)果傳回,請(qǐng)?zhí)畛渫暾?/p>
voidfunc(intx,inty,【】z)
{*z=x+y;
}
24.設(shè)有定義“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc______。
25.數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。
26.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
27.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>
#include<string.h>
main()
{infi,j,[13];charstr[]={"1234567"};
for(i=0,j=strlen(str)[14];i<j;i++,j--)
{k=str[i];str[i]=str[i];str[j]=k;}
printf("%s\n",str);}
28.若由以下定義,則不移動(dòng)指針p,且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
29.需求分析的最終結(jié)果是產(chǎn)生【】。
30.算法的執(zhí)行過(guò)程中,所需要的存儲(chǔ)空間稱為算法的【】。
31.已知字符A的ACSII碼值為65,以下語(yǔ)句的輸出結(jié)果是______。
charch='B';
printf("%c%d\n",ch,ch);
32.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
33.在鏈表的運(yùn)算過(guò)程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。
34.在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊),其中【】的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。
35.設(shè)有下面的程序段:chars[]="china";char*p;p=S;則下列敘述正確的是
36.下面的程序是將從終端讀入的20個(gè)字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;
chars[21],*p;
for(i=0;i<20;i++)
s[i]=getehar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
37.以下程序用來(lái)統(tǒng)計(jì)文件中字符的個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>
#include“stadio.h”
main()
{FILE*fp;longnum=0L;
if((fp=fopen(“fname.dat”,“r”))==NULL);
{printf(“0penerror\n”);exit(0);}
while(【】)
{fsetc(fp);num++;}
printf(“num=%1d\n”,num-1);
fclose(fp);
}
38.下述程序的輸出結(jié)果是【】。
#include<stdio.h>
voidmain()
{
charc1[20]="1234";
charc2[20]="5678";
char*p1,*p2;
p1=c1;
p2=c2;
while(*p1++)
while(*p1++=*p2++);
printf("%s,c1);
}
39.以下程序段打開(kāi)文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
40.下面程序的運(yùn)行結(jié)果是【】。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
]
main()
{intaa[3]={1,2,3),s;
s=f(&aa[0],3);printf("%d\n",s);
}
三、1.選擇題(20題)41.以下程序運(yùn)行后的輸出結(jié)果是______。main(){intx=0210;printf("%x\n",x);}
A.88B.86C.77D.21
42.若執(zhí)行下面的程序時(shí),從鍵盤(pán)輸入5和2,則輸出結(jié)果是
main()
{inta,b,k;
scanf("%d,%d",&a,&b);
k=a;
if(a<b)k=a%b;
elsek=b%a;
printf("%d\n",k);}
A.5B.3C.2D.0
43.下面程序的輸出結(jié)果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
44.請(qǐng)讀程序段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));程序段的輸出結(jié)果是______。
A.68B.0C.字符'D'的地址D.不確定的值
45.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.22B.11C.34D.12
46.在C語(yǔ)言中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是()。
A.%B.\C.%和\D.**
47.下列定義變量的語(yǔ)句中錯(cuò)誤的是______。A.int_int;B.doubleint_;C.charFor;D.floatUS$;
48.在16位IBM-PC上使用C語(yǔ)言,如定義下列共用體類型變量:uniondata{inti;charch;floatf;}a,b,c;則共用體變量a,b,c占用內(nèi)存的字節(jié)數(shù)為()。
A.1B.2C.4D.6
49.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int.*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
50.樹(shù)是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
51.數(shù)據(jù)封裝要解決的問(wèn)題是()
A.實(shí)現(xiàn)規(guī)范化B.防止書(shū)寫(xiě)錯(cuò)誤C.防止非法訪問(wèn)D.實(shí)現(xiàn)類型轉(zhuǎn)換
52.在C語(yǔ)言的函數(shù)中()
A.必須有形參B.形參必須是變量名C.可以有電可以沒(méi)有形參D.數(shù)組名不參與形參
53.若有以下定義,則正確的switch語(yǔ)句是______。floatx;inta,b;
A.switch(x){case1.0:printf("*\n");csse2.0:printf("**\n");}
B.switch(x){case1,2:printf("*\n");case3:printf("**\n");}
C.switch(a+b){case1:printf("\n");case1+2:printf("**\n");}
D.switch(a+b);{case1:printf("*\n");case2:printf("**\n");}
54.下列能正確定義且賦初值的語(yǔ)句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
55.設(shè)有定義:inta,*p=&a,**pp=&p;,則與a=100;等價(jià)的語(yǔ)句為()
A.**p=100;B.**pp=100;C.&*p=100;D.*pp=10;
56.關(guān)系表中的每一橫行稱為一個(gè)()。A.元組B.字段C.屬性D.碼
57.對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
58.若有定義int(*pt)[3];,則下列說(shuō)法不正確的是()。
A.int(*pt)[3]是一個(gè)數(shù)組指針
B.指針pt指向一個(gè)有3個(gè)整型變量的數(shù)組
C.定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組
D.定義了一個(gè)名為pt的指針變量,它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組
59.對(duì)于下面的語(yǔ)句,敘述正確的是______。charc1[]="abcd";charc2[]={'a','b','c','d'};
A.數(shù)組c1和數(shù)組c2等價(jià)
B.數(shù)組c1占用空間大于數(shù)組c2占用空間
C.數(shù)組c1占用空間小于數(shù)組c2占用空間
D.數(shù)組c1和數(shù)組c2的長(zhǎng)度相同
60.有以下程序main(){chars[]="Yse\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是(選項(xiàng)D中的第一行是空行)
A.n/NoYes/NoB./NoYesC.n/Noyes/NoD./NoYes
四、選擇題(20題)61.
62.
63.有以下程序:
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
64.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語(yǔ)言的先進(jìn)性D.程序易讀性
65.
有以下程序:
#include<stdio.h>
main
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break:
else
i--;
}
i+=11:
a+=i:
}
printf("%d\n",a);
}
程序的輸出結(jié)果是()。
A.62B.63C.33D.32
66.下列合法的聲明語(yǔ)句是()。
A.intabc=50;
B.doubleint=3+5e2.5;
C.longdo=1L;
D.float3asd=3e一3;
67.
68.
69.有如下嵌套的if語(yǔ)句:
以下選項(xiàng)中與上述if語(yǔ)句等價(jià)的語(yǔ)句是()。
A.
B.
C.
D.
70.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
71.
72.有以下程序:
#include<stdiO.h>
main()
{inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2+b);‘’
}
程序運(yùn)行后的輸出結(jié)果是()。
A.0,0B.1,3C.3,2D.1,2
73.有如下程序段
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5]={0};
a=0;b[0]=3;
func(&a,b);
printf("%d\n",b[0]);
}
程序運(yùn)行后輸出的結(jié)果是
A.6B.7
C.8D.9
74.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是()。
A.枚舉型B.共用型C.結(jié)構(gòu)型D.數(shù)組型
75.若有定義和語(yǔ)句:inta,b;scanf("%d,%d",&a,&b);以下選項(xiàng)中的輸人數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是()。
A.3,5,
B.3,5,4
C.3,5
D.35
76.
77.如圖所示,兩個(gè)關(guān)系R1和R2:
則由關(guān)系R1和R2得到關(guān)系R3的操作是()。
A.笛卡爾積B.連接C.交D.除
78.有以下程序(注:字符a的ASCIl碼值為97):
程序運(yùn)行后的輸出結(jié)果是()。
A.789B.abeC.7890D.979899
79.若有以下程序段,w和k都是整型變量。
w=k;
LB:if(w==0)gotoLE;
w--;
printf("*");
gotoLB;
LE:
M
則不能與上面程序段等價(jià)的循環(huán)語(yǔ)句是
A.for(w=k;w!=0;w--)printf("*");
B.w=k;<CR>while(w--!=0)printf("*");w++;
C.w=k;<CR>do{w--;printf("*");}while(w!=0);
D.for(w=k;w;--w)printf("*");
80.非空循環(huán)鏈表所表示的數(shù)據(jù)結(jié)構(gòu)()。
A.有根結(jié)點(diǎn)也有葉子結(jié)點(diǎn)B.沒(méi)有根結(jié)點(diǎn)但有葉子結(jié)點(diǎn)C.有根結(jié)點(diǎn)但沒(méi)有葉子結(jié)點(diǎn)D.沒(méi)有根結(jié)點(diǎn)也沒(méi)有葉子結(jié)點(diǎn)
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用遞歸算法計(jì)算斐波拉契級(jí)數(shù)列中第n項(xiàng)的值。從第一項(xiàng)起,斐波拉契級(jí)數(shù)序列為1,1,2,3,5,8,13,21,…例如,若給n輸入8,該項(xiàng)的斐波拉契級(jí)數(shù)值為21。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中。注意:分?jǐn)?shù)低的學(xué)生可能不止一個(gè)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.B解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。
2.D調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。
3.A解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的四條原則是:①自頂向下;②逐步求精;③模塊化;④限制使用goto語(yǔ)句。“自頂向下”是指在程序設(shè)計(jì)時(shí),先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)?!爸鸩角缶笔侵笇?duì)復(fù)雜問(wèn)題應(yīng)設(shè)計(jì)一些子目標(biāo)作過(guò)渡,逐步細(xì)節(jié)化。“模塊化”是指一個(gè)復(fù)雜問(wèn)題由若干稍簡(jiǎn)單的問(wèn)題構(gòu)成;解決這個(gè)復(fù)雜問(wèn)題的程序,也應(yīng)由若干稍簡(jiǎn)單問(wèn)題的小程序組成。
4.A判斷k大于0的表達(dá)式為“k>0”,判斷k是偶數(shù)的表達(dá)式為“k%2==0”或“k%2!=1”。兩個(gè)表達(dá)式必須都成立才能確定k是大于0的偶數(shù),則對(duì)應(yīng)的表達(dá)式為“(k>0)&&(k%2==0)”或“(k>0)&&(k%2!=1)”。故本題答案為A選項(xiàng)。
5.A答案A
解析:一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C語(yǔ)言程序可以實(shí)現(xiàn)多種算法。
6.B
7.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
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 防電信詐騙培訓(xùn)課件
- 管理類聯(lián)考綜合-2020年考研《管理類聯(lián)考綜合》真題
- 紅酒的禮儀知識(shí)
- 音樂(lè)碰碰船課件
- 小學(xué)安全心理教育
- 一年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編
- 酒店審計(jì)述職報(bào)告
- 眼鏡行業(yè)智能驗(yàn)光與個(gè)性化配鏡系統(tǒng)開(kāi)發(fā)方案
- 智能種植管理系統(tǒng)農(nóng)業(yè)信息化升級(jí)
- 生物八年級(jí)上冊(cè)知識(shí)點(diǎn)梳理
- 小學(xué)三年級(jí)下冊(cè)數(shù)學(xué)全單元測(cè)試題加答案
- 建設(shè)工程資料員培訓(xùn)
- 畢業(yè)設(shè)計(jì)(論文)-幼苗移栽機(jī)結(jié)構(gòu)設(shè)計(jì)
- 第七章-消化系統(tǒng)-人體解剖生理學(xué)課件
- 2024年北京東城區(qū)社區(qū)工作者招聘筆試沖刺題(帶答案解析)
- 04課前小游戲-記憶力大挑戰(zhàn)
- 肝膽胰脾護(hù)理
- 教育家精神專題講座課件
- 【財(cái)務(wù)共享服務(wù)對(duì)企業(yè)發(fā)展的影響:以海爾智家為例16000字(論文)】
- EPC項(xiàng)目投標(biāo)人承包人工程經(jīng)濟(jì)的合理性分析、評(píng)價(jià)
- 房建工程監(jiān)理大綱范本(內(nèi)容全面)
評(píng)論
0/150
提交評(píng)論