版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運行后的輸出結果是()。A.0B.1C.2D.3
2.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序運行后的輸出結果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
3.在一個無向圖中,所有頂點的度數(shù)之和等于所有邊數(shù)的()倍。
A.2B.3C.1D.1.5
4.某二叉樹結點的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結點數(shù)目為()
A.3B.2C.4D.5
5.已知各變量的類型說明如下則以下符合C語言語法的表達式是()。A.a+=a-=(b=4)*(a=3)B.a=a*3=2C.x%(-3)D.y=f1oat(i)
6.設有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
7.檢查軟件產品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
8.一個遞歸算法必須包括()。
A.遞歸部分B.終止條件和遞歸部分C.迭代部分D.終止條件和迭代部分
9.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的運行結果是()。
A.輸出字符c的ASCII值B.程序出錯C.輸出字符cD.輸出字符a的ASCII值
10.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結果是
A.235B.0235C.02356D.2356
11.
12.
13.設無向圖G中有n個頂點e條邊,則其對應的鄰接表中的表頭結點和邊表接點的個數(shù)分別為()。
A.n,eB.e,nC.2n,eD.n,2e
14.
15.設a=l,b=2,c=3,d=4,則表達式:“a<b?a:b<b?a:c<d?a:d”的結果為()。A.4B.3C.2D.1
16.定義根節(jié)點深度為1,有n個元素的完全二叉樹的深度是()
A.D(n)=log2(n)
B.D(n)=1+log2(n)
C.D(n)=n+log2(n)
D.D(n)=1+n*log2(n)
17.有以下程序:#include<stdio.h>main(){intx=3,y=5,z1,z2;z1=y^x^y;z2=x^y^x;printf(“%d,%d\n”,z1,z2);}程序運行后的輸出結果是()。
A.7,7B.5,3C.8,8D.3,5
18.下列能正確定義且賦初值的語句是()。
A.intn1=n2=1;
B.charC=99;
C.floatf=f+1;
D.doublex=1.2E5.6;
19.以下不能正確進行字符串賦初值的語句是
A.charstr[5]="good!";
B.charstr[]="good!";
C.char*srt="good!";
D.charstr[5]={'g','o','o','d'};
20.下列程序的輸出結果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
二、2.填空題(20題)21.以下程序運行后的輸出結果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
22.執(zhí)行以下程序后的輸出結果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
23.在樹形結構中,沒有前件的結點是()。
24.在面向對象方法中,【】描述的是具有相似屬性與操作的一組對象。
25.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。
26.設有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
27.下列程序的運行結果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
28.以下程序運行后的輸出結果是【】。
#include<string.h>
cbar*ss(char*s)
{char*p,t;
p=s+1;t=*s;
while(-p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
29.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n-->1)
for(i=0;i<n;i++)
if(str[i]<str[i+l])
{temp=【】;
str[i]=str[i+l];
【】=temp;
}
printf(【】);
}
30.函數(shù)rewind的作用是
31.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."??瞻滋幮枰钊氲膬热菔?/p>
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case′y′:
case′Y′:printf("\nThisisYES.\n");
case′n′:
case′N′:printf("\nThisisNO.\n");}
main()
{charch;
printf("\nEnterachary,Yorn,N:");
ch=【】;
printf("ch;%c",ch);
YesNo(ch);}
32.下列程序的循環(huán)次數(shù)是______。
x=2;
do
{x=x*x;}
while(!x);
33.若a=1,b=2,則表達式!(x=A)‖(y=B)&&0的值是______。
34.以下程序的運行結果是【】。
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
35.執(zhí)行以下程序段后,s的值為【】。
staticcharch[]="600";
inta,s=0;
for(a=0;ch[a]>='0'&&ch[a]<='9';a++)
s=10*s+ch[a]-'0';
36.若有以下程序:
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,c);
}
執(zhí)行后的輸出結果是【】。
37.數(shù)據(jù)結構分為邏輯結構與存儲結構,帶鏈的棧屬于【】。
38.若變量x、y已定義為int類型且X的值為33,y的值為3,請將輸出語句printf((),x/y);補充完整,使其輸出的計算結果形式為:x/y=11。
39.以下程序的運行結果是()。#defineA4#defineB(x)A*x/2main(){floatc,a=8.0;c=B(A;printf("%f\n",C);}
40.以下程序運行后的輸出結果是______。
main()
{inta=1,b=2,c=3;
if(c=A)printf("%d\n",C);
elseprintf("%d\n",B);
}
三、1.選擇題(20題)41.概要設計是軟件系統(tǒng)結構的總體設計,不屬于概要設計的是
A.把軟件劃分成模塊B.確定模塊之間的調用關系C.確定各個模塊的功能D.設計每個模塊的偽代碼
42.數(shù)據(jù)的完整性是指數(shù)的正確性、有效性和______。
A.可維護性B.獨立性C.安全性D.相容性
43.在面向對象設計中,對象有很多基本特點,其中“從外面看只能看到對象的外部特性,而對象的內部對外是不可見的”這一性質指的是對象的
A.分類性B.標識惟一性C.多態(tài)性D.封裝性
44.設已執(zhí)行預編譯命令#include<string.h>,以下程序段的輸出結果是
chars[]="anapple";
printf("%d\n",strlen(s));
A.7B.8C.9D.10
45.下列程序的運行結果為()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a')str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]%s",str);}
A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab
46.下列選項可以正確表示字符型常量的是
A.'\r'B.aC.\897D.296
47.有以下程序main(){inta[][3]=({1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[l][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n".a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結果是
A.7B.6C.8D.無確定值
48.假定有以下變量定義,則能使值為3的表達式是______。intk=7,x=12;
A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
49.有以下程序:#include<stdio.h>intfun(chars[]){intn=0;while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;}return(n);}main(){chars[10]={'6','1','*','4','*','9','*','0','*'};printf("%d\n",fun(s));}程序的運行結果是()。
A.9B.61490C.61D.5
50.下列程序的輸出結果是_____。intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%\d\n",r);}
A.12B.13C.14D.15
51.設a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式是______。
A.'a'&&'b'
B.a<=b
C.a||+c&&b-c
D.!((a<b)&&!c||1)
52.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
53.若有定義inta[10],*p=a,則p+6表示()。
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
54.在C語言中,函數(shù)調用時()。
A.實參和形參各占獨立的存儲單元
B.實參和形參共用存儲單元
C.由系統(tǒng)自動確定實參和形參是否共用存儲單元
D.由用戶指定實參和形參是否共用存儲單元
55.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運行后,文件t1.dat中的內容是
A.startB.endC.startendD.endrt
56.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。
A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值
57.一些重要的程序語言(如C語言和Pascal語言)允許過程的遞歸調用。而實現(xiàn)遞歸調用中的存儲分配通常用()。A.A.棧B.堆C.數(shù)組D.鏈表
58.下列循環(huán)體的執(zhí)行次數(shù)是()。#include<stdio.h>main(){inti,j;for(i=0j=1;i<j+1;i+=1,j--)printf("%d\n",j);}
A.3B.2C.1D.0
59.設樹T的度為4,其中度為1、2、3、4的結點的個數(shù)分別為4、2、1、1,則T中的葉點為______。
A.5B.6C.7D.8
60.下述關于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
四、選擇題(20題)61.以下程序的輸出結果是()。
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i<n;i=i+2)s=s+b[i];
returns;
}
voidmain()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}A.A.10
B.18
C.8
D.15
62.有以下程序:
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);
}
程序運行后的輸出結果是()。
A.1B.2C.3D.4
63.當變量c的值不為2、4、6時,值也為”真”的表達式是()。
A.
B.
C.
D.
64.設有定義:
65.在深度為5的滿二叉樹中,葉子結點的個數(shù)為A.32B.31C.16D.15
66.以下敘述中正確的是()。
A.C語句必須在一行內寫完
B.C程序中的每一行只能寫一條語句
C.C語言程序中的注釋必須與語句寫在同一行
D.簡單C語句必須以分號結束
67.
68.
69.在軟件開發(fā)中,需求分析階段產生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細設計說明書C.用戶手冊D.軟件需求規(guī)格說明書
70.
71.下列敘述中正確的是()。
A.break語句只能用于switch語句體中
B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語句只能用在循環(huán)體內和switch語句體內
D.在循環(huán)體內使用break語句和continue語句的作用相同
72.
73.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應填入的是()。
A.i-1B.iC.i+1D.4一i
74.
75.以下符號C語言語法的實型常量是()。
A)1.2E0.5B)3.14159E
C)5E-3D)E15
76.
77.下列合法的聲明語句是()。
A.intabc=50;
B.doubleint=3+5e2.5;
C.longdo=1L;
D.float3asd=3e一3;
78.
79.設有以下函數(shù):
voidfun(intn,char*s){…}
則下面對函數(shù)指針的定義和賦值均正確的是()。
A.void(*pf)();pf=fun;
B.void*pf();pf=fun
C.void*pf();*pf=fun;
D.void(*pf)(int,char);pf=&fun;
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將m(1≤m≤10)個字符串反著連接起來,組成一個新串,放入pt所指字符串中,例如,把“ab、cd、ef9”3個字符串反著串連起來,結果是efgcdab。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數(shù),不得增行或者刪行,也不得改變程序的結構!
試題程序:
六、程序設計題(1題)82.請編寫一個函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。例如,若傳給m的值為70,則程序輸出:7111421222833354244495556636670注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineN100voidproc(intm,int*a,int*n){ }voidmain{intarr[N],n,k;system("CLS");proc(70,arr,&n);for(k=0;k<n;k++)if((k+1)%20==0)//每行輸出20個數(shù){printf("%4d",arr[k]);printf("\n");}elseprintf("%4d",arr[k]);printf("\n");}
參考答案
1.D
2.C本題輸出兩個結果,第一個是求字符串的長度。第二個是輸出的字符串,數(shù)組的下標是從0開始的,所以當str取1的時候,應為“One*Dream!”。
3.A
4.C
5.A
6.A
7.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發(fā)設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎上,根據(jù)模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現(xiàn)與接口有關的問題。集成測試可以發(fā)現(xiàn)概要設計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設和網絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
8.B
9.B在C語言中,數(shù)組名類似于一個指向數(shù)組首地址的指針常量,一旦定義就不能修改其內容。所以本題中的“s+=2;”語句讓數(shù)組名S的內容加2是錯誤的,編譯無法通過。故本題答案為B選項。
10.A解析:因為變量的初始值分別為“k=5,n=0”,所以程序第一次進入循環(huán)時,執(zhí)行default語句,這時k=4,執(zhí)行'case4:”這個分支,結果是“n=2,k=3”,打印出2;然后程序進行第二次循環(huán),這時“n=2,k=3”,執(zhí)行'case3:”這個分支,結果是“n=3,k=2”,打印出3;程序進行第三次循環(huán),這時“n=3,k=2”,執(zhí)行“case2:case4:”這兩個分支,結果是“n=5,k=1”,打印出5,這時因為n=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運行結束,故輸出結果為235。
11.A
12.A
13.A
14.B
15.D在三目運算符中,優(yōu)先級相同,按從右到左的結合性計算,a<b?a:(c<d?a:d)c<d成立所以取值a,同理可得,選擇D選項
16.B
17.D是按位異或運算,其功能是參與運算的兩個數(shù),按位異或,如果兩個相應位相同,結果為0,否則為1。接位異或運算滿足如下規(guī)則:①滿足交換律;②一個數(shù)與0異或的結果仍是原數(shù);③一個數(shù)與1異或的結果是原數(shù)按位取反。所以題干中,“y^x^y”等價于等價于“y^y^x”,等價于“0^x”,等價于x,即“z1=x”;“x^y^x”等價于“x^x^y”,等價于“0^y”,等價于y,即“z2=y”,輸出結果為:3,5。故本題答案為D選項。
18.B在c語言規(guī)定中,可以在定義變量的同時給變量賦初值,選項A中n2沒有定義;選項C中不能在賦值表達式的右邊出現(xiàn)變量本身,選項D中字母E后面的數(shù)應該為整數(shù),所以不對。
19.A解析:本題考核的知識點是字符數(shù)組和字符指針變量的初始化。選項A定義了一個字符數(shù)組str,具有5個元素,但賦初值的時候,初值個數(shù)卻是6個(有一個'\\0'),故選項A錯誤的;選項B定義了一個字符數(shù)組str并給它賦初值,由于省去了長度定義,長度由初值個數(shù)確定,相當于str[6],選項B正確;選項C定義了一個字符型指針變量并用一個字符串給它賦初值,使該字符型指針指向了該字符串,選項C正確;選項D是對字符型數(shù)組中單個元素依次賦初值,選項D正確。所以,4個選項中A為所選。
20.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b成立,執(zhí)行下列的復合語句,得c=a*b=20,b、a的值不變。
21.6262解析:本題考查的是宏定義。帶參數(shù)的宏定義是按#indefine命令行中指定的字符串從左到右進行轉換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。
22.a=14a=14解析:逗號表達式的值是以逗號分隔的最后一個表達式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結果是a=14。
23.根結點根結點
24.類類解析:在面向對象方法中,類描述的是具有相似屬性與操作的一組對象。
25.邊值分析法邊值分析法解析:本題考查了黑箱測試的方法。黑箱測試方法完全不考慮程序的內部結構和內部特征,而只是根據(jù)程序功能導出測試用例。常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法。
26.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
27.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。
“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結果;若表達式1的值為0,則計算表達式3的值,且為最終結果。
本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。
28.bcdefghabcdefgha解析:while循環(huán)的功能把字符從第二個元素開始左移一位,并將原第一個元素賦給最后一個元素。
29.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實過程是將相鄰兩個字符進行比較,如果當前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第—空應填:str[i],第二空應填str[i+1]最終打印輸出得到的字符串str,所以第三空應填'%s',str。
30.A
31.getchargetchar解析:考查了字符可以作為整型變量來對待,參與操作。題中要求根據(jù)輸入的字符調用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結構來比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來實現(xiàn)的。
32.11解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán);do…while語句的特點是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。
33.00解析:根據(jù)運算符的運算順序可知,該表達式最后運算的是與(&&)運算,而任何表達式與“0”進行“與”運算,結果都為0。
34.99解析:本題考查宏定義與三目運算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個表達式的值,否則為b+1的值為整個表達式的值,(應注意后面的加1)。
35.600600解析:程序中for循環(huán)的條件是當前字符大于或等于字符\'0\'且小于或等于字符\'9\'的ASCII碼值,則s=10*s+ch[a]-\'0\'。計算結果是將字符串'600'轉換為整型數(shù)600。
36.503503解析:本題考查的是C語言中if語句的語句體。第一個if語句的語句體為t=a,第二個if語句的語句體為t=a。執(zhí)行第一個if語句時,條件a<b不成立,所以不執(zhí)行t=a,直接執(zhí)行語句a=b和b=t得a=3、b=0,然后判斷第二個if語句的條件a<c是否成立,即判斷3<5是否成立,顯然條件成立,執(zhí)行語句t=a得t=3,接著執(zhí)行a=c;c=t得a=5、c=3,所以a=5、c=3、b=0。
37.存儲結構存儲結構解析:帶鏈的棧屬于棧的鏈式存儲結構。
38.x/y=%dx/y=%d解析:本題考查prinff語句的輸出格式。printf()函數(shù)是格式化輸出函數(shù),一般用于向標準輸出設備按規(guī)定格式輸出信息。在編寫程序時經常會用到此函數(shù)。printf()函數(shù)的調用格式為:printf('<格式化字符串>”,<參最表>)其中,格式化字符串包括兩部分內容。一部分足正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開始,后跟一個或幾個規(guī)定字符,用來確定輸出內容格式。參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用“,”分開,且順序一一
39.16.0
40.11解析:本題是一個陷阱題。在if語句的判斷表達式中,使用的不是邏輯運算符==而是賦值運算符=,使該表達式返回的結果正好相反。如果是c==a,則結果為假。但是c=a則是將a賦給c,且表達式的結果是賦值之后的c的值,因此結果為1是真.故最后輸出c的值1。
41.D解析:概要設計是數(shù)據(jù)庫的總體設計,其目的就是要按照需求規(guī)格說明書把軟件按照功能劃分為多個模塊,然后確定每個模塊要實現(xiàn)的功能,最后確定模塊之間的調用關系,而設計每個模塊的偽代碼則屬于詳細設計。
42.D解析:數(shù)據(jù)模型的完整性規(guī)則是始定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)及其狀態(tài)的變化,以保證數(shù)據(jù)的正確性、有效性和相容性。
43.D解析:從外面看只能看到對象的外部特性,而對象的內部,即處理能力的實行和內部狀態(tài),指的是對象的封裝性。
44.B解析:考查了測字符串長度函數(shù)strlen。如果一個字符數(shù)組中存放一個字符串,則函數(shù)strlen的值為'\\0'之前的全部字符個數(shù),也包括空格在內。
45.A解析:本題考查函數(shù)調用時的參數(shù)傳遞。通過函數(shù)abc的執(zhí)行,將字符串中的字母a去掉,保留剩下的。由于是通過指針調用,所以改變字符串的結果。
46.A解析:C語言中,一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號括起來作為字符常量,字符常量的范圍是0~127。由于字符常量用單引號括起來,所以選項B),C)錯誤,選項D)超過了字符常量的表示范圍。
47.A解析:本題定義了一個指向由3個元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[i][j]。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa[1][1]=pa[1][1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故printf語句輸入的值為2+4+1=7。所以,A選項為所選。
48.D解析:選項A,(k%=5)=2,(x%=2)=0;選項B,(k-k%5)=7-2=5,(x%=5)=2:選項C,(k%5)=2,k-2=7-2=5,(x%5)=2;選項D,(x%=7)=5,(k%=5)=2,5-2=3。
49.C解析:題目fun()函數(shù)中while循環(huán)的意思是:判斷s所指內容是否為數(shù)字字符,如果是數(shù)字字符,則計算表達式n=10*n+*s-'0';。其中*s-'0'的作用是將相應的數(shù)字字符轉換為數(shù)值,例如字符'8'減去字符'0'后,得到的結果就是數(shù)值8了。n=10*n+的作用是將累計變量n中原來內容乘以10,然后再加上剛轉換的數(shù)字字符的數(shù)值,例如原來n的值為1,*s現(xiàn)在的內容為'2',那么執(zhí)行了n=10*n+*s-'0';語句后,n的值變?yōu)?2,如果接下來再來一個'8'字符,執(zhí)行n=10*n+*s-'O';語句后,n的值就是128了。故不難看出fun()函數(shù)的作用是“將數(shù)字字符串轉換為相應的十進制數(shù)值,碰到非數(shù)字字符時結束”。從主函數(shù)中定義的字符數(shù)組s的初始化內容可以看出,fun()函數(shù)返回值應該是61。故應該選擇C。
50.D
51.D解析:選項A:'a'&&'b'是字符a與b的相與,不為0:選項B:a<=b,由題中變量賦值可知,結果為1。選項C:a||+c&&b-c,結果為1;選項D:!((a<B)&&!c||1),運算結果為0。
52.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設計的常用工具,不是需求分析的工具。
53.C解析:指針中存放的是變量的地址,指針也可以進行加減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中p+6指的是將指針向后移動了6個存儲單元,指向a[6],存放的是a[6]的地址。
54.A解析:本題考查函數(shù)調用時的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時由用戶定義的形式上的變量,實參是函數(shù)調用時,主調函數(shù)為被調函數(shù)提供的原始數(shù)據(jù)。
在函數(shù)調用時,實參和其所對應的形參分別占用不同的存儲單元,彼此之間不影響。
55.B解析:本題主要考查的是打開文件函數(shù)fopen().題目開始定義了一個函數(shù),該函數(shù)有兩個字符指針型參數(shù),其作用分別用來傳入文件名和文件內容。函數(shù)首先定義一個文件指針印,然后使用fopen()函數(shù)打開參數(shù)fn所指定的文件。本題的關鍵就在于fopen()函數(shù)的第2個參數(shù),這個參數(shù)指定了文件打開的方式。'w'表示為寫而打開一個文本文件,如果文件不存在,則新建一個文件,否則將清空原有文件。接下來函數(shù)使用fputs()函數(shù)將參數(shù)str中的內容寫入文件,最后調用fclose()函數(shù)關閉文件。在主函數(shù)中兩次調用該函數(shù),但寫入的是同一個文件,故只有最后一次寫入有效。所以應該選擇B。
56.B解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。
57.A解析:一些較流行的程序語言允許過程的遞歸調用。遞歸調用就是過程調用本身。遞歸實現(xiàn)的是:當過程每一次執(zhí)行后,都能返回到最近一次調用它的過程中。這樣各調用點之間形成一種后進先出關系,而棧結構正適合來存儲這些調用點。選項A正確。
58.C解析:本題考查for循環(huán)。第一次循環(huán)前先判斷循環(huán)條件,此時i=0,j=1,i<j+1成立,循環(huán)第一次;第二次循環(huán)前先判斷循環(huán)條件,此時i=1,j=0,(j--是先使用j的值再減1),i<j+1不成立,結束循環(huán)。
59.D解析:設樹中度為0、1、2、3、4的結點個數(shù)各為n0、n1、n2、n3、n4,T中的結點個數(shù)為n,則n=n0+n1+n2+n3+n4。在樹中,除了根結點,其余結點都有分支進入,由于這些分支由度1、2、3、4的結點射出,所以n=1*n1+2*n2+3*n3+4*n4+1,得n0=n2+2n3+3n4+1。
60.A解析:數(shù)據(jù)庫是一個通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨立性,而且能并發(fā)地為多個應用服務,同時具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結構化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對數(shù)據(jù)的存取方式,選項C錯誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點,選項D錯誤。本題正確答案是A。
61.A函數(shù)的功能是對數(shù)組某一區(qū)域內的元素隔個求和;a[3]=4,所以從4開始進行隔個求和,a[7]=8,即對4到8的元素隔個求和,4+6=10。
62.Aa=15,a%3=0,執(zhí)行case0語句標號,m++編程1,break;退出結構,所以m的值為1.
63.B滿足表達式,(C>=2&&c<=6)的整型變量C的值是2,3,4,5,6。當變量C的值不為2,4,6時,其值只能為3或5,所以表達式C!=3和C!=5中至少有一個為真,即不論C為何值,表達式B)都為”真”。
64.A本題考查了格式化輸人函數(shù)searlf()的運用。scan“)函數(shù)的一般形式為:scanf《格式控制,地址表列)c其中,
“格式控制”是用雙引號括起來的字符串,也稱‘轉換控制字符串”.它包括兩種信息:①格式說明,由“%”和格式字符組成;
②普通字符,即需要原樣輸入的字符。
地址表列”是需要接收輸入數(shù)據(jù)的一系列變量的地址。本題中的“格式控制’’是“%2d%f”,其中%2d的意思是要輸入一一個整數(shù),但該整數(shù)最寬只占='個字符,而%堤要輸入一個浮點數(shù)。而題目要求輸入的是876和543.0.所以scan“)函數(shù)將87賦給a,6賦給b.
65.C2(n-1)
=2(5-1)=16
66.DC語句可以跨行來寫,但是必須以分號結束,所以A選項錯誤。c程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行也可以不放在一行,所以C選項錯誤。
67.C
68.B
69.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審四個方面。所以選擇D。
70.A
71.C解析:只能在循環(huán)體內和switch語句體內使用break語句。當break出現(xiàn)在循環(huán)體的switch語句體內時,其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設置break語句,滿足某種條件,則跳出本層循環(huán)體。
72.B
73.B
\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標相同,所以j=i。
\n
74.B
75.C指數(shù)不能為小數(shù),也不能沒有指數(shù),即可以為0,用指數(shù)的形式表示時,不能沒有前面的小數(shù)。
76.A
77.A標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。B選項int不是表達變量類型的標識符,它不能再用做變量名和函數(shù)名。C選項do是C語言的一個關鍵字。D選項標識符只能以字母或下劃線開始。
78.C
79.A\n函數(shù)指針的定義格式為函數(shù)類型(*指針變量名)(形參列表);函數(shù)名和數(shù)組名一樣代表了函數(shù)代碼的首地址,因此在賦值時,直接將函數(shù)指針指向函數(shù)名就行了。所以選項A正確。
\n
80.A
81.(1)錯誤:for(k=-m;k>0;k——)
正確:for(k=m-1;k>=0;k——)
(2)錯誤:pt=j;
正確:pt-=j;
82.voidproc(intm,int*a,int*n){inti,j=0;for(i=1;i<=m;i++)//進行m次循環(huán)if(i%7==0||i%11==0)//能被7或11整除的所有整數(shù)a[j++]=i;//符合條件的數(shù)放在數(shù)組a中*n=j;//返回這些數(shù)的個數(shù)}【解析】本題需要先判斷1~m每一個整數(shù)能否被7或11整除,然后將符合條件的整數(shù)放在數(shù)組a中,最后將符合條件的數(shù)的個數(shù)通過形參n返回主函數(shù)。2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運行后的輸出結果是()。A.0B.1C.2D.3
2.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序運行后的輸出結果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
3.在一個無向圖中,所有頂點的度數(shù)之和等于所有邊數(shù)的()倍。
A.2B.3C.1D.1.5
4.某二叉樹結點的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結點數(shù)目為()
A.3B.2C.4D.5
5.已知各變量的類型說明如下則以下符合C語言語法的表達式是()。A.a+=a-=(b=4)*(a=3)B.a=a*3=2C.x%(-3)D.y=f1oat(i)
6.設有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
7.檢查軟件產品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
8.一個遞歸算法必須包括()。
A.遞歸部分B.終止條件和遞歸部分C.迭代部分D.終止條件和迭代部分
9.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的運行結果是()。
A.輸出字符c的ASCII值B.程序出錯C.輸出字符cD.輸出字符a的ASCII值
10.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結果是
A.235B.0235C.02356D.2356
11.
12.
13.設無向圖G中有n個頂點e條邊,則其對應的鄰接表中的表頭結點和邊表接點的個數(shù)分別為()。
A.n,eB.e,nC.2n,eD.n,2e
14.
15.設a=l,b=2,c=3,d=4,則表達式:“a<b?a:b<b?a:c<d?a:d”的結果為()。A.4B.3C.2D.1
16.定義根節(jié)點深度為1,有n個元素的完全二叉樹的深度是()
A.D(n)=log2(n)
B.D(n)=1+log2(n)
C.D(n)=n+log2(n)
D.D(n)=1+n*log2(n)
17.有以下程序:#include<stdio.h>main(){intx=3,y=5,z1,z2;z1=y^x^y;z2=x^y^x;printf(“%d,%d\n”,z1,z2);}程序運行后的輸出結果是()。
A.7,7B.5,3C.8,8D.3,5
18.下列能正確定義且賦初值的語句是()。
A.intn1=n2=1;
B.charC=99;
C.floatf=f+1;
D.doublex=1.2E5.6;
19.以下不能正確進行字符串賦初值的語句是
A.charstr[5]="good!";
B.charstr[]="good!";
C.char*srt="good!";
D.charstr[5]={'g','o','o','d'};
20.下列程序的輸出結果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
二、2.填空題(20題)21.以下程序運行后的輸出結果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
22.執(zhí)行以下程序后的輸出結果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
23.在樹形結構中,沒有前件的結點是()。
24.在面向對象方法中,【】描述的是具有相似屬性與操作的一組對象。
25.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。
26.設有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
27.下列程序的運行結果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
28.以下程序運行后的輸出結果是【】。
#include<string.h>
cbar*ss(char*s)
{char*p,t;
p=s+1;t=*s;
while(-p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
29.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n-->1)
for(i=0;i<n;i++)
if(str[i]<str[i+l])
{temp=【】;
str[i]=str[i+l];
【】=temp;
}
printf(【】);
}
30.函數(shù)rewind的作用是
31.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."??瞻滋幮枰钊氲膬热菔?/p>
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case′y′:
case′Y′:printf("\nThisisYES.\n");
case′n′:
case′N′:printf("\nThisisNO.\n");}
main()
{charch;
printf("\nEnterachary,Yorn,N:");
ch=【】;
printf("ch;%c",ch);
YesNo(ch);}
32.下列程序的循環(huán)次數(shù)是______。
x=2;
do
{x=x*x;}
while(!x);
33.若a=1,b=2,則表達式!(x=A)‖(y=B)&&0的值是______。
34.以下程序的運行結果是【】。
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
35.執(zhí)行以下程序段后,s的值為【】。
staticcharch[]="600";
inta,s=0;
for(a=0;ch[a]>='0'&&ch[a]<='9';a++)
s=10*s+ch[a]-'0';
36.若有以下程序:
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,c);
}
執(zhí)行后的輸出結果是【】。
37.數(shù)據(jù)結構分為邏輯結構與存儲結構,帶鏈的棧屬于【】。
38.若變量x、y已定義為int類型且X的值為33,y的值為3,請將輸出語句printf((),x/y);補充完整,使其輸出的計算結果形式為:x/y=11。
39.以下程序的運行結果是()。#defineA4#defineB(x)A*x/2main(){floatc,a=8.0;c=B(A;printf("%f\n",C);}
40.以下程序運行后的輸出結果是______。
main()
{inta=1,b=2,c=3;
if(c=A)printf("%d\n",C);
elseprintf("%d\n",B);
}
三、1.選擇題(20題)41.概要設計是軟件系統(tǒng)結構的總體設計,不屬于概要設計的是
A.把軟件劃分成模塊B.確定模塊之間的調用關系C.確定各個模塊的功能D.設計每個模塊的偽代碼
42.數(shù)據(jù)的完整性是指數(shù)的正確性、有效性和______。
A.可維護性B.獨立性C.安全性D.相容性
43.在面向對象設計中,對象有很多基本特點,其中“從外面看只能看到對象的外部特性,而對象的內部對外是不可見的”這一性質指的是對象的
A.分類性B.標識惟一性C.多態(tài)性D.封裝性
44.設已執(zhí)行預編譯命令#include<string.h>,以下程序段的輸出結果是
chars[]="anapple";
printf("%d\n",strlen(s));
A.7B.8C.9D.10
45.下列程序的運行結果為()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a')str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]%s",str);}
A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab
46.下列選項可以正確表示字符型常量的是
A.'\r'B.aC.\897D.296
47.有以下程序main(){inta[][3]=({1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[l][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n".a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結果是
A.7B.6C.8D.無確定值
48.假定有以下變量定義,則能使值為3的表達式是______。intk=7,x=12;
A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
49.有以下程序:#include<stdio.h>intfun(chars[]){intn=0;while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;}return(n);}main(){chars[10]={'6','1','*','4','*','9','*','0','*'};printf("%d\n",fun(s));}程序的運行結果是()。
A.9B.61490C.61D.5
50.下列程序的輸出結果是_____。intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%\d\n",r);}
A.12B.13C.14D.15
51.設a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式是______。
A.'a'&&'b'
B.a<=b
C.a||+c&&b-c
D.!((a<b)&&!c||1)
52.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
53.若有定義inta[10],*p=a,則p+6表示()。
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
54.在C語言中,函數(shù)調用時()。
A.實參和形參各占獨立的存儲單元
B.實參和形參共用存儲單元
C.由系統(tǒng)自動確定實參和形參是否共用存儲單元
D.由用戶指定實參和形參是否共用存儲單元
55.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運行后,文件t1.dat中的內容是
A.startB.endC.startendD.endrt
56.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。
A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值
57.一些重要的程序語言(如C語言和Pascal語言)允許過程的遞歸調用。而實現(xiàn)遞歸調用中的存儲分配通常用()。A.A.棧B.堆C.數(shù)組D.鏈表
58.下列循環(huán)體的執(zhí)行次數(shù)是()。#include<stdio.h>main(){inti,j;for(i=0j=1;i<j+1;i+=1,j--)printf("%d\n",j);}
A.3B.2C.1D.0
59.設樹T的度為4,其中度為1、2、3、4的結點的個數(shù)分別為4、2、1、1,則T中的葉點為______。
A.5B.6C.7D.8
60.下述關于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
四、選擇題(20題)61.以下程序的輸出結果是()。
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i<n;i=i+2)s=s+b[i];
returns;
}
voidmain()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}A.A.10
B.18
C.8
D.15
62.有以下程序:
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);
}
程序運行后的輸出結果是()。
A.1B.2C.3D.4
63.當變量c的值不為2、4、6時,值也為”真”的表達式是()。
A.
B.
C.
D.
64.設有定義:
65.在深度為5的滿二叉樹中,葉子結點的個數(shù)為A.32B.31C.16D.15
66.以下敘述中正確的是()。
A.C語句必須在一行內寫完
B.C程序中的每一行只能寫一條語句
C.C語言程序中的注釋必須與語句寫在同一行
D.簡單C語句必須以分號結束
67.
68.
69.在軟件開發(fā)中,需求分析階段產生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細設計說明書C.用戶手冊D.軟件需求規(guī)格說明書
70.
71.下列敘述中正確的是()。
A.break語句只能用于switch語句體中
B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語句只能用在循環(huán)體內和switch語句體內
D.在循環(huán)體內使用break語句和continue語句的作用相同
72.
73.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應填入的是()。
A.i-1B.iC.i+1D.4一i
74.
75.以下符號C語言語法的實型常量是()。
A)1.2E0.5B)3.14159E
C)5E-3D)E15
76.
77.下列合法的聲明語句是()。
A.intabc=50;
B.doubleint=3+5e2.5;
C.longdo=1L;
D.float3asd=3e一3;
78.
79.設有以下函數(shù):
voidfun(intn,char*s){…}
則下面對函數(shù)指針的定義和賦值均正確的是()。
A.void(*pf)();pf=fun;
B.void*pf();pf=fun
C.void*pf();*pf=fun;
D.void(*pf)(int,char);pf=&fun;
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將m(1≤m≤10)個字符串反著連接起來,組成一個新串,放入pt所指字符串中,例如,把“ab、cd、ef9”3個字符串反著串連起來,結果是efgcdab。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數(shù),不得增行或者刪行,也不得改變程序的結構!
試題程序:
六、程序設計題(1題)82.請編寫一個函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。例如,若傳給m的值為70,則程序輸出:7111421222833354244495556636670注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineN100voidproc(intm,int*a,int*n){ }voidmain{intarr[N],n,k;system("CLS");proc(70,arr,&n);for(k=0;k<n;k++)if((k+1)%20==0)//每行輸出20個數(shù){printf("%4d",arr[k]);printf("\n");}elseprintf("%4d",arr[k]);printf("\n");}
參考答案
1.D
2.C本題輸出兩個結果,第一個是求字符串的長度。第二個是輸出的字符串,數(shù)組的下標是從0開始的,所以當str取1的時候,應為“One*Dream!”。
3.A
4.C
5.A
6.A
7.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發(fā)設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎上,根據(jù)模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現(xiàn)與接口有關的問題。集成測試可以發(fā)現(xiàn)概要設計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設和網絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
8.B
9.B在C語言中,數(shù)組名類似于一個指向數(shù)組首地址的指針常量,一旦定義就不能修改其內容。所以本題中的“s+=2;”語句讓數(shù)組名S的內容加2是錯誤的,編譯無法通過。故本題答案為B選項。
10.A解析:因為變量的初始值分別為“k=5,n=0”,所以程序第一次進入循環(huán)時,執(zhí)行default語句,這時k=4,執(zhí)行'case4:”這個分支,結果是“n=2,k=3”,打印出2;然后程序進行第二次循環(huán),這時“n=2,k=3”,執(zhí)行'case3:”這個分支,結果是“n=3,k=2”,打印出3;程序進行第三次循環(huán),這時“n=3,k=2”,執(zhí)行“case2:case4:”這兩個分支,結果是“n=5,k=1”,打印出5,這時因為n=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運行結束,故輸出結果為235。
11.A
12.A
13.A
14.B
15.D在三目運算符中,優(yōu)先級相同,按從右到左的結合性計算,a<b?a:(c<d?a:d)c<d成立所以取值a,同理可得,選擇D選項
16.B
17.D是按位異或運算,其功能是參與運算的兩個數(shù),按位異或,如果兩個相應位相同,結果為0,否則為1。接位異或運算滿足如下規(guī)則:①滿足交換律;②一個數(shù)與0異或的結果仍是原數(shù);③一個數(shù)與1異或的結果是原數(shù)按位取反。所以題干中,“y^x^y”等價于等價于“y^y^x”,等價于“0^x”,等價于x,即“z1=x”;“x^y^x”等價于“x^x^y”,等價于“0^y”,等價于y,即“z2=y”,輸出結果為:3,5。故本題答案為D選項。
18.B在c語言規(guī)定中,可以在定義變量的同時給變量賦初值,選項A中n2沒有定義;選項C中不能在賦值表達式的右邊出現(xiàn)變量本身,選項D中字母E后面的數(shù)應該為整數(shù),所以不對。
19.A解析:本題考核的知識點是字符數(shù)組和字符指針變
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《分餾系統(tǒng)》課件
- 《媽媽的賬單課堂》課件
- 小學一年級20以內100道口算題
- 電工安全培訓資料(5篇)
- 石榴籽一家親民族團結心連心心得體會5篇
- 小學數(shù)學一二年級100以內連加連減口算題
- 《用戶畫像業(yè)務討論》課件
- 小學數(shù)學三年級下冊《小數(shù)點加減法》口算練習題
- 《刑事訴訟法學教學》課件
- 小學三年級數(shù)學三位數(shù)加減法練習題-可直接打印
- DB11T 1805-2020 實驗動物 病理學診斷規(guī)范
- 2024廣東省廣州市天河區(qū)中考一模語文試題含答案解析
- 中國移動-AI+智慧城市安全解決方案白皮書2024
- 前臺文員的工作靈活性與適應能力計劃
- 2024版【人教精通版】小學英語六年級下冊全冊教案
- 人教版歷史2024年第二學期期末考試七年級歷史試卷(含答案)
- 2024年秋八年級歷史上冊 第24課 人民解放戰(zhàn)爭的勝利教案 新人教版
- 預算法及實施條例測試題(含答案)
- 提高護士應用PDA落實患者身份識別準確率 2
- 游戲產品自行審核工作報告
- 1.1 我與社會 課件-2024-2025學年道德與法治八年級上冊(統(tǒng)編版2024)
評論
0/150
提交評論