版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年山東省濰坊市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}
A.將磁盤文件的內(nèi)容顯示在屏幕上
B.將兩個磁盤文件合為一個
C.將一個磁盤文件復(fù)制到另一個磁盤文件中
D.將兩個磁盤文件合并后送屏幕
2.以下不能作為合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
3.以下敘述中錯誤的是()。
A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分
B.常量是在程序運(yùn)行過程中值不能被改變的量
C.定義符號常量必須用類型名來設(shè)定常量的類型
D.用符號名表示的常量叫符號常量
4.有以下程序:#include<stdio.h>main(){inta=-2,b=2;for(;++a&&--b;)printf(“%d,%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。
A.0,1B.0,0C.1,-1D.0,2
5.有以下程序(函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作):#include<stdio.h>voidfun(int*n){inti,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main{intaa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序運(yùn)行后的輸出結(jié)果是()。A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
6.以下選項(xiàng)中,非法的字符常量是______。
A.'t\'B.'\17'C.\nD.'\xaa'
7.線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列()操作。
A.s->next=p;p->next=s;
B.s->next=p->next;p->next=s;
C.s->next=p->next;p=s;
D.p->next=s;s->next=p;
8.當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
9.棧和隊(duì)列的共同特點(diǎn)是()。
A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)
10.在黑盒測試方法中,設(shè)計(jì)測試用例的主要根據(jù)是()。
A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
11.
12.有下列程序段:
intk=0,a=1,b=2,c=3;
k=a<b?b:a;k=k>C?C:k;
執(zhí)行該程序段后,k的值是()。
A.3B.2C.1D.0
13.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(inta){intb=0;staticintc=4:a=c++:b++;return(a):main{inta=2,i,c;for(i=0:i<2;i++)c=f(a+1):printf("%d\n",c);}A.4B.7C.6D.5
14.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
15.以下能夠正確描述“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)
16.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之間的通信靠傳遞消息來實(shí)現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨(dú)立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
17.表達(dá)式“a+=a-=a=9”的值是()。
A.18B.-9C.0D.9
18.有以下程序:#include<stdio.h>intadd_more(inta,intb){returna+b-2;}main(){inti;for(i=0;i<4;i++)printf(“%d”,add_more(i,2));}程序運(yùn)行后的輸出結(jié)果是()。
A.1234B.0123C.5678D.4321
19.對于"int*pa[5];"的描述中,正確的是()。
A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素
B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量
C.pa[5]表示某個元素的第5個元素的值
D.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針
20.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
二、2.填空題(20題)21.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。
22.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
23.注釋一般分為序言性注釋和______注釋。
24.若x為int類型,請寫出與!x等價的C語言表達(dá)式______。
25.當(dāng)運(yùn)行以下程序時,從鍵盤輸入abcdabcdef<CR>
cde<CR>
(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{inta;chars[80],t[80];
gets(s);gets(t);
a=fun(s,t);
printf("a=%d\n",a);}
fun(char*p,char*q)
{inti;
char*p1=p;
char*q1;
for(i=0;*p!='\0';p++,i++)
{p=p1+i;
if(*p!=*q)continue;
for(q1=q+1,p=p+1;*p!='\0'&&*q1!='\0';q1++,p++)
if(*p!=*q1)break;
if(*q1=='\0')returni;}
return(-1);}
26.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。
27.在最壞情況下,冒泡排序的時間復(fù)雜度為【】。
28.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
29.以下程序的輸出結(jié)果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
30.下列程序的輸出結(jié)果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
31.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對象稱為【】。
32.設(shè)一棵完全二叉樹共有700個結(jié)點(diǎn),則在該二叉樹中有【】個葉子結(jié)點(diǎn)。
33.有以下程序段,且變量已正確定義和賦值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請?zhí)羁?使下面程序段的功能與之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
34.已知字符'A'的ASCII碼為65,以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,b);
}
35.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
36.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
fov(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n",k);}
37.若有以下程序
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
執(zhí)行后輸出結(jié)果是【】。
38.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為______。
39.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
40.下列程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù)。
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>fun(inta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.6C.8D.12
42.以下敘述中不正確的是()。
A.預(yù)處理命令行都必須以#號開始,結(jié)尾不加分號
B.在程序中凡是以#號開始的語句行都是預(yù)處理命令行
C.C程序在執(zhí)行過程中對預(yù)處理命令進(jìn)行處理
D.預(yù)處理命令可以放在程序中的任何位置
43.有以下程序:#include<stdio.h>floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運(yùn)行后的輸出結(jié)果是()。
A.編譯出錯B.9C.21D.9
44.在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是______。
A.8B.16C.32D.15
45.
有下列程序:
fun(intX,inty){return(x+y);}
main
{inta=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
執(zhí)行后的輸出結(jié)果是()。
A.6B.7C.8D.9
46.C語言中,系統(tǒng)的標(biāo)準(zhǔn)輸入文件是指
A.鍵盤B.顯示器C.軟盤D.硬盤
47.有以下程序:#include<stdio.h>intf(intn)}if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是()。
A.4B.3C.2D.1
48.下列不正確的轉(zhuǎn)義字符是()。
A.'\\'B.'\t'C.'\n\D.'088'
49.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}
A.121,0,4B.2,2,2C.0,2,4D.0,2,2
50.下列程序的運(yùn)行結(jié)果為()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}
A.500B.5C.4D.400
51.有以下程序:intfun(intx[],intn){staticihtsum=O,i;for(i=O;i
A.45B.50C.60D.55
52.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);}
程序運(yùn)行后的輸出結(jié)果是
A.4B.3C.2D.1
53.有以下程序structSTU{charnum[10];floatscore[3];};main(){stmctSTUs[3]={{“20021”,90,95,85},{“20022”,95,80,75},{“20023”,100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<3;i++)sum=sum+p->score[i];printf(“%6.2f\n”,sum);}程序運(yùn)行后的輸出結(jié)果是
A.260B.270C.280D.285
54.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。
A.排序、索引、統(tǒng)計(jì)B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表
55.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
56.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯Γ搓P(guān)鍵碼的檢索頻率排好序
57.若有如下程序段:main(){intn=0;while(printf("*")){n++;if(n<3)break;}}則下列描述正確的是()
A.其中循環(huán)控制表達(dá)式與0等價B.其中循環(huán)控制表達(dá)式與'0'等價C.其中循環(huán)控制表達(dá)式是不合法的D.以上說法都不對
58.需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能
59.設(shè)有如下關(guān)系表:
則下列操作中,正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
60.在軟件測試設(shè)計(jì)中,軟件測試的主要目的是
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯誤D.盡可能多地發(fā)現(xiàn)軟件中的錯誤
四、選擇題(20題)61.
62.設(shè)有定義:intx-2;,以下表達(dá)式中,值不為6的是()。A.2*x,X+=2B.x++,2*xC.x*=(1+x)D.x*=x+1
63.
64.有以下程序段:
程序運(yùn)行后的輸出結(jié)果是()。
A.a=10b=50C=30
B.a=10b=50c=10
C.a=10b=30c=10
D.a=50b=30c:50
65.有以下程序
66.有以下程序:
#include<stdio.h>
#include!(string.h>
voidfun(char*w,intm)
{charS,*pl,*p2;
p1=w;p2=w+m-;
while(pl<p2){s=*pl;*p1=*p2;*p2=s;pl++;p2-;}
}
main()
{chara[]="l23456";
fun(a,strlen(a));puts(a);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.654321
B.116611
C.161616
D.l23456
67.現(xiàn)有如下程序段:
則程序段的輸出結(jié)果為()。
A.7,8
B.8,8
C.7,10
D.8,10
68.
69.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
70.設(shè)有定義
71.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.0B.10C.20D.出錯
72.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
73.
74.以下程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.4D.8
75.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
76.
77.有以下程序段:
inti,n;
for(i=0;i<8;i++)
{n=rand()%5;
switch(n)
{casel:
case3:printf("%d\n",n);break;
case2:
case4:print?("%d\n",n);continue;
case():exit(0);
}
printf("%d\n",n);
}
以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。
A.for循環(huán)語句固定執(zhí)行8次
B.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時結(jié)束循環(huán)操作
C.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時不做任何操作
D.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時結(jié)束程序運(yùn)行
78.C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是()。
A.DoubleB.shortC.integerD.Char
79.在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是()。
A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個階段相同
80.若a是數(shù)值類型,則邏輯表達(dá)式(a==1)||(a!=1)的值是()。
A.0B.1C.2D.不知道a的值,不能確定
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求S的值。
例如,當(dāng)n為100時,函數(shù)的值應(yīng)為1.566893。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.請編一個函數(shù)voidproc(intttEM][N],intpp[N]),tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每行中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineM3#defineN4voidproc(intttrM3rN]。intpp[N]){ }voidmain{intstr[M][N]={{34,56,84,78},{23,84,93,12),{28,38,39,93}};intp[N],i,j,k;system("CLS");printf("Theriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",str[i][j]);printf("\n");}proc(str,p);printf("\nTheresultis:\n");for(k=0:k<M;k++)printf("%4d",p[k]);printf("n");}
參考答案
1.C解析:程序首先定義了兩個文件類型的指針fp1、fp2。為讀打開文件filel,并讓指針fp1指向該文件;為寫打開文件file2,并讓指針fp2指向該文件。循環(huán)執(zhí)行從文件file1中讀取一個字符,輸出到文件file2中,直到文件file1結(jié)束。因此程序的功能是將文件file1中的內(nèi)容復(fù)制到文件file2中。
2.A字符常量是使用單引號標(biāo)注的單個字符,選項(xiàng)A錯誤;選項(xiàng)B屬于浮點(diǎn)數(shù)常量,正確;選項(xiàng)C屬于轉(zhuǎn)義字符常量,正確;選項(xiàng)D屬于轉(zhuǎn)義字符,代表八進(jìn)制數(shù)011的ASCII值的字符,正確。本題答案為A選項(xiàng)。
3.C在C語言中,可以用一個標(biāo)識符來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:#define標(biāo)識符常量。
4.A在語句“for(;++a&&--b;)”中,for循環(huán)的表達(dá)式1和表達(dá)式3為缺省項(xiàng)。首先判斷條件表達(dá)式“b”。當(dāng)“a=-2,b=2”時,第1次執(zhí)行“++a”和“--b”,條件表達(dá)式為真,循環(huán)條件成立。第2次執(zhí)行“++a”為0,由于運(yùn)算符,當(dāng)?shù)?個條件為假時,不執(zhí)行第2個條件,因此“b=1”,發(fā)生短路,“--b”不再執(zhí)行。因此輸出的最終值為0,1。故本題答案為A選項(xiàng)。
5.A對下標(biāo)為偶數(shù)的元素進(jìn)行降序排序,下標(biāo)為奇數(shù)元素保持不變。
6.C解析:C語言中字符常量是以單引號括起來的單個字符,或以“\\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個字符。
7.B
8.A
9.C解析:考查棧和隊(duì)列概念的掌握。棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種'后進(jìn)先出'的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種'先進(jìn)先出'的線性表。模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒有這種耦合方式。
10.A【答案】:A
【知識點(diǎn)】:黑盒測試
【解析】:黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只著眼于程序的外部結(jié)構(gòu),主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。
11.B
12.B解析:因?yàn)閍<b成立,所以條件表達(dá)式a<b?b:a的值等于b的值等于2,因此變量k的值等于2。又因?yàn)閗=2>c=3不成立,所以條件表達(dá)式k>c?c:k的值等于k的值等于2。把條件表達(dá)式k>c?c:k的值賦給變量k,因而變量k的值等于2。因此,選項(xiàng)B)為正確答案。
13.Dstatic變量是局部度量,函數(shù)無法修改,所以當(dāng)i=1時,第2次進(jìn)入f函數(shù)時c=5,所以最終main函數(shù)中C的值為5。
14.B軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)接口設(shè)計(jì)和過程設(shè)計(jì)。其中軟件結(jié)構(gòu)設(shè)計(jì)主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設(shè)計(jì)的任務(wù)是為每個子系統(tǒng)設(shè)計(jì)其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設(shè)計(jì)是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。
15.A判斷k大于0的表達(dá)式為“k>0”,判斷k是偶數(shù)的表達(dá)式為“k%2==0”或“k%2!=1”。兩個表達(dá)式必須都成立才能確定k是大于0的偶數(shù),則對應(yīng)的表達(dá)式為“(k>0)&&(k%2==0)”或“(k>0)&&(k%2!=1)”。故本題答案為A選項(xiàng)。
16.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。
17.C首先計(jì)算表達(dá)式“a=9”;再計(jì)算表達(dá)式“a-=9”;即“a=a-9”,結(jié)果為0;最后計(jì)算表達(dá)式“a+=0”,即“a=a+0”,所以最終結(jié)果為0。故本題答案為C選項(xiàng)。
18.Badd_more函數(shù)接收兩個參數(shù)a、b,返回“a+b-2”。main函數(shù)中,for循環(huán)調(diào)用add_more函數(shù)。當(dāng)i=2時,傳入實(shí)參i和2,所以每次調(diào)用函數(shù)add_more時,b的值都是2。函數(shù)add_more返回值等價于實(shí)參i。所以每次for循環(huán)輸出的值就是i的值。故本題答案為B選項(xiàng)。
19.D
20.C該程序中int8pl=&a,+p2=&b,4P=&c;指定義三個指針變量,并賦值,即使pl指向a;p2指向b;p指向c。+P=。pl$(+p2)。;該條語句是給P所指的存儲單元c賦值,就是pl所指的存儲單元的值,即a的值,與p2所指的存儲單元b的值相乘,也就是c=a+b,等價于c=1·3=3;因此C選項(xiàng)正確?!?/p>
21.continuecontinue解析:continue語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。break語句是終止整個循環(huán)的執(zhí)行,不再進(jìn)行條件判定。
22.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
23.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,
24.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
25.a=6a=6解析:字符指針p++使指針向后移動一個字符的位置,而*p則是取得指針p所在位置的字符元素。
26.邊值分析法邊值分析法解析:本題考查了黑箱測試的方法。黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法。
27.
解析:冒泡排序法是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長度為n,則在最壞的情況下,冒泡排序需要經(jīng)過遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。
28.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。
29.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強(qiáng)制轉(zhuǎn)換類型轉(zhuǎn)換運(yùn)算符,將一個表達(dá)式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。
本題可按部就班地逐步運(yùn)算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
30.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類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。
31.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。
32.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹具有n個結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點(diǎn)以及n/2-1個度為2的結(jié)點(diǎn),還有1個是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結(jié)點(diǎn)以及[n/2]個度為2的結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn)。本題中,完全二叉樹共有700個結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹中有350個葉子結(jié)點(diǎn)以及349個度為2的結(jié)點(diǎn),還有1個是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。
33.k<=nk++k<=n,k++解析:本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句'k++;'\ue009。
34.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式輸出\'C\'的ASCII碼為67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式輸出為\'G\'。
35.軟件開發(fā)
36.1212解析:本題通過第一個for循環(huán)將數(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:
37.99解析:函數(shù)的嵌套調(diào)用是在主函數(shù)中函數(shù)f(f(3,4),f(3,5))的返回值賦給d。函數(shù)的第一個參數(shù)為f(3,4)的返回值,函數(shù)f(3,4)返回值為(4-3)*3=3,f(3,5)返回值為(5-3)*3=6,那么函數(shù)f(f(3,4),f(3,5))等價于函數(shù)f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9,所以輸出9。
38.1616解析:函數(shù)運(yùn)算不改變數(shù)據(jù)類型,所以結(jié)果也是double型,fabs(x)是對x取絕對值,pow(y,fabs(x))是y的labs(x)次冪,即2.04。0=16.000000(注意;結(jié)果為double型)。
39.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個表達(dá)式前面有一個邏輯運(yùn)算符!,表示反操作,所以整個語句的值應(yīng)當(dāng)為false,即為0。
40.ex或structstex或structst
41.D解析:本題考查函數(shù)的返回值。fun函數(shù)的功能是比較a,b的值,返回其中較大者。對于main函數(shù)中的語句r=fun(fun(x,y),2*z);是先調(diào)用fun(x,y)返回8,再將8和12作為實(shí)參調(diào)用函數(shù)fun,得到的返回值為12。
42.C解析:本題考查預(yù)處理命令的特點(diǎn)。編譯預(yù)處理命令的特點(diǎn)有:①為了區(qū)分一般的語句,預(yù)處理命令行都必須以#開始,結(jié)尾不加分號;②預(yù)處理命令可以放在程序中的任意位置;③在程序中凡是以#開始的語句都是預(yù)處理命令行。
43.B解析:本題考查函數(shù)調(diào)用。將a,b,c的值代入函數(shù)調(diào)用fun((int)fun(a+c,b),a-c)可得到fun((int)fun(10,5),-6)。函數(shù)調(diào)用分為兩步:
①調(diào)用函數(shù)fun(10,5)。
②利用強(qiáng)制類型轉(zhuǎn)換(int)將函數(shù)fun(10,5)的返回值15.000000轉(zhuǎn)換成15,再將其結(jié)果作為函數(shù)的實(shí)參進(jìn)行第二次函數(shù)調(diào)用fun(15,-6),其結(jié)果為9。
44.B[答案]B
[考點(diǎn)]數(shù)據(jù)結(jié)構(gòu)與算法
[評析]依次從上到下,可得出:
第1層結(jié)點(diǎn)數(shù)為1;
第2層結(jié)點(diǎn)數(shù)為2*1=2;
第3層結(jié)點(diǎn)數(shù)為2*2=4;
第n層結(jié)點(diǎn)數(shù)為2的n-1次冪
45.C解析:函數(shù)fun(intx,inty)的功能是返回兩個整型數(shù)據(jù)的和。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用子函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等8。所以變量sum的值等于8。
46.A解析:此題考查有關(guān)標(biāo)準(zhǔn)設(shè)備的知識。在多數(shù)C語言版本中,stdio.h文件至少定義了4種標(biāo)準(zhǔn)設(shè)備文件,可以直接引用不必含有打開操作,包括:
標(biāo)準(zhǔn)輸入文件指針stdin缺省為鍵盤;
標(biāo)準(zhǔn)輸出文件指針stdout缺省為顯示器;
標(biāo)準(zhǔn)錯誤輸出文件指針stderr缺省為顯示器;
標(biāo)準(zhǔn)打印輸出文件指針stdprn指打印機(jī);
此外,還可能包括如輔助設(shè)備等標(biāo)準(zhǔn)文件指針,且多數(shù)文件指針可以被重新定向到其他設(shè)備。
47.B解析:在main函數(shù)中,j的值是f(1)和f(2)的值相加的結(jié)果。
f(1)=1,f(2)=f(1)+1=2,j的值為1+2=3。
48.D解析:'\\\\'是反斜線轉(zhuǎn)義字符;'\\t'是水平跳格轉(zhuǎn)義字符;'\\n'是換行轉(zhuǎn)義字符;C語言中沒有規(guī)定'088'為轉(zhuǎn)義字符。
49.B解析:sizeof函數(shù)是取變量所占的存儲空間的字節(jié)數(shù),標(biāo)識a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認(rèn)為整型;enumc{a1,a2};定義了—個枚舉類型enumc,a1,a2為枚舉元素,在C編譯時,對枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。
50.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:(x)>(y)?(x):(y)是x>y時輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時,(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。
51.C解析:本題中fun()函數(shù)通過一個for循環(huán)來累計(jì)形參數(shù)組x的前n個元素之和。在主函數(shù)中,第1次調(diào)用fun(a,5)時,返回的值應(yīng)該是數(shù)組a的前5個元素的和,而第2次調(diào)用fun(b,4)時,返回的值除了本次累計(jì)的數(shù)組b前4個元素的和外,還要加上上次累計(jì)的值。所以,最后輸?shù)膕的值為數(shù)組a所有元素之和的兩倍加上數(shù)組b所有元素之和,結(jié)果是60。故應(yīng)該選擇C。
52.B解析:在main函數(shù)中,對f(1)和f(2)的值進(jìn)行了累加。
f(1)=1
f(2)=f(1)+1=2
最后,j的值為1+2=3
53.B解析:程序中首先定義了一個結(jié)構(gòu)體,其成員為一字符數(shù)組和一浮點(diǎn)型數(shù)組。在main()首先定義了一個結(jié)構(gòu)體數(shù)組并初始化。接下來在for循環(huán)中遍歷了結(jié)構(gòu)體數(shù)組中的第一個元素中數(shù)組成員即{20021“,90,95,85”}循環(huán)結(jié)果為90+95+85=270最后sum為270,又輸出格式為“%6.2f\\n”要求保留兩位小數(shù)故最后輸出為270.00。
54.B解析:此題為數(shù)據(jù)庫的基本概念,可以對照辦工軟件的電子表格進(jìn)行如下理解:選擇:我們根據(jù)某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學(xué)生關(guān)系(學(xué)號,姓名,出生年月,性別),學(xué)號、姓名…都是屬性)選取一列或多列(一個二維表中所有元組在某一列或幾列上截取出來)。連接:2個或2個以上的表連接組成一張新的表,通常有條件連接。比如學(xué)生關(guān)系(學(xué)號,姓名,系號),又有一張系表(系號,系名,主任),2張表可以合并為一張這樣的表(學(xué)號,姓名,系號,系名,主任)。
55.D結(jié)構(gòu)化程序設(shè)計(jì)的基本要點(diǎn):①采用自頂向下、逐步求精的程序設(shè)計(jì)方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)構(gòu)造。
56.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
57.B
58.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書
評析,需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。
59.B解析:T是R∪S的結(jié)果,關(guān)系T由屬于關(guān)系R的或者屬于關(guān)系S的元組組成。
60.D解析:使用人工或自動手段來運(yùn)行或測定某個系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。
61.D
62.A選項(xiàng)A中,2*x對x的值沒有影響,x仍為2,“x+=2”執(zhí)行后,表達(dá)式值為4。故本題答案為A。
63.C
64.B本題中a>b的條件不滿足,所以不執(zhí)行逗號表達(dá)式a=b,b=c;的操作,而是執(zhí)行c=a操作,即c的值勾10。
65.Afun函數(shù)將第二個字符串輸出,所以輸出Aftemoon,答案選擇A)。
66.A\n此題是需要將a[]中的數(shù)值倒過來進(jìn)行輸出,所以答案為A。
\n
67.D在c語言中,定義一維數(shù)組的語句一般形式如下:
類型名數(shù)組名[常量表達(dá)式];
一維數(shù)組的引用形式為:數(shù)組名[下標(biāo)表達(dá)式]。count表示能被2整除或被5整除的個數(shù),i則計(jì)算有多少個數(shù)組元素。
68.A
69.B軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)接口設(shè)計(jì)和過程設(shè)計(jì)。其中軟件結(jié)構(gòu)設(shè)計(jì)主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設(shè)計(jì)的任務(wù)是為每個子系統(tǒng)設(shè)計(jì)其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設(shè)計(jì)是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。
70.A*(s+3)指針后移3個單位,為a[31的值。答案選擇A)。
71.C分配內(nèi)存空間函數(shù)malloe的調(diào)用形式:類型說明符*)malloe(size)。其功能是在內(nèi)存的動態(tài)存儲區(qū)中分配一塊長度為”size”字節(jié)的連續(xù)區(qū)域,函數(shù)的返回值為該區(qū)域的首地址?!鳖愋驼f明符”表示把該區(qū)域用于何種數(shù)據(jù)類型。
72.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點(diǎn)。
73.D
74.D第一次調(diào)用的是最內(nèi)層的f(n),即f(1)返回值是2。第二次調(diào)用中間的f(f(n)),即f(2)返回值是4。最后調(diào)用最外層的f(f(f(n))),即r(4)返回值是8。最后打印輸出。
75.D本題考查兩個知識點(diǎn),按位異或左移把b左移2位化成二進(jìn)制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
76.C
77.A\n程序中的if循環(huán)是固定地執(zhí)行8次,屬于計(jì)數(shù)器,程序是從中隨機(jī)抽取一個數(shù),然后對5進(jìn)行求余再輸出,共抽取8個數(shù)。所以答案為A。
\n
78.Bdouble,char,int,第一個字母都是小寫。
79.C數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中最后一個階段結(jié)構(gòu)簡單,使用方便邏輯性強(qiáng)物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫領(lǐng)域的主導(dǎo)地位,所以選擇C)。
80.B當(dāng)a=1時,(a==1)||(a!=1)為真;當(dāng)a!=1時,(a==1)||(a!=1)也為真,故正確答案為B)。
81.(1)錯誤:proc(intn)
正確:doubleproc(intk)
(2)錯誤:returnsum
正確:returnsum;
【解析】由主函數(shù)中的函數(shù)調(diào)用及函數(shù)proc()中的re-turn語句可知,函數(shù)proc()的返回值類型應(yīng)為double型,因此“proc(intk)”前面應(yīng)加上double;根據(jù)C語言的語法規(guī)則,每一條語句都必須以分號結(jié)束,因此語句“returns”后應(yīng)加上分號。
82.voidproc(inttt[M][N],intpp[N])inti,j,max;for(i=0;i<M;i++)//i控制行的下標(biāo){max=tt[i][c];//max存放每行中最大的數(shù)for(j=0;j<N;j++)if(tt[i][j]>max)max=tt[i][j];pp[i]=max;//把大的數(shù)放到PP數(shù)組中,經(jīng)過i來控制pp數(shù)組的下標(biāo)}}【解析】按照題目中要求,求出二維數(shù)組每行中最大元素,并依次放入PP所指的一維數(shù)組中。首先比較二維數(shù)組中每一行的元素,找出每一行中的最大元素,放入一維數(shù)組pp中,返回到主函數(shù)當(dāng)中。2022年山東省濰坊市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}
A.將磁盤文件的內(nèi)容顯示在屏幕上
B.將兩個磁盤文件合為一個
C.將一個磁盤文件復(fù)制到另一個磁盤文件中
D.將兩個磁盤文件合并后送屏幕
2.以下不能作為合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
3.以下敘述中錯誤的是()。
A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分
B.常量是在程序運(yùn)行過程中值不能被改變的量
C.定義符號常量必須用類型名來設(shè)定常量的類型
D.用符號名表示的常量叫符號常量
4.有以下程序:#include<stdio.h>main(){inta=-2,b=2;for(;++a&&--b;)printf(“%d,%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。
A.0,1B.0,0C.1,-1D.0,2
5.有以下程序(函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作):#include<stdio.h>voidfun(int*n){inti,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main{intaa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序運(yùn)行后的輸出結(jié)果是()。A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
6.以下選項(xiàng)中,非法的字符常量是______。
A.'t\'B.'\17'C.\nD.'\xaa'
7.線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列()操作。
A.s->next=p;p->next=s;
B.s->next=p->next;p->next=s;
C.s->next=p->next;p=s;
D.p->next=s;s->next=p;
8.當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
9.棧和隊(duì)列的共同特點(diǎn)是()。
A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)
10.在黑盒測試方法中,設(shè)計(jì)測試用例的主要根據(jù)是()。
A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
11.
12.有下列程序段:
intk=0,a=1,b=2,c=3;
k=a<b?b:a;k=k>C?C:k;
執(zhí)行該程序段后,k的值是()。
A.3B.2C.1D.0
13.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(inta){intb=0;staticintc=4:a=c++:b++;return(a):main{inta=2,i,c;for(i=0:i<2;i++)c=f(a+1):printf("%d\n",c);}A.4B.7C.6D.5
14.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
15.以下能夠正確描述“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)
16.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之間的通信靠傳遞消息來實(shí)現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨(dú)立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
17.表達(dá)式“a+=a-=a=9”的值是()。
A.18B.-9C.0D.9
18.有以下程序:#include<stdio.h>intadd_more(inta,intb){returna+b-2;}main(){inti;for(i=0;i<4;i++)printf(“%d”,add_more(i,2));}程序運(yùn)行后的輸出結(jié)果是()。
A.1234B.0123C.5678D.4321
19.對于"int*pa[5];"的描述中,正確的是()。
A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素
B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量
C.pa[5]表示某個元素的第5個元素的值
D.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針
20.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
二、2.填空題(20題)21.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。
22.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
23.注釋一般分為序言性注釋和______注釋。
24.若x為int類型,請寫出與!x等價的C語言表達(dá)式______。
25.當(dāng)運(yùn)行以下程序時,從鍵盤輸入abcdabcdef<CR>
cde<CR>
(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{inta;chars[80],t[80];
gets(s);gets(t);
a=fun(s,t);
printf("a=%d\n",a);}
fun(char*p,char*q)
{inti;
char*p1=p;
char*q1;
for(i=0;*p!='\0';p++,i++)
{p=p1+i;
if(*p!=*q)continue;
for(q1=q+1,p=p+1;*p!='\0'&&*q1!='\0';q1++,p++)
if(*p!=*q1)break;
if(*q1=='\0')returni;}
return(-1);}
26.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。
27.在最壞情況下,冒泡排序的時間復(fù)雜度為【】。
28.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
29.以下程序的輸出結(jié)果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
30.下列程序的輸出結(jié)果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
31.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對象稱為【】。
32.設(shè)一棵完全二叉樹共有700個結(jié)點(diǎn),則在該二叉樹中有【】個葉子結(jié)點(diǎn)。
33.有以下程序段,且變量已正確定義和賦值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請?zhí)羁?使下面程序段的功能與之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
34.已知字符'A'的ASCII碼為65,以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,b);
}
35.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
36.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
fov(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n",k);}
37.若有以下程序
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
執(zhí)行后輸出結(jié)果是【】。
38.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為______。
39.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
40.下列程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù)。
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>fun(inta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.6C.8D.12
42.以下敘述中不正確的是()。
A.預(yù)處理命令行都必須以#號開始,結(jié)尾不加分號
B.在程序中凡是以#號開始的語句行都是預(yù)處理命令行
C.C程序在執(zhí)行過程中對預(yù)處理命令進(jìn)行處理
D.預(yù)處理命令可以放在程序中的任何位置
43.有以下程序:#include<stdio.h>floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運(yùn)行后的輸出結(jié)果是()。
A.編譯出錯B.9C.21D.9
44.在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是______。
A.8B.16C.32D.15
45.
有下列程序:
fun(intX,inty){return(x+y);}
main
{inta=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
執(zhí)行后的輸出結(jié)果是()。
A.6B.7C.8D.9
46.C語言中,系統(tǒng)的標(biāo)準(zhǔn)輸入文件是指
A.鍵盤B.顯示器C.軟盤D.硬盤
47.有以下程序:#include<stdio.h>intf(intn)}if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是()。
A.4B.3C.2D.1
48.下列不正確的轉(zhuǎn)義字符是()。
A.'\\'B.'\t'C.'\n\D.'088'
49.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}
A.121,0,4B.2,2,2C.0,2,4D.0,2,2
50.下列程序的運(yùn)行結(jié)果為()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}
A.500B.5C.4D.400
51.有以下程序:intfun(intx[],intn){staticihtsum=O,i;for(i=O;i
A.45B.50C.60D.55
52.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);}
程序運(yùn)行后的輸出結(jié)果是
A.4B.3C.2D.1
53.有以下程序structSTU{charnum[10];floatscore[3];};main(){stmctSTUs[3]={{“20021”,90,95,85},{“20022”,95,80,75},{“20023”,100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<3;i++)sum=sum+p->score[i];printf(“%6.2f\n”,sum);}程序運(yùn)行后的輸出結(jié)果是
A.260B.270C.280D.285
54.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。
A.排序、索引、統(tǒng)計(jì)B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表
55.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
56.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序
57.若有如下程序段:main(){intn=0;while(printf("*")){n++;if(n<3)break;}}則下列描述正確的是()
A.其中循環(huán)控制表達(dá)式與0等價B.其中循環(huán)控制表達(dá)式與'0'等價C.其中循環(huán)控制表達(dá)式是不合法的D.以上說法都不對
58.需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能
59.設(shè)有如下關(guān)系表:
則下列操作中,正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
60.在軟件測試設(shè)計(jì)中,軟件測試的主要目的是
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯誤D.盡可能多地發(fā)現(xiàn)軟件中的錯誤
四、選擇題(20題)61.
62.設(shè)有定義:intx-2;,以下表達(dá)式中,值不為6的是()。A.2*x,X+=2B.x++,2*xC.x*=(1+x)D.x*=x+1
63.
64.有以下程序段:
程序運(yùn)行后的輸出結(jié)果是()。
A.a=10b=50C=30
B.a=10b=50c=10
C.a=10b=30c=10
D.a=50b=30c:50
65.有以下程序
66.有以下程序:
#include<stdio.h>
#include!(string.h>
voidfun(char*w,intm)
{charS,*pl,*p2;
p1=w;p2=w+m-;
while(pl<p2){s=*pl;*p1=*p2;*p2=s;pl++;p2-;}
}
main()
{chara[]="l23456";
fun(a,strlen(a));puts(a);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.654321
B.116611
C.161616
D.l23456
67.現(xiàn)有如下程序段:
則程序段的輸出結(jié)果為()。
A.7,8
B.8,8
C.7,10
D.8,10
68.
69.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
70.設(shè)有定義
71.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.0B.10C.20D.出錯
72.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
73.
74.以下程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.4D.8
75.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
76.
77.有以下程序段:
inti,n;
for(i=0;i<8;i++)
{n=rand()%5;
switch(n)
{casel:
case3:printf("%d\n",n);break;
case2:
case4:print?("%d\n",n);continue;
case():exit(0);
}
printf("%d\n",n);
}
以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。
A.for循環(huán)語句固定執(zhí)行8次
B.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時結(jié)束循環(huán)操作
C.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時不做任何操作
D.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時結(jié)束程序運(yùn)行
78.C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是()。
A.DoubleB.shortC.integerD.Char
79.在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是()。
A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個階段相同
80.若a是數(shù)值類型,則邏輯表達(dá)式(a==1)||(a!=1)的值是()。
A.0B.1C.2D.不知道a的值,不能確定
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求S的值。
例如,當(dāng)n為100時,函數(shù)的值應(yīng)為1.566893。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.請編一個函數(shù)voidproc(intttEM][N],intpp[N]),tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每行中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineM3#defineN4voidproc(intttrM3rN]。intpp[N]){ }voidmain{intstr[M][N]={{34,56,84,78},{23,84,93,12),{28,38,39,93}};intp[N],i,j,k;system("CLS");printf("Theriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",str[i][j]);printf("\n");}proc(str,p);printf("\nTheresultis:\n");for(k=0:k<M;k++)printf("%4d",p[k]);printf("n");}
參考答案
1.C解析:程序首先定義了兩個文件類型的指針fp1、fp2。為讀打開文件filel,并讓指針fp1指向該文件;為寫打開文件file2,并讓指針fp2指向該文件。循環(huán)執(zhí)行從文件file1中讀取一個字符,輸出到文件file2中,直到文件file1結(jié)束。因此程序的功能是將文件file1中的內(nèi)容復(fù)制到文件file2中。
2.A字符常量是使用單引號標(biāo)注的單個字符,選項(xiàng)A錯誤;選項(xiàng)B屬于浮點(diǎn)數(shù)常量,正確;選項(xiàng)C屬于轉(zhuǎn)義字符常量,正確;選項(xiàng)D屬于轉(zhuǎn)義字符,代表八進(jìn)制數(shù)011的ASCII值的字符,正確。本題答案為A選項(xiàng)。
3.C在C語言中,可以用一個標(biāo)識符來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:#define標(biāo)識符常量。
4.A在語句“for(;++a&&--b;)”中,for循環(huán)的表達(dá)式1和表達(dá)式3為缺省項(xiàng)。首先判斷條件表達(dá)式“b”。當(dāng)“a=-2,b=2”時,第1次執(zhí)行“++a”和“--b”,條件表達(dá)式為真,循環(huán)條件成立。第2次執(zhí)行“++a”為0,由于運(yùn)算符,當(dāng)?shù)?個條件為假時,不執(zhí)行第2個條件,因此“b=1”,發(fā)生短路,“--b”不再執(zhí)行。因此輸出的最終值為0,1。故本題答案為A選項(xiàng)。
5.A對下標(biāo)為偶數(shù)的元素進(jìn)行降序排序,下標(biāo)為奇數(shù)元素保持不變。
6.C解析:C語言中字符常量是以單引號括起來的單個字符,或以“\\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個字符。
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物標(biāo)志物在糖尿病衰弱早期篩查中的應(yīng)用
- 生物墨水的細(xì)胞外基質(zhì)模擬設(shè)計(jì)
- 生物打印技術(shù)在骨盆缺損修復(fù)中的臨床應(yīng)用
- 生活質(zhì)量評估指導(dǎo)下的宮頸癌個體化放化療方案
- 滴工程師面試常見問題及答案
- 地勤指揮員面試題集
- 電子商務(wù)平臺運(yùn)營經(jīng)理招聘面試題集
- 項(xiàng)目經(jīng)理專業(yè)面試題集與解答技巧
- 高級財(cái)務(wù)管理師面試題及解答指南
- 玫瑰痤瘡術(shù)后皮膚抗炎方案設(shè)計(jì)
- 護(hù)士長團(tuán)隊(duì)建設(shè)管理心得體會
- 客服業(yè)務(wù)外包服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 房屋中介述職報(bào)告
- DB15T 435-2020 公路風(fēng)吹雪雪害防治技術(shù)規(guī)程
- 備考2024四川省家庭教育指導(dǎo)師試題及答案三
- (正式版)CB∕T 4550-2024 船舶行業(yè)企業(yè)安全設(shè)備設(shè)施管理規(guī)定
- 全套管全回轉(zhuǎn)鉆機(jī)鉆孔咬合樁施工工藝
- 2024年春季學(xué)期中國文學(xué)基礎(chǔ)#期末綜合試卷-國開(XJ)-參考資料
- 軍隊(duì)物資工程服務(wù)采購產(chǎn)品分類目錄
- 《天文教學(xué)設(shè)計(jì)》教學(xué)設(shè)計(jì)
- 大學(xué)通用俄語1
評論
0/150
提交評論