版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年四川省瀘州市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.C語言中函數(shù)返回值的類型是由()決定的。
A.return語句中的表達式類型B.調(diào)用該函數(shù)的主調(diào)函數(shù)類型C.定義函數(shù)時所指定的函數(shù)類型D.以上說法都不正確
2.有n個結(jié)點的二叉樹鏈表共有__________個空指針域。
A.n-1B.nC.n+1D.n+2
3.下列選項中,不屬于數(shù)據(jù)管理員(DBA.職責(zé)的是()。
A.數(shù)據(jù)庫維護B.數(shù)據(jù)庫設(shè)計C.改善系統(tǒng)性能,提高系統(tǒng)效率D.數(shù)據(jù)類型轉(zhuǎn)換
4.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
5.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個學(xué)生信息的數(shù)據(jù)單位是()。
A.文件B.數(shù)據(jù)庫C.字段D.記錄
6.下面關(guān)于B樹和B+樹的敘述中,不正確的結(jié)論是()。
A.B樹和B+樹都能有效的支持順序查找
B.B樹和B+樹都能有效的支持隨機查找
C.B樹和B+樹都是平衡的多叉樹
D.B樹和B+樹都可用于文件索引結(jié)構(gòu)
7.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個位置。
A.3B.5C.7D.9
8.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成________。
A.屬性B.關(guān)系C.鍵D.域
9.遞歸式的先序遍歷一個n節(jié)點,深度為d的二叉樹,則需要??臻g的大小為()
A.O(logn)B.O(nlogn)C.O(n)D.O(d)
10.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。
A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式
11.
有以下結(jié)構(gòu)體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是()。
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;
12.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12
13.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的運行結(jié)果是()。
A.abcB.28cC.abc28D.因類型不一致而出錯
14.以下函數(shù)的功能是()intfun(char*A){char*b=a;while(*B)b++;{returnb-a;}}
A.比較兩個字符串的大小B.字符串的復(fù)制C.計算字符串的長度D.字符串的連接
15.下列運算符中優(yōu)先級最高的是()。
A.!B.%C.-=D.&&
16.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
17.若果要求一個線性表既能較快查找,又能適應(yīng)動態(tài)變化的要求,可以采用()查找方法。
A.分塊B.順序C.二分D.散列
18.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
19.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
20.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX");char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
二、2.填空題(20題)21.設(shè)二進制數(shù)A是00101101,若想通過異或運算ab使A的高4位取反,低4位不變,則二進制數(shù)B應(yīng)是【】。
22.如果一個工人可管理多個設(shè)備,而一個設(shè)備只被一個工人管理,則賣體“工人”與實體“設(shè)備”之間存在【】關(guān)系。
23.當(dāng)所有結(jié)點的權(quán)值都相等時,用這些結(jié)點構(gòu)造的二叉排序樹是【】。
24.算法的執(zhí)行過程中,所需要的存儲空間稱為算法的【】。
25.下列程序中的函數(shù)stropy2()實現(xiàn)字符串兩次復(fù)制,即將t所指字符串復(fù)制兩次到s所指內(nèi)存空間中,合并形成一個新字符串。例如,若t所指字符串為:efgh,調(diào)用strcpy2后,s所指字符串為:efghefgh。請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
26.解題方案的準(zhǔn)確而完整的描述稱為______。
27.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
28.下列程序的運行結(jié)果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=fune(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
29.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實現(xiàn)的。
30.在關(guān)系運算中,【】運算是對兩個具有公共屬性的關(guān)系所進行的運算。
31.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請?zhí)羁铡?/p>
#include<stdlib.h>
#include<sldio.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];*d=0;
for(i=0;【】;i++)
if(*max<【】)
{*max=a[i];*d=i;}
}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max.&index);
printf("Max=%5d,Index=%4d\n",max,index);
}
32.fseek函數(shù)的正確調(diào)用形式是【】。
33.以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點的單向鏈表,在結(jié)點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。
#include<stdio.h>
typedefstructnode/*鏈表結(jié)點結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立鏈表*/
{……}
voiddisp(Node*h)
{Node*p;
p=h->next;
while(【】)
{printf("%s\n",P->sub);p=【】;}
}
main()
{Node*hd;
hd=fun();disp(hd);printf("\n");
}
34.根據(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;
}
35.若a的值為1,則表達式!a‖++a的值是______。
36.棧滿時,再作入棧操作會產(chǎn)生【】,棧空時,刪除操作會產(chǎn)生【】。
37.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
38.用復(fù)合的賦值運算符將變量x中的值增大2的賦值表達式是【】。
39.已知a為8位二進制數(shù),要想通過ab運算使a的低5位變反(即0變1,1變0),高3位不變,b的值應(yīng)為【】。
40.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
三、1.選擇題(20題)41.設(shè)有如下三個關(guān)系表:
下列操作中正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
42.有三個關(guān)系R、S和T如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
A.并B.自然連接C.笛卡兒積D.交
43.判斷char型變量c1是否為大寫字母的正確表達式是
A.'A'<=c1<='Z'
B.(c1>=A)&&(c1<=Z)
C.('A'>=c1)||('Z'<=c1)
D.(c1>='A')&&(c1<='Z')
44.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為()。
A.log2nB.n/2C.nD.n+1
45.數(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)系
46.執(zhí)行語句for(i=1;i++<4;);后變量i的值是______。
A.3B.4C.5D.不定
47.結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計方法C.結(jié)構(gòu)化設(shè)計理論D.結(jié)構(gòu)化編程方法
48.下列程序輸出的結(jié)果是()。main(){inta;a=-4+4*5-6;printf("%d",a);a=4+4%5-6;printf("%d",a);a=-3+4%6/5;printf("%d",a);a=(7+6)%5/2;printf("%d",a);}
A.102-31B.10-221C.11-221D.10221
49.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是______。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
50.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
51.若有定義:intx=0,*p=&x;則語句printf("%d\n",*p);的輸出結(jié)果是()。
A.隨機值B.0C.x的地址D.p的地址
52.以下程序的輸出結(jié)果是()main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1,k<3;k++)printf("%s\n",w[k]);}
A.ABCDFGHKL
B.ABCEFGIJM
C.EFGJKO
D.EFGHIJKL
53.下面程序的輸出結(jié)果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}
A.xyzabcABCB.abcABCC.xyzabcD.xyzABC
54.下列選項中不屬于結(jié)構(gòu)化程序設(shè)計方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
55.下列選項中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()
A.數(shù)據(jù)類型B.數(shù)據(jù)操作C.數(shù)據(jù)結(jié)構(gòu)D.數(shù)據(jù)約束
56.以下敘述中正確的是()。
A.用C語言實現(xiàn)的算法必須要有輸入和輸出操作
B.用C語言實現(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C語言程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C語言程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
57.有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x>10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);}
該程序的輸出結(jié)果是
A.0.000000B.0.250000C.0.500000D.1.000000
58.合法的數(shù)組定義是()
A.inta[]="string";
B.inta[5]={0,1,2,3,4,5};
C.chara="string";
D.chara={0,1,2,3,4,5};
59.下列關(guān)于關(guān)系運算的敘述中正確的是()。
A.投影、選擇、連接是從二維表的行的方向來進行運算
B.并、交、差是從二維表的列的方向來進行運算
C.投影、選擇、連接是從二維表的列的方向來進行運算
D.以上三種說法都不對
60.有以下程序
#include<stdio.h>
intf(intx)
{inty;
if(x==0||x==1)return(3);
y=x*x-f(x-2);
returny;
}
main()
{intz;
z=f(3);printf("%d\n",z);
}
程序的運行結(jié)果是
A.0B.9C.6D.8
四、選擇題(20題)61.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
62.
63.結(jié)構(gòu)化分析可以使用的工具是()。
A.N—s圖B.DFD圖C.PAD圖D.程序流程圖
64.(17)軟件需求分析階段的工作,可以分為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()
A.階段性報告
B.需求評審
C.總結(jié)
D.都不正確
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.2.3B.1,3C.1,4D.1,2
66.下列敘述中正確的是()。
A.算法就是程序B.設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計C.設(shè)計算法時只需要考慮結(jié)果的可靠性D.以上三種說法都不對
67.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。
A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式
68.
當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)罘是()。
#include<stdio.h>
#include<string.h>
main()
{charss[10]="1,2,3,4,5":
gets(ss);strcat(ss,"6789");printf("%s\n",ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
69.
70.
若有下列定義(設(shè)int類型變量占2個字節(jié)):
inti=8,j=9;
則下列語句:
printf("i=%%d,j=%%d\n",i,j);
輸出的結(jié)果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
71.當(dāng)c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。A.A.a=b=c;B.(a=c)C.(a=c)&&(b=c);D.(b=c);
72.
73.
74.有以下程序:
程序運行后的輸出結(jié)果是()。.
A.3,3B.1,1C.2,3D.1,2
75.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
76.有以下程序程序運行后的輸出結(jié)果是()。
A.143B.197C.33D.28
77.設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp),的返回值為()。
A.0B.\0C.非0值D.NULL
78.在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是()。
A.各模塊應(yīng)包括盡量多的功能
B.各模塊的規(guī)模應(yīng)盡量大
C.各模塊之間的聯(lián)系應(yīng)盡量緊密
D.模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度
79.有以下程序:
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]-’0’)%2==0)num=10*num+p[i][j]-’0’;
j+=2;
}
}
printf("%d\n",num);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.35B.37
C.39D.28
80.有以下程序:
程序運行后的輸出結(jié)果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.輸出1900~2000年中所有的閏年。每輸出3個年號換一行。(判斷閏年的條件為下面二者之一:能被4整除,但不能被100整除?;蛘吣鼙?00整除。)
參考答案
1.C
2.C
3.DD)【解析】數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、設(shè)計、維護、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計。DBA的主要任務(wù)之一是數(shù)據(jù)庫設(shè)計,具體地說是進行數(shù)據(jù)模式的設(shè)計;數(shù)據(jù)庫維護。DBA必須對數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲等進行實施與維護;改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。
4.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。
5.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對應(yīng)存儲文件中的記錄,列稱為屬性,對應(yīng)存儲文件中的字段,所以本題答案為D。
6.A
7.BB.【解析】快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。
8.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實體集也可以轉(zhuǎn)換成關(guān)系。
9.D
10.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。
11.B
\n本題考查結(jié)構(gòu)體指針變量的賦值方法,要把結(jié)點b連接到結(jié)點;l的后面,必須把b的地址給a的next指針。故8正確。
\n
12.D本題可以寫成:a+a+(a-(a*a)),所以*的優(yōu)先級最高,其次是-=的,+的優(yōu)先級最低,因此先求a-=a*a=9,表達式變?yōu)閍+a+-=9,a即a=a-9=-6,再次變?yōu)閍+(-6)=-12,故選擇D選項。
13.Cfprintf函數(shù)將內(nèi)容寫入硬盤的文件,fputs函數(shù)將字符串寫入文件,最終文件的內(nèi)容為abc28。故本題答案為C選項。
14.C
15.A
16.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。
17.A
18.A解析:局部變量在執(zhí)行到它所在的程序塊時產(chǎn)生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結(jié)束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結(jié)束,故選項B不正確:未賦初值的局部變量的初值是隨機的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。
19.D
20.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當(dāng)執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個字符串。
21.1111000011110000解析:按位異或運算的一個重要應(yīng)用是讓某個整型變量的二進制位取反,0變成1,而1變成0。這只要設(shè)計這樣一個位串信息,讓要變反的位為1,不要改變的位為0,用這個位串信息與整型變量按位加就能得到希望的結(jié)果。要使字節(jié)的高4位取反,低4位不變,則需要位串信息是11110000。
22.一對多一對多解析:實體之間的聯(lián)系有3類:一對一,一對多,多對多。設(shè)有兩個實體集E1和E2,如果E2中的每一個實體與E1中的任意個實體(包括零個)有聯(lián)系,而E1中的每一個實體最多與E2中的一個實體有聯(lián)系,則稱這樣的聯(lián)系為“從E2到E1的一對多的聯(lián)系”,通常表示為“l(fā):n的聯(lián)系”。由此可見,工人和設(shè)備之間是一對多關(guān)系。
23.右子樹(單支樹)右子樹(單支樹)解析:二叉排序樹對于任意新結(jié)點,若大于等于根結(jié)點,則在右子樹上建立。
24.空間復(fù)雜度空間復(fù)雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復(fù)雜度。
25.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函數(shù)。strcpy2()中,首先將指針t保存到指針p中,然后進入第1個while()循環(huán),其循環(huán)條件為*s++=*t++,其中“*”和“++”運算符的優(yōu)先級相同,但他們的結(jié)合性為從右至左,而“=”運算符優(yōu)先級比較低,所以原表達式等價于(*s++)=(*(t++)),即將t當(dāng)前所指內(nèi)容復(fù)制到s當(dāng)前所指地址中,然后讓s和t同時往后移動一位,整個表達式返回的是復(fù)制給s的值。所以,當(dāng)t所指內(nèi)容是字符串結(jié)束符'\\0',時,while循環(huán)結(jié)束,原先t所指的整個字符串也就復(fù)制到s所指的地址中去了。但是,while循環(huán)最后一次判斷也會讓s和t往后移動一位,即此時s指向了字符串結(jié)束符'\\0'的后一位。所以第2次復(fù)制字符串之前,應(yīng)先將s指針往回移動一位,故前一空應(yīng)該填入s-1或其他等價形式。接下來的while循環(huán)實現(xiàn)第二次復(fù)制,照抄第1次的while循環(huán)就行,故后一空應(yīng)填入*s++。
26.算法算法解析:算法是指對解題方案的準(zhǔn)確而完整的描述。
27.測試實例測試實例解析:進行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。
28.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因為在于函數(shù)中將m和i定義成了static類型,所以在于函數(shù)中對m和i進行的改變在下一次調(diào)用子函數(shù)時能進行保存,所以第二次調(diào)用于函數(shù)時,m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。
29.封裝封裝
30.自然連接自然連接解析:在關(guān)系運算中,自然連接運算是對兩個具有公共屬性的關(guān)系所進行的運算。
31.i<na[i]i<na[i]解析:在main函數(shù)中,randomize是為了生成隨機種子,以便在使用rand函數(shù)時產(chǎn)生不同的數(shù)。通過循環(huán)用rand函數(shù)產(chǎn)生10個隨機數(shù)。在fun函數(shù)中,要在n個數(shù)中找最大值,所以第一處填寫i<n,每次將當(dāng)前最大值與數(shù)組中的某元素比較,第二處填寫a[i]。
32.fseek(文件指針位移量起始點)fseek(文件指針,位移量,起始點)解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:
fseek(文件指針,位移量,起始點)
“起始點”用0,1或2代替,其中,0代表“文件開始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長度大于64k時不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。
33.p!=NULLp->nextp!=NULL,p->next解析:考查了單鏈表的相關(guān)知識。NULL的ASCII碼的值和'\\0'的ASCII碼的值相等,條件到NULL停止循環(huán)。把下一個節(jié)點的地址賦給p,這樣循環(huán),節(jié)點可以依次向后取值。
34.x/10case0:case1:case2:case3:case4:case5:case9:x/10\r\ncase0:case1:case2:case3:case4:case5:\r\ncase9:
35.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
36.上溢下溢上溢\r\n下溢
37.數(shù)據(jù)存儲數(shù)據(jù)存儲
38.x+=2
39.1F1F解析:11=0,01=1,實現(xiàn)了按位的求反。
40.99解析:本題的字符串中共有9個字符,它們分別是\'I\'、\'B\'、\'M\'、\'\\n\'、\'0\'、\'1\'、\'2\'、\'\\1\'、\'\\\\\',其中,'\\n'表示換行,'\\\\'表示反斜杠字符'\\',所以本題的最后輸出結(jié)果為9。
41.C解析:本題考查數(shù)據(jù)庫的關(guān)系代數(shù)運算。R表中只有一個域名A,有兩個記錄(也叫元組),分別是m和n;S表中有兩個域名,分別是B和C,其所對應(yīng)的記錄分別為1和3。注意觀察表T,它是由R的第一個記錄依次與S的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運算恰恰符合關(guān)系代數(shù)的笛卡兒積運算規(guī)則。關(guān)系代數(shù)中,笛卡兒積運算用“×”來表示。因此,上述運算可以表示為T=R×S。因此,本題的正確答案為C。
42.D自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,因此B錯誤。笛卡兒積是用R集合中的元素為第一元素,s集合中的元素為第二元素構(gòu)成的有序?qū)Γ虼薈錯誤。根據(jù)關(guān)系T可以很明顯地看出是從關(guān)系R與是系s中取得相同的關(guān)系組,所以使用的是交運算,選擇D。
43.D解析:字符型數(shù)據(jù)在計算機內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的。大寫字母A到Z是從65到90,所以只要變量c1大于A并且小于Z就能保證其為大寫字母。注意:邏輯運算符的功能與作用。
44.C本題考查的是順序查找。在進行順序查找過程中,如果線性表中的第一個元素就是被查找元素,則只需做一次比較就查找成功,查找效率最高;但如果被查找的元素是線性表中的最后一個元素,或者被查找的元素根本就不在線性表中,則為了查找這個元素需要與線性表中所有的元素進行比較,這是順序查找的最壞情況。所以對長度為n的線性表進行順序查找,在最壞情況下需要比較n次。故本題答案為C。
45.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。
46.C解析:for語句中的表達式可以部分或全部省略,但兩個“;”不能省略,若3個表達式均省略,會因為缺少條件判斷,導(dǎo)致循環(huán)無限執(zhí)行,而形成死循環(huán)。本題中當(dāng)i的值為5的時候,循環(huán)終止。
47.CC。【解析】結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是結(jié)構(gòu)化設(shè)計理論,其中包括:結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化編程方法。
48.A解析:本題考查%和/運算符的使用。如果兩個數(shù)不能整除,只取結(jié)果的整數(shù)部分,小數(shù)部分全部舍去。運算符“%”要求兩個運算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。表達式:a=-4+4*5-6=-4+20-6=10:表達式:a=4+4%5-6=4+4-6=2;表達式:a=-3+4%6/5=-3+0=-3;表達式:a=(7+6)%5/2=13%5/2=1。
49.B解析:第一次執(zhí)行while語句時,z=3>0,然后執(zhí)行z--得z=2,執(zhí)行++x得x=1<5,條件成立,執(zhí)行y=y-1=5
-1=4;第二次執(zhí)行while語句時,z=2>0,然后執(zhí)行z--得z=1,執(zhí)行++x得x=2<5,條件成立,執(zhí)行y=y-1=4-1=3;第三次執(zhí)行while語句時,z=1>0,然后執(zhí)行z--得x=0,執(zhí)行++x得x=3<5,條件成立,執(zhí)行y=y-1=3-1=2;第四次執(zhí)行while語句時因z=0,z<0條件不成立,同時執(zhí)行c--得z=-1。即執(zhí)行完while循環(huán)后x=3、y=2、z=-1。
50.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)計的常用工具,不是需求分析的工具。
51.B解析:本題考查的是指針的運用。語句intx=O,*p=&x;定義7一個int型變量x并初始化為0,同時還定義了一個int型指針p指向變量x。語句ptintf('%d\\n',*p);是按十進制整數(shù)格式輸出指針p所指向的內(nèi)容,即x的值0。故本題應(yīng)該選擇B。
52.D
53.B解析:strcpy(str1,s1):作用是將字符串s1拷貝到字符數(shù)組str1中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個字符數(shù)組p1,p2,sir,strcat(p1,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。
54.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計方法,主要有①逐步求精:對復(fù)雜的問題,應(yīng)設(shè)計一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計時應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計,逐步使問題具體化;⑧模塊化:一個復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進一步分解為具體的小目標(biāo),把每個小目標(biāo)稱為一個模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計的一個優(yōu)點。
55.AA)【解析】數(shù)據(jù)模型描述的內(nèi)容包含數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。
56.C解析:一個算法應(yīng)該具有以下5個特性:有窮性、確定性、可行性、有零個或多個輸入、有一個或多個輸出。因此一個算法可以沒有輸入(程序的功能確定),但必須要有輸出,沒有輸出的算法是沒有意義的。
57.D解析:本題考查if語句中的一種表達方式,即:if卐lseif叀
該表達式的語句是:
if(表達式1)
語句1
elseif(表達式2)
語句2
elseif(表達式3)
語句3
else
語句4
厖
本題執(zhí)行elsey=1.0,并且以'%f'輸出。
58.D
59.C解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運用常規(guī)的集合運算(并、交、差、笛卡爾積等)外,還定義了一些專門的關(guān)系運算,如投影、選擇、連接等運算。前者是將關(guān)系(即二維表)看成是元組的集合,這些運算主要是從二維表的行的方向來進行的;后者主要是從二維表的列的方向來進行運算。因此,選項A與B中的說法都是錯誤的,而選項C中的說法是正確的。
60.C解析:函數(shù)intf(intx)是一個遞歸函數(shù)調(diào)用,當(dāng)x的值等于0或1時,函數(shù)值等于3,其他情況下y=x2-f(x-2),所以在主函數(shù)中執(zhí)行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。
61.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:
①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
62.C
63.B\n數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典、判定表和判定樹是結(jié)構(gòu)化分析常用的工具。程序流程圖、N—S圖、PAD圖是詳細(xì)設(shè)計過程中常用的圖形工具。
\n
64.B
65.B在f(int+P,int4q)函數(shù)中,執(zhí)行P=P+1是將P所對應(yīng)的地址加1,而0q=+q+1是將q所指向的n的地址所對應(yīng)的值加1,所以m的得知所對應(yīng)的值沒有變,而n的值則為3了。因此B選項正確。
66.D算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計算方法,所以A錯誤。設(shè)計算法時不僅要考慮對數(shù)據(jù)對象的運算和操作,還要考慮算法的控制結(jié)構(gòu)。故答案為D選項。
67.C數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。
68.A
\n當(dāng)執(zhí)行g(shù)ets(ss)后,ss數(shù)組中的元素為ABC,再執(zhí)行strcat(ss,'6789'),strcat的作用,是把6789連接到了ss數(shù)組后面,執(zhí)行完后SS數(shù)組為ABC6789,故選擇A選項。
\n
69.C
70.B解析:本題考查printf函數(shù)的格式。在printf函數(shù)中,如果格式說明符中有兩個%說明,則將第1個%后面的字符原樣輸出,并不輸出其對應(yīng)的變量值。
71.C選項A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項中由于c的值不為0,在將c的值賦給變量a后,表達式a=c的值為1,不再對表達式b=c計算;對于c選項,表達式a=c的值為1,再求表達式b=c的值為1,然后進行邏輯與運算;D選項將b的值賦給c后再賦給e,故選擇C選項。
72.D
73.B
74.D該題目中首先區(qū)別++n和n++,第一次調(diào)用f函數(shù)時,將++n(n自增l后再參與運算)作為參數(shù)進行傳遞,此時變量m的值為1,執(zhí)行n+=m;后,n=1,將l返回主函數(shù),并輸出。第二次調(diào)用f函數(shù)時,將n++(n參與運算后再自增1)作為參數(shù)進行傳遞,此時變量m的值為1,執(zhí)行語句n+=m;,由于n是靜態(tài)存儲變量,因此n=2,將2返回主函數(shù)并輸出。因此D選項正確。
75.D本題給出的兩個關(guān)系R與S的表結(jié)構(gòu)是不同的(R是二元關(guān)系,S是三元關(guān)系),它們不能進行∩、∪、一運算。而兩個不同結(jié)構(gòu)的關(guān)系是可以進行笛卡兒積(×)運算的。
76.As(k+j)展開后為4+(1(+j)·k+j+1結(jié)果為143,選擇A)。
77.C本題考查文件的定位,feof函數(shù)的用法是從輸入流讀取數(shù)據(jù),如果到達文件末尾(遇文件結(jié)束符),eof函數(shù)值為非零值,否則為0,所以選項C正確。
78.D解析:本題考查軟件工程中軟件設(shè)計的概念和原理。人們在開發(fā)計算機軟件的長期實踐中積累了豐富的經(jīng)驗,總結(jié)這些經(jīng)驗得到如下的啟發(fā)式規(guī)則:
(1)改進軟件結(jié)構(gòu),提高模塊獨立性;通過模塊的分解或合并,力求降低耦合提高內(nèi)聚。低耦合也就是降低不同模塊間相互依賴的緊密程度,高內(nèi)聚是提高一個模塊內(nèi)各元素彼此結(jié)合的緊密程度。
(2)模塊的規(guī)模應(yīng)適中。一個模塊的規(guī)模不應(yīng)過大,過大的模塊往往是由于分解不夠充分:過小的模塊開銷大于有益操作,而且模塊過多將使系統(tǒng)接口復(fù)雜。因此過小的模塊有時不值得單獨存在。
(3)模塊的功能應(yīng)該可以預(yù)測,但也要防止模塊功能過分局限。如果模塊包含的功能太多,則不能體現(xiàn)模塊化設(shè)計的特點:如果模塊的功能過分的局限,使用范圍就過分狹窄。
經(jīng)過上述分析,本題的正確答案是選項D。
79.Di=0,i<2,j=0,p[i][j]=3,不滿足if判斷條件,j+2=2,p[i][j]=9,不滿足條件,j+2=4,不滿足while循環(huán)條件,i+1=1,j=0,p[1][0]=2,滿足if判斷條件,num=10*num+p[i][j]-‘0’=2,j+2=2,p[1][2]=8,滿足條件,num=10*2+p[i][j]-‘0’=28
80.A本題中由fun函數(shù)可知,b[0]=a[0][0]-a[0][3]=1-4=-3,b[1]=a[1][1]-[1][2]=6-7=-1,b[2]=a[2][2]-[2][1]=11-10=1,b[3]=8[3][3]-[3][1]=16-13=3。所以主函數(shù)中打印Y數(shù)組元素的值為A選項。
81.(1)錯誤:if((tt[i]>=ˊaˊ)||(tt[i]<=ˊzˊ))
正確:if((tt[i]>=ˊaˊ)&&(tt[i]<=ˊzˊ))
(2)錯誤:tt[i]+=32;
正確:tt[i]-=32;
【解析】題目要求將小寫字母改為對應(yīng)的大寫字母,要判斷是否是小寫字母,只需判斷字母是否在ˊaˊ~ˊzˊ,因此應(yīng)該是“(tt[i]>=ˊaˊ)&&(tt[i]<=ˊzˊ)”;又已知小寫字母的ASCⅡ碼值比對應(yīng)大寫字母的ASCⅡ值大32,因此本題的解題思路是從字符串的第一個字母開始遍歷,判斷是否為小寫字母,如果是,則ASCⅡ碼值減32。
82.\n#include”stdio.h”
\nmain
\n{intI,n;
\nfor(n=0,I=1900;I<=2000;I++)
\n{if(I%4==0I0!=0||I@0==0)
\n{printf(“%d”,I);n++;}
\nif(n%3==0)
\nprintf(“\\n”);}}}
\n2021-2022年四川省瀘州市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.C語言中函數(shù)返回值的類型是由()決定的。
A.return語句中的表達式類型B.調(diào)用該函數(shù)的主調(diào)函數(shù)類型C.定義函數(shù)時所指定的函數(shù)類型D.以上說法都不正確
2.有n個結(jié)點的二叉樹鏈表共有__________個空指針域。
A.n-1B.nC.n+1D.n+2
3.下列選項中,不屬于數(shù)據(jù)管理員(DBA.職責(zé)的是()。
A.數(shù)據(jù)庫維護B.數(shù)據(jù)庫設(shè)計C.改善系統(tǒng)性能,提高系統(tǒng)效率D.數(shù)據(jù)類型轉(zhuǎn)換
4.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
5.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個學(xué)生信息的數(shù)據(jù)單位是()。
A.文件B.數(shù)據(jù)庫C.字段D.記錄
6.下面關(guān)于B樹和B+樹的敘述中,不正確的結(jié)論是()。
A.B樹和B+樹都能有效的支持順序查找
B.B樹和B+樹都能有效的支持隨機查找
C.B樹和B+樹都是平衡的多叉樹
D.B樹和B+樹都可用于文件索引結(jié)構(gòu)
7.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個位置。
A.3B.5C.7D.9
8.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成________。
A.屬性B.關(guān)系C.鍵D.域
9.遞歸式的先序遍歷一個n節(jié)點,深度為d的二叉樹,則需要??臻g的大小為()
A.O(logn)B.O(nlogn)C.O(n)D.O(d)
10.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。
A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式
11.
有以下結(jié)構(gòu)體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是()。
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;
12.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12
13.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的運行結(jié)果是()。
A.abcB.28cC.abc28D.因類型不一致而出錯
14.以下函數(shù)的功能是()intfun(char*A){char*b=a;while(*B)b++;{returnb-a;}}
A.比較兩個字符串的大小B.字符串的復(fù)制C.計算字符串的長度D.字符串的連接
15.下列運算符中優(yōu)先級最高的是()。
A.!B.%C.-=D.&&
16.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
17.若果要求一個線性表既能較快查找,又能適應(yīng)動態(tài)變化的要求,可以采用()查找方法。
A.分塊B.順序C.二分D.散列
18.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
19.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
20.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX");char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
二、2.填空題(20題)21.設(shè)二進制數(shù)A是00101101,若想通過異或運算ab使A的高4位取反,低4位不變,則二進制數(shù)B應(yīng)是【】。
22.如果一個工人可管理多個設(shè)備,而一個設(shè)備只被一個工人管理,則賣體“工人”與實體“設(shè)備”之間存在【】關(guān)系。
23.當(dāng)所有結(jié)點的權(quán)值都相等時,用這些結(jié)點構(gòu)造的二叉排序樹是【】。
24.算法的執(zhí)行過程中,所需要的存儲空間稱為算法的【】。
25.下列程序中的函數(shù)stropy2()實現(xiàn)字符串兩次復(fù)制,即將t所指字符串復(fù)制兩次到s所指內(nèi)存空間中,合并形成一個新字符串。例如,若t所指字符串為:efgh,調(diào)用strcpy2后,s所指字符串為:efghefgh。請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
26.解題方案的準(zhǔn)確而完整的描述稱為______。
27.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
28.下列程序的運行結(jié)果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=fune(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
29.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實現(xiàn)的。
30.在關(guān)系運算中,【】運算是對兩個具有公共屬性的關(guān)系所進行的運算。
31.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請?zhí)羁铡?/p>
#include<stdlib.h>
#include<sldio.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];*d=0;
for(i=0;【】;i++)
if(*max<【】)
{*max=a[i];*d=i;}
}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max.&index);
printf("Max=%5d,Index=%4d\n",max,index);
}
32.fseek函數(shù)的正確調(diào)用形式是【】。
33.以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點的單向鏈表,在結(jié)點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。
#include<stdio.h>
typedefstructnode/*鏈表結(jié)點結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立鏈表*/
{……}
voiddisp(Node*h)
{Node*p;
p=h->next;
while(【】)
{printf("%s\n",P->sub);p=【】;}
}
main()
{Node*hd;
hd=fun();disp(hd);printf("\n");
}
34.根據(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;
}
35.若a的值為1,則表達式!a‖++a的值是______。
36.棧滿時,再作入棧操作會產(chǎn)生【】,棧空時,刪除操作會產(chǎn)生【】。
37.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
38.用復(fù)合的賦值運算符將變量x中的值增大2的賦值表達式是【】。
39.已知a為8位二進制數(shù),要想通過ab運算使a的低5位變反(即0變1,1變0),高3位不變,b的值應(yīng)為【】。
40.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
三、1.選擇題(20題)41.設(shè)有如下三個關(guān)系表:
下列操作中正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
42.有三個關(guān)系R、S和T如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
A.并B.自然連接C.笛卡兒積D.交
43.判斷char型變量c1是否為大寫字母的正確表達式是
A.'A'<=c1<='Z'
B.(c1>=A)&&(c1<=Z)
C.('A'>=c1)||('Z'<=c1)
D.(c1>='A')&&(c1<='Z')
44.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為()。
A.log2nB.n/2C.nD.n+1
45.數(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)系
46.執(zhí)行語句for(i=1;i++<4;);后變量i的值是______。
A.3B.4C.5D.不定
47.結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計方法C.結(jié)構(gòu)化設(shè)計理論D.結(jié)構(gòu)化編程方法
48.下列程序輸出的結(jié)果是()。main(){inta;a=-4+4*5-6;printf("%d",a);a=4+4%5-6;printf("%d",a);a=-3+4%6/5;printf("%d",a);a=(7+6)%5/2;printf("%d",a);}
A.102-31B.10-221C.11-221D.10221
49.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是______。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
50.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
51.若有定義:intx=0,*p=&x;則語句printf("%d\n",*p);的輸出結(jié)果是()。
A.隨機值B.0C.x的地址D.p的地址
52.以下程序的輸出結(jié)果是()main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1,k<3;k++)printf("%s\n",w[k]);}
A.ABCDFGHKL
B.ABCEFGIJM
C.EFGJKO
D.EFGHIJKL
53.下面程序的輸出結(jié)果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}
A.xyzabcABCB.abcABCC.xyzabcD.xyzABC
54.下列選項中不屬于結(jié)構(gòu)化程序設(shè)計方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
55.下列選項中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()
A.數(shù)據(jù)類型B.數(shù)據(jù)操作C.數(shù)據(jù)結(jié)構(gòu)D.數(shù)據(jù)約束
56.以下敘述中正確的是()。
A.用C語言實現(xiàn)的算法必須要有輸入和輸出操作
B.用C語言實現(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C語言程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C語言程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
57.有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x>10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);}
該程序的輸出結(jié)果是
A.0.000000B.0.250000C.0.500000D.1.000000
58.合法的數(shù)組定義是()
A.inta[]="string";
B.inta[5]={0,1,2,3,4,5};
C.chara="string";
D.chara={0,1,2,3,4,5};
59.下列關(guān)于關(guān)系運算的敘述中正確的是()。
A.投影、選擇、連接是從二維表的行的方向來進行運算
B.并、交、差是從二維表的列的方向來進行運算
C.投影、選擇、連接是從二維表的列的方向來進行運算
D.以上三種說法都不對
60.有以下程序
#include<stdio.h>
intf(intx)
{inty;
if(x==0||x==1)return(3);
y=x*x-f(x-2);
returny;
}
main()
{intz;
z=f(3);printf("%d\n",z);
}
程序的運行結(jié)果是
A.0B.9C.6D.8
四、選擇題(20題)61.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
62.
63.結(jié)構(gòu)化分析可以使用的工具是()。
A.N—s圖B.DFD圖C.PAD圖D.程序流程圖
64.(17)軟件需求分析階段的工作,可以分為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()
A.階段性報告
B.需求評審
C.總結(jié)
D.都不正確
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.2.3B.1,3C.1,4D.1,2
66.下列敘述中正確的是()。
A.算法就是程序B.設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計C.設(shè)計算法時只需要考慮結(jié)果的可靠性D.以上三種說法都不對
67.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。
A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式
68.
當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)罘是()。
#include<stdio.h>
#include<string.h>
main()
{charss[10]="1,2,3,4,5":
gets(ss);strcat(ss,"6789");printf("%s\n",ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
69.
70.
若有下列定義(設(shè)int類型變量占2個字節(jié)):
inti=8,j=9;
則下列語句:
printf("i=%%d,j=%%d\n",i,j);
輸出的結(jié)果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
71.當(dāng)c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。A.A.a=b=c;B.(a=c)C.(a=c)&&(b=c);D.(b=c);
72.
73.
74.有以下程序:
程序運行后的輸出結(jié)果是()。.
A.3,3B.1,1C.2,3D.1,2
75.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
76.有以下程序程序運行后的輸出結(jié)果是()。
A.143B.197C.33D.28
77.設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp),的返回值為()。
A.0B.\0C.非0值D.NULL
78.在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是()。
A.各模塊應(yīng)包括盡量多的功能
B.各模塊的規(guī)模應(yīng)盡量大
C.各模塊之間的聯(lián)系應(yīng)盡量緊密
D.模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度
79.有以下程序:
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]-’0’)%2==0)num=10*num+p[i][j]-’0’;
j+=2;
}
}
printf("%d\n",num);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.35B.37
C.39D.28
80.有以下程序:
程序運行后的輸出結(jié)果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.輸出1900~2000年中所有的閏年。每輸出3個年號換一行。(判斷閏年的條件為下面二者之一:能被4整除,但不能被100整除?;蛘吣鼙?00整除。)
參考答案
1.C
2.C
3.DD)【解析】數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、設(shè)計、維護、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計。DBA的主要任務(wù)之一是數(shù)據(jù)庫設(shè)計,具體地說是進行數(shù)據(jù)模式的設(shè)計;數(shù)據(jù)庫維護。DBA必須對數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲等進行實施與維護;改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。
4.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。
5.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對應(yīng)存儲文件中的記錄,列稱為屬性,對應(yīng)存儲文件中的字段,所以本題答案為D。
6.A
7.BB.【解析】快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。
8.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實體集也可以轉(zhuǎn)換成關(guān)系。
9.D
10.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。
11.B
\n本題考查結(jié)構(gòu)體指針變量的賦值方法,要把結(jié)點b連接到結(jié)點;l的后面,必須把b的地址給a的next指針。故8正確。
\n
12.D本題可以寫成:a+a+(a-(a*a)),所以*的優(yōu)先級最高,其次是-=的,+的優(yōu)先級最低,因此先求a-=a*a=9,表達式變?yōu)閍+a+-=9,a即a=a-9=-6,再次變?yōu)閍+(-6)=-12,故選擇D選項。
13.Cfprintf函數(shù)將內(nèi)容寫入硬盤的文件,fputs函數(shù)將字符串寫入文件,最終文件的內(nèi)容為abc28。故本題答案為C選項。
14.C
15.A
16.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。
17.A
18.A解析:局部變量在執(zhí)行
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年文明單位創(chuàng)建工作報告
- 2025年度個人信用卡透支合同模板(全新修訂)4篇
- 2025年度個人稅務(wù)籌劃與申報服務(wù)合同6篇
- 2025年度高端住宅個人出租服務(wù)合同樣本4篇
- 2025年中國廈門外輪代理有限公司招聘筆試參考題庫含答案解析
- 2025年河南東龍控股集團有限公司招聘筆試參考題庫含答案解析
- 綿陽市二零二五年度長租公寓租賃管理合同4篇
- 2025年度購房合同霸王條款解析:購房者維權(quán)手冊3篇
- 2025年江蘇連云港市東海城投集團招聘筆試參考題庫含答案解析
- 2025年版醫(yī)療廢棄物無害化處置及資源化利用合同3篇
- 2025年病案編碼員資格證試題庫(含答案)
- 企業(yè)財務(wù)三年戰(zhàn)略規(guī)劃
- 提高膿毒性休克患者1h集束化措施落實率
- 山東省濟南市天橋區(qū)2024-2025學(xué)年八年級數(shù)學(xué)上學(xué)期期中考試試題
- 主播mcn合同模板
- 新疆2024年中考數(shù)學(xué)試卷(含答案)
- 2024測繪個人年終工作總結(jié)
- DB11 637-2015 房屋結(jié)構(gòu)綜合安全性鑒定標(biāo)準(zhǔn)
- 制造業(yè)生產(chǎn)流程作業(yè)指導(dǎo)書
- DB34∕T 4444-2023 企業(yè)信息化系統(tǒng)上云評估服務(wù)規(guī)范
- 福建中閩能源股份有限公司招聘筆試題庫2024
評論
0/150
提交評論