版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年黑龍江省綏化市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦值40000的正確語句是()
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;
2.下面程序段的輸出結(jié)果是______。char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結(jié)果
3.下面的哪一個保留字不能作為函數(shù)的返回類型()。
A.voidB.intC.newD.long
4.以下程序擬實現(xiàn)計算s=1+2*2+3*3+…+n*n+…,直到s>1000為止。#include<stdio.h>main(){ints,n;s=1;n=1;do{n=n+1;s=s+n*n;}while(s>1000);printf(“s=%d\n”,s);}程序運行后,不能得到正確結(jié)果,以下修改方案正確的是()。
A.把“while(s>1000);”改為“while(s<=1000);”
B.把“s=1”改為“s=0”
C.把“n=1;”改為“n=0;”
D.把“n=n+1”改為“n=n*n”
5.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序運行后的輸出結(jié)果是()。
A.3,4,5,6,3,3,B.1,2,3,4,5,6,C.3,4,5,6,1,2,D.3,4,5,6,1,1,
6.軟件生命周期中,花費最多的階段是()。
A.詳細設(shè)計B.軟件編碼C.軟件測試D.軟件維護
7.給出發(fā)下定義: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的長度
8.在多媒體計算機系統(tǒng)中,不能用以存儲多媒體信息的是A.光纜B.軟盤C.硬盤D.光盤
9.若有定義“a[]={1,2,3,4,5,6,7,8,9,10};”,則“a[a[5]-a[7]/a[1]]”的值是()。
A.2B.4C.3D.10
10.不帶頭結(jié)點的單鏈表head為空的判定條件是()。A.head=NULLB.head→next=NULLC.head→next=headD.head!=NULL
11.單鏈表的存儲密度()順序表的存儲密度。
A.大于B.等于C.小于D.不能確定
12.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項中錯誤的是
A.x++;B.y++;C.c++;D.D++;
13.假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的節(jié)點。則下列選項中可將q所指節(jié)點從鏈表中刪除并釋放該節(jié)點的語句組是()。
A.p->next=q->next;free(q);
B.p=q->next;free(q);
C.p=q;free(q);
D.(*p).next=(*q).next;free(p);
14.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
15.有以下函數(shù):fun(char*p){returnp;}該函數(shù)的返回值是()。
A.無確切值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值
16.設(shè)一棵滿二叉樹共有15個結(jié)點,則在該滿二叉樹中的葉子結(jié)點數(shù)為()
A.7B.8C.9D.10
17.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致,
B.數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
18.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。
A.5,5B.5,11C.11,11D.11,5
19.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975
20.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
二、2.填空題(20題)21.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。
22.下面程序的運行結(jié)果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
23.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。
24.下列程序段的輸出結(jié)果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
25.為了便于對照檢查,測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。
26.以下程序的輸出結(jié)果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
27.以下程序的輸出結(jié)果是【】。
main()
{inta=0;
a+=(a=8);
printf(“%d\n”,A);
}
28.軟件危機出現(xiàn)于60年代末,為了解決軟件危機,人們提出了【】的原理來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。
29.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
30.下列語句能循環(huán)______次。
ints=12;
while(s);
--s;
31.以下程序運行結(jié)果是【】。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%5ld\n",k);}
32.在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
33.有以下程序:
#include<string.h>
structSTU
{charname[10];
intnum;};
voidf(char*name,intnum)
{structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};
num=s[0].num;
strcpy(name,s[0].name);
}
main()
{structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;
p=&s[1];f(p->name,p->num);
printf("%s%d\n",p->name,p->num);
}
程序運行后的輸出結(jié)果是【】。
34.下面程序把從終端讀入的文本(用@作為文本結(jié)束標志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>
#include"stdio.h"
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
35.數(shù)據(jù)庫恢復(fù)是將數(shù)據(jù)庫從______狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。
36.通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為【】。
37.下面函數(shù)的功能是將一個字符串的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
voidfun(charstr[])
{inti,j,k;
for(i=0,j=【】;i<j;i++,j--)
{k=str[i];
str[i]=str[j];
str[j]=k;}}
38.軟件危機的核心問題是【】和軟件開發(fā)效率低。
39.下面程序的輸出結(jié)果是【】。
structaa
{intx,*y;
}*p;
inta[8]={10,20,30,40,50,60,70,80};
structaab[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};
main()
{p=b;
printf(%d",*++p->y);
printf("%d\n",++(p->x));
}
40.以下程序運行后的輸出結(jié)果是______。
main()
{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<4)
{if(i==2||i==4)continue;
j=0;
do{s+=a[i][j];j++;}while(j<4);
}
printf("%d\n",s);
}
三、1.選擇題(20題)41.以下程序的功能是計算:。#include<stdio.h>main(){intn;floats;s=1.0;for(n=10;n>1;n--)s=s+1/n;printf("%6.4f\n",s);}程序運行后輸出結(jié)果錯誤,導(dǎo)致錯誤結(jié)果的程序行是()。
A.s=1.0;
B.for(n=10;n>1;n--)
C.s=s+1/n;
D.printf("%6.4f\n",s);
42.設(shè)有下列說明語句:StrcutStr{intx;floaty;charz;}st;則下列的敘述中不正確的是()。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.st是結(jié)構(gòu)體類型名
C.x、y、z都是結(jié)構(gòu)體成員名
D.structstr是結(jié)構(gòu)體類型名
43.有以下程序main(){chara[]="abcdefg",b[10]="abedefg";pfintf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是
A.77B.88C.810D.1010
44.對序線性表23,29,34,55,60,70,78用二分法查找值為60的元素時,需要比較次數(shù)為()
A.1B.2C.3D.4
45.若有定義:inta=7;floatx=2.5,y=4.7;則表達式x+a%3,(int)(x+y)%2/4的值是
A.2.5B.2.75C.3.5D.0
46.下列程序運行后的輸出結(jié)果是______。main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);
A.0B.1C.2D.3
47.請讀程序段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));程序段的輸出結(jié)果是______。
A.68B.0C.字符'D'的地址D.不確定的值
48.有以下程序voidswap(char*x,char*y){chart;t=*x;*X=*y;*y=t;}main(){char*s1:"abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是
A.123,abcB.abc,123C.1bc,a23D.321,cba
49.若變量已正確定義,要求通過scanf("%c%d%c%d",&c1,&a,&c2,&B)語句給變量a和b分別賦32和45,給變量c1和c2分別賦字符A和B;下列選項中數(shù)據(jù)從第1列開始輸入,正確的輸入形式是()。
A.A32<CR>B45<CR>B.A45<CR>B32<CR>C.A32B45<CR>D.A32B45<CR>
50.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的—個出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
51.下面程序的輸出結(jié)果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
52.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20
53.下列二維數(shù)組的說明中,不正確的是()。
A.floata[][4]={0,1,8,5,9};
B.inta[3][4];
C.#defineN5
D.inta[2][9.5];floata[N][3];
54.線性表的順序存儲結(jié)構(gòu)和線性表的鏈式存儲結(jié)構(gòu)分別是______。
A.順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
B.隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
C.隨機存取的存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu)
D.任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)
55.以下程序的輸出結(jié)果是#include<stdio.h>in[fun(intn,int*s){intn,f2;if(n==0‖n==1)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=f1+f2;}}voidmain(){intx;fun(6,&x);pfintf("\n%d",x);}
A.7B.13C.9D.10
56.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
57.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系
58.若變量已正確定義,有以下程序段
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
其輸出結(jié)果是
A.程序段有語法錯B.3,5,3C.3,5,5D.3,5,7
59.下列程序的輸出結(jié)果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k);}
A.123B.234C.223D.233
60.有以下程序main(){chara='a',b;printf("%c,",++A);printf("%c\n"。b=a++);}程序運行后的輸出結(jié)果是
A.b,bB.b,cC.a,bD.a,c
四、選擇題(20題)61.有以下程序
62.
63.
64.設(shè)有如下三個關(guān)系表
下列操作中正確的是()。
A.T=RnSB.T=RUSC.T=R×SD.T=R/S
65.有以下程序
66.設(shè)有以下語句
67.若有以下定義:chara;intb;floatc;doubled;則表達式a*b+b-c值的類型為()。A.floatB.intC.charD.double
68.
69.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。A.在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的
B.結(jié)構(gòu)化程序使用sotoi吾句會很便捷
C.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
70.有以下程序
71.
72.
73.以下程序的輸出結(jié)果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
74.以下程序的輸出結(jié)果是()。
main()
{inta=1;
charc=’a’;
floatf=2.0;
Printf("%d\n",(!(a==0),f1=0&&c==’A’));
}
A.0B.1C.2D.3
75.
76.(7)在軟件開發(fā)中,下面任務(wù)不屬于設(shè)計階段的是()
A.數(shù)據(jù)結(jié)構(gòu)設(shè)計
B.給出系統(tǒng)模塊結(jié)構(gòu)
C.定義模塊算法
D.定義需求并建立系統(tǒng)模型
77.
78.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.4D.死循環(huán)
79.有以下程序:
i
程序運行后的輸出結(jié)果是()。。,
A.3,4B.4,1C.2,3D.1,2
80.第
15
題
以下程序的輸出結(jié)果是
main()
{inta=21,b=11;
printf("%d\n",--a+b,--b+a);
}
A.30B.31C.32D.33
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:求兩個非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若num1和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸出的最大公約數(shù)為27。請改正程序中的錯誤,使它能得出正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,定義了NxN的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(),該函數(shù)的功能是使數(shù)組上三角元素中的值乘以m。若m的值為2,a數(shù)組中的值為197238456則返回主程序后a數(shù)組中的值應(yīng)為2181426164512注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#include3#include4#include5#defineN56voidfun(inta[][N],intm)7{89}10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<n;i++)16{for(j=0;j<n;i++)27{for(j=0;j38{for(j=0;j<n;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found********/44}1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j<n;j++)5:for(i=0;i<=j;i++)6:a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/
參考答案
1.D
2.C解析:語句s+=2;使指針指向字符'c',此時s中保存的便是字符'c'的地址。
3.C
4.A題目中程序不能實現(xiàn)預(yù)期功能是因為while的循環(huán)條件錯誤。選項B中把“s=1;”改為s=0;”,最終的結(jié)果“s=4”,與題目原意不同。選項C中把“n=1;”,改為“n=0;”最終的結(jié)果“s=2”,與題目原意不同。選項D中把“n=n+1;”改為“n=n*n;”,最終的結(jié)果“s=2”,與題目原意不同。選項A正確地修改了while循環(huán)條件,可以得到正確結(jié)果。故本題答案為A選項。
5.A程序首先以讀二進制文件的方式打開文件d.dat;然后使用fwrite函數(shù)將數(shù)組a中6個元素寫入d.dat中。并調(diào)用for循環(huán)將a[2]元素(值為3)6次寫入d.dat文件中;接著使用rewind函數(shù)將文件指針fp移動到文件頭;再使用fseek函數(shù)將fp從當(dāng)前位置向后移動2個整數(shù)位置;最后使用fread函數(shù)從fp指向的位置向后讀取6個整數(shù)。由此可知這6個整數(shù)分別是:3,4,5,6,3,3。故本題答案為A選項。
6.D本題考查對軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開發(fā)階段和維護階段。其中定義階段包括可行性研究與計劃制訂和需求分析;開發(fā)階段包括概要設(shè)計、詳細設(shè)計、開發(fā)和測試;維護階段是一個單獨階段,不包含在開發(fā)階段內(nèi),它是所花費用最多的一個階段。
7.C
8.A解析:光纜是傳輸多媒體信息的通道,不能用以存儲多媒體信息。
9.C題干中,數(shù)組a包含10個元素。其中a[5]為6,a[7]為8,a[1]為2,所以表達式“a[a[5]-a[7]/a[1]]”等價于“a[6-8/2]”,等價于a[2],即3。故本題答案為C選項。
10.A解析:在不帶頭結(jié)點的單鏈表head中,head指向第一個元素結(jié)點,head=NULL表示該鏈表為空,所以答案為A。
11.C
12.D解析:C語言中++運算符的對象可以是整型、實型和字符型,但不可是常量,本題中D為常量。
13.A其方法是將要刪除節(jié)點的上一個節(jié)點的next指向要刪除節(jié)點的下一個節(jié)點,然后釋放將要刪除的節(jié)點,所以選項A正確。故本題答案為A選項。
14.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。
15.B解析:return中返回的是指針p的值,也就是形參p中存放的地址值。
16.BB)【解析】在具有11個結(jié)點的滿二叉樹,其非葉子結(jié)點數(shù)為int(n/2),而葉子結(jié)點數(shù)等于總結(jié)點數(shù)減去葉子結(jié)點數(shù)。本題n=15,故非葉子結(jié)點數(shù)等于int(15/2)=7,葉子結(jié)點數(shù)等于15-7=8。
17.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管其在計算機中的存儲方式。數(shù)據(jù)的存儲結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計算機存儲器里的實現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。
數(shù)據(jù)庫設(shè)計是在數(shù)據(jù)庫管理系統(tǒng)的支持下,按照應(yīng)用的要求,設(shè)計一個結(jié)構(gòu)合理、使用方便、效率較高的數(shù)據(jù)庫及其應(yīng)用系統(tǒng)。數(shù)據(jù)庫設(shè)計包含兩方面的內(nèi)容:一是結(jié)構(gòu)設(shè)計,也就是設(shè)計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu);二是行為設(shè)計,即設(shè)計基于數(shù)據(jù)庫的各類應(yīng)用程序、事務(wù)等。因此,選項C的說法是錯誤的。
數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還必須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項D的說法是正確的。因此,本題的正確答案是選項A。
18.B解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。
19.D執(zhí)行第一次for循環(huán)時,用表達式p[i][J]!=\o來判斷字符串?dāng)?shù)組指針P是否到達字符串的結(jié)尾,如果沒有到達,繼續(xù)執(zhí)行while中的語句。if語句表示(p[i][j]-\o)除2的余數(shù)不為0時,即字符串所有奇數(shù),執(zhí)行后面的語句。所以退出第1次for的循環(huán)體時,輸出為397,執(zhí)行第2次循環(huán)體。對字符串“2584”進行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。
20.C解析:這是一個逗號表達式,它的值應(yīng)為表達式y(tǒng)=x+3/2的值,而前一個表達式已給x賦值1,在沒有進行類型轉(zhuǎn)換的情況下,3/2的值為1,所以x+3/2的值應(yīng)為2.0。
21.整型整型解析:上面的表達式中,通過強制類型轉(zhuǎn)換把最后參與運算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。
22.x=2y=1
23.非線性結(jié)構(gòu)非線性結(jié)構(gòu)
24.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。
25.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。
26.77解析:在C語言中,宏定義是直接替換的,所以在劉表達式MAX(a+b,c+d)*10進行替換后,表達式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個條件表達式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個表達式的值(否則用(c+d)*10的值作為整個表達式的值),而(a+b)的值為7。所以整個表達式的值為7。
27.1616解析:在程序中首先將8賦值給變量a,然后再進行復(fù)合賦值運算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。
28.軟件工程學(xué)軟件工程學(xué)
29.132132解析:在程序中,i從9開始循環(huán),當(dāng)i=9時,執(zhí)行case0后的語句m++;n++;此時m=1,n=1,然后執(zhí)行break,跳出循環(huán);當(dāng)i=10時,執(zhí)行detault后的語句k++;n++;此時k=1,n=2;當(dāng)i=11時,再執(zhí)行default后的語句,k=2,n=3。此時,m=1,n=3,k=2。輸出結(jié)果為132。
30.無限無限解析:分析程序“while(s)”語句后面有一個“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。
31.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
32.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。
33.SunDan20042SunDan20042解析:f函數(shù)中形參1用的是顯式傳地址的方式,因此p->name的值發(fā)生改變,而形參2用的傳值的方式,在調(diào)用時不改變實參的值,因此p->num的值不發(fā)生變化。
34.dat""w"或"bi.dat""w+"或"bi.dat""r+"dat','w'或'bi.dat','w+'或'bi.dat','r+'解析:本題的考點是fopen()函數(shù),此函數(shù)的格式是fopen(文件名,使用文件方式),題目的要求是將從鍵盤讀入的文本寫到文件中,因此選擇的打開方式應(yīng)該是'w'(只寫)?;蛘呤亲x寫“r+”或“w+”。
35.錯誤。錯誤。解析:數(shù)據(jù)庫恢復(fù)是將數(shù)據(jù)庫中的數(shù)據(jù)從錯誤狀態(tài)中恢復(fù)到某種邏輯一致的狀態(tài)。如果數(shù)據(jù)庫中包含成功事務(wù)提交的結(jié)果,則稱數(shù)據(jù)庫處于一致性狀態(tài)。
36.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用以及維護等活動。
37.strlen(str)-1strlen(str)-1解析:程序中的for循環(huán)就是用來完成串反序的,所以應(yīng)該對循環(huán)的條件進行初始化,所以在[18]應(yīng)該填入strlen(str)-1。注意,在串反序的時候,不應(yīng)該把串結(jié)束符‘\\0’也反序。
38.軟件質(zhì)量差軟件質(zhì)量差解析:大約在20世紀60年代末人們在計算機軟件的開發(fā)和維護過程中,遇到了一系列嚴重問題,從而認識到軟件危機的存在。軟件危機的核心問題是軟件開發(fā)的質(zhì)量太差和軟件系統(tǒng)開發(fā)的效率太低。
39.3010130101解析:注意地址自增與變量自增的區(qū)別。
40.92
41.C解析:該程序的運行結(jié)果是1.0000,算法錯誤。在s=s+1/n中,因為n為整型,所以循環(huán)中1/n始終為0。這就是本題算法錯誤的原因。應(yīng)把s=s+1/n改為s=s+1.0/n。
42.B解析:本題主要考查結(jié)構(gòu)類型的定義:struct是結(jié)構(gòu)體類型的關(guān)鍵字;structstr是結(jié)構(gòu)體類型名;x、y、z都是結(jié)構(gòu)體成員名;st是結(jié)構(gòu)變量名。
43.C解析:本題小定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdefg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8。定義時b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10。
44.Cc)【解析】根據(jù)二分法查找法需要兩次:①首先將60與表中間的元素55進行比較,由于60大于55,所以性表的后半部分查找。②第二次比較的元素是后半部分的中間元素,將60與表中間的元素70進行比較,由于60小于70,所以性表的前半部分查找。③第三次比較的元素是前半部分的中間元素,即60,這時兩者相等,即查找成功。
45.A解析:x+y的值為實型7.200000,經(jīng)強制類型轉(zhuǎn)化成整型7。a%3的值為1,1*7的值為7,7%2值為1。1/4的值為0,而非0.25,因而為兩個整數(shù)相除的結(jié)果為整數(shù),舍去小數(shù)部分。與實型x相加,最終得結(jié)果為2.500000。
46.C
47.B解析:在對字符數(shù)組賦字符串值時,系統(tǒng)會自動在字符串的末尾加上一個字符串結(jié)束標志“\\0”,故指向字符數(shù)組的指針p的*(p+4)的值為“\\0”。由于“\\0”的編碼值就是0,所以本題輸出為0。
48.C解析:這是一個轉(zhuǎn)換程序:低字節(jié)相互轉(zhuǎn)換,高字節(jié)不變?!癮be”的ab和“123”的12相互轉(zhuǎn)化。
49.D解析:本題考查scanf函數(shù)的基本格式。當(dāng)需要從鍵盤上輸入數(shù)據(jù)時,輸入的數(shù)值之間需要有間隔符(空格符號、制表符號、回車符號),間隔符號的使用數(shù)量不限。直到按下回車鍵,scanf函數(shù)才會接受從鍵盤輸入的數(shù)據(jù)。
50.C解析:棧是—種后進先出表,選項C中,先出棧的是3,說明此時棧內(nèi)必然有1,2,由于1先于2進棧,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。
51.A解析:在C語言中,數(shù)組元素是從0開始的。指針變量p指向數(shù)組的首地址,(p+2)就會指向數(shù)組中的第3個元素。題目中要求輸出的是元素的值。
52.B
53.D解析:C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式,而不能省略第二個方括號中的常量表達式;二維數(shù)組的一般定義格式是:類型說明符數(shù)組名[常量表達式][常量表達式]。
54.B【命題目的】考查有關(guān)線性表存儲結(jié)構(gòu)的基本知識。
【解題要點】順序存儲結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(I-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈式存儲結(jié)構(gòu),要對某結(jié)點進行存取,都得從鏈的頭指針指向的結(jié)點開始,這是一種順序存取的存儲結(jié)構(gòu)。
【考點鏈接】順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)的定義和性質(zhì),兩種存儲結(jié)構(gòu)的操作方法。
55.B
56.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。
57.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。
58.B解析:兩個if語句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語句,所以變量c的值等于3,變量b的值沒能變化,程序輸出的結(jié)果為3,5,3。所以正確答案為B)。
59.D解析:本題考查自增運算符“++”,邏輯與運算符“&&”和邏輯或運算符“||”。自增運算符“++”,出現(xiàn)在變量之前(如題中的++n),表示先使變量的值加1,再使用變量的值進行運算:出現(xiàn)在變量之后(如題中的n++),表示先使用變量的值進行運算,再使變量的值加1。當(dāng)邏輯與運算符“&&”兩邊的運算對象都為真時,邏輯表達式的值才為真;當(dāng)邏輯或運算符“||”左邊的運算對象為真時,其值就為真,不用計算其右邊的運算對象的值。所以根據(jù)運算符的優(yōu)先級,題中應(yīng)先計算內(nèi)層括號中的值。++j是先自加后運算,因此運算時j的值等于3,所以表達式++j==3成立,即表達式的值為1;由于1與任何數(shù)都為進行或(||)運算,結(jié)果都為1,因此k=3;最后計算“&&”之前的表達式,i++是先運算后自加,因此運算時i為1,所以i++==1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。
60.A解析:程序中的第一個輸出語句輸出表達式++a的值,該++a是在使用a之前,先使a的值加1,即為a加1為字符b,此時a的值為b,所以第一個輸出語句輸出的值為b,第二個輸出語句中輸出的b的值,這時b的值為表達式a++的值,a++是在使用a之后(此時a的值為b,所以賦給b的值為B),使a的值加一因此第二個輸出的值也為b.所以,4個選項中選項A符合題意。
61.A第一次循環(huán)返回5+5為l0,第二次循環(huán)返回l4+14為28,所以選
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 殘疾人居家辦公勞動合同
- 不解除合同不安排工作 通知書
- 邊坡防護勞務(wù)合同
- 報關(guān)合同操作內(nèi)容
- 糖尿病并發(fā)癥及預(yù)防
- 高速收費員入職前培訓(xùn)
- 河南省部分學(xué)校2024-2025學(xué)年高一上學(xué)期11月期中考試政治試題(含答案 )
- 《棉堿溶性滌綸低彈絲包芯本色紗》
- 服裝經(jīng)理規(guī)劃方案
- 甘肅省臨洮縣2024-2025學(xué)年度第一學(xué)期第二次月考卷-七年級道德與法治
- 2024-2030年中國高速公路服務(wù)區(qū)行業(yè)投資分析及前景規(guī)劃研究報告
- 企業(yè)發(fā)展戰(zhàn)略規(guī)劃實施
- 管理能力與領(lǐng)導(dǎo)力管理培訓(xùn)
- 2023上半年四川公務(wù)員考試申論試題(省市卷)
- 《工貿(mào)企業(yè)有限空間作業(yè)安全規(guī)定》知識培訓(xùn)
- 2024-2030年電動牙刷市場投資前景分析及供需格局研究預(yù)測報告
- 2024年度專業(yè)會務(wù)組織服務(wù)協(xié)議書版
- 第03講 鑒賞詩歌的表達技巧(講義)(學(xué)生版) 2025年高考語文一輪復(fù)習(xí)講練測(新教材新高考)
- 函數(shù)的圖象及變換省公開課獲獎?wù)n件說課比賽一等獎?wù)n件
- 2020-2021學(xué)年河南省洛陽市高一上學(xué)期期中考試化學(xué)試題
- 四年級上冊語文第六單元任務(wù)群教學(xué)設(shè)計
評論
0/150
提交評論