版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021年黑龍江省綏化市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的輸出結果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8
2.
3.樹最適合用來表示()。
A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)
4.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。
A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度
5.線性表是具有n個()的有限序列。
A.表元素B.字符C.數(shù)據(jù)元素D.數(shù)據(jù)項
6.
7.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十進制代碼為97,則執(zhí)行上述程序段后輸出結果是()。A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
8.一個遞歸的定義可以用遞歸過程求解,也可以用非遞歸過程求解,但單從運行時間來看,通常遞歸過程比非遞歸過程()。
A.較快B.較慢C.相同D.無法確定
9.設S為一個長度為n的字符串,其中的字符各不相同,則S中的互異的非平凡子串(非空且不同于S本身)的個數(shù)為()。
A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1
10.對于移動平均算法,是計算某變量之前n個數(shù)值的算術平均,正確的說法是()
A.空間復雜度是O(1)B.空間復雜度是O(n)C.空間復雜度是O(logn)D.空間復雜度是O(nlogn)
11.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
12.C語言提供的合法關鍵字是()
A.switchB.cherC.caseD.default
13.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值
14.定義結構體數(shù)組:structstu{intnum;charnameE20];}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的輸出結果為()。A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I
15.以下程序的輸出結果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
16.下列關于邏輯運算符兩側運算對象的敘述中正確的是()。
A.只能是整數(shù)0或1B.只能是整數(shù)0或非0整數(shù)C.可以是結構體類型的數(shù)據(jù)D.可以是任意合法的表達式
17.下列敘述中錯誤的是()。
A.可以用typedef將已存在的類型用一個新的名字來代表
B.可以通過typedef增加新的類型
C.用typedef定義新的類型名后,原有類型名仍有效
D.用typedef可以為各種類型起別名,但不能為變量起別名
18.
19.下列不屬于C語言關鍵字的是()。A.A.default
B.register
C.enum
D.external
20.已知函數(shù)test定義為()。A.執(zhí)行函數(shù)test后,函數(shù)沒有返回值
B.執(zhí)行函數(shù)test后,函數(shù)不再返回
C.執(zhí)行函數(shù)test后,函數(shù)返回任意類型值
D.以上三個答案都是錯誤的
二、2.填空題(20題)21.若有以下程序:
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(3,4),f(3,5));
printf("%d\n",d);
}
執(zhí)行后輸出結果是【】。
22.下列程序的輸出結果是【】。
#include<stdio.h>
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
23.以下函數(shù)fun的功能是返回str所指字符中中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為“Hello!”,c中的字符為'e',則函數(shù)返回字符串"ello!"的首地址。若str所指字符串為空中或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?/p>
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(P[n]!=c&&p[n]!='\0')n++;
if(p[n]=='\0')retumNULL;
return(【】);
}
24.若已經(jīng)定義inta=25,b=14,c=19;,以下三目運算符(?:)所構成的語句的執(zhí)行結果是【】。
a++<=2&&b--<=2&&c++?printf("***
a=%d,b=%d,c=%d\n",a,b,C):printf("a=%d,b=%d,c=%d\n",a,b,C);
25.若由以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
26.常用的軟件結構設計工具是結構圖(SC),也稱程序結構圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
27.以下程序運行后的輸出結果是______。
main()
{chara[]="Language",b[]="Programe";
char*p1,*p2;
intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));
}
28.對于一棵具有n個結點的樹,則該樹中所有結點的度之和為【】。
29.軟件的可移植性是用來衡量軟件【】的重要尺度之一。
30.下列程序的運行結果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
31.若輸入tc,則程序的運行結果為【】。
#include<stdio.h>
main()
{charstr[40];
fscanf(stdin,"%s",str);
fprintf(stdout,"%s\n",str);
}
32.閱讀下面程序段,則執(zhí)行后輸出的結果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
33.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
34.在深度為7的滿二叉樹中,度為2的結點個數(shù)為【】。
35.設有以下定義變量的語句,并且已賦確定的值,則表達式“W*X+Z-y”所求得的數(shù)據(jù)類型為【】。
charw;intx;floaty;double2;
36.以下程序的輸出結果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
37.有以下語句段:
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式輸出n1和n2的值:
n1=10
n2=20
每個輸出行從第一列開始,請?zhí)羁铡?/p>
38.下列程序段的輸出結果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
39.算法的基本特征主要包括叫個方面,它們分別是可行性、確定性、()和擁有足夠的情報。
40.以下程序的輸出結果是______。
intfun(int*x,int*y)
{staticintm=4;
m=*X+*y;*x-=m;*y+=m;
returnm;
}
main()
{inta=2,b=6,n;
n=fun(&a,&B);printf("%d,",n);
n=fun(&a,&B);printf("%d\n",n);
}
三、1.選擇題(20題)41.表示關系a≤b≤c的C語言表達式為()。
A.(a<=B)&&(b<=C)
B.(a<=B)and(b<=C)
C.(a<=b<=C)
D.(a<=B)&(b<=C)
42.為了提高測試的效率,應該()。
A.隨機選取測試數(shù)據(jù)
B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
C.在完成編碼以后制定軟件的測試計劃
D.集中對付那些錯誤群集的程序
43.有下列程序:main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執(zhí)行后的輸出結果是()。
A.5B.24C.32D.40
44.下列敘述中,錯誤的是()
A.數(shù)據(jù)的存儲結構與數(shù)據(jù)處理的效率密切相關
B.數(shù)據(jù)的存儲結構與數(shù)據(jù)處理的效率無關
C.數(shù)據(jù)的存儲結構在計算機中所占的空間不一定是連續(xù)的
D.一種數(shù)據(jù)的邏輯結構可以有多種存儲結構
45.下列特征中不是面向對象方法的主要特征的是()。
A.多態(tài)性B.繼承C.封裝性D.模塊化
46.C語言結構體類型變量在程序運行期間
A.TC環(huán)境在內(nèi)存中僅僅開辟一個存放結構體變量地址的單元
B.所有的成員一直駐留在內(nèi)存中
C.只有最開始的成員駐留在內(nèi)存中
D.部分成員駐留在內(nèi)存中
47.以下對枚舉類型名的定義中正確的是()
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three=200};
C.enuma={"one","two","four"};
D.enuma{"nine","two","three"};
48.以下敘述不正確的是
A.一個C源程序可由一個或多個函數(shù)組成
B.一個C源程序必須包含一個main函數(shù)
C.C程序的基本組成單位是函數(shù)
D.在C程序中,注釋說明只能位于一條語句的后面
49.數(shù)據(jù)的獨立性是指______。
A.數(shù)據(jù)庫的數(shù)據(jù)相互獨立
B.DBMS和DB相互獨立
C.用戶應用程序與數(shù)據(jù)庫的數(shù)據(jù)相互獨立
D.用戶應用程序與DBMS相互獨立
50.具有3個結點的二叉樹有
A.2種形態(tài)B.4種形態(tài)C.7種形態(tài)D.5種形態(tài)
51.以下不屬于對象的基本特點的是()
A.分類性B.多態(tài)性C.繼承性D.封裝性
52.若以下選項中的變量已正確定義,則正確的賦值語句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
53.在調用函數(shù)時,如果實參是簡單變量,它與對應形參之間的數(shù)據(jù)傳遞方式是______。
A.地址傳遞B.單向值傳遞C.由實參傳遞給形參,再由形參傳遞給實參D.傳遞方式由用戶指定
54.若有以下程序段(n所賦的是八進制數(shù))intm=32767,n=032767;printf("%d,%O\n",m,n);執(zhí)行后輸出結果是
A.32767,32767B.32767,032767C.32767,77777D.32767,077777
55.有下列程序,其中%u表示按無符號整數(shù)輸出。main(){unsignedintx=0xFFFF;/*x的初值為十六進制數(shù)*/printf("%u\n",x);}程序運行后的輸出結果是()。
A.-1B.65535C.32767D.0xFFFF
56.當變量c的值不為2、4、6時,值也為“真”的表達式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
57.下列二維數(shù)組初始化語句中,不正確的是()。
A.intb[][2]={1,2,3,4,5,6,7};
B.intb[3][5]={0,0,0};
C.intb[][4]={{1,2},{3,4,5},{6}};
D.intb[3][2]={(1,2),(3,4),(5,6)};
58.以下程序的輸出結果是()。#include<stdio.h>main(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;switch(b%3){default:m++;case0:m++;break;}}printf("%d\n",m);}
A.1B.2C.3D.4
59.在嵌套使用if語句時,C語言規(guī)定else總是A.和之前與其具有相同縮進位置的if配對
B.和之前與其最近的if配對
C.和之前與其最近的且不帶else的if配對
D.和之前的第一個if配對
60.若有定義:char*s=“Programming”;,以下敘述中有錯誤的是______。A.變量s中存放了字符P的地址B.s[0]中存放了字符PC.*s中存放了字符PD.s中存放了一個字符串
四、選擇題(20題)61.
62.
63.設有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時,若從鍵盤輸入876543.0<回車>,a和b的值分別是()。A.A.876和543.000000B.87和6.000000
C.87和6543.000000
D.76和543.000000
64.以下程序的輸出結果是()。
main
{intx=0.5;charz='a';
printf("%d\n",(x&1)&&(z<'2'));}A.A.0B.1C.2D.3
65.在數(shù)據(jù)庫設計中,將E—R圖轉換為關系模式的過程屬于()。
A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段
66.有以下程序程序執(zhí)行后的輸出結果是()
A.60B.50C.45D.55
67.設“intx=2,y=1;”,則表達式(!x||Y--)的值是()。
A.0B.1C.2D.-1
68.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)和相關文檔的集合
69.
70.有以下程序程序運行后的輸出結果是()。
A.3B.0C.7D.8
71.若有下面說明和定義:
structtest
{intm1;charm2;floatm3;
unionuu(charu1[5];intu2[2];)ua;
}myaa;
則sizeof(structtest)的值是()。
A)20B)16
C)14D)9
72.
73.
74.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10
75.有以下程序段:
當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0
76.
下述程序的輸出結果是()。
#include<stdio.h>
main
{inti;
for(i=l;i<=10;i++)
{if(i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i);
}
A.49B.36C.25D.64
77.
78.
79.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
80.有以下程序:
程序的運行結果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n的值,計算如下公式的值。t=1-1/(2*2)-1/(3*3)-…-l/(n*n)例如,當n=7時,t=0.488203。請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),用來求出數(shù)組中值最大的元素在數(shù)組中的下標并將其存放在k所指向的存儲單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結果為6,980。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.A本題考查switch語句。當i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。
2.D
3.C樹最適合用來表示元素之間具有分支層次關系的數(shù)據(jù),故本題選C。
4.C解析:在C語言中,字符串以'\\0'作為結束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。
5.A
6.A
7.D解析:在用基本輸出函數(shù)printf時,格式說明與輸出項的個數(shù)應該相同。如果格式說明的個數(shù)少于輸出項的個數(shù),多余的輸出項不予輸出;如果格式說明個數(shù)多于輸出項個數(shù),則對于多余的格式項輸出不定值或0。
8.B
9.D
10.A
11.B本題考查按位異或的用法。按位異或運算的規(guī)則是:兩個運算數(shù)的相應二進制位相同,則結果為0,相異則結果為1。b=2的二進制為00000010,a=1的二進制為00000001,a=a^b一00000011,轉化為十進制后為3,b=b^a=00000010^00000011=00000001,即1。
12.C
13.B
14.A本題主要考查結構體數(shù)組的使用。x[i].num為結構體x[i]中的hum成員,x[i].num[2]是結構體x[i]中name成員的第3個元素。程序執(zhí)行循環(huán)過程時:第1次循環(huán),i=1,輸出x[i].num,x[1].name[2]的值;第2次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第3次循環(huán),i=3,輸出X[3].hum,x[3].name[2]的值,即4A;第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即5U。
15.B
16.D解析:邏輯運算符兩側的運算對象可以是任意合法的表達式。邏輯表達式的運算結果或者為1(“真”),或者為0(“假”)。
17.Btypedef并不是增加一種新的類型,而是對已存在的類型用一個新的名字來代表,所以B選項錯誤。故本題答案為B選項。
18.B
19.Dregister聲明寄存器變量enum聲明枚舉類型default開關語句中的“其他”分支
20.A
21.99解析:在主函數(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。
22.HelloHello解析:語句b[5]=0;相當于語句b[5]='\\0';且'\\0'為字符串結束標志,輸出時遇到'\\0'就停止輸出。
23.str+n或p+nstr+n或p+n解析:此題主要是將形參c中的字符與str中的字符相比較,返回以形參c中字符開頭的后續(xù)字符串,函數(shù)fun中的變量n用于記錄形參c中字符在str字符串中的位置,故返回的結果用str+n或p+n表示。
24.a=26b=14c=19a=26,b=14,c=19解析:這種條件表達式的—般形式為:表達式1?表達式2:表達式3,三目運算符的執(zhí)行順序,先求解表達式1,若非0則求解表達式2,此時表達式2的值就作為整個表達式的值,若表達式1的值為0,則求解表達式3,此時表達式3的值就作為整個表達式的值。C語言在做一系列表達式相與時,從左到右分別計算各表達式的值,一旦遇到一個表達式為false,則剩余的表達式都不再進行運算。該題中,a++<=2的值為false,則b-<=2和c++就都不再運算再運算。
25.*(p+5)或p[5]*(p+5)或p[5]解析:本題的考查點是通過指針引用數(shù)組元素。98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種方法:p[5]、*(p+5)。
26.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調用關系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
27.gae
28.n-1
29.質量質量
30.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結果為:a=2,b=8。
31.tc
32.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。
33.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標識符(*旨針變量名)()。注:“類型標識符”為函數(shù)返回值的類型。
34.63或26-163或26-1解析:在滿二叉樹中,每層結點都是滿的,即每層結點都具有最大結點數(shù)。深度為k的滿二叉樹,一共有2k-1個結點,其中包括度為2的結點和葉子結點。因此,深度為7的滿二叉樹,一共有27-1個結點,即127個結點。根據(jù)二叉樹的另一條性質,對任意一棵二叉樹,若終端結點(即葉子結點)數(shù)為n0,而其度數(shù)為2的結點數(shù)為n2,則n0=n2+1。設深度為7的滿二叉樹中,度為2的結點個數(shù)為x,則改樹中葉子結點的個數(shù)為x+1。則應滿足x+(x+1)=127,解該方程得到,x的值為63。結果上述分析可知,在深度為7的滿二叉樹中,度為2的結點個數(shù)為63。
35.double或雙精度型double或雙精度型
36.3131解析:在函數(shù)調用時,形參值和改變,不會改變實參的值。
37.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根據(jù)輸出結果,可以確定“格式控制”為n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原樣輸出的字符,“%d”是按十進制整數(shù)輸出,“\\n”是轉義字符,用于輸出回車換行。
38.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結束標志。因此,只輸出前五個字符,即Hello。
39.有窮性有窮性
40.88。8,8。解析:本題考查靜態(tài)局部變量值的特點,請參考第10章有關習題的解析。
41.A解析:本題考查邏輯與運算符&&。在C語言中使用運算符“&&”連接兩個表達式,也可以表示邏輯與運算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。
42.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。
(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。
(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。
軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細的測試計劃,了解測試項目的業(yè)務需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。
43.C解析:在for循環(huán)體中,首先判斷自變量i能否被5整除,然后再自加兩次,最后判斷i能否被8整除。當for循環(huán)執(zhí)行到第30次時,i的值為30能被5整除,然后i經(jīng)過兩次自加1運算,值變?yōu)?2,能被8整除,故執(zhí)行“printf('%d',i);”語句,即輸出32。本題的答案為選項C)。
44.B解析:數(shù)據(jù)處理是計算機應用的重要領域,在實際數(shù)據(jù)處理時,被處理的各數(shù)據(jù)元素總是被存放在計算機的存儲空間中,并且各數(shù)據(jù)元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的,一般也不可能相同。數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構(也稱數(shù)據(jù)的物理結構)。一般來說,數(shù)據(jù)的邏輯結構根據(jù)需要可以表示成多種存儲結構,常用的存儲結構有順序、鏈接、索引等存儲結構。而采用不同的存儲結構,其數(shù)據(jù)處理的效率也是不同的。
45.DD?!窘馕觥棵嫦驅ο笤O計方法與面向過程設計方法有本質的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。
46.B解析:結構體類型的變量在程序運行期間要作為一個整體占用連續(xù)的內(nèi)存單元。
47.B解析:枚舉類型的定義類似于結構體和共用體,所以選項A和C不正確。大括號中的枚舉元素應該使用合法標識符來定義,而不是字符串常量,所以選項D不正確。故應該選擇B。
48.D解析:本題考查C語言的基本基礎知識。在C程序中,注釋用符號“/*”開始,而以符號“*/”結束。程序的注釋可以放在程序的任何位置。通常將注釋放在程序的開始,以說明本程序的功能;或者放在程序的某個語句后面,以對此語句的功能進行描述。無論將注釋放有何處,在程序進行編譯時,編譯程序不會處理注釋的內(nèi)容;且注釋內(nèi)容也不會出現(xiàn)在目標程序中。
49.C解析:修改數(shù)據(jù)庫的物理結構或邏輯結構時,通過兩級映像,可以使得應用程序不必修改,保證數(shù)據(jù)的獨立性。數(shù)據(jù)的獨立性包括物理獨立性和邏輯獨立性。
50.D解析:因為二叉樹有左、右子樹之分,所以有3個結點的二叉樹具有5種不同的形態(tài)。
51.C解析:對象的基本特點包括;標識惟一性、分類性、多態(tài)性、封裝性和獨立性等。繼承性不屬于對象的基本特點。
52.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側表達式的值賦給:左側的變量,執(zhí)行步驟是先計算再賦值。選項A中運算符%的運算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。
53.B解析:C語言以定,實參變量對形參變量的數(shù)據(jù)傳遞是“單向值傳遞”,只由實參傳紿形參。在內(nèi)存中,實參單元與形參單元是不同的單元。調用結束后,實參單元仍保留并維持原值。
54.A解析:本題考核的知識點是scanf()函數(shù)及printf()函數(shù)的輸出格式。程序在定義時,以十進制形式為m賦初值,以八進制的形式為n賦初值.輸出的時候m以十進制形式輸出,n以八進制形式輸出,因此輸出的結果為32767和32767。所以,A選項為所選。
55.B解析:“%u”格式符表示以十進制形式輸出無符號整形變最。本題中無符號整形變量x=0xFFFF表示的是十六進制無符號整型變量的最大值65535,所以最后輸出的結果為65535。
56.B解析:滿足表達式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當變量c的值不為2,4,6時,其值只能為3或5,所以表達式c!=3和c!=5中至少有一個為真,即不論c為何值,選項B中的表達式都為“真”。
57.D解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達式,而不能省略第2個方括號中的常量表達式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。
在選項D)賦值表達式中,對每一維的元素賦初值應用{},而不是()。
58.B解析:本題考查switch語句。因為a=8,a%4=0,所以執(zhí)行case0后面的語句,將m加1,遇到break語句跳出switch。
59.C解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結合,與書寫格式無關。所以選項C)為正確答案。
60.D將一個字符型指針s指向一個字符串,s中存放的是該字符串的首地址。
61.B
62.D
63.B本題考查scanf函數(shù),輸入格式符%2d%f表示只接收了字符,其中a輸入的值為2位的十進制整數(shù),即87,然后將緊接著的6賦給b,因為b的值為單精度數(shù)在,即6.000000,故選擇B選項。
64.B(x&1)&&(z<'2')=(0.5&1)&&('a'<'z')=1&&1=1,故選擇B選項。
65.BB.【解析】數(shù)據(jù)庫設計階段主要包括需求分析、概念設計、邏輯設計和物理設計。其中邏輯設計的主要工作是將E-R圖轉換為關系模式。
66.A函數(shù)fun的功能是求數(shù)組的n個元素之和。fun(a,5)=15。由于s岫是靜態(tài)局部變量,所以保持l5不變,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。
67.B因X為2,所以!X時表達式值為0,因Y為1,y--表達式的值為1然后自減1,y為0,所以!x||y--時表達式的值為1。
68.D解析:軟件是運行在計算機硬件之上的邏輯實體,包括程序、數(shù)據(jù)和相關的文檔,軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制。
69.D
70.A本題中遇到‘\\’字符循環(huán)結束,因此只統(tǒng)計‘\\’之前的數(shù)字字符,結果為3。
71.Asizeof求在存儲單元中所占字節(jié)數(shù)。
72.C
73.B
74.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結束符'\0'的長度。故選A。
75.B本題考查通過scanf函數(shù)輸入數(shù)據(jù)時的格式控制問題。變量J的格式控制為”%2d”,即只接收輸人數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入都會被保存到變量Y中,因為Y為浮點型數(shù)據(jù),所以輸出結果為選項B。
76.C
\n當if執(zhí)行到第一個滿足(i*i>一20)&&(i*i<=100)這個條件的i出現(xiàn)時,通過break語句跳出循環(huán),執(zhí)行下面的printf語句。
\n
77.D
78.D
79.A本題考查函數(shù)值的類型。在函數(shù)調用時,盡管Y的類型是float.x的類型是double,但是因為函數(shù)定義時沒有指定類型說明,系統(tǒng)默認函數(shù)值的類型為int型,所以計算后Y的類型是int型。
80.A本題考查的是函數(shù)調用時的參數(shù)傳遞以及結構體變量的引用的問題。程序在調用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結構變量c在棧中的一個拷貝,函數(shù)f的所有操作只是針對這個數(shù)據(jù)拷貝進行的修改,這些都不會影響變量c的值。
81.(1)錯誤:for(i=2;i%n;i++)
正確:for(i=2;i<=n;i++)
(2)錯誤:y-=l/(i*i);
正確:y-=1.0/(i*i);
【解析】根據(jù)題目中所給公式t=1-1/(2×2)-1/(3×3)=…-1/(n×n),可知需要循環(huán)至i=n,因此,“for(i=2;i<n;i++)”應改為“for(i-2;i<=n;i++)”;根據(jù)C語言中的語法規(guī)則,整數(shù)與整數(shù)相除結果仍為整數(shù),要得到浮點數(shù)在分數(shù)中,分子或分母最少有一個是浮點數(shù),因此,“y-=1/(i*i);”應改為“y-=1.0/(i*i);”。
82.1intfun(int*s,intt,int*k)2{3Inti;4*k=0;/*k所指的數(shù)是數(shù)組的下5標*/6for(i=0;i<t;i++)hif(s[*k]<s[i])*k=i;/*找到數(shù)組中值最大的元素,把該元素的下標賦給k所指的數(shù)*/7returns[*k];/*返回數(shù)組的最大元素*/8}<t;i++)<>本題中使用指針變量k作為值最大的元素的下標。使用時要注意對k進行指針運算。程序一開始讓k指向數(shù)組中的第1個元素,即*k=0。通過for循環(huán)與數(shù)組各個元素比較,找到最大值。<></t;i++)2021年黑龍江省綏化市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的輸出結果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8
2.
3.樹最適合用來表示()。
A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)
4.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。
A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度
5.線性表是具有n個()的有限序列。
A.表元素B.字符C.數(shù)據(jù)元素D.數(shù)據(jù)項
6.
7.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十進制代碼為97,則執(zhí)行上述程序段后輸出結果是()。A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
8.一個遞歸的定義可以用遞歸過程求解,也可以用非遞歸過程求解,但單從運行時間來看,通常遞歸過程比非遞歸過程()。
A.較快B.較慢C.相同D.無法確定
9.設S為一個長度為n的字符串,其中的字符各不相同,則S中的互異的非平凡子串(非空且不同于S本身)的個數(shù)為()。
A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1
10.對于移動平均算法,是計算某變量之前n個數(shù)值的算術平均,正確的說法是()
A.空間復雜度是O(1)B.空間復雜度是O(n)C.空間復雜度是O(logn)D.空間復雜度是O(nlogn)
11.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
12.C語言提供的合法關鍵字是()
A.switchB.cherC.caseD.default
13.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值
14.定義結構體數(shù)組:structstu{intnum;charnameE20];}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的輸出結果為()。A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I
15.以下程序的輸出結果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
16.下列關于邏輯運算符兩側運算對象的敘述中正確的是()。
A.只能是整數(shù)0或1B.只能是整數(shù)0或非0整數(shù)C.可以是結構體類型的數(shù)據(jù)D.可以是任意合法的表達式
17.下列敘述中錯誤的是()。
A.可以用typedef將已存在的類型用一個新的名字來代表
B.可以通過typedef增加新的類型
C.用typedef定義新的類型名后,原有類型名仍有效
D.用typedef可以為各種類型起別名,但不能為變量起別名
18.
19.下列不屬于C語言關鍵字的是()。A.A.default
B.register
C.enum
D.external
20.已知函數(shù)test定義為()。A.執(zhí)行函數(shù)test后,函數(shù)沒有返回值
B.執(zhí)行函數(shù)test后,函數(shù)不再返回
C.執(zhí)行函數(shù)test后,函數(shù)返回任意類型值
D.以上三個答案都是錯誤的
二、2.填空題(20題)21.若有以下程序:
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(3,4),f(3,5));
printf("%d\n",d);
}
執(zhí)行后輸出結果是【】。
22.下列程序的輸出結果是【】。
#include<stdio.h>
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
23.以下函數(shù)fun的功能是返回str所指字符中中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為“Hello!”,c中的字符為'e',則函數(shù)返回字符串"ello!"的首地址。若str所指字符串為空中或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?/p>
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(P[n]!=c&&p[n]!='\0')n++;
if(p[n]=='\0')retumNULL;
return(【】);
}
24.若已經(jīng)定義inta=25,b=14,c=19;,以下三目運算符(?:)所構成的語句的執(zhí)行結果是【】。
a++<=2&&b--<=2&&c++?printf("***
a=%d,b=%d,c=%d\n",a,b,C):printf("a=%d,b=%d,c=%d\n",a,b,C);
25.若由以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
26.常用的軟件結構設計工具是結構圖(SC),也稱程序結構圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
27.以下程序運行后的輸出結果是______。
main()
{chara[]="Language",b[]="Programe";
char*p1,*p2;
intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));
}
28.對于一棵具有n個結點的樹,則該樹中所有結點的度之和為【】。
29.軟件的可移植性是用來衡量軟件【】的重要尺度之一。
30.下列程序的運行結果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
31.若輸入tc,則程序的運行結果為【】。
#include<stdio.h>
main()
{charstr[40];
fscanf(stdin,"%s",str);
fprintf(stdout,"%s\n",str);
}
32.閱讀下面程序段,則執(zhí)行后輸出的結果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
33.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
34.在深度為7的滿二叉樹中,度為2的結點個數(shù)為【】。
35.設有以下定義變量的語句,并且已賦確定的值,則表達式“W*X+Z-y”所求得的數(shù)據(jù)類型為【】。
charw;intx;floaty;double2;
36.以下程序的輸出結果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
37.有以下語句段:
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式輸出n1和n2的值:
n1=10
n2=20
每個輸出行從第一列開始,請?zhí)羁铡?/p>
38.下列程序段的輸出結果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
39.算法的基本特征主要包括叫個方面,它們分別是可行性、確定性、()和擁有足夠的情報。
40.以下程序的輸出結果是______。
intfun(int*x,int*y)
{staticintm=4;
m=*X+*y;*x-=m;*y+=m;
returnm;
}
main()
{inta=2,b=6,n;
n=fun(&a,&B);printf("%d,",n);
n=fun(&a,&B);printf("%d\n",n);
}
三、1.選擇題(20題)41.表示關系a≤b≤c的C語言表達式為()。
A.(a<=B)&&(b<=C)
B.(a<=B)and(b<=C)
C.(a<=b<=C)
D.(a<=B)&(b<=C)
42.為了提高測試的效率,應該()。
A.隨機選取測試數(shù)據(jù)
B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
C.在完成編碼以后制定軟件的測試計劃
D.集中對付那些錯誤群集的程序
43.有下列程序:main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執(zhí)行后的輸出結果是()。
A.5B.24C.32D.40
44.下列敘述中,錯誤的是()
A.數(shù)據(jù)的存儲結構與數(shù)據(jù)處理的效率密切相關
B.數(shù)據(jù)的存儲結構與數(shù)據(jù)處理的效率無關
C.數(shù)據(jù)的存儲結構在計算機中所占的空間不一定是連續(xù)的
D.一種數(shù)據(jù)的邏輯結構可以有多種存儲結構
45.下列特征中不是面向對象方法的主要特征的是()。
A.多態(tài)性B.繼承C.封裝性D.模塊化
46.C語言結構體類型變量在程序運行期間
A.TC環(huán)境在內(nèi)存中僅僅開辟一個存放結構體變量地址的單元
B.所有的成員一直駐留在內(nèi)存中
C.只有最開始的成員駐留在內(nèi)存中
D.部分成員駐留在內(nèi)存中
47.以下對枚舉類型名的定義中正確的是()
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three=200};
C.enuma={"one","two","four"};
D.enuma{"nine","two","three"};
48.以下敘述不正確的是
A.一個C源程序可由一個或多個函數(shù)組成
B.一個C源程序必須包含一個main函數(shù)
C.C程序的基本組成單位是函數(shù)
D.在C程序中,注釋說明只能位于一條語句的后面
49.數(shù)據(jù)的獨立性是指______。
A.數(shù)據(jù)庫的數(shù)據(jù)相互獨立
B.DBMS和DB相互獨立
C.用戶應用程序與數(shù)據(jù)庫的數(shù)據(jù)相互獨立
D.用戶應用程序與DBMS相互獨立
50.具有3個結點的二叉樹有
A.2種形態(tài)B.4種形態(tài)C.7種形態(tài)D.5種形態(tài)
51.以下不屬于對象的基本特點的是()
A.分類性B.多態(tài)性C.繼承性D.封裝性
52.若以下選項中的變量已正確定義,則正確的賦值語句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
53.在調用函數(shù)時,如果實參是簡單變量,它與對應形參之間的數(shù)據(jù)傳遞方式是______。
A.地址傳遞B.單向值傳遞C.由實參傳遞給形參,再由形參傳遞給實參D.傳遞方式由用戶指定
54.若有以下程序段(n所賦的是八進制數(shù))intm=32767,n=032767;printf("%d,%O\n",m,n);執(zhí)行后輸出結果是
A.32767,32767B.32767,032767C.32767,77777D.32767,077777
55.有下列程序,其中%u表示按無符號整數(shù)輸出。main(){unsignedintx=0xFFFF;/*x的初值為十六進制數(shù)*/printf("%u\n",x);}程序運行后的輸出結果是()。
A.-1B.65535C.32767D.0xFFFF
56.當變量c的值不為2、4、6時,值也為“真”的表達式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
57.下列二維數(shù)組初始化語句中,不正確的是()。
A.intb[][2]={1,2,3,4,5,6,7};
B.intb[3][5]={0,0,0};
C.intb[][4]={{1,2},{3,4,5},{6}};
D.intb[3][2]={(1,2),(3,4),(5,6)};
58.以下程序的輸出結果是()。#include<stdio.h>main(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;switch(b%3){default:m++;case0:m++;break;}}printf("%d\n",m);}
A.1B.2C.3D.4
59.在嵌套使用if語句時,C語言規(guī)定else總是A.和之前與其具有相同縮進位置的if配對
B.和之前與其最近的if配對
C.和之前與其最近的且不帶else的if配對
D.和之前的第一個if配對
60.若有定義:char*s=“Programming”;,以下敘述中有錯誤的是______。A.變量s中存放了字符P的地址B.s[0]中存放了字符PC.*s中存放了字符PD.s中存放了一個字符串
四、選擇題(20題)61.
62.
63.設有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時,若從鍵盤輸入876543.0<回車>,a和b的值分別是()。A.A.876和543.000000B.87和6.000000
C.87和6543.000000
D.76和543.000000
64.以下程序的輸出結果是()。
main
{intx=0.5;charz='a';
printf("%d\n",(x&1)&&(z<'2'));}A.A.0B.1C.2D.3
65.在數(shù)據(jù)庫設計中,將E—R圖轉換為關系模式的過程屬于()。
A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段
66.有以下程序程序執(zhí)行后的輸出結果是()
A.60B.50C.45D.55
67.設“intx=2,y=1;”,則表達式(!x||Y--)的值是()。
A.0B.1C.2D.-1
68.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)和相關文檔的集合
69.
70.有以下程序程序運行后的輸出結果是()。
A.3B.0C.7D.8
71.若有下面說明和定義:
structtest
{intm1;charm2;floatm3;
unionuu(charu1[5];intu2[2];)ua;
}myaa;
則sizeof(structtest)的值是()。
A)20B)16
C)14D)9
72.
73.
74.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10
75.有以下程序段:
當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0
76.
下述程序的輸出結果是()。
#include<stdio.h>
main
{inti;
for(i=l;i<=10;i++)
{if(i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i);
}
A.49B.36C.25D.64
77.
78.
79.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
80.有以下程序:
程序的運行結果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n的值,計算如下公式的值。t=1-1/(2*2)-1/(3*3)-…-l/(n*n)例如,當n=7時,t=0.488203。請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),用來求出數(shù)組中值最大的元素在數(shù)組中的下標并將其存放在k所指向的存儲單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結果為6,980。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.A本題考查switch語句。當i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。
2.D
3.C樹最適合用來表示元素之間具有分支層次關系的數(shù)據(jù),故本題選C。
4.C解析:在C語言中,字符串以'\\0'作為結束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。
5.A
6.A
7.D解析:在用基本輸出函數(shù)printf時,格式說明與輸出項的個數(shù)應該相同。如果格式說明的個數(shù)少于輸出項的個數(shù),多余的輸出項不予輸出;如果格式說明個數(shù)多于輸出項個數(shù),則對于多余的格式項輸出不定值或0。
8.B
9.D
10.A
11.B本題考查按位異或的用法。按位異或運算的規(guī)則是:兩個運算數(shù)的相應二進制位相同,則結果為0,相異則結果為1。b=2的二進制為00000010,a=1的二進制為00000001,a=a^b一00000011,轉化為十進制后為3,b=b^a=00000010^00000011=00000001,即1。
12.C
13.B
14.A本題主要考查結構體數(shù)組的使用。x[i].num為結構體x[i]中的hum成員,x[i].num[2]是結構體x[i]中name成員的第3個元素。程序執(zhí)行循環(huán)過程時:第1次循環(huán),i=1,輸出x[i].num,x[1].name[2]的值;第2次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第3次循環(huán),i=3,輸出X[3].hum,x[3].name[2]的值,即4A;第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即5U。
15.B
16.D解析:邏輯運算符兩側的運算對象可以是任意合法的表達式。邏輯表達式的運算結果或者為1(“真”),或者為0(“假”)。
17.Btypedef并不是增加一種新的類型,而是對已存在的類型用一個新的名字來代表,所以B選項錯誤。故本題答案為B選項。
18.B
19.Dregister聲明寄存器變量enum聲明枚舉類型default開關語句中的“其他”分支
20.A
21.99解析:在主函數(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。
22.HelloHello解析:語句b[5]=0;相當于語句b[5]='\\0';且'\\0'為字符串結束標志,輸出時遇到'\\0'就停止輸出。
23.str+n或p+nstr+n或p+n解析:此題主要是將形參c中的字符與str中的字符相比較,返回以形參c中字符開頭的后續(xù)字符串,函數(shù)fun中的變量n用于記錄形參c中字符在str字符串中的位置,故返回的結果用str+n或p+n表示。
24.a=26b=14c=19a=26,b=14,c=19解析:這種條件表達式的—般形式為:表達式1?表達式2:表達式3,三目運算符的執(zhí)行順序,先求解表達式1,若非0則求解表達式2,此時表達式2的值就作為整個表達式的值,若表達式1的值為0,則求解表達式3,此時表達式3的值就作為整個表達式的值。C語言在做一系列表達式相與時,從左到右分別計算各表達式的值,一旦遇到一個表達式為false,則剩余的表達式都不再進行運算。該題中,a++<=2的值為false,則b-<=2和c++就都不再運算再運算。
25.*(p+5)或p[5]*(p+5)或p[5]解析:本題的考查點是通過指針引用數(shù)組元素。98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種方法:p[5]、*(p+5)。
26.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調用關系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
27.gae
28.n-1
29.質量質量
30.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結果為:a=2,b=8。
31.tc
32.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。
33.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標識符(*旨針變量名)()。注:“類型標識符”為函數(shù)返回值的類型。
34.63或26-163或26-1解析:在滿二叉樹中,每層結點都是滿的,即每層結點都具有最大結點數(shù)。深度為k的滿二叉樹,一共有2k-1個結點,其中包括度為2的結點和葉子結點。因此,深度為7的滿二叉樹,一共有27-1個結點,即127個結點。根據(jù)二叉樹的另一條性質,對任意一棵二叉樹,若終端結點(即葉子結點)數(shù)為n0,而其度數(shù)為2的結點數(shù)為n2,則n0=n2+1。設深度為7的滿二叉樹中,度為2的結點個數(shù)為x,則改樹中葉子結點的個數(shù)為x+1。則應滿足x+(x+1)=127,解該方程得到,x的值為63。結果上述分析可知,在深度為7的滿二叉樹中,度為2的結點個數(shù)為63。
35.double或雙精度型double或雙精度型
36.3131解析:在函數(shù)調用時,形參值和改變,不會改變實參的值。
37.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根據(jù)輸出結果,可以確定“格式控制”為n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原樣輸出的字符,“%d”是按十進制整數(shù)輸出,“\\n”是轉義字符,用于輸出回車換行。
38.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結束標志。因此,只輸出前五個字符,即Hello。
39.有窮性有窮性
40.88。8,8。解析:本題考查靜態(tài)局部變量值的特點,請參考第10章有關習題的解析。
41.A解析:本題考查邏輯與運算符&&。在C語言中使用運算符“&&”連接兩個表達式,也可以表示邏輯與運算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。
42.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。
(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。
(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。
軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細的測試計劃,了解測試項目的業(yè)務需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。
43.C解析:在for循環(huán)體中,首先判斷自變量i能否被5整除,然后再自加兩次,最后判斷i能否被8整除。當for循環(huán)執(zhí)行到第30次時,i的值為30能被5整除,然后i經(jīng)過兩次自加1運算,值變?yōu)?2,能被8整除,故執(zhí)行“printf('%d',i);”語句,即輸出32。本題的答案為選項C)。
44.B解析:數(shù)據(jù)處理是計算機應用的重要領域,在實際數(shù)據(jù)處理時,被處理的各數(shù)據(jù)元素總是被存放在計算機的存儲空間中,并且各數(shù)據(jù)元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的,一般也不可能相同。數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構(也稱數(shù)據(jù)的物理結構)。一般來說,數(shù)據(jù)的邏輯結構根據(jù)需要可以表示成多種存儲結構,常用的存儲結構有順序、鏈接、索引等存儲結構。而采用不同的存儲結構,其數(shù)據(jù)處理的效率也是不同的。
45.DD?!窘馕觥棵嫦驅ο笤O計方法與面向過程設計方法有本質的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。
46.B解析:結構體類型的變量在程序運行期間要作為一個整體占用連續(xù)的內(nèi)存單元。
47.B解析:枚舉類型的定義類似于結構體和共用體,所以選項A和C不正確。大括號中的枚舉元素應該使用合法標識符來定義,而不是字符串常量,所以選項D不正確。故應該選擇B。
48.D解析:本題考查C語言的基本基礎知識。在C程序中,注釋用符號“/*”開始,而以符號“*/”結束。程序的注釋可以放在程序的任何位置。通常將注釋放在程序的開始,以說明本程序的功能;或者放在程序的某個語句后面,以對此語句的功能進行描述。無論將注釋放有何處,在程序進行編譯時,編譯程序不會處理注釋的內(nèi)容;且注釋內(nèi)容也不會出現(xiàn)在目標程序中。
49.C解析:修改數(shù)據(jù)庫的物理結構或邏輯結構時,通過兩級映像,可以使得應用程序不必修改,保證數(shù)據(jù)的獨立性。數(shù)據(jù)的獨立性包括物理獨立性和邏輯獨立性。
50.D解析:因為二叉樹有左、右子樹之分,所以有3個結點的二叉樹具有5種不同的形態(tài)。
51.C解析:對象的基本特點包括;標識惟一性、分類性、多態(tài)性、封裝性和獨立性等。繼承性不屬于對象的基本特點。
52.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側表達式的值賦給:左側的變量,執(zhí)行步驟是先計算再賦值。選項
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度2025年民宿租賃合同租客版
- 二零二五年度高端醫(yī)療中心護士團隊聘用合同模板
- 2025年度羊代放牧與草原畜牧業(yè)可持續(xù)發(fā)展合同
- 2025年度股東股權分配與知識產(chǎn)權保護協(xié)議
- 2025年度江蘇省全日制員工勞動合同實施細則
- 江西理工大學《武俠小說導讀》2023-2024學年第一學期期末試卷
- 2025年度大型公共建筑消防維保合同標準
- 煤炭購銷合同擔保書模板(2025年國有企業(yè)合作專用)
- 二零二五年度電影聯(lián)合發(fā)行與拍攝合同
- 二零二五年度人才公寓押金及人才引進合同
- 小學語文教研組期末考試質量分析
- 《五年級奧數(shù)總復習》精編課件
- TS2011-16 帶式輸送機封閉棧橋圖集
- 校園安全存在問題及對策
- 多聯(lián)機的施工方案與技術措施
- 鉆井作業(yè)常見安全隱患
- 新型肥料配方設計與加工PPT課件
- 國際色卡四色模擬專色CMYK色值對照表
- 裝飾施工階段安全檢查表
- 輥壓成型在汽車輕量化中應用的關鍵技術及發(fā)展-北方工業(yè)大學
- 地理信息系統(tǒng)原理全冊配套完整課件
評論
0/150
提交評論