版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年河北省唐山市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下能正確定義一維數(shù)組的選項是
A.inta[5]={0,1,2,3,4,5}
B.chara[]={'0','1','2','3','4','5','\0'};
C.chara={'A','B','C'};
D.inta[5]="0123";
2.有以下程序:#include<stdio.h>intchange(int*data){*data=*data%2;return(*data)+1;}main(){intdata=12;change(&data);printf(“%d,”,data);data=change(&data);printf(“%d,”,data);}程序運行后的輸出結(jié)果是()。
A.0,0,B.1,2,C.12,13,D.0,1,
3.有以下程序:#include<stdio.h>#defineF(x,y)(x)*(y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序運行后的輸出結(jié)果是()。
A.12B.15C.16D.20
4.有以下程序:main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d,%d\n",x,y,z);程序運行后的輸出結(jié)果是()。
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
5.有以下程序:#include<stdio.h>intf(intm){staticintn=0;n+=m;returnn;}main(){intn=0;printf("%d,"f(++n));printf("%d\n",f(n++));}程序運行后的輸出結(jié)果是()。A.1,2B.1,1C.2,3D.3,3
6.將線性表中的結(jié)點信息組織成平衡的二叉樹,其優(yōu)點之一是總能保證任意檢索長度均為log2n量級(n為線性表中的結(jié)點數(shù)目)()
A.對B.錯
7.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結(jié)果是()。
A.3B.13C.1D.0
8.[0,2,1,4,3,9,5,8,6,7]是以數(shù)組形式存儲的最小堆,刪除堆頂元素0后的結(jié)果是()
A.[2,1,4,3,9,5,8,6,7]
B.[1,2,5,4,3,9,8,6,7]
C.[2,3,1,4,7,9,5,8,6]
D.[1,2,5,4,3,9,7,8,6]
9.下列程序執(zhí)行后的輸出結(jié)果是()。main{charx=0xFFFF;printf("%d\n",x--);}A.-32767B.FFFEC.1D.32768
10.以下程序段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是()。
A.if(a>b)(b>c)k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b>c)k=1;
D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:
11.
12.以下敘述中錯誤的是()。A.C程序在運行過程中所有計算都以二進制方式進行
B.C程序在運行過程中所有計算都以十進制方式進行
C.所有C程序都需要編譯鏈接無誤后才能運行
D.C程序中整型變量只能存放整數(shù),實型變量只能存放浮點數(shù)
13.以下程序#includemain(){chars[]="012xy\08s34f4w2";inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9')n++;printf("%d\n",n);}程序運行后的輸出結(jié)果是A.0B.3C.7D.8
14.一個順序棧一旦聲明,其占用空間的大小()。
A.已固定B.可以變動C.不能固定D.動態(tài)變化
15.if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
16.
17.
18.恢復(fù)系統(tǒng)默認菜單的命令是()。
A.SETMENUTODEFAULT
B.SETSYSMENUTODEFAULT
C.SETSYSTEMMENUTODEFAULT
D.SETSYSTEMTODEFAULT
19.有以下程序段:charc1,c2;for(c=‘0’,c2=‘9’;c1<c2;c1++,c2--)printf(“%c%c”,c1,c2);程序段的執(zhí)行結(jié)果是()。
A.0123456789B.0918273645C.0123498765D.9876543210
20.定義學(xué)生選修課程的關(guān)系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其屬性分別為學(xué)號、姓名、課程號、課程名、成績、學(xué)分)則對主屬性部分依賴的是()。
A.C#→CnB.(S#,C#)→GC.(S#,C#)→S#D.(S#,C#)→C#
二、2.填空題(20題)21.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組bo請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4==0)printf("\n");
printf("%3d",b[i]);
}
}
22.若x和a均是血型變量,則計算完x=(a=4,6*2)后的x值為______。
23.下面函數(shù)要求計算兩個整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁铡?/p>
add(intx,inty,【】z)
{【】=x+y;}
24.在樹型結(jié)構(gòu)中,根結(jié)點沒有【】結(jié)點,其余每個結(jié)點有且僅有【】個前驅(qū)結(jié)點;葉結(jié)點沒有后繼結(jié)點,其余每個結(jié)點的【】結(jié)點數(shù)不受限制。
25.函數(shù)pi的功能是根據(jù)以下公式近似求得的:
pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
請在下面的函數(shù)中填空,完成求pi的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0,longi;
for(i=1;i<=n;i++)s=s+【】。
return(sqrt(6*s));
}
26.以下程序輸出的結(jié)果是【】。
#include<stdio.h>
main()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
27.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
28.以下程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
29.設(shè)有以下程序:
main()
{inta,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1=&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
執(zhí)行該程序后,a值為【】,b值為【】。
30.以下程序段的輸出結(jié)果是【】。
inti=9;
printf("%o\n",i);
31.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
32.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。
33.根據(jù)以下if語句寫出與其功能相同的switch語句(x的值在0~100之間)。
if語句:
if(x<60)m=1;
elseif(x<70)m=2;
elseif(x<80)m=3;
elseif(x<90)m=4;
elseif(x<100)m=5;
switch語句:
switch(【】)
{
【】m=1;break;
case6:m=2;break;
case7:m=3;break;
case8:m=4;break;
【】m=5;
}
34.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結(jié)構(gòu)必須是______。
35.關(guān)鍵字ASC和DESC分別表示【】的含義。
36.下列程序段的運行結(jié)果是______。
charstr口="ABCD",*p=str;
printf("%d\n",*(p+3));
37.C語言用于結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
38.有以下程序:
#include<stdio.h>
main()
{intn=0,m=1,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
執(zhí)行后的輸出結(jié)果是【】。
39.有一個已排好序的數(shù)組,今輸入一個數(shù),要求按原來的順序規(guī)律將它插入到數(shù)組中。算法是:假設(shè)排序順序是從小到大,對輸入的數(shù),檢查它在數(shù)組中哪個數(shù)之后,然后將比這個數(shù)大的數(shù)順序后移一個位置,在空出的位置上將該數(shù)插入。請在程序中的空白處填上一條語句或一個表達式。
#defineN100
main()
{floata[N+1],x;
inti,p;
for(i=0;i<N;i++)
scanf("%f"&a[i]);
scanf("%f",&x);
for(i=0,p=N;i<N;i++)
if(x<a[i])
{【】;
break;}
for(i=N-1;【】;i-)
a[i+1]=a[i];
a[p]=x;
for(i=0;【】;i++)
{printf("%8.2f",a[i]);
if(i%5=0)
printf("\n");
}
}
40.以下程序的輸出結(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));}
三、1.選擇題(20題)41.下列二維數(shù)組初始化語句中,正確且與語句floata[][3]={0,3,8,0,9};等價的是
A.floata[2][]={{0,3,8},{0,9}};
B.floata[][3]={0,3,8,0,9,0};
C.floata[][3]={{0,3},{8,0},{9,0}};
D.floata[2][]={{0,3,8},{0,9,0}};
42.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p=b,**q=&p;printf("%d",*(p++));printf("%d,",**q);}
A.4,4B.2,2C.4,5D.2,4
43.一個數(shù)據(jù)元素第一個元素的存儲地址是100,每個元素的長度為2,則第5個元素的地址是()。
A.110B.108C.100D.120
44.對如下二叉樹:ABDECF進行后序遍歷的結(jié)果為()。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
45.有以下程序main(){inti=0,s=0;for(;;){if(i==3||i==5)continue;if(i==6)break;i++;s+=i;};printf("%d\n",s);}程序運行后的輸出結(jié)果是______。
A.10B.13C.21D.程序進入死循環(huán)
46.有以下結(jié)構(gòu)體說明和變量定義,如下圖所示,指針p、q、r分別指向一個鏈表中的3個連續(xù)結(jié)點。structnode{intdata;structnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指結(jié)點的先后位置交換,同時要保持鏈表的連續(xù),以下錯誤的程序段是()。
A.r->next=q;q->next=r->next;p->next=r;
B.q->next=r->neaxt;p->next=r;r->next=q;
C.p->next=r;q->next=r->next;r->next=q;
D.q->next=r->next;r->next=q;p->next=r;
47.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運行后的輸出結(jié)果是______。
A.運行后報錯B.66C.611D.510
48.若有運算符:>、*=、<<、%、sizeof,則它們按優(yōu)先級(由低至高)的正確排列次序為()。
A.*=<<>%sizeof
B.<<*=>%sizeof
C.%=><<sizeof%
D.*=><<%sizeof
49.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[20],*p[4];inti,k=0;for(i=0;i<20;i++)a[i]=i;for(i=0;i<4;i++)p[i]=&a[i*i+1];for(i=0;i<4;i++){k=k+*p[i];}printf("%d",k);}
A.10B.18C.6D.數(shù)組元素引用不合法,輸出結(jié)果不定
50.“商品”與“顧客”兩個實體集之間的聯(lián)系一般是
A.一對一B.一對多C.多對一D.多對多
51.有以下程序
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序執(zhí)行后的輸出結(jié)果是
A.x=4B.x=8C.x=6D.x=12
52.在下列敘述中,正確的一條是()
A.語句int*pt中的*pt是指針變量名
B.語句"int*p=a;"等價于"int*p;p=&a[0];”
C.運算符*和&都是取變量地址的運算符
D.已知指針變量p指向變量a,則&a和*p值相同,都是變量a的值
53.設(shè)intb=2;,則表達式(b<<2)/(b>>1)的值是______。
A.0B.2C.4D.8
54.以下程序的結(jié)果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5;b=7fun();printf("%d%d\n",a,b);}
A.100200B.57C.200100D.75
55.在進行單元測試時,常用的方法是
A.采用白盒測試,輔之以黑盒測試B.采用黑盒測試,輔之以白盒測試C.只使用白盒測試D.只使用黑盒測試
56.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負責(zé)數(shù)據(jù)的查詢及增、刪、改等操作的是
A.數(shù)據(jù)定義語言B.數(shù)據(jù)轉(zhuǎn)換語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
57.設(shè)有下列二叉樹:
對此二叉樹中序遍歷的結(jié)果為______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
58.有以下程序main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);}程序運行后輸出結(jié)果是
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8;8,7
59.當(dāng)說明一個結(jié)構(gòu)體變量時系統(tǒng)分配給它的內(nèi)存是()。
A.各成員所需要內(nèi)存量的總和
B.結(jié)構(gòu)中第一個成員所需的內(nèi)存量
C.成員中占內(nèi)存最大者所需的容量
D.結(jié)構(gòu)中最后一個成員所需要的內(nèi)存量
60.下列敘述錯誤的是()。
A.在C語言中的保留字必須小寫
B.變量的存儲類型決定了變量的存儲位置及其生存期
C.宏定義以#define開頭,行末必須加分號
D.在C語言中的注釋行可以出現(xiàn)在程序的任何位置
四、選擇題(20題)61.在E—R圖中,用來表示實體聯(lián)系的圖形是()。
A.橢圓形B.矩形C.菱形D.三角形
62.有以下程序:
point(char*p){*p=’d’;}
main()
{charb[4]={’a’,’b’,’c’,’d’},*p=b;
Point(p);printf("%c\n",*p);
}
程序運行后的輸出結(jié)果是()。
A.a(chǎn)B.bC.cD.d
63.
64.以下程序運行后的輸出結(jié)果是()。
A.zB.0C.元素Ch[5]地址D.字符y的地址
65.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10
66.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inti,S=0;
for(i=1;i<10;i++)
if(!(i%2)&&!(i%3))s+=i;
printf("%d\n",s);
}
A.4B.39C.45D.6
67.軟件(程序)調(diào)試的任務(wù)是()。
A.診斷和改正程序中的錯誤B.盡可能多地發(fā)現(xiàn)程序中的錯誤C.發(fā)現(xiàn)并改正程序中的所有錯誤D.確定程序中錯誤的性質(zhì)
68.
69.
70.以下程序的輸出結(jié)果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1
71.有以下程序程序運托舌的輸出結(jié)果是()。
A.1,2B.1,0C.3,2D.0,0
72.
73.下列說法不正確的是
A.?dāng)?shù)據(jù)庫減少了數(shù)據(jù)冗余B.?dāng)?shù)據(jù)庫實現(xiàn)了數(shù)據(jù)的共享
C.?dāng)?shù)據(jù)庫避免了一切數(shù)據(jù)的重復(fù)D.?dāng)?shù)據(jù)庫具有較高的數(shù)據(jù)獨立性
74.有下列函數(shù)定義:intfun(doublea,doubleb){returna*b;}若下列選項中所用變量都已經(jīng)正確定義并賦值,錯誤的函數(shù)調(diào)用是()。A.if(fun(x,y)){……}
B.z=fun(fun(x,y),fun(x,y));
C.z=fun(fun(X,y)x,y);
D.fun(x,y);
75.
76.有以下程序:
#include<stdio.h>
#defineN3
voidfun(inta[][N],intb[])
{inti,j;
for(i=0;i<N;i++)
{b[i]=a[i][0];
for(j=i;j<N;j++)
if(b[i]<a[i][j])b[i]=a[i][j];
}
}
main()
{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序運行后的輸出結(jié)果是(,)。
A.2,4,8,
B.3,6,9,
C.3,5,7,
D.1,3,5,
77.
78.在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是()。
A.各模塊應(yīng)包括盡量多的功能
B.各模塊的規(guī)模應(yīng)盡量大
C.各模塊之間的聯(lián)系應(yīng)盡量緊密
D.模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度
79.
80.以下是正確C語言實型常量的是()。
A..e—1B.e一1C.一1eD.1e一1
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n的值,計算如下公式的值。t=1-1/(2*2)-1/(3*3)-…-l/(n*n)例如,當(dāng)n=7時,t=0.488203。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc(),它的功能是:將str所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入abcdel23,則應(yīng)輸出aBcDe123。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B解析:選項A)中,定義的初值個數(shù)大于數(shù)組的長度;選項C)中,數(shù)組名后少了中括號;選項D)中,整型數(shù)組不能賦予字符串。
2.Dchange函數(shù)接收一個整型指針data,然后將data指向的數(shù)對2求余,求余后的值重新賦給data指向的變量,最后將data指向的變量值加1后返回。注意,此處data指向的數(shù)對2求余會改變實參指針指向的值,但返回值并不影響data指向的值。程序第1次調(diào)用change函數(shù),傳入實參data的地址,將data的值修改為0(12%2=0),此時輸出data的值是0;再次調(diào)用change傳入data的地址,將data的值修改為0(0%2=0),然后將返回值1重新賦給主函數(shù)變量data,所以此時輸出data的值是1。綜上,程序輸出0,1,。故本題答案為D選項。
3.A解析:本題考查帶參數(shù)的宏定義,參數(shù)只是簡單的替換而不是求出其值后再替換形式參數(shù)。本題中用a++替換X,用b++替換Y,再求(a++)*(b++)的值,即3*4的值,其結(jié)果為12。
4.C解析:z=x++是先把x的值1賦給z,所以z=1,然后再把x加1賦給x,x=2,++y后y又加1,所以y=3。
5.A解析:static變量用于局部變量中有記憶功能和全局生存期。函數(shù)中的靜態(tài)變量的特點是每次調(diào)用函數(shù),靜態(tài)變量的值是上次調(diào)用完該函數(shù)后的靜態(tài)變量值,所以在此題中,第一調(diào)用函數(shù),返回1,此時函數(shù)中的靜態(tài)變量n的值為l,所以第二次調(diào)用函數(shù)時,返回值為2。
6.A
7.AC語言中的轉(zhuǎn)義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結(jié)束,因此計數(shù)為3。故本題答案為A選項。
8.D
9.C因為x=0xFFFF=11111111,因此當(dāng)以整型形式輸出時對應(yīng)的數(shù)為一1。
10.A本題考查了雙重三目運算符的用法。例如:表達式a>b?c:d可以看成,當(dāng)a>b時取C的值,否則取d的值。在本題中k=a>b?(b>c?1:0):0可以看做:當(dāng)b>c時為真,則k=a>b?1:0。當(dāng)bb?0:0。也就是說,當(dāng)a>b并且b>C時,k=1,否則k=0。所以A選項符合題意。
11.D
12.B所有的C程序都必須經(jīng)過編譯鏈接無誤之后才能運行。在運行過程中,由計算機完成程序中的所有運算。由于計算機只能識別二進制,所以所有的運算都以二進制方式進行,而不是十進制。
13.B
14.A
15.D
16.D
17.D
18.BB?!窘馕觥靠疾椴藛巍T诓藛沃谢謴?fù)系統(tǒng)菜單用的是SETSYSMENUTODEFAULT。所以答案選擇B。
19.B程序定義兩個字符變量c1和c2。for循環(huán)中,首先為c1賦值‘0’,為c2賦值‘9’,接著判斷c1和C2的大小。由于字符變量可以作為整型數(shù)處理,數(shù)字字符的ASCII值按字面數(shù)值的大小順序連續(xù)遞增,因此c1小于c2成立,執(zhí)行循環(huán)體輸出“09”,再將c1自增1,c2自減1后,執(zhí)行下一輪循環(huán),直到c1=‘5’,c2=‘4’時,c1<c2不成立,循環(huán)終止。最終程序段輸出:0918273645。故本題答案為B選項。
20.A關(guān)系SC中的主鍵是(S#,C#),但C#(課程號)單獨就可以決定Cn(課程名),存在著對主鍵的部分依賴。本題答案為A選項。
21.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。
22.1212解析:x=(表達式1,表達式2,…)的形式,結(jié)果為最后一個表達式的值:x=(a=4,6*2)=2*6=12。
23.int**zint*\r\n*z解析:函數(shù)希望通過形參z帶回結(jié)果,形參z必須是指針類型的。由于返回整型結(jié)果,所以第一處填int*;函數(shù)返回前必須先把結(jié)果通過形參z間接引用傳回,第二處應(yīng)填*z。
24.前驅(qū)一后繼前驅(qū)\r\n一\r\n后繼
25.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由題面中提供的計算pi的公式可知;在第i項其值為1/(i*i),考慮到運算結(jié)果為浮點數(shù),故必須要將1轉(zhuǎn)化為浮點數(shù)或采用1.0/(i*i)的形式。故本題應(yīng)填1.0/(i*i)或其等效形式。
26.00解析:在本題中,d=(a>b>c);相當(dāng)于d=(5>4>3);其計算過程為:先算5>4,結(jié)果為真,得1,即d=(1>3);然后計算1>3,結(jié)果為假,得0。
27.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
28.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標(biāo)號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1。
29.07
30.1111解析:本題考核的知識點是printf()函數(shù)的輸出格式。本題中定義了一個整型變量i并賦初值為9,然后要求以八進制輸出i的值,9的八進制數(shù)的表示為11。
31.43214321解析:靜態(tài)存儲類的局部變量其生存期為整個程序的運行期間,作用域卻只是定義它的函數(shù)或局部范圍。注意:局部變量和全局變量的作用域。
32.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
33.x/10case0:case1:case2:case3:case4:case5:case9:x/10\r\ncase0:case1:case2:case3:case4:case5:\r\ncase9:
34.順序存儲(順序方式存儲)順序存儲(順序方式存儲)解析:二分法查找對表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲。
35.升序排列和降序排列升序排列和降序排列解析:ASC表示升序排列,DESC表示降序排列,多用在索引定義和SELECT語句中的ORDER子句中。
36.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d,格式輸出的,即輸出其相應(yīng)ASCII碼值68。
37.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語句和switch語句)和循環(huán)結(jié)構(gòu)(包括for語句、while語句、do…while語句)。
38.-4-4解析:因為n=0,所以!n為真,執(zhí)行x-=1;得到x=x=2-1=1;m=1為真,執(zhí)行x-=2;得到x=x-2=1-2=-1;x=-1為真,執(zhí)行x-=3;得到x=x-3=-1-3=-4。
39.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本題主要考查了插入排序。由于程序中的數(shù)組在開始己經(jīng)按從小到大順序排序排好。在插入時,首先要查到第一個大于恃插入數(shù)的數(shù)組下標(biāo),即當(dāng)待插入元素小于數(shù)組中當(dāng)前元素時,記下數(shù)組的當(dāng)前下標(biāo)p,并結(jié)束循環(huán),故第一空目的是為了記下數(shù)組下標(biāo),應(yīng)填p=i;插入排序的第二部是將大于待插入元素的所有元素都向后移動—位,故在循環(huán)時,要從最后一個元素到第p個元素都要后移一位,因此第二空應(yīng)填>i=p。最后一個循環(huán)是將N+1個元素都輸出,故最后一空應(yīng)為i<=N。(注:本題有多種答案,以上僅提供一種)
40.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉(zhuǎn)換類型轉(zhuǎn)換運算符,將一個表達式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎ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
41.B解析:在選項B)中,因為數(shù)組的第一維的數(shù)目不明確,所以理解會有歧義,可以理解為1行3列,或者2行3列等。所以選項B)錯誤。注意:數(shù)組中元素的引用。
42.D解析:首先定義了一個指向一維數(shù)組b的指針p,一個指向指針p的指針變量q,輸出*(p++)是先輸出*p即b[0]的值,再將指針p指向數(shù)組的下一個元素b[1],輸出**q是輸出指針p所指單元的內(nèi)容,即b[1]的值。
43.B解析:數(shù)據(jù)元素的存儲位置均取決于第一個數(shù)據(jù)元素的存儲位置,即:
LOC(aj)=LOC(a)1+(i-1)C
↑↑
基地址一個數(shù)據(jù)元素所占的字節(jié)數(shù)
所以第5個元素的地址=100+2×(5-1)=108。
44.D
45.D解析:本題程序中的for循環(huán)省略了for語句的3個表達式,如果循環(huán)體中沒有break語句的話則為死循環(huán)。循環(huán)中每次i被增1,當(dāng)i到6時才能執(zhí)行到break語句跳出循環(huán),但是當(dāng)i自增到3的時候會執(zhí)行continue語句重新循環(huán),此時后面的“i++;”語句執(zhí)行不到,i的值為3一直沒有改變,所以continue語句始終要執(zhí)行,因此for循環(huán)將一直循環(huán)下去,所以,4個選項中選項D符合題意。
46.A解析:題目中要求將q和r所指結(jié)點的先后位置交換,即要求p所指結(jié)點的指針域指向r所指向的結(jié)點,r所指向結(jié)點的指針域指向q所指向的結(jié)點,q所指向結(jié)點的指針域指向r所指向的結(jié)點。選項A首先讓r所指向指針的指針域指向q所指向的結(jié)點,這樣就將r所指向結(jié)點的指針域指向的結(jié)點丟失了,故選項A錯誤。選項B首先讓q所指向結(jié)點的指針域指向r所指向結(jié)點的指針域所指向的結(jié)點,然后,讓p所指向結(jié)點的指針域指向r所指向的結(jié)點,最后讓r所指向結(jié)點的指針域指向q所指向的結(jié)點,滿足要求,故選項B正確。選項C首先讓p所指向結(jié)點的指針域指向r所指向的結(jié)點,然后讓q所指向結(jié)點的指針域指向r所指向結(jié)點的指針域所指向的結(jié)點,最后讓r所指向結(jié)點的指針域指向q所指向的結(jié)點,滿足要求,故選項C正確。選項D首先讓q所指向結(jié)點的指針域指向r所指向結(jié)點的指針域所指向的結(jié)點,然后,讓r所指向結(jié)點的指針域指向q所指向的結(jié)點,最后讓p所指向結(jié)點的指針域指向r所指向的結(jié)點,滿足要求,故選項D正確。所以,4個選項中選項A符合題意。
47.A解析:本題考核的知識點是通過指針引用數(shù)組的元素的方法.本題中首先定義了一個一維數(shù)組a并初始化,由于定義該數(shù)組的時候省略了長度,因此該數(shù)組的長度為初始化時候賦初值的個數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p=a+5語句使得p指向數(shù)組的第6個元素,而在程序中定義了一個指針q并讓它指向空,實際上程序并沒有在內(nèi)存中為指針q開辟存儲空間,這樣給q賦值不允許的,故該程序運行后報錯。所以,4個選項中選項A符合題意。
48.D解析:本題主要考查算術(shù)運算的優(yōu)先級。順序如下:
[*]
注:*=、>、<<、%、sizeof的優(yōu)先級依次遞增。
49.B解析:第一個for循環(huán),給數(shù)組a的20個元素分別賦值0~19;第二個for循環(huán),給數(shù)組p賦值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三個for循環(huán),將數(shù)組p中元素的值進行累加,k=1+2+5+10=18。
50.D解析:兩個實體間的聯(lián)系可以歸納為3種類型:一對一聯(lián)系:一對一的聯(lián)系表現(xiàn)為主表中的每一條記錄只與相關(guān)表中的一條記錄相關(guān)聯(lián)。一對多聯(lián)系,一對多的聯(lián)系表現(xiàn)為主表中的每一條記錄與相關(guān)表中的多條記錄相關(guān)聯(lián)。多對多聯(lián)系:多對多的聯(lián)系表現(xiàn)為二個表中的多個記錄在相關(guān)表中同樣有多個記錄其匹配。本題中一個顧客可以購買多種商品,同一種商品可以有多個顧客購買,所以商品和顧客之間是多對多的聯(lián)系。
51.B解析:此程序考察了for循環(huán)和x++。對于大循環(huán),有兩個x++,其中循環(huán)3次,對于小循環(huán),循環(huán)三次,但是運行了兩次x++,所以最后結(jié)果是6+2=8。
52.D
53.D
54.B解析:全程變量是可以在子函數(shù)中對其值作改變,且它也可作為函數(shù)間的值傳遞。但當(dāng)函數(shù)或子函數(shù)中定義了與全程變量名稱相同的局部變量,則全程變量將被屏蔽。
55.A解析:單元測試的步驟如下:
①理解需求和設(shè)計。清楚被測試模塊在整個軟件中所處的位置。一個原則是:好的設(shè)計,各模塊只負責(zé)完成自己的事情,層次與分工明確。單元測試時,可以不測試不屬于被測模塊所負責(zé)的功能,以減少測試用例的冗余。
②概覽源代碼。瀏覽源代碼,初步檢查源代碼的編碼風(fēng)格與規(guī)范,大致估算測試工作量,確定模塊的復(fù)雜程度,初步制定測試的優(yōu)先級等。
③精讀源代碼。認真閱讀和分析代碼,理解代碼的業(yè)務(wù)邏輯,檢查代碼與設(shè)計是否相符,仔細研究邏輯復(fù)雜的模塊,可采用一些檢查列表來檢查程序可能會出現(xiàn)的問題。
④設(shè)計測試用例。綜合運用白盒測試方法(并結(jié)合黑盒測試方法)設(shè)計測試用例,包括功能測試、性能測試等,要達到一定的測試覆蓋率。本題正確答案為選項A。
⑤搭建單元測試環(huán)境。這個階段主要就是寫樁模塊和驅(qū)動模塊,然后驅(qū)動模塊想辦法獲取被測試模塊對數(shù)據(jù)的處理結(jié)果,并判定返回的實際結(jié)果與測試用例的預(yù)
期結(jié)果是否一致,通過測試框架來記錄執(zhí)行的結(jié)果,對于出現(xiàn)的錯誤,還需統(tǒng)計錯誤的信息,供執(zhí)行完之后分析。
⑥執(zhí)行測試。運行寫好的驅(qū)動模塊完成對被測試模塊的測試。
⑦補充和完善測試用例。在測試過程中不斷補充測試用例,直到滿足要求為止。
⑧分析結(jié)果,給出評價。根據(jù)測試的結(jié)果分析、查找錯誤的原因,并找到解決的辦法。測試結(jié)束之后,根據(jù)測試過程的數(shù)據(jù)統(tǒng)計,給出被測試對象評價。
56.C【解析】在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)操縱語言負責(zé)數(shù)據(jù)的查詢及增、刪、改等操作。故答案為C。
57.B解析:所謂中序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。
58.C解析:程序中定義了兩個變量a和b,并分別賦初值為7和8,定義了三個指針變量p、q、r,并讓指針p指向變量a,讓q指向變量b,然后通過一個中間指針變量f,使指針變量p和q互換,互換后p指向q所指的內(nèi)容即b,q指向開始p所指向的內(nèi)容即a,因此最后輸出的*p,*q的值為8,7,a,b的值沒有改變?nèi)詾?,8。
59.A解析:本題主要考查結(jié)構(gòu)體的內(nèi)存使用:對結(jié)構(gòu)體而言,結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨立。
60.C解析:本題涉及C語言最基本的4個知識點:①C語言的保留字必須小寫;②變量的存儲類型不同,其存儲位置和生存期也不一樣:③C語言允許其注釋部分出現(xiàn)在程序中的任何位置;④宏定義以#define開頭,行末不需要加分號。
61.CC?!窘馕觥縀—R圖也即實體~聯(lián)系圖(EntityRelationshipDiagram),提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型,構(gòu)成E—R圖的基本要素是實體型、屬性和聯(lián)系,其表示方法為:實體型(Entity):用矩形表示,矩形框內(nèi)寫明實體名;屬性(Attribute):用橢圓形表示,并用無向邊將其與相應(yīng)的實體連接起來;聯(lián)系(Relationship):用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標(biāo)上聯(lián)系的類型(1:1,1:n或m:n)。
62.D函數(shù)調(diào)用和值傳遞;*p=b,使p指向b的首地址,*p=’d’,重新對p進行賦值,因為傳遞的是地址值,所以可以改變實參的的值。
63.B
64.A表達式*(pc+5)先將指針向后移動5
65.D本題考查continue的用法,continue語句的作用是結(jié)束本次循環(huán),直接進行下次循環(huán)。所以在程序中,只有當(dāng)a=10時,才退出循環(huán),故選擇D選項。
66.D
\nif語句的條件是當(dāng)i既是3的倍數(shù)又是2的倍數(shù)時成立,所以此程序?qū)崿F(xiàn)的功能是將10以內(nèi)既是3的倍數(shù)又是2的倍數(shù)的數(shù)相加。
\n
67.A解析:軟件調(diào)試的任務(wù)是診斷和
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年股權(quán)激勵合同:股權(quán)獎勵與業(yè)績掛鉤條款3篇
- 2025年度濾袋材料費用合同采購與項目進度管理合同3篇
- 2025年度網(wǎng)絡(luò)安全防護設(shè)備采購合同范本與安全等級保護2篇
- 學(xué)生校園欺凌情況調(diào)查問卷
- 敢于擔(dān)當(dāng)善于化解難題體會
- 護理人力資源管理1
- 黨史知識競賽題庫及答案-一起學(xué)習(xí)黨史吧
- 八一南昌起義的意義是什么
- 2024版地方特色農(nóng)產(chǎn)品購銷合作合同版
- 2024集體土地租賃協(xié)議書
- 事業(yè)單位登記管理講座課件
- 柴油加氫設(shè)備-加氫循環(huán)氫壓縮機
- 中小學(xué)德育工作指南考核試題及答案
- 雪夜的老人閱讀答案6篇
- 2022數(shù)學(xué)課程標(biāo)準(zhǔn)解讀及實踐:八下平行四邊形大單元設(shè)計
- 昌樂二中271課堂教學(xué)模式
- 深基坑變形監(jiān)測方案
- 衛(wèi)生專業(yè)技術(shù)資格任職聘用證明表
- GB/T 3077-2015合金結(jié)構(gòu)鋼
- GB/T 25003-2010VHF/UHF頻段無線電監(jiān)測站電磁環(huán)境保護要求和測試方法
- GB/T 15326-1994旋轉(zhuǎn)軸唇形密封圈外觀質(zhì)量
評論
0/150
提交評論