版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022年湖北省隨州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()
A.無(wú)序線性表B.線性鏈表C.二叉鏈表D.順序存儲(chǔ)的有序表
2.程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.20D.21
3.
4.以下不合法的用尸標(biāo)識(shí)符是()。A.A.804zhangB._hhC.yy614D.If
5.
6.若已定義x和y是整型變量,x=2;,則表達(dá)式y(tǒng)=2.75+x/2的值是()。
A.5.5B.5C.3D.4.0
7.設(shè)二叉樹(shù)的中序序列為BCDA,前序序列為ABCD,則后序序列為()。
A.CBDAB.DCBAC.BCDAD.ACDB
8.設(shè)有定義:floata=2,b=4,h=3;,以下C語(yǔ)言表達(dá)式與代數(shù)式計(jì)算結(jié)果不相符的是()。
A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)
9.下列敘述中正確的是A.程序設(shè)計(jì)就是編制程序
B.程序的測(cè)試必須由程序員自己去完成
C.程序經(jīng)調(diào)試改錯(cuò)后還應(yīng)進(jìn)行再測(cè)試
D.程序經(jīng)調(diào)試改錯(cuò)后不必進(jìn)行再測(cè)試
10.有以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{int*a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b
printf(”%d,%d,%d\n”,*a,*b,*c);
}
程序運(yùn)行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
11.下列程序的輸出的結(jié)果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07
12.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果()
A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值
13.
14.下列關(guān)于函數(shù)的敘述中正確的是()。A.A.每個(gè)函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))
B.每個(gè)函數(shù)都可以被單獨(dú)編譯
C.每個(gè)函數(shù)都可以單獨(dú)運(yùn)行
D.在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)
15.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1
16.若有定義int(*pt)[3];,則下列說(shuō)法正確的是A.定義了基類型為int的三個(gè)指針變量
B.定義了基類型為int的具有三個(gè)元素的指針數(shù)組pt
C.定義了一個(gè)名為*pt、具有三個(gè)元素的整型數(shù)組
D.定義了一個(gè)名為pt的指針變量,它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組
17.下列敘述中正確的是______。
A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性列表是非線性性結(jié)構(gòu)D.二叉樹(shù)是線性結(jié)構(gòu)
18.在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測(cè)試計(jì)劃B.軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)C.用戶手冊(cè)D.軟件需求規(guī)格說(shuō)明書(shū)
19.
20.設(shè)abcdef以所給的次序進(jìn)棧,若在進(jìn)棧操作時(shí),允許退棧操作,則下面得不到的序列為()。
A.fedcbaB.bcafedC.dcefbaD.cabdef
二、2.填空題(20題)21.以下程序運(yùn)行后的輸出結(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;
}
printf("%d%d\n",a,b);
}
22.已知字符'A'的ASCII碼值為65,以下語(yǔ)句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
23.診斷和改正程序中錯(cuò)誤的工作通常稱為【】。
24.下列程序執(zhí)行輸出的結(jié)果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(a);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%dh",k);
}
25.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為【】。
26.以下程序運(yùn)行結(jié)果是【】。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0‖x==1)return(2);
p=x*func(x-1);
return(p);}
main()
{printf("%d\n",func(4));}
27.在關(guān)系數(shù)據(jù)庫(kù)中把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【】。
28.若x、y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。
x=(y=4)+(z=3)
29.當(dāng)m=1,n=2,a=3,b=2,c=4時(shí),執(zhí)行d=(m=a!=B)&&(n=b>C)后,m的值為()。
30.若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},<1,3,5,7}},則初始化后,a[2][2]得到的初值是______。
31.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
32.實(shí)體聯(lián)系模型是一種常用的高級(jí)概念數(shù)據(jù)模型,而______是實(shí)體聯(lián)系模型中的核心。
33.以下程序的輸出結(jié)果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
34.買來(lái)一張新盤(pán)后,在存入文件前,必須進(jìn)行【】處理。
35.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=-a;a=c;c=t;
if(a<c&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
36.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
#deftneJFT(x)x*x
main()
{inta,k=3;
a=++JFT(k+1);
printf("%d",a);
}
37.要求使下列程序輸出5個(gè)整數(shù),請(qǐng)?zhí)羁铡?/p>
for(i=0;i<=______;printf("%d\n",i+=2));
38.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
39.以下程序的輸出結(jié)果是______。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
40.若有以下程序
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é)果是【】。
三、1.選擇題(20題)41.已有定義int(*q)(),指針q可以()。
A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
42.若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()
43.以下程序的輸出結(jié)果是()voidfun(float*p1,float*p2,float*s){s=(float*)calloc(1,sizeof(float));*s=*p1+*p2++;}main(){floats[2]={1.1,2.2},b[2]=<10.0,20.0},*s==a;fun(a,b,s);printf("%5.2f\n",*s);}
A.11.1B.12C.21.1D.1.1
44.以下合法的賦值語(yǔ)句是()
A.x=y=100B.d--;C.x+y;D.c=int(a+b);
45.以下標(biāo)識(shí)符不是關(guān)鍵字的是()。
A.breakB.charC.switchD.return
46.設(shè)有下列二叉樹(shù):
對(duì)此二叉樹(shù)先序遍歷的結(jié)果為
A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA
47.設(shè)有定義:structsk{inta;floatb;}data,*p;若有p=&data;,則對(duì)data中的a域的正確引用是()
A.(*p).data.aB.(*p).aC.p->data.aD.p.data.a
48.下列選項(xiàng)中合法的賦值語(yǔ)句是()。
A.a-b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);
49.若要用fopen函數(shù)打開(kāi)一個(gè)文本文件,該文件要既能讀也能寫(xiě),則文件使用方式的字符串為()。
A.r+B.a+C.rb+D.'wb+"
50.若執(zhí)行下面程序時(shí)從鍵盤(pán)上輸入5,main(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x-);}則輸出是_______。
A.7B.6C.5D.4
51.以下合法的C語(yǔ)言賦值語(yǔ)句是()。
A.a=b=58B.k=int(a-b):C.a=58,b=20D.++i;
52.下述語(yǔ)句中,在字符串sl和s2相等時(shí)顯示“theyareEqual”的是()。
A.if(*s1==*s2)puts("theyareEqual");
B.if(!strcmp(s1,s2))puts("theyareEqual");
C.if(s1==s2)Puts("theyareEqual");
D.if(strcmp(s1,s2))puts("theyareEqual”);
53.有以下程序:matin(){char*s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[o]);}執(zhí)行后的輸出結(jié)果是______。
A.n,twoB.t,oneC.w,oneD.o,two
54.有以下程序intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}程序運(yùn)行后的輸出結(jié)果是
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
55.有以下程序voidf(int*x,int*y){intt;t=*X;*X=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7);while(p>q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是
A.8,2,3,4,5,6,7,1,
B.5,6,7,8,1,2,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1,
56.有以下結(jié)構(gòu)體說(shuō)明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的三個(gè)連續(xù)節(jié)點(diǎn)。structnode{intdata;structnode*next;}*P,*q,*r;現(xiàn)要將q所指節(jié)點(diǎn)從鏈表中刪除,同時(shí)要保持鏈表的連續(xù),
以下不能完成指定操作的語(yǔ)句是()。
A.p->next=q->next;
B.p->next=P->next->next;
C.p->next=r;
D.p=q->next;
57.以下敘述中正確的是()。
A.C語(yǔ)言的源程序不必通過(guò)編譯就可以直接運(yùn)行
B.C語(yǔ)言中的每條可執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行
D.C語(yǔ)言中的函數(shù)不可以單獨(dú)進(jìn)行編譯
58.以下敘述中正確的是
A.全局變量的作用域一定比局部變量的作用域范圍大
B.靜態(tài)(static)類型變量的生存期貫穿于整個(gè)程序的運(yùn)行期間
C.函數(shù)的形參都屬于全局變量
D.未在定義語(yǔ)句中賦初值的auto變量和static變量的初值都是隨機(jī)值
59.兩次運(yùn)行下列的程序,如果從鍵盤(pán)上分別輸入3和1,則輸出結(jié)果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}
A.4和2B.4和1C.4和0D.3和1
60.下列選項(xiàng)中不屬于軟件生命周期開(kāi)發(fā)階段任務(wù)的是()。
A.軟件測(cè)試B.概要設(shè)計(jì)C.軟件維護(hù)D.詳細(xì)設(shè)計(jì)
四、選擇題(20題)61.
62.下列敘述中正確的是()。
A.軟件測(cè)試應(yīng)該由程序開(kāi)發(fā)者來(lái)完成
B.程序經(jīng)調(diào)試后一般不需要測(cè)試
C.軟件維護(hù)只包括對(duì)程序代碼的維護(hù)
D.以上三種說(shuō)法都不對(duì)
63.(48)軟件調(diào)試的目的是()
A.發(fā)現(xiàn)錯(cuò)誤
B.改正錯(cuò)誤
C.改善軟件的性能
D.挖掘軟件的潛能
64.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為_(kāi)_____。
A.不確定B.編譯錯(cuò)誤C.gD.輸出null字符
65.
現(xiàn)有以下結(jié)構(gòu)體說(shuō)明和變量定義,如圖所示,指針p、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。
structnode
{bardata;
structnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指結(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語(yǔ)句是()。
A.q->next=r->next;P>next=r;r->next=q;
B.q->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;P->next=r:
D.q->next=q;P->next=r;q->next=r->next;
66.有以下程序段:
為使程序段不陷入死循環(huán),從鍵盤(pán)鍵入的數(shù)據(jù)應(yīng)該是()。
A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
67.在關(guān)系數(shù)據(jù)庫(kù)中,用來(lái)表示實(shí)體間聯(lián)系的是()。
A.網(wǎng)狀結(jié)構(gòu)B.樹(shù)狀結(jié)構(gòu)C.屬性D.二維表
68.
69.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.9B.6C.11D.7
70.
71.設(shè)已有定義:floatx;,則以下對(duì)指針變量P進(jìn)行定義且賦初值的語(yǔ)句中正確的是()。
A.int*p=(float)x;
B.float*p=&x;
C.floatp=&x;
D.float=1024;
72.以下敘述中錯(cuò)誤的是()。
A.C語(yǔ)言編寫(xiě)的函數(shù)源程序,其文件名后綴可以是C
B.C語(yǔ)言編寫(xiě)的函數(shù)都可以作為一個(gè)獨(dú)立的源程序文件
C.C語(yǔ)言編寫(xiě)的每個(gè)函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行
D.一個(gè)C語(yǔ)言程序只能有一個(gè)主函數(shù)
73.若有定義:“int*P,x=0,*p,p=&x;”,則語(yǔ)句“printf("%d\n",*p);”的輸出結(jié)果是()。
A.隨機(jī)值B.0C.x的地址D.P的地址
74.以下選項(xiàng)中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L
75.
76.有以下函數(shù)該函數(shù)的功能是()。
A.計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
B.比較兩個(gè)字符串的大小
C.計(jì)算s所指字符串的長(zhǎng)度
D.將s所指字符串復(fù)制到字符串t中
77.若有定義語(yǔ)句:intx=10;,則表沃式㈣的值為()。A.一10B.-20C.0D.10
78.在軟件設(shè)計(jì)中,不屬于過(guò)程設(shè)計(jì)工具的是()。
A.PDLB.DFD圖C.PAD圖D.N—S圖
79.
有下列程序:
main
{intk=5:
while(--k)printf("%d",k=1);
printf("\n");
}
執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.4D.死循環(huán)
80.若有定義語(yǔ)句:“intx=12,y=8,z;”,在其后執(zhí)行語(yǔ)句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算str所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc,其功能是將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)個(gè)位和十位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和千位上。例如,當(dāng)a=25,b=43,實(shí)際輸入時(shí)個(gè)數(shù)之間以Enter鍵分隔,調(diào)用該函數(shù)后,c=3452。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.DD)【解析】二分法查找只適用于順序存儲(chǔ)的有序表,表中的元素按值從小到大排列。
2.D[解析]聲明data是結(jié)構(gòu)S數(shù)組。初始化data[0].a=10;data[O]b=100;data[1].a=20;data[]b=200.主函數(shù)中p=data[1];即p.a=data[1].a;p.b=data[1].b;執(zhí)行語(yǔ)句prit("%odn",++(pa);打印輸出時(shí)p.a先增1再打印。p.a=data\u3000\u3000[1].a=20.先增1等于21.
3.B
4.AC語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或下劃線。
5.C
6.C
7.B二叉樹(shù)的前序序列為ABCD,由于前序遍歷首先訪問(wèn)根節(jié)點(diǎn),可以確定該二叉樹(shù)的根節(jié)點(diǎn)是A。再由中序序列為BCDA,可知以A為根節(jié)點(diǎn)的該二叉樹(shù)只存在左子樹(shù),不存在右子樹(shù),故后序序列為DCBA。本題答案為B選項(xiàng)。
8.B
9.C解析:軟件設(shè)計(jì)的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件沒(méi)計(jì)是確定系統(tǒng)的物理模型。軟件測(cè)試即使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過(guò)程,其日的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件調(diào)試后要進(jìn)行回歸測(cè)試,防止引進(jìn)新的錯(cuò)誤。
10.A解析:本題中,首先創(chuàng)建開(kāi)辟一個(gè)動(dòng)態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同的變量。分別給a、b、C所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量的值,即3,3,3。所以選A。
11.C根據(jù)賦值運(yùn)算的類型轉(zhuǎn)換規(guī)則,先將double型的常量l.2轉(zhuǎn)換為int型,因?yàn)閤的類型是int,則X的值為1;執(zhí)行語(yǔ)句y=(K+3.8)/5.0時(shí),即先將整型變量X的值1轉(zhuǎn)換為double型1.0,然后3.8相加得4.8,進(jìn)行除法運(yùn)算4.8/5.0結(jié)果為0.即變量y的值為0,d*Y的值也為0,故選C選項(xiàng)。
12.A
13.C
14.B在C語(yǔ)言中,函數(shù)定義是平行的,函數(shù)不能嵌套定義,即函數(shù)之間沒(méi)有從屬關(guān)系。雖然函數(shù)之間可以相互調(diào)用,但main函數(shù)不能被調(diào)用,選項(xiàng)A)錯(cuò)誤;C程序從main函數(shù)開(kāi)始執(zhí)行,當(dāng)main數(shù)執(zhí)行完畢時(shí),整個(gè)程序就結(jié)束了。C程序的執(zhí)行必須從main函數(shù)開(kāi)始,選項(xiàng)C)選項(xiàng)錯(cuò)誤;函數(shù)不能嵌套定義,選項(xiàng)D)錯(cuò)誤。
15.D124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所以選D。
16.D解析:定義了一個(gè)指向一維數(shù)組的指針,該一維數(shù)組具有三個(gè)int型元素,按照C語(yǔ)言中二維數(shù)組的定義知,二維數(shù)組先按照行排列,再按照列排列,故選D。
17.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹(shù)是非線性結(jié)構(gòu)。
18.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫(xiě)需求規(guī)格說(shuō)明書(shū)、需求評(píng)審四個(gè)方面。所以選擇D。
19.D
20.D
21.2121解析:本題考查switch語(yǔ)句。首先x=1,執(zhí)行switch(y),因?yàn)閥=0,所以執(zhí)行case0:a++;break;此時(shí)a=1執(zhí)行case2:a++;b++;這時(shí)a=2,b=1;最后輸出結(jié)果是21。
22.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。
23.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。程序調(diào)試與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于調(diào)試工具找出軟件錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,而調(diào)試主要在開(kāi)發(fā)階段。
24.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時(shí),a=c++8,所以k=8。
25.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。
26.4848解析:本題主要考查的是函數(shù)的遞歸調(diào)用,遞歸的終止條件是x==0或x==1,然后用已知值逐步遞推向上求未知值,直到得到最終的結(jié)果。
func(4)=4*func(3);
func(3)=3*func(2);
func(2)=2*func(1);
func(1)=2;
所以func(2)=2*2=4;
func(3)=3*4=12;
fune(4)=4*12=48。
27.關(guān)系或一個(gè)關(guān)系關(guān)系或一個(gè)關(guān)系解析:在關(guān)系數(shù)據(jù)庫(kù)中,把數(shù)據(jù)表示成二維表,而一個(gè)二維表就是一個(gè)關(guān)系。
28.77解析:x=(y=4)+(z=3)等價(jià)于y=4,z=3,x=y+z=4+3=7。
29.11解析:①“sizeof'、“%”、“>”、“<<”、“*=”,運(yùn)算符的優(yōu)先級(jí)順序?yàn)椋骸?=”→“>”→“<<”→“%”→“sizeof”;②位運(yùn)算的優(yōu)先級(jí)順序?yàn)椋骸啊薄埃迹肌薄埃荆尽薄?”→“^”。(b=2)>(c=4)不成立,邏輯為假,所以n=0;(a=3)!=(b=2)成立,邏輯為真,所以m=1。
30.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為a[0][0]、a(0][1]、a[0][2]、a[0][3]
31.11解析:ifelse語(yǔ)句的功能是:若表達(dá)式的值為真,執(zhí)行語(yǔ)句1,并跳過(guò)其他語(yǔ)句,執(zhí)行ifelse語(yǔ)句的下一條語(yǔ)句,若表達(dá)式的值為假,跳過(guò)語(yǔ)句1,執(zhí)行語(yǔ)句2,依次往下判斷。題中,x=3,y=2,第一個(gè)if語(yǔ)句的控制條件x<y就不滿足,又沒(méi)有與之配對(duì)的else語(yǔ)句,所以直接執(zhí)行printf語(yǔ)句,在整個(gè)過(guò)程中變量z的值都沒(méi)發(fā)生變化。
32.實(shí)體聯(lián)系圖或E-R圖實(shí)體聯(lián)系圖或E-R圖解析:實(shí)體聯(lián)系圖(B-R圖)是實(shí)體聯(lián)系模型中的核心。由于E-R圖描述的是數(shù)據(jù)流圖中數(shù)據(jù)存儲(chǔ)及其之間的關(guān)系,因此它是數(shù)據(jù)庫(kù)觀念設(shè)計(jì)的最常用的工具。
33.SOSO解析:考查用指針引用字符串?dāng)?shù)組中元素的方法。題中需要注意兩個(gè)問(wèn)題:一是for循環(huán)的修正表達(dá)式共執(zhí)行兩次'i--'操作;二是*p[i]是對(duì)某個(gè)字符的引用。
34.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
35.45994599解析:if語(yǔ)句只對(duì)緊跟其后的一條語(yǔ)句或語(yǔ)句塊產(chǎn)生作用。因此,題目中兩條if語(yǔ)句只有t=a;和t=b是if的子句。第1條if語(yǔ)句中b<a為假,所以跳過(guò)語(yǔ)句t=-a;,執(zhí)行a=c;c=t,a=5、b=4、c=99。第2條if語(yǔ)句的判斷條件a<c&&b<c為真,所以后面3條語(yǔ)句都被執(zhí)行,這3條語(yǔ)句構(gòu)成一次a和b的內(nèi)容交換。所以最后輸出的結(jié)果是:4599。
36.99解析:宏替換的原則是按原樣替換,本題中遇到形參x則以實(shí)參k+1替換,其他字符不變,所以JFT(k+1)經(jīng)替換后為k+1,k+1,則a=++k+1*k+1。若k的值為3,則經(jīng)過(guò)運(yùn)算為a=4+1*4+1=9。
37.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開(kāi)始,輸出5個(gè)整數(shù)則需要的條件是i<=8。
38.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
39.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒(méi)有發(fā)生變化,所以輸出結(jié)果為35。
40.99解析:函數(shù)的嵌套調(diào)用是在主函數(shù)中函數(shù)f(f(3,4),f(3,5))的返回值賦給d。函數(shù)的第一個(gè)參數(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))等價(jià)于函數(shù)f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9,所以輸出9。
41.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標(biāo)識(shí)符(*指針變量名)()。其中,“類型標(biāo)識(shí)符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。
42.Bscanf(\u3000)語(yǔ)句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開(kāi)始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來(lái)從終端鍵盤(pán)讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。
43.D
44.B解析:選項(xiàng)A的結(jié)尾沒(méi)用‘;’,所以不是一條語(yǔ)句:選項(xiàng)C中的表達(dá)式不會(huì)改變?nèi)魏巫兞康膬?nèi)容,也不是合法的賦值語(yǔ)句;選項(xiàng)D有語(yǔ)法錯(cuò)誤,int應(yīng)該加上括號(hào)。所以,4個(gè)選項(xiàng)中只有選項(xiàng)B符合題意,運(yùn)行后d的內(nèi)容被減一。
45.C解析:此題考查標(biāo)識(shí)符和關(guān)鍵字的概念。需要注意的是C語(yǔ)言是區(qū)分大小寫(xiě)的,switch是關(guān)鍵字,但Switch不是關(guān)鍵字。
46.C解析:二叉樹(shù)的遍歷分為先序,中序、后序三種不同方式.本題要求先序遍歷,其遍歷順序應(yīng)該為:訪問(wèn)根結(jié)點(diǎn)->,先序遍歷左子樹(shù)->先序遍歷右子樹(shù)。按照定義,先序遍歷序列是ABDECF,故答案為C。
47.B
48.D解析:選項(xiàng)A是一個(gè)合法的賦值表達(dá)式,但結(jié)尾沒(méi)加分號(hào),所以它不是一個(gè)賦值語(yǔ)句:選項(xiàng)B是一個(gè)逗號(hào)表達(dá)式,也因?yàn)榻Y(jié)尾沒(méi)有加分號(hào)而不是合法的賦值語(yǔ)句;選項(xiàng)C是一個(gè)算術(shù)表達(dá)式,雖然有分號(hào),但這個(gè)表達(dá)式?jīng)]有賦值操作,因此,也不是一條賦值語(yǔ)句。
49.A解析:選項(xiàng)A表示為讀/寫(xiě)打開(kāi)一個(gè)文本文件,符合題意;選項(xiàng)B表示為讀/寫(xiě)建立一個(gè)新的文本文件;選項(xiàng)C表示為讀/寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件:選項(xiàng)D表示為讀/寫(xiě)建立一個(gè)新的二進(jìn)制文件。故應(yīng)該選擇A。
50.B解析:根據(jù)C語(yǔ)言的語(yǔ)法,x++是使用x之后,再將x的值加1,在if語(yǔ)句中,x的值為5,條件不成立,執(zhí)行else后面的語(yǔ)句,因?yàn)閤的值已經(jīng)加1,為6,所以打印結(jié)果為6。
51.D解析:選項(xiàng)A和選項(xiàng)C中都沒(méi)有以“;”結(jié)束,故選項(xiàng)A和選項(xiàng)C都不是正確的賦值語(yǔ)句;選項(xiàng)B中強(qiáng)制轉(zhuǎn)換類型符int應(yīng)用括號(hào)括起來(lái),故選項(xiàng)B不正確,只有選項(xiàng)D是合法的C語(yǔ)言賦值語(yǔ)句。
52.B解析:字符串比較不能用兩個(gè)等號(hào)(==)來(lái)進(jìn)行比較,應(yīng)使用stremp(s1,s2)函數(shù)來(lái)比較。strcmp(s1,s2)函數(shù)的功能是:當(dāng)字符串s1和s2相等時(shí),返回值為0,因此,當(dāng)表達(dá)式!strcmp(s1,s2)==1時(shí),條件成立,執(zhí)行后面的語(yǔ)句,輸出theyareEqua1。
53.C解析:程序定義了一個(gè)指針數(shù)組s和一個(gè)字符型指針變量p。s有3個(gè)元素,其中s[0]指向字符串'one,s[1]指向字符串'two',s[2]指向字符串'three',執(zhí)行p=s[1]后p指向字符串'two',所以*(p+1)=w。
54.A解析:函數(shù)f1(x,y)的功能返回x,y中較大的一個(gè),而函數(shù)f2(x,y)的功能是返回x,y中較小的一個(gè),所以f1(a,b)=4,f1(c,d)=3,f2(c,d)=2,故e=f2(4,5),f=(3,2)=3,g=4+3+5+2-4-3=7。
55.D解析:在C語(yǔ)言中,函數(shù)參數(shù)的默認(rèn)傳遞方式是傳值,即函數(shù)內(nèi)部的形參只是調(diào)用時(shí)的實(shí)參的一個(gè)拷貝,改變形參,實(shí)參不會(huì)被改變.如果想要實(shí)現(xiàn)傳址調(diào)用只能使用傳遞指針的方式來(lái)實(shí)現(xiàn).利用指針作函數(shù)的參數(shù)時(shí),無(wú)論形參指針還是實(shí)參指針?biāo)傅亩际峭粋€(gè)內(nèi)存地址,所以形參如果改變了這個(gè)地址中的內(nèi)容,也就是改變了實(shí)參所指的地址內(nèi)容.本題程序開(kāi)頭定義了一個(gè)函數(shù)f(),在函數(shù)中用一個(gè)臨時(shí)變量t交換了兩個(gè)指針參數(shù)所指的地址內(nèi)容,所以該函數(shù)的作用就是交換兩個(gè)參數(shù)所指的內(nèi)容。在主函數(shù)中,首先定義了一個(gè)int型數(shù)組a,并定義了兩個(gè)int型指針p、q分別指向數(shù)組a的第一個(gè)元素和最后一個(gè)元素。然后使用一個(gè)while循環(huán)調(diào)用函數(shù)f()不斷交換兩個(gè)指針?biāo)傅膬?nèi)容,每次交換后p往后移動(dòng)一個(gè)元素,q往前移動(dòng)一個(gè)元素,直到q不再大于p,即直到兩個(gè)指針在數(shù)組a的中間相遇為止。所以,程序最終運(yùn)行的結(jié)果是數(shù)組a中的所有元素全被反序排列一次。故應(yīng)該選擇選項(xiàng)D。
56.D解析:本題的考點(diǎn)是鏈表的指針操作。要想將q所指節(jié)點(diǎn)從鏈表中刪除,同時(shí)要保持鏈表的連續(xù),從圖上看,應(yīng)該將p->next=r,由于q->next、p->next->next都指向r,因此p->next=q->next、p->next=p->next->next同樣可以實(shí)現(xiàn)指定的操作。因此選項(xiàng)A、B、C都能完成指定操作。而選項(xiàng)D“p=q->next”只是將指針p指向了r,不能完成指定的操作。因此正確選項(xiàng)是D。
57.B解析:本題考核的知識(shí)點(diǎn)是C程序從編寫(xiě)到生成可執(zhí)行文件的步驟。C語(yǔ)言采用編譯方式將源程序轉(zhuǎn)換為二進(jìn)制的目標(biāo)代碼,編寫(xiě)好一個(gè)C程序到完成運(yùn)行一般經(jīng)過(guò)以下幾個(gè)步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼,經(jīng)編譯后的得到的二進(jìn)制代碼還不能直接執(zhí)行,因?yàn)槊恳粋€(gè)模塊往往是單獨(dú)編譯的,必須把經(jīng)過(guò)編譯的各個(gè)模塊的目標(biāo)代碼與系統(tǒng)提供的標(biāo)準(zhǔn)模塊連接后才能運(yùn)行;連接,將各模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)連接處理后,得到具有絕對(duì)地址的可執(zhí)行文件,它是計(jì)算機(jī)能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個(gè)經(jīng)過(guò)編譯和連接的可執(zhí)行的目標(biāo)文件。由以上定義可知,選項(xiàng)A、C、D均不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
58.B解析:若在函數(shù)中定義與全局變量名字相同局部變量,則全局變量在該函數(shù)中將不起作用,因此全局變量的作用域并不一定比局部變量的作用域大;靜態(tài)變量一旦定義,將在整個(gè)程序的運(yùn)行期間都存在;函數(shù)的形參只在函數(shù)調(diào)用的時(shí)候分配存儲(chǔ)空間,在退出函數(shù)時(shí)收回存儲(chǔ)空間,因此是局部的;沒(méi)有賦值的auto型變量的初值是隨機(jī)的,沒(méi)有賦值的static型變量的初值是0。
59.A解析:本題考查ifelse語(yǔ)句。首先scanf函數(shù)通過(guò)鍵盤(pán)讀入x的值。當(dāng)x=3時(shí),第一個(gè)if語(yǔ)句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語(yǔ)句,輸出x的值4。當(dāng)x=1時(shí),第一個(gè)if語(yǔ)句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語(yǔ)句,先輸出x的值2,再將x的值減1。
60.C解析:軟件生命周期由軟件定義、軟件開(kāi)發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分為若干個(gè)階段。軟件定義時(shí)期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個(gè)階段。軟件開(kāi)發(fā)時(shí)期是具體設(shè)計(jì)和實(shí)現(xiàn)在前一時(shí)期定義的軟件,它通常由下面五個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫(xiě)代碼、組裝測(cè)試和確認(rèn)測(cè)試。軟件維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當(dāng)軟件在使用過(guò)程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件,以滿足用戶的新要求。根據(jù)上述對(duì)軟件生命周期的介紹,可知選項(xiàng)C中的軟件維護(hù)不是軟件生命周期開(kāi)發(fā)階段的任務(wù)。因此,本題的正確答案是C。
61.D
62.D程序調(diào)試是由程序開(kāi)發(fā)者完成診斷和改正程序中的錯(cuò)誤的過(guò)程;軟件測(cè)試是由專門(mén)的測(cè)試人員完成,是發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程;軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程,是軟件生存周期中非常重要的一個(gè)階段。
63.B注:與軟件測(cè)試要對(duì)比著復(fù)習(xí)
64.A解析:由于s[2][6]表示字符串已超出了數(shù)組s的表示范圍,在C中不會(huì)劉數(shù)組越界進(jìn)行檢查,當(dāng)數(shù)組越界時(shí),會(huì)得到一個(gè)不確定的值。
65.D由題目ee線性鏈表的定義可知,要將q和r所指的結(jié)點(diǎn)交
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省內(nèi)江市2025-2026學(xué)年高一上學(xué)期期末檢測(cè)生物試卷(含答案)
- 【初中語(yǔ)文】《+濟(jì)南的冬天》課件++統(tǒng)編版語(yǔ)文七年級(jí)上冊(cè)
- 河北省五個(gè)一聯(lián)盟2026屆高三上學(xué)期1月模擬考試語(yǔ)文試卷(含答案)
- 2025-2026學(xué)年統(tǒng)編版語(yǔ)文八年級(jí)第一學(xué)期期末質(zhì)量檢測(cè)練習(xí)卷(含答案)
- 化工企業(yè)職業(yè)衛(wèi)生培訓(xùn)課件
- 2026年人力資源管理師人才發(fā)展戰(zhàn)略知識(shí)練習(xí)(含答案解析)
- 2026年蕪湖市揚(yáng)帆實(shí)驗(yàn)學(xué)校公開(kāi)招聘教官4名筆試備考試題及答案解析
- 2026新疆伊犁州新源縣總工會(huì)面向社會(huì)招聘工會(huì)社會(huì)工作者3人備考考試試題及答案解析
- 2026浙江南方水泥有限公司校園招聘考試參考試題及答案解析
- 2026泰安肥城市事業(yè)單位初級(jí)綜合類崗位公開(kāi)招聘(73人)考試備考試題及答案解析
- 2025年社工社區(qū)招聘筆試題庫(kù)及答案
- 病毒性肺炎診療指南(2025年版)
- 2026年度新疆兵團(tuán)草湖項(xiàng)目區(qū)公安局招聘警務(wù)輔助人員工作(100人)筆試參考題庫(kù)及答案解析
- GB/T 46778-2025精細(xì)陶瓷陶瓷造粒粉壓縮強(qiáng)度試驗(yàn)方法
- 協(xié)助審計(jì)協(xié)議書(shū)范本
- 采購(gòu)主管年終工作總結(jié)
- 電力公司安全第一課課件
- 物業(yè)現(xiàn)場(chǎng)管理培訓(xùn)課件
- 數(shù)據(jù)訪問(wèn)控制策略分析報(bào)告
- 2025年市場(chǎng)監(jiān)管局招聘崗位招聘面試模擬題及案例分析解答
- 子宮內(nèi)膜異位癥病因課件
評(píng)論
0/150
提交評(píng)論