版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年河北省保定市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.輸入序列為(A,B,C,D),不可能得到的輸出序列是______.
A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)
2.有3個(gè)關(guān)系R、S和T如下.
則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并
3.c源程序中不能表示的數(shù)制是()。
A.二進(jìn)制B.八進(jìn)制C.十進(jìn)制D.十六進(jìn)制
4.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序經(jīng)運(yùn)行后形成下圖所示的數(shù)據(jù)結(jié)構(gòu)。則以下可以刪除中間節(jié)點(diǎn)b的正確選項(xiàng)是()。
A.pt=p->next;p->next=p->next->next;free(pt);
B.pt=p->next;p->next=p->next->next->next;free(pt);
C.pt=&b;free(pt);
D.pt=&b;p->next=p->next->next->next;free(pt);
5.
6.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過程中可以出棧,則下列不可能的一個(gè)出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
7.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定
8.在inta=3,int*p=&a;中,*p的值是()
A.變量a的地址值B.無意義C.變量p的地址值D.3
9.有以下定義和語句
StructWorkers
{intnum;charname[20];charc;
struct
{intday;intmonth;intyear;}s;
};
StructWorkersW,*pe;
PW=&W;
能給W中yeaR成員賦1980的語句是A.*pW.yeaR=1980;
B.W.yeaR=1980;
C.pW->yeaR=1980;
D.W.s.yeaR=1980;
10.下列程序段的時(shí)間復(fù)雜度為()。A.O(n)B.O(log2n)C.O(n3)D.O(n2)
11.現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中連續(xù)的三個(gè)節(jié)點(diǎn)。structnode{chardata;structnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指節(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的連續(xù),以下不能完成此操作的語句是()。
A.q->next=r->next;p->next=r;r->next=q;
B.p->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r;
D.r->next=q;p->next=r;q->next=r->next;
12.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述錯(cuò)誤的是()。
A.選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口
B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)
C.不允許使用GOTO語句
D.語言中若沒有控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬
13.利用E-R模型進(jìn)行數(shù)據(jù)庫的概念設(shè)計(jì),可以分成3步:首先設(shè)計(jì)局部E-R模型,然后把各個(gè)局部E-R模型綜合成一個(gè)全局的模型,最后對(duì)全局E-R模型進(jìn)行(),得到最終的E-R模型。
A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化
14.以下敘述中正確的是()。
A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方
B.花括號(hào)"{"和"}"只能作為函數(shù)體的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號(hào)是C語句之間的分隔符,不是語句的一部分
15.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是()。
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.以述說法都不對(duì)
16.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()
17.
18.下列關(guān)于return語句的敘述中正確的是()。
A.—個(gè)自定義函數(shù)中必須有一條return語句
B.—個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處
19.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯(cuò)
20.廣義表(a,b,c,d)的表頭是()。
A.aB.(a)C.(b,c,d)D.((b,c,c))
二、2.填空題(20題)21.執(zhí)行以下程序后,輸出‘#’號(hào)的個(gè)數(shù)是______。
#include<stdio.h>
main()
{
inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)
putchar('#');
}
22.下列程序運(yùn)行后的輸出結(jié)果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
運(yùn)行程序,輸入HOWAREYOU。
23.以下程序運(yùn)行時(shí),若從鍵盤輸入:102030<回車>,輸出的結(jié)果是【】。
#include<stdio.h>
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
24.在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,類的實(shí)例稱為______。
25.執(zhí)行以下程序后的輸出結(jié)果是()。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",A);
26.執(zhí)行下面程序段后,k值是【】。
k=1;n=263;
do
{k*=n%10;n/=10;
}while(n);
27.實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少和算法的工作量大小分別為算法的【】。
28.C語言用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
29.下列程序可以判斷輸入的年份是不是閏年。
#include
main()
{int【】,leap;
scanf("%d",&year);
if(year%4)
leap=0;
elseif(year%lO0)
【】;
elseif(year%400)
leap=0;
else
leap=1;
if(【】)
printf("%d年是閏年",year);
else
printf("%d年不是閏年\n",year);
}
30.寫出下列程序的輸出結(jié)果______。
main()
{int=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
31.函數(shù)pi的功能是根據(jù)以下公式近似求得的:
pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求pi的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0,longi;
for(i=1;i<=n;i++)s=s+【】。
return(sqrt(6*s));
}
32.下列程序的功能是計(jì)算數(shù)的階乘。
main()
{ihti,n;
nlongnp;
scanf("%d",&n);
np=【】;
for(i=2;i<=n;i++)
【】;
printf("n=%dn!=%ld\n",n,np);
}
33.數(shù)據(jù)庫保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
34.下列程序的輸出結(jié)果是______。
#include<stdio.h>
sb(ints[],intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8};
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);
}
printf("\n");
}
35.下面的程序?qū)崿F(xiàn)的是指針p所指向的地址的n個(gè)數(shù)中,求出最大的和最小的數(shù)據(jù),請(qǐng)?zhí)羁铡?/p>
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
36.有以下程序#include<stdio.h>typedefstruct{intnum;doubles;}REC;voidfunl(REC*x){x->num=23;x->s=88.5;}voidmain(){RECa={16,90.0};fun1(&A);printf("%d\n",a.num);}程序運(yùn)行后的輸出結(jié)果是()。
37.樹中度為零的結(jié)點(diǎn)稱為______。
38.數(shù)據(jù)庫的設(shè)計(jì)通??梢苑譃?個(gè)步驟:需求分析、概念設(shè)計(jì)、【】和物理設(shè)計(jì)。
39.下列程序的輸出結(jié)果是______。
main()
{inta+,b=2,C=3,t=0;
ifa<B){t=a;a=b;b=t;}
ifa<C){t=a;a=c;c=t;}
printf("%d,%d,%dln",a,b,C);
}
40.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==O‖x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定大
B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小
C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小
D.上述三種說法都不對(duì)
42.有下列程序段:
structst
{intx;int*y;}*pt;
inta[]={1,2},b[]={3,4};
stmctstc[2]={10,a,20,b};
pt=c;
下列選項(xiàng)中表達(dá)式的值為11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->X
43.若有下列語句:chara[]="xyz";charb[]=}'x','y','z'};則下列敘述正確的是______。
A.數(shù)組a和數(shù)組b不等價(jià)
B.數(shù)組a和數(shù)組b的長度相同
C.數(shù)組a占用空間大小等于數(shù)組b占用空間大小
D.數(shù)組a占用空間大小大于數(shù)組b占用空間大小
44.已知—個(gè)有序表為(12,18,24,35,47,50,62,83,90,115,134),當(dāng)二分查找值為47的元素時(shí),經(jīng)過______次比較后查找成功。
A.1B.2C.3D.4
45.已知各變量的類型說明如下:intk,a,b;unsignedlongw=5;doublex=1.42;則以下不符合C語言語法的表達(dá)式是():
A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
46.需求分析最終結(jié)果是產(chǎn)生
A.項(xiàng)目開發(fā)計(jì)劃B.需求規(guī)格說明書C.設(shè)計(jì)說明書D.可行性分析報(bào)告
47.有以下程序段typedefstructNODE{intnum;structNODE*next;}OLD;以下敘述中正確的是
A.以上的說朗形式非法B.NODE是一個(gè)結(jié)構(gòu)體類型C.OLD是一個(gè)結(jié)構(gòu)體類型D.OLD是一個(gè)結(jié)構(gòu)體變量
48.為了提高測試的效率,應(yīng)該()。
A.隨機(jī)選取測試數(shù)據(jù)
B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
C.在完成編碼以后制定軟件的測試計(jì)劃
D.集中對(duì)付那些錯(cuò)誤群集的程序
49.在C語言中,不適用于局部變量的存儲(chǔ)類說明符是()
A.autoB.registerC.staticD.extern
50.若有說明chart;,下列表達(dá)式不正確的是______。
A.t=97B.t='a'C.t="a"D.t='a'+'b'
51.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
52.定義如下變量:intn=10;則下列循環(huán)的輸出結(jié)果是()。while(n>7){-n;printf("%d\n",n);}
A.1098B.987C.10987D.9876
53.軟件需求分析一般應(yīng)確定的是用戶對(duì)軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
54.設(shè)有以下語句:charstr1[]="string",str2[8],*str3,*str4="str4="string";則______不是對(duì)庫函數(shù)的正確調(diào)用。
A.strcpy(str1,"HELLO1");
B.strcpy(str2."HELLO2");
C.strcpy(str3."HELLO3");
D.strcpy(str4."HELLO4");
55.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}
A.252B.1C.0D.運(yùn)行時(shí)出錯(cuò),x無定值
56.下列程序的輸出結(jié)果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
57.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是()。
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<-10||!(y-x)>10
D.(x-y)*(x-y)<100
58.若有以下定義和語句:ints[4][5],(*ps)[5];ps=s;則對(duì)s數(shù)組元數(shù)的正確引用形式是
A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3
59.有如下程序
main()
{intn=9;
while(n>6){n--;printf("%d",n);}}
該程序的輸出結(jié)果是
A.987B.876C.8765D.9876
60.有以下定義:#include<stdio.h>chara[10],*b=a;下面不能給數(shù)組a輸入字符串的語句是()。
A.gets(a)B.gets(a[0]);C.gets(&a[0]);D.gets(b);
四、選擇題(20題)61.若x=5,y=3則y*=x+5;y的值為___________.
A.10B.20C.15D.30
62.
以下程序的輸出結(jié)果是()。
main
{charstr[]1-10]={"china","beijing"),*p=str;
printf("%s\n",p+10);
}
A.ChinaB.BeijingC.ngD.ing
63.
64.
65.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.6B.3C.8D.12
66.第
13
題
設(shè)有程序段
intk=10;
while(k=0)k=k-1;
則下面描述中正確的是A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次
67.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單的變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是
A.地址傳遞B.單向值傳遞
C.由實(shí)參傳形參,再由形參傳實(shí)參D.傳遞方式由用戶指定
68.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.321B.12300C.1D.123
69.有下列程序:
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]-t\0)%2)num=10*num+p[j][j]-0;
j+=2;
}
}
printf("%d\n",num);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.35B.37C.39D.3975
70.以下選項(xiàng)中不能用做C程序合法常量的是()。
A.1,234B.‘\123’C.123D.“\x7G”
71.有兩個(gè)關(guān)系R、S如下:
由關(guān)系R通過運(yùn)算得到關(guān)系s,則所使用的運(yùn)算為()。
A.選擇B.投影C.插入D.連接
72.
73.
若有下列定義和語句:
intu=011,v=0x11,w=11;
printf("%o,%x,%d\n",u,v,w);
則輸出結(jié)果是()。
A.9,17,11B.9,11,11C.11,11,11D.11,17,11
74.算法的有窮性是指()。
A.算法程序的運(yùn)行時(shí)問是有限的。
B.算法程序所處理的數(shù)據(jù)量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
75.
76.
77.有以下程序:
main()
{intx=0,y=5,z=3;
while(z-->0&&++x<5?x:y--)y=y-1
Printf("%d,%d,%d\n",x,y,z);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.3,2,0B.3,2,-1C.4,3,-1D.3,-1,-2
78.
下列程序的運(yùn)行結(jié)果為()。
#include<stdio.h>
main
{structdate
{intyear,month,day;
}today;
printf("%d\n",sizeof(structdate));
}
A.8B.6C.10D.12
79.以下選項(xiàng)中正確的定義語句是()。
80.若有以下程序段,w和k都是整型變量。
w=k;
LB:if(w==0)gotoLE;
w--;
printf("*");
gotoLB;
LE:
M
則不能與上面程序段等價(jià)的循環(huán)語句是
A.for(w=k;w!=0;w--)printf("*");
B.w=k;<CR>while(w--!=0)printf("*");w++;
C.w=k;<CR>do{w--;printf("*");}while(w!=0);
D.for(w=k;w;--w)printf("*");
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:應(yīng)用遞歸算法求某數(shù)a的平方根。求平方根的迭代公式如下:
x1=(xO+a/xO)/2
例如,3的平方根為1.732051。
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)如n,其功能是:刪除一個(gè)字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n放指定的下標(biāo)。例:輸入一個(gè)字符串“world”,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為“word”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)丘m的花括號(hào)中填入你編寫的若干語句。試題程序:
參考答案
1.D
2.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。
3.AA?!窘馕觥緾語言源程序不能表示八進(jìn)制,在C語言中,所有的數(shù)值型常量都帶有符號(hào),所以整型數(shù)量只區(qū)別整型和長整型兩種形式,整型常量和長整型常量均可用十進(jìn)制、二進(jìn)制、十六進(jìn)制3種形式表示,故A不正確。
4.A題干中,a、b、c3個(gè)節(jié)點(diǎn)都是node類型,它們都有兩個(gè)成員:字符成員id,node類型指針成員next。由于a的next指向b,b的next指向c,因此a、b、c構(gòu)成了鏈表。要想刪除b節(jié)點(diǎn),只需要將a節(jié)點(diǎn)的next(p->next)指向c(p->next->next),然后將節(jié)點(diǎn)b的存儲(chǔ)空間釋放即可。所以刪除b節(jié)點(diǎn)的語句為“pt=p->next;p->next=p->next->next;free(pt);”。故本題答案為A選項(xiàng)。
5.A
6.C解析:棧是一種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)淺,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。
7.D解析:在C語言的標(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語言編譯器)中占4個(gè)字節(jié)。故本題應(yīng)該選擇D。
8.D
9.D解析:結(jié)構(gòu)體structureworkers中的成員s是結(jié)構(gòu)體類型,給w中成員year賦值的語句是w.s.year=1980,故選D。
10.A
11.D解析:D中的操作將會(huì)丟失r后面的鏈表結(jié)構(gòu),不能保持鏈表的連續(xù)。
12.C結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一是限制使用GOT0語句,但不是絕對(duì)不允許使用GOT0語句。其他三項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。
13.D解析:在概念設(shè)計(jì)中按照模塊的劃分畫出每個(gè)模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應(yīng)該對(duì)全局E-R圖進(jìn)行優(yōu)化,看看是否有重復(fù)和不合理的地方。不能只是進(jìn)行簡單的合并。
14.A解析:/*與*/之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進(jìn)行嵌套,故選項(xiàng)A正確:在C語言中,函數(shù)體是從花括號(hào){開始,到花括號(hào)}結(jié)束。但沒有規(guī)定花括號(hào){和}只能作為函數(shù)體定界符,故選項(xiàng)B錯(cuò)誤;選項(xiàng)C中前半句是正確的,C程序由一個(gè)或多個(gè)函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù),比如主函數(shù)main()就不能由用戶來命名,故選C不正確;在C語言中明確規(guī)定每條語句以分號(hào);結(jié)束,分號(hào)是語句不可缺少的一部分,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
15.C解析:對(duì)字符型一維數(shù)組在定義時(shí)初始化,既可以使用初始化列表,也可以使用字符串常量。不過由于字符串常量會(huì)自動(dòng)在結(jié)尾添加\'\\0\',字符做結(jié)束標(biāo)志,所以用字符串常量的初始化列表項(xiàng)個(gè)數(shù)是字符串的長度加1。因此題目中的chara[]='xyz';等價(jià)于chara[]={\'x\',\'y\',\'z\',\'\\0\');,所以a數(shù)組長度大于b數(shù)組長度,應(yīng)該選C。
16.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。
17.B
18.B在函數(shù)中允許有多個(gè)return語句,但每次調(diào)用只能有一個(gè)return語句被執(zhí)行,因此只能返回一個(gè)函數(shù)值,A選項(xiàng)描述錯(cuò)誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,C選項(xiàng)描述錯(cuò)誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會(huì)自動(dòng)返回到調(diào)用處,D選項(xiàng)描述錯(cuò)誤。故本題答案為B選項(xiàng)。
19.D因?yàn)樽址麛?shù)組s[]中的數(shù)組名s表示的是一個(gè)地址常量。所以語句“s+=2;”不能將指針在當(dāng)前位置的基礎(chǔ)上再向后移動(dòng)兩位。因而程序編譯時(shí)出錯(cuò)。
20.A
21.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了四次.當(dāng)i=1時(shí),由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán).當(dāng)i=2時(shí),執(zhí)行內(nèi)層循環(huán),輸出一個(gè)#當(dāng)i=3時(shí),內(nèi)層循環(huán)循環(huán)兩次,輸出兩個(gè)#,當(dāng)i=4時(shí),內(nèi)層循環(huán)循環(huán)三次,輸出三#。當(dāng)i=5時(shí),循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個(gè)#。
22.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。
23.1030010300解析:輸入語句使i=10,j=30,k沒有被重新賦值,仍為初值0。
24.對(duì)象對(duì)象解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,類是具有相同的屬性或方法的對(duì)象的抽象,對(duì)象是類的實(shí)例。
25.a=14a=14解析:在“逗號(hào)表達(dá)式(表達(dá)式1,表達(dá)式2)”中,其運(yùn)算方法是先求表達(dá)式1的值,然后求表達(dá)式2的值,整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。首先3*5=15,a=10,a+4=14,最后輸出的運(yùn)算結(jié)果為14。
26.3636解析:本題循環(huán)體共執(zhí)行了3次。第一次:k=3,n=26:第二次:k=18,n=2;第三次:k=36,n=0。
27.空間復(fù)雜度和時(shí)間復(fù)雜度空間復(fù)雜度和時(shí)間復(fù)雜度解析:算法的復(fù)雜性是指對(duì)一個(gè)在有限步驟內(nèi)終止算法和所需存儲(chǔ)空間大小的估計(jì)。算法所需存儲(chǔ)空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時(shí)間復(fù)雜性。
28.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語句和switch語句)和循環(huán)結(jié)構(gòu)(包括for語句、while語句、do…while語句)。
29.yearleap=1leap
30.333,3解析:本題在while(n++<=1)語句后,直接加了分號(hào),說明如果while()的條件為真時(shí),該循環(huán)什么都不做;n++是先取n的當(dāng)前值和I做比較,然后再將n加1。第一次循環(huán),n=0時(shí),循環(huán)條件n++=0<=1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時(shí),循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時(shí),循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時(shí)仍將n加1,得到n=3。退出循環(huán)后執(zhí)行printf語句,第二個(gè)printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加1,即程序結(jié)束后得到n=4,但輸出的是3。
31.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由題面中提供的計(jì)算pi的公式可知;在第i項(xiàng)其值為1/(i*i),考慮到運(yùn)算結(jié)果為浮點(diǎn)數(shù),故必須要將1轉(zhuǎn)化為浮點(diǎn)數(shù)或采用1.0/(i*i)的形式。故本題應(yīng)填1.0/(i*i)或其等效形式。
32.1np*=i或np=np*i1\r\nnp*=i或np=np*i
33.完整性控制完整性控制
34.86518651解析:主程序中,第一次循環(huán)時(shí),i=0,調(diào)用sb(s,x)子函數(shù),此時(shí)n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時(shí),i=1,調(diào)用sb(s,x)子函數(shù),因?yàn)閷定義為了靜態(tài)變量,所以此時(shí)n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時(shí),i=2,調(diào)用sb(s,x)子函數(shù),此時(shí)n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時(shí),i=3,調(diào)用sb(s,x)子函數(shù),此時(shí)n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。
35.q<p+nq<p+n解析:通過地址傳遞可以在被調(diào)函數(shù)中對(duì)調(diào)用函數(shù)中的變量進(jìn)行引用。
36.23
37.葉子結(jié)點(diǎn)葉子結(jié)點(diǎn)解析:樹中度為零的結(jié)點(diǎn),也就是沒有后件的結(jié)點(diǎn),稱為葉子結(jié)點(diǎn)。
38.邏輯設(shè)計(jì)邏輯設(shè)計(jì)解析:數(shù)據(jù)庫設(shè)計(jì)的4個(gè)階段為:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。
39.3123,1,2解析:分析程序,第一個(gè)if句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時(shí)a=2,b=1。第二個(gè)if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時(shí)a=3,c=2。
40.本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當(dāng)x=4時(shí),不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結(jié)果為4*3*2*1=24。\r\n\r\n
41.DD?!窘馕觥克惴ǖ臅r(shí)間復(fù)雜度和算法的空間復(fù)雜度是從不同的角度來衡量算法的執(zhí)行情況的,它們之間沒有內(nèi)在聯(lián)系。
42.C解析:由題目的已知條件可知,pt指向結(jié)構(gòu)體數(shù)組c[2]的第一元素c(0),所以pt->x=10,執(zhí)行自加運(yùn)算后為11。
43.D解析:數(shù)組a的存儲(chǔ)空間占4個(gè)字節(jié)(結(jié)束符'\\0'占一字節(jié)),數(shù)組a的存儲(chǔ)空間占3個(gè)字節(jié)。
44.D
45.A解析:“%”是求余運(yùn)算符或模運(yùn)算符,“%”兩側(cè)均應(yīng)為整型數(shù)據(jù),選項(xiàng)A)中的x是double型數(shù)據(jù)。
46.B解析:本題考核軟件工程中的需求分析環(huán)節(jié)。需求分析應(yīng)交付的主要文檔就是需求規(guī)格說明書。
47.C解析:將題目中的定義語句去掉前面的typedef和后面的OLD(分號(hào)保留),就是一條完整的結(jié)構(gòu)體定義語句,其中struct是說明符,NODE是結(jié)構(gòu)體名,大括號(hào)里面的是結(jié)構(gòu)體成員的定義.此時(shí)要聲明該結(jié)構(gòu)體變量時(shí)需要使用struct加結(jié)構(gòu)體名一起來聲明,structNODE一起構(gòu)成一個(gè)結(jié)構(gòu)體類型,就好像字符類型char。若只去掉前面的typedef,就是一條結(jié)構(gòu)體定義同時(shí)聲明一個(gè)結(jié)構(gòu)體變量OLD的語句,因?yàn)镺LD的前面部分是structNODE的完整寫法,可以看作是structNODE。C語言允許用typcdcf說明一種新類型名,其語法格式為:
typedef類型名標(biāo)識(shí)符;
以后就可以用該標(biāo)識(shí)符來代替被說明的類型名了。因此,當(dāng)前面存在typedef時(shí),該語句就變成7給structNODE的完整寫法定義一個(gè)新的名稱OLD。所以,此時(shí)的OLD是一個(gè)結(jié)構(gòu)體類型,它相當(dāng)于structNODE,即可以和char一樣單獨(dú)用來聲明該結(jié)構(gòu)體變量,而NODE只是一個(gè)結(jié)構(gòu)體名,不能單獨(dú)用來聲明變量。所以,4個(gè)選項(xiàng)中C符合題意.
48.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個(gè)方面。
(1)軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。
(2)一個(gè)好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤。
(3)一個(gè)成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測試。
軟件測試的效率是指利用更少的成本創(chuàng)造更多的價(jià)值,提供軟件測試效率的方法有很多,如制定一個(gè)合理的詳細(xì)的測試計(jì)劃,了解測試項(xiàng)目的業(yè)務(wù)需求,集中對(duì)付那些錯(cuò)誤群集的程序等。而選項(xiàng)A所描述的隨機(jī)選取測試數(shù)據(jù)是不能保證提高測試效率的,選項(xiàng)B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。
49.D
50.C解析:選項(xiàng)A將97作為ASCII碼值(小寫字母a的ASCII碼值)賦給字符變量t。選項(xiàng)D將字符a和字符b的ASCII碼值的和賦給變量t。選項(xiàng)B是將字符a的ASCII碼值賦給變量t,也是正確的。選項(xiàng)C中的“a”是字符串常量,不是字符常量。
51.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲(chǔ)區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時(shí),返回值為負(fù)數(shù);當(dāng)str1=str2時(shí),返回0;當(dāng)str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運(yùn)算符比較兩個(gè)字符串的大小)。
52.B解析:第1次循環(huán),10>7,--n=9,輸出9。第2次循環(huán),9>7,--n=8,輸出8。第3次循環(huán),8>7,--n=7,輸出7。
53.DD?!窘馕觥寇浖枨蠓治鲋行枰獦?gòu)造一個(gè)完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對(duì)軟件的功能需求和非功能需求。
54.C解析:C語言中:strcpy(st1,st2);,其兩個(gè)參數(shù)均為字符指針或字符數(shù)組,選項(xiàng)C中的字符串指針str3沒有指向具體有效的存儲(chǔ)單元,故是錯(cuò)誤的調(diào)用。
55.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個(gè)指針變量中存儲(chǔ)的地址是不同的。變量x接受的是一個(gè)關(guān)系運(yùn)算的結(jié)果,因?yàn)閮蓚€(gè)地址是不同的,所以“z=y”的判斷結(jié)果為0。注意:C語言中,邏輯值的表示方法。
56.C解析:本題考查ifelse語句。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a<b成立,執(zhí)行下列的復(fù)合語句,得c=a*b=20,b、a的值不變。
57.C解析:選項(xiàng)A用了一個(gè)絕對(duì)值函數(shù)abs(),故選項(xiàng)A正確;選項(xiàng)B中用了一個(gè)“&&”邏輯與,故選項(xiàng)B正確;選項(xiàng)C中,“||”左邊的式子如為真,將不再判斷其后的表達(dá)式的值,故選項(xiàng)C不正確;選項(xiàng)D為本題中數(shù)學(xué)關(guān)系式的一個(gè)等價(jià)命題,故選項(xiàng)D正確。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
58.C解析:本題首先定義了一個(gè)4行5列的數(shù)組s,又定義了一個(gè)指向由5個(gè)元素組成的一維數(shù)組的指針變量ps,通過賦值讓ps指向了數(shù)組s的首地址。此時(shí)數(shù)組元素s[i)[j]的地址為“*(ps+i)+j”,數(shù)組元素s[i][j]可表示為*(*(pe+i)+j);選項(xiàng)B表示的是數(shù)組元素a[3][0]的地址;選項(xiàng)D表示的是數(shù)組元素s[1][3]的地址;選項(xiàng)A中“ps+1”為指向下一行(第二行)的地址;選項(xiàng)C中ps[0][2]無條件等價(jià)于“*(ps[0]+2)”又無條件等價(jià)于“*(*(pe+0)+2)”,即是數(shù)組元素s[0][2]。
59.B解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時(shí)的輸出結(jié)果來決定哪一項(xiàng)是正確的。第一次進(jìn)入循環(huán)時(shí),n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運(yùn)算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項(xiàng)A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時(shí),n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時(shí),輸出為6,由此可以排除選項(xiàng)C)。
60.B解析:函數(shù)gets(字符數(shù)組)的功能是從終端輸入一個(gè)字符串到字符數(shù)組,并且得到一個(gè)函數(shù)值,該函數(shù)值是字符數(shù)組的起始地址。函數(shù)的參數(shù)應(yīng)該是一個(gè)指針,所以選項(xiàng)B)錯(cuò)誤。
61.D
62.B
\n本題考查指針,由*p=str可知,指針P指向字符串?dāng)?shù)組的首地劃。二維數(shù)組str為每個(gè)字符串分配的存儲(chǔ)空間是10個(gè)字節(jié),因此p+10指向str[1][0],輸出的字符串就是數(shù)組中的第2個(gè)字符串。
\n
63.C
64.C
65.A本題中第一次調(diào)用為fun(8,fun(5,6)),因?yàn)閒un(5,6)返回值為5,所以第二次調(diào)用為fun(8,5)--6,因此選擇A)。
66.C本題中,首先將0賦給k,表達(dá)式變?yōu)?,跳出循環(huán),沒有執(zhí)行循環(huán)體語句。解答本題的關(guān)鍵是掌握while語句。
67.B函數(shù)調(diào)用時(shí),在主調(diào)函數(shù)和被調(diào)函數(shù)之間,存在著數(shù)據(jù)的傳遞,利用參數(shù)傳遞數(shù)據(jù)和利用返回值傳遞數(shù)據(jù)是常用的兩種方法。
函數(shù)調(diào)用時(shí)的參數(shù)叫做實(shí)參,函數(shù)執(zhí)行時(shí)的參數(shù)叫做形參,利用參數(shù)傳遞數(shù)據(jù)實(shí)質(zhì)是指函數(shù)實(shí)參和形參之間的數(shù)據(jù)傳遞過程。存在兩種數(shù)據(jù)傳遞的方式:傳值和傳地址。
在函數(shù)調(diào)用時(shí),系統(tǒng)為形參準(zhǔn)備空間,并把實(shí)參的值賦值到形參空間中,在調(diào)用結(jié)束后,形參空間將被釋放,而實(shí)參的值保持不變,這就是傳值傳遞方式。傳值傳遞方式中實(shí)參與形參之間的數(shù)據(jù)傳遞是單向的,只能由實(shí)參傳遞給形參。因而,即使形參的值在函數(shù)執(zhí)行過程中發(fā)生了變化,也不會(huì)影響到實(shí)參值。在C語言中,當(dāng)參數(shù)類型是非指針類型和非數(shù)組類型時(shí),均采用傳值方式。
傳地址方式把實(shí)參的地址賦值給形參,這樣形參就可以根據(jù)地址值訪問和更改實(shí)參的內(nèi)容,從而實(shí)現(xiàn)雙向傳遞。當(dāng)參數(shù)類型是指針類型或數(shù)組類型時(shí),均采用傳地址方式。
區(qū)別于參數(shù)傳值方式和返回值傳遞方式,傳地址方式具有明顯的優(yōu)勢(shì)。
(1)參數(shù)傳值方式是主調(diào)函數(shù)與被調(diào)函數(shù)之間的單向數(shù)據(jù)傳遞方式,而參數(shù)的傳地址方式則實(shí)現(xiàn)了二者之間的雙向數(shù)據(jù)傳遞。
(2)函數(shù)的返回值每次只能把一個(gè)數(shù)據(jù)項(xiàng)從被調(diào)函數(shù)傳遞到主調(diào)函數(shù),而參數(shù)的傳地址方式卻可一次性地傳遞多個(gè)數(shù)據(jù)項(xiàng)到主調(diào)函數(shù)。
根據(jù)上述描述,由于本題中說的實(shí)參是普通的變量,即非指針類型和數(shù)組類型,那么采用的是傳值方式,是單向的。因此,本題的答案是B。
68.D程序首先將數(shù)組a[10]中的元素l、2.3分別寫入了文件dl。dat文件中,然后又將dl.dat文件中的數(shù)據(jù)123,整體寫入到了變量n的空間中,所以打印n時(shí)輸出的數(shù)據(jù)為123。
69.D\n執(zhí)行第一次for循環(huán)時(shí),用表達(dá)式p[i][J]!=\o來判斷字符串?dāng)?shù)組指針P是否到達(dá)字符串的結(jié)尾,如果沒有到達(dá),繼續(xù)執(zhí)行while中的語句。if語句表示(p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新版合同服裝聯(lián)營3篇
- 房屋買賣合同貸款版示例3篇
- 工程外包合同參考3篇
- 文化傳播平臺(tái)建設(shè)合同3篇
- 工業(yè)煤油銷售合同協(xié)議3篇
- 教育培訓(xùn)服務(wù)勞動(dòng)合同模板集3篇
- 新版鏟車租賃合同協(xié)議書3篇
- 居民創(chuàng)新方案3篇
- 新版律師聘用合同范本3篇
- 安裝工程合同中的工程變更處理3篇
- 醫(yī)學(xué)外科的教學(xué)設(shè)計(jì)
- 濟(jì)南 公司章程范本
- AR技術(shù)在教育領(lǐng)域的應(yīng)用與課程設(shè)計(jì)
- 2023年軟件主管年終業(yè)務(wù)工作總結(jié)
- 2019疏浚工程預(yù)算定額
- 笙的演奏技術(shù)與教學(xué)
- 大學(xué)生預(yù)征對(duì)象登記表模板
- 《明辨是非》課件
- 重癥監(jiān)護(hù)??谱o(hù)理質(zhì)控考核標(biāo)準(zhǔn)
- 2023版設(shè)備管理體系標(biāo)準(zhǔn)
- 高標(biāo)準(zhǔn)農(nóng)田輸配電工程施工方案與技術(shù)措施
評(píng)論
0/150
提交評(píng)論