![2021年黑龍江省齊齊哈爾市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第1頁](http://file4.renrendoc.com/view/cec5c251a3fc1c75461fe7b7fd1c1975/cec5c251a3fc1c75461fe7b7fd1c19751.gif)
![2021年黑龍江省齊齊哈爾市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第2頁](http://file4.renrendoc.com/view/cec5c251a3fc1c75461fe7b7fd1c1975/cec5c251a3fc1c75461fe7b7fd1c19752.gif)
![2021年黑龍江省齊齊哈爾市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第3頁](http://file4.renrendoc.com/view/cec5c251a3fc1c75461fe7b7fd1c1975/cec5c251a3fc1c75461fe7b7fd1c19753.gif)
![2021年黑龍江省齊齊哈爾市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第4頁](http://file4.renrendoc.com/view/cec5c251a3fc1c75461fe7b7fd1c1975/cec5c251a3fc1c75461fe7b7fd1c19754.gif)
![2021年黑龍江省齊齊哈爾市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)_第5頁](http://file4.renrendoc.com/view/cec5c251a3fc1c75461fe7b7fd1c1975/cec5c251a3fc1c75461fe7b7fd1c19755.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年黑龍江省齊齊哈爾市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面關(guān)于圖的存儲的敘述中正確的是()。
A.用鄰接表法存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個數(shù)無關(guān)
B.用鄰接表法存儲圖,占用的存儲空間大小與圖中邊數(shù)和頂點(diǎn)個數(shù)都有關(guān)
C.用鄰接矩陣法存儲圖,占用的存儲空間大小與圖中頂點(diǎn)個數(shù)和邊數(shù)無關(guān)
D.用鄰接矩陣存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個數(shù)無關(guān)
2.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是()。
A.8,6B.8,3C.6,4D.7,4
3.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()
4.一個算法應(yīng)當(dāng)具有5個特性,以下敘述中正確的是()。
A.有窮性、確定性、復(fù)雜性、有零個或多個輸入、有一個或多個輸出
B.有窮性、確定性、可行性、有零個或多個輸入、有一個或多個輸出
C.有窮性、確定性、可行性、必須要有一個以上的輸入、有一個或多個輸出
D.有窮性、確定性、復(fù)雜性、有零個或多個輸入、必須要有多個輸出
5.若有運(yùn)算符:>、*=、<<、%、sizeof,則它們按優(yōu)先級(由低至高)的正確排列次序?yàn)?)。
A.*=<<>%sizeof
B.<<*=>%sizeof
C.%=><<sizeof%
D.*=><<%sizeof
6.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的運(yùn)行結(jié)果是
A.987654321B.4321098765C.5678901234D.987651234
7.若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素
A.可在程序的運(yùn)行階段得到初值0
B.可在程序的編譯階段得到初值0
C.不能得到確定的初值
D.可在程序的編譯或運(yùn)行階段得到初值0
8.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);該程序段的輸出結(jié)果是()。
A.*B.****C.**D.********
9.函數(shù)原形中,下列()是不必要的。
A.函數(shù)的類型B.形式參數(shù)名C.函數(shù)名D.形式參數(shù)類型
10.下列不屬于C語言關(guān)鍵字的是()。A.A.default
B.register
C.enum
D.external
11.設(shè)二叉排序樹中有n個結(jié)點(diǎn),則二叉排序樹的平均查找長度為()。A.O(1)
B.O(log2n)
C.O(n)
D.(n2)
12.某二叉樹有5個度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是A.10B.8C.6D.4
13.若有定義int?x,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x-y)等價的是()。A.(x-y<0|x-y>0)B.(x-y<0)C.(x-y>0).D.(x-y==0)
14.設(shè)一組初始記錄關(guān)鍵字序列為(Q,H,C,Y,P,A,M,S,R,D,F,X),則按字母升序的第一趟冒泡排序結(jié)束后的結(jié)果是()
A.F,H,C,D,P,A,M,Q,R,S,Y,X
B.P,A,C,S,Q,D,F,X,R,H,M,Y
C.A,D,C,R,F,Q,M,S,Y,P,H,X
D.H,C,Q,P,A,M,S,R,D,F,X,Y
15.
16.
17.下面哪種排序算法是穩(wěn)定的()
A.快速排序B.堆排序C.歸并排序D.選擇排序
18.算法的時間復(fù)雜度是指()A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法程序中的指令條數(shù)D.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
19.以下選項(xiàng)中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'
20.若已定義inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是
A.a[p-A)B.*(&a[i])C.p[i]D.a[10]
二、2.填空題(20題)21.以下程序的輸出結(jié)果是#include<stdio.h>structstiintx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&it[0],60,&dt[0],};main(){p=aa;printf("%d\n",++(p->x));}
22.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
23.下面程序的輸出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
24.下面程序是指從終端讀入的20個字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(*p++);}
25.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
ginclude"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
pfintf("Enterx:");scanf("%lf"&x);
y1=fun([10]);y2=fun([11]);
pin
26.若有以下程序:
main()
{
inta=4,b=3,c==5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,C);
}
執(zhí)行后輸出結(jié)果是【】。
27.下列程序的輸出結(jié)果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
28.一個項(xiàng)目具有一個項(xiàng)目主管,一個項(xiàng)目主管可管理多個項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于【】的聯(lián)系。
29.若有定義:inta=4,b=5,c=6;然后順序執(zhí)行下列語句后,變量b中的值是()。c=(a-=(b-5));c=(a%3)+(b=1);
30.下列程序的運(yùn)行結(jié)果為【】。
main()
{
intx,y,z;
X=12;
y=012;
z=0l2;
printf("%d,%d,%d\n",x,y,z);
}
31.以下說明語句中,【】是結(jié)構(gòu)體類型名。
typedefstruct
{intn;
charch[8];
}PER;
32.軟件生命周期可分為多個階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測試屬于【】階段。
33.數(shù)據(jù)流的類型有______和事務(wù)型。
34.理解下面的程序,填空完善程序。
main()
{inta,b,c;
scanf("%d%d",【】);
c=【】(a,b);
printf("a=%db=%dmax=%d\n",a,b,c);
}
intmax(x,y)
【】;
{intz;
if(x>y)z=x;
elsez=y(tǒng);
【】;
}
35.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實(shí)現(xiàn)。
36.設(shè)有如下宏定義
#defineMYSWAP(z,x,y){z=x;x=Y;Y=z;}
以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a、b內(nèi)容的交換,請?zhí)羁铡?/p>
floata=5,b=16,c;
MYSWAP(【】,a,b);
37.下列程序的輸出結(jié)果是______。
main()
{inta=1,b=2,c=3,t=0;
if(a<B){t=a;a=b;b=t;}
if(a<C){t=a;a=c;c=t;}
printf("%d,%d,%d\n",a,b,C);
}
38.有以下程序:
#include<stdio.h>
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結(jié)果是【】。
39.下列程序利用指針將2個數(shù)按從大到小的順序輸出。
main()
{inta,b,【】;
printf("inputa,b:");
scanf("%d%d",&a,&b);
【】;
p2=&b;
if(a<b)
{p=p1;
p1=p2;
p2=p;
}
printf("a=%db=%d\n",a,b);
printf("max=%dmin=%d\n",【】);
40.有以下程序:
prt(int*m,intn)
{inti;
for(i=0;i<n;i++)m[i]++;
}
main()
{inta[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)printf("%d,",a[i];
}
程序運(yùn)行后的輸出結(jié)果是【】。
三、1.選擇題(20題)41.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表
42.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是______。
A.23B.26C.33D.36
43.以下程序的輸出結(jié)果是()main(){inti;for(i='A;i<'l';i++,i++)printf("%c",i+32);printf("\n");}
A.編譯不通過,無輸出B.acegC.acegiD.abcdefghi
44.在設(shè)計程序時,應(yīng)采納的原則之一是______。
A.程序結(jié)構(gòu)應(yīng)有助于讀者理解B.不限制goto語句的使用C.減少或取消注解行D.程序越短越好
45.執(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=5
B.a=4,b=5,c=5
C.a=5,b=6,c=5
D.a=1,b=5,c=6
46.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式
C.數(shù)據(jù)在計算機(jī)中的順序存儲方式
D.存儲在計算機(jī)外存中的數(shù)據(jù)
47.設(shè)有下列二叉樹:
對此二叉樹先序遍歷的結(jié)果是
A.ABCDEFB.BDAECFC.ABDCEFD.DBEFCA
48.若fp已正確定義并指向某個文件,當(dāng)未遇到該文件結(jié)束標(biāo)志時函數(shù)feof(fp)的值為()
A.0B.1C.-1D.一個非0值
49.下列程序的運(yùn)行結(jié)果為()。
#include<stdio.h>
voidabc(char*str)
{inta,b,i,j;
for(i=j(luò)=0;str[i]!='\0';i++)
if(str[i]!='a')
str[j++]=str[j];
str[j]='\0';
}
voidmain()
{charStr[]="abcdef';
abc(str);
printf("str[]=%s",str);
}
A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab
50.已知i、j、k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1、j的值為2、k的值為3,以下選項(xiàng)中正確的輸入語句是______。
A.sanf("%2d%2d%2d",&i,&j,&k);
B.scanf("%d%d%d",&i,&j,&k);
C.scanf("%d,%d,%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k)
51.如果需要打開一個已經(jīng)存在的非空文件“Demo”進(jìn)行修改,下面選項(xiàng)中正確的是
A.fp=fopen("Demo","r");
B.fp=fopen("Demo","ab+");
C.fp=fopen("Demo","w+");
D.fp=fopen("Demo","r+");
52.有程序:main(){intx,i;for(i=1;i<50;i++){x=i;if(++%2==0)if(x%3==0)if(x%7==0)printf("%d",i);}}輸出結(jié)果是()
A.28B.27C.42D.41
53.軟件測試與排錯是兩類相互聯(lián)系而又性質(zhì)不同的活動,在下述項(xiàng)目中,不具有排錯活動特征的項(xiàng)目是______。
A.修改程序B.運(yùn)用推理和歸納的方法C.了解程序細(xì)節(jié)D.運(yùn)用測試實(shí)例
54.以下程序的輸出結(jié)果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}
A.9B.6C.36D.18
55.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機(jī)無關(guān)的是數(shù)據(jù)的()。A.存儲結(jié)構(gòu)B.物理結(jié)構(gòu)C.邏輯結(jié)構(gòu)D.物理和存儲結(jié)構(gòu)
56.有以下程序inta=2;intf(int*a){return(*a)++;}main(){ints=0;{inta=5;s+=f(&a);}s+=f(&a);pfintf("%d\n",a);}執(zhí)行后輸出結(jié)果是
A.10B.9C.7D.8
57.若有說明inta[][3]={0,0);,則不正確的敘述是()。
A.數(shù)組a的每個元素的初值都是0
B.數(shù)組a的第一維大小為1
C.數(shù)組a的行數(shù)為1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
58.有以下程序:main(){char*p[]={"3697","2584"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[il[j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。
A.35B.37C.39D.3975
59.已有定義:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判斷c中的字符是否為大寫字母的表達(dá)式是()。
A.isupper(c)
B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
60.下列與表達(dá)式“b=(a<0?-1:a>0?1:0)”的功能等價選項(xiàng)是()
A.b=0;if(a>=0)if(a>0)b=1;elseb=-1;
B.if(a>0)b=1;elseif(a<0)b=-1;elseb=0;
C.if(A)if(a<0)b=-1;elseif(a>0)b=1;elseb=0;
D.b=-1;if(A)if(a>0)b=1;elseif(a==0)b=0;elseb=-1;
四、選擇題(20題)61.
62.
63.已有定義intx=3,y=4,z=5;則表達(dá)式“!(x+y)+z-1y+z/2”的值是________。
A.6B.0C.2D.1
64.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.7B.5C.3D.9
65.
66.結(jié)構(gòu)化程序設(shè)計的三種結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
67.下列敘述中不正確的是()。
A.在C語言中調(diào)用函數(shù)時,只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動變量實(shí)質(zhì)上是一個函數(shù)內(nèi)部的局部變量
68.
69.有以下說明和定義語句
structstudent
{
intage;charnum[8];
};
structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};
structstudent*p=stu;
以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯誤的是
A.(p++)->numB.p->numC.(*p).numD.stu[3].age
70.C語言源程序名的后綴是()。A.CB.exeC.obiD.ep
71.設(shè)有以下函數(shù):
A.
B.
C.
D.
72.有以下程序
#include<stdio.h>
voidfun(intx)
{if(x/2>1)fun(x/2);
printf("%d",x);
}
main
{fun(7);printf("\n");}
程序運(yùn)行后的輸出結(jié)果是()。
A.137B.731C.73D.37
73.
74.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.5,11B.5,5C.11,11D.11,5
75.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.11,12B.12,13C.13,14D.14,11
76.下列敘述中正確的是()。A.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的
B.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)
C.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)
D.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)在存儲空間的需求上沒有可比性
77.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
78.
79.已知intx=(1,2,3,4);變量x的值是()。
A.1B.2C.3D.4
80.在面向?qū)ο蠓椒ㄖ校哂邢嗨茖傩耘c操作的一組對象稱為()。
A.類B.實(shí)例C.消息D.數(shù)據(jù)
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:先將字符串s中的字符按順序存放到t中,然后把S中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時,則t中的字符串應(yīng)為WXYZWXYZ。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidproc(char*s,char*t)
{
inti,s1;
s1=strlen(s);
for(i=0;i<s1;i++)
//****found****
t[i]=s[s1];
for(i=0;i<s1;i++)
t[s1+i]一s[i];
t[2*s1]=\O0;
}
voidmain
{
chars[100],t[100];
system("CLS");
print{("\nPleaseenterstrings:");
scanf("%s",s);
proc(s,t);
printf("Theresultis:%s\n",t);
}
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是找出2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#defineM4#include<stdio.h>intfun(inta[][m]){}voidmain(){intarr[2][M]={5,8,3,45,76,-4,12,82};printf(“max=%d\n”,fun(arr));}
參考答案
1.B
2.C解析:本題考查的知識點(diǎn)是運(yùn)算符的優(yōu)先級.在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個選項(xiàng)中C正確。
3.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。
4.B算法是指為解決某個特定問題而采取的確定且有限的步驟,一個算法應(yīng)當(dāng)具有5個特征:有窮性、確定性、可行性、有雩個或多個輸入、有一個或多個輸出。本題答案為B選項(xiàng)。
5.D解析:本題主要考查算術(shù)運(yùn)算的優(yōu)先級。順序如下:
[*]
注:*=、>、<<、%、sizeof的優(yōu)先級依次遞增。
6.C解析:函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5.6,7,8,9,01;再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。
7.C本題主要考查數(shù)組的定義及初始化。在對數(shù)組進(jìn)行定義和初始化時,需要注意以下事項(xiàng)。
(1)數(shù)組的內(nèi)存空間在編譯時確定,定義數(shù)組時的n值只能使用常量,不能使用變量。
(2)定義數(shù)組時可以不標(biāo)明數(shù)組元素的個數(shù),而是通過賦初值的方式確定,編譯系統(tǒng)將自動計算花括號內(nèi)的數(shù)據(jù)數(shù)量作為數(shù)組的元素個數(shù)。
(3)數(shù)組初始化時,當(dāng)初值的個數(shù)小于整型常量n時,編譯系統(tǒng)會自動補(bǔ)0。一旦給定初值數(shù)超過n,編譯系統(tǒng)將報錯。
(4)初始化數(shù)組的元素類型,必須與定義數(shù)組時的類型一致。
(5)數(shù)組名記錄了數(shù)組在內(nèi)存中的首地址,其值不能更改。
(6)除字符數(shù)組外,不能直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出。
本題中定義了一個3行4列的數(shù)組,但沒有對其進(jìn)行賦初值操作,可能我們會想在系統(tǒng)編譯時會自動補(bǔ)0,這只是在初值個數(shù)小于數(shù)組定義大小的情況下的操作,如果沒有進(jìn)行賦初值操作,數(shù)組中的元素值是不能被確定的。因此,本題答案選C。
8.AC語言中,分號為一條語句的結(jié)束。因此“for(i=0;i<4;i++,i++)for(k=1;k<3;k++);”是完整的語句,“printf(“*”);”是獨(dú)立語句,不屬于for循環(huán)。最后執(zhí)行printf語句輸出“*”。故本題答案為A選項(xiàng)。
9.A
10.Dregister聲明寄存器變量enum聲明枚舉類型default開關(guān)語句中的“其他”分支
11.B
12.C根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。
13.A條件表達(dá)式:x=表達(dá)式1:表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)式1.若為非0(真),則求解表達(dá)式2.將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求解表達(dá)式3.將表達(dá)式3的值賦給x。在本題中與表達(dá)式1:(x-y)等價的是(x-y<0|x-y>0)。
14.D
15.B
16.C
17.C
18.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。
19.C解析:C語言中字符常量是以單引號括起來的單個字符,或?yàn)橐浴癨\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個字符。
20.D解析:通常,引用一個數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開始的。
21.C
22.24
23.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。
24.\0's\\0'\r\ns解析:本題選通過for循環(huán)從鍵盤讀入20個字符,然后在最后賦一定值'\\0'后為結(jié)束標(biāo)志,再使指針p指向字符串的首地址。最后通過while循環(huán)對字符串進(jìn)行掃描并輸出。
25.用x+8代替函數(shù)fun(doublex)中形式參數(shù)x。用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
26.503503解析:先判斷表達(dá)式a<b為假,不執(zhí)行t=a,但執(zhí)行“a=b;b=t;”,a的值為3,b的值為0。再判斷表達(dá)式a<C,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。
27.6.66.6解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a(bǔ)、b,代入,得到16.0=9/2+2*x/1.1+1/2。因?yàn)閍=9,a是整型,所以9/2的值在沒有進(jìn)行類型轉(zhuǎn)換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
28.一對多(或1∶N)一對多(或1∶N)解析:兩個實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即一對一(1∶1)的聯(lián)系、一對多(1∶N)或多對一(N∶1)的聯(lián)系和多對多(N∶N)的聯(lián)系。
29.11解析:本題考查的是基本賦值運(yùn)算符和賦值表達(dá)式。a-=(b-5)等價于a=a-(b-5)=4,c=a=4;a%3=1,c=(a%3)+(b=1)=2,其中b的值被b=1確定為1。
30.12101812,10,18解析:本題定義了3個整型變量x、y、z,并分別用十進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)為它們賦值。然后以十進(jìn)制整型輸出這3個變量。八進(jìn)制數(shù)012的十進(jìn)制表示為10,十六進(jìn)制數(shù)0x12的十進(jìn)制表示為18。此外輸出函數(shù)格式控制中的“,”原樣輸出。
31.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構(gòu)體類型,此時,也可以用PER來定義變量。
32.開發(fā)開發(fā)解析:軟件生命周期(SDLC,軟件生存周期)是軟件的產(chǎn)生直到報廢的生命周期,周期內(nèi)有問題定義、可行性分析、總體描述、系統(tǒng)設(shè)計、編碼、調(diào)試和測試、驗(yàn)收與運(yùn)行、維護(hù)升級到廢棄等階段,其中的編碼和測試屬于開發(fā)階段。
33.變換型變換型
34.&a&bmaxintxyreturn(z)
35.測試實(shí)例測試實(shí)例解析:進(jìn)行軟件測試時,應(yīng)精心設(shè)計測試實(shí)例和選擇測試數(shù)據(jù),以對系統(tǒng)進(jìn)行全面測試。
36.cc解析:本題關(guān)鍵在考生是不是了解宏的基本運(yùn)用,在使用宏的時候明顯少了—個實(shí)參。在定義宏的時候變量z是用來做中間變量的,題目中缺的變量就是一個中間變量c。
37.3123,1,2解析:分析程序,第一個if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。
38.00解析:本題是計算5*4*3*2*1*0的值,結(jié)果為0。
39.*p*p1*p2p1:&a*p1*p2
40.234562,3,4,5,6解析:函數(shù)prt(a,5)的功能是使得a數(shù)組中,從a[0]~a[4]中元素均增1。
41.C隊(duì)列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,選項(xiàng)A和選項(xiàng)B錯誤。允許插入的一端稱為隊(duì)尾,允許刪除的一端稱為隊(duì)頭。在隊(duì)列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊(duì)列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則,選項(xiàng)C正確,選項(xiàng)D錯誤。
42.A解析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][0]語句實(shí)際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時,aa[0][1]=3,*p=2;*p輸出的是指針?biāo)赶虻臄?shù)組值,此時p所指向的是aa[O][0],輸出2,而i=1時執(zhí)行了++p操作使指針向后移動指向了aa[0][1],所以在輸出*p時應(yīng)為3。
43.B
44.A解析:程序設(shè)計的風(fēng)格主要強(qiáng)調(diào)程序的簡單、清晰和可理解性,以便讀者理解。因此選項(xiàng)A是正確答案。程序?yàn)E用goto語句將使程序流程無規(guī)律,可讀性差;添加的注解行有利于對程序的理解,不應(yīng)減少或取消;程序的長短要依照實(shí)際需要而定,并不是越短越好。因此選項(xiàng)B、C、D都是錯誤的。
45.B解析:本題考查自加(++)、自減(--)運(yùn)算符的使用。“++i,--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達(dá)式的值參與運(yùn)算:“i++,i--”,先使用此時的i的值參與運(yùn)算,在使用i之后,再使i的值加1或者減1。
對于第1個表達(dá)式--x=4,y++=4。兩者相等,--x==y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。
第2個表達(dá)式b=++x,x的值先加1,然后賦給b,即b=x+1=5第一個表達(dá)式c=y=5。
46.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
47.C解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷,遍歷順序應(yīng)該為:訪問根結(jié)點(diǎn)->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDCEF。
48.A解析:文件尾測試函數(shù)feof()的應(yīng)用,讀取文件時,當(dāng)文件中的數(shù)據(jù)全部讀完后,文件位置指針將位于文件的結(jié)尾。此時如果讀數(shù)據(jù),將會出現(xiàn)錯誤。為了保證讀寫數(shù)據(jù)的正確性,需要進(jìn)行文件尾測試,文件尾測試使用函數(shù)feof(),它的功能是測試fp指向的文件是否到達(dá)文件尾。若到達(dá)文件尾,返回值為非0,否則返回值為0。在本題中fP指向的某文件還沒有到了文件尾,因此返回0。
49.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。通過函數(shù)abc的執(zhí)行,將字符串中的字母a去掉,保留剩下的。由于是通過指針調(diào)用,所以改變字符串的結(jié)果。
50.C解析:scanf函數(shù)的格式控制部分中的非格式字符按原樣輸入,本題指出鍵盤輸入為:1,2,3<回車>,各個數(shù)據(jù)之間用“,”分隔,所以scanf函數(shù)中應(yīng)包含“,”,選項(xiàng)D中雖然包括“,”號,但是還包含非格式字符i=、j=和k=,正確答案為選項(xiàng)C。
51.D
52.D
53.D解析:測試和排錯是互相聯(lián)系但又是性質(zhì)不同的兩類活動,排錯的主要特征包括;修改程序錯誤,推理和歸納,了解程序細(xì)節(jié)。而“運(yùn)用測試實(shí)例”是具有測試活動的特征。
54.C解析:觀察程序段可知,對帶參數(shù)的宏的展開只是將語句中的宏名后面括號內(nèi)的實(shí)參字符串代替#define命令行中的形參。本題中c=f(a)/f(b)用#definef(x)x*x代替得c=f(6)/f(2),即c=6*6/2*2,結(jié)果為36。
55.C數(shù)據(jù)結(jié)構(gòu)概念一般包括3個方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)(物理結(jié)構(gòu))及數(shù)據(jù)上的運(yùn)算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,即數(shù)據(jù)元素之間的前后件關(guān)系,而不管它在計算機(jī)中的存儲表示形式。
56.C解析:若在函數(shù)中定義了與全局變量名字相同局部變量,則全局變量在該函數(shù)中將不起作用。本題中定義了一個全局變量a和局部變量a。在主函數(shù)中定義一個整型變量s并賦初值為0,接著定義了一個局部變量a并賦值為5,由于該局部變量的和全局變量a同名,故全局變量在復(fù)合語句中將不起作用,然后調(diào)用函數(shù)f(&a)(該函數(shù)的作用是返回存儲變量a的空間中的值,并讓該值加1,分析程序可知返回值為5,并讓a值加1變?yōu)?),并將返回值加到s中。此時s的值為5,然后執(zhí)行該復(fù)合語句外的其他語句,同樣調(diào)用函數(shù)f(&a),但傳遞的參數(shù)是全局變量a,故其返回值為2,加到s中后s的值變?yōu)?,故最后輸出的s的值為7。
57.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應(yīng)注意下列兩點(diǎn):①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定:當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大小;當(dāng)初值的個數(shù)不能被第二維的常量表達(dá)式的值除盡時,第一維的大小=所得商數(shù)+1。
58.C解析:本題首先定義了一個字符指針數(shù)組p,然后使用一個兩重循環(huán)遍歷數(shù)組p。因?yàn)閮?nèi)循環(huán)的循環(huán)變量j每次會加2,所以只能遍歷到數(shù)組p每行中列下標(biāo)為偶數(shù)的字符,它們是‘3’、‘9’、‘2’、‘8’。然后,將它們通過p[i][j]-‘0’表達(dá)式轉(zhuǎn)換為對應(yīng)的整數(shù)3、9、2、8,并用%2來判斷該整數(shù)是否為奇數(shù)。所以最終能執(zhí)行到num=10*num+p[i][j]-‘0’,語句的只有‘3’和‘9’兩個字符。此時已不難算出,運(yùn)行后num中的值為39。故應(yīng)該選擇C。
59.B解析:大寫字母從'A'~'Z'的ASCII碼是連續(xù)的,所以如果當(dāng)—個字符大于等于'A'且小于等于'z'時,那這個字符就一定是一個大寫字母,故選項(xiàng)C正確。C語言中的庫函數(shù)isupper()的作用也正是判斷一個字符是否為大寫字母的,故選項(xiàng)A正確。在ASCII碼中,小寫字母的編碼也是連續(xù)的,對應(yīng)的小寫字符比大寫字符的ASCII碼值大32,所以選項(xiàng)D經(jīng)過小寫字符-32后,換算成了對應(yīng)的大寫字母'Z'和'A',所得到結(jié)果和選項(xiàng)C是一致的,故也是正確的。選項(xiàng)B中,C語言的邏輯表達(dá)式不能直接連寫,而應(yīng)該寫成選項(xiàng)C那樣,故是錯誤的,應(yīng)該選擇B。
60.B
61.B
62.D
63.D
64.C向switch語句塊傳送參數(shù)后,編譯器會1先尋找匹配的csse語句塊,找到后就執(zhí)行該語句塊。遇到break跳出;如果沒有匹配的語句塊,則執(zhí)行default語句塊。ca∞與default沒有順序之分。所以第2次循環(huán)k的值為l,執(zhí)行c+:k,c的值為1,再執(zhí)行case2后的語句c++,c的值為2,遇到break語句跳出循環(huán);第二次循環(huán)k的值為2,執(zhí)行case2后面的語句c++,C的值為3,跳出循環(huán)。
65.B
66.D結(jié)構(gòu)化程序設(shè)計以模塊化設(shè)計為中心,采用自頂向下、逐步求精的程序設(shè)計方法。任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。
67.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時,編譯系統(tǒng)根據(jù)需要要臨時分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中歷史 第一單元 古代中國經(jīng)濟(jì)的基本結(jié)構(gòu)與特點(diǎn) 第1課 發(fā)達(dá)的古代農(nóng)業(yè)新課說課稿1 新人教版必修2
- Unit 4 There are seven days in a week. Lesson 19(說課稿)-2023-2024學(xué)年人教精通版英語四年級下冊
- Unit 1 Teenage Life Listening and Speaking 說課稿 -2024-2025學(xué)年高中英語人教版2019 必修第一冊001
- 2024年春七年級語文下冊 第3單元 10 老王說課稿 新人教版
- Unit 5 Working the Land Reading and thinking 說課稿-2024-2025學(xué)年高二英語人教版(2019)選擇性必修第一冊
- 農(nóng)田整改合同范本
- 作品出版合同范例
- 鄭州水泥化糞池施工方案
- 關(guān)于活動執(zhí)行合同范本
- 加盟區(qū)域保護(hù)合同范例
- 測繪工程產(chǎn)品價格表匯編
- 拘留所教育課件02
- 語言和語言學(xué)課件
- 《工作場所安全使用化學(xué)品規(guī)定》
- 裝飾圖案設(shè)計-裝飾圖案的形式課件
- 2022年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)考試筆試試題及答案解析
- 護(hù)理學(xué)基礎(chǔ)教案導(dǎo)尿術(shù)catheterization
- ICU護(hù)理工作流程
- 廣東版高中信息技術(shù)教案(全套)
- 市政工程設(shè)施養(yǎng)護(hù)維修估算指標(biāo)
- 分布式光伏屋頂調(diào)查表
評論
0/150
提交評論