版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年黑龍江省哈爾濱市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若x,i,j和k都是int型變量,則執(zhí)行下面表達(dá)式后x的值為()。x=(i=4,j=16,k=32)
A.4B.16C.32D.52
2.下列各排序法中,最壞情況下的時間復(fù)雜度最低的是()
A.希爾排序B.快速排序C.堆排序D.冒泡排序
3.設(shè)有定義intn=0,*p=&n,**q=&p;,則下列選項中正確的賦值語句是
A.p=1;B.*q=2;C.q=p;D.*p=5;
4.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。A.4284B.2870C.2668D.3981
5.
6.設(shè)有以下定義則下面語句中錯誤的是()。A.a++;B.b++C.c++;D.d++;
7.有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;…}則以下函數(shù)調(diào)用語句錯誤的是()。
A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);
8.有以下程序:#include<stdio.h>main(){unsignedchara=8,C;C=a>>3:printf("%d\n",c);}程序運(yùn)行后的輸出結(jié)果是()。A.32B.16C.1D.0
9.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯Γ搓P(guān)鍵碼的檢索頻率排好序
10.有下列程序:main{charp[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序運(yùn)行后的輸出結(jié)果是()。A.44B.33C.34D.43
11.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價的循環(huán)語句是()。A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
12.以下正確的字符串常量是()。
A."\\\"B.abcC.OlympicGamesD.""
13.在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
14.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是______。A.3B.6C.8D.12
15.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結(jié)果是A.A.0X0
B.0x0
C.0
D.0xABC
16.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用直接選擇大值開始排序時,第一趟掃描結(jié)果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
17.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
18.
19.
20.為了使模塊盡可能獨(dú)立,要求_____。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
二、2.填空題(20題)21.下列程序執(zhí)行輸出的結(jié)果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(a);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%dh",k);
}
22.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
23.E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【】。
24.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=10,y=20,t=0
if(x==y)t=x;x=y;y=t;
printf("%d,%d/n",x,y);
}
25.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。
26.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于______的聯(lián)系。
27.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta,b,c,n;a=2;b=0;c=1;n=1;while(n<=3){c=c*a;b=_b+c;++n;}printf("b=%d",B);}
28.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
29.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。
30.以下程序調(diào)用invert函數(shù)按逆序重新放置a數(shù)組元素的值。a數(shù)組中的值在main函數(shù)中讀入。
#include<stdio.h>
#defineN10
invert(s,i,j)
int*s,i,j;
{intt;
if(i<j)
{t=*(s+i);
*(s+i)=(s+j);
*(s+j)=t;
invert(s,【】,j-1);
}
}
main()
{
inta[N],i;
for(i=0;i<N;i++)scanf("%d",a+【】);
invert(a,0,N-1);
for(i=0,i<N;i++)printf("%d",a[i]);
printf("\n")
}
31.在面向?qū)ο蠓椒ㄖ校?)是具有相似性質(zhì)的對象的集合。
32.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后的輸出結(jié)果是【】。
33.已有定義:charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&Ra;后b的值為______。
34.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。
35.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
36.若a的值為1,則表達(dá)式!a‖++a的值是______。
37.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
38.已知“inta=2,b=2,c=3;”,則執(zhí)行完語句“a*=18+(b++)-(++C);”后,a的值是()。
39.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。
40.若有如下定義,doublea[100];,則a數(shù)組元素的下標(biāo)上限是【】。
三、1.選擇題(20題)41.有以下程序main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是
A.ABCDBCDCDB.ABCDC.BCDD.BCDCDD
42.以下程序的功能是進(jìn)行位運(yùn)算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是______。
A.43B.73C.70D.40
43.下列關(guān)于E-R圖的描述中正確的是()。
A.E-R圖只能表示實體之間的聯(lián)系
B.E-R圖只能表示實體和實體之間的聯(lián)系
C.E-R圖只能表示實體和屬性
D.E-R圖能表示實體、屬性和實體之間的聯(lián)系
44.不合法的main函數(shù)命令行參數(shù)表示形式是
A.main(inta,char*c[])
B.mmn(intarc,char**arv)
C.main(intargc,char*argv)
D.majn(intargv,char*atgc[])
45.以下程序#include<string.h>main(){chara1[80],a2[80],*s1=a1,*s2=a2;gets(s1);gets(s2)if(!strcmp(s1,s2))printf("*");elseprintf("#");printf("%d\n",strlen(strcat(s1,s2)));}如果從鍵盤上輸入:book<回車>book<空格><回車>則輸出結(jié)果是()
A.*8B.#9C.#6D.*9
46.結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計方法C.結(jié)構(gòu)化設(shè)計理論D.結(jié)構(gòu)化編程方法
47.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循()等完整性規(guī)則。
A.實體完整性和參照完整性
B.參照完整性和用戶自定義完整性
C.實體完整性和用戶自定義完整性
D.實體完整性、參照完整性和用戶自定義完整性
48.若有以下定義和語句,則輸出結(jié)果是______。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);
A.10,20B.10,10C.20,10D.20,20
49.下列程序中函數(shù)sort()的功能是對數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i:0;i<10;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
50.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
51.若有說明inta[][3]={1,2,3,4,5,6,7,8,9),則a數(shù)組第一維的大小是()。
A.2B.3C.4D.無確定值
52.多媒體計算機(jī)系統(tǒng)的兩大組成部分是()
A.多媒體功能卡和多媒體主機(jī)
B.多媒體通信羅件和多媒體開發(fā)工具
C.多媒體輸入設(shè)備和多媒體輸出設(shè)備
D.多媒體計算機(jī)硬件系統(tǒng)和多媒體計算機(jī)軟件系統(tǒng)
53.在軟件測試設(shè)計中,軟件測試的主要目的是()
A.實驗性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯誤D.發(fā)現(xiàn)軟件錯誤而執(zhí)行程序
54.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是______。
A.EOFB.-1C.非零值D.NULL
55.下列關(guān)于隊列的敘述中正確的是______。A.在隊列中只能插入數(shù)據(jù)B.在隊列中只能刪除數(shù)據(jù)C.隊列是先進(jìn)先出的線性表D.隊列是先進(jìn)后出的線性表
56.兩次運(yùn)行下面的程序后,如果從鍵盤上分別輸入7和3,則輸出結(jié)果是______。main(){intx;scanf("%d",&x);if(++x>5)printf("%d",x);elseprintf("%d\n",x--);}
A.7和5B.6和3C.7和4D.8和4
57.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是
A.startB.endC.startendD.endrt
58.有以下程序
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);
59.有下面程序段
#include"stdio.h"
#include"string.h"
main()
{chara[3][20]={{"china"},{"isa"},{"bigcountry!"}};
chark[100]={0},*p=k;
inti;
for(i=0;i<3;i++)
{p=strcat(p,a[i]);}
i=strlen(p);
printf("%d\n",i);}
則程序段的輸出結(jié)果是
A.18B.19C.20D.21
60.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()
A.控制流B.加工C.存儲文件D.源和潭
四、選擇題(20題)61.34.有以下程序
#include<stdio.h>
unionpw
{inti;
charch[2];
}a;
main()
{a.ch[0]=13;a.ch[1]=0;
printf("%d\n",a.i);
}
程序的輸出結(jié)果是
A.13B.14
C.0D.20
62.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。
A.2B.3C.4D.5
63.下面描述中,符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是()。
A.使用順序、選擇和重復(fù)(循環(huán).三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B.模塊只有一個入口,可以有多個出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
64.有如下嵌套的if語句:
if(a<b)
if(a<c)k=a;
elsek=C:
else
if(b<c)k=b;
elsek=C;
以下選項中與上述if語句等價的語句是()。
A.k=(a<b)?a:b;k=(b<c)?b:C;
B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
D.k=(a<b)?a:b;k=(a<c)?a:c;
65.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
66.以下敘述中錯誤的是()。
A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
B.c程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件
C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個文本文件中
D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
67.有以下程序執(zhí)行后的輸出結(jié)果是()。
A.5,11B.5,5C.11,11D.11,5
68.若有如下說明和定義
structtest
{intml;charm2;floatm3;
unionuu{charul[5];intu2[2];}ua;
}myaa;
則sizeof(structtest)的值是
A.12B.16
C.14D.9
69.以下敘述中錯誤的是(
)。A.函數(shù)形參的值也可以傳回給對應(yīng)的實參
B.函數(shù)調(diào)用可以作為一個獨(dú)立的語句存在
C.若函數(shù)有返回值,必須通過r;mm語句返回
D.C程序必須由一個或一個以上的函數(shù)組成
70.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0
71.
72.若有定義語句:“charS[3][10],(*k)[3],*p;”,則以下賦值語句正確的是()。
A.p=S;B.p=k;C.p=s[0];D.k=s;
73.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試
74.定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結(jié)果是()
A.159B.147C.357D.369
75.
76.
以下程序的輸出結(jié)果是()。
main()
{inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};
printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2]
[1],a[3][0];
}
A.0650B.1470C.5430D.輸出值不定
77.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()0、
A.雙向鏈表
B.帶鏈的棧
C.二叉鏈表
D.循環(huán)鏈表
78.
79.下列語句組中,正確的是()。
A.char*s;s=”O(jiān)lympic”;
B.chars[7];s=”O(jiān)lympic”;
C.char*s;s={¨Olympic”};
D.chars[7];s={"Olympic”};
80.
五、程序改錯題(1題)81.下列給定程序中proc()函數(shù)的功能是:將n個無序整數(shù)按從小到大排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾析下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),它的功能是將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4Efg”,則應(yīng)輸出“aBc4EFg”。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.C
2.C
3.D解析:選項A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。
4.Bfor循環(huán)中,i取值為1~100。循環(huán)體中,3個if語句必須同時滿足才會輸出x,輸出的x取值為i+3,所以x的取值只能是4到103。x必須滿足以下條件:①x%7==0(x必須是7的倍數(shù));②(x-1)%3==0(x必須是3的倍數(shù)+1);③(x-2)%2==0(x必須是2的倍數(shù))。滿足條件③的x取值為7,14,21,28,35,42,49,56,63,70,77,84,91,98;又滿足條件②的x的取值為7,28,49,70,91;又滿足條件①的x的取值為28,70。本題答案為B選項。
5.D
6.D
7.D運(yùn)算符“()”的優(yōu)先級高于運(yùn)算符“*”?!?*f)()”定義函數(shù)指針,f是指向函數(shù)的指針。執(zhí)行語句“f=add;”,將函數(shù)add的首地址賦給指針f,所以調(diào)用函數(shù)add可以寫為f。函數(shù)的返回值是整型,不是指針類型,不能用運(yùn)算符,故*f(a,b);”的調(diào)用方式錯誤。故本題答案為D選項。
8.C題中定義了無符號數(shù),c=a>>3;是指右移3位,然后輸出。結(jié)果為C。
9.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
10.C語句charp[]={a,b,c);定義了一個一維字符數(shù)組p[],并用3個字符a,b,c進(jìn)行了初始化;而語句q[]="abe"表示定義了一個一維字符數(shù)組,并用一個字符串常量"abc"進(jìn)行了初始化。在C語言中,系統(tǒng)在每個字符串常量的最后自動加入一個字符\0作為字符串的結(jié)束符。所以函數(shù)sizeof(q)=4,而sizeof(p)=3,因而選項C為正確答案。
11.C當(dāng)循環(huán)結(jié)束時,w的值應(yīng)為-1,而其他選項中w的值為0,故選擇c選項。
12.D選項A中“\\\”為轉(zhuǎn)義字符,故選項A錯誤,選項B和C顯然不是字符串常量。選項D是一個字符串常量,稱為空串。
13.A【答案】:A
【知識點】:黑盒測試
【解析】:黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只著眼于程序的外部結(jié)構(gòu),主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。
14.B解析:在主函數(shù)中,第—次調(diào)用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達(dá)式(x+y)/2的值,即:(5+6)/2,因為參數(shù)的類型都為int型,所以結(jié)果也為整型:5,第二次調(diào)用時8和5也不相等,所以返回值為6,因此,選項B是正確的。
15.C本題考查C語言中的數(shù)據(jù)輸出格式。
題目中定義了兩個整型變量m、n,對這兩個變量賦值,輸入的數(shù)值為十六進(jìn)制整數(shù),并且有m=n。進(jìn)行m-n運(yùn)算后,將減法所得到的值賦給m,并將m值輸出。其中printf的格式字符選用的格式字符為x,即以十六進(jìn)制形式輸出整數(shù)。注意,0x是表示該數(shù)為十六進(jìn)制的標(biāo)志,輸出數(shù)據(jù)時,數(shù)據(jù)前面不會自動加上進(jìn)制的標(biāo)志。
16.A
17.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達(dá)式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數(shù)初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(shù)(某字符的ASCII碼值)。選項C定義的初始值表達(dá)式中出現(xiàn)了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數(shù)形式的指數(shù)部分必須為整數(shù),這里的2.5非法。
18.A
19.D
20.B解析:模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個定性標(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)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。
21.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++8,所以k=8。
22.21
23.@
24.20020,0解析:本題考查的知識點是if語句的基本概念。在主函數(shù)中首先定義了三個整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內(nèi)的條件表達(dá)式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句X=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。
25.252H252H解析:要解答本題,首先要明白在對指針進(jìn)行加,減運(yùn)算時,數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個存儲單元長度。1個存儲單元長度占存儲空間的多少,應(yīng)該視具體情況而定,如果存儲單元的基類型是血型,則移動1個存儲單元的長度就是位移2個字節(jié);如果存儲單元基類型是float型,則移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。
26.1對多(或1:N)1對多(或1:N)
27.BB解析:分析程序可知,n的初始值為1,因此。while(n<=3)循環(huán)3次。第1次:c=c*a=2;b=b+C=2;n=2。第2次:c=c*a=4;b=b+c=6;n=3。第3次:c=c*a=8;b=b+e=14。當(dāng)n=4時,判斷條件不滿足,退出循環(huán)。
28.k=p;k=p;解析:為尋找數(shù)組中最大元素的下標(biāo),需先預(yù)設(shè)1個臨時最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查通常從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k]更大時,應(yīng)該用p更新k,所以在空框處應(yīng)填入代碼'k=p;'。
29.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。
30.i+1i
31.類類解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同操作性質(zhì)的對象的集合,是已經(jīng)定義了的關(guān)于對象的特征、外觀和行為的模板。所以類是對象的抽象,它描述了屬于該對象類型的所有對象的性質(zhì),而一個對象則是其劃應(yīng)類的一個實例。
32.77解析:本題考查英文字母ASCII碼值的概念。字符參與運(yùn)算的值是其對應(yīng)的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。
33.11解析:字符空格的ASCII碼不為0,所以本題中表達(dá)式!c的值為0,b=0&&1的結(jié)果顯然為0。
34.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)
35.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)系模式。
36.11解析:邏輯運(yùn)算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
37.aa解析:本程序先將指針ptr1和ptr2分別指向字符數(shù)組a和b,然后通過指針的移動比較a和b中是否有相同的字符。若有相同的字符則將其輸出。
38.32
39.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。
40.9999解析:數(shù)組的下標(biāo)是從0開始存放數(shù)據(jù)的,而不是1,當(dāng)數(shù)組大小為n時,其下標(biāo)從0開始,到n-1,所以本題的答案為99。
41.D解析:本題中首先定義一個字符數(shù)組s,并將字符串“ABCD”存到數(shù)組s中,定義了一個字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向3[1],所以此時輸出的p所指的字符串的值為BCD,第二次循環(huán)p指向s[2],所以此時輸出的p所指的字符串的值為CD,第三次循環(huán)p指向s[3],因此此時輸出的p所指的字符串的值為D。所以,4個選項中選項D符合題意。
42.A解析:a=7^3=00000111^00000011=00000100=4;b=~4&3=~00000100&00000011=11111011&00000011=00000011=3
43.D解析:E-R(實體—聯(lián)系,Entity-Relationship)圖是設(shè)計概念模型的有力工具。在E-R圖中,用三種圖框分別表示實體,屬性和實體之間的聯(lián)系:
①用矩形框表示實體,框內(nèi)標(biāo)明實體名;
②用橢圓狀框表示實體的屬性,框內(nèi)標(biāo)明屬性名;
③用菱形框表示實體問的聯(lián)系,框內(nèi)標(biāo)明聯(lián)系名;
④實體與其屬性之間以無向邊連接,菱形框與相關(guān)實體之間也用無向邊連接,并在無向邊旁標(biāo)明聯(lián)系的類型。
因此,用E-R圖不僅可以簡單明了地描述實體及其相互之間的聯(lián)系,還可以方便地描述多個實體集之間的聯(lián)系和一個實體集內(nèi)部實體之間的聯(lián)系。
由此可知,選項A、B、C二個選項中的既法都是不對的。
44.C解析:main()函數(shù)可以帶有參數(shù),并且參數(shù)只能有兩個,第一個參數(shù)類型為整型,用來記下命令行的參數(shù)個數(shù),第二個參數(shù)為一個字符型指針數(shù)組,或字符型二級指針變量(指向一個數(shù)組,數(shù)組元素又是一個一級字符指針),其各個元素用來記下從命令行各參數(shù)字符串的首地址.故本題只有C選項不符合要求。所以,4個選項中C為所選。
45.B
46.CC?!窘馕觥拷Y(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是結(jié)構(gòu)化設(shè)計理論,其中包括:結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化編程方法。
47.D解析:關(guān)系模型中包括關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性。關(guān)系完整性即數(shù)據(jù)完整性,包括實體完整性、參照完整性、用戶自定義完整性。
48.D
49.C解析:本程序中的函數(shù)sort(inta[],intn)實現(xiàn)的功能是將數(shù)組a中的前n個數(shù)進(jìn)行從大到小排序。sort(&a[1],7)是將數(shù)組中從a[1]到a[7]這7個數(shù)進(jìn)行從大到小排序,其他數(shù)不變。
50.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進(jìn)行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運(yùn)行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標(biāo)是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。
51.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大?。孩诋?dāng)初值的個數(shù)不能被第二維的常量表達(dá)式的值除盡時,第一維的大小等于所得商數(shù)加1。
52.D
53.D解析:使用人工或自動手段來運(yùn)行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。
54.C
55.C隊列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,選項A和選項B錯誤。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則,選項C正確,選項D錯誤。
56.D解析:輸入7,先使x加1,條件表達(dá)式成立,執(zhí)行語句printf('%d',x);,輸出8;輸入3,先使x加1,條件表達(dá)式不成立,執(zhí)行語句printf('%d\\n',x--);,輸出4,再將x自減。
57.B解析:本題主要考查的是打開文件函數(shù)fopen().題目開始定義了一個函數(shù),該函數(shù)有兩個字符指針型參數(shù),其作用分別用來傳入文件名和文件內(nèi)容。函數(shù)首先定義一個文件指針印,然后使用fopen()函數(shù)打開參數(shù)fn所指定的文件。本題的關(guān)鍵就在于fopen()函數(shù)的第2個參數(shù),這個參數(shù)指定了文件打開的方式。'w'表示為寫而打開一個文本文件,如果文件不存在,則新建一個文件,否則將清空原有文件。接下來函數(shù)使用fputs()函數(shù)將參數(shù)str中的內(nèi)容寫入文件,最后調(diào)用fclose()函數(shù)關(guān)閉文件。在主函數(shù)中兩次調(diào)用該函數(shù),但寫入的是同一個文件,故只有最后一次寫入有效。所以應(yīng)該選擇B。
58.C答案C
解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。
59.B解析:字符串連接函數(shù)strcat的調(diào)用形式如下:strcat(s1,s2)。此函數(shù)將s2所指字符串的內(nèi)容連接到s1所指的字符串后面,并自動覆蓋s1串末尾的尾標(biāo),函數(shù)返回s1的地址值。
60.AA)【解析】數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,它由一些特定的圖符構(gòu)成,包括4個方面,即加工、數(shù)據(jù)流、存儲文件、源和潭。
61.A本題主要考查聯(lián)合體的內(nèi)容。關(guān)于聯(lián)合體,我們需要注意以下幾個特點。
(1)聯(lián)合體不允許做初始化賦值,賦值只能在程序中進(jìn)行。
(2)由于聯(lián)合體成員共享存儲空間的原因,導(dǎo)致一個聯(lián)合體變量每次只能給一個成員變量賦值,而且聯(lián)合體中所有成員的首地址相同,即都是變量的地址。
(3)聯(lián)合體的存儲空間與其成員變量中所需空間最大的變量保持一致,即聯(lián)合變量的長度等于各成員中最長的長度。
在本題中,程序首先定義了一個聯(lián)合體和一個該聯(lián)合體的聯(lián)合體變量a,在主函數(shù)中,分別用兩條語句給聯(lián)合體成員賦值,由于ch是一個數(shù)組,它的元素仍按普通數(shù)組一樣排列。程序要求的輸出結(jié)果是a.i,由于聯(lián)合體中所有成員的首地址相同,即a.i與a.ch的首地址相同,而在ch中第一個元素為13,因此,輸出a.i的結(jié)果就為13。本題正確的答案是A。
62.A解析:選擇排序的基本思想是掃描整個線性表,從中選出最小的元素,將它交換到表的最前面,然后對剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個位置,元素15則放在第二個位置。
63.A解析:結(jié)構(gòu)化程序設(shè)計方法的四條原則是:①自頂向下;②逐步求精;③模塊化;④限制使用goto語句。“自頂向下”是指在程序設(shè)計時,先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)?!爸鸩角缶笔侵笇?fù)雜問題應(yīng)設(shè)計一些子目標(biāo)作過渡,逐步細(xì)節(jié)化。“模塊化”是指一個復(fù)雜問題由若干稍簡單的問題構(gòu)成;解決這個復(fù)雜問題的程序,也應(yīng)由若干稍簡單問題的小程序組成。
64.C\n條件運(yùn)算符(?:)是C語言中唯一的一個三目運(yùn)算符,它是對第一個表達(dá)式做真/假檢測,然后根據(jù)結(jié)果返回兩個表達(dá)式中的一個作為運(yùn)算的結(jié)果。<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>。在運(yùn)算中,首先對第一個表達(dá)式進(jìn)行檢驗,如果為真,則返回表達(dá)式2的值;如果為假,則返回表達(dá)式3的值。
\n
65.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。
66.Ac語言中的非執(zhí)行語句不會被編譯,不會生成二進(jìn)制的機(jī)器指令,因此A)選項錯誤。由C語言構(gòu)成的指令序列稱為C源程序,c源程序經(jīng)過c語言編譯程序編譯之后生成一個后綴為obj的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此.0bj文件與c語言提供的各種庫函數(shù)連接起來生成一個后綴為.exe的可執(zhí)行文件。根據(jù)上述分析可知,A)選項敘述錯誤。
67.A聲明靜態(tài)局部變量:函數(shù)調(diào)用結(jié)束后,其占用的存儲單元不釋放:在下次該函數(shù)調(diào)用時,該變量保留上一次函數(shù)調(diào)用結(jié)束時的值。本題子函數(shù)fun中的變量i和m均為靜態(tài)局部變量。因此第一次調(diào)用fun函數(shù),返回m的值為5,第二次再調(diào)用fun函數(shù)時,i的值為3,m的值已經(jīng)是5了,所以執(zhí)行i+=m+1,i的值變?yōu)?,m=i+x+y=9+l+l=11。故本題答案為A)。
68.A在本題中,首先定義了一個結(jié)構(gòu)體。在該結(jié)構(gòu)體中,定義了一個整型變量成員、一個字符型變量成員和一個浮點型變量成員,并在結(jié)構(gòu)體中定義了一個聯(lián)合體變量成員,聯(lián)合體變量成員中又包含兩個聯(lián)合體成員數(shù)組。題目最后要求計算該結(jié)構(gòu)體變量所占的存儲空間。
在C語言中,聯(lián)合體變量中的所有成員共享存儲空間,聯(lián)合變量的長度等于各成員中最長的長度,因此,本題的聯(lián)合體部分所占的長度為5,但是結(jié)構(gòu)體與聯(lián)合體不一樣的是,結(jié)構(gòu)體不能共享空間,一個結(jié)構(gòu)體變量的總長度是各成員長度之和,因此,該結(jié)構(gòu)體所需的存儲空間為5+1+2+4=12。本題的正確答案選A。
69.A函數(shù)參數(shù)傳遞是個不可逆的過程,形參不會把值傳回實參,所以A)選項(24)[答案]A)[解析]c的值為a乘以b的值,為3。所以答案選擇A)。
70.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。
71.D
72.C答案C的意思是*P指向數(shù)組的第一個值。
73.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機(jī)系統(tǒng)的元素與計算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
74.C
75.D
76.A
\n當(dāng)所賦的值不夠其列的寬度時,系統(tǒng)在其后自動補(bǔ)0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項。
\n
77.C數(shù)據(jù)的邏輯結(jié)構(gòu)是描述數(shù)據(jù)之間的關(guān)系,分兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。線性結(jié)構(gòu)是n個數(shù)據(jù)元素的有序(次序)集合,指的是數(shù)據(jù)元素之間存在著“一對一”的線性關(guān)系的數(shù)據(jù)結(jié)構(gòu)。常用的線性結(jié)構(gòu)有:線性表,棧,隊列,雙隊列,數(shù)組,串。非線性結(jié)構(gòu)的邏輯特征是一個結(jié)點元素可能對應(yīng)多個直接前驅(qū)和多個后驅(qū)。常見的非線性結(jié)構(gòu)有:樹(二叉樹等),圖(網(wǎng)等),廣義表。
\n
78.D
79.A字符型指針變量可以用選項A的賦值方法:char$s;s=”O(jiān)lympic”,選項C的寫法:char$s。s={¨Olympic”};是錯誤的。字符數(shù)組可以在定義的時候初始化:chars[]={¨Olympic”};?或者chars[]=”O(jiān)lympic”,都是正確的。但是不可以在定義字符數(shù)組后,對數(shù)組名賦值。(數(shù)組名是常量,代表數(shù)組首地址)所以選項8和選項D都是錯誤的。對于本例,選項B、D中字符數(shù)組s的大小至少為8,才能存放下字符串。(字符串的末尾都有結(jié)束標(biāo)識‘、0’)。
80.D
81.82.1voidfun(char*ss)2{3inti;4for(i=0;ss[i]!='\\0';i++)/*將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母*/5if(i%2==1&&ss[i]>='a'&&ss[i]<='z')6ss[i]=ss[i]-32;7}本題要求將給定字符串ss中下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母。需要先判斷下標(biāo)為奇數(shù)的字母是否是小寫字母,如果是再通過其轉(zhuǎn)換方法進(jìn)行轉(zhuǎn)換。從C語言的學(xué)習(xí)中知道,只要將小寫字母減去32即轉(zhuǎn)換成大寫宇母,將大寫字母加上32即換轉(zhuǎn)成小寫字母。本程序用if語句實現(xiàn)轉(zhuǎn)換功能。2021-2022年黑龍江省哈爾濱市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若x,i,j和k都是int型變量,則執(zhí)行下面表達(dá)式后x的值為()。x=(i=4,j=16,k=32)
A.4B.16C.32D.52
2.下列各排序法中,最壞情況下的時間復(fù)雜度最低的是()
A.希爾排序B.快速排序C.堆排序D.冒泡排序
3.設(shè)有定義intn=0,*p=&n,**q=&p;,則下列選項中正確的賦值語句是
A.p=1;B.*q=2;C.q=p;D.*p=5;
4.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。A.4284B.2870C.2668D.3981
5.
6.設(shè)有以下定義則下面語句中錯誤的是()。A.a++;B.b++C.c++;D.d++;
7.有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;…}則以下函數(shù)調(diào)用語句錯誤的是()。
A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);
8.有以下程序:#include<stdio.h>main(){unsignedchara=8,C;C=a>>3:printf("%d\n",c);}程序運(yùn)行后的輸出結(jié)果是()。A.32B.16C.1D.0
9.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯Γ搓P(guān)鍵碼的檢索頻率排好序
10.有下列程序:main{charp[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序運(yùn)行后的輸出結(jié)果是()。A.44B.33C.34D.43
11.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價的循環(huán)語句是()。A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
12.以下正確的字符串常量是()。
A."\\\"B.abcC.OlympicGamesD.""
13.在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
14.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是______。A.3B.6C.8D.12
15.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結(jié)果是A.A.0X0
B.0x0
C.0
D.0xABC
16.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用直接選擇大值開始排序時,第一趟掃描結(jié)果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
17.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
18.
19.
20.為了使模塊盡可能獨(dú)立,要求_____。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
二、2.填空題(20題)21.下列程序執(zhí)行輸出的結(jié)果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(a);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%dh",k);
}
22.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
23.E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【】。
24.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=10,y=20,t=0
if(x==y)t=x;x=y;y=t;
printf("%d,%d/n",x,y);
}
25.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。
26.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于______的聯(lián)系。
27.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta,b,c,n;a=2;b=0;c=1;n=1;while(n<=3){c=c*a;b=_b+c;++n;}printf("b=%d",B);}
28.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
29.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。
30.以下程序調(diào)用invert函數(shù)按逆序重新放置a數(shù)組元素的值。a數(shù)組中的值在main函數(shù)中讀入。
#include<stdio.h>
#defineN10
invert(s,i,j)
int*s,i,j;
{intt;
if(i<j)
{t=*(s+i);
*(s+i)=(s+j);
*(s+j)=t;
invert(s,【】,j-1);
}
}
main()
{
inta[N],i;
for(i=0;i<N;i++)scanf("%d",a+【】);
invert(a,0,N-1);
for(i=0,i<N;i++)printf("%d",a[i]);
printf("\n")
}
31.在面向?qū)ο蠓椒ㄖ校?)是具有相似性質(zhì)的對象的集合。
32.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后的輸出結(jié)果是【】。
33.已有定義:charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&Ra;后b的值為______。
34.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。
35.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
36.若a的值為1,則表達(dá)式!a‖++a的值是______。
37.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
38.已知“inta=2,b=2,c=3;”,則執(zhí)行完語句“a*=18+(b++)-(++C);”后,a的值是()。
39.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。
40.若有如下定義,doublea[100];,則a數(shù)組元素的下標(biāo)上限是【】。
三、1.選擇題(20題)41.有以下程序main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是
A.ABCDBCDCDB.ABCDC.BCDD.BCDCDD
42.以下程序的功能是進(jìn)行位運(yùn)算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是______。
A.43B.73C.70D.40
43.下列關(guān)于E-R圖的描述中正確的是()。
A.E-R圖只能表示實體之間的聯(lián)系
B.E-R圖只能表示實體和實體之間的聯(lián)系
C.E-R圖只能表示實體和屬性
D.E-R圖能表示實體、屬性和實體之間的聯(lián)系
44.不合法的main函數(shù)命令行參數(shù)表示形式是
A.main(inta,char*c[])
B.mmn(intarc,char**arv)
C.main(intargc,char*argv)
D.majn(intargv,char*atgc[])
45.以下程序#include<string.h>main(){chara1[80],a2[80],*s1=a1,*s2=a2;gets(s1);gets(s2)if(!strcmp(s1,s2))printf("*");elseprintf("#");printf("%d\n",strlen(strcat(s1,s2)));}如果從鍵盤上輸入:book<回車>book<空格><回車>則輸出結(jié)果是()
A.*8B.#9C.#6D.*9
46.結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計方法C.結(jié)構(gòu)化設(shè)計理論D.結(jié)構(gòu)化編程方法
47.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循()等完整性規(guī)則。
A.實體完整性和參照完整性
B.參照完整性和用戶自定義完整性
C.實體完整性和用戶自定義完整性
D.實體完整性、參照完整性和用戶自定義完整性
48.若有以下定義和語句,則輸出結(jié)果是______。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);
A.10,20B.10,10C.20,10D.20,20
49.下列程序中函數(shù)sort()的功能是對數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i:0;i<10;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
50.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
51.若有說明inta[][3]={1,2,3,4,5,6,7,8,9),則a數(shù)組第一維的大小是()。
A.2B.3C.4D.無確定值
52.多媒體計算機(jī)系統(tǒng)的兩大組成部分是()
A.多媒體功能卡和多媒體主機(jī)
B.多媒體通信羅件和多媒體開發(fā)工具
C.多媒體輸入設(shè)備和多媒體輸出設(shè)備
D.多媒體計算機(jī)硬件系統(tǒng)和多媒體計算機(jī)軟件系統(tǒng)
53.在軟件測試設(shè)計中,軟件測試的主要目的是()
A.實驗性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯誤D.發(fā)現(xiàn)軟件錯誤而執(zhí)行程序
54.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是______。
A.EOFB.-1C.非零值D.NULL
55.下列關(guān)于隊列的敘述中正確的是______。A.在隊列中只能插入數(shù)據(jù)B.在隊列中只能刪除數(shù)據(jù)C.隊列是先進(jìn)先出的線性表D.隊列是先進(jìn)后出的線性表
56.兩次運(yùn)行下面的程序后,如果從鍵盤上分別輸入7和3,則輸出結(jié)果是______。main(){intx;scanf("%d",&x);if(++x>5)printf("%d",x);elseprintf("%d\n",x--);}
A.7和5B.6和3C.7和4D.8和4
57.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是
A.startB.endC.startendD.endrt
58.有以下程序
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);
59.有下面程序段
#include"stdio.h"
#include"string.h"
main()
{chara[3][20]={{"china"},{"isa"},{"bigcountry!"}};
chark[100]={0},*p=k;
inti;
for(i=0;i<3;i++)
{p=strcat(p,a[i]);}
i=strlen(p);
printf("%d\n",i);}
則程序段的輸出結(jié)果是
A.18B.19C.20D.21
60.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()
A.控制流B.加工C.存儲文件D.源和潭
四、選擇題(20題)61.34.有以下程序
#include<stdio.h>
unionpw
{inti;
charch[2];
}a;
main()
{a.ch[0]=13;a.ch[1]=0;
printf("%d\n",a.i);
}
程序的輸出結(jié)果是
A.13B.14
C.0D.20
62.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。
A.2B.3C.4D.5
63.下面描述中,符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是()。
A.使用順序、選擇和重復(fù)(循環(huán).三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B.模塊只有一個入口,可以有多個出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
64.有如下嵌套的if語句:
if(a<b)
if(a<c)k=a;
elsek=C:
else
if(b<c)k=b;
elsek=C;
以下選項中與上述if語句等價的語句是()。
A.k=(a<b)?a:b;k=(b<c)?b:C;
B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
D.k=(a<b)?a:b;k=(a<c)?a:c;
65.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
66.以下敘述中錯誤的是()。
A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
B.c程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件
C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個文本文件中
D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
67.有以下程序執(zhí)行后的輸出結(jié)果是()。
A.5,11B.5,5C.11,11D.11,5
68.若有如下說明和定義
structtest
{intml;charm2;floatm3;
unionuu{charul[5];intu2[2];}ua;
}myaa;
則sizeof(structtest)的值是
A.12B.16
C.14D.9
69.以下敘述中錯誤的是(
)。A.函數(shù)形參的值也可以傳回給對應(yīng)的實參
B.函數(shù)調(diào)用可以作為一個獨(dú)立的語句存在
C.若函數(shù)有返回值,必須通過r;mm語句返回
D.C程序必須由一個或一個以上的函數(shù)組成
70.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0
71.
72.若有定義語句:“charS[3][10],(*k)[3],*p;”,則以下賦值語句正確的是()。
A.p=S;B.p=k;C.p=s[0];D.k=s;
73.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試
74.定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句for(i=0;i<3;i++)p
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《鋰離子電池設(shè)計與制造》教學(xué)大綱
- 3下數(shù)學(xué)4單元教育課件
- 玉溪師范學(xué)院《土地利用規(guī)劃》2022-2023學(xué)年第一學(xué)期期末試卷
- 英語經(jīng)典語錄(帶漢語翻譯)
- 會考復(fù)習(xí)一(公開課教案)
- ECharts數(shù)據(jù)可視化 教案-教學(xué)設(shè)計 第2、3章 折線圖和餅圖、柱狀圖和散點圖
- 計算機(jī)網(wǎng)絡(luò)設(shè)備賬務(wù)處理實例-記賬實操
- 化學(xué)第一課課件
- 2019湘美版 高中美術(shù) 選擇性必修3 雕塑《第二單元 雕塑的創(chuàng)作與實踐》大單元整體教學(xué)設(shè)計2020課標(biāo)
- 草原承包協(xié)議書
- 旅游景區(qū)公共信息導(dǎo)向系統(tǒng)規(guī)范與設(shè)計(旅游)
- 有效教學(xué)崔允漷讀書匯報課件
- 雙眼視覺的分析方法 圖表的基本構(gòu)成
- 年產(chǎn)10噸功能益生菌凍干粉的工廠設(shè)計改
- 2023上海車展展前報告
- 中科大天文學(xué)史課件17近代天體測量和天體力學(xué)的發(fā)展
- 馬王堆導(dǎo)引術(shù)獨(dú)立彩圖版
- 小學(xué)一年級語文上學(xué)期教研活動記錄(10次)
- GB/T 34946-2017C#語言源代碼漏洞測試規(guī)范
- GB/T 31315-2014機(jī)械結(jié)構(gòu)用冷拔或冷軋精密焊接鋼管
- GB/T 30790.4-2014色漆和清漆防護(hù)涂料體系對鋼結(jié)構(gòu)的防腐蝕保護(hù)第4部分:表面類型和表面處理
評論
0/150
提交評論