版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序運行后的輸出結(jié)果是()。
A.CBB.BCAC.CCBBD.CDBCA
2.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式()。
A.從左起輸出該字串,右補空格B.按原字符長從左向右全部輸出C.右對齊輸出該字串,左補空格D.輸出錯誤信息
3.
4.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++printf("%d\n",sum);)執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9
5.
6.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
7.若串S=,software,其子串的數(shù)目是()。
A.8B.37C.36D.9
8.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是
A.10,A,10B.10,a,10C.1O,a,0D.10,A,0
9.如有inta=11;則表達式(a/1)的值是()。
A.0B.3C.4D.11
10.已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是()
A.cedbAB.acbeDC.decaBD.deabC
11.在JavaScript語言中,要定義局部變量則可以()。
A.由關(guān)鍵字private在函數(shù)內(nèi)定義
B.由關(guān)鍵字private在函數(shù)外定義
C.由var在函數(shù)內(nèi)定義
D.由關(guān)鍵字var在函數(shù)外定義
12.(7-6-3-5-4-1-2)堆排序,升序排列,3的位置改變幾次()
A.1B.2C.3D.4E.5F.6
13.
14.某某二叉樹的中序序列和后序序列正好相反,則該二叉樹一定是______的二叉樹
A.空或只有一個結(jié)點B.高度等于其結(jié)點數(shù)C.任一結(jié)點無左孩子D.任一結(jié)點無右孩子
15.若有定義“intx[10],*pt=x;”,則對x數(shù)組元素的引用正確的是()。
A.pt+3B.*&x[10]C.*(pt+10)D.*(x+3)
16.對于循環(huán)隊列,下列敘述中正確的是()。
A.隊頭指針是固定不變的
B.隊頭指針一定大于隊尾指針
C.隊頭指針一定小于隊尾指針
D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針
17.按照標識符的要求,()符號不能組成標識符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符
18.a、b和c都是int型變量,且a=3,b=4,c=5,則下面的表達式中,值為0的表達式是()
A.'a'&&'b
B.a<=b
C.ab+c&&b-c
D.!((a<b)&&!c1)
19.對于"int*pa[5];"的描述中,正確的是()。
A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素
B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量
C.pa[5]表示某個元素的第5個元素的值
D.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針
20.線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。
A.一對多關(guān)系B.多對多關(guān)系C.多對一關(guān)系D.一對一關(guān)系
二、2.填空題(20題)21.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預(yù)防性維護。
22.以下程序的功能是進行位運算main(){unsignedchara,b;a=7^3;b=~4&3;pfintf("%d%d\n",a,b);}程序運行后的輸出結(jié)果是
23.若有以下程序
main()
{inta[4][4]={{1,2;-3,-4},{0,-12,-13,14},{21,23,0,-24},{-31,32,-33;0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
printf("%d\n",s);
}
執(zhí)行后輸出結(jié)果是______。
24.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
25.在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
26.以下程序的輸出結(jié)果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
27.若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行【】次。
while((ch=getchar())=='e')printf("*");
28.以下程序的輸出結(jié)果是______。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n".s);
}
29.在關(guān)系運算中,【】運算是對兩個具有公共屬性的關(guān)系所進行的運算。
30.結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。
31.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。
32.以下程序運行后的輸出結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{char*p;t;
p=s+1;t=*s;
while(*p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdergh";
p=ss(str);
printf("%s\n",p);
}
33.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}
34.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
35.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
36.軟件工程的出現(xiàn)是由于【】。
37.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用刪函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longfl;
myf=【】("test.t","rb");
fseek(myf,(),SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%d\n",fl);
38.下列程序的運行結(jié)果為【】。
main()
{inta,b,c,x,y,z;
a=10;b=2;
c=!(a%b);x=!(a/b);
y=(a<b)&&(b>=0);
z=(a<b)||(b>=0);
printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);
}
39.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
[14]=a;q->next=p;[15]=p;scanf("%d",&a);}
p->next='\0';return(ph);}
main()
{stuctlist*head;head=creatlist();}
40.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。
三、1.選擇題(20題)41.有如下程序:main(){intx=23;do{printf("%d",x--);}while(!x);}程序運行后的輸出結(jié)果是()。
A.321B.23C.不輸出任何內(nèi)容D.陷入死循環(huán)
42.下列敘述中正確的是()。
A.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大
B.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小
C.一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小
D.上述三種說法都不對
43.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對象B.繼承C.類D.過程調(diào)用
44.利用fseek函數(shù)可實現(xiàn)的操作是()。
A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確
45.設(shè)有以下語句:charstr1[]="string",str2[8],*str3,*str4="string";則______不是對庫函數(shù)的正確調(diào)用。
A.strcpy(str1,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4");
46.有以下程序: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
47.若有定義int(*pt)[3];,則下列說法不正確的是()。
A.int(*pt)[3]是一個數(shù)組指針
B.指針pt指向一個有3個整型變量的數(shù)組
C.定義了一個名為*pt、具有三個元素的整型數(shù)組
D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組
48.有以下程序main(){ints=0,a=1,n;seanf("%d",&n);do{s+=1;a=a-2;}while(a!=n);printf("%d\n",s);}若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入的值是
A.-1B.-3C.-5D.0
49.下列程序執(zhí)行后的輸出結(jié)果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}
A.5B.6C.7D.8
50.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
51.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是
A.5B.6C.9D.8
52.以下敘述中錯誤的是
A.gets函數(shù)用于從終端讀入字符串
B.getehar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
53.有以下程序:main(){intk=33;printf("%d,%o,%x",k,k,k);}執(zhí)行后的輸出結(jié)果是()。
A.33,033,0x21B.33,033,21C.3.3041e+007D.33,41,21
54.請選出以下程序的輸出結(jié)果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}sub(s,y)int*s,y;{staticintt=3;y=s[t];t--;}
A.1234B.4321C.0D.4444
55.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
56.有三個關(guān)系R、s和T如下:
由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
A.并B.自然連接C.笛卡爾積D.交
57.設(shè)x,y均是int類型變量,則以下不正確的函數(shù)調(diào)用為______。
A.getchar();
B.putchar('\108');
C.scanf("%d%*2d%d",&x,&y);
D.putchar('\'');
58.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.lf%3.lf\n",a,c,f,x);}程序運行后的輸出結(jié)果是
A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5
59.有以下程序:voidfun1(char*p){char*q;q=P;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];funl(p);printf("%s\n",A);}程序執(zhí)行后的輸出結(jié)果是()。
A.ProhsbnB.PrphsbnC.ProgsbnD.Program
60.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為()。
A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG
四、選擇題(20題)61.以下選項中關(guān)于C語言常量的敘述錯誤的是()。
A.經(jīng)常被陡用的變量可以定義成常量
B.常量分為整型常量、實型常量、字符常量和字符串常量
C.常量可分為數(shù)值型常量和非數(shù)值型常量
D.所謂常量,是指在程序運行過程中,其值不能被改變的量
62.下列選項中,能正確定義數(shù)組的語句是()。
A.intnum[0..2008];
B.intlllllll[];
C.intN:2008:
D.#defineN2008intnum[N1;intnum[N];
63.設(shè)有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。
A.1B.0C.4D.3
64.已定義以下函數(shù):
fun函數(shù)的返回值是()。
A.一個整數(shù)B.不確定的值C.形參P中存放的值D.形參P的地址值
65.
66.下列選項中,能正確定義數(shù)組的語句是()。
A.
B.
C.
D.
67.有以下程序程序運行后的輸出結(jié)果是()。
A.21B.11C.6D.120
68.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6
69.若變量已正確定義并賦值,以下符合C語言語法的表達式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a:a+7:c+b
70.
下述程序的輸出結(jié)果是()。
#include<stdio.h>
main
{inta[2][3]={{1,2,3),{4,5,6}},(*p)[3],i;
p=a;
for(i=0;i<3;i++)
{if(i<2)
p[1][i]=p[1][i]一1;
else
p[1][i]=1;)
printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}
A.8B.7C.12D.9
71.
72.源程序的文檔不包括()。
A.符合號名的命名要有實際意義B.正確的文檔形式C.良好的視覺組織D.正確的程序注釋
73.
74.有如下程序
#include<stdio.h>
main()
{
FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有內(nèi)容為good,則運行以上程序后,文件f1.txt中的內(nèi)容為
A.goodabcB.a(chǎn)bcd
C.a(chǎn)bcD.a(chǎn)bcgood
75.
76.對長度為n的線性表排序,在最壞情況下'比較次數(shù)不是n(n一1),2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
77.在C語言中,函數(shù)返回值的類型最終取決于()。
A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型
B.return語句中表達式值的類型
C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型
D.函數(shù)定義時形參的類型
78.以下選項中可用做C程序合法實數(shù)的是()。
A..leOB.3.0e0.2C.E9D.9.12E
79.
80.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是()。
A.p=qB.*p=*qC.n=*qD.p=*n
五、程序改錯題(1題)81.下列給定程序中,fun()函數(shù)的功能是:求3個數(shù)的最小公倍數(shù),例如,給變量a、b、c、分別輸入15、11、2,則輸出結(jié)果應(yīng)當是330。請修改函數(shù)中的錯誤,得出正確的結(jié)果。注意:不要改動main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值所在的下標,并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。
主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值。index存放最大值所在元素的下標。
注意:部分源程序給出如下。
請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。
試題程序:
參考答案
1.Dputchar函數(shù)的功能是輸出一個字符,由whlie判斷條件和ch初始值可知,只要“ch≠‘A’”,執(zhí)行兩次putchar函數(shù),否則跳出循環(huán)。第1次輸出“CD”,第2次輸出“BC”,第3次輸出“A”后跳出循環(huán)。故本題答案為D選項。
2.B
3.D
4.Csum=fun((a++,b++,a+b),c++)中a++,b++,a+b為逗號表達式,運算后取a+b的值為5,c++為3,故函數(shù)調(diào)用后輸出結(jié)果為8。
5.B
6.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s?!?*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運算符“*”,故選項A、C不能表示“a[3]”;選項D的“*s+3”等于“a[0]+3”。故本題答案為B選項。
7.B
8.A解析:本題考核的知識點是scallf()函數(shù)輸入格式。格式字符“%d”用于輸入整數(shù),“%C”用來輸入字符。在輸入時,系統(tǒng)把第一個10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10所以,A選項為所選。
9.D
10.A
11.C
12.B
13.C
14.C
15.D選項A中,“pt+3”使指針變量Pt移動3個單元,指向第4個元素,不能正確引用。運算符“*”與“&”放在一起,其作用相互抵消,且下標10超出了數(shù)組下標范圍,所以B選項錯誤?!?(pt+i)”表示引用指針pt所指元素后的第i個元素,引用數(shù)組第11個元素,C選項錯誤。故本題答案為D選項。
16.D循環(huán)隊列的隊頭指針與隊尾指針都不是固定的,隨著入隊與出隊操作要進行變化。因為是循環(huán)利用的隊列結(jié)構(gòu),所以隊頭指針有時可能大于隊尾指針,有時也可能小于隊尾指針。
17.A
18.D
19.D
20.D
21.完善性軟件維護活動包括以下幾類:改正性維護,適應(yīng)性維護、完善性維護和預(yù)防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。
22.A
23.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素:若不是則判斷a[i][j],田的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于。的元素值加到變量s中。
24.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
25.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。
26.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。
27.00解析:函數(shù)getchar()是從鍵盤得用戶輸入的一個字符。用戶輸入的第1個字符a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。
28.55解析:此程序中,for循環(huán)語句后面直接跟了一個“;”,表明循環(huán)體為空.輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值.s、i的初值分別為0和1,判斷循環(huán)條件,表達式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達式“3<3”不成立,循環(huán)結(jié)束。
29.自然連接自然連接解析:在關(guān)系運算中,自然連接運算是對兩個具有公共屬性的關(guān)系所進行的運算。
30.模塊化模塊化
31.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標準的調(diào)用形式應(yīng)該寫成:
p(double*)malloc(sizeof(double));
32.bcdefghabcdefgha解析:在本題定義的ss()函數(shù)中首先定義了一個指針p和一個字符變量t,然后讓p指向參數(shù)指針s的下一個位置s+1,并讓t保存s位置的字符。然后使用一個while循環(huán)將p指向的內(nèi)容賦給它前面一個位置,即將參數(shù)s所指的字符串從第2個字符開始整體往前移動一位。循環(huán)結(jié)束時,p指向原s串的結(jié)束標志處,所以讓*(p-1)=t;即是將原s串的第1個字符復(fù)制到s串的最后一個位置。整個函數(shù)實現(xiàn)的是讓一個字符串循環(huán)左移一位。故主函數(shù)中最后輸出的字符串是'bcdefgha'。
33.
34.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標識符(*旨針變量名)()。注:“類型標識符”為函數(shù)返回值的類型。
35.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
36.軟件危機的出現(xiàn)軟件危機的出現(xiàn)
37.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制文件。文件在使用前打開,使用后要關(guān)閉。
打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen(“文件名”,“使用文件方式”);
關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。
38.c=1x=Oy=Oz=1
39.p->dataqp->data\r\nq解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。
40.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機構(gòu),它是一種系統(tǒng)軟件,負責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等。
41.B解析:本題中使用do-while循環(huán),每執(zhí)行一次循環(huán)體輸出x的值后將x減1。當x=23,執(zhí)行循環(huán)體輸出x為23,X=X-1=23-1=22,判斷循環(huán)條件是否成立,因為x=22,!x的值為0,終止循環(huán),因此只輸出23。
42.D解析:時間復(fù)雜度是指一個算法執(zhí)行時間的相對度量;空間復(fù)雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。
43.D[答案]D
[考點]軟件工程基礎(chǔ)
[評析]
面向?qū)ο?對象+類+繼承+通過消息的通信
對象:一組屬性及其上的操作的封裝體
類:一組有相同屬性和操作的對象的集合
繼承:一個類為另一個類上的擴充的方式,子類繼承父類,主要目的是代碼復(fù)用
消息:對象間通信的手段
D是結(jié)構(gòu)化程序設(shè)計或過程式(函數(shù)式)語言中的,一般的面向?qū)ο蟪绦蛟O(shè)計語言兼容這種方式,但不是其特征,故最佳選項為D
44.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實現(xiàn)文件的順序讀寫;③輔助實現(xiàn)文件的隨機讀寫。
45.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。
46.B解析:本題的fun()函數(shù)中定義的變量m和i是靜態(tài)局部變量,第1次調(diào)用fun()函數(shù)時m=0、i=2,執(zhí)行i+=m+1后,i的值變?yōu)?,再執(zhí)行m=i+x+y后,m的值變?yōu)?,所以第1次輸出的整數(shù)是5。第2次調(diào)用fun()函數(shù)時m=5、i=3,執(zhí)行i+=m+1,i變?yōu)?,再執(zhí)行m=i+x+y,m變?yōu)?1,所以第2次輸出的整數(shù)是11。故本題應(yīng)該選擇B。
47.D解析:首先,pt跟*結(jié)合,所以是一個指針,所指向的對象是含有3個元素的數(shù)組。所定義的指針沒加const,所以是個指針變量,還可以指向類似對象的其他元素,也就是說還可以指向其他含有3個元素的數(shù)組。
48.B解析:根據(jù)題目要求,最后要使輸出的s值為2,在程序中改變。的值語句只有循環(huán)體中的s+=1;語句,而初始9的值為o,顯然要使s的值變?yōu)?,該語句必須執(zhí)行,兩次,即do-while循環(huán)中的循環(huán)體要執(zhí)行兩次,而在do-while中,首先不進行條件而執(zhí)行do后面的循環(huán)體語句,然后再判斷while循環(huán)條件。所以說不管循環(huán)判斷條件是否為真s+=1;語句至少執(zhí)行一次,根據(jù)分析,只需要while后面括號的循環(huán)判斷表達式的值為真一次且只能為真一次,將四個選項中的內(nèi)容依次代入該程序中不難得到只有n=-3剛好使循環(huán)判斷條件a!=n為真一次。
49.D解析:本題中的宏調(diào)用MA(1+a+b)展開后的結(jié)果是1+a+b*(1+a+b-1)=1+1+2*(1+1+2-1)=2+2*3=8。所以輸出的結(jié)果是8,選項D正確。
50.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認,則默認為int。函數(shù)中如果有“retum(表達式):”語句,表達式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。
51.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]指向數(shù)組a的第9個元素,而a[8]=9,所以b=9。
52.B
53.D解析:本題考查不同進制間的轉(zhuǎn)換。printf輸出函數(shù)中輸出變量的格式,由輸出格式符決定。題中“%o”格式符表示以八進制的形式輸出;“%x”格式符表示以十六進制的形式輸出?!?3”的八進制和十六進制分別是41和21。
54.C解析:若指針s指向數(shù)組a,則s[t]可以引用數(shù)組a中下標為t的元素。注意:通過數(shù)組的首地址引用數(shù)組元素。
55.D解析:算法的復(fù)雜度主要包括算法的時間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
56.D關(guān)系R與s經(jīng)交運算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。
57.B解析:八進制中的基本數(shù)為0~7,不可能出現(xiàn)8。
58.B解析:主函數(shù)中先定義了一個整型變量a,一個字符變量c并賦初值10,一個浮點型變量f并賦初值100.00和一個double型x,接著執(zhí)行“a=f/=C*=x=6.5)”,該語句從右向左計算,先把6.5賦值給x(該括號表達式的值也為6.5),此時x的值的變?yōu)?.5,然后執(zhí)行“c*=(x=6.5)”相當于執(zhí)行“c=c*(x=6.5)”,此時c的值為65,接著向左執(zhí)行“f/c*=(x=6.5)”,語句相當于執(zhí)行“f=f/c”接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數(shù)部分為1。程序最后輸出的a、c、f和x的值分別為1、65、1.5、6.5。所以,4個選項中選項B符合題意。
59.A解析:函數(shù)funl()實現(xiàn)的功能為將實參p所指的字符串順序按位加1,而實參p通過“p=&a[3];”指向字符串數(shù)組a[]中的gram,敞輸出結(jié)果為Prohsbn。
60.B遍歷是按照一定規(guī)則對樹中全部結(jié)點逐一訪問的方法。二叉樹可由根結(jié)點、左子樹和右子樹三個部分組成。根據(jù)對根結(jié)點訪問的先后順序,可將遍歷方法分為先序遍歷、中序遍歷和后序遍歷三種。先序遍歷首先訪問根結(jié)點,再先序遍歷左子樹,最后先序遍歷右子樹,可見遍歷是一個遞歸的過程。求樹的遍歷這種問題的關(guān)鍵在于認清每棵子樹的根結(jié)點的訪問順序。題目給出了一棵樹的先序遍歷和中序遍歷的結(jié)點順序,先序遍歷的第一個結(jié)點為整棵樹的根結(jié)點,即根結(jié)點為A,而在中序遍歷的順序中,結(jié)點A的前面還有DBGE四個結(jié)點,表示這四個結(jié)點構(gòu)成以A為結(jié)點的二叉樹的左子樹,同理,中序遍歷中A結(jié)點后面的CHF三個結(jié)點構(gòu)成以A為結(jié)點的二叉樹的右子樹。于是原來的對一棵二叉樹的分析變?yōu)閷υ摱鏄涞淖笥易訕涞姆治觥R宰笞訕錇槔?,左子樹結(jié)點的先序遍歷為BDEG,中序遍歷為DBGE,該子樹的根結(jié)點為B,B結(jié)點的左子樹為一個結(jié)點D,右子樹為以E為根結(jié)點,結(jié)點G是E的左孩子。同理,可對CHF三個結(jié)點進行分析。
最后得到整棵樹的結(jié)構(gòu)后,按照后序遍歷寫出所有結(jié)點的順序:DGEBHFCA。
61.A常量是在程序運行時,其值不能被改變的量,跟是否經(jīng)常使用沒關(guān)系.
62.DC語言不允許定義動態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達式。A選項錯誤,C語言中數(shù)組沒有此類型的定義方法;B選項錯誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定初值的個數(shù);c選項錯誤,N為變量,不能用來定義數(shù)組大小。因此D選項正確。
63.D
64.A返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型。因此A選項正確。
65.A
66.D選項A)不符合c語言的語法要求;選項
B)中沒有指定數(shù)組的大?。贿x項c)中數(shù)組大小不能用變量來指定。
67.A循環(huán)調(diào)用fun函數(shù),依次返回值為23456,s原值為l,累加以上返回值,最終結(jié)果為21,所以答案選擇A)。
68.B本題考查自加(++)、自減(--)運算符
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版城市照明電氣設(shè)備采購及運維合同
- 二零二五年度米面糧油倉儲物流服務(wù)采購合同2篇
- 2025年度水泥產(chǎn)品銷售渠道建設(shè)承包合同3篇
- 2025殘疾人冰雪項目財務(wù)管理與審計合同3篇
- 2025年度木門銷售合同書標準版4篇
- 二零二五版牛只運輸途中疫病防控與應(yīng)急處理合同4篇
- 2025年度美容美發(fā)行業(yè)技師技能認證合同3篇
- 2025年度二零二五年度民辦學(xué)校教師心理健康輔導(dǎo)合同4篇
- 承包宅基地合同(2篇)
- 2025年度農(nóng)產(chǎn)品電商平臺傭金結(jié)算合同4篇
- 【京東倉庫出庫作業(yè)優(yōu)化設(shè)計13000字(論文)】
- 保安春節(jié)安全生產(chǎn)培訓(xùn)
- 初一語文上冊基礎(chǔ)知識訓(xùn)練及答案(5篇)
- 初中班級成績分析課件
- 勞務(wù)合同樣本下載
- 血液透析水處理系統(tǒng)演示
- GB/T 27030-2006合格評定第三方符合性標志的通用要求
- GB/T 13663.2-2018給水用聚乙烯(PE)管道系統(tǒng)第2部分:管材
- 同角三角函數(shù)的基本關(guān)系式同步練習(xí)
- 固定污染源自動監(jiān)控監(jiān)測系統(tǒng)現(xiàn)場端建設(shè)技術(shù)規(guī)范
- 教科版六年級科學(xué)下冊第一單元《小小工程師》背背默默知識點
評論
0/150
提交評論