




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022年廣東省佛山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.下列敘述中正確的是()。
A.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭
B.預(yù)處理命令行必須位于C語(yǔ)言源程序的起始位置
C.“include<stdio.h>”必須放在C語(yǔ)言程序的開(kāi)頭
D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
2.若有以下定義,則能使值為3的表達(dá)式是intk=7,x=12;
A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
3.
4.算法的時(shí)間復(fù)雜度是指A.算法的執(zhí)行時(shí)間B.算法所處理的數(shù)據(jù)量C.算法程序中的語(yǔ)句或指令條數(shù)D.算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)
5.以下程序的輸出結(jié)果是()。main{intx=0.5;charz=‘a(chǎn)’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
6.
7.在1,2,3,......1000中,有()個(gè)數(shù)各位乘積為0。
A.100B.101C.172D.181E.190F.191
8.有嵌套的if語(yǔ)句:if(a<b) if(a<c)k=a; elsek=c;elseif(b<c)k=b;elsek=c;以下選項(xiàng)中與上述if語(yǔ)句等價(jià)的語(yǔ)句是()。
A.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C.k=(a<b)?a:b;k=(b<c)?b:c;
D.k=(a<b)?a:b;k=(a<c)?a:c;
9.
下列程序執(zhí)行后的輸出結(jié)果是()。
voidfunc(int*a,intb[])
{b[0]=*a+b;}main
{inta,b[5];
a=0.b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
A.6B.7C.8D.9
10.以下敘述正確的是
A.continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句
C.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同
D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句
11.以下符號(hào)中不能作為標(biāo)識(shí)符的是()。
A._256B.r32C.intD.e231
12.設(shè)有以下語(yǔ)句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
13.在C語(yǔ)言中,函數(shù)隱含的類(lèi)型是()
A.autoB.staticC.intD.void
14.以下關(guān)于long、int和short類(lèi)型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來(lái)決定所占內(nèi)存的字節(jié)數(shù)C.由用戶(hù)自己定義D.由C語(yǔ)言編譯系統(tǒng)決定
15.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+c-k值的類(lèi)型為:
A.intB.doubleC.floatD.char
16.下列敘述中正確的是()。
A.為了建立一個(gè)關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系
B.表示關(guān)系的二維表中各元組的每一個(gè)分量還可以分成若干數(shù)據(jù)項(xiàng)
C.一個(gè)關(guān)系的屬性名表稱(chēng)為關(guān)系模式
D.一個(gè)關(guān)系可以包括多個(gè)二維表
17.若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過(guò)return語(yǔ)句返回一個(gè)函數(shù)值,下列選項(xiàng)中錯(cuò)誤的程序是()。
A.main(){…x=fun(2,10);…}floatfun(inta,intB){…}
B.floatfun(inta,intB){…}main(){…x=fun(i,j);…}
C.floatfun(int,int);main(){…x=fun(2,10);…}floatfun(inta,intB){…}
D.main()…{floatfun(inti,intj);…x=fun(i,j);…}floatfun(inta,intB){…}
18.若已定義inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用是
A.a[p-A)B.*(&a[i])C.p[i]D.a[10]
19.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1
20.設(shè)棧S的初始狀態(tài)為空,6個(gè)元素入棧的順序?yàn)閑1,e2,e3,e4,e5和e6。若出棧的順序是e2,e4,e3,e6,e5,el,則棧s的容量至少應(yīng)該是()。
A.6B.4C.3D.2
二、2.填空題(20題)21.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
22.為了建立如圖所示的存儲(chǔ)結(jié)構(gòu)(即每個(gè)結(jié)點(diǎn)含兩個(gè)域,data是數(shù)據(jù)域,next是指向結(jié)點(diǎn)的指針域)。請(qǐng)?zhí)羁铡?/p>
structlink{chardata;【】;}node;
23.fseek函數(shù)的正確調(diào)用形式是【】。
24.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
25.下列程序的輸出結(jié)果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
26.funl函數(shù)的調(diào)用語(yǔ)句為funl(&a,&b,&c);。它將3個(gè)整數(shù)按由大到小的JI匣序調(diào)整后依次放入a,b,c三個(gè)變量中,a中放最大數(shù),請(qǐng)?zhí)羁铡?/p>
voidfun2(int*x,int*y)
{intt;
t=*x;*x;*y;*y=t;
}
voidfunl(int*pa,int*pb,int*pc)
{if(*pc>*pb)fun2(【】);
if(*pa<*pc)fun2(【】);
if(*pa<*pb)fun2(【】);
}
27.源程序文檔化要求程序應(yīng)加注釋。注釋一般分為序言性注釋和【】注釋。
28.棧的基本運(yùn)算有三種:入棧、退棧和【】。
29.下面程序的功能是:從輸入的正整數(shù)中選3個(gè)數(shù)進(jìn)行輸出,要求這些數(shù)都是2的倍數(shù),請(qǐng)?zhí)羁铡?/p>
main()
{inta,i=0;
scanf("%d",&A);
do
{if(a>0&&a%2==0)
{printf("%d\n",A);i++;}
if(i!=3)
{scanf("%d",&A);}
}while(());
}
30.在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為【】。
31.一個(gè)類(lèi)可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
32.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線(xiàn)性表。允許插入的一端稱(chēng)作______。
33.若輸入5、9,以下程序的運(yùn)行結(jié)果為【】。
main()
{inta,b,*pt1,*pt2;
printf("inputa,b:");
scanf("%d%d",&a,&b);
pt1=&a;
pt2=&b;
if(a<b)swap(pt1,pt2);
printf("\n%d,%d\n",*pt1,*pt2);
}
swap(p1,p2)
int*p1,*p2;
{int*p;
p=p1;
p1=p2;
p2=p;
}
34.以下定義的結(jié)構(gòu)體類(lèi)型擬包含兩個(gè)成員,其中成員變量info用來(lái)存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;};
35.以下程序的輸出結(jié)果是【】。
inta=1234;
printf("%2d\n",a);
36.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
37.以下程序的輸出結(jié)果是12.00,請(qǐng)將空白處填寫(xiě)完整。
main()
{inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1*2;
printf("%52f\n",z);
}
38.若a=1,b=2,則表達(dá)式!(x=A)‖(y=B)&&0的值是______。
39.若有下列定義和語(yǔ)句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為_(kāi)_____。
40.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara='A';
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是()main(){inta=5,b=4,c=6,d;printf(”%d\n",d=a>b?(a>c?a:c):(b));}
A.5B.4C.6D.不確定
42.以下程序運(yùn)行后,輸出結(jié)果是______。main(){char*d[]={"ab","cde"};printf("%x",d[1]);}
A.cdeB.字符c的AScII碼值C.字符c的地址D.出錯(cuò)
43.設(shè)已包含頭文件<string.h>,下列程序段的運(yùn)行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
44.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default,v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("vl=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=8,v2=8,v3=8,v4=8
45.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分為()。A.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線(xiàn)性結(jié)構(gòu)和非線(xiàn)性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
46.以下函數(shù)返回a所指數(shù)組中最小的值所在的下標(biāo)值
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p]);________;
return(p);}
在橫線(xiàn)處應(yīng)填入的是
A.i=pB.a[p]=a[i]C.p=jD.p=i
47.在C語(yǔ)言中,函數(shù)返回值的類(lèi)型最終取決于()。
A.函數(shù)定義時(shí)在函數(shù)首部所說(shuō)明的函數(shù)類(lèi)型
B.return語(yǔ)句中表達(dá)式值的類(lèi)型
C.調(diào)用函數(shù)時(shí)主調(diào)函數(shù)所傳遞的實(shí)參類(lèi)型
D.函數(shù)定義時(shí)形參的類(lèi)型
48.執(zhí)行下面的程序后,a的值為
main()
{inta,b;
for(a=1,b=1;a<=10;a++)
{if(b%3==1)
{b+=3;
continue;}
b-=5;}}
A.7B.8C.9D.10
49.對(duì)于長(zhǎng)度為n的線(xiàn)性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是()。
A.冒泡排序?yàn)閚/2B.冒泡排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2
50.請(qǐng)選出正確的程序段______。
A.int*pscanf(""%d"",p);……
B.int*s,k;*s=100;……
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';……
D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;……
51.在C語(yǔ)言中,關(guān)于函數(shù)fseek的說(shuō)法正確的是()。
A.使位置指針重新返回文件的開(kāi)頭
B.使位置指針到文件的結(jié)尾
C.可以改變文件位置指針
D.利用fseek函數(shù)只能實(shí)現(xiàn)文件順序讀寫(xiě)
52.下面敘述正確的是______。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)
B.算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止
D.以上三種描述都不對(duì)
53.設(shè)有定義inta=2,b=3,c=4;,則以下選項(xiàng)中值為0的表達(dá)式是______。A.(!a==1&&(!b==0)
B.(a<b)&&!c||1
C.a&&b
D.a||(b+b)&&(c-a)
54.下列程序的輸出結(jié)果是()。#include<stdio.h>intf(inta,intb);main(){inti=2,p,j,k;j=i;k=++i;p=f(j,k);printf("%d",p);}intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}
A.-1B.1C.2D.編譯出錯(cuò),無(wú)法運(yùn)行
55.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
56.已知二叉樹(shù)BT的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______.
A.cedbaB.acbedC.decabD.deabc
57.設(shè)有定義:charp[]={′1′,′2′,′3′},*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
58.若有以下調(diào)用語(yǔ)句,則不正確的fun函數(shù)的首部是______。main(){……inta[50],n;fun(n,&a[9]);……}
A.voidfun(intm,intx[])
B.voidfun(kits,kith[41])
C.voidfun(kitp,kit*s)
D.voidfun(intn,inta)
59.在位運(yùn)算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
60.若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
四、選擇題(20題)61.下列敘述中不正確的是。
A.算法的效率不僅與問(wèn)題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有關(guān)
B.算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量
C.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的
D.算法的時(shí)間復(fù)雜度與空間復(fù)雜度不一定相關(guān)
62.
63.
64.
65.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
intfun(inta)
{intb=0;
staticintc=4:
a=c++:b++;
return(a):
main
{inta=2,i,c;
for(i=0:i<2;i++)
c=f(a+1):
printf("%d\n",c);
}
A.4B.7C.6D.5
66.以下能正確定義二維數(shù)組的是()。
A.inta[][3];
B.inta[][3]={2*3);
C.inta[][3]={};
D.inta[2][3]一{{1),{2},{3,4}};
67.
68.
69.以下數(shù)組定義中錯(cuò)誤的是()。
A.intx[2][3]=|1,2,3,4,5,6|;
B.intx[][3]=|0|
C.intx[][3]={|1,2,3|,|4,5,6|}
D.intx[2][3]=||1,2|,|3,4|,|5,6||
70.設(shè)有定義:
則a和b的值分別是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
71.
以下程序的輸出結(jié)果是()。
main
{inti;
for(i=0;i<3;i++)
switch(i){case0:printf("%d",i);
case2:printf("%d",i);
default:printf("%d",i);
}
}
A.000102B.000020C.000122D.000111
72.
73.
74.sizeof(float)是
A.一個(gè)雙精度表達(dá)式B.一個(gè)整型表達(dá)式
C.一種函數(shù)調(diào)用D.一個(gè)不合法的表達(dá)式
75.若已定義inta=25,b=14,c=19;以下三目運(yùn)算符(?:)所構(gòu)成的語(yǔ)句執(zhí)行后a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是
A.***a=25,b=13,c=19B.***a=26,b=14,c=19
C.###a=25,b=13,c=19D.###a=26,b=14,c=19
76.
77.有以下程序:
#include<stdio.h>
main()
{inta;
scanf("%d",&a);
if(a++<9)printf("%d\n",a);
clscprintf("%d\n",a--);
}
程序運(yùn)行時(shí)從鍵盤(pán)輸入9<回車(chē)>,則輸出結(jié)果是()。
A.10B.11C.9D.8
78.
79.
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求整數(shù)X的Y次方的低3位值。例如,整數(shù)6的5次方為7776,此值的低3位值為776。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。例如,若二維數(shù)組中的數(shù)據(jù)為:132333431424344415253545則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.A預(yù)處理命令以“#”開(kāi)頭,一般在源文件的最前面書(shū)寫(xiě),但不是必須在起始位置書(shū)寫(xiě),所以B、C選項(xiàng)錯(cuò)誤。C語(yǔ)言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯的功能,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
2.D解析:運(yùn)算符“%”的兩側(cè)都應(yīng)該是整型數(shù)。另外,本題需要掌握的知識(shí)點(diǎn)是:x%=k,等價(jià)于x=x%k。注意:強(qiáng)制類(lèi)型轉(zhuǎn)換表達(dá)式。
3.A
4.DD?!窘馕觥克惴ǖ臅r(shí)間復(fù)雜度是指算法需要消耗的時(shí)間資源。一般來(lái)說(shuō),計(jì)算機(jī)算法是問(wèn)題規(guī)模。09函數(shù)fin),算法的時(shí)間復(fù)雜度也因此記做T(n)=O(f(n))。因此,問(wèn)題的規(guī)模n越大,算法執(zhí)行的時(shí)間的增長(zhǎng)率與f(n)的增長(zhǎng)率正相關(guān),稱(chēng)作漸進(jìn)時(shí)間復(fù)雜度(AsymptoticTimeComplexity)。簡(jiǎn)單來(lái)說(shuō)就是算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)。
5.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a(chǎn)’<‘z’)=1&&1=1,故選擇B選項(xiàng)。
6.A
\r\n
7.D
8.B題目中嵌套語(yǔ)句的含義是當(dāng)“a<b”且“a<c”成立時(shí),將a的值賦給k。如果“a<b”成立而“a<c”不成立,則將c的值賦給k。如果“a<b”不成立而“b<c”成立,則將b的值賦給k。如果“a<b”不成立且“b<c”也不成立,則將c的值賦給k。判斷條件表達(dá)式,只有B選項(xiàng)可以表示這個(gè)含義。故本題答案為B選項(xiàng)。
9.A
\n本題考查函數(shù)的調(diào)用,從主函數(shù)傳遞到調(diào)用函數(shù)中,*a的值為0,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,b[0]的值為6。
\n
10.B解析:continue是結(jié)束本次循環(huán),直接進(jìn)入到下次循環(huán)中,break用于循環(huán)語(yǔ)句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語(yǔ)句除了goto語(yǔ)句,exit,return等語(yǔ)句也能直接跳出多層循環(huán)。注意:continue和break語(yǔ)句在while語(yǔ)句中的作用。
11.C
12.D本題考查兩個(gè)知識(shí)點(diǎn),按位異或左移把b左移2位化成二進(jìn)制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
13.C
14.D解析:在C語(yǔ)言的標(biāo)準(zhǔn)中,short占2個(gè)字節(jié)、long占4個(gè)字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個(gè)字節(jié),但在VisualC++6.0(VC6可以用做C語(yǔ)言編譯器)中占4個(gè)字節(jié)。故本題應(yīng)該選擇D。
15.B解析:雙目運(yùn)算中兩邊運(yùn)算量類(lèi)型轉(zhuǎn)換規(guī)律:
運(yùn)算數(shù)1運(yùn)算數(shù)2轉(zhuǎn)換結(jié)果類(lèi)型
短整型長(zhǎng)整型短整型->長(zhǎng)整型
整型長(zhǎng)整型整型->長(zhǎng)整型
字符型整型字符型->整型
有符號(hào)整型無(wú)符號(hào)整型有符號(hào)整型->無(wú)符號(hào)整型
整型浮點(diǎn)型整型->浮點(diǎn)型
在a/b的時(shí)候,a、b的類(lèi)型不一致,根據(jù)類(lèi)型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類(lèi)型,之后的加、減類(lèi)似。轉(zhuǎn)化規(guī)則為char,short->int->unsigned->long->double←float。
16.C解析:在格式化模型中,要事先根據(jù)應(yīng)用的需要,確定數(shù)據(jù)之間的邏輯關(guān)系,即先對(duì)數(shù)據(jù)進(jìn)行結(jié)構(gòu)化。在關(guān)系模型中,不需要事先構(gòu)造數(shù)據(jù)的邏輯關(guān)系,只要將數(shù)據(jù)按照一定的關(guān)系存入計(jì)算機(jī),也就是建立關(guān)系。所以選項(xiàng)A錯(cuò)誤。對(duì)于一個(gè)表示關(guān)系的二維表,其最基本的要求是表中元組的每一個(gè)分量必須是不可分的數(shù)據(jù)項(xiàng),即不允許表中再有表。所以,選項(xiàng)B、D說(shuō)法是錯(cuò)誤的。一個(gè)關(guān)系的屬性名表稱(chēng)為關(guān)系模式,也就是二維表的表框架,相當(dāng)于記錄型。因此,選項(xiàng)C說(shuō)法正確。
17.A在調(diào)用函數(shù)時(shí),應(yīng)對(duì)其進(jìn)行說(shuō)明。A選項(xiàng)中,調(diào)用時(shí)沒(méi)有對(duì)函數(shù)進(jìn)行說(shuō)明。B、C選項(xiàng)中,被調(diào)用函數(shù)在主調(diào)函數(shù)之前定義,不用說(shuō)明。D選項(xiàng)中,在主函數(shù)中對(duì)被調(diào)用函數(shù)的返回值類(lèi)型進(jìn)行了說(shuō)明。故本題答案為A選項(xiàng)。
18.D解析:通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針?lè)ǎ?(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開(kāi)始的。
19.C整型變量x、y的初值都為1,“x++,y++,++y”是一個(gè)逗號(hào)表達(dá)式,程序執(zhí)行“z=x++,y++,++y”之后,x的值為2,y的值為3,z取逗號(hào)表達(dá)式中的第二個(gè)表達(dá)式的值,為1。因此本題的答案為選項(xiàng)C。
20.C
21.軟件開(kāi)發(fā)
22.structlink*next
23.fseek(文件指針位移量起始點(diǎn))fseek(文件指針,位移量,起始點(diǎn))解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:
fseek(文件指針,位移量,起始點(diǎn))
“起始點(diǎn)”用0,1或2代替,其中,0代表“文件開(kāi)始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c(diǎn)”為基點(diǎn),向前移動(dòng)的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長(zhǎng)度大于64k時(shí)不致出現(xiàn)問(wèn)題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個(gè)字母L,就表示long型。
24.8888解析:C語(yǔ)言規(guī)定,以0開(kāi)頭的整型常量為八進(jìn)制。另外,在primf()函數(shù)中,%X表示以十六進(jìn)制無(wú)符號(hào)形式輸出一個(gè)整數(shù),且十六進(jìn)制中的ABCDEF為大寫(xiě)字母。本題的輸出應(yīng)該是八進(jìn)制210的十六進(jìn)制形式。將八進(jìn)制轉(zhuǎn)換為十六進(jìn)制,可以先將其轉(zhuǎn)換為二進(jìn)制。因?yàn)?位八進(jìn)制表示3位二進(jìn)制,4位二進(jìn)制表示1位十六進(jìn)制。(210)8=(10001000)2=(88)16,故本題輸出為880
25.5656解析:本題中a,b,c,d足實(shí)參,x,y,cp,dp是形參。C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來(lái)給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
26.pcpb或pbpcpcpa或papcpbpa或papbpc,pb或pb,pc\r\npc,pa或pa,pc\r\npb,pa或pa,pb解析:本題主要考查形參為指針變量時(shí),形參和實(shí)參間的數(shù)據(jù)傳遞。系統(tǒng)為fun2的兩個(gè)形參開(kāi)辟了對(duì)應(yīng)的基類(lèi)為int型的臨時(shí)指針變量,并通過(guò)空格處的實(shí)參把地址傳遞給形參x,y。
27.功能性功能性
28.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有三種:入棧、退棧和讀棧頂元素。
入棧運(yùn)算是指在棧頂位置插入一個(gè)新元素。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂指針進(jìn)一(即top加1),然后將新元素插入到棧頂指針指向的位置。
退棧運(yùn)算是指取出棧頂元素并賦給一個(gè)指定的變量。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂元素(棧頂指針指向的元素)賦給一個(gè)指定的變量,然后將棧頂指針退一(即top減1)。
讀棧頂元素是指將棧頂元素賦給一個(gè)指定的變量。這個(gè)運(yùn)算不刪除棧頂元素,只是將它的值賦給一個(gè)變量。
29.i<3
30.
解析:冒泡排序法是通過(guò)相鄰數(shù)據(jù)元素的交換逐步將線(xiàn)性表變成有序。假設(shè)線(xiàn)性表的長(zhǎng)度為n,則在最壞的情況下,冒泡排序需要經(jīng)過(guò)遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。
31.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
32.隊(duì)尾隊(duì)尾解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。
33.59
34.structnode*structnode*解析:本題中的結(jié)構(gòu)類(lèi)型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。
35.12341234解析:在%與格式符之間插入一個(gè)整形數(shù)來(lái)指這輸出寬度,并不影響數(shù)據(jù)的完整性,當(dāng)插入的寬度小于實(shí)際的寬度時(shí),則實(shí)際的寬度輸出。
36.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫(xiě)函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個(gè)元素輸出到文件fp中兩次,共10個(gè)字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為'1,2,3,0,0,1,2,3,0,0,'。
解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結(jié)果就有下列等式:z=4+2*x/1.1=12.0,化簡(jiǎn)后,為x/1.1=4,x=4.4。
38.00解析:根據(jù)運(yùn)算符的運(yùn)算順序可知,該表達(dá)式最后運(yùn)算的是與(&&)運(yùn)算,而任何表達(dá)式與“0”進(jìn)行“與”運(yùn)算,結(jié)果都為0。
39.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長(zhǎng)度。本題實(shí)際上是要求s2字符串的長(zhǎng)度,即是4。
40.NN解析:函數(shù)說(shuō)明語(yǔ)句中的類(lèi)型名必須與函數(shù)返回值的類(lèi)型一致。本題實(shí)現(xiàn)的是在字符“A”的ASCII碼值上加上一個(gè)常數(shù),使之變成另一個(gè)ASCII碼值,從而輸出字符。
41.C
42.C解析:指針數(shù)組中的每一個(gè)元素都相當(dāng)于一個(gè)指針變量。一維指針數(shù)組的定義形式為:類(lèi)型名*數(shù)組名[數(shù)組長(zhǎng)度],在本題main函數(shù)中定義指針數(shù)組d,它有兩個(gè)元素,其初值分別是“ab”、“cde”的首地址。d[1]的值為“cde”的首地址。%x是指以十六進(jìn)制數(shù)形式輸出整數(shù)。
43.A解析:頭文件<string.h>是字符串處理函數(shù)對(duì)應(yīng)的頭文件,要想調(diào)用C語(yǔ)言的庫(kù)函數(shù)時(shí),都要在程序中嵌入該函數(shù)對(duì)應(yīng)的頭文件,否則無(wú)法使用庫(kù)函數(shù)。
strcpy(s1,s2)把s2中的字符串復(fù)制到s1中,所以結(jié)果就為s2的長(zhǎng)度。
44.C解析:當(dāng)switch后面括弧內(nèi)的表達(dá)式的值與某一個(gè)case后面的常量的表達(dá)式的值相等時(shí),就執(zhí)行此case后面的語(yǔ)句,若所有的case中的常量表達(dá)式的值都沒(méi)有與表達(dá)式的值匹配的,就執(zhí)行default后面的語(yǔ)句。
45.C數(shù)據(jù)結(jié)構(gòu)與算法:數(shù)據(jù)結(jié)構(gòu)的基本概念[評(píng)析]邏輯結(jié)構(gòu)反映數(shù)據(jù)元素之間的邏輯關(guān)系,線(xiàn)性結(jié)構(gòu)表示數(shù)據(jù)元素之間一對(duì)一的關(guān)系,非線(xiàn)性結(jié)構(gòu)表示數(shù)據(jù)元素之間一對(duì)多或多對(duì)一的關(guān)系。線(xiàn)性結(jié)構(gòu)和非線(xiàn)性結(jié)構(gòu)是根據(jù)數(shù)據(jù)元素之間關(guān)系的不同特性加以分類(lèi)的,即是從邏輯上加以分類(lèi)的。
46.D解析:該程序先判斷a[i]<a[p],如果條件為真,則a[i]比當(dāng)前設(shè)定的最小值小(p保留的當(dāng)前最小元素的下標(biāo)),那么將i賦給p,即將比較過(guò)的最小元素下標(biāo)保留在p中,作為下面判斷的標(biāo)準(zhǔn)。
47.A解析:在C語(yǔ)言中,應(yīng)當(dāng)在定義函數(shù)時(shí)指定函數(shù)值的類(lèi)型。凡不加類(lèi)型說(shuō)明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時(shí)對(duì)函數(shù)值說(shuō)明的類(lèi)型一般應(yīng)該和return語(yǔ)句中的表達(dá)式類(lèi)型一致。如果函數(shù)值的類(lèi)型和return語(yǔ)句中的表達(dá)式類(lèi)型不一致,則以函數(shù)值的類(lèi)型為準(zhǔn),由系統(tǒng)自動(dòng)進(jìn)行轉(zhuǎn)換,即函數(shù)類(lèi)型決定返回值的類(lèi)型。
48.D解析:考查continue語(yǔ)句的使用。continue語(yǔ)句的作用是結(jié)束本次循環(huán),直接進(jìn)入下次循環(huán)。
49.DD?!窘馕觥勘绢}主要考查對(duì)排序算法的理解。冒泡排序法首先將第一個(gè)記錄的關(guān)鍵字與第二個(gè)記錄的關(guān)鍵字進(jìn)行比較,若逆序則交換,然后比較第二個(gè)與第三個(gè),以此類(lèi)推,直至第n-1個(gè)與第n個(gè)記錄的關(guān)鍵字進(jìn)行比較。第一趟冒泡排序使最大的關(guān)鍵字元素放到最后。以此類(lèi)推,進(jìn)行第2~n次冒泡排序。如果在排序過(guò)程中不存在逆序,則排序結(jié)束。在最壞情況下,冒泡排序中,若初始序列為“逆序”序列,則需要比較n(D-1)/2次??焖倥判蚴菍?duì)冒泡排序的一種改進(jìn)。它的基本思想是:通過(guò)一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字比另一部分記錄的關(guān)鍵字小,然后分別對(duì)這兩部分記錄繼續(xù)進(jìn)行排序,最終達(dá)到整個(gè)記錄有序。對(duì)于快速排序,當(dāng)初始記錄序列按關(guān)鍵字有序或基本有序時(shí),快速排序退化為冒泡排序,最壞情況下比較次數(shù)為n(n-1)/2。
50.C解析:本題的選項(xiàng)A)和B)犯了同樣的錯(cuò)誤,即指針變量在定義后并沒(méi)有指向具體的變量。也就是說(shuō),指針變量中沒(méi)有確定的地址值,它的值是不可預(yù)見(jiàn)的,所指的單元也是不可預(yù)見(jiàn)的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。
51.C解析:fseek()函數(shù)可以自由的改變文件位置指針的位置,即可以自由讀寫(xiě)文件中的任何位置,故選項(xiàng)A、B、D都是錯(cuò)誤的,應(yīng)該選擇C。
52.C解析:算法的執(zhí)行效率與數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)都有很緊密的關(guān)系。算法的空間復(fù)雜度是指執(zhí)行該算法需要的內(nèi)存空間,并非算法程序中指令的條數(shù)。算法一般應(yīng)該具有以下4個(gè)特征:可行性、確定性、有窮性和擁有足夠情報(bào)。其中,有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止,否則可能失去實(shí)際意義。
53.A解析:選項(xiàng)A中(!a==1)&&(!b==0)→(!2==1)&&(!b==0)→(0==1)&&(!b==0)→0&&(!b==0)→0(&&右邊表達(dá)式(!b==0)被“短路”):選項(xiàng)B中(a<b)&&!c||1→(2<3)&&!4||1→1&&0||1→0||1→1;選項(xiàng)C中a&&b→2&&3→1;選項(xiàng)Da||b+b)&&(c-a)→2||(b+b)&&(c-a)→1(||右邊表達(dá)式(b+b)&&(c-a)被“短路”)。所以本題選A。
54.A解析:函數(shù)調(diào)用相當(dāng)于f(2,3),程序運(yùn)算結(jié)果為-1。
55.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹(shù)和判定表。PAD(問(wèn)題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。
56.A解析:由二叉樹(shù)后序遍歷序列和中序遍歷序列可以唯一確定一棵二叉樹(shù)。二叉樹(shù)BT的后序遍歷序列為dabec,故BT的根結(jié)點(diǎn)為c(后序遍歷序列的最后一個(gè)結(jié)點(diǎn)為樹(shù)的根結(jié)點(diǎn)):而B(niǎo)T的中序遍歷序列是debac,即遍歷序列中最后一個(gè)結(jié)點(diǎn)為根結(jié)點(diǎn),說(shuō)明BT的右子樹(shù)為空。由BT的后序遍歷序列和中序遍歷序列可知BT左子樹(shù)的后序遍歷序列和中序遍歷序列分別為dabe和deba,因此BT左子樹(shù)的根結(jié)點(diǎn)是e。再由中序遍歷序列可知其左子樹(shù)為d,右子樹(shù)為ba。因此BT的前序遍歷序列為cedba。
57.A解析:在本題中,p和q同為指向字符類(lèi)型數(shù)據(jù)的指針。*q和p[0]同為字符型數(shù)據(jù)。選項(xiàng)B)、C)和D)都符合題目的要求;選項(xiàng)A)計(jì)算得出的是指針類(lèi)型數(shù)據(jù)所占的內(nèi)存字節(jié)數(shù)。
58.D
59.A左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能是把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。例如,a<<4是把a(bǔ)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國(guó)內(nèi)保理業(yè)務(wù)協(xié)議應(yīng)收賬款池融資版
- 一年級(jí)下數(shù)學(xué)教案-退位減法-西師大版
- 2024-2025學(xué)年一年級(jí)下學(xué)期數(shù)學(xué)第二單元位置《左和右》(教案)
- 2025年公司和個(gè)人簽訂的勞務(wù)合同模板
- 六年級(jí)上冊(cè)數(shù)學(xué)教案-4.1 比的基本性質(zhì) ︳青島版
- 一年級(jí)下冊(cè)數(shù)學(xué)教案-小兔請(qǐng)客1 北師大版
- 2025年倉(cāng)儲(chǔ)保管合同樣本常用版
- 學(xué)習(xí)2025年雷鋒精神62周年主題活動(dòng)方案 (3份)
- 2025年合肥經(jīng)濟(jì)技術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)完整
- 期中(試題)-外研版(三起)英語(yǔ)三年級(jí)下冊(cè)-(含答案)
- 月度安全生產(chǎn)例會(huì)匯報(bào)材料
- 2025年春季學(xué)期學(xué)校團(tuán)委工作計(jì)劃(附團(tuán)委工作安排表)
- 2025公文寫(xiě)作考試題庫(kù)(含參考答案)
- 2025年湖南科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2024年安徽省高校分類(lèi)考試對(duì)口招生語(yǔ)文試卷真題(含答案)
- 2025年南京信息職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 如何管理好一家公寓
- 2025年零售業(yè)員工職業(yè)發(fā)展規(guī)劃與培訓(xùn)
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蝕工程施工及驗(yàn)收規(guī)范
- 政府機(jī)關(guān)保安服務(wù)項(xiàng)目整體服務(wù)方案
- 小學(xué)科學(xué)冀人版六年級(jí)下冊(cè)全冊(cè)同步練習(xí)含答案
評(píng)論
0/150
提交評(píng)論