版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年河南省許昌市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
3.下面程序運(yùn)行后的輸出結(jié)果是______。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}
A.5B.6C.7D.8
4.用數(shù)組r存儲靜態(tài)鏈表,結(jié)點(diǎn)的next域指向后繼,工作指針j指向鏈中結(jié)點(diǎn),使j沿鏈移動的操作為()。
A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next
5.數(shù)字字符“2”的ASCII碼為十進(jìn)制數(shù)50,數(shù)字字符“5”的ASCII碼為十進(jìn)制數(shù)()
A.52B.55C.54D.53
6.
7.若已知一個(gè)棧的進(jìn)棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。
A.IB.n-iC.n-i+1D.不確定
8.有以下程序:#include<stdio.h>main(){intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;for(i=0;i<3;i++)for(j=1;j<=i;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是()。A.1B.3C.4D.0
9.下列方法中,屬于白盒法設(shè)計(jì)測試用例的方法的是()。
A.錯誤推測B.因果圖C.基本路徑測試D.邊界值分析
10.
11.
12.設(shè)有定義的語句:“charc1=92,c2=92;”,則以下表達(dá)式中的值為零的是()。
A.c1^c2B.c1&c2C.~c2D.c1|c2
13.若有以下程序: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
14.已知a,b均被定義為double型,則表達(dá)式:b=1,a=b+5/2的值為()。
A.1B.3C.3.0D.3.5
15.如果定義“班級”關(guān)系如下:班級(班級號,總?cè)霐?shù),所屬學(xué)院,班級學(xué)生)則使它不滿足第一范式的屬性是()。
A.班級號B.班級學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院
16.在深度為5的滿二叉樹葉中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.32B.31C.16D.15
17.在面向?qū)ο蠓椒ㄖ?,一個(gè)對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
18.如果某圖的鄰接矩陣是對角線元素均為零的上三角矩陣,則此圖是_______
A.有向完全圖B.連通圖C.強(qiáng)連通圖D.有向無環(huán)圖
19.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba
20.設(shè)有如下定義語句:intm[]={2,4,6,8,10},*k=m;以下選項(xiàng)中,表達(dá)式的值為6的是()。
A.*(k+2)B.k+2C.*k+2D.*k+=2
二、2.填空題(20題)21.以下程序用來統(tǒng)計(jì)文件中字符個(gè)數(shù)。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{FILE*fp;longnum=OL;
if((fp=fopen("fname.dat","r")==NULL)
{Pirntf("Openerror\n");exit(0);}
while(【】)
{fgetc(fp);num++;}
printf("num=%1d\n",num-1);
fclose(fp);
}
22.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
23.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
24.以下程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%51d\n",k);}
25.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。
26.寫出下列程序的執(zhí)行結(jié)果。swap(p1,p2)int*p1,*p2;{intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b,*p1,*p2;scanf("%d%d",&a,&B);p1=&a;p2=&b;if(a<B)swap(p1,p2);printf("\na=%d,b=%d\n",a,B);}若a=7,b=8,則程序的運(yùn)行結(jié)果為()。
27.設(shè)x、y、z均為int型變量,請寫出描述“x或y中至少有一個(gè)小于z”的表達(dá)式______。
28.以下程序的輸出結(jié)果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
29.買來一張新盤后,在存入文件前,必須進(jìn)行【】處理。
30.以下程序的輸出結(jié)果是【】。
main()
{inta=177;
printf(“%o\n”,A);
}
31.下列程序的運(yùn)行結(jié)果為【】。
main()
{intx=2,y,z;
x*=3+1;
printf("%d,",x++);
x+=y=z=5;
printf("%d,",x);
K=y==Z;
printf{"%d\n",x);
}
32.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補(bǔ)充完整。
scanf("%d",【】);
printf("%d\n",【】);
33.設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則在該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
34.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實(shí)現(xiàn)的。
35.自盒測試方法重視【】的度量。
36.為了便于對照檢查,測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。
37.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
38.下面程序的功能是:計(jì)算1~10之間奇數(shù)和及偶數(shù)之和。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=O;
for(i=O;i<=10;i+=2)
{a+=i;
【】;
c+=b;
}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);
}
39.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
40.測試用例包括輸入值集和【】值集。
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是()。#include<stdio.h>#defineF(x)2.84+x#definew(y)printf("%d",(int)(y))#defineP(y)w(y)main(){intx=2;P(F(5)*x);}
A.12B.13C.14D.16
42.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序運(yùn)行后,若從鍵盤輸入(從第1列開始)
123<回車>
45678<回車>
則輸出結(jié)果是
A.1267B.1256C.1278D.1245
43.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯Γ搓P(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序
44.有如下程序:main(){intx=23;do{printf("%d",x--);}while(!x);}程序運(yùn)行后的輸出結(jié)果是()。
A.321B.23C.不輸出任何內(nèi)容D.陷入死循環(huán)
45.下列敘述中正確的是A.break語句只能用于switch語句
B.在switch語句中必須使用default
C.break語句必須與switch語句中的case配對使用
D.在switch語句中,不一定使用break語句
46.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示()。
A.模塊之間的調(diào)用關(guān)系B.程序的組成成份C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向
47.有以下程序:structS{intn;inta[20];};voidf(structS*P){inti,j,t;for(i=0;i<P->n-1;i++)for(j=j+1;j<P->n-1;j++)if(p->a[i]>p->a[j]){t=P->a[i];p->a[i]=P->a[j];p->a[j]=t}}main(){inti;structSs{10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s.n;i++)printf("%d",s.a[i]);}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.4C.5D.6
48.有如下的程序:intf(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}如果在主程序中用下述語句調(diào)用上述函數(shù),則輸出結(jié)果為______。printf("%d\n",f("bestone!"));
A.3B.6C.8D.9
49.表達(dá)式'8'-'2'的值是()。
A.整數(shù)6B.字符6C.表達(dá)式不合法D.字符8
50.對關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()
A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算
51.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚
52.在瀏覽WWW時(shí),如果連接到一個(gè)安全的站點(diǎn),應(yīng)當(dāng)以()開頭來書寫統(tǒng)一資源定位器。
A.shttp://B.http:s//C.http://D.https//
53.有以下程序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
54.以下關(guān)于宏的敘述中正確的是()
A.宏名必須用大寫字母表示B.宏替換時(shí)要進(jìn)行語法檢查C.宏替換不占用運(yùn)行時(shí)間D.宏定義中不允許引用已有的宏名
55.對于長度為n的線性表,在最壞的情況下,下列各排序法所對應(yīng)的比較次數(shù)中三確的是
A.冒泡排序?yàn)閚/2B.冒泡排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2
56.以下程序段的while循環(huán)執(zhí)行的次數(shù)是______。intk=0;while(k=1)k++;
A.無限次B.有語法錯,不能執(zhí)行C.一次也不執(zhí)行D.執(zhí)行1次
57.若二維數(shù)組a有m列,且設(shè)a[0][0]位于數(shù)組的第一個(gè)位置上,則計(jì)算任一元素a[i][j]在數(shù)組中的位置的式子為()
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
58.下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()
A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)操作C.數(shù)據(jù)查詢D.數(shù)據(jù)約束
59.若有語句:char*line[5];以下敘述中正確的是()。
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char的指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語句中的.號稱為求地址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
60.與以下定義等價(jià)的是()int*p[4]
A.intp[4]B.int*pC.int*(p[4]).D.int(*p)[4]
四、選擇題(20題)61.以下選項(xiàng)中,不合法的C語言用戶標(biāo)識符是()。A.a-一bB.AaBeC.a_bD.一1
62.
現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。
structnode
{bardata;
structnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指結(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語句是()。
A.q->next=r->next;P>next=r;r->next=q;
B.q->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;P->next=r:
D.q->next=q;P->next=r;q->next=r->next;
63.以下敘述中錯誤的是()。
A.算法正確的程序可以有零個(gè)輸入
B.算法正確的程序最終一定會結(jié)束
C.算法正確的程序可以有零個(gè)輸出
D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果
64.以下選項(xiàng)中正確的語句組是()。
65.(8)數(shù)據(jù)庫系統(tǒng)的核心是()
A.數(shù)據(jù)模型
B.數(shù)據(jù)庫管理系統(tǒng)
C.軟件工具
D.數(shù)據(jù)庫
66.
67.
68.
69.
70.
已知有如下結(jié)構(gòu)體:
structsk
{inta;
floatb;
}data,*p;
若有P=&data,則對data的成員a引用正確的是()。
A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)
71.
72.
73.給出以下定義:
則正確的敘述為()。
A.數(shù)組m和數(shù)組n等價(jià)B.數(shù)組m和數(shù)組n的長度相同C.數(shù)組m的長度小于數(shù)組n的長度D.數(shù)組m的長度大于數(shù)組n的長度
74.在深度為5的滿二叉樹葉中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.32B.31C.16D.15
75.以下函數(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);
}
在下畫線處應(yīng)填入的內(nèi)容是
A.i=pB.a(chǎn)[p]=a[i]
C.p=iD.p=j
76.以下程序段中的變量已正確定義:
程序段的輸出結(jié)果是()。
A.********B.****C.**D.*
77.以下選項(xiàng)錯誤的是
78.
79.下面描述中錯誤的是()。
A.系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)
B.軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過程
C.數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一
D.PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具
80.以下敘述中錯誤的是()。
A.getehar函數(shù)用于從磁盤文件讀入字符
B.gets匿數(shù)用于從終端讀入字符串
C.取ns函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件
五、程序改錯題(1題)81.下列給定程序中,fun()函數(shù)的功能是:求3個(gè)數(shù)的最小公倍數(shù),例如,給變量a、b、c、分別輸入15、11、2,則輸出結(jié)果應(yīng)當(dāng)是330。請修改函數(shù)中的錯誤,得出正確的結(jié)果。注意:不要改動main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將放在字符串?dāng)?shù)組中的M個(gè)字符串(每個(gè)字符串的長度不超過N),按順序合并成一個(gè)新的字符串。例如,若字符串?dāng)?shù)組中的M個(gè)字符串為|“AAAA”,“BBBBBBB”,“CC”|,則合并后的字符串內(nèi)容應(yīng)該是“AAAABBBBBBBCC”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidfun(chara[M][N],char*b){}voidmain(){ charw[M][N]={“AAAA”,“BBBBBBB”,“CC”}; chara[100]={“##################”}; inti; printf(“Thestring:\n”); for(i=0;i<=""p=""> puts(w[i]); printf(“\n”); fun(w,a); printf(“TheAstring:\n”); printf(“%s”,a); printf(“\n\n”);}
參考答案
1.C
2.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。
數(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)A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個(gè)數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項(xiàng)B的說法是正確的。
通常將引入數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個(gè)數(shù)據(jù)庫系統(tǒng)通常由五個(gè)部分組成,包括相關(guān)計(jì)算機(jī)的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關(guān)軟件和人員。
因此,選項(xiàng)C的說法是錯誤的。
因此,本題的正確答案是選項(xiàng)B。
3.B解析:在main函數(shù)中定義了一個(gè)structabc類型的數(shù)組,同時(shí)分別利用{1,2,3}及{4,5,6}對數(shù)組中兩個(gè)元素進(jìn)行初始化。在該結(jié)構(gòu)體,依次對其中的a,b,c三個(gè)變量進(jìn)行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。
4.A
5.D
6.A
7.C
8.C本題考查了兩層for循環(huán)。外層循環(huán)增量i的值作為內(nèi)層循環(huán)執(zhí)行次數(shù)的值使用。
9.CC)【解析】白盒測試方法也稱為結(jié)構(gòu)測試或邏輯測試,主要方法有邏輯覆蓋測試、基本路徑測試等。
10.B
11.B
12.A當(dāng)值相同時(shí)按位異或,則為0,按位或與按位與時(shí)仍不變,負(fù)數(shù)也為非0。
13.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個(gè)選項(xiàng)中C正確。
14.D
15.B對于關(guān)系模式,若其中的每個(gè)屬性都已不能再分為簡單項(xiàng),則它屬于第一范式模式。題目中“班級”關(guān)系的“班級學(xué)生”屬性,還可以進(jìn)行再分,如學(xué)號、姓名、性別、出生日期等,因此不滿足第一范式。本題答案為B選項(xiàng)。
16.C根據(jù)二叉樹的性質(zhì)及定義,一棵深度為k且有2k-1個(gè)結(jié)點(diǎn)的二叉樹為滿二叉樹。滿二叉樹的葉子結(jié)點(diǎn)為最后一層的結(jié)點(diǎn)數(shù),又根據(jù)滿二叉樹的性質(zhì),在滿二叉樹的第i層上至多有2i-1個(gè)結(jié)點(diǎn)。因此深度為5的滿二叉樹的葉子結(jié)點(diǎn)數(shù)為25-1=16個(gè)。
17.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
18.D
19.C本題考查swap函數(shù),它的作用是把x、Y所指的內(nèi)容互換,其他的不變,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,僅僅a與1互換,其他的沒有變。
20.A本題考查數(shù)組和指針,*k指針是指向rn數(shù)組的首地址,所以要使表達(dá)武的值為6,只需要指針指向第m[2],所以答案選擇A。-
21.!feof(fp)!feof(fp)解析:本題中統(tǒng)計(jì)文件中字符個(gè)數(shù)的算法可描述為;首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個(gè)字符,同時(shí)字符的個(gè)數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開了文件“fname.dat”,如果打開成功則把返回的文件型指針賦值給fp,然后通過循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加l。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。
22.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
23.可重用性繼承的優(yōu)點(diǎn):相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
24.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。
25.黑箱法黑箱法
26.a=8b=7
27.x<z‖y<zx<z‖y<z解析:本題考查邏輯運(yùn)算符和邏輯表達(dá)式。x或y中至少有一個(gè)小于z,即x<z或y<z,是“或”的關(guān)系。
28.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個(gè)字符A,執(zhí)行p=s+1后,p指向字符串中的第二個(gè)字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。
29.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
30.261261解析:在控制格式符中“o”代表的是將數(shù)據(jù)按八進(jìn)制數(shù)輸出,十進(jìn)制數(shù)的177代表的八進(jìn)制數(shù)是261。
31.8141
32.k*kk\r\n*k解析:scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由%號和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號分隔開)。而第二個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*k。
33.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個(gè)度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹具有n個(gè)結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹中有n/2個(gè)葉子結(jié)點(diǎn)以及n/2-1個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹中有[n/2]+1個(gè)葉子結(jié)點(diǎn)以及[n/2]個(gè)度為2的結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn)。本題中,完全二叉樹共有700個(gè)結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹中有350個(gè)葉子結(jié)點(diǎn)以及349個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。
34.封裝封裝
35.測試覆蓋率測試覆蓋率解析:白盒測試又稱為結(jié)構(gòu)測試。白盒測試作為對結(jié)構(gòu)的測試,要求對被測程序的各種結(jié)構(gòu)特性進(jìn)行測試,這種情況被稱為覆蓋,故白盒測試又稱為“基于覆蓋的測試”。白盒測試方法重視測試覆蓋率的度量,力求提高覆蓋率,從而找出被測程序的錯誤。
36.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。
37.*(p+5)或p[5]*(p+5)或p[5]
38.b=i+1
39.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
40.輸出輸出解析:測試用例曲測試輸入數(shù)據(jù)(輸入值集)和與之對應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。
41.A
42.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。
43.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
44.B解析:本題中使用do-while循環(huán),每執(zhí)行一次循環(huán)體輸出x的值后將x減1。當(dāng)x=23,執(zhí)行循環(huán)體輸出x為23,X=X-1=23-1=22,判斷循環(huán)條件是否成立,因?yàn)閤=22,!x的值為0,終止循環(huán),因此只輸出23。
45.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項(xiàng)A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時(shí)的分支,也可以不使用default,此時(shí)若所有case均失配則跳出switch,因此選項(xiàng)B不正確。在switch語句中,每個(gè)case的作用就是標(biāo)出一個(gè)執(zhí)行的起點(diǎn),當(dāng)符合某個(gè)case時(shí),程序就從該case所標(biāo)出的起點(diǎn)處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會一直執(zhí)行到switch的最后一條語句,而不是碰到下一個(gè)case就跳出switch。雖然break與case的配對使用會讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項(xiàng)C不正確,應(yīng)該選擇D。
46.D解析:在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭來表示數(shù)據(jù)流。
47.A解析:在主函數(shù)main()中定義了一個(gè)整型變量i和一個(gè)結(jié)構(gòu)體變量s。f()函數(shù)中,定義了一個(gè)結(jié)構(gòu)體指針類型的指針p,外層循環(huán)變量i表示數(shù)組的第i個(gè)元素,內(nèi)層循環(huán)j表示數(shù)組的第i+1個(gè)元素,調(diào)用f()函數(shù),通過指針變量p來引用結(jié)構(gòu)體成員,并把它們進(jìn)行從小到大排序,最后輸出。
48.D解析:函數(shù)f的功能實(shí)際上是統(tǒng)計(jì)字符串s的字符數(shù),“bestone!”共9個(gè)字符,所以選D。
49.A解析:在C語言中,雖然字符都是變?yōu)槠鋵?yīng)的ASCII碼值來參與算術(shù)運(yùn)算的,但字符間的相對位置關(guān)系還是不變的,字符8和字符2的ASCII碼值相差仍是6。
50.AA)【解析】關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。
51.D解析:編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接地說,風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個(gè)說明語句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運(yùn)行效率,但goto語句的使用會破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語句。因此,本題的正確答案是D。
52.C
53.B解析:主函數(shù)中for循環(huán)執(zhí)行兩次,i=1和i=2。調(diào)用函數(shù)f(1),返回值為1,j=1;調(diào)用函數(shù)f(2),計(jì)算表達(dá)式f(n-1)+1的值時(shí)遞歸調(diào)用f(1),返回值為2,j=3。所以B為所選。
54.C
55.D解析:冒泡排序法在最壞的情況下需要比較的次數(shù)為n(n-1)/2,快速排序法在最壞的情況下需要比較的次數(shù)也為n(n-1)/2。
56.A
57.D
58.C通俗地講,數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬和抽象。數(shù)據(jù)模型是把現(xiàn)實(shí)生活中的具體事務(wù)轉(zhuǎn)換成計(jì)算機(jī)能夠處理的數(shù)據(jù)工具。任何一種數(shù)據(jù)庫系統(tǒng)都必須建立在一定的數(shù)據(jù)模型之上。由于現(xiàn)實(shí)世界的復(fù)雜性,不可能直接從現(xiàn)實(shí)世界中建立數(shù)據(jù)模型,所以,人們通常采用如下的處理過程。
現(xiàn)實(shí)世界抽象至信息世界,再轉(zhuǎn)化為機(jī)器世界
把整個(gè)過程劃分成三個(gè)世界和兩個(gè)階段。首先要把現(xiàn)實(shí)世界抽象為信息世界,并建立信息世界中的數(shù)據(jù)模型,即概念模型,然后進(jìn)一步把概念模型轉(zhuǎn)化為可以在計(jì)算機(jī)中實(shí)現(xiàn)的且最終支持?jǐn)?shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型?,F(xiàn)實(shí)世界,簡單地說,就是人們賴以生存的生活環(huán)境,它是具體事物和抽象概念的總和。信息世界也稱為概念世界,現(xiàn)實(shí)世界在人們頭腦中的反映就是信息世界,信息世界不是現(xiàn)實(shí)世界的錄像,必須從具體事務(wù)出發(fā)抽象其概念。當(dāng)信息世界進(jìn)入計(jì)算機(jī)后,就成為了機(jī)器世界。
一般地講,任何一種數(shù)據(jù)模型都是嚴(yán)格定義的概念的集合。這些概念必須能夠精確地描述系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件。因此,數(shù)據(jù)模型通常都是由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三個(gè)要素組成的。因此本題的正確答案選C。
59.A解析:由于運(yùn)算符[]優(yōu)先級比*高,所以line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char的指針變量。
60.C
61.A用戶標(biāo)識符命名規(guī)則為:由數(shù)字、字母或下劃線組成,且首字母不能是數(shù)字.不能和關(guān)鍵字重復(fù),所以A)錯誤.
62.D由題目ee線性鏈表的定義可知,要將q和r所指的結(jié)點(diǎn)交換前后位置,只要使q指向r的后一個(gè)結(jié)點(diǎn),p指向r結(jié)點(diǎn),r指向q結(jié)點(diǎn)即可。而在選項(xiàng)D由,r->next=q,這時(shí)r指向的節(jié)點(diǎn)為q;p->nextr,這時(shí)p指向的節(jié)點(diǎn)為r;q->next=r->next,因?yàn)閞節(jié)點(diǎn)已經(jīng)指向q,所以執(zhí)行這個(gè)語句后q又指向q,所以選項(xiàng)D不正確。
63.C算法的特征:①有窮性。一個(gè)算法(對任何合法的輸入)在執(zhí)行有窮步后能夠結(jié)束,并且在有限的時(shí)間內(nèi)完成。②確定性。算法中的每一步都有確切的含義。③可行性。算法中的操作能夠用已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次來實(shí)現(xiàn)。④輸入:一個(gè)算法有零個(gè)或者多個(gè)輸入,零個(gè)輸入就是算法本身確定了初始條件。⑤輸出:一個(gè)算法有一個(gè)或者多個(gè)輸出,以反映出數(shù)據(jù)加工的結(jié)果。所以c選項(xiàng)錯誤。
64.A字符指針可以用字符串常量賦值,字符數(shù)組不可以,所以答案選擇A)。
65.B數(shù)據(jù)庫管理系統(tǒng)是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,因此數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。
66.B
67.D
68.D
69.A
70.B
\n本題主要考查結(jié)構(gòu)指針:P=&data,訪問結(jié)構(gòu)體的成員。它可以通過結(jié)構(gòu)變量訪問,即data,可以用等價(jià)的指針形式:(*p).a(chǎn)和P->a來訪問結(jié)構(gòu)體變量中的成員。
\n
71.B
72.D
73.D按照m方式聲明的數(shù)組,系統(tǒng)會在數(shù)組尾部自動添加字符’\0’,因此m的長度比n大l。
74.C根據(jù)二叉樹的性質(zhì)及定義,一棵深度為k且有2k-1個(gè)結(jié)點(diǎn)的二叉樹為滿二叉樹。滿二叉樹的葉子結(jié)點(diǎn)為最后一層的結(jié)點(diǎn)數(shù),又根據(jù)滿二叉樹的性質(zhì),在滿二叉樹的第i層上至多有2i-1個(gè)結(jié)點(diǎn)。因此深度為5的滿二叉樹的葉子結(jié)點(diǎn)數(shù)為25-1=16個(gè)。
75.C該題目所要求的是最大數(shù)的位置(下標(biāo)),而不是最大數(shù)的數(shù)值。因此,在進(jìn)行逐個(gè)比較的過程中,需要記錄最大數(shù)的下標(biāo)i。根據(jù)給出的程序可知,該下標(biāo)記錄在變量p中,所以,如果a[i]>a[p]這一關(guān)系成立,應(yīng)該把i的值賦給p,這樣才滿足題目的要求。
76.D本題考察for循環(huán)語句,注意第二個(gè)for語句的后面有一個(gè)分號,即printf函數(shù)不屬于循環(huán)體,無論循環(huán)執(zhí)行多少次,printf(”*”)語句只執(zhí)行一次。因此,本題正確答案為D)。
77.D在選項(xiàng)A中的語句沒有一條是錯誤的。選項(xiàng)B和C中有一個(gè)逗號表達(dá)式,選項(xiàng)B中是x=0,y=x+1;,在選項(xiàng)C中是y=x+1,z=x+y;。所以,B和C中也沒有錯誤。選項(xiàng)D中的最后一條語句是以逗號結(jié)束的,而C語言中不能用逗號作為一個(gè)語句的結(jié)束標(biāo)志,每一條語句最后應(yīng)該是分號,所以,D選項(xiàng)中的程序是錯誤的。
78.B
79.A詳細(xì)設(shè)計(jì)的任務(wù)是為軟件結(jié)構(gòu)圖中而非總體結(jié)構(gòu)圖中的每一個(gè)模塊確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),所以A錯誤。
80.A本題考查的是文件操作。題中“fopen(fn,”w”)”的作用是打開fn所指向的文件,使用文件方式為“寫入”;
“每uts(str,fp)”的作用是將字符str的值輸出到fb所指向的文件中去。在程序中,兩次使用“寫入”的方式打開同一個(gè)文件,在第二次打開時(shí),文件指針指向文件頭,所以此次寫入的數(shù)據(jù)覆蓋了文件原有的數(shù)據(jù),故本題中tl.dat的內(nèi)容為end。故本題答案為A)。
81.(1)錯誤:j=1;
正確:i=0;
(2)錯誤:while(temp!=0&&m!=0&&n!=0)
正確:while(temp!=0||m!=0I{n!=0)
【解析】其中while循環(huán)是判斷能否除盡x、y、z,循環(huán)中“i=i+1;”進(jìn)行了加1操作,i應(yīng)該從1開始進(jìn)行循環(huán),所以i的初始值應(yīng)該是0,這樣第一個(gè)錯誤標(biāo)識下的“i=1;”就改為“i=0;”。
第二個(gè)標(biāo)識下while循環(huán)邏輯關(guān)系應(yīng)該是或的關(guān)系,因?yàn)樽钚」稊?shù)成立的條件是同時(shí)除盡,所以只要不是同時(shí)除盡,循環(huán)就繼續(xù),這樣“while(temp!=0&&m!=0&&n!=0)”應(yīng)該是“while(temp!=0||m!=0||n!=0)”。
82.voidfun(chara[M][N],char*b){ inti,j,k=0; for(i=0;i /*將字符串?dāng)?shù)組中的M個(gè)字符串,按順序存入一個(gè)新的字符串*/ for(j=0;a[i][j]!='V),;j++) b[k++]=a[i][j]; b[k]=‘\0’; /*在字符串最后加上字符串結(jié)束標(biāo)志*/}該題考核的是字符串連接操作。字符串?dāng)?shù)組相當(dāng)于二維字符數(shù)組。字符數(shù)組a是M行N列的二維數(shù)組。通過兩層for循環(huán)遍歷數(shù)組a,將數(shù)組a中的元素保存到數(shù)組b中。在數(shù)組b的最后一個(gè)元素后添加字符串結(jié)束標(biāo)志‘\\0’。</i<p)為()。2022-2023年河南省許昌市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
3.下面程序運(yùn)行后的輸出結(jié)果是______。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}
A.5B.6C.7D.8
4.用數(shù)組r存儲靜態(tài)鏈表,結(jié)點(diǎn)的next域指向后繼,工作指針j指向鏈中結(jié)點(diǎn),使j沿鏈移動的操作為()。
A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next
5.數(shù)字字符“2”的ASCII碼為十進(jìn)制數(shù)50,數(shù)字字符“5”的ASCII碼為十進(jìn)制數(shù)()
A.52B.55C.54D.53
6.
7.若已知一個(gè)棧的進(jìn)棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。
A.IB.n-iC.n-i+1D.不確定
8.有以下程序:#include<stdio.h>main(){intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;for(i=0;i<3;i++)for(j=1;j<=i;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是()。A.1B.3C.4D.0
9.下列方法中,屬于白盒法設(shè)計(jì)測試用例的方法的是()。
A.錯誤推測B.因果圖C.基本路徑測試D.邊界值分析
10.
11.
12.設(shè)有定義的語句:“charc1=92,c2=92;”,則以下表達(dá)式中的值為零的是()。
A.c1^c2B.c1&c2C.~c2D.c1|c2
13.若有以下程序: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
14.已知a,b均被定義為double型,則表達(dá)式:b=1,a=b+5/2的值為()。
A.1B.3C.3.0D.3.5
15.如果定義“班級”關(guān)系如下:班級(班級號,總?cè)霐?shù),所屬學(xué)院,班級學(xué)生)則使它不滿足第一范式的屬性是()。
A.班級號B.班級學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院
16.在深度為5的滿二叉樹葉中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.32B.31C.16D.15
17.在面向?qū)ο蠓椒ㄖ校粋€(gè)對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
18.如果某圖的鄰接矩陣是對角線元素均為零的上三角矩陣,則此圖是_______
A.有向完全圖B.連通圖C.強(qiáng)連通圖D.有向無環(huán)圖
19.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba
20.設(shè)有如下定義語句:intm[]={2,4,6,8,10},*k=m;以下選項(xiàng)中,表達(dá)式的值為6的是()。
A.*(k+2)B.k+2C.*k+2D.*k+=2
二、2.填空題(20題)21.以下程序用來統(tǒng)計(jì)文件中字符個(gè)數(shù)。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{FILE*fp;longnum=OL;
if((fp=fopen("fname.dat","r")==NULL)
{Pirntf("Openerror\n");exit(0);}
while(【】)
{fgetc(fp);num++;}
printf("num=%1d\n",num-1);
fclose(fp);
}
22.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
23.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
24.以下程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%51d\n",k);}
25.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計(jì)測試實(shí)例的方法稱為【】。
26.寫出下列程序的執(zhí)行結(jié)果。swap(p1,p2)int*p1,*p2;{intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b,*p1,*p2;scanf("%d%d",&a,&B);p1=&a;p2=&b;if(a<B)swap(p1,p2);printf("\na=%d,b=%d\n",a,B);}若a=7,b=8,則程序的運(yùn)行結(jié)果為()。
27.設(shè)x、y、z均為int型變量,請寫出描述“x或y中至少有一個(gè)小于z”的表達(dá)式______。
28.以下程序的輸出結(jié)果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
29.買來一張新盤后,在存入文件前,必須進(jìn)行【】處理。
30.以下程序的輸出結(jié)果是【】。
main()
{inta=177;
printf(“%o\n”,A);
}
31.下列程序的運(yùn)行結(jié)果為【】。
main()
{intx=2,y,z;
x*=3+1;
printf("%d,",x++);
x+=y=z=5;
printf("%d,",x);
K=y==Z;
printf{"%d\n",x);
}
32.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補(bǔ)充完整。
scanf("%d",【】);
printf("%d\n",【】);
33.設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則在該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
34.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實(shí)現(xiàn)的。
35.自盒測試方法重視【】的度量。
36.為了便于對照檢查,測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。
37.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
38.下面程序的功能是:計(jì)算1~10之間奇數(shù)和及偶數(shù)之和。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=O;
for(i=O;i<=10;i+=2)
{a+=i;
【】;
c+=b;
}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);
}
39.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
40.測試用例包括輸入值集和【】值集。
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是()。#include<stdio.h>#defineF(x)2.84+x#definew(y)printf("%d",(int)(y))#defineP(y)w(y)main(){intx=2;P(F(5)*x);}
A.12B.13C.14D.16
42.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序運(yùn)行后,若從鍵盤輸入(從第1列開始)
123<回車>
45678<回車>
則輸出結(jié)果是
A.1267B.1256C.1278D.1245
43.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序
44.有如下程序:main(){intx=23;do{printf("%d",x--);}while(!x);}程序運(yùn)行后的輸出結(jié)果是()。
A.321B.23C.不輸出任何內(nèi)容D.陷入死循環(huán)
45.下列敘述中正確的是A.break語句只能用于switch語句
B.在switch語句中必須使用default
C.break語句必須與switch語句中的case配對使用
D.在switch語句中,不一定使用break語句
46.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示()。
A.模塊之間的調(diào)用關(guān)系B.程序的組成成份C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向
47.有以下程序:structS{intn;inta[20];};voidf(structS*P){inti,j,t;for(i=0;i<P->n-1;i++)for(j=j+1;j<P->n-1;j++)if(p->a[i]>p->a[j]){t=P->a[i];p->a[i]=P->a[j];p->a[j]=t}}main(){inti;structSs{10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s.n;i++)printf("%d",s.a[i]);}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.4C.5D.6
48.有如下的程序:intf(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}如果在主程序中用下述語句調(diào)用上述函數(shù),則輸出結(jié)果為______。printf("%d\n",f("bestone!"));
A.3B.6C.8D.9
49.表達(dá)式'8'-'2'的值是()。
A.整數(shù)6B.字符6C.表達(dá)式不合法D.字符8
50.對關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()
A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算
51.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚
52.在瀏覽WWW時(shí),如果連接到一個(gè)安全的站點(diǎn),應(yīng)當(dāng)以()開頭來書寫統(tǒng)一資源定位器。
A.shttp://B.http:s//C.http://D.https//
53.有以下程序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
54.以下關(guān)于宏的敘述中正確的是()
A.宏名必須用大寫字母表示B.宏替換時(shí)要進(jìn)行語法檢查C.宏替換不占用運(yùn)行時(shí)間D.宏定義中不允許引用已有的宏名
55.對于長度為n的線性表,在最壞的情況下,下列各排序法所對應(yīng)的比較次數(shù)中三確的是
A.冒泡排序?yàn)閚/2B.冒泡排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2
56.以下程序段的while循環(huán)執(zhí)行的次數(shù)是______。intk=0;while(k=1)k++;
A.無限次B.有語法錯,不能執(zhí)行C.一次也不執(zhí)行D.執(zhí)行1次
57.若二維數(shù)組a有m列,且設(shè)a[0][0]位于數(shù)組的第一個(gè)位置上,則計(jì)算任一元素a[i][j]在數(shù)組中的位置的式子為()
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
58.下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()
A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)操作C.數(shù)據(jù)查詢D.數(shù)據(jù)約束
59.若有語句:char*line[5];以下敘述中正確的是()。
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char的指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語句中的.號稱為求地址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
60.與以下定義等價(jià)的是()int*p[4]
A.intp[4]B.int*pC.int*(p[4]).D.int(*p)[4]
四、選擇題(20題)61.以下選項(xiàng)中,不合法的C語言用戶標(biāo)識符是()。A.a-一bB.AaBeC.a_bD.一1
62.
現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。
structnode
{bardata;
structnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指結(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語句是()。
A.q->next=r->next;P>next=r;r->next=q;
B.q->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;P->next=r:
D.q->next=q;P->next=r;q->next=r->next;
63.以下敘述中錯誤的是()。
A.算法正確的程序可以有零個(gè)輸入
B.算法正確的程序最終一定會結(jié)束
C.算法正確的程序可以有零個(gè)輸出
D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果
64.以下選項(xiàng)中正確的語句組是()。
65.(8)數(shù)據(jù)庫系統(tǒng)的核心是()
A.數(shù)據(jù)模型
B.數(shù)據(jù)庫管理系統(tǒng)
C.軟件工具
D.數(shù)據(jù)庫
66.
67.
68.
69.
70.
已知有如下結(jié)構(gòu)體:
structsk
{inta;
floatb;
}data,*p;
若有P=&data,則對data的成員a引用正確的是()。
A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)
71.
72.
73.給出以下定義:
則正確的敘述為()。
A.數(shù)組m和數(shù)組n等價(jià)B.數(shù)組m和數(shù)組n的長度相同C.數(shù)組m的長度小于數(shù)組n的長度D.數(shù)組m的長度大于數(shù)組n的長度
74.在深度為5的滿二叉樹葉中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.32B.31C.16D.15
75.以下函數(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);
}
在下畫線處應(yīng)填入的內(nèi)容是
A.i=pB.a(chǎn)[p]=a[i]
C.p=iD.p=j
76.以下程序段中的變量已正確定義:
程序段的輸出結(jié)果是()。
A.********B.****C.**D.*
77.以下選項(xiàng)錯誤的是
78.
79.下面描述中錯誤的是()。
A.系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)
B.軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過程
C.數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一
D.PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具
80.以下敘述中錯誤的是()。
A.getehar函數(shù)用于從磁盤文件讀入字符
B.gets匿數(shù)用于從終端讀入字符串
C.取ns函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件
五、程序改錯題(1題)81.下列給定程序中,fun()函數(shù)的功能是:求3個(gè)數(shù)的最小公倍數(shù),例如,給變量a、b、c、分別輸入15、11、2,則輸出結(jié)果應(yīng)當(dāng)是330。請修改函數(shù)中的錯誤,得出正確的結(jié)果。注意:不要改動main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將放在字符串?dāng)?shù)組中的M個(gè)字符串(每個(gè)字符串的長度不超過N),按順序合并成一個(gè)新的字符串。例如,若字符串?dāng)?shù)組中的M個(gè)字符串為|“AAAA”,“BBBBBBB”,“CC”|,則合并后的字符串內(nèi)容應(yīng)該是“AAAABBBBBBBCC”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidfun(chara[M][N],char*b){}voidmain(){ charw[M][N]={“AAAA”,“BBBBBBB”,“CC”}; chara[100]={“##################”}; inti; printf(“Thestring:\n”); for(i=0;i<=""p=""> puts(w[i]); printf(“\n”); fun(w,a); printf(“TheAstring:\n”); printf(“%s”,a); printf(“\n\n”);}
參考答案
1.C
2.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。
數(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)A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個(gè)數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項(xiàng)B的說法是正確的。
通常將引入數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個(gè)數(shù)據(jù)庫系統(tǒng)通常由五個(gè)部分組成,包括相關(guān)計(jì)算機(jī)的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關(guān)軟件和人員。
因此,選項(xiàng)C的說法是錯誤的。
因此,本題的正確答案是選項(xiàng)B。
3.B解析:在main函數(shù)中定義了一個(gè)structabc類型的數(shù)組,同時(shí)分別利用{1,2,3}及{4,5,6}對數(shù)組中兩個(gè)元素進(jìn)行初始化。在該結(jié)構(gòu)體,依次對其中的a,b,c三個(gè)變量進(jìn)行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。
4.A
5.D
6.A
7.C
8.C本題考查了兩層for循環(huán)。外層循環(huán)增量i的值作為內(nèi)層循環(huán)執(zhí)行次數(shù)的值使用。
9.CC)【解析】白盒測試方法也稱為結(jié)構(gòu)測試或邏輯測試,主要方法有邏輯覆蓋測試、基本路徑測試等。
10.B
11.B
12.A當(dāng)值相同時(shí)按位異或,則為0,按位或與按位與時(shí)仍不變,負(fù)數(shù)也為非0。
13.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個(gè)選項(xiàng)中C正確。
14.D
15.B對于關(guān)系模式,若其中的每個(gè)屬性都已不能再分為簡單項(xiàng),則它屬于第一范式模式。題目中“班級”關(guān)系的“班級學(xué)生”屬性,還可以進(jìn)行再分,如學(xué)號、姓名、性別、出生日期等,因此不滿足第一范式。本題答案為B選項(xiàng)。
16.C根據(jù)二叉樹的性質(zhì)及定義,一棵深度為k且有2k-1個(gè)結(jié)點(diǎn)的二叉樹為滿二叉樹。滿二叉樹的葉子結(jié)點(diǎn)為最后一層的結(jié)點(diǎn)數(shù),又根據(jù)滿二叉樹的性質(zhì),在滿二叉樹的第i層上至多有2i-1個(gè)結(jié)點(diǎn)。因此深度為5的滿二叉樹的葉子結(jié)點(diǎn)數(shù)為25-1=16個(gè)。
17.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
18.D
19.C本題考查swap函數(shù),它的作用是把x、Y所指的內(nèi)容互換,其他的不變,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,僅僅a與1互換,其他的沒有變。
20.A本題考查數(shù)組和指針,*k指針是指向rn數(shù)組的首地址,所以要使表達(dá)武的值為6,只需要指針指向第m[2],所以答案選擇A。-
21.!feof(fp)!feof(fp)解析:本題中統(tǒng)計(jì)文件中字符個(gè)數(shù)的算法可描述為;首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個(gè)字符,同時(shí)字符的個(gè)數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開了文件“fname.dat”,如果打開成功則把返回的文件型指針賦值給fp,然后通過循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加l。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。
22.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
23.可重用性繼承的優(yōu)點(diǎn):相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
24.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。
25.黑箱法黑箱法
26.a=8b=7
27.x<z‖y<zx<z‖y<z解析:本題考查邏輯運(yùn)算符和邏輯表達(dá)式。x或y中至少有一個(gè)小于z,即x<z或y<z,是“或”的關(guān)系。
28.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個(gè)字符A,執(zhí)行p=s+1后,p指向字符串中的第二個(gè)字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。
29.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
30.261261解析:在控制格式符中“o”代表的是將數(shù)據(jù)按八進(jìn)制數(shù)輸出,十進(jìn)制數(shù)的177代表的八進(jìn)制數(shù)是261。
31.8141
32.k*kk\r\n*k解析:scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由%號和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號分隔開)。而第二個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*k。
33.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個(gè)度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹具有n個(gè)結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹中有n/2個(gè)葉子結(jié)點(diǎn)以及n/2-1個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹中有[n/2]+1個(gè)葉子結(jié)點(diǎn)以及[n/2]個(gè)度為2的結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn)。本題中,完全二叉樹共有700個(gè)結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹中有350個(gè)葉子結(jié)點(diǎn)以及349個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。
34.封裝封裝
35.測試覆蓋率測試覆蓋率解析:白盒測試又稱為結(jié)構(gòu)測試。白盒測試作為對結(jié)構(gòu)的測試,要求對被測程序的各種結(jié)構(gòu)特性進(jìn)行測試,這種情況被稱為覆蓋,故白盒測試又稱為“基于覆蓋的測試”。白盒測試方法重視測試覆蓋率的度量,力求提高覆蓋率,從而找出被測程序的錯誤。
36.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。
37.*(p+5)或p[5]*(p+5)或p[5]
38.b=i+1
39.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
40.輸出輸出解析:測試用例曲測試輸入數(shù)據(jù)(輸入值集)和與之對應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。
41.A
42.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。
43.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
44.B解析:本題中使用do-while循環(huán),每執(zhí)行一次循環(huán)體輸出x的值后將x減1。當(dāng)x=23,執(zhí)行循環(huán)體輸出x為23,X=X-1=23-1=22,判斷循環(huán)條件是否成立,因?yàn)閤=22,!x的值為0,終止循環(huán),因此只輸出23。
45.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項(xiàng)A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時(shí)的分支,也可以不使用default,此時(shí)若所有case均失配則跳出switch,因此選項(xiàng)B不正確。在switch語句中,每個(gè)case的作用就是標(biāo)出一個(gè)執(zhí)行的起點(diǎn),當(dāng)符合某個(gè)case時(shí),程序就從該case所標(biāo)出的起點(diǎn)處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會一直執(zhí)行到switch的最后一條語句,而不是碰到下一個(gè)case就跳出switch。雖然break與case的配對使用會讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項(xiàng)C不正確,應(yīng)該選擇D。
46.D解析:在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭來表示數(shù)據(jù)流。
47.A解析:在主函數(shù)main()中定義了一個(gè)整型變量i和一個(gè)結(jié)構(gòu)體變量s。f()函數(shù)中,定義了一個(gè)結(jié)構(gòu)體指針類型的指針p,外層循環(huán)變量i表示數(shù)組的第i個(gè)元素,內(nèi)層循環(huán)j表示數(shù)組的第i+1個(gè)元素,調(diào)用f()函數(shù),通過指針變量p來引用結(jié)構(gòu)體成員,并把它們進(jìn)行從小到大排序,最后輸出。
48.D解析:函數(shù)f的功能實(shí)際上是統(tǒng)計(jì)字符串s的字符數(shù),“bestone!”共9個(gè)字符,所以選D。
49.A解析:在C語言中,雖然字符都是變?yōu)槠鋵?yīng)的ASCII碼值來參與算術(shù)運(yùn)算的,但字符間的相對位置關(guān)系還是不變的,字符8和字符2的ASCII碼值相差仍是6。
50.AA)【解析】關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。
51.D解析:編程風(fē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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東環(huán)境保護(hù)工程職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 動機(jī)與職業(yè)發(fā)展-深度研究
- 數(shù)學(xué)合作在教育領(lǐng)域的應(yīng)用研究-深度研究
- 2025年山西水利職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 間斷有限元方法的保結(jié)構(gòu)格式研究
- ??谑懈咧杏⒄Z教師對基于大觀念的英語單元整體教學(xué)的認(rèn)知與實(shí)踐調(diào)查研究
- 園建勞務(wù)施工方案
- 2025年寧夏職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 植草袋施工方案
- 二零二五版酒吧場地租賃及市場營銷支持合同3篇
- 國家中醫(yī)藥管理局發(fā)布的406種中醫(yī)優(yōu)勢病種診療方案和臨床路徑目錄
- 2024年全國甲卷高考化學(xué)試卷(真題+答案)
- 汽車修理廠管理方案
- 人教版小學(xué)數(shù)學(xué)一年級上冊小學(xué)生口算天天練
- (正式版)JBT 5300-2024 工業(yè)用閥門材料 選用指南
- 三年級數(shù)學(xué)添括號去括號加減簡便計(jì)算練習(xí)400道及答案
- 蘇教版五年級上冊數(shù)學(xué)簡便計(jì)算300題及答案
- 澳洲牛肉行業(yè)分析
- 老客戶的開發(fā)與技巧課件
- 計(jì)算機(jī)江蘇對口單招文化綜合理論試卷
- 成人學(xué)士學(xué)位英語單詞(史上全面)
評論
0/150
提交評論