版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年內(nèi)蒙古自治區(qū)烏蘭察布市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.樹的度為3,且有9個度為3的節(jié)點(diǎn),5個度為1的節(jié)點(diǎn),但沒有度為2的節(jié)點(diǎn)。則該樹中的葉子節(jié)點(diǎn)數(shù)為()。
A.18B.33C.19D.32
2.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。
A.定義語句中的*號是一個間址運(yùn)算符
B.定義語句中的*號只是一個說明符
C.定義語句中的P只能存放double類型變量的地址
D.定義語句中,*p=&n把變量a的地址作為初值賦給指針變量P
3.判斷一個單向鏈表中是否存在環(huán)的最佳方法是()
A.兩重遍歷B.快慢指針C.路徑記錄D.哈希表輔助
4.在如下結(jié)構(gòu)定義中,不正確的是()。A.
B.
C.
D.
5.
6.設(shè)變量已正確定義并賦值,下列表達(dá)式中正確的是()。
A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0
7.不帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。
A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL
8.
9.
10.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);
A.aB.bC.cD.d
11.有種數(shù)據(jù)結(jié)構(gòu)叫跳躍列表(SkipList),它是一種基于并聯(lián)的鏈表的隨機(jī)化數(shù)據(jù)結(jié)構(gòu),其效率可比擬于二叉查找樹(對于大于數(shù)操作需要O(logn)平均時間)。它是按層建造的。底層是一個普通的有序鏈表。每個更高層都充當(dāng)下面列表的“快速跑道”,這里在層i中的元素按概率l/p出現(xiàn)在層i+1中。平均起來,每個元素都在p/(p-1)個列表中出現(xiàn),而最高層的元素(通常是在跳躍列表前段的一個特殊的頭元素)在O(logpn)個列表中出現(xiàn)。調(diào)節(jié)p的大小可以在內(nèi)存消耗和時間消耗上進(jìn)行折中。試分析在該數(shù)據(jù)結(jié)構(gòu)中查找一個元素的平均時間復(fù)雜度。
A.O(logn)B.O(n)C.O(n*logn)D.以上都不正確
12.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致,
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
13.
14.若有函數(shù)voidfun(doublea[]。int*n){…}以下敘述中正確的是()。A.調(diào)用fun函數(shù)時只有數(shù)組執(zhí)行按值傳送,其他實(shí)參和形參之間執(zhí)行按地址傳送
B.形參a和n都是指針變量
C.形參a是一個數(shù)組名,n是指針變量
D.調(diào)用fun函數(shù)時將把double型參數(shù)組元素一一對應(yīng)地傳送給形參a數(shù)組
15.設(shè)有關(guān)鍵碼初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法對初始序列精細(xì)第一堂排序的結(jié)果。
A.直接插入排序B.二路歸并排序C.快速排序D.基數(shù)排序
16.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.研究算法中的輸入和輸出的關(guān)系C.分析算法的效率以求改進(jìn)D.分析算法的易讀性和文檔性
17.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序運(yùn)行后的輸出結(jié)果是()。
A.18,34,100B.24,34,92C.24,34,100D.18,34,92
18.設(shè)變量已正確定義,則以下能正確計算n!的程序段是______。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
19.若一個棧以向量V[1..n]存儲,初始棧頂指針top為n+1,則下面x進(jìn)棧的正確操作是()。
A.top=top+1;V[top]=x
B.V[top]=x;top=top+1
C.top=top-1;V[top]=x
D.V[top]=x;top=top-1
20.下面程序的運(yùn)行結(jié)果是()#include<stdio.h>#include<string.h>main(){char*a="AbcdEf",*b="aBcD"a++;b++;printf("%d\n",strcmp(a,b));}
A.0B.負(fù)數(shù)C.正數(shù)D.無確定值
二、2.填空題(20題)21.以下程序的輸出是【】。
main()
{
charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
22.對于長度為n的順序存儲的線性表,當(dāng)隨機(jī)插入和刪除一個元素時,需平均移動元素的個數(shù)為【】。
23.以下程序輸出的最后個值是【】
intff(intn)
{staticintf=1;
f=f*n
returnf;
}
main()
{inti;
for(i=1;i<=5:i++)printf("%d、n",ff(i));}
24.以下程序的運(yùn)行結(jié)果是【】。
#include<string.h>
typedefstructstudent{
charname[10];
longsno);
floatscore
}STU;
main()
{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90}
c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(,)>0)d=b;
if(strcmp(,)>0)d=c;
printf("%1d%s\n",d.sno,p->name);
}
25.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。
26.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
#deftneJFT(x)x*x
main()
{inta,k=3;
a=++JFT(k+1);
printf("%d",a);
}
27.一棵二叉樹第6層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)最多為______個。
28.以下程序運(yùn)行的結(jié)果是【】。
#include<conio.h>
#include<stdio.h>
#defineM100
voidfun(intm,int*a,int*n)
{inti,j=0;
for(i=1;i<=m;i++)
if(i%7==0‖i%11==0)
a[j++]=i;
*n=j;}
main()
{intaa[M],n,k;
clrscr();
fun(10,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)printf("\n");
elseprintf("%4d",aa[k]);
printf("\n");}
29.下面的程序可列指定字符串中的字符串進(jìn)行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
30.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
31.關(guān)系數(shù)據(jù)庫的關(guān)系演算語言是以【】為基礎(chǔ)的DML語言。
32.設(shè)一棵完全二叉樹共有700個結(jié)點(diǎn),則在該二叉樹中有【】個葉子結(jié)點(diǎn)。
33.下面程序的功能是輸出數(shù)組中最大的數(shù),由a指針指向該元素。請?zhí)羁铡?/p>
main()
{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b;
for(【】)
if(*a<*b)a=b;
printf("%d",*a);
}
34.下列程序的輸出結(jié)果是______。
#include<stdio.h>
int(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
35.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。
36.可以把具有相同屬性的一些不同對象歸類,稱為【】。
37.在面向?qū)ο蟪绦蛟O(shè)計中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱為對象的______。
38.下面程序的輸出是【】
main()
{enumem{eml=3,em2=1,em3};
char*aa[]={"AA',"BB","CC","DD"}
printf("%s%s%\n",aa[em1],aa[em2],aa[em3]);
}
39.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計算S,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請補(bǔ)全程序。
S=1-1/3+1/5-1/7+…+1/(2n+1)
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;
}
【】=s;
}
40.實(shí)現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.在賦值表達(dá)式中,賦值號的左邊既可以是變量,也可以是任意表達(dá)式
B.實(shí)型變量中允許存放整型數(shù)
C.若a和b類型相同,在執(zhí)行了賦值a=b后,b中的值將放入a中,但b中的值不變
D.在C程序中,求余運(yùn)算符“%”兩邊的類型相同時才能進(jìn)行運(yùn)算
42.以下敘述中錯誤的是______。A.用戶所定義的標(biāo)識符允許使用關(guān)鍵字
B.用戶所定義的標(biāo)識符應(yīng)盡量做到“見名知意”
C.用戶所定義的標(biāo)識符必須以字母或下劃線開頭
D.用戶定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識
43.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}
A.languageB.lnugC.有語法錯誤D.lang
44.設(shè)有下列二叉樹:
對此二叉樹中序遍歷的結(jié)果為______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
45.以下四個程序中,完全正確的是()。
A.#include<stdio.h>
B.#include<stdio.h>main();main(){/*programming*/{/*/programming/*/printf("programming!\n");}printf("programming!\n");}
C.#include<stdio.h>
D.include<stdio.h>main()main(){/*/*programming*/*/{/*programming*/printf("programming!\n");}printf("programming!\n");}
46.以下程序的輸出結(jié)果是______。fun(int*s,int*p){staticintt=3;*p=s[t];t--;}main(){intstr[]={1,2,3,4},i,m=0;for(i=0;i<4;i++){fun(str,&m);printf("%d",m);}printf("\n");}
A.0B.444412C.1234D.4321
47.以下對結(jié)構(gòu)體類型變量的定義中,不正確的是_______。
A.typedefstructaa{intn;floatm;}aa;aatd1;
B.#defineaastructaaaa{intn;floatm;}td1;
C.struct{intn;floatm;}aa;structaatd1;
D.struct{intn;floatm;}td1;
48.執(zhí)行下面程序的結(jié)果是______。main(){intx=2;printf("%d\n",(x--,x<<1,x&&5));}
A.0B.1C.2D.編譯時有語法錯誤,不能執(zhí)行
49.有以下程序#include<stdio.h>main(){printf("%d\n",NULL);}
A.0B.1C.-1D.NULL沒定義,出錯
50.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是
A.4B.3C.2D.1
51.下列條件語句中,功能與其他語句不同的是()。
A.if(a)printf("%d\n",x);elseprintf("%d\n",y);
B.if(a==O)printf("%d\n",y);elseprintf("%d\n",x);
C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);
D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
52.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。
A.-3B.9C.-12D.6
53.算法的時間復(fù)雜度是指()A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法程序中的指令條數(shù)D.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
54.下列不合法的main函數(shù)命令行參數(shù)的表示形式是______。
A.main(inta,char*c[]);
B.main(ac,av)intarc;char**av;
C.main(c,v)intc;char*v[];
D.main(argc,argv)intargc;charargv[];
55.設(shè)有以下語句:charstr1[]="string"mstr2[8],*str3,*str4=="string";則______不是對庫函數(shù)的正確調(diào)用。
A.strcpy(str1,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4");
56.在具有n個結(jié)點(diǎn)的二叉排序樹上插入一個新結(jié)點(diǎn)時,根據(jù)n個數(shù)據(jù)元素生成一棵二叉排序樹時,其時間復(fù)雜性大致為______。
A.O(n)
B.O(n2)
C.O(log2n)
D.O(nlog2n)
57.若有下列定義和語句:intu=011,v=Ox11,w=11;printf("%o,%x,%d\n”,u,v,w);則輸出結(jié)果是()。
A.9,17,11B.9,11,11C.11,11,11D.11,17,11
58.不能與do…while(exp)語句中的(exp)等價的表達(dá)式是()。
A.(!exp==0)B.(exp>0‖exp<0)C.(exp==0)D.(exp!=0)
59.現(xiàn)有如下程序段
#include"stdio.h"
#include"string.h"
main()
{chara[]="acfijk";/*這里是有序的字符序列*/
charb[]="befijklqswz";/*這里是有序的字符序列*/
charc[80],*p;
inti=0,j=0,k=0;
while(a[i]!=′\0′&&b[j]!=′\0′)
{if(a[i]<b[j])c[k++]=a[i++];
elseif(a[i]>b[j])c[k++]=b[j++];
else{c[k++]=b[j++];
i++;}}
while(a[i]==′\0′&&b[j]!=′\0′)
c[k++]=b[j++];
while(a[i]!=′\0′&&b[j]==′\0′)
c[k++]=a[i++];
c[k]=′\0′;
puts(c);}
則輸出結(jié)果是
A.acfijkbefijklqswz
B.abceffiijjkklqswz
C.befijklqswzacfijk
D.abcefijklqswz
60.對以下說明語句的正確理解是inta[10]={6,7,8,9,10};
A.將5個初值依次賦給a[1]至a[5]
B.將5個初值依次賦給a[0]至a[4]
C.將5個初值依次賦給a[6]至a[10]
D.因?yàn)閿?shù)組長度與初值的個數(shù)不相同,所以此語句不正確
四、選擇題(20題)61.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1,2B.1,0C.3,2D.0,0
62.以下敘述正確的是()。A.C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))
B.C語言程序是由過程和函數(shù)組成的
C.c語言函數(shù)不可以單獨(dú)編譯
D.c語言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在
63.
64.有以下程序段:
以下敘述中正確的是()。
A.以上的說明形式非法
B.NODE是一個結(jié)構(gòu)體類型
C.OLD是一個結(jié)構(gòu)體類型
D.OLD是一個結(jié)構(gòu)體變量
65.
66.一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為()。
A.對應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
67.
68.
69.設(shè)有以下程序段:
intX=0,s=0;
while(!X!=0.s+=++X;
prinff(”%d”,S.;
則()。
A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出lC.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次
70.有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和s通過某種操作得到,該操作為()。
A.選擇B.交C.投影D.并
71.若有定義語句:“inta=10;doubleb=3.14;”,則表達(dá)式A+a+b值的類型是()。
A.charB.intC.doubleD.float
72.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.8B.2C.4D.1
73.
定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:
structst
{charname[15];
intage;
}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);
執(zhí)行語句printf("%d,%C",a[2].a(chǎn)ge,*(a[3].name+2))的輸出結(jié)果為()。
A.15,AB.16,HC.16,AD.17,H
74.在“文件包含,預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
75.已定義以下函數(shù)
76.若有定義:“inta,b;”,通過語句“scan[("%d;%d".,&a,&b);”,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。
A.35B.3,5C.3;5D.35
77.
78.
79.設(shè)變量x為float型且已賦值,則以下語句能將x中的數(shù)值保留到小數(shù)點(diǎn)后兩位,并將第3位四舍五入的是()。
A.
B.
C.
D.
80.
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為l3。請改正程序中的錯誤,使它能得出正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}
六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存人xx所指數(shù)組中,非素數(shù)的個數(shù)通過k返回。
例如,若輸入l7,則應(yīng)輸出:46891012141516。
注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
參考答案
1.C設(shè)葉子結(jié)點(diǎn)數(shù)為〃,則該樹的結(jié)點(diǎn)數(shù)為n+9+5=n+\n14,根據(jù)樹中的結(jié)點(diǎn)數(shù)=樹中所有結(jié)點(diǎn)的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。本題選擇C選項(xiàng)。
2.Cdoublea,*p=&a語句的意思是將a的值存放到指針變量P中,P是指針可以隨意指向任何地址,所以答案C錯誤。
3.B
4.B
5.D
6.A運(yùn)算符“%”的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B選項(xiàng)與D選項(xiàng)錯誤。C選項(xiàng)中不能將“x+z”的值賦給表達(dá)式“y*5”,所以C選項(xiàng)錯誤。故本題答案為A選項(xiàng)。
7.A
8.A
9.D
10.A解析:C函數(shù)的參數(shù)傳遞方式采用按值傳遞,不能通過調(diào)用函數(shù)改變形參指針本身的值,只能改變指針?biāo)缸兞康闹?。調(diào)用point函數(shù)時,將實(shí)參指針p的值(b數(shù)組的首地址)傳給了形參指針P,P+=3運(yùn)算使形參指針指向字符d,但并不能改變main函數(shù)中p的值,所以本題正確答案應(yīng)該是選項(xiàng)A)。
11.A
12.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管其在計算機(jī)中的存儲方式。數(shù)據(jù)的存儲結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計算機(jī)存儲器里的實(shí)現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項(xiàng)A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項(xiàng)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ù)等。因此,選項(xiàng)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)軟件的支持。因此,選項(xiàng)D的說法是正確的。因此,本題的正確答案是選項(xiàng)A。
13.C
14.B\n本題考查函數(shù)中數(shù)組和指針的傳值,數(shù)組a[]在參數(shù)傳遞時,是傳遞的數(shù)組a的首地址,所以形參a和n都是指針變量。。
\n
15.C
16.C
17.D程序中S1和S2都是宏定義。S1(a+b)宏展開后的表達(dá)式為4*a+b+4*(a+b),即4*1+2+4*(1+2),結(jié)果為18;S2(a,b)宏展開后的表達(dá)式為4*(a)*(b)+b*a,即4*(1)*(2)+2*1,結(jié)果為10;S1(3)宏展開后的表達(dá)式為4*3+4*(3),結(jié)果為24;32(3+a,b+3)宏展開后的表達(dá)式為4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,結(jié)果為92。最終輸出:18,34,92。故本題答案為D選項(xiàng)。
18.D解析:A選項(xiàng),將f賦值為0,結(jié)果得到0,因?yàn)?乘任何數(shù)都為0;B選項(xiàng),i<n,計算的是(n-1)!,C選項(xiàng)將陷入死循環(huán)。
19.C
20.C
21.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實(shí)際長度,不包括\'\\0\'在內(nèi)。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe
22.n/2n/2解析:刪除一個元素,平均移動的元素個數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個元素,平均移動元素個數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動元素個數(shù)為n/2。
23.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點(diǎn):
靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點(diǎn):
①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運(yùn)行期間都不釋放。
②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運(yùn)行時它已有初值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。
③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。
24.2002shangxian2002shangxian解析:\'B\'的ASCII值是66。本題中指針變量p指向d,執(zhí)行第一個if語句時,條件成立,d=b;執(zhí)行第二個if語句時,條件不成立,故d=b,所以d.sno=2002,p->name'Shangxian'。
25.22解析:'\\13':表示八進(jìn)制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進(jìn)制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個字節(jié)。
26.99解析:宏替換的原則是按原樣替換,本題中遇到形參x則以實(shí)參k+1替換,其他字符不變,所以JFT(k+1)經(jīng)替換后為k+1,k+1,則a=++k+1*k+1。若k的值為3,則經(jīng)過運(yùn)算為a=4+1*4+1=9。
27.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結(jié)點(diǎn)。第6層的結(jié)點(diǎn)數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點(diǎn)最多數(shù)”和“某一層的結(jié)點(diǎn)最多數(shù)”。前者的計算是深度為m的二叉樹最多有2m-1個結(jié)點(diǎn)。
28.77解析:解答本題的關(guān)鍵是要讀懂程序,要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“‖”運(yùn)算符,若要找能同時被7和11整除的所有整數(shù)則在if的條件中應(yīng)使用“&&”運(yùn)算符。
當(dāng)然,如果m的值輸入50,即表達(dá)式fun(10,aa,&n);為fun(50,aa,&n);時輸入結(jié)果為:711142122283335424449。
29.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過程是將相鄰兩個字符進(jìn)行比較,如果當(dāng)前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+l]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
30.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
31.謂詞演算謂詞演算
32.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹具有n個結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點(diǎn)以及n/2-1個度為2的結(jié)點(diǎn),還有1個是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結(jié)點(diǎn)以及[n/2]個度為2的結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn)。本題中,完全二叉樹共有700個結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹中有350個葉子結(jié)點(diǎn)以及349個度為2的結(jié)點(diǎn),還有1個是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。
33.a=sb=s+1;b-s<sizeof(s)/sizeof(s[0]);b++a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++解析:題目要求輸出數(shù)組中最大的數(shù),所以要遍歷整個數(shù)組,而指針a用來指向最大數(shù),所以循環(huán)變量只有使用指針b。for初始化時,應(yīng)該先讓a指向第1個數(shù),然后讓b指向第2個數(shù),故循環(huán)初始化語句應(yīng)該為a=s,b=s+1或其他等價表達(dá)式。因?yàn)橐筨遍歷整個數(shù)組,故循環(huán)條件應(yīng)該為b-s<sizeof(s)/sizeof(s[0])或其他等價表達(dá)式。最后每次循環(huán)應(yīng)該讓b往后移動一位,故for的第3條語句應(yīng)該是++b、b++或其他等價形勢。所以本題應(yīng)填a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++或其他等價語句。
34.7979解析:因?yàn)樵谡{(diào)用子函數(shù)時進(jìn)行的是數(shù)值傳遞,調(diào)用于函數(shù)并不能改變實(shí)參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。
35.2525解析:#NAME?
36.對象類
37.封裝性封裝性解析:對象具有下列5個基本特點(diǎn):①標(biāo)識惟一性;②分類性:③多態(tài)性;④封裝性;⑤模塊獨(dú)立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內(nèi)部特征即處理能力的實(shí)行和內(nèi)部狀態(tài),對外是不可見的,對象的內(nèi)部狀態(tài)只能由其自身改變。
38.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上—個元素存在并有明確值的情況下,這個牧舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=cm2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為'DDBBCC'。
39.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在對S求和時,相鄰兩項(xiàng)的符號剛好相反,而在函數(shù)fun中沒有對數(shù)據(jù)進(jìn)行取反的操作,故第—空的目的是對數(shù)據(jù)進(jìn)行取反,以保證序列中相鄰兩項(xiàng)的符號不同。故第—個應(yīng)填-1或-1.0。在執(zhí)行完循環(huán)體后,要將求和結(jié)果通過指針參數(shù)的形式傳遞紿調(diào)用fun的函數(shù),故第二空應(yīng)填*sn。
40.空間復(fù)雜度和時間復(fù)雜度算法的復(fù)雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計算量是算法的時間復(fù)雜性。
41.B解析:選項(xiàng)A),在賦值表達(dá)式中,賦值號的左邊只能是變量或者是代表某個存儲單元的表達(dá)式,不能是任意表達(dá)式。
在判斷選項(xiàng)B)時首先應(yīng)該建立這桿的概念,整型變量中只能存放整型數(shù),實(shí)型變量中能存放實(shí)型數(shù),也能存放整型數(shù)。
選項(xiàng)C),執(zhí)行表達(dá)式a=b后,將把變量b存儲單元中的值賦給變量a,從而覆蓋a中原有的值,但b中原有的值并不改變。
選項(xiàng)D),在C程序中,求余運(yùn)算符“%”兩邊的類型均為整型數(shù)據(jù)。
42.A解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。大寫字母和小寫字母被認(rèn)為是兩個不同的字符,用戶在定義標(biāo)識符時應(yīng)盡量做到“見名知意”,且不允許使用關(guān)鍵字作標(biāo)識符。
43.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。
第1次for循環(huán),p=a,p指向數(shù)組的第1個元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。
44.B解析:所謂中序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;并且在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。
45.B解析:選項(xiàng)A中的main()后面不能直接用分號。選項(xiàng)C中的注釋符使用不正確,編譯器會把從第一個“/*到第一個*/”之間的當(dāng)作注釋,最后一個“*/”會被作為程序代碼去編譯。選項(xiàng)D中的include前要加上#表示是預(yù)定義語句。
46.D解析:程序的功能是將字符數(shù)組str中的內(nèi)容以反序輸出。函數(shù)fun中t為靜態(tài)變量,每一次調(diào)用函數(shù)fun時,t的值為上一次調(diào)用函數(shù)結(jié)束時的值。
47.C解析:本題的考查點(diǎn)是結(jié)構(gòu)體類型變量的定義。在選項(xiàng)C中,aa是—個結(jié)構(gòu)體變量,而不是結(jié)構(gòu)體名,所以structaatd1;是非法的。
48.B解析:逗號表達(dá)式x--,x<<1,x&&5先執(zhí)行x--,x的值為1,再執(zhí)行x<<1,表達(dá)式的值為2,但x的值仍是1(不是移位賦值表達(dá)式),最后執(zhí)行x&&5,二者均不為0,邏輯與的結(jié)果是1。
49.A解析:在C語言中NULL的ASCII碼值為0,而輸出函數(shù)要求以整形格式輸出,故最后的輸出數(shù)為0。所以,4個選項(xiàng)中選項(xiàng)A符合題意。
50.B解析:主函數(shù)中for循環(huán)執(zhí)行兩次,i=1和i=2。調(diào)用函數(shù)f(1),返回值為1,j=1;調(diào)用函數(shù)f(2),計算表達(dá)式f(n-1)+1的值時遞歸調(diào)用f(1),返回值為2,j=3。所以B為所選。
51.D解析:選項(xiàng)A、選項(xiàng)B和選項(xiàng)C都是在a的值為0的時候輸出y,a不為0的時候輸出x,而選項(xiàng)D是在a為0的時候輸出x,a不為0的時候輸出y。所以,4個選項(xiàng)中選項(xiàng)D符合題意。
52.C解析:本題中首先定義一個整型變量a并給它賦初值為3,在表達(dá)式中,從右開始執(zhí)行,即先執(zhí)行“a-=a*a;”等價于a=a-a*a即a=3-3*3=-6,此時a的值為-6,接著執(zhí)行“a+=a-;”相當(dāng)于執(zhí)行a=a+a即a=-6+(-6)=-12,此時a的值為-12。所以,4個選項(xiàng)中選項(xiàng)C符合題意。
53.D解析:算法的時間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算工具以及程序員的水平無關(guān)。
選項(xiàng)A錯誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計算機(jī)上運(yùn)行時,其計算時間是不同的。選項(xiàng)B錯誤。因?yàn)樗惴ㄋ帉懙某绦蜷L度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。
選項(xiàng)C錯誤,因?yàn)楦鶕?jù)一個算法所編制出的程序程序中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。
所以,本題的正確答案為D。
54.D解析:main函數(shù)的參數(shù)通常有兩個,前者為整型,后者為字符型指針數(shù)組。參數(shù)的名字可以是任意合法的標(biāo)識符。而且,形如**av與*av[]等價,所以選項(xiàng)A、B、C均正確,選項(xiàng)D是錯誤的。
55.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項(xiàng)C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。
56.D
57.C解析:在C語言中,“%d”表示輸出帶符號的十進(jìn)制整型數(shù);“%x”表示以十六進(jìn)制無符號型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0x或0X);“%o”表示以八進(jìn)制無符號型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0)。
58.C解析:本題考查.do…while循環(huán)。在do…while循環(huán)中,當(dāng)表達(dá)式的值為非零(真)時,執(zhí)行循環(huán),不能與其等價的是為零的表達(dá)式,即(exp==0)。
59.D解析:這個題目的功能是實(shí)現(xiàn)兩個有序字符串,合并成一
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球商店可視化工具行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國單立柱托盤堆垛機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 嚴(yán)守黨的生活紀(jì)律維護(hù)黨員良好形象黨員教育培訓(xùn)課件
- 作用方法局麻作用吸收作用表面麻醉浸潤麻醉麻醉蛛網(wǎng)膜下腔麻醉硬膜外麻醉講解
- 醫(yī)學(xué)儀器外貿(mào)購銷合同范本年
- 土地房屋轉(zhuǎn)讓簡單合同范本
- 服裝設(shè)計與生產(chǎn)加工合同
- 項(xiàng)目承包服務(wù)合同范本
- 財務(wù)管理系統(tǒng)開發(fā)合作合同
- 店面房出租經(jīng)營合同書
- 《復(fù)旦大學(xué)》課件
- 承包魚塘維修施工合同范例
- 耶魯綜合抽動嚴(yán)重程度量表正式版
- 2024年浙江省公務(wù)員錄用考試《行測》題(A類)
- 2024版《安全生產(chǎn)法》考試題庫附答案(共90題)
- 疥瘡病人的護(hù)理
- 2024版《糖尿病健康宣教》課件
- 公務(wù)員2012年國考《申論》真題卷及答案(地市級)
- 新員工三級安全教育考試試題參考答案
- 35kV輸變電工程(變電站、輸配電線路建設(shè))技術(shù)方案
- 數(shù)學(xué)史簡介課件可編輯全文
評論
0/150
提交評論