版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年安徽省宣城市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運行后的輸出結(jié)果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
2.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.45B.20C.25D.36
3.對于靜態(tài)表的順序查找法,若在表頭設(shè)置監(jiān)視哨,則正確的查找方式為()A.從第0個元素往后查找該數(shù)據(jù)元素
B.從第1個元素往后查找該數(shù)據(jù)元素
C.從第n個元素往開始前查找該數(shù)據(jù)元素
D.與查找順序無關(guān)
4.有以下程序:#include<stdi0.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;)printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。A.9,18B.8,11C.7,11D.10,14
5.下列不屬于軟件工程的3個要素的是
A.工具B.過程C.方法D.環(huán)境
6.鏈表不具有的特點是()。A.A.不必事先估計存儲空間
B.可隨機(jī)訪問任意元素
C.插入、刪除不需要移動元素
D.所需空間與線性表長度成正比
7.有如下形式的函數(shù):intfun(inta[4][5],int*p[10],intn){…}調(diào)用函數(shù)之前需要對函數(shù)進(jìn)行說明,即所謂的函數(shù)向前引用說明,以下對fun函數(shù)說明正確的是()。A.intfun(intb[][5],int*r[],intm);
B.intfun(inta[4][],int*p[10],intn);
C.intfun(inta[][],int*p[],intn);
D.intfun(inta[],int*p[],intn);
8.有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",'m',85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",'f',95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運行結(jié)果是()。A.A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
9.
10.已知有結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有p=&data,則對data的成員a的正確引用是()。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.st是結(jié)構(gòu)體類型名
C.x、y、z都是結(jié)構(gòu)體成員名
D.structstr是結(jié)構(gòu)體類型名
11.若以下變量均是整型,且num=sum=7;則執(zhí)行表達(dá)式sum=num++,sum++,++num后sum的值為()。
A.7B.8C.9D.10
12.以下敘述正確的是()。
A.“charc1,*c2,*c3[10];”是合法的變量定義語句
B.數(shù)組說明符的方括號中不能使用表達(dá)式
C.數(shù)組元素下標(biāo)可以是非整數(shù)
D.若有定義“chararray[4];”,則語句“printf(“%c”,array[“3”]);”是合法的
13.已知數(shù)據(jù)表A中每個元素距其最終位置不遠(yuǎn),為節(jié)省時間,應(yīng)該采用的算法是()
A.直接選擇排序B.堆排序C.快速排序D.直接插入排序
14.
15.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
16.在下面棧的基本運算中,不是加工型運算的是______。
A.初始化B.進(jìn)棧C.退棧D.判???/p>
17.
18.以下對結(jié)構(gòu)體類型變量的定義中,不正確的是()。
A.typedefstruetaa{intn;floatm;}AA;AAtdl;
B.#defineAAstructaaAA{intn;floatm;}tdl;
C.struct{intn;floatm;}aa;structaatdl;
D.struct{intn;floatm;}tdl;
19.一個有8個頂點的有向圖,所有頂點的入度出度之和與所有頂點的出度之和的差是()
A.16B.4C.0D.2
20.有以下程序:
#include<stdio.h>
main()
{ints=0.n;
for(n=0;n<3;n++)
{switch(s)
{case0;
case1:s+=1;
case2:s+=2;break;
case3:S+=3;
default:s+=4;
}
printf("%d,"s);
}
}
程序運行后的輸出結(jié)果是()。
A.1,2,4,
B.1,3,6,
C.3,10,14,
D.3,6,10,
二、2.填空題(20題)21.若a是血型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。
22.衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標(biāo)準(zhǔn),其中()是度量一個模塊功能強(qiáng)度的一個相對指標(biāo)。
23.設(shè)y為int型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
24.有以下程序:
main()
{intnum[4][4]={{1,2,3,4),{5,6,7,8),{9,10,11,12),{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<=i;j++)printf("%4c",'');
for(j=______;j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式輸出數(shù)組右上半三角:
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是【】。
25.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。
26.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請?zhí)羁铡?/p>
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
27.下面程序的運行結(jié)果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
28.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。
charch='B';
printf("%c%d\n",ch,ch);
29.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
30.數(shù)據(jù)的物理結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的【】。
31.以下程序的功能是將寧符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf4568h,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
32.關(guān)系代數(shù)是關(guān)系操作語言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎(chǔ),它的運算對象和運算結(jié)果均為()。
33.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
34.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%f",PI);
35.以下程序運行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
36.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。
37.執(zhí)行下列語句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
38.為了建立如圖所示的存儲結(jié)構(gòu)(即每個結(jié)點含兩個域,data是數(shù)據(jù)域,next是指向結(jié)點的指針域)。請?zhí)羁铡?/p>
structlink{chardata;【】;}node;
39.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”語句的輸出結(jié)果是()。
40.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
三、1.選擇題(20題)41.以下能正確定義整型變量a,b和c,并為其賦初值1的語句是______。
A.inta=b=c=1;B.inta,b,c=1;C.a=b=c=1;D.inta=1,b=1,c=1;
42.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
43.函數(shù)fun的返回值是fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;}
A.字符串a(chǎn)的長度B.字符串b的長度C.字符串a(chǎn)和b的長度之差D.字符串a(chǎn)和b的長度之和
44.計算機(jī)網(wǎng)絡(luò)最突出的優(yōu)點是()
A.運算速度快B.存儲容量大C.共享資源D.精度高
45.為了使模塊盡可能獨立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
46.有以下程序
#include<stdlib.h>
structNODE
{intnum;structNODE*next;}
main()
{structNODE*P,*q,*r;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(struetNODE));
r=(structNODE*)malloc(sizeof(structNODE)):
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf("%d\n",p->num+q->next->num):
}
程序運行后的輸出結(jié)果是()
A.10B.20C.30D.40
47.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
48.設(shè)變量x和y均已正確定義并賦值。下列if語句中,在編譯時將產(chǎn)生錯誤信息的是
A.ifx++);
B.it(x>y&&y!=0);
C.if(x>0)x--
D.if(y<0){;}elsey++;elsex++;
49.以下有4組用戶標(biāo)識符,其中合法的—組是______。
A.FOR-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
50.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運行后的輸出結(jié)果是______。
A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5
51.有以下程序:voidfun(intk){staticinta[5];inti;for(i=0;i<5;i++){a[i]+=i+k,printf("%d",a[i]);}printf("\n");}main(){fun(1);fun(2);}程序的輸出結(jié)果是()
A.12345357911
B.隨機(jī)數(shù)
C.1234523456
D.12345246810
52.假定w,x,y,z和m均為int型變量,有如下程序段:w=1;x=2,y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m(m<2)?m:2;則該程序段執(zhí)行后,m的值為()
A.4B.3C.2D.1
53.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()
A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
54.下面程序的輸出結(jié)果是()。#include"stdio.h"fun(xintx{inty=0;staticintz=5;z=x++,y++;return(Z);}main(){inta=4,i,j;for(i=0;i<2;i++)j=fun(a++);printf("%d",j);}
A.0B.3C.4D.5
55.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0,i<4;i++)prntf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
56.一個C程序可以包含任意多個不同名的函數(shù),但有且僅有一個______。
A.過程B.函數(shù)C.主函數(shù)D.子程序
57.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
58.下列合法的聲明語句是()。
A.int_abc=50;
B.doubleint=3+5e2.5;
C.longdo=1L:
D.float3_asd=3e-3;
59.使用白盒測試法時,確定測試數(shù)據(jù)應(yīng)該根據(jù)()和指定的覆蓋標(biāo)準(zhǔn)。
A.程序的內(nèi)部邏輯B.程序的復(fù)雜結(jié)構(gòu)C.使用說明書D.程序的功能
60.若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
四、選擇題(20題)61.當(dāng)執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤
62.有以下程序:
程序的運行結(jié)果是()。
A.0B.1C.2D.3
63.下列條件語句中,輸出結(jié)果與其他語句不同的是()。
A.if(a)printf("%dn",x);elseprint[("%d\n",y)
B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)
C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)
D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)
64.下列語句中,顯示沒有下畫線的超鏈接的語句是()。
A.a{text—decoration:none}
B.a{text—decoration:nounderline}
C.a{underline:none}
D.a{decoration:nounderline}
65.若有定義語句:inta[2][3],*p[3];,則以下語句中正確的是()。
A.p=a;B.p[0]=a;C.p[o]=&a[1][2];D.p[1]=&a;
66.下列選項中屬于結(jié)構(gòu)化程序設(shè)計原則的是()。
A.可封裝
B.多態(tài)性
C.自下而上
D.逐步求精
67.有以下程序
#include<stdio.h>
intfun(int(*s)[4],intn,intk)
{intm,i;
m=s[0][k];
for(i=l;i<n;i++)
if(s[i][k]>m)m=s[i][k];
returnm;
}
main()
{inta[4][4]={{1,2,3,4},{11,12,13,14},{2l,22,23,24},{31,32,33,34}};
printf("%d\n",fun(a,4,0));
}
程序的運行結(jié)果是
A.4B.34
C.31D.32
68.
69.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。
A.順序結(jié)構(gòu)B.選擇(分支)結(jié)構(gòu)C.GOT0跳轉(zhuǎn)D.重復(fù)(循環(huán))結(jié)構(gòu)
70.
若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。
cb=b;
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);
A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
71.有如下程序段
structabc
{inta,b,c,s;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序運行后輸出的結(jié)果是
A.5B.6
C.7D.8
72.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量
C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的
D.算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)
73.以下敘述中錯誤的是()。
A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型
B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員
D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
74.
75.有以下程序:
#include<stido.h>
main()
{charc1=′1′,c2=′2′;
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
當(dāng)運行時輸入:a<回車>后,以下敘述正確的是()。
A)變量c1被賦予字符a,c2被賦予回車符
B)程序?qū)⒌却脩糨斎氲?個字符
C)變量c1被賦予字符a,c2中仍是原有字符2
D)變量c1被賦予字符a,c2中將無確定值
76.
77.下列關(guān)于二叉樹的敘述中,正確的是()。
A.葉子結(jié)點總是比度為2的結(jié)點少一個
B.葉子結(jié)點總是比度為2的結(jié)點多一個
C.葉子結(jié)點數(shù)是度為2的結(jié)點數(shù)的兩倍
D.度為2的結(jié)點數(shù)是度為1的結(jié)點數(shù)的兩倍
78.有以下程序
main()
{charstr[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)
puts(ps);
}
程序的運行結(jié)果是
A.yzB.zC.zD.x
xyzyzyzxy
xyzxyz
79.
以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語言中,預(yù)處理命令行都以“#”開頭
C.每個C程序必須在開頭包含預(yù)處理命令行:#include<stdio.h>
D.C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能
80.有以下程序段程序的輸出結(jié)果是()。
A.a=10b=50c=10
B.a=10b=50c=30
C.a=10b=30c=lO
D.a=50b=30c=50
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計算正整數(shù)m
各位上數(shù)字的平方和。例如,輸入498,則輸出應(yīng)該是161。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}
六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc(),它的功能是:比較2個字符串的長度(不得調(diào)用C語言中求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若2個字符串長度相等,則返回第1個字符串。例如,若輸入jiangxi<;Enter>;beijing<;Enter>;則函數(shù)返回jiangxi。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.Asizeof是運算符,計算數(shù)組、指針、類型、對象、函數(shù)等所占的字節(jié)大小。strlen(*char)是函數(shù),參數(shù)必須是字符型指針(char*)。該函數(shù)的功能是:返回字符串的長度,不包括字符串結(jié)束標(biāo)識?!皊izeof(a)”是求數(shù)組a所占空間的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就結(jié)束,“strlen(a)”=4。“strier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小?!皊trlen(c)”是字符串的長度,“sizeof(c)”是數(shù)組的長度。因此,輸出結(jié)果是4,5,2,4,1,3,。故本題答案為A選項。
2.C統(tǒng)計1~9九個數(shù)中的奇數(shù)和,此題重點考察指向數(shù)組的指針。c語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此*(t+i)代表數(shù)組的第i+1個元素。程序運行的結(jié)果是l+3+5+7+9=25。1
3.C
4.D第一次執(zhí)行循環(huán)前,a=1,滿足a<8,執(zhí)行循環(huán)后,b=3,a=3。執(zhí)行完a++操作后,a=4。由于a<8,執(zhí)行第二次循環(huán)后,b=7,a=6,執(zhí)行完a++操作后,a=7。由于a<8,執(zhí)行第三次循環(huán)后,b=14,a=9,執(zhí)行完a++操作后a=10。此時不滿足a<8,跳出循環(huán)。
5.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
6.B鏈表采用的是鏈?zhǔn)酱鎯Y(jié)構(gòu),它的結(jié)點空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,插入、刪除不需要移動數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯Y(jié)構(gòu)也有不足之處:每個結(jié)點中的指針域需額外占用存儲空間,它是一種非隨機(jī)存儲結(jié)構(gòu)。
7.A題干中函數(shù)的定義指出了函數(shù)名為fun,返回值的數(shù)據(jù)類型為int。函數(shù)包含3個參數(shù),第1個參數(shù)是整型的二維數(shù)組,第2個參數(shù)是整型數(shù)組,第3個參數(shù)是整型變量。在定義二維數(shù)組時,必須指定第二維的長度,所以選項B、C、D錯誤,選項A正確。本題答案為A選項。
8.Cf函數(shù)的功能是對形參a的各個成員用結(jié)構(gòu)體變量b的各個成員進(jìn)行賦值后,然后返回變量a。
9.B
10.B解析:本題主要考查結(jié)構(gòu)類型的定義:struct是結(jié)構(gòu)體類型的關(guān)鍵字;structstr是結(jié)構(gòu)體類型名;x、y、z都是結(jié)構(gòu)體成員名;st是結(jié)構(gòu)變量名。
11.A
12.AC語言規(guī)定定義數(shù)組時,數(shù)組的長度必須是整型常量,數(shù)組說明符的方括號中表達(dá)式只要是常量即合法,因此選項B錯誤。C語言規(guī)定,數(shù)組元素下標(biāo)必須是非負(fù)整數(shù),因此選項C錯誤。選項D中,“chararray[4]”數(shù)組的長度為4,“army[“3”]”中“3”是常量字符串,與C語言規(guī)定數(shù)組的下標(biāo)必須是非負(fù)整數(shù)不符。故本題答案為A選項。
13.D
14.B
15.A解析:數(shù)據(jù)庫是一個通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨立性,而且能并發(fā)地為多個應(yīng)用服務(wù),同時具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結(jié)構(gòu)化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對數(shù)據(jù)的存取方式,選項C錯誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點,選項D錯誤。本題正確答案是A。
16.D
17.A
18.C解析:定義結(jié)構(gòu)體類型的變量有如下幾種方法:
①定義結(jié)構(gòu)體類型的同時,定義結(jié)構(gòu)體類型的變量,如:
stractaa
{…}tdl;
選項B)中將宏名AA用宏體structaa替換后,與該定義形式一樣,因此是正確的。在這一定義形式中,結(jié)構(gòu)體類型名aa是可以省略的,因此,D)項也是正確的。
②先定義結(jié)構(gòu)體類型,然后再定義結(jié)構(gòu)體類型的變量,形式如下:
structaa
{…};
strnctaatdl;
這種定義形式也可演變?yōu)椋合扔妙愋投x語句typedef將該結(jié)構(gòu)體類型定義成一個類型名AA,然后直接用該類型名AA定義一個結(jié)構(gòu)體變量(這時不再需要使用關(guān)鍵字struct)。因此選項A)正確。
19.C
20.C\n本題考查switch…ease語句,在本題的程序中,只有在case2:s=s+2;break;,才有break語句,所以當(dāng)s=0時會執(zhí)行s=s+1;s=s+2;,所以s=3,當(dāng)s=3時,會執(zhí)行s=s十3;s=s+4;,所以s=10,依此類推,答案選擇C。
\n
21.1212解析:本題考查逗號表達(dá)式的運算規(guī)則。逗號表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個表達(dá)式的結(jié)果取最后一個子表達(dá)式的值。本題中首先計算逗號表達(dá)式中的第1個表達(dá)式a=2*3=6,然后計算第2個表達(dá)式a*2,這時整個表達(dá)式的值為12,但要注意,因為第2個表達(dá)式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達(dá)式a+6=12,所以整個表達(dá)式最后的值為12。
22.內(nèi)聚性內(nèi)聚性解析:模塊的獨立程度是評價設(shè)計好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標(biāo)準(zhǔn)。內(nèi)聚性是度量一個模塊功能強(qiáng)度的一個相對指標(biāo),耦合性則用來度量模塊之間的相互聯(lián)系程度。
23.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。
24.ii解析:上三角的情況是對數(shù)組a[i][j],j≥j的時候,因此,在j≥i時應(yīng)輸出所需要的元素,故橫線上應(yīng)填i。
25.參照完整性參照完整性
26.ii解析:外循環(huán)是遞減的,方陣中的每個元素為(j-1)*4+i,因此空格處填i。
27.x=11x=11解析:在對無符號數(shù)的右移是高位補(bǔ)0。
28.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標(biāo)準(zhǔn)輸出設(shè)備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進(jìn)制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計算機(jī)中B的十進(jìn)制整數(shù)格式是66。所以,輸出為B66。
29.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標(biāo)識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
30.內(nèi)模式或物理模式或存儲模式內(nèi)模式或物理模式或存儲模式解析:一個數(shù)據(jù)庫只有一個內(nèi)模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)庫內(nèi)部的表示方法。例如,記錄的存儲方式是順序存儲、索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲,是否加密等。
31.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>=\'0\'&&s[i]<=\'9\'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<=\'9\'&&s[i]>=\'0\'或\'9\'>=s[i]&&\'0\'<=s[i]或\'0\'<=s[i]&&\'9\'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:本題中,chars[80],d[80];定義了兩個字符型數(shù)組,可以放入80個字符。gets函數(shù)是C語言提供的一個專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個字符是否為數(shù)字字符,因為字符數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,所以只需比較相應(yīng)的ASCII碼值是否在48(\'0\'的ASCII代碼)與57(\'9\'的ASCII代碼)之間,或者直接與\'0\',\'9\'進(jìn)行比較,如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進(jìn)行下一字符的比較,直至s結(jié)束(即\'\\0\'的出現(xiàn))。將'\\0'字符作為字符串d結(jié)束標(biāo)志,最后調(diào)用puts函數(shù)輸出d。所以在空格處應(yīng)填入比較語句s[i]>=\'0\'&&s[i]<=\'9\'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<=\'9\'&&s[i]>=\'0\'或9\'>>=s[i]&&\'0\'<=s[i]或\'0\'<=s[i]&&\'9\'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]。
32.關(guān)系關(guān)系
33.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
34.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進(jìn)行替換的。
35.30253025解析:本題考核的知識點是變量的存儲屬性和算術(shù)運算的應(yīng)用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲空間在程序的整個運行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進(jìn)行的,auto是自動變量的存儲類別標(biāo)識符,如果省略auto,系統(tǒng)隱含認(rèn)為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術(shù)運算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個ptine('%d',a)中a=a+b=10+20=30,第二個printf('%d',a)中a=a+c=5+20=25,即輸出3025。
36.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設(shè)計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設(shè)計測試實例時,測試人員將程序看成一個“黑盒”,即不關(guān)心程序內(nèi)部是如何實現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設(shè)計的測試用例完全是根據(jù)程序的功能說明來設(shè)計的。
37.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內(nèi)容,即100,所以x=100+50=150。
38.structlink*next
39.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\'\'是轉(zhuǎn)義字符,代表雙引號:\'\\023\'也只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個符;\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。題中語句中的字符串有5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。
40.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
41.D解析:選項A中,變量b、c未定義;選項B中,a、b未賦值;選項C中a、b、c均未定義。
42.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char.p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p11)元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=e*10+p[i][j]-‘0’;的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當(dāng)前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串結(jié)束標(biāo)志,\\0,就繼續(xù)循環(huán),語句j+=2;是使下標(biāo)j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是‘6’和‘3’,然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是‘8’和‘5’,同時經(jīng)過轉(zhuǎn)換和相加運算后,結(jié)果s中的值應(yīng)該是6385,所以,正確答案是C)。
43.D解析:第一個while循環(huán)是字符串a(chǎn)的長度,第二個while是將字符串b接在a的后面,num在a串長度上繼續(xù)累計,為兩個字符串長度之和。
44.C
45.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。
46.D
47.B解析:對二叉樹的前序遍歷是指:先訪問根結(jié)點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左,右子樹。
48.C解析:選項A)和選項B)在條件判斷語句的后面是空語句,什么都不做;在選項D)中,if后面是一個復(fù)合空語句;而在選項C)中,在X--后面少了一個分號,所以程序段在編譯時,會出現(xiàn)語法錯誤。
49.C解析:C語言的標(biāo)識符的定義為:以字母或下劃線開頭的由字母、數(shù)字字符、下劃線組成的字符串。而且標(biāo)識符不能與關(guān)鍵字相同。
50.B解析:主函數(shù)中先定義了一個整型變量a,一個字符變量c并賦初值10,一個浮點型變量f并賦初值100.00和一個double型x,接著執(zhí)行a=f/=c*=(x=6.5),該語句從右向左計算,先把6.5賦值給x(該括號表達(dá)式的值也為6.5),此時x的值變?yōu)?.5,然后執(zhí)行c*=(x=6.5)相當(dāng)于執(zhí)行c=c*(x=6.5),此時c的值為65,接著向左執(zhí)行f/c*=(x=6.5),語句相當(dāng)于執(zhí)行f=f/c,所以f的值為100/65≈1.538。接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數(shù)部分為1。程序最后輸出的a、c、f和x的值(f和x只保留小數(shù)點后面1位)分別為1、65、1.5、6.5。所以,4個選項中選項B符合題意。
51.A
52.D
53.A解析:模式設(shè)計和內(nèi)模式設(shè)計是概念設(shè)計的兩種方法。物理設(shè)計是根據(jù)特定的計算機(jī)系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計,從而實現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計和行為特性-設(shè)計是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計,設(shè)計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。
54.D解析:本題在fun()函數(shù)中定義了一個靜態(tài)局部變量z,在第一次調(diào)用此函數(shù)時,z被初始化為5,而以后的調(diào)用2都會保留上次調(diào)用后的值。主函數(shù)通過一個for循環(huán),二次調(diào)用fun()函數(shù),第1次調(diào)用實參表達(dá)式a++的值為4,執(zhí)行z=x++,y++;語句,因運算符“=”的優(yōu)先級高于“,”,故z的值為表達(dá)式x++的值,x++是先對z賦值再對x加1,則z的值為4。第二次調(diào)用實參表達(dá)式a++的值為5,返回結(jié)果也為5,所以最后輸出結(jié)果是5。D為所選。
55.C解析:alpha[0]指向“ABCD'’的首地址;alpha[1]指向“EFGH'’的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當(dāng)初行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個字符串。
56.C解析:主函數(shù)main在C語言程序中有且只能有一個,它是程序執(zhí)行的入口。
57.A解析:在C語言中,動態(tài)存儲區(qū)域中存放的變量在使用時才分配內(nèi)存空間,函數(shù)調(diào)用時返回的地址和自動類局部變量等存放在動態(tài)存儲區(qū)域中。auto變量和register變量都屬于自動類局部變量,因此選項A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲中占據(jù)著永久的存儲單元,直至程序運行結(jié)束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個程序運行期間都占用內(nèi)存空間。
58.A解析:C語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。另外C語言規(guī)定了一些專用的標(biāo)識符,它們有著固定的含義,不能更改。int就是表達(dá)變量類型的標(biāo)識符,它不能再用做變量名和函數(shù)名,所以選項B)不正確。do是C語言的一個關(guān)鍵字,也不能再用做變量名和函數(shù)名,所以選項C)不正確。
59.A白盒測試是把測試對象看作是一個打開的盒子,允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及相關(guān)信息來設(shè)計或選擇測試用例,對程序所有的邏輯路徑進(jìn)行測試。所以,白盒測試的對象基本上是源程序,以程序的內(nèi)
【知識拓展】軟件測試按照功能劃分可以分成白盒(白箱)測試和黑盒(黑箱)測試。其中黑盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進(jìn)行測試和驗證。
60.A解析:條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達(dá)式b的值;當(dāng)a為假時,其值等于表達(dá)式c的值。
表達(dá)式運算過程:第1個表達(dá)式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達(dá)式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達(dá)式:w=2<y=4為真,所以返回m的值,即m=2。
61.Ado-wlfile的功能是先執(zhí)行一次循環(huán)體,再判斷條件是否成立,當(dāng)x=-1時,執(zhí)行do語句,x=x*x=1,接著執(zhí)行while后的表達(dá)式,其值為0,退出循環(huán),因此循環(huán)體只執(zhí)行了一次。
62.B本題考查循環(huán)語句的嵌套以及條件的判斷問題。在程序中,內(nèi)層循環(huán)判斷條件為”j<=i¨,而j的初值為3,故當(dāng)i的值為1和2時,內(nèi)層循環(huán)體都不會被執(zhí)行。只有當(dāng)i和j都等于3時才會執(zhí)行一次。m的值為55對3取模,計算結(jié)果為l。
63.D主要考查if判斷語句,A選項if(a),如果a為真,則輸出X,否則輸出Y。B選項if(a==0),如果a恒等于0,則輸出Y,否則輸出X。C選項a(!=o),如果a不等于0,則輸出X,否則輸出y。D選項if(a==0),如果a恒等于0,則輸出X,否則輸出y。由以上結(jié)論可知,輸出結(jié)果不同的為D選項。
64.A
65.B選項B表示把整型數(shù)組a[o]的指針賦給p[0]。
66.D模塊化、自頂向下、逐步求精和限制使用goto語句是結(jié)構(gòu)化程序設(shè)計的原則。因此答案明顯為D.逐步求精。
67.C本題考查的重點還是二維數(shù)組的操作。題目將二維數(shù)組與函數(shù)相結(jié)合,考查了函數(shù)對二維數(shù)組的調(diào)用。程序主體分為兩個部分:主函數(shù)main和函數(shù)fun。main函數(shù)結(jié)構(gòu)較簡單,功能很明確,首先初始化了一個二維數(shù)組,隨后將fun(a,4,0)作為printf函數(shù)的實參輸出。下面分析一下fun函數(shù)的作用,fun函數(shù)包括三個形參,其中一個形參為用指針定義的二維數(shù)組,另外兩個為整型常量n和k。在fun函數(shù)中,先定義了一個整型變量m=s[0][k],表示m為s中第1行第k+1列的數(shù)據(jù)。下面的for循環(huán)是題目的關(guān)鍵,該for循環(huán)的意義是令m為數(shù)組s中k+1列從第1行到第n行的數(shù)據(jù)中最大的數(shù)值。題目中m的初始值為a[0][0],即m=1,從第1行到第4行第1列上的數(shù)值分別為1,11,21,31。最大的數(shù)為31,令m=31,返回m,并將m作為結(jié)果輸出。
68.B
69.C1966年,Boehm和Jacopini證明了程序設(shè)計語言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式的結(jié)構(gòu)化程序設(shè)計方法,因此本題答案為C)。
70.C
\n第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個printf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。本題考查printf函數(shù)的格式。①“%x”和“%0”分別表示以十六進(jìn)制和八進(jìn)制無符合型輸出整型數(shù)據(jù)(不帶前導(dǎo)ox或0);②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項的個數(shù),也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。
\n
71.B本題中,程序首先定義一個結(jié)構(gòu)體,該結(jié)構(gòu)體定義了四個整型變量。在主函數(shù)中,首先定義了一個該結(jié)構(gòu)體的大小為2的結(jié)構(gòu)體數(shù)組,并給該數(shù)組進(jìn)行了初始化,從初始化語句我們可以看出,初始化時缺少了一個結(jié)構(gòu)體成員的值,在這種情況下,系統(tǒng)會自動為缺省的成員補(bǔ)0,本題中就是給結(jié)構(gòu)體成員變量b賦初值為0。
然后定義了一個整型變量t,接著運行t=s[0].a+s[1].b;語句,即t=1+5=6。因此,程序的最后輸出結(jié)果為6,本題正確答案選B。
72.B解析:本題考查數(shù)據(jù)結(jié)構(gòu)中有關(guān)算法的基本知識和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)都影響算法的效率。選項A的說法是錯誤的。算法的時間復(fù)雜度是指算法在計算機(jī)內(nèi)執(zhí)行時所需時間的度量;與時間復(fù)雜度類似,空間復(fù)雜度是指算法在計算機(jī)內(nèi)執(zhí)行時所需存儲空間的度量。因此,選項B的說法是正確的。
數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲結(jié)構(gòu)在計算機(jī)中有兩種,即順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)??梢?,邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)不是一一對應(yīng)的。因此,選項C的說法是錯誤的。
有時人們?yōu)榱颂岣咚惴ǖ臅r間復(fù)雜度,而以犧牲空間復(fù)雜度為代價。但是,這兩者之間沒有必然的聯(lián)系。因此,選項D的說法是錯誤的。
73.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。
74.C
75.A輸出的格式控制,因為輸入的是a和一個回車符,系統(tǒng)就會將a字符賦給c1,將回車符賦給c2.
76.A
77.B根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點總是比度為2的結(jié)點多一個。所以選擇8。
78.B本題主要考查循環(huán)結(jié)構(gòu)和字符串的存儲結(jié)構(gòu)。在C語言中,為了方便確定字符串的長度,編譯系統(tǒng)在字符串后增加了一個結(jié)束標(biāo)識‘\\0’,即ASCII碼的0。
在程序中,首先定義了一個字符型數(shù)組str,并賦初值,然后定義一個同類型的指針變量ps,并使ps指向字符數(shù)組str。
在while循環(huán)中,循環(huán)結(jié)束的條件是*ps的值為0,由于循環(huán)開始前,指針變量ps是指向數(shù)組的第一個元素,即*ps等價于str[0],值為x,其ASCII碼值不為0,循環(huán)繼續(xù),使ps指向數(shù)組的第二個元素,很明顯,結(jié)果不為0,第三個元素也不為0,而第四個元素才為0,循環(huán)結(jié)束,此時ps指向數(shù)組中的結(jié)束標(biāo)識符。
在for循環(huán)中,首先將指針變量ps做自減運算,即使指針變量ps執(zhí)行數(shù)組的最后一個元素值,即第三個元素z,然后用輸出函數(shù)puts輸出,該輸出函數(shù)的功能是輸出字符串或字符數(shù)組到終端上,一次只能輸出一個字符串,輸出時,遇到字符串結(jié)束標(biāo)志符結(jié)束,并自動換行。
第一次for循環(huán)時,由于ps指向z,輸出的結(jié)果為z,換行。
第二次for循環(huán)時,由于ps指向y,那么輸出的結(jié)果為yz,換行。
第二次for循環(huán)時,由于ps指向x,那么輸出的結(jié)果為xyz,換行。
因此,本題的正確答案是B。
\r\n\r\n\r\n
79.B
\n本題是對基本知識點的理解,預(yù)處理命令行的位置沒有規(guī)定,只是習(xí)慣寫在起始位置而已,當(dāng)需要時才用#include<stdio.h>頭文件,預(yù)處理的作用就是實現(xiàn)宏定義和條件編譯。
\n
80.A本題中a>b的!條件不滿足,因此不執(zhí)行逗號表達(dá)式“a=b,b=-c;”的操作,而是執(zhí)行“c=a”的操作,即c的值為10?!时绢}答案為A)。
81.\n\t(1)錯誤:longsum=1;
\n正確:longsum=0;
\n(2)錯誤:while(m)
\n正確:while(m);
\n【解析】由函數(shù)proc可知,變量sum中存放正整數(shù)m的各位上數(shù)字的平方和,其初始化為0。因此,“l(fā)ongsum=1;”應(yīng)改為“l(fā)ongsum=0;”。按照C語言的語法規(guī)則,語句都以分號結(jié)束,應(yīng)在do-while語句最后加上分號。因此,“while(m)”應(yīng)改為“while(m);”。\n
82.
【解析】題目中要求不能用C語言中提供的求字符串長度的函數(shù),可以通過移動字符串指針來計算字符串的長度。定義2個變量分別存放2個字符串的長度,最后比較2個字符串的長度,返回相對較長的那一個字符串。
2021-2022年安徽省宣城市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運行后的輸出結(jié)果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
2.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.45B.20C.25D.36
3.對于靜態(tài)表的順序查找法,若在表頭設(shè)置監(jiān)視哨,則正確的查找方式為()A.從第0個元素往后查找該數(shù)據(jù)元素
B.從第1個元素往后查找該數(shù)據(jù)元素
C.從第n個元素往開始前查找該數(shù)據(jù)元素
D.與查找順序無關(guān)
4.有以下程序:#include<stdi0.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;)printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。A.9,18B.8,11C.7,11D.10,14
5.下列不屬于軟件工程的3個要素的是
A.工具B.過程C.方法D.環(huán)境
6.鏈表不具有的特點是()。A.A.不必事先估計存儲空間
B.可隨機(jī)訪問任意元素
C.插入、刪除不需要移動元素
D.所需空間與線性表長度成正比
7.有如下形式的函數(shù):intfun(inta[4][5],int*p[10],intn){…}調(diào)用函數(shù)之前需要對函數(shù)進(jìn)行說明,即所謂的函數(shù)向前引用說明,以下對fun函數(shù)說明正確的是()。A.intfun(intb[][5],int*r[],intm);
B.intfun(inta[4][],int*p[10],intn);
C.intfun(inta[][],int*p[],intn);
D.intfun(inta[],int*p[],intn);
8.有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",'m',85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",'f',95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運行結(jié)果是()。A.A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
9.
10.已知有結(jié)構(gòu)體:structsk{inta;floatb;}data,*p;若有p=&data,則對data的成員a的正確引用是()。
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.st是結(jié)構(gòu)體類型名
C.x、y、z都是結(jié)構(gòu)體成員名
D.structstr是結(jié)構(gòu)體類型名
11.若以下變量均是整型,且num=sum=7;則執(zhí)行表達(dá)式sum=num++,sum++,++num后sum的值為()。
A.7B.8C.9D.10
12.以下敘述正確的是()。
A.“charc1,*c2,*c3[10];”是合法的變量定義語句
B.數(shù)組說明符的方括號中不能使用表達(dá)式
C.數(shù)組元素下標(biāo)可以是非整數(shù)
D.若有定義“chararray[4];”,則語句“printf(“%c”,array[“3”]);”是合法的
13.已知數(shù)據(jù)表A中每個元素距其最終位置不遠(yuǎn),為節(jié)省時間,應(yīng)該采用的算法是()
A.直接選擇排序B.堆排序C.快速排序D.直接插入排序
14.
15.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
16.在下面棧的基本運算中,不是加工型運算的是______。
A.初始化B.進(jìn)棧C.退棧D.判???/p>
17.
18.以下對結(jié)構(gòu)體類型變量的定義中,不正確的是()。
A.typedefstruetaa{intn;floatm;}AA;AAtdl;
B.#defineAAstructaaAA{intn;floatm;}tdl;
C.struct{intn;floatm;}aa;structaatdl;
D.struct{intn;floatm;}tdl;
19.一個有8個頂點的有向圖,所有頂點的入度出度之和與所有頂點的出度之和的差是()
A.16B.4C.0D.2
20.有以下程序:
#include<stdio.h>
main()
{ints=0.n;
for(n=0;n<3;n++)
{switch(s)
{case0;
case1:s+=1;
case2:s+=2;break;
case3:S+=3;
default:s+=4;
}
printf("%d,"s);
}
}
程序運行后的輸出結(jié)果是()。
A.1,2,4,
B.1,3,6,
C.3,10,14,
D.3,6,10,
二、2.填空題(20題)21.若a是血型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。
22.衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標(biāo)準(zhǔn),其中()是度量一個模塊功能強(qiáng)度的一個相對指標(biāo)。
23.設(shè)y為int型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
24.有以下程序:
main()
{intnum[4][4]={{1,2,3,4),{5,6,7,8),{9,10,11,12),{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<=i;j++)printf("%4c",'');
for(j=______;j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式輸出數(shù)組右上半三角:
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是【】。
25.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。
26.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請?zhí)羁铡?/p>
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
27.下面程序的運行結(jié)果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
28.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。
charch='B';
printf("%c%d\n",ch,ch);
29.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
30.數(shù)據(jù)的物理結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的【】。
31.以下程序的功能是將寧符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf4568h,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
32.關(guān)系代數(shù)是關(guān)系操作語言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎(chǔ),它的運算對象和運算結(jié)果均為()。
33.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
34.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%f",PI);
35.以下程序運行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
36.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。
37.執(zhí)行下列語句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
38.為了建立如圖所示的存儲結(jié)構(gòu)(即每個結(jié)點含兩個域,data是數(shù)據(jù)域,next是指向結(jié)點的指針域)。請?zhí)羁铡?/p>
structlink{chardata;【】;}node;
39.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”語句的輸出結(jié)果是()。
40.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
三、1.選擇題(20題)41.以下能正確定義整型變量a,b和c,并為其賦初值1的語句是______。
A.inta=b=c=1;B.inta,b,c=1;C.a=b=c=1;D.inta=1,b=1,c=1;
42.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
43.函數(shù)fun的返回值是fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;}
A.字符串a(chǎn)的長度B.字符串b的長度C.字符串a(chǎn)和b的長度之差D.字符串a(chǎn)和b的長度之和
44.計算機(jī)網(wǎng)絡(luò)最突出的優(yōu)點是()
A.運算速度快B.存儲容量大C.共享資源D.精度高
45.為了使模塊盡可能獨立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
46.有以下程序
#include<stdlib.h>
structNODE
{intnum;structNODE*next;}
main()
{structNODE*P,*q,*r;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(struetNODE));
r=(structNODE*)malloc(sizeof(structNODE)):
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf("%d\n",p->num+q->next->num):
}
程序運行后的輸出結(jié)果是()
A.10B.20C.30D.40
47.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
48.設(shè)變量x和y均已正確定義并賦值。下列if語句中,在編
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度生態(tài)園區(qū)場地租賃合同標(biāo)準(zhǔn)范本6篇
- 二零二五年新能源發(fā)電設(shè)施建設(shè)泥工勞務(wù)合同3篇
- 二零二五版海上貨物運輸合同適用范圍與船舶代理服務(wù)合同3篇
- 二零二五年度環(huán)境安全檢測技術(shù)服務(wù)合同2篇
- 二零二五年度防火門銷售、推廣及市場拓展合同3篇
- 二零二五版智慧城市基礎(chǔ)設(shè)施建設(shè)項目施工合同6篇
- 二零二五版新材料研發(fā)中心與實驗員勞務(wù)合同2篇
- 二零二五年度游戲運營合同3篇
- 二零二五版醫(yī)療器械貼牌研發(fā)及銷售合同3篇
- 二零二五版304不銹鋼建筑結(jié)構(gòu)材料采購合同2篇
- 品質(zhì)經(jīng)理工作總結(jié)
- 供電搶修述職報告
- 集成電路設(shè)計工藝節(jié)點演進(jìn)趨勢
- 新型電力系統(tǒng)簡介演示
- 特種設(shè)備行業(yè)團(tuán)隊建設(shè)工作方案
- 眼內(nèi)炎患者護(hù)理查房課件
- 肯德基經(jīng)營策略分析報告總結(jié)
- 買賣合同簽訂和履行風(fēng)險控制
- 中央空調(diào)現(xiàn)場施工技術(shù)總結(jié)(附圖)
- 水質(zhì)-濁度的測定原始記錄
- 數(shù)字美的智慧工業(yè)白皮書-2023.09
評論
0/150
提交評論