




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年湖北省宜昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序:#include<stdio.h>main(){charch[]=“uvwxyz”,*pc;pc=ch;printf(“%c\n”,*(pc+5));}程序的運(yùn)行結(jié)果是()
A.zB.0C.元素ch[5]的地址D.字符y的地址
2.樹(shù)最適合用來(lái)表示()。
A.有序數(shù)據(jù)元素B.無(wú)序數(shù)據(jù)元素C.元素之間具有分層次關(guān)系的數(shù)據(jù)D.元素間無(wú)聯(lián)系的數(shù)據(jù)
3.下面軟件中,屬中應(yīng)用軟件的是()
A.UnixB.人事管理系統(tǒng)C.數(shù)據(jù)庫(kù)管理理系統(tǒng)D.DOS
4.
5.程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.20D.21
6.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為:good,則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為
A.goodabcB.abcdC.abcD.abcgood
7.若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)
A.getc()B.gets()C.getehar()D.scanf()
8.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序運(yùn)行后的輸出結(jié)果是A.A.2,3B.2,4C.3,4D.4,6
9.對(duì)于靜態(tài)表的順序查找法,若在表頭設(shè)置監(jiān)視哨,則正確的查找方式為()A.從第0個(gè)元素往后查找該數(shù)據(jù)元素
B.從第1個(gè)元素往后查找該數(shù)據(jù)元素
C.從第n個(gè)元素往開(kāi)始前查找該數(shù)據(jù)元素
D.與查找順序無(wú)關(guān)
10.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。
A.0B.1C.2D.3
11.現(xiàn)有以下結(jié)構(gòu)體說(shuō)明和變量定義,如圖所示,指針P、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。structnode{hardata;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;rm:>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;
12.C語(yǔ)言可執(zhí)行程序的開(kāi)始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語(yǔ)句
13.一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
14.已知大寫(xiě)字母A的ASCII值是65,小寫(xiě)字母a的ASCII值是97。下列不能將變量c中的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的語(yǔ)句是()。
A.c=(‘A’,+c)%26-‘a(chǎn)’B.c=c+32C.c=c-‘A’+‘a(chǎn)’D.c=(c-‘A’)%26+‘a(chǎn)’
15.
16.用鄰接矩陣A表示有向圖G的存儲(chǔ)結(jié)構(gòu),則有向圖G中頂點(diǎn)i的入度為()。
A.第i行非0元素的個(gè)數(shù)之和B.第i列非0元素的個(gè)數(shù)之和C.第i行0元素的個(gè)數(shù)之和D.第i列0元素的個(gè)數(shù)之和
17.設(shè)有定義“inta=3,b,*p=&a”,則下列語(yǔ)句中使b不為3的語(yǔ)句是______。
A.b=*&a;B.b=*p;C.b=a;D.b=*a;
18.向一個(gè)棧頂指針為HS的鏈?zhǔn)綏V胁迦胍粋€(gè)s所指的結(jié)點(diǎn)時(shí),則執(zhí)行()。
A.HS->next=s
B.S->next=HS->nextHS->next=s
C.s->next=HSHS=s
D.S->next=HSHS=HS->next
19.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序運(yùn)行后的輸出結(jié)果是()。A.197B.143C.33D.28
20.下列描述錯(cuò)誤的是()。
A.繼承分為多重繼承和單繼承
B.對(duì)象之間的通信靠傳遞消息來(lái)實(shí)現(xiàn)
C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征
D.類是具有共同屬性、共同方法的對(duì)象的集合
二、2.填空題(20題)21.子程序通常分為兩類:【】和函數(shù),前者是命令的抽象,后者是為了求值。
22.設(shè)有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語(yǔ)句“k=B*20;”(k為int型變量)后,k的值是______。
23.設(shè)有定義:intn,*k=&n;以下語(yǔ)句將利用指針變量k讀寫(xiě)變量n中的內(nèi)容,請(qǐng)將語(yǔ)句補(bǔ)充完整。
scanf("%d",【】);
printf("%d\n",【】);
24.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
25.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
26.算法復(fù)雜度主要包括時(shí)間復(fù)雜度和【】復(fù)雜度。
27.以下函數(shù)用來(lái)求出2個(gè)整數(shù)之和,并通過(guò)形參將結(jié)果傳回。
voidfunc(intx,inty,【】z)
{*z=x+y;}
28.若x和n均是int型變量,且x=12,n=5,則執(zhí)行y=x%=(n%=2)表達(dá)式后y的值為()。
29.以下程序的輸出結(jié)果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
30.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語(yǔ)句,且fun函數(shù)為void類型,請(qǐng)寫(xiě)出fun函數(shù)的首部【】。要求形參名為b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
31.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
32.棧中允許進(jìn)行插入和刪除的一端叫做______。
33.以下函數(shù)的功能是計(jì)算s=1+1/2!+1/3!+……+1/n!,請(qǐng)?zhí)羁铡?/p>
doublefun(intn)
{
doubles=0.0,fac=1.0;inti;
for(i=1,i<=n;i++)
{
fac=fac______;
s=s+fac;
}
returns;
}
34.設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
35.在數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是【】。
36.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來(lái)存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;};
37.有以下程序:
#include<stdio.h>
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結(jié)果是【】。
38.在一棵二叉樹(shù)中,度為0的結(jié)點(diǎn)的個(gè)數(shù)為n0,度為2的結(jié)點(diǎn)的個(gè)數(shù)為n2,則有n0=【】。
39.執(zhí)行以下程序后sum的值是【】。
main()
{
inti,sum;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
40.已定義charch=′$′;inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為【】。
三、1.選擇題(20題)41.設(shè)有下列二叉樹(shù):
對(duì)此二叉樹(shù)中序遍歷的結(jié)果為_(kāi)_____。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
42.下列敘述中,錯(cuò)誤的是()。
A.在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量
B.在main()函數(shù)體內(nèi)定義的變量是全局變量
C.形參是局部變量,函數(shù)調(diào)用完成即失去意義
D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內(nèi)不起作用
43.關(guān)系表中的每一橫行稱為一個(gè)()。A.元組B.字段C.屬性D.碼
44.數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
45.若變量a,i已正確定義,且i已正確賦值,下面合法的語(yǔ)句是()。
A.a==1B.++i;C.a=a++=5;D.a=int(i);
46.有下列函數(shù):intfun(char*s){char*t=s;while(*t++);reurn(t-s);}該函數(shù)的功能是()。
A.比較兩個(gè)字符串的大小
B.計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
C.計(jì)算s所指字符串的長(zhǎng)度
D.將s所指字符串復(fù)制到字符串t中
47.下列程序執(zhí)行后的輸出結(jié)果是______。main(){charx=0xFFFF;printf("%d\n",x--);}
A.-32767B.FFFEC.-1D.-32768
48.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i)}
A.266B.11C.265D.138
49.下列對(duì)于軟件測(cè)試的描述中正確的是()。
A.軟件測(cè)試的目的是證明程序是否正確
B.軟件測(cè)試的目的是使程序運(yùn)行結(jié)果正確
C.軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤
D.軟件測(cè)試的目的是使程序符合結(jié)構(gòu)化原則
50.整型變量x和Y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)式是______。
A.X‖YB.X|YC.X&YD.XY
51.下列所述中,是軟件調(diào)試技術(shù)的是()。
A.錯(cuò)誤推斷B.集成測(cè)試C.回溯法D.邊界值分析
52.以下定義語(yǔ)句中正確的是
A.chara='A'b='B';
B.floata=b=10.0;
C.inta=10,*b=&a;
D.float*a,b=&a;
53.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。
A.控制程序的執(zhí)行順序B.模塊之間的調(diào)用關(guān)系C.數(shù)據(jù)的流向D.程序的組成成分
54.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
55.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤(pán)上輸入:10A10<回車(chē)>,則輸出結(jié)果是
A.10,A,10B.10,a,10C.1O,a,0D.10,A,0
56.有下列函數(shù):intfun(char*s){char*t=s;while(*t++);return(t-s);}該函數(shù)的功能是()。
A.比較兩個(gè)字符串的大小
B.計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
C.計(jì)算s所指字符串的長(zhǎng)度
D.將s所指字符串復(fù)制到字符串t中
57.軟件需求分析一般應(yīng)確定的是用戶對(duì)軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
58.設(shè)有定義:chars[10];inti=0;,以下不能將一行(不超過(guò)100個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是()。
A.gets(s);
B.scanf("%s",s);
C.while((s[i++]=getchar())!='\n');s[i]='\0';
D.do{scanf("%c",&s[i]);}while(s[i++]!='\n');s[i]='\0';
59.已知i、j、k為整型變量,若從鍵盤(pán)輸入1,2,3<回車(chē)>,使i的值為1、j的值為2、k的值為3,以下選項(xiàng)中正確的輸入語(yǔ)句是()。
A.scanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
60.對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對(duì)數(shù)據(jù)和數(shù)據(jù)的操作進(jìn)行______。A.A.結(jié)合B.隱藏C.封裝D.抽象
四、選擇題(20題)61.
62.
63.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.1B.2C.3D.4
64.對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。
A.隊(duì)頭指針是固定不變的
B.隊(duì)頭指針一定大于隊(duì)尾指針
C.隊(duì)頭指針一定小于隊(duì)尾指針
D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
65.在面向?qū)ο蠓椒ㄖ校哂邢嗨茖傩耘c操作的一組對(duì)象稱為()。
A.類B.實(shí)例C.消息D.數(shù)據(jù)
66.HTTP協(xié)議的內(nèi)容協(xié)商消息頭包括()。
i.內(nèi)容協(xié)商消息頭ii.緩存控制消息頭
iii.條件控制消息頭iv.服務(wù)器狀態(tài)消息頭
A.i和iiB.i、ii和iiiC.ii和iiiD.iii和iv
67.有以下程序該程序試圖通過(guò)指針p為變量rl讀人數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語(yǔ)句正確的是()。
68.有以下程序:
程序運(yùn)行后的結(jié)果是()。
A.有運(yùn)行錯(cuò)誤B.輸出ll.10C.輸出l2.10D.輸出21.10
69.
70.設(shè)有定義:intX=2;,以下表達(dá)式中,值不為6的是()。
A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1
71.
72.
73.有以下程序
.程序運(yùn)行后的輸出結(jié)果是()。
A.6B.9C.11D.7
74.下列定義變量的語(yǔ)句中正確的是()。
A)int_int;B)double3int_;
C)charfor;D)floatUS&;
75.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.一1C.1D.7
76.有定義:“inta=2,b=3,c=4;”,則下列選項(xiàng)中值為0的表達(dá)式是()。A.A.(a<b)&&!c‖1
B.(!a==1)&&(!b==0)
C.a&&b
D.a||(b+b)&&(c-a)
77.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結(jié)果是()。A.1B.30C.1-2D.死循環(huán)
78.以下程序的運(yùn)行結(jié)果是()。
A.17B.16C.15D.14
79.執(zhí)行以下程序段后,T的值為
intT=’a’,x=12,y=5;
T=((x||y)&&(T>’A’));
A.1B.NULLC.-lD.0
80.
有以下結(jié)構(gòu)體說(shuō)明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語(yǔ)句是()。
structnode
{chardata;
structnode*next:
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭2個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入到前2個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插人到前3個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc,它的功能是計(jì)算:s=(In(1)4+ln(2)4+ln(3)+…+In(m))0.5
在C語(yǔ)言中可調(diào)用log(n)函數(shù)求ln(n)。
例如,若m的值為30,則proc函數(shù)值為8.640500。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#inclllde<stdio.h>
#include<math.h>
doubleproc(intm)
{
}
voidmain
{
system("CLS");
printf("%f\n",proc(30));
}
參考答案
1.A語(yǔ)句“pc=ch;”使得指針變量pc指向字符數(shù)組ch的首地址,即指向字符‘u’。而“pc+5”指向的是指針向后移動(dòng)5位所指的字符,即指向字符‘z’,所以輸出的“*(pc+5)”的值為‘z’。故本題答案為A選項(xiàng)。
2.C
3.B
4.A
5.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.
6.C解析:主函數(shù)中定義了一個(gè)文件指針fp1,然后通過(guò)fopen()函數(shù),以寫(xiě)的方式打開(kāi)文件“fl.txt”,并讓指針fp1指向它,接著調(diào)用fpfintf()函數(shù)將“abc”寫(xiě)到文件fp1所指的文件里,由于開(kāi)始fp1指向文件的“fl.txt”的開(kāi)始位置,因此“abc”將把文件“fl.txt”里原來(lái)的內(nèi)容“good”覆蓋掉,故文件“fl.txt”里最后的內(nèi)容為“abc”。
7.B解析:scanf()語(yǔ)句用“空格”區(qū)別不同的字符串;getc()與getchar()語(yǔ)句不能用于字符串的讀入。
8.B解析:p指向x的第一個(gè)元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個(gè)元素,所以p->next->n為4。
9.C
10.B解析:先計(jì)算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時(shí),如果變量為int型變量則真用1表示,假用0表示),即a=1。
11.D由題目中線性鏈表的定義可知,要將q和r所指的結(jié)點(diǎn)交換前后位置,只要使q指向r的后一個(gè)結(jié)點(diǎn),P指向r結(jié)點(diǎn),r指向q結(jié)點(diǎn)即可。而在選項(xiàng)D中,r->next=q,這時(shí)r指向的節(jié)點(diǎn)為q;p->next=r,這時(shí)P指向的節(jié)點(diǎn)為r;q->next:r->next,因?yàn)閞節(jié)點(diǎn)已經(jīng)指向q,所以執(zhí)行這個(gè)語(yǔ)句后q又指向q,所以選項(xiàng)D不正確。
12.C解析:每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main函數(shù)開(kāi)始執(zhí)行,并在main()函數(shù)中結(jié)束。
13.B棧是先進(jìn)后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。
14.A根據(jù)題意可知,小寫(xiě)字母比與之對(duì)應(yīng)的大寫(xiě)字母的ASCII值大32。A選項(xiàng)中字符W加變量c再對(duì)字母?jìng)€(gè)數(shù)26取余,不能轉(zhuǎn)換為對(duì)應(yīng)的小寫(xiě)字母。故本題答案為A選項(xiàng)。
15.B
16.B
17.D
18.C
19.B此程序考查帶參數(shù)的宏定義,S(k+j)展開(kāi)后即4*(k+j)*k+j+1,所以結(jié)果為l43,答案為B。
20.C解析:對(duì)象的封裝性是指從外面看只能看到對(duì)象的外部特性;而對(duì)象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對(duì)外是不可見(jiàn)的,是隱蔽的。
21.過(guò)程過(guò)程
22.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算。運(yùn)算過(guò)程為:k=B*20=(A+3)*20=(2+3)*20=100。
23.k*kk\r\n*k解析:scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由%號(hào)和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號(hào)分隔開(kāi))。而第二個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*k。
24.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見(jiàn)的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見(jiàn)的非線性結(jié)構(gòu)有樹(shù)、二叉樹(shù)等。
25.軟件開(kāi)發(fā)
26.空間空間解析:程序在計(jì)算機(jī)上運(yùn)行時(shí)所耗費(fèi)的時(shí)間由程序運(yùn)行時(shí)所需輸入的數(shù)據(jù)總量、對(duì)源程序進(jìn)行編譯所需時(shí)間、計(jì)算機(jī)執(zhí)行每條指令所需時(shí)間、程序中的指令重復(fù)執(zhí)行的次數(shù)等決定。習(xí)慣上常常把語(yǔ)句重復(fù)執(zhí)行的次數(shù)作為算法運(yùn)行時(shí)間的相對(duì)量度,稱作算法的時(shí)間復(fù)雜度。算法在運(yùn)行過(guò)程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度。
27.int*
28.00解析:n%=2等價(jià)于n=n%2,結(jié)果為1:x%=1等價(jià)于x=x%1,結(jié)果為0。
29.00解析:對(duì)于一個(gè)unsignedshort來(lái)說(shuō),它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。
30.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數(shù)調(diào)用“不帶回值”,可以用“void”定義函數(shù)為“無(wú)類型”(或稱“空類型”),這樣系統(tǒng)就保證不使函數(shù)帶回任何值。當(dāng)二維數(shù)組作為形參時(shí),二維數(shù)組的第一維可以省略。
31.1919解析:根據(jù)二叉樹(shù)的性質(zhì):在任意一棵二叉樹(shù)中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。
32.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
33./i或*1.0/i或*1/i或*(1.0/i)或/(double)i/i或*1.0/i或*1/i或*(1.0/i)或/(double)i解析:主函數(shù)中首先定義了兩個(gè)double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項(xiàng)的值。通過(guò)分析可知,第i項(xiàng)的值可以由第i-1項(xiàng)的值得到,即第i項(xiàng)是第i-1項(xiàng)的值除以i??梢?jiàn)橫線處應(yīng)添“/i”或與它等價(jià)的表達(dá)式。
34.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒(méi)有特別說(shuō)明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來(lái)。
35.數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)解析:數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。(1)人工管理階段。這一階段的計(jì)算機(jī)主要用于科技計(jì)算。外存只有磁帶、卡片和紙帶等,軟件只有匯編語(yǔ)言,尚無(wú)數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式是批處理。(2)文件系統(tǒng)階段。文件系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展的初級(jí)階段,它提供了簡(jiǎn)單的數(shù)據(jù)共享與數(shù)據(jù)管理能力,但是它無(wú)法提供完整的、統(tǒng)一的管理和數(shù)據(jù)共享的能力。由于它的功能簡(jiǎn)單,因此它附屬于操作系統(tǒng)而不能成為獨(dú)立的軟件,目前一般將其看成僅是數(shù)據(jù)庫(kù)系統(tǒng)的雛形,而不是真正的數(shù)據(jù)庫(kù)系統(tǒng)。(3)數(shù)據(jù)庫(kù)系統(tǒng)階段。數(shù)據(jù)庫(kù)階段用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)模型,有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫(kù)系統(tǒng)為用戶提供了方便的用戶接口,用戶可使用查詢語(yǔ)言或終端命令操作數(shù)據(jù)庫(kù),也可以用程序方式(用COBOL、C一類高級(jí)語(yǔ)言和數(shù)據(jù)庫(kù)語(yǔ)言編制的程序)操作數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)提供了數(shù)據(jù)控制功能。
36.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。
37.00解析:本題是計(jì)算5*4*3*2*1*0的值,結(jié)果為0。
38.n2+1
39.1515解析:程序的功能是求1、2、3、4、5的和即15。
40.11解析:在執(zhí)行邏輯表達(dá)式'j=!ch&&i++'時(shí),首先判斷j=!ch的值,因?yàn)?ch=\'$\''不為0,所以'j=!ch=0',編譯系統(tǒng)便不再計(jì)算表達(dá)式'i++'的值,i的值不變,仍為1。
41.B解析:所謂中序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù);并且在遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。
42.B解析:本題考查函數(shù)調(diào)用時(shí)變量的作用域。形參是局部變量,函數(shù)調(diào)用完就失去意義了,所以在同一個(gè)C程序文件中,不同的函數(shù)體中可以使用名字相同的局部變量。注意:在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為:從定義變量的位置開(kāi)始到本源文件結(jié)束.
43.A解析:關(guān)系表中,每一行稱為一個(gè)元組,對(duì)應(yīng)表中的一條記錄;每一列稱為表中的一個(gè)屬性,對(duì)應(yīng)表中的一個(gè)字段;在二維表中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。
44.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對(duì)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開(kāi)發(fā)的角度來(lái)看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)所具有的兩個(gè)特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級(jí)數(shù)據(jù)庫(kù)模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫(kù)系統(tǒng)的功能(動(dòng)態(tài)特性)。
45.B解析:選項(xiàng)A)缺少分號(hào),是一個(gè)表達(dá)式,而不是語(yǔ)句;選項(xiàng)C)包含一個(gè)不合法的運(yùn)算符“++=”;選項(xiàng)D)應(yīng)改為a=(int)i;。
46.C解析:在函數(shù)fun(char*s)中,首先用字符指針變量t指向s,而循環(huán)語(yǔ)句while(*t++);的功能是使指針變量t指向字符串變量s的末尾,這時(shí)退出循環(huán),因而語(yǔ)句return(t-s);回的就是字符串s所指字符串的長(zhǎng)度。
47.C
48.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個(gè)存儲(chǔ)單元,且此存儲(chǔ)單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
49.C解析:關(guān)于軟件測(cè)試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書(shū)中給出了深刻的闡述:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程;一個(gè)好的測(cè)試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例;一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。整體來(lái)說(shuō),軟件測(cè)試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。本題答案為C。
50.D解析:“‖”為或運(yùn)算符,當(dāng)其左右表達(dá)式中只要一個(gè)為非零則整個(gè)表達(dá)式的值1。|是按位或,&是按位與,^是按位異或,這三位運(yùn)算符是按值的二進(jìn)制位來(lái)比較的。
51.C解析:軟件調(diào)試技術(shù)包括強(qiáng)行排錯(cuò)法、回溯法和原因排除法。邊界值分析、錯(cuò)誤推斷都是黑盒測(cè)試的方法。
52.C解析:選項(xiàng)A中定義兩個(gè)變量a和b,并賦初值,C語(yǔ)言中可以同時(shí)定義多個(gè)變量,但變量之間必須用“,”隔開(kāi),顯然,選項(xiàng)A中少了一個(gè)逗號(hào)“,”,故選項(xiàng)A不正確;選項(xiàng)B中定義變量時(shí)用了連續(xù)的賦值語(yǔ)句,這在定義變量是不正確的,故選項(xiàng)B不正確,選項(xiàng)D定義一個(gè)指針,然后定義了一個(gè)變量并讓這個(gè)變量的初值為該指針變量,顯然這這時(shí)的指針變量還沒(méi)初始化就被賦值給變量,是不對(duì)的,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
53.C解析:數(shù)據(jù)流相當(dāng)于一條管道,并有一級(jí)數(shù)據(jù)(信息)流經(jīng)它。在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實(shí)體流向系統(tǒng)或從系統(tǒng)流向外部實(shí)體。
54.A解析:條件表達(dá)式的形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3,所以本題條件表達(dá)式a<b?a:c<d?c:d應(yīng)該理解為a<b?a:(c<d?c:d),首先求出條件表達(dá)式c<d?c:d的值等于2,再求條件表達(dá)式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達(dá)式的值等于1。
55.A解析:本題考核的知識(shí)點(diǎn)是scallf()函數(shù)輸入格式。格式字符“%d”用于輸入整數(shù),“%C”用來(lái)輸入字符。在輸入時(shí),系統(tǒng)把第一個(gè)10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10所以,A選項(xiàng)為所選。
56.C解析:在函數(shù)fun(char*s)中,首先用字符指針變量t指向s,而循環(huán)語(yǔ)句while(*t++);的功能是使指針變量t指向字符串變量s的末尾,這時(shí)退出循環(huán),因而語(yǔ)句return(t-s);返回的就是字符串s所指字符串的長(zhǎng)度。
57.DD。【解析】軟件需求分析中需要構(gòu)造一個(gè)完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對(duì)軟件的功能需求和非功能需求。
58.B解析:本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語(yǔ)句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車(chē)。而scanf()數(shù)接收字符串時(shí)的結(jié)束標(biāo)志為回車(chē)或者空格。因此選巧
59.C解析:使用scanf()函數(shù)時(shí),要求除格式控制符以外的字符都要原樣輸入,“,”為非格式符,要原樣輸入。選項(xiàng)A,輸入格式描述為“%2d%2d%2d”,意思是輸入一個(gè)長(zhǎng)度為6的數(shù)字串,scanf()將每?jī)蓚€(gè)為一組讀入3個(gè)變量中,不滿足鍵盤(pán)輸入1,2,3的條件,故A錯(cuò)誤;選項(xiàng)B中,輸入格式描述符為“%d%d%d”,輸入要用空格隔開(kāi),故錯(cuò)誤;選項(xiàng)D中,輸入格式描述符為“i=%d,j=%d,k=%d”,應(yīng)該從鍵盤(pán)輸入i=1,j=2,k=3,才能使得i,j,k的值為1,2,3,故選項(xiàng)D錯(cuò)誤。4個(gè)選項(xiàng)中C正確。
60.C解析:對(duì)象是由數(shù)據(jù)及可以對(duì)這些數(shù)據(jù)施加的操作組成的統(tǒng)一體。對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是看不見(jiàn)的,這一特性稱做對(duì)象的封裝。
61.C
62.C
63.B該題目考查函數(shù)參數(shù)傳遞以及if條件語(yǔ)句。當(dāng)變量b為0時(shí),將a的值返回給主調(diào)函數(shù),因此a進(jìn)行兩次自減l后,將其值返回并輸出。
64.D循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu),所以隊(duì)頭指針有時(shí)可能大于隊(duì)尾指針,有時(shí)也可能小于隊(duì)尾指針。
65.A面向?qū)ο蠓椒ㄖ袑傩?、操作相似的?duì)象歸為類,也就是說(shuō),類是具有共同屬性、共同方法的對(duì)象集合。
66.B
67.A選項(xiàng)B)的正確寫(xiě)法應(yīng)為p=&n;,選項(xiàng)c)的正確寫(xiě)法應(yīng)為seanf(”%d”,p);,選項(xiàng)D)的正確寫(xiě)法應(yīng)為prinff(”%dXn”,*p);。故本題答案為A)。
68.Acalloe(n,sizeof(type))在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配n個(gè)長(zhǎng)度為size的連續(xù)空間,函數(shù)返回一個(gè)指向分配起始地址的指針,如果分配不成功,返回NULL。s在函數(shù)fun()申請(qǐng)了內(nèi)存空間,但是在調(diào)用fun()函數(shù)后會(huì)釋放掉,因此,最后q指向NULL,因此運(yùn)行是打印出錯(cuò)。答案為A選項(xiàng)。
69.B
70.AA選項(xiàng)中逗號(hào)表達(dá)式先計(jì)算第一表達(dá)式2*x,然后計(jì)算表達(dá)式x+=2的值,即x=x+2即4,整個(gè)逗號(hào)表達(dá)式為第二個(gè)表達(dá)式的值4,所以選擇A。B選項(xiàng)中首先計(jì)算逗號(hào)表達(dá)式中第一表達(dá)式x++,此時(shí)x為3,在執(zhí)行第二個(gè)表達(dá)式2·X=2*3=6,所以逗號(hào)表達(dá)式為第二個(gè)表達(dá)式的值6。C選項(xiàng)的賦值表達(dá)式可以表示為x=x*(1+x)=2}(1+2)=6。D選項(xiàng)中的表達(dá)式可以表示為x=X}(x+1)=2·3=60
71.A
72.D
73.A本題首先定義了3個(gè)字符數(shù)flip、q、r,并分別被初始化。數(shù)組p;}i旨定的大小為20,初始化列表為la,b,c,d},即只指定了前4個(gè)元素的內(nèi)容,根據(jù)c語(yǔ)言的規(guī)定,初始化列表不足時(shí),其余元素均自動(dòng)初始化為0。然后通過(guò)streat()函數(shù),將字符串r連接到字符串p之后,即執(zhí)行后p中的內(nèi)容為“123d123de”。因?yàn)椤皊trlen(q)”表示求字符串q的長(zhǎng)度,很明顯為3,所以語(yǔ)句“strcpy(p+strlen(q),q);”的作用就是:將字符串q復(fù)制到數(shù)9lp的第4個(gè)元素位置處。
74.A用戶標(biāo)識(shí)符不能為關(guān)鍵字,只能由數(shù)字,字母和下劃線組成,而且第一個(gè)必須為字母或下劃線。
75.Ba一一的含義是先用后減l,所以當(dāng)a的值為0時(shí),跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。
76.B對(duì)于這種問(wèn)題可以用真假來(lái)判斷,當(dāng)數(shù)值不為0時(shí)都一律為真,只有是0才是假
A:(a<b)為真,!c為假,所以(真&&假)為假,后來(lái)(假‖真)為真,不是0<b)為真,!c為假,所以(真&&假)為假,后來(lái)(假|(zhì)|真)為真,不是0B:(真&&假)為假,是0
C:(真&&真)為真,不是0
D:(真||真)為真,c-a為真,(真&&真)為真,不是0</b)為真,!c為假,所以(真&&假)為假,后來(lái)(假|(zhì)|真)為真,不是0
77.C本題考查do-while循環(huán),先執(zhí)行d0輸出的x的值為1,接著執(zhí)行while語(yǔ)句,此時(shí)--x的值為0,x也為0,而非0為1,循環(huán)成立,接著執(zhí)行do輸出X值為-2,執(zhí)行--x后,表達(dá)式為-2,而!(--x)為0,退出循環(huán)。
78.Dfun函數(shù)語(yǔ)句retun3(a++)+c;中訪問(wèn)的a,是其內(nèi)部定義的靜態(tài)局部變量,main函數(shù)中語(yǔ)句k+=f(a)訪問(wèn)的a是其局部變量,所以兩次調(diào)用實(shí)際上都是調(diào)用f(3)。第一次調(diào)用時(shí),fun函數(shù)中c=4,表達(dá)式(a++)+c的
值為6,a遞增為3,k=6。第二次調(diào)用時(shí),fun函數(shù)種c=4,表達(dá)式(a++)+c的值為7,a遞增為4,k=6+7=13。語(yǔ)句k+=a中的a是全局變量,所以k=13+l=14。
79.A本題考查邏輯運(yùn)算符的使用及對(duì)ASCII碼的了解?!?&”為邏輯與運(yùn)算符,該運(yùn)算符的特點(diǎn)是當(dāng)其左右兩邊對(duì)象都為真時(shí),用該運(yùn)算符連接構(gòu)成的邏輯表達(dá)式為真?!皘|”為邏輯或運(yùn)算符,該運(yùn)算符只要左右兩邊的對(duì)象有一個(gè)為真,則整個(gè)表達(dá)式就為真。在ASCII碼中,26個(gè)英文小寫(xiě)字母a~z的碼值為97~122,26個(gè)英文大寫(xiě)字母A~Z的碼值為65~90。題中“&&”左邊為一個(gè)邏輯或運(yùn)算表達(dá)式,因?yàn)閤=12,y=5,所以該或運(yùn)算的值為1,右邊為一個(gè)關(guān)系表達(dá)式,此時(shí)T=’a’,由于’a’的ASCII碼值大于’A’的碼值,所以該關(guān)系表達(dá)式的值為1?!?&”連接的左右兩邊的表達(dá)式的值都為1,所以整個(gè)表達(dá)式的值為1,T=1。
80.B
\n本題考查結(jié)構(gòu)體指針變量的賦值方法,要把結(jié)點(diǎn)b連接到結(jié)點(diǎn);l的后面,必須把b的地址給a的next指針。故8正確。
\n
81.錯(cuò)誤:c=arr[i];
正確:ch=arrEi];
【解析】由函數(shù)定義可知,函數(shù)proc只定義了變量ch,沒(méi)有定義變量c。因此,“c=”r[i];”應(yīng)改為“ch=arr[i];”。
82.doubleproc(intm)
\n{
\ninti;
\ndoubles=0.0;//s是表示其和
\nfor(i=1;i<=m;i++)
\ns=s+log(i);//計(jì)算s=ln(1)+ln(2)+ln(3)+…+ln(m)
\nreturnsqrt(s);//最后將其開(kāi)平方的值返回到主函數(shù)中
\n}
\n【解析】由題目中所給表達(dá)式可知,表達(dá)式的值為m項(xiàng)表達(dá)式的和然后開(kāi)平方??梢允紫韧ㄟ^(guò)m次循環(huán)求得m項(xiàng)表達(dá)式的和,然后將其和開(kāi)平方并返回到主函數(shù)當(dāng)中。
\n2021-2022年湖北省宜昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序:#include<stdio.h>main(){charch[]=“uvwxyz”,*pc;pc=ch;printf(“%c\n”,*(pc+5));}程序的運(yùn)行結(jié)果是()
A.zB.0C.元素ch[5]的地址D.字符y的地址
2.樹(shù)最適合用來(lái)表示()。
A.有序數(shù)據(jù)元素B.無(wú)序數(shù)據(jù)元素C.元素之間具有分層次關(guān)系的數(shù)據(jù)D.元素間無(wú)聯(lián)系的數(shù)據(jù)
3.下面軟件中,屬中應(yīng)用軟件的是()
A.UnixB.人事管理系統(tǒng)C.數(shù)據(jù)庫(kù)管理理系統(tǒng)D.DOS
4.
5.程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.20D.21
6.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為:good,則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為
A.goodabcB.abcdC.abcD.abcgood
7.若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)
A.getc()B.gets()C.getehar()D.scanf()
8.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序運(yùn)行后的輸出結(jié)果是A.A.2,3B.2,4C.3,4D.4,6
9.對(duì)于靜態(tài)表的順序查找法,若在表頭設(shè)置監(jiān)視哨,則正確的查找方式為()A.從第0個(gè)元素往后查找該數(shù)據(jù)元素
B.從第1個(gè)元素往后查找該數(shù)據(jù)元素
C.從第n個(gè)元素往開(kāi)始前查找該數(shù)據(jù)元素
D.與查找順序無(wú)關(guān)
10.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。
A.0B.1C.2D.3
11.現(xiàn)有以下結(jié)構(gòu)體說(shuō)明和變量定義,如圖所示,指針P、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。structnode{hardata;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;rm:>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;
12.C語(yǔ)言可執(zhí)行程序的開(kāi)始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語(yǔ)句
13.一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
14.已知大寫(xiě)字母A的ASCII值是65,小寫(xiě)字母a的ASCII值是97。下列不能將變量c中的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的語(yǔ)句是()。
A.c=(‘A’,+c)%26-‘a(chǎn)’B.c=c+32C.c=c-‘A’+‘a(chǎn)’D.c=(c-‘A’)%26+‘a(chǎn)’
15.
16.用鄰接矩陣A表示有向圖G的存儲(chǔ)結(jié)構(gòu),則有向圖G中頂點(diǎn)i的入度為()。
A.第i行非0元素的個(gè)數(shù)之和B.第i列非0元素的個(gè)數(shù)之和C.第i行0元素的個(gè)數(shù)之和D.第i列0元素的個(gè)數(shù)之和
17.設(shè)有定義“inta=3,b,*p=&a”,則下列語(yǔ)句中使b不為3的語(yǔ)句是______。
A.b=*&a;B.b=*p;C.b=a;D.b=*a;
18.向一個(gè)棧頂指針為HS的鏈?zhǔn)綏V胁迦胍粋€(gè)s所指的結(jié)點(diǎn)時(shí),則執(zhí)行()。
A.HS->next=s
B.S->next=HS->nextHS->next=s
C.s->next=HSHS=s
D.S->next=HSHS=HS->next
19.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序運(yùn)行后的輸出結(jié)果是()。A.197B.143C.33D.28
20.下列描述錯(cuò)誤的是()。
A.繼承分為多重繼承和單繼承
B.對(duì)象之間的通信靠傳遞消息來(lái)實(shí)現(xiàn)
C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征
D.類是具有共同屬性、共同方法的對(duì)象的集合
二、2.填空題(20題)21.子程序通常分為兩類:【】和函數(shù),前者是命令的抽象,后者是為了求值。
22.設(shè)有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語(yǔ)句“k=B*20;”(k為int型變量)后,k的值是______。
23.設(shè)有定義:intn,*k=&n;以下語(yǔ)句將利用指針變量k讀寫(xiě)變量n中的內(nèi)容,請(qǐng)將語(yǔ)句補(bǔ)充完整。
scanf("%d",【】);
printf("%d\n",【】);
24.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
25.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
26.算法復(fù)雜度主要包括時(shí)間復(fù)雜度和【】復(fù)雜度。
27.以下函數(shù)用來(lái)求出2個(gè)整數(shù)之和,并通過(guò)形參將結(jié)果傳回。
voidfunc(intx,inty,【】z)
{*z=x+y;}
28.若x和n均是int型變量,且x=12,n=5,則執(zhí)行y=x%=(n%=2)表達(dá)式后y的值為()。
29.以下程序的輸出結(jié)果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
30.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語(yǔ)句,且fun函數(shù)為void類型,請(qǐng)寫(xiě)出fun函數(shù)的首部【】。要求形參名為b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
31.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
32.棧中允許進(jìn)行插入和刪除的一端叫做______。
33.以下函數(shù)的功能是計(jì)算s=1+1/2!+1/3!+……+1/n!,請(qǐng)?zhí)羁铡?/p>
doublefun(intn)
{
doubles=0.0,fac=1.0;inti;
for(i=1,i<=n;i++)
{
fac=fac______;
s=s+fac;
}
returns;
}
34.設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
35.在數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是【】。
36.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來(lái)存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;};
37.有以下程序:
#include<stdio.h>
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結(jié)果是【】。
38.在一棵二叉樹(shù)中,度為0的結(jié)點(diǎn)的個(gè)數(shù)為n0,度為2的結(jié)點(diǎn)的個(gè)數(shù)為n2,則有n0=【】。
39.執(zhí)行以下程序后sum的值是【】。
main()
{
inti,sum;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
40.已定義charch=′$′;inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為【】。
三、1.選擇題(20題)41.設(shè)有下列二叉樹(shù):
對(duì)此二叉樹(shù)中序遍歷的結(jié)果為_(kāi)_____。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
42.下列敘述中,錯(cuò)誤的是()。
A.在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量
B.在main()函數(shù)體內(nèi)定義的變量是全局變量
C.形參是局部變量,函數(shù)調(diào)用完成即失去意義
D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內(nèi)不起作用
43.關(guān)系表中的每一橫行稱為一個(gè)()。A.元組B.字段C.屬性D.碼
44.數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
45.若變量a,i已正確定義,且i已正確賦值,下面合法的語(yǔ)句是()。
A.a==1B.++i;C.a=a++=5;D.a=int(i);
46.有下列函數(shù):intfun(char*s){char*t=s;while(*t++);reurn(t-s);}該函數(shù)的功能是()。
A.比較兩個(gè)字符串的大小
B.計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
C.計(jì)算s所指字符串的長(zhǎng)度
D.將s所指字符串復(fù)制到字符串t中
47.下列程序執(zhí)行后的輸出結(jié)果是______。main(){charx=0xFFFF;printf("%d\n",x--);}
A.-32767B.FFFEC.-1D.-32768
48.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i)}
A.266B.11C.265D.138
49.下列對(duì)于軟件測(cè)試的描述中正確的是()。
A.軟件測(cè)試的目的是證明程序是否正確
B.軟件測(cè)試的目的是使程序運(yùn)行結(jié)果正確
C.軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤
D.軟件測(cè)試的目的是使程序符合結(jié)構(gòu)化原則
50.整型變量x和Y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)式是______。
A.X‖YB.X|YC.X&YD.XY
51.下列所述中,是軟件調(diào)試技術(shù)的是()。
A.錯(cuò)誤推斷B.集成測(cè)試C.回溯法D.邊界值分析
52.以下定義語(yǔ)句中正確的是
A.chara='A'b='B';
B.floata=b=10.0;
C.inta=10,*b=&a;
D.float*a,b=&a;
53.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。
A.控制程序的執(zhí)行順序B.模塊之間的調(diào)用關(guān)系C.數(shù)據(jù)的流向D.程序的組成成分
54.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
55.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤(pán)上輸入:10A10<回車(chē)>,則輸出結(jié)果是
A.10,A,10B.10,a,10C.1O,a,0D.10,A,0
56.有下列函數(shù):intfun(char*s){char*t=s;while(*t++);return(t-s);}該函數(shù)的功能是()。
A.比較兩個(gè)字符串的大小
B.計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
C.計(jì)算s所指字符串的長(zhǎng)度
D.將s所指字符串復(fù)制到字符串t中
57.軟件需求分析一般應(yīng)確定的是用戶對(duì)軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
58.設(shè)有定義:chars[10];inti=0;,以下不能將一行(不超過(guò)100個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是()。
A.gets(s);
B.scanf("%s",s);
C.while((s[i++]=getchar())!='\n');s[i]='\0';
D.do{scanf("%c",&s[i]);}while(s[i++]!='\n');s[i]='\0';
59.已知i、j、k為整型變量,若從鍵盤(pán)輸入1,2,3<回車(chē)>,使i的值為1、j的值為2、k的值為3,以下選項(xiàng)中正確的輸入語(yǔ)句是()。
A.scanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
60.對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對(duì)數(shù)據(jù)和數(shù)據(jù)的操作進(jìn)行______。A.A.結(jié)合B.隱藏C.封裝D.抽象
四、選擇題(20題)61.
62.
63.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.1B.2C.3D.4
64.對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。
A.隊(duì)頭指針是固定不變的
B.隊(duì)頭指針一定大于隊(duì)尾指針
C.隊(duì)頭指針一定小于隊(duì)尾指針
D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
65.在面向?qū)ο蠓椒ㄖ?,具有相似屬性與操作的一組對(duì)象稱為()。
A.類B.實(shí)例C.消息D.數(shù)據(jù)
66.HTTP協(xié)議的內(nèi)容協(xié)商消息頭包括()。
i.內(nèi)容協(xié)商消息頭ii.緩存控制消息頭
iii.條件控制消息頭iv.服務(wù)器狀態(tài)消息頭
A.i和iiB.i、ii和iiiC.ii和iiiD.iii和iv
67.有以下程序該程序試圖通過(guò)指針p為變量rl讀人數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語(yǔ)句正確的是()。
68.有以下程序:
程序運(yùn)行后的結(jié)果是()。
A.有運(yùn)行錯(cuò)誤B.輸出ll.10C.輸出l2.10D.輸出21.10
69.
70.設(shè)有定義:intX=2;,以下表達(dá)式中,值不為6的是()。
A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1
71.
72.
73.有以下程序
.程序運(yùn)行后的輸出結(jié)果是()。
A.6B.9C.11D.7
74.下列定義變量的語(yǔ)句中正確的是()。
A)int_int;B)double3int_;
C)charfor;D)floatUS&;
75.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.一1C.1D.7
76.有定義:“inta=2,b=3,c=4;”,則下列選項(xiàng)中值為0的表達(dá)式是()。A.A.(a<b)&&!c‖1
B.(!a==1)&&(!b==0)
C.a&&b
D.a||(b+b)&&(c-a)
77.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結(jié)果是()。A.1B.30C.1-2D.死循環(huán)
78.以下程序的運(yùn)行結(jié)果是()。
A.17B.16C.15D.14
79.執(zhí)行以下程序段后,T的值為
intT=’a’,x=12,y=5;
T=((x||y)&&(T>’A’));
A.1B.NULLC.-lD.0
80.
有以下結(jié)構(gòu)體說(shuō)明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語(yǔ)句是()。
structnode
{chardata;
structnode*next:
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭2個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入到前2個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插人到前3個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc,它的功能是計(jì)算:s=(In(1)4+ln(2)4+ln(3)+…+In(m))0.5
在C語(yǔ)言中可調(diào)用log(n)函數(shù)求ln(n)。
例如,若m的值為30,則proc函數(shù)值為8.640500。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#inclllde<stdio.h>
#include<math.h>
doubleproc(intm)
{
}
voidmain
{
system("CLS");
printf("%f\n",proc(30));
}
參考答案
1.A語(yǔ)句“pc=ch;”使得指針變量pc指向字符數(shù)組ch的首地址,即指向字符‘u’。而“pc+5”指向的是指針向后移動(dòng)5位所指的字符,即指向字符‘z’,所以輸出的“*(pc+5)”的值為‘z’。故本題答案為A選項(xiàng)。
2.C
3.B
4.A
5.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.
6.C解析:主函數(shù)中定義了一個(gè)文件指針fp1,然后通過(guò)fopen()函數(shù),以寫(xiě)的方式打開(kāi)文件“fl.txt”,并讓指針fp1指向它,接著調(diào)用fpfintf()函數(shù)將“abc”寫(xiě)到文件fp1所指的文件里,由于開(kāi)始fp1指向文件的“fl.txt”的開(kāi)始位置,因此“abc”將把文件“fl.txt”里原來(lái)的內(nèi)容“good”覆蓋掉,故文件“fl.txt”里最后的內(nèi)容為“abc”。
7.B解析:scanf()語(yǔ)句用“空格”區(qū)別不同的字符串;getc()與getchar()語(yǔ)句不能用于字符串的讀入。
8.B解析:p指向x的第一個(gè)元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個(gè)元素,所以p->next->n為4。
9.C
10.B解析:先計(jì)算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時(shí),如果變量為int型變量則真用1表示,假用0表示),即a=1。
11.D由題目中線性鏈表的定義可知,要將q和r所指的結(jié)點(diǎn)交換前后位置,只要使q指向r的后一個(gè)結(jié)點(diǎn),P指向r結(jié)點(diǎn),r指向q結(jié)點(diǎn)即可。而在選項(xiàng)D中,r->next=q,這時(shí)r指向的節(jié)點(diǎn)為q;p->next=r,這時(shí)P指向的節(jié)點(diǎn)為r;q->next:r->next,因?yàn)閞節(jié)點(diǎn)已經(jīng)指向q,所以執(zhí)行這個(gè)語(yǔ)句后q又指向q,所以選項(xiàng)D不正確。
12.C解析:每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main函數(shù)開(kāi)始執(zhí)行,并在main()函數(shù)中結(jié)束。
13.B棧是先進(jìn)后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。
14.A根據(jù)題意可知,小寫(xiě)字母比與之對(duì)應(yīng)的大寫(xiě)字母的ASCII值大32。A選項(xiàng)中字符W加變量c再對(duì)字母?jìng)€(gè)數(shù)26取余,不能轉(zhuǎn)換為對(duì)應(yīng)的小寫(xiě)字母。故本題答案為A選項(xiàng)。
15.B
16.B
17.D
18.C
19.B此程序考查帶參數(shù)的宏定義,S(k+j)展開(kāi)后即4*(k+j)*k+j+1,所以結(jié)果為l43,答案為B。
20.C解析:對(duì)象的封裝性是指從外面看只能看到對(duì)象的外部特性;而對(duì)象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對(duì)外是不可見(jiàn)的,是隱蔽的。
21.過(guò)程過(guò)程
22.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算。運(yùn)算過(guò)程為:k=B*20=(A+3)*20=(2+3)*20=100。
23.k*kk\r\n*k解析:scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由%號(hào)和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號(hào)分隔開(kāi))。而第二個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*k。
24.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見(jiàn)的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見(jiàn)的非線性結(jié)構(gòu)有樹(shù)、二叉樹(shù)等。
25.軟件開(kāi)發(fā)
26.空間空間解析:程序在計(jì)算機(jī)上運(yùn)行時(shí)所耗費(fèi)的時(shí)間由程序運(yùn)行時(shí)所需輸入的數(shù)據(jù)總量、對(duì)源程序進(jìn)行編譯所需時(shí)間、計(jì)算機(jī)執(zhí)行每條指令所需時(shí)間、程序中的指令重復(fù)執(zhí)行的次數(shù)等決定。習(xí)慣上常常把語(yǔ)句重復(fù)執(zhí)行的次數(shù)作為算法運(yùn)行時(shí)間的相對(duì)量度,稱作算法的時(shí)間復(fù)雜度。算法在運(yùn)行過(guò)程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度。
27.int*
28.00解析:n%=2等價(jià)于n=n%2,結(jié)果為1:x%=1等價(jià)于x=x%1,結(jié)果為0。
29.00解析:對(duì)于一個(gè)unsignedshort來(lái)說(shuō),它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。
30.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數(shù)調(diào)用“不帶回值”,可以用“void”定義函數(shù)為“無(wú)類型”(或稱“空類型”),這樣系統(tǒng)就保證不使函數(shù)帶回任何值。當(dāng)二維數(shù)組作為形參時(shí),二維數(shù)組的第一維可以省略。
31.1919解析:根據(jù)二叉樹(shù)的性質(zhì):在任意一棵二叉樹(shù)中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。
32.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
33./i或*1.0/i或*1/i或*(1.0/i)或/(double)i/i或*1.0/i或*1/i或*(1.0/i)或/(double)i解析:主函數(shù)中首先定義了兩個(gè)double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項(xiàng)的值。通過(guò)分析可知,第i項(xiàng)的值可以由第i-1項(xiàng)的值得到,即第i項(xiàng)是第i-1項(xiàng)的值除以i??梢?jiàn)橫線處應(yīng)添“/i”或與它等價(jià)的表達(dá)式。
34.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒(méi)有特別說(shuō)明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來(lái)。
35.數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)解析:數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。(1)人工管理階段。這一階段的計(jì)算機(jī)主要用于科技計(jì)算。外存只有磁帶、卡片和紙帶等,軟件只有匯編語(yǔ)言,尚無(wú)數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式是批處理。(2)文件系統(tǒng)階段。文件系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展的初級(jí)階段,它提供了簡(jiǎn)單的數(shù)據(jù)共享與數(shù)據(jù)管理能力,但是它無(wú)法提供完整的、統(tǒng)一的管理和數(shù)據(jù)共享的能力。由于它的功能簡(jiǎn)單,因此它附屬于操作系統(tǒng)而不能成為獨(dú)立的軟件,目前一般將其看成僅是數(shù)據(jù)庫(kù)系統(tǒng)的雛形,而不是真正的數(shù)據(jù)庫(kù)系統(tǒng)。(3)數(shù)據(jù)庫(kù)系統(tǒng)階段。數(shù)據(jù)庫(kù)階段用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)模型,有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫(kù)系統(tǒng)為用戶提供了方便的用戶接口,用戶可使用查詢語(yǔ)言或終端命令操作數(shù)據(jù)庫(kù),也可以用程序方式(用COBOL、C一類高級(jí)語(yǔ)言和數(shù)據(jù)庫(kù)語(yǔ)言編制的程序)操作數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)提供了數(shù)據(jù)控制功能。
36.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。
37.00解析:本題是計(jì)算5*4*3*2*1*0的值,結(jié)果為0。
38.n2+1
39.1515解析:程序的功能是求1、2、3、4、5的和即15。
40.11解析:在執(zhí)行邏輯表達(dá)式'j=!ch&&i++'時(shí),首先判斷j=!ch的值,因?yàn)?ch=\'$\''不為0,所以'j=!ch=0',編譯系統(tǒng)便不再計(jì)算表達(dá)式'i++'的值,i的值不變,仍為1。
41.B解析:所謂中序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù);并且在遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。
42.B解析:本題考查函數(shù)調(diào)用時(shí)變量的作用域。形參是局部變量,函數(shù)調(diào)用完就失去意義了,所以在同一個(gè)C程序文件中,不同的函數(shù)體中可以使用名字相同的局部變量。注意:在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為:從定義變
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)真空制鹽行業(yè)市場(chǎng)全景評(píng)估及投資戰(zhàn)略研究報(bào)告
- 2020-2025年中國(guó)無(wú)人駕駛商用車(chē)行業(yè)投資潛力分析及行業(yè)發(fā)展趨勢(shì)報(bào)告
- 家庭農(nóng)場(chǎng)經(jīng)營(yíng)效率提升合作協(xié)議
- 在線醫(yī)療服務(wù)平臺(tái)2025年投資機(jī)會(huì)與風(fēng)險(xiǎn)預(yù)警評(píng)估報(bào)告
- 當(dāng)農(nóng)民成為園藝家150字15篇
- 二零二五年度電子商務(wù)數(shù)據(jù)分析與營(yíng)銷(xiāo)合同模塊
- 二零二五年度集成電路產(chǎn)品質(zhì)量檢測(cè)與認(rèn)證服務(wù)合同
- 二零二五版汽車(chē)經(jīng)銷(xiāo)商車(chē)輛獎(jiǎng)勵(lì)合作合同
- 二零二五年度標(biāo)準(zhǔn)食品冷鏈運(yùn)輸合同模板
- 二零二五年度高新技術(shù)產(chǎn)業(yè)園區(qū)場(chǎng)地買(mǎi)賣(mài)合同樣本
- 現(xiàn)代教育技術(shù)投稿格式
- 足球《踢墻式二過(guò)一》課件
- 高中信息技術(shù)面試試講真題匯總
- 《色彩構(gòu)成》核心課程標(biāo)準(zhǔn)
- 《論語(yǔ)》中的人生智慧與自我管理學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫(kù)2023年
- 《三伏貼》ppt課件(圖文)
- 電梯司機(jī)安全技術(shù)交底
- 2022-2023學(xué)年黑龍江省寧安市六年級(jí)數(shù)學(xué)第二學(xué)期期末達(dá)標(biāo)測(cè)試試題含解析
- 人教版物理八年級(jí)上冊(cè)學(xué)案及答案(全冊(cè))
- 神經(jīng)外科臨床藥物試驗(yàn)
- 企業(yè)人力資源管理中的成本控制與法律風(fēng)險(xiǎn)防控
評(píng)論
0/150
提交評(píng)論