版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年安徽省馬鞍山市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.以下選項(xiàng)中表示一個(gè)合法的常量是(說明:符號(hào)口表示空格)()。
A.9口9口9B.0XabC.123E0.2D.2.7e
2.下列程序的輸出結(jié)果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6
3.為了使模塊盡可能獨(dú)立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
4.在軟件測試設(shè)計(jì)中,軟件測試的主要目的是
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤
5.以下程序段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是()。
A.if(a>b)(b>c)k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b>c)k=1;
D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:
6.下列敘述中正確的是()。
A.棧是一種先進(jìn)先出的線性表B.隊(duì)列是一種后進(jìn)先出的線性表C.棧與隊(duì)列都是非線性結(jié)構(gòu)D.以上三種說法都不對(duì)
7.已知小寫母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是_______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}
A.66B.98C.bD.B
8.若有定義語句:“intx=10;”,則表達(dá)式x-=x+x的值為()。
A.-20B.-l0C.0D.10
9.假設(shè)在程序中a、b、c均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式1/abc的表達(dá)式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c
10.若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為()
A.a<>0B.!aC.a=0D.a
11.在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()。
A./B.++C.!=D.%
12.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
輸出結(jié)果是()。
A.28
B.27
C.42
D.41
13.假設(shè)下圖中每個(gè)正方形的邊長為1,則從A到Z的最短路徑條數(shù)為()A.11B.12C.13D.14
14.假設(shè)某算法的計(jì)算時(shí)間可用遞推關(guān)系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時(shí)間復(fù)雜度為()
A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)
15.下列關(guān)于軟件測試的目的和準(zhǔn)則的敘述中,正確的是()
A.軟件測試是證明軟件沒有錯(cuò)誤
B.主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤
C.主要目的是確定程序中錯(cuò)誤的位置
D.測試最好由程序員自己來檢查自己的程序
16.當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;
17.
18.若有定義語句“char*s1=“OK”,*s2=“ok”;”,以下選項(xiàng)中,能夠輸出“OK”的語句是()。
A.if(strcmp(s1,s2)!=0)puts(s2);
B.if(strcmp(s1,s2)!=0)puts(s1);
C.if(strcmp(s1,s2)==1)puts(s1);
D.if(strcmp(s1,s2)==0)puts(s1);
19.
20.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.31B.32C.16D.15
二、2.填空題(20題)21.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。
22.以下程序?qū)崿F(xiàn)帶有頭結(jié)點(diǎn)的單鏈表的建立,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域data(字符型)和指針域next,所建立鏈表的頭指針由參數(shù)phd傳回調(diào)用程序。在空格處填入正確內(nèi)容。
#include<stdio.h>
#include<stdlib,h>
structnode{
chardata;
structnode*next;
};
voidcreatlist(【】)
{
charch;
structnode*s,*r;
*phd=malloc(sizeof(structnode));
r=*phd;
ch=getchar();
while(ch!='@'){
s=malloc(sizeof(structnode));
s->data=ch;
r->next=s;
r=s;
ch=getchar();
};
r->next=【】;
}
main()
{
structnode*head;
head=NULL;
creatlist(【】)
}
23.下面程序的運(yùn)行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}
24.按數(shù)據(jù)流的類型,結(jié)構(gòu)化設(shè)計(jì)方法有兩種設(shè)計(jì)策略,它們是變換分析設(shè)計(jì)和______。
25.以下程序的輸出結(jié)果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,e+d)*10;
printf("%d\n",t);
}
26.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對(duì)象稱為【】。
27.在一個(gè)容量為32的循環(huán)隊(duì)列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊(duì)列中共有______個(gè)元素。
28.以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。請?zhí)羁铡?/p>
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
[8]
if(s[*k]<s[i])*k=i;
return[9];}
main()
{inta[10]:{876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
pfintf("%d,%d\n"
29.寫出下列程序的執(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é)果為()。
30.下列程序的輸出結(jié)果是【】。
#include<stdio.h>
intfun(intx,inty)
{staticintm0,i=2;
i+=m+1;
m=i+x+y;
returnm;
}
main()
{intj=4,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j,m);printf("%d\n",k);
}
31.算法的基本特征是可行性、確定性、【】和擁有足夠的情報(bào)。
32.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
33.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【】。
34.設(shè)函數(shù)findbig已定義為求3個(gè)數(shù)中的最大值。以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】;
seanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,2);
printf("big=%d\n",big);
}
35.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(S);
for(i=j(luò)0;s[i]!'\0';i++)
if(s[i]!='c')______;
s[j]='\0;
puts(S);
}
36.結(jié)構(gòu)化分析方法是面向______進(jìn)行分析的方法。
37.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達(dá)【】。
38.數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。
39.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{intI;
for(I=0;【】!='\n';I++);
return(I);}
40.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
三、1.選擇題(20題)41.下列程序執(zhí)行后的輸出結(jié)果是______。main(){charx=0xFFFF;printf("%d\n",x--);}
A.-32767B.FFFEC.-1D.-32768
42.下列選項(xiàng)中不合法的十六進(jìn)制數(shù)是()。
A.OxffB.OX11C.OxlgD.OXabc
43.以下選項(xiàng)中不合法的標(biāo)識(shí)符是
A.ptintB.FORC.&aD._00
44.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循環(huán),不能確定次數(shù)
45.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];pdrintf(“%d\n”,s);}程序運(yùn)行后的輸出結(jié)果是
A.11B.19C.13D.13
46.以下只有在使用時(shí)才為該類型變量分配內(nèi)存的存儲(chǔ)類說明是______。
A.auto和static
B.auto和register
C.register和static
D.extern和register
47.有以下程序:#include<stdio.h>main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;prinff("%d\n";*p+*q);}程序運(yùn)行后的輸出結(jié)果是()。
A.16B.10C.8D.6
48.以下程序中函數(shù)scmp的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*庫函數(shù)strcpy對(duì)字符串進(jìn)行復(fù)制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運(yùn)行時(shí)依次輸入:abcd、abba和abc三個(gè)字符串,則輸出結(jié)果為
A.abcdB.adbaC.abcD.abca
49.若下列選項(xiàng)中的各變量均為整型且已有值,其中不正確的賦值語句是()。
A.++i;B.n1=(n2/(n3=2));C.k=i=j;D.a=b+c=2;
50.設(shè)有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);則()。
A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次
51.在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號(hào))括起時(shí),尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
52.下列描述中,錯(cuò)誤的一條是______。
A.已知a=3、b=2、c=l,則表達(dá)式(a>b)氣的值為1
B.C語言的表達(dá)式能構(gòu)成語句
C.表達(dá)式(x1=3*5,x1*4),x1+5的值為20
D.表達(dá)式x1=(b=4)+(c=6)的值為6
53.設(shè)有下列二叉樹:[*]對(duì)此二叉樹前序遍歷的結(jié)果為A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
54.以下程序中C的二進(jìn)制值是()。chara=2,b=4,c;c=a^b>>2
A.11B.10100C.111100D.000l1000
55.在深度為5的滿二叉樹中,結(jié)點(diǎn)的個(gè)數(shù)為
A.32B.31C.16D.15
56.在函數(shù)scanf的格式控制中,格式說明的類型與輸入項(xiàng)的類型應(yīng)該對(duì)應(yīng)匹配。如果類型不匹配,系統(tǒng)將()。
A.不予接收B.并不給出出錯(cuò)信息,但不能得到正確的數(shù)據(jù)C.能接收到正確輸入D.給出出錯(cuò)信息,不予接收輸入
57.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句
58.有以下程序:#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}經(jīng)編譯鏈接后生成的可執(zhí)行文件是ex.exe,若運(yùn)行時(shí)輸入以下帶參數(shù)的命令行exabcdefgh3k44執(zhí)行后輸出的結(jié)果是()。
A.14B.12C.8D.6
59.以下程序中函數(shù)reverse的功能是對(duì)a所指數(shù)組中的內(nèi)容進(jìn)行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-1];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是______。
A.22B.10C.34D.30
60.有以下程序main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是
A.77B.88C.810D.1010
四、選擇題(20題)61.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語言中,預(yù)處理命令行都以“#”開頭
C.每個(gè)C程序必須在開頭包含預(yù)處理命令行:#include
D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
62.有以下程序:
main
{inti,j;
for(j=10;j<11;j++)
{for(i=9;i<j;i++)
if(!(j%i))break;
if(i==j-1)
printf("%d",j);
}
}
輸出結(jié)果是()。A.A.11B.10C.9D.1011
63.
64.有如下程序段
int*p,a=10,b=1;
p=&a;a=*p+b;
執(zhí)行該程序段后,a的值為
A.12B.10C.11D.編譯出錯(cuò)
65.
66.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
67.當(dāng)變量c的值不為2、4、6時(shí),值也為”真”的表達(dá)式是()。
A.
B.
C.
D.
68.要求通過while循環(huán)不斷讀人字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是
()。
69.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫的劃分原則是()
A.數(shù)據(jù)之間的聯(lián)系方式B.記錄長度C.聯(lián)系的復(fù)雜程度D.文件的大小
70.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序易讀性
71.下面程序的輸出結(jié)果是
main
{
intx=3,y=6,a=0;
while(x++!=(y-=1))
{
a+=1;
if(y<x)
break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1
C.x=5,y=4,a=1D.x=5,y=4,a=3
72.以下程序的輸出結(jié)果是()。
charstr[15]=”hello!”;
printf(“%d\n”,strlen(str));
A.15B.14C.7D.6
73.
有以下程序:
#include<strintg.h>
main
{charp[20]={a,b,c,d),q[]="abc",r[]="
abcde";
strcpy(p+strlen(q),r);strcat(p,q);
printf("%d%d\n",sizeof(p),strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是()。
A.209B.99C.2011D.1111
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.下列變量聲明合法的是()。A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2aaa=1e-3;
76.下列選項(xiàng)中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行ST”要求的是()。
A.if(stremp(s2,s1)==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(sl,s2)==l)ST;
D.if(sl,s2==O)ST;
77.有如下嵌套的if語句:
以下選項(xiàng)中與上述if語句等價(jià)的語句是()。
A.
B.
C.
D.
78.
79.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.-2,3,B.-1,-2,C.-2,-3,D.-2,1
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中proc()函數(shù)的功能是:將n個(gè)無序整數(shù)按從小到大排序。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc,它的功能是計(jì)算:s=(In(1)4+ln(2)4+ln(3)+…+In(m))0.5
在C語言中可調(diào)用log(n)函數(shù)求ln(n)。
例如,若m的值為30,則proc函數(shù)值為8.640500。
注意:部分源程序給出如下。
請勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#inclllde<stdio.h>
#include<math.h>
doubleproc(intm)
{
}
voidmain
{
system("CLS");
printf("%f\n",proc(30));
}
參考答案
1.B當(dāng)用指數(shù)形式表示浮點(diǎn)數(shù)據(jù)時(shí),E的前后都要有數(shù)據(jù),并且E的后面數(shù)要為整數(shù)。
2.B本題主要考查結(jié)構(gòu)和聯(lián)合內(nèi)存使用的一些區(qū)別:結(jié)構(gòu)中每個(gè)成員相互獨(dú)立,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和;聯(lián)合所占用內(nèi)存空間是指最長的成員占用的空間。
3.B解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。
4.D解析:使用人工或自動(dòng)手段來運(yùn)行或測定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。
5.A本題考查了雙重三目運(yùn)算符的用法。例如:表達(dá)式a>b?c:d可以看成,當(dāng)a>b時(shí)取C的值,否則取d的值。在本題中k=a>b?(b>c?1:0):0可以看做:當(dāng)b>c時(shí)為真,則k=a>b?1:0。當(dāng)bb?0:0。也就是說,當(dāng)a>b并且b>C時(shí),k=1,否則k=0。所以A選項(xiàng)符合題意。
6.D【答案】:D
【知識(shí)點(diǎn)】:棧和隊(duì)列
【解析】:棧和隊(duì)列都是線性結(jié)構(gòu),所以選項(xiàng)C錯(cuò)誤;棧是一種先進(jìn)后出的線性表,故選項(xiàng)A錯(cuò)誤;隊(duì)列是一種先進(jìn)先出的線性表,故選項(xiàng)B錯(cuò)誤,所以選D。
7.C解析:位運(yùn)算符“|”的作用是按位或,即兩個(gè)二進(jìn)制數(shù)的相應(yīng)位中只要有一個(gè)為1,該位的結(jié)果值為1。最后以字符型輸出,98對(duì)應(yīng)的字符“b”
8.B表達(dá)式x-=x+X可以寫成x=x-(x+x),所以X的值為-l0。
9.D
10.D
11.D解析:/、++和!=的操作數(shù)既可能是整型,又可能是實(shí)型。而%的操作數(shù)只能是整型。
12.C\n只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42,故選擇c選鞏。
\n
13.C
14.B
15.BB)【解析】軟件側(cè)試的目的:
\n①軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;
\n②一個(gè)好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤;
\n⑧一個(gè)成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤。
\n軟件側(cè)試的準(zhǔn)則:
\n①所有測試都應(yīng)追溯到需求;
\n②嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性;
\n③充分注意測試中的群集現(xiàn)象:
\n④程序員應(yīng)避免檢查自己的程序;
\n⑤窮舉測試不可能;
\n⑥妥善保存測試計(jì)劃、測試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。
16.C選項(xiàng)A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項(xiàng)中由于c的值不為0,在將c的值賦給變量a后,表達(dá)式a=c的值為1,不再對(duì)表達(dá)式b=c計(jì)算;對(duì)于c選項(xiàng),表達(dá)式a=c的值為1,再求表達(dá)式b=c的值為1,然后進(jìn)行邏輯與運(yùn)算;D選項(xiàng)將b的值賦給c后再賦給e,故選擇C選項(xiàng)。
17.A
18.B“strcmp(S1,S2)”是字符串比較函數(shù),比較規(guī)則是兩個(gè)字符串自左向右逐個(gè)字符相比較(按照ASCII值大小)。因?yàn)椤癘K”<“ok”,所以“strcmp(S1,S2)”為負(fù)值。故本題答案為B選項(xiàng)。
19.D
20.C解析:二叉樹的一個(gè)性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個(gè)結(jié)點(diǎn)。對(duì)于滿二叉樹,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-1個(gè)結(jié)點(diǎn)。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點(diǎn)在第5層上,即其結(jié)點(diǎn)數(shù)為2(k-1)=2(5-1)=16。
21.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對(duì)字符數(shù)組s2和字符數(shù)組s1進(jìn)行比較。如果s1<s2,則返回負(fù)數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。
22.structnode**phdNULL&head
23.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時(shí),j=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時(shí),j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++])=P(a[4])=P(5),輸出5,之后i自加1等于5。
24.事務(wù)分析設(shè)計(jì)事務(wù)分析設(shè)計(jì)解析:典型的數(shù)據(jù)流圖有兩種,即變換型和事務(wù)型。按照這兩種類型把設(shè)計(jì)方法分為兩類,即變換分析設(shè)計(jì)和事務(wù)分析設(shè)計(jì)。
25.77解析:在C語言中,宏定義是直接替換的,所以在對(duì)表達(dá)式MAX(a+b,c+d)*l0進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個(gè)表達(dá)式的值(否則用(c+9d)*10)的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。
26.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對(duì)象。所以,屬性與操作相似的一組對(duì)象稱為類。
27.3131解析:設(shè)隊(duì)列容量為m,如果:rear>front,則隊(duì)列中元素個(gè)數(shù)為rear-front;如果rear<front,則隊(duì)列中元素個(gè)數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。
28.本題中直接使用指針變量k,但在使用時(shí)要注意對(duì)k的指針運(yùn)算,此外,一開始應(yīng)使*k的值為數(shù)組中的某一下標(biāo)值,即*k=0。
29.a=8b=7
30.817
31.有窮性有窮性解析:算法有四個(gè)基本特征:可行性、確定性、有窮性和擁有足夠的情報(bào)。
32.軟件開發(fā)
33.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用以及維護(hù)等活動(dòng)。
34.findbigfindbig解析:本題首先定義了一個(gè)指向函數(shù)的指針變量f,如果希望讓它指向某個(gè)函數(shù),只需把函數(shù)名賦給該指針變量即可。所以說本題的空格處應(yīng)該填入函數(shù)名findbig。
35.s[j++]=s[i]s[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲(chǔ)存值與字符c相同,則i++直接跳過當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過.j++將下標(biāo)加1,指向下一元素要存儲(chǔ)的位置。
36.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。
37.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或不為0。本題具體做法如下:Y%2=1或Y%2!=0。
38.物理獨(dú)立性物理獨(dú)立性解析:數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為物理獨(dú)立性。
39.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+I)來訪問字符串中的第I個(gè)元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。
40.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對(duì)鏈表的定義。
41.C
42.C解析:十六進(jìn)制是以“0x”或“0X”開頭的字符串,字符串中只能含有0~9這10個(gè)數(shù)字和a、b、c、d、e、f這6個(gè)字母。
43.C
44.D解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當(dāng)break出現(xiàn)在switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時(shí),則在執(zhí)行break后,跳出本層循環(huán)體.而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號(hào)內(nèi)表達(dá)式的值為真,執(zhí)行循環(huán)體內(nèi)的if語句,判斷if后面括號(hào)內(nèi)表達(dá)式的值為真,執(zhí)行“continue;”語句.因continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語句也仍然成立,因此循環(huán)將無止境地進(jìn)行下去。所以,4個(gè)選項(xiàng)中D為所選。
45.B解析:C語言規(guī)定,數(shù)組元素的下標(biāo)是從零開始的。本題首先定義了一個(gè)二維數(shù)組aa并按行賦初值,定義了一個(gè)變量s用于求和。for循環(huán)執(zhí)行了4次分別把數(shù)組元素aa[0][1]、aa[1][1]、aa[2][1]和aa[3][1]的值(2,6,9,2)加到變量s中,s的值為19,所以最后輸出的s的值為19。
46.B解析:extern、register、static、auto分別是定義外部變量、寄存器變量、靜態(tài)變量、自動(dòng)變量,其中,自動(dòng)變量和寄存器變量屬于動(dòng)態(tài)存儲(chǔ),調(diào)用時(shí)臨時(shí)分配單元而靜態(tài)變量和外部變量屬于靜態(tài)存儲(chǔ),在整個(gè)程序運(yùn)行時(shí)都存在。
47.B解析:由變量的定義可知,指針變量p初始化為&a[3],即*P的值為4;指針變量q初始化為p+2,即&a[3]+2,所以*q的值為6,*p+*q的值為10。
48.A解析:字符串比較大小的標(biāo)準(zhǔn)是從第一個(gè)字符開始依次向右比較,遇到某一個(gè)字符ASCII碼值較大時(shí),該字符所在的字符串就是較大的字符串。主函數(shù)中調(diào)用了函數(shù)scmp(),分析不難知道該函數(shù)的作用是返回參加比較的兩個(gè)字符串中的較小的字符串,它的主函數(shù)中定義了一個(gè)二維字符數(shù)組來存放三個(gè)字符串。接著通過for循環(huán)給每個(gè)字符串賦值,賦值后三個(gè)字符串分別為“abcd”、“abba”、“abc”,接著比較str[0]和str[1]的大小,根據(jù)字符串大小比較標(biāo)準(zhǔn)可知str[0]較小,然后通過函數(shù)strcpy()把str[0]中的字符串,拷貝到string中,然后比較string和str[2)的大小,比較結(jié)果是string較小,最后輸出string的值為“abcd”。
49.D解析:本題考查賦值表達(dá)式。賦值表達(dá)式的一般形式是:變量名=表達(dá)式。C語言規(guī)定,不能給變量表達(dá)式賦值。
50.B解析:本題中,邏輯非“!”運(yùn)算符比不等于“!=”運(yùn)算符優(yōu)先級(jí)高,因此第一次循環(huán)時(shí)!x!=0的運(yùn)算結(jié)果為真,s的運(yùn)算結(jié)果為1;第二次循環(huán)時(shí)!x!=0的運(yùn)算結(jié)果為假,循環(huán)結(jié)束,輸出s的結(jié)果為1。
51.B解析:本題考查庫函數(shù)調(diào)用的知識(shí)點(diǎn)。格式1:#include<文件名>,預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include'文件名',預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。
52.D
53.B解析:所謂二叉樹的前序遍歷(DLR)是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這3者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹,并且,在遍歷左右子樹時(shí),上述規(guī)則同樣適用,即“根-左-右”。故該二叉樹的前序遍歷結(jié)果為“ATBZXCYP”。注意:對(duì)于本題,若使用后序遍歷和中序遍歷的結(jié)果分別為"ZBTYCPXA"和"TZBACYXP"。
54.A
55.B解析:二叉樹有如下性質(zhì):深度為m的二叉樹最多有2的m次方再減1個(gè)結(jié)點(diǎn),也就是2m-1=25-1=32-1=31。由此可知答案為B。
56.B解析:在scanf函數(shù)的格式控制中,格式說明的類型與輸入項(xiàng)的類型必須一一對(duì)應(yīng)匹配,如不匹配將導(dǎo)致數(shù)據(jù)輸入出現(xiàn)錯(cuò)誤,但是系統(tǒng)并不報(bào)錯(cuò)。
57.C解析:每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。
58.D解析:主函數(shù)的第一個(gè)參數(shù)argc為整形參數(shù),記下從命令行輸入的參數(shù)的個(gè)數(shù);第二個(gè)參數(shù)argv是一個(gè)字符型的指針數(shù)組,它的每一個(gè)元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為5,argv[0]指向字符串“ex”,argv[l]指向參數(shù)字符串“abcd”,argv[2]指向字符串“efg”,argv[3]指向參數(shù)字符串“h3”,argv[4]指向參數(shù)字符串“k44”。在main()函數(shù)中,for循環(huán)執(zhí)行了兩次,當(dāng)i=1時(shí),len=O+strlen(argv[1]),而其中argv[l]=“abcd”,故此時(shí)len的值為4;當(dāng)i=3時(shí),len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此時(shí)len的值為6;當(dāng)i=5時(shí),退出循環(huán),故最后輸出的len值為6。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
59.A解析:主函數(shù)調(diào)用reverse時(shí)。實(shí)參為b和8,即reverse函數(shù)的功能是將數(shù)組b中的前8個(gè)元素逆置,其余元素不變。因此函數(shù)調(diào)用結(jié)束后數(shù)組b的內(nèi)容為:8、7,6、5、4、3、2、1、9、10。main函數(shù)中for循環(huán)語句的功能是求b[6]元素到b[9]元素的和,即s=b[6]+b[7]+b[8]+b[9]=2+1+9+10=22,因此printf語句的輸出結(jié)果是22。
60.C解析:本題考核的知識(shí)點(diǎn)是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個(gè)字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長度為賦值給它的字符串的字符個(gè)數(shù)7加上一個(gè)結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8.定義時(shí)b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
61.B本題是對(duì)基本知識(shí)點(diǎn)的理解,預(yù)處理命令行的位置沒有規(guī)定,只是習(xí)慣寫在起始位置而已,當(dāng)需要時(shí)才用#include<stdio.h>頭文件,預(yù)處理的作用就是實(shí)現(xiàn)宏定義和條件編譯。
62.B本題考多循環(huán)的使用,當(dāng)j=10,i=9時(shí),循環(huán)成立,第一個(gè)if條件為假,第二個(gè)if條件i==j-1成立,則輸出j的值為10,接者執(zhí)行i++后,i為10;當(dāng)i為10,for循環(huán)不成立,退出內(nèi)層循環(huán),此時(shí)執(zhí)行j++后,j為11,循環(huán)不成立,退出循環(huán)。
63.C
64.Cp=&a表達(dá)式的含義是將變量a的地址賦給指針變量p;a=*p+b表達(dá)式的含義是將指針變量p所存地址對(duì)應(yīng)的值與b的和賦給a。
65.C
66.B軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)接口設(shè)計(jì)和過程設(shè)計(jì)。其中軟件結(jié)構(gòu)設(shè)計(jì)主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設(shè)計(jì)的任務(wù)是為每個(gè)子系統(tǒng)設(shè)計(jì)其與其他子系統(tǒng)間的接口,并編寫成文檔,這個(gè)接口要是一個(gè)無二義的接口,不需要子系統(tǒng)的操作知識(shí)就可以使用;過程設(shè)計(jì)是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。
67.B滿足表達(dá)式,(C>=2&&c<=6)的整型變量C的值是2,3,4,5,6。當(dāng)變量C的值不為2,4,6時(shí),其值只能為3或5,所以表達(dá)式C!=3和C!=5中至少有一個(gè)為真,即不論C為何值,表達(dá)式B)都為”真”。
68.A本題考查的知識(shí)點(diǎn)是:9etCharl函數(shù)和邏輯表達(dá)式的判定。題目要求“當(dāng)讀人字母N時(shí)結(jié)束循環(huán)”,所WE)、D)選項(xiàng)不對(duì);選項(xiàng)B)中,作為條件的表達(dá)式的值恒成立,不符合題目要求,故本題選A)。
69.A\n數(shù)據(jù)庫按數(shù)據(jù)模型分為層次型數(shù)據(jù)庫、網(wǎng)狀型數(shù)據(jù)庫、關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)模型即數(shù)據(jù)之間的聯(lián)系方式,因此正確選項(xiàng)為A)。
\n
70.D結(jié)構(gòu)化程序設(shè)計(jì)由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設(shè)計(jì)為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個(gè)相互獨(dú)立的模塊,這樣使完成每一個(gè)模塊的工作變得單純而明確,為設(shè)計(jì)一些較大的軟件打下了良好的基礎(chǔ)。
由于模塊相互獨(dú)立,因此,在設(shè)計(jì)其中一個(gè)模塊時(shí),不會(huì)受到其他模塊的牽連,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊的設(shè)計(jì)。模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因?yàn)榭梢猿浞掷矛F(xiàn)有的模塊作為積木式的擴(kuò)展。
結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計(jì)方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計(jì)方法從問題本身開始,經(jīng)過逐步細(xì)化,將解決問題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個(gè)復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,那么這個(gè)新構(gòu)造的程序一定是一個(gè)單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。
71.C本題中x++中的x值應(yīng)當(dāng)是先引用,后自加,在此基礎(chǔ)上,逐步將值帶入程序中,即可得到正確的答案。
72.D
73.C
\n在主函數(shù)中,首先定義一個(gè)包含20個(gè)元素的字符數(shù)組P,執(zhí)行語句“strcpy(P+strlen(q),r);”,數(shù)組P的內(nèi)容變?yōu)閧a,b,C,a,b,c,d,e,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0,\0),執(zhí)行語句“strcat(P,q);”,數(shù)組P的內(nèi)容變?yōu)?,a,b,c,a,b,C,d,P,a,b,c,\0,\0,\0,\0,\0,\0,\0,\0),函數(shù)sizeof(P)是求數(shù)組P的大小,返回20,而函數(shù)strlen(p)是計(jì)算以P所指起始地址的字符串的長度,這一長度不包括串尾的結(jié)束標(biāo)志0,所以函數(shù)返回11。
\n
74.C
75.A本題需了解3個(gè)知識(shí)點(diǎn):①標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線;②do是C語言的一個(gè)關(guān)鍵字,不能再用做變量名和函數(shù)名;③c語言規(guī)定指數(shù)形式的實(shí)型數(shù)量e或E后面的指數(shù)必須是整數(shù)。
76.Astrcmp(char*,char*),函數(shù)strcmp用于比較兩個(gè)字符串的長度,長者為大,若字符個(gè)數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCIl表值計(jì)算,直到最后一個(gè)字符,若還相同,則兩個(gè)字符串相等,返回值0。選項(xiàng)A中if(strcmp(s2,sl)==0)ST,若s2等于sl,則返回值0,0等于0,所以邏輯表達(dá)式strcmp(s2,sl)==0為真,執(zhí)行ST。
77.C嵌套的if語句功能是將k賦值為a、b、c中的最小值,選項(xiàng)A)中沒有比較a、c的大小,選項(xiàng)B)中語句”((b<c)?a:b):((b>c)?b:c)“錯(cuò)誤,選項(xiàng)D)中沒有比較b、c大小。
78.D
79.Afun()函數(shù)使用了靜態(tài)變量,靜態(tài)變量只在聲明時(shí)初始化一次。首先實(shí)參的數(shù)值是一12,if判斷后輸出負(fù)號(hào),并將n=12,計(jì)算k+=n%10一k+=2—2,因此輸出2,后將數(shù)值除以10,結(jié)果為1,遞歸調(diào)用fun()函數(shù),第二次調(diào)用fun(),此時(shí)n=1,k=2,計(jì)算k+=n%10-÷k+=1——*3,因此打印3。故最后打印結(jié)果為一2,3,。故答案為A選項(xiàng)。
80.D
81.
82.doubleproc(intm)
\n{
\ninti;
\ndoubles=0.0;//s是表示其和
\nfor(i=1;i<=m;i++)
\ns=s+log(i);//計(jì)算s=ln(1)+ln(2)+ln(3)+…+ln(m)
\nreturnsqrt(s);//最后將其開平方的值返回到主函數(shù)中
\n}
\n【解析】由題目中所給表達(dá)式可知,表達(dá)式的值為m項(xiàng)表達(dá)式的和然后開平方??梢允紫韧ㄟ^m次循環(huán)求得m項(xiàng)表達(dá)式的和,然后將其和開平方并返回到主函數(shù)當(dāng)中。
\n2022年安徽省馬鞍山市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.以下選項(xiàng)中表示一個(gè)合法的常量是(說明:符號(hào)口表示空格)()。
A.9口9口9B.0XabC.123E0.2D.2.7e
2.下列程序的輸出結(jié)果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6
3.為了使模塊盡可能獨(dú)立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
4.在軟件測試設(shè)計(jì)中,軟件測試的主要目的是
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤
5.以下程序段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是()。
A.if(a>b)(b>c)k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b>c)k=1;
D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:
6.下列敘述中正確的是()。
A.棧是一種先進(jìn)先出的線性表B.隊(duì)列是一種后進(jìn)先出的線性表C.棧與隊(duì)列都是非線性結(jié)構(gòu)D.以上三種說法都不對(duì)
7.已知小寫母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是_______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}
A.66B.98C.bD.B
8.若有定義語句:“intx=10;”,則表達(dá)式x-=x+x的值為()。
A.-20B.-l0C.0D.10
9.假設(shè)在程序中a、b、c均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式1/abc的表達(dá)式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c
10.若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為()
A.a<>0B.!aC.a=0D.a
11.在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()。
A./B.++C.!=D.%
12.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
輸出結(jié)果是()。
A.28
B.27
C.42
D.41
13.假設(shè)下圖中每個(gè)正方形的邊長為1,則從A到Z的最短路徑條數(shù)為()A.11B.12C.13D.14
14.假設(shè)某算法的計(jì)算時(shí)間可用遞推關(guān)系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時(shí)間復(fù)雜度為()
A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)
15.下列關(guān)于軟件測試的目的和準(zhǔn)則的敘述中,正確的是()
A.軟件測試是證明軟件沒有錯(cuò)誤
B.主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤
C.主要目的是確定程序中錯(cuò)誤的位置
D.測試最好由程序員自己來檢查自己的程序
16.當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;
17.
18.若有定義語句“char*s1=“OK”,*s2=“ok”;”,以下選項(xiàng)中,能夠輸出“OK”的語句是()。
A.if(strcmp(s1,s2)!=0)puts(s2);
B.if(strcmp(s1,s2)!=0)puts(s1);
C.if(strcmp(s1,s2)==1)puts(s1);
D.if(strcmp(s1,s2)==0)puts(s1);
19.
20.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.31B.32C.16D.15
二、2.填空題(20題)21.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。
22.以下程序?qū)崿F(xiàn)帶有頭結(jié)點(diǎn)的單鏈表的建立,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域data(字符型)和指針域next,所建立鏈表的頭指針由參數(shù)phd傳回調(diào)用程序。在空格處填入正確內(nèi)容。
#include<stdio.h>
#include<stdlib,h>
structnode{
chardata;
structnode*next;
};
voidcreatlist(【】)
{
charch;
structnode*s,*r;
*phd=malloc(sizeof(structnode));
r=*phd;
ch=getchar();
while(ch!='@'){
s=malloc(sizeof(structnode));
s->data=ch;
r->next=s;
r=s;
ch=getchar();
};
r->next=【】;
}
main()
{
structnode*head;
head=NULL;
creatlist(【】)
}
23.下面程序的運(yùn)行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}
24.按數(shù)據(jù)流的類型,結(jié)構(gòu)化設(shè)計(jì)方法有兩種設(shè)計(jì)策略,它們是變換分析設(shè)計(jì)和______。
25.以下程序的輸出結(jié)果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,e+d)*10;
printf("%d\n",t);
}
26.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對(duì)象稱為【】。
27.在一個(gè)容量為32的循環(huán)隊(duì)列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊(duì)列中共有______個(gè)元素。
28.以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。請?zhí)羁铡?/p>
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
[8]
if(s[*k]<s[i])*k=i;
return[9];}
main()
{inta[10]:{876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
pfintf("%d,%d\n"
29.寫出下列程序的執(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é)果為()。
30.下列程序的輸出結(jié)果是【】。
#include<stdio.h>
intfun(intx,inty)
{staticintm0,i=2;
i+=m+1;
m=i+x+y;
returnm;
}
main()
{intj=4,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j,m);printf("%d\n",k);
}
31.算法的基本特征是可行性、確定性、【】和擁有足夠的情報(bào)。
32.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
33.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【】。
34.設(shè)函數(shù)findbig已定義為求3個(gè)數(shù)中的最大值。以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】;
seanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,2);
printf("big=%d\n",big);
}
35.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(S);
for(i=j(luò)0;s[i]!'\0';i++)
if(s[i]!='c')______;
s[j]='\0;
puts(S);
}
36.結(jié)構(gòu)化分析方法是面向______進(jìn)行分析的方法。
37.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達(dá)【】。
38.數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。
39.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{intI;
for(I=0;【】!='\n';I++);
return(I);}
40.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
三、1.選擇題(20題)41.下列程序執(zhí)行后的輸出結(jié)果是______。main(){charx=0xFFFF;printf("%d\n",x--);}
A.-32767B.FFFEC.-1D.-32768
42.下列選項(xiàng)中不合法的十六進(jìn)制數(shù)是()。
A.OxffB.OX11C.OxlgD.OXabc
43.以下選項(xiàng)中不合法的標(biāo)識(shí)符是
A.ptintB.FORC.&aD._00
44.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循環(huán),不能確定次數(shù)
45.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];pdrintf(“%d\n”,s);}程序運(yùn)行后的輸出結(jié)果是
A.11B.19C.13D.13
46.以下只有在使用時(shí)才為該類型變量分配內(nèi)存的存儲(chǔ)類說明是______。
A.auto和static
B.auto和register
C.register和static
D.extern和register
47.有以下程序:#include<stdio.h>main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;prinff("%d\n";*p+*q);}程序運(yùn)行后的輸出結(jié)果是()。
A.16B.10C.8D.6
48.以下程序中函數(shù)scmp的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*庫函數(shù)strcpy對(duì)字符串進(jìn)行復(fù)制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運(yùn)行時(shí)依次輸入:abcd、abba和abc三個(gè)字符串,則輸出結(jié)果為
A.abcdB.adbaC.abcD.abca
49.若下列選項(xiàng)中的各變量均為整型且已有值,其中不正確的賦值語句是()。
A.++i;B.n1=(n2/(n3=2));C.k=i=j;D.a=b+c=2;
50.設(shè)有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);則()。
A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次
51.在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號(hào))括起時(shí),尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
52.下列描述中,錯(cuò)誤的一條是______。
A.已知a=3、b=2、c=l,則表達(dá)式(a>b)氣的值為1
B.C語言的表達(dá)式能構(gòu)成語句
C.表達(dá)式(x1=3*5,x1*4),x1+5的值為20
D.表達(dá)式x1=(b=4)+(c=6)的值為6
53.設(shè)有下列二叉樹:[*]對(duì)此二叉樹前序遍歷的結(jié)果為A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
54.以下程序中C的二進(jìn)制值是()。chara=2,b=4,c;c=a^b>>2
A.11B.10100C.111100D.000l1000
55.在深度為5的滿二叉樹中,結(jié)點(diǎn)的個(gè)數(shù)為
A.32B.31C.16D.15
56.在函數(shù)scanf的格式控制中,格式說明的類型與輸入項(xiàng)的類型應(yīng)該對(duì)應(yīng)匹配。如果類型不匹配,系統(tǒng)將()。
A.不予接收B.并不給出出錯(cuò)信息,但不能得到正確的數(shù)據(jù)C.能接收到正確輸入D.給出出錯(cuò)信息,不予接收輸入
57.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句
58.有以下程序:#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}經(jīng)編譯鏈接后生成的可執(zhí)行文件是ex.exe,若運(yùn)行時(shí)輸入以下帶參數(shù)的命令行exabcdefgh3k44執(zhí)行后輸出的結(jié)果是()。
A.14B.12C.8D.6
59.以下程序中函數(shù)reverse的功能是對(duì)a所指數(shù)組中的內(nèi)容進(jìn)行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-1];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是______。
A.22B.10C.34D.30
60.有以下程序main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是
A.77B.88C.810D.1010
四、選擇題(20題)61.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語言中,預(yù)處理命令行都以“#”開頭
C.每個(gè)C程序必須在開頭包含預(yù)處理命令行:#include
D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
62.有以下程序:
main
{inti,j;
for(j=10;j<11;j++)
{for(i=9;i<j;i++)
if(!(j%i))break;
if(i==j-1)
printf("%d",j);
}
}
輸出結(jié)果是()。A.A.11B.10C.9D.1011
63.
64.有如下程序段
int*p,a=10,b=1;
p=&a;a=*p+b;
執(zhí)行該程序段后,a的值為
A.12B.10C.11D.編譯出錯(cuò)
65.
66.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
67.當(dāng)變量c的值不為2、4、6時(shí),值也為”真”的表達(dá)式是()。
A.
B.
C.
D.
68.要求通過while循環(huán)不斷讀人字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是
()。
69.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫的劃分原則是()
A.數(shù)據(jù)之間的聯(lián)系方式B.記錄長度C.聯(lián)系的復(fù)雜程度D.文件的大小
70.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序易讀性
71.下面程序的輸出結(jié)果是
main
{
intx=3,y=6,a=0;
while(x++!=(y-=1))
{
a+=1;
if(y<x)
break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1
C.x=5,y=4,a=1D.x=5,y=4,a=3
72.以下程序的輸出結(jié)果是()。
charstr[15]=”hello!”;
printf(“%d\n”,strlen(str));
A.15B.14C.7D.6
73.
有以下程序:
#include<strintg.h>
main
{charp[20]={a,b,c,d),q[]="abc",r[]="
abcde";
strcpy(p+strlen(q),r);strcat(p,q);
printf("%d%d\n",sizeof(p),strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是()。
A.209B.99C.2011D.1111
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.下列變量聲明合法的是()。A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2aaa=1e-3;
76.下列選項(xiàng)中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行ST”要求的是()。
A.if(stremp(s2,s1)==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(sl,s2)==l)ST;
D.if(sl,s2==O)ST;
77.有如下嵌套的if語句:
以下選項(xiàng)中與上述if語句等價(jià)的語句是()。
A.
B.
C.
D.
78.
79.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.-2,3,B.-1,-2,C.-2,-3,D.-2,1
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中proc()函數(shù)的功能是:將n個(gè)無序整數(shù)按從小到大排序。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc,它的功能是計(jì)算:s=(In(1)4+ln(2)4+ln(3)+…+In(m))0.5
在C語言中可調(diào)用log(n)函數(shù)求ln(n)。
例如,若m的值為30,則proc函數(shù)值為8.640500。
注意:部分源程序給出如下。
請勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#inclllde<stdio.h>
#include<math.h>
doubleproc(intm)
{
}
voidmain
{
system("CLS");
printf("%f\n",proc(30));
}
參考答案
1.B當(dāng)用指數(shù)形式表示浮點(diǎn)數(shù)據(jù)時(shí),E的前后都要有數(shù)據(jù),并且E的后面數(shù)要為整數(shù)。
2.B本題主要考查結(jié)構(gòu)和聯(lián)合內(nèi)存使用的一些區(qū)別:結(jié)構(gòu)中每個(gè)成員相互獨(dú)立,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體驗(yàn)經(jīng)濟(jì)下的品牌創(chuàng)新計(jì)劃
- 合同臨時(shí)暫停通知函模板
- 2024年醫(yī)院與醫(yī)療機(jī)構(gòu)財(cái)務(wù)顧問合作協(xié)議合同范本3篇
- 滑臺(tái)氣缸課程設(shè)計(jì)
- 焊接滾動(dòng)架課程設(shè)計(jì)34
- 婦女節(jié)活動(dòng)方案范文8篇
- 春節(jié)放假的通知范文匯編4篇
- 油畫人物教育課程設(shè)計(jì)
- 幼兒玩偶課程設(shè)計(jì)
- 游戲課程設(shè)計(jì)書
- 廣東省廣州市2025屆高三上學(xué)期12月調(diào)研測試語文試卷(含答案)
- GB/T 44949-2024智能熱沖壓成形生產(chǎn)線
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)(2024版)宣傳海報(bào)
- 《生物炭對(duì)重金屬污染土壤修復(fù)的研究綜述論文》4000字
- 2024-2025學(xué)年冀人版五年級(jí)第一學(xué)期期末科學(xué)試題(含答案)
- 2024-2030年中國企業(yè)大學(xué)建設(shè)行業(yè)轉(zhuǎn)型升級(jí)模式及投資規(guī)劃分析報(bào)告
- 2024-2025學(xué)年上學(xué)期12月質(zhì)量監(jiān)測七年數(shù)學(xué)試卷
- 2024年“中銀杯”安徽省職業(yè)院校技能大賽(高職組)花藝賽項(xiàng)競賽規(guī)程
- 2024-2025學(xué)年七年級(jí)上學(xué)期歷史觀點(diǎn)及論述題總結(jié)(統(tǒng)編版)
- 2024年安全員A證考試題庫及答案(1000題)
- 國開 2024 年秋《機(jī)電控制工程基礎(chǔ)》形考任務(wù)1234答案+【2020形考1234答案】全析
評(píng)論
0/150
提交評(píng)論