版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年山東省萊蕪市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.用二進(jìn)制來編碼字符串“abcdabaa”,需要能夠根據(jù)編碼,解碼回原來的字符串,最少需要()長的二進(jìn)制字符串
A.12B.14C.18D.24
2.
3.
4.函數(shù)調(diào)用:strcat(strcpy(str1,str2),str3)的功能是______。
A.將串str1復(fù)制到串str2中后再連接到串str3之后
B.將串str1連接到串str2之后再復(fù)制到串str3之后
C.將串str2復(fù)制到串str1中后再將串sir3連接到串str1之后
D.將串str2連接到串str1之后再將串str1復(fù)制到串str3中
5.以下敘述中錯誤的是()。
A.由3種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)3種基本結(jié)構(gòu)組成
C.C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言
D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
6.可以作為Windows外殼程序的是()
A.程序管理器B.文件管理C.程序管理器和文件管理器D.主群組
7.
8.以下敘述中錯誤的是()。
A.C語句必須以分號結(jié)束
B.復(fù)合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運(yùn)行
D.賦值表達(dá)式末尾加分號就構(gòu)成賦值語句
9.
10.以下程序的輸出結(jié)果是
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;}
main()
{printf("%ld\n",fun(3));}
A.1B.2C.3D.4
11.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
12.設(shè)有下列二叉樹:
對此二叉樹先序遍歷的結(jié)果為
A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA
13.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“THIS\0”,*b=“OK\0\0”;printf(“%d,%d,%d,%d”,strlen(a),sizeof(a),strlen(b),sizeof(b));}程序運(yùn)行后的輸出結(jié)果是()。
A.4,6,2,4B.4,4,4,1C.6,5,2,1D.6,4,2,4
14.程序流程圖中帶有箭頭的線段表示的是()。
A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系
15.現(xiàn)有如下定義語句int*p,s[20],i;p=s;表示數(shù)組元素s[i]的表達(dá)式不正確的是
A.*(s+i)B.*(p+i)C.*(s=s+i)D.*(p=p+i)
16.軟件需求分析一般應(yīng)確定的是用戶對軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
17.在一個無向圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊數(shù)的()倍。
A.2B.3C.1D.1.5
18.表達(dá)式:(int)((double)9/2)-(9)%2.的值是A.0B.3C.4D.5
19.以下程序的輸出結(jié)果是().A.A.2222B.2468C.222D.246
20.設(shè)棧S和隊(duì)列Q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5和e6依次通過棧S,一個元素出棧后即進(jìn)隊(duì)列Q,若6個元素出隊(duì)的序列是e2,e4,e3,e6,e5,e1,則棧S的容量至少應(yīng)該是()。
A.6B.4C.3D.2
二、2.填空題(20題)21.若從鍵盤輸入58,則以下程序輸出的結(jié)果是【】。
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);}
22.fseek函數(shù)的正確調(diào)用形式是【】。
23.以下程序運(yùn)行后的輸出結(jié)果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q){
p->k=++i;p++;
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)printf("%d",m[i].k);
printf("\n");
}
24.對長度為10的線性表進(jìn)行冒泡排序,對壞情況下需要比較的次數(shù)為______
25.診斷和改正程序中錯誤的工作通常稱為【】。
26.設(shè)有chara,b;,若要通過a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進(jìn)制是【】。
27.已知函數(shù)isaplha(ch)的功能是判斷變量ch是否是字母,若是,則該數(shù)值為1,否則為0。下面程序執(zhí)行后的輸出結(jié)果是()。
#include<ctype.h>
#include<string.h>
voidfun(chars[])
{inti,j;
for(i=0,j=0;s[i];i++)
s[j]='\0';
}
main()
{charss[80]="goodmorning";
fun(ss);
printf("%s",ss);
}
28.下列程序執(zhí)行后輸出的結(jié)果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
29.函數(shù)pi的功能是根據(jù)以下公式近似求得的:
pi*pi/6=1+1/(2*2)+1/(3.3)+...+1/(n*n)
請?jiān)谙旅娴暮瘮?shù)中天空,完成求pi的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0,longi;
for(i=1;i<<=n;i++)s=s+【】;
return(sqrt(6*s));
}
30.選擇程序中的輸入輸出語句,以滿足題目給定的輸入輸出數(shù)據(jù)形式。
main()
{inta;floatb;
【】
【】}
輸入形式:3.52<空格>6<回車>
輸出形式:a*b=21.12
31.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。
32.常用的黑箱測試有等價(jià)類劃分法、【】和錯誤推測法3種。
33.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號表達(dá)式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
34.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{inti,n[]=10,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
35.在對文件進(jìn)行操作的過程中,若要求文件的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】函數(shù)。
36.下列程序的運(yùn)行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
37.設(shè)有下列宏定義:#defineA2
#defineBA+3
則執(zhí)行賦值語句;t=B*2;t為int型變量后的值是______。
38.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio,h>
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<e&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,e);
}
39.下面程序的功能是將一個字符串str的內(nèi)容倒序,請?zhí)羁铡?/p>
#inelude<stdio.h>
#include<strins.h>
main()
{inti,j,【】;
charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);
}
40.下面程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
三、1.選擇題(20題)41.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項(xiàng)與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
42.在C語言中,存儲類型為()的變量只在使用它們時(shí)才占用存儲空間。
A.static和auto
B.register和auto
C.static和register
D.register和extem
43.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
44.請讀程序:#include<stdio.h>#include<string.h>voidfun(char*w,intm){chars,*p1,*p2;p1=w;p2=w+m-1;while(p1<p2){s=*p1++;*pl=*p2--;*p2=s;}}main(){chara[]="ABCDEFG";fun(a,strlen(a));puts(a);}上面程序的輸出結(jié)果是()
A.GEFDCBAB.AGADAGAC.AGAAGAGD.GAGGAGA
45.為了避免在嵌套的條件語句ifelse中產(chǎn)生二義性,C語言規(guī)定,else子句總是與()配對。
A.縮排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if
46.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是
A.5B.6C.9D.8
47.若有定義:inta=4,b=5;floatx=3.4,y=2.1;,則下列表達(dá)式的值為()。(float)(a+B)/2+(int)x%(int)y
A.5.5B.55C.5.5D.55
48.下列二維數(shù)組的說明中,不正確的是()。
A.floata[][4]={0,1,8,5,9};
B.inta[3][4];
C.#defineN5
D.inta[2][9.5];floata[N][3];
49.有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d':ss(str1,C);printf("%s\n",str1);}程序運(yùn)行后的輸出結(jié)果是()
A.ABCDDEFEGDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
50.下面程序的輸出結(jié)果為()。structst{intx;int*y;}*p;intdt[4]={10,20,30,40);structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};main(){p=aa;printf("%d\n",++p->x);printf("%d|n",(++p)->x);printf("%d\n",++(*p->y));}
A.102020B.506021C.516021D.607031
51.下面程序的輸出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A.k=11,k=12,k=11
B.k=11,k=13,k=13
C.k=11,k=013,k=0xb
D.k=11,k=13,k=B
52.有以下程序:#include<stdio.h>voidswap1(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結(jié)果是()。
A.5353B.5335C.3535D.3553
53.下列表達(dá)式中,可以正確表示x≤0或x)1的關(guān)系是()。
A.(x>=1)||(x<=0)
B.x>l||x=0
C.x>=1ORx<=0
D.x>=1&&x<=0
54.以下程序輸出結(jié)果是#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf("%d\n",a);}
A.21B.32C.33D.11
55.已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4下列正確的輸入語句是()。
A.scanf(“%3d,%3d,%3d”,&i,&j,&k);
B.scanf(“%d,%d,%d”,&i,&j,&k);
C.scanf(“%d%do/od”,&i,&j,&k);
D.scaaf(“i=%d,j=%d,k=%d”,&i,&j,&k);
56.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[20],*p[4];inti,k=0;for(i=0;i<20;i++)a[i]=i;for(i=0;i<4;i++)p[i]=&a[i*i+1];for(i=0;i<4;i++){k=k+*p[i];}printf("%d",k);}
A.10B.18C.6D.數(shù)組元素引用不合法,輸出結(jié)果不定
57.有以下程序:fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(P[i][0]=='T')n++;returnn;}main(){charstr[][10]={"Mon","Tue","wed","Thu","Fri","Sat","Sun"};printf("%d\n",fun(str));}程序執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.3D.0
58.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)
59.下列一維數(shù)組說明中,不正確的是()。
A.intN;
B.floata[]={1,6,6,0,2};scanf("%d",&N);intb[N];
C.#defineS10
D.inta[S+5];
60.已知下列函數(shù)定義:fun(int*b,intc,intD){intk;for(k=0;k<c*d;k++){*b=c+d;b++;}}則調(diào)用此函數(shù)的正確寫法是(假設(shè)變量a的說明為inta[10])()。
A.fun(*a,6,14);
B.fim(&a,6,8);
C.fun(a,8,4);
D.fun((int)a,8,6);
四、選擇題(20題)61.耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
62.
63.程序中若有如下說明和定義語句
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下選項(xiàng)中對函數(shù)fun的正確調(diào)用語句是
A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);
64.設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時(shí),若從鍵盤輸入876543.0<回車>,a和b的值分別是()。A.A.876和543.000000B.87和6.000000
C.87和6543.000000
D.76和543.000000
65.樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
66.在HTML頁面中哪些部分能夠插入JavaScript?
A.<body>部分
B.<head>部分
C.<body>部分和<head>部分均可
D.<title>部分
67.
有以下計(jì)算公式
若程序前面已在命令中包含math.h文件,不能夠正確
計(jì)算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x)if(x<0)y=sqrt(0x);
C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);
D.y=sqrt(x>=0?x:0x);
68.有以下程序:
#include<<stdio.h>
structstu
{intnum;
charname[10]:
intage;}
voidfun(structstu*p)
{printf("%s\n",(*p).name);}
themain
{
structstustudents[3]={{9801,"Zhang".20},
{9802,"Wang",19},{9803,"Zhao",18}}
fun(students+2);
}
輸出的結(jié)果是()。
A.ZhangB.ZhaoC.WangD.18
69.
70.有以下程序:
#include<stdio.h>
intfun
{staticintx=1;
x+=1;returnX;
}
main
{inti,S=1;
for(i=1;i<=S;i++)s+=fun;
printf("%d\n",s);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.11B.21C.6D.120
71.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式
C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲方式
D.存儲在計(jì)算機(jī)外存中的數(shù)據(jù)
72.有以下程序:
main
{
unsignedchara=2,b=4,c=5,d;
d=a|b;d&=c;printf("%d\n",d);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.3B.4C.5D.6
73.
74.(70)需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法
B.軟件開發(fā)工具
C.軟件開發(fā)費(fèi)用
D.軟件系統(tǒng)功能
75.
76.若有定義floatX=1.5;inta=1,b=3,C=2;,則正確的switch語句是()。
A.
B.
C.
D.
77.函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點(diǎn)是()。
A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對
78.
79.若變量已正確定義并賦值,以下符合C++語言語法的表達(dá)式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
80.若有定義語句:
則strlen(s)的值是()。
A.7B.8C.9D.10
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求S的值。
例如,當(dāng)n為100時(shí),函數(shù)的值應(yīng)為1.566893。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.三個整數(shù)a、b、c,由鍵盤輸入,輸出其中最大的數(shù)。
參考答案
1.B
2.A
3.B
4.C解析:題目中所給函數(shù)的功能是;先用函數(shù)strcpy把參數(shù)串str2復(fù)制到參數(shù)串str1中去,然后用函數(shù)strcat把參數(shù)串str3連接到經(jīng)過修改后的參數(shù)串str1后,因此選項(xiàng)C正確。
5.A由順序、選擇(分支)、循環(huán)3種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A選項(xiàng)錯誤。故本題答案為A選項(xiàng)。
6.C
7.C
8.C解析:C語句必須以分號結(jié)束,選項(xiàng)A是正確的。復(fù)合語句在語法上被看作一條語句,選項(xiàng)B也是正確的??照Z句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當(dāng)作條件子句或者循環(huán)體來看待,所以選項(xiàng)c是錯誤的。賦值表達(dá)式末尾加分號就構(gòu)成賦值語句,選項(xiàng)D正確。故本題應(yīng)該選擇C。
9.C
10.A解析:該題考查的是遞歸函數(shù)的調(diào)用,題中讀fun函數(shù)進(jìn)行了遞歸調(diào)用,第1次調(diào)用:fun(3)n=3s=3-fun(2);第二次調(diào)用時(shí):fun(2)n=2s=2返回第一次調(diào)用后,s=3-2=1。
11.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。
12.C解析:二叉樹的遍歷分為先序,中序、后序三種不同方式.本題要求先序遍歷,其遍歷順序應(yīng)該為:訪問根結(jié)點(diǎn)->,先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF,故答案為C。
13.Astrlen函數(shù)求得參數(shù)中字符串的長度(不包括字符串結(jié)束標(biāo)識“\\0”)sizeof函數(shù)求得特定類型參數(shù)所占存儲空間的長度。題干中a是數(shù)組名,由于定義時(shí)省略維數(shù)大小,因此數(shù)組大小是初始化的字符個數(shù),即a的數(shù)組大小為6。綜上,strlen(a)只計(jì)算字符“T”“H”“I”“S”,結(jié)果為4;sizeof(a)求得數(shù)組a的大小,結(jié)果為6;指針b指向一個字符串“OK\\0\\0”,所以strlen(b)只計(jì)算字符“O”“K”,結(jié)果為2;sizeof(b)求得指針占用存儲空間的大小,結(jié)果為4。故本題答案為A選項(xiàng)。
14.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;
表示邏輯條件。
15.C解析:當(dāng)p指向s數(shù)組的首地址時(shí),表示數(shù)組元素s[i]的表達(dá)式應(yīng)當(dāng)有:①s[i],②,(s+i),③*(p+i),④p[i]四種形式。選項(xiàng)C)錯誤的原因是,數(shù)組的地址是不可變的,指針的地址是可以變的。
16.DD?!窘馕觥寇浖枨蠓治鲋行枰獦?gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對軟件的功能需求和非功能需求。
17.A
18.B\n本題考查了強(qiáng)制類型轉(zhuǎn)換。9/2為double型,所以結(jié)果為4.5,又強(qiáng)制轉(zhuǎn)換為整型,所以結(jié)果為4。9%2為取余運(yùn)算,結(jié)果為1。最終結(jié)果4-1=3。
\n
19.D
20.C
21.585858585858解析:本題考查對if語句的掌握,當(dāng)輸入58以后,程序中的3個if語句都成立,所以分別輸出58。
22.fseek(文件指針位移量起始點(diǎn))fseek(文件指針,位移量,起始點(diǎn))解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:
fseek(文件指針,位移量,起始點(diǎn))
“起始點(diǎn)”用0,1或2代替,其中,0代表“文件開始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c(diǎn)”為基點(diǎn),向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長度大于64k時(shí)不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。
23.1343113431解析:初始化時(shí),指針p指向m[0]的地址,指針q指向m[4]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[0].k=1,m[4].k=1,此時(shí)i=2,指針p指向m[1]的地址,指針q指向m[3]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[1].k=3,k=3,此時(shí)i=4,指針q指向m[2]的地址,p==q不滿足循環(huán)條件,則退出循環(huán),m[2].k=4。所以最后輸出為13431。
24.在最壞情況下冒泡排序法需要比較的次數(shù)為n(n-1)/2。
25.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
26.1000001010000010解析:運(yùn)算“&”的規(guī)則是只有當(dāng)兩個相應(yīng)的二進(jìn)制位都為1時(shí),該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。
27.goodmorninggoodmorning解析:子函數(shù)fun(chars[])的作用是將字符數(shù)組s中除去字母以外的所有其他字符都去掉,然后將字母仍按原來的順序存在數(shù)組s中。在主函數(shù)中調(diào)用fun(ss),是將“goodmorning”中所有的非字母去掉,在這里就是去掉空格,然后輸出ss。
28.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。
29.1.0/i/i或1.0/(i*i)1.0/i/i或1.0/(i*i)解析:由題面中提供的計(jì)算pi的公式可知:在第i項(xiàng)其值為1/(i*i),考慮到運(yùn)算結(jié)果為浮點(diǎn)數(shù),故必須要將1轉(zhuǎn)化為浮點(diǎn)數(shù)或采用1.0/(i*i)的形式。故本題應(yīng)填1.0/(i*i)或其等效形式。
30.scanf("%f<空格>%d"&b&a);printf("ab=%5.2f"a*b);scanf('%f<空格>%d',&b,&a);\r\nprintf('a,b=%5.2f',a*b);
31.邏輯關(guān)系邏輯關(guān)系
32.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價(jià)類劃分、邊界值分析法和錯誤推測法3種。
33.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實(shí)現(xiàn)。
34.1371513715解析:本題中,定義了一個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時(shí),n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應(yīng)輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。
35.rewind()或fseek()rewind()或fseek()
36.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
37.88解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算.運(yùn)算過程為:t=B*2=A+3*2=2+3*2=8。
38.45994599解析:要注意每條證語句后面是三條語句,而不是一條語句。執(zhí)行第一條if語句時(shí),條件表達(dá)式不成立,執(zhí)行a=c;c=t;,此時(shí)a=5,c=99;執(zhí)行第二條if語句時(shí),條件表達(dá)式成立,執(zhí)行t=b;b=a;a=t;交換a,b的值,輸出結(jié)果為4,5和99。
39.k-1k-1解析:第一處應(yīng)該是定義的某個變量,讀程序可知,變量k沒有定義,所以此處應(yīng)填入k。字符串的倒序,就是將首尾對應(yīng)的字符(數(shù)組元素)兩兩交換。可用兩個游標(biāo)變量i和j分別代表前端元素的下標(biāo)和后端元素的下標(biāo),交換以這兩個變量值為下標(biāo)的元素str[i]和str[j]。開始時(shí),i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]仍然位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長度減1,所以在第二處應(yīng)填入-1。
40.1-21,-2解析:考查嵌套的循環(huán)結(jié)構(gòu)。題中外層while循環(huán)的循環(huán)條件是\ue008y--!=-1\ue009,即y>=0;內(nèi)層do厀hile循環(huán)的循環(huán)條件是y--,即y-->0,y>=1。
41.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。
42.D
43.A解析:數(shù)據(jù)流圖包括4個方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體)。不包括選項(xiàng)中的控制流。
44.C
45.B解析:本題考查ifelse語句。C語言規(guī)定,else總是與它前面的最近的if配對。
46.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]指向數(shù)組a的第9個元素,而a[8]=9,所以b=9。
47.C解析:在計(jì)算(float)(a+b)/2時(shí),由于通過強(qiáng)制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計(jì)算,得4.500000。
在計(jì)算(int)x%(int)y時(shí),先將x和y通過強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,得1。
又因?yàn)?.500000是float型,所以將1和它相加時(shí),先將1換成float型,再計(jì)算,得到5.500000。
注意:類型轉(zhuǎn)換的一般規(guī)則是:低級類型服從高級類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級別由低到高的排序表示為:char→int→unsigned→long→float→double。
48.D解析:C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達(dá)式,而不能省略第二個方括號中的常量表達(dá)式;二維數(shù)組的一般定義格式是:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。
49.B
50.C解析:第1個輸出語句中由于->的優(yōu)先級高于++,因此先取結(jié)構(gòu)體的分量x,再對x的值加1,再輸出。p的初值為結(jié)構(gòu)體數(shù)組aa的首地址即a[0]的地址,a[0]的x分量值為50,加1后輸出51。第2個輸出語句中++p被括號括起來,括號的優(yōu)先級與->相同,自左至右結(jié)合,因此先對p加1,再取p所指向的元素的x分量的值。p加1后p指向數(shù)組元素a[1],a[1]的x分量的值為60,輸出60。第3個輸出語句中括號的優(yōu)先級高于++,因此先求括號中表達(dá)式的值,又由于->的優(yōu)先級高于*,所以先取p所指向的數(shù)組元素的y分量的值,p所指向的元素為a[1],y分量的值為&dt[1]。&dt[1]是一個存儲單元的地址,是數(shù)組dt第2個元素的地址值,再取該存儲單元中的值為20,最后對20加1,輸出21。選項(xiàng)C為所選。
51.D解析:在C語言格式字符的輸出中,“%d”是以帶符號的十進(jìn)制形式輸出整數(shù);“%60”是以8進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符o);“%x”是以16進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符Ox)。
52.B解析:swap1函數(shù)傳遞的是變量的地址,可以實(shí)現(xiàn)兩個數(shù)的交換;而swap2函數(shù)傳遞的是值,執(zhí)行完swap2后,c0,c1的值互換了,但main函數(shù)中的b0和b1并未互換,即形參值的改變無法傳給實(shí)參。
53.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達(dá)式是或的關(guān)系,所以在寫成C語言表達(dá)式應(yīng)是邏輯或的關(guān)系,邏輯或運(yùn)算符是“||”。
54.B解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用。本題程序?yàn)樵趙hile循環(huán)中嵌套for循環(huán)。先看內(nèi)層for循環(huán),該循環(huán)的3個表達(dá)式全部省略,循環(huán)條件始終為真,但循環(huán)體內(nèi)的break語句為終止循環(huán)的條件。首先,由初始條件判斷外層循壞while括號內(nèi)表達(dá)式的值,該值為真,執(zhí)行本次while循環(huán),即執(zhí)行循環(huán)體內(nèi)的訂語句,判斷該表達(dá)式后面括號里表達(dá)式的值為真,執(zhí)行break語句,跳出內(nèi)層循環(huán),執(zhí)行下面的語句,此時(shí)i和a的值均變?yōu)?1;回到外層循環(huán),判斷表達(dá)式“i<20”仍為真,執(zhí)行內(nèi)層循環(huán)語句,此時(shí)if條件不滿足,執(zhí)行else語句,i的值為10,繼續(xù)內(nèi)層循環(huán),if語句條件滿足,執(zhí)行break語句,跳出內(nèi)層循環(huán),執(zhí)行下面的語句后,i和a的值分別是21和32。再判斷外層循環(huán)的條件為假,結(jié)束循環(huán).所以,4個選項(xiàng)中B為所選。
55.B解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時(shí)要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。
56.B解析:第一個for循環(huán),給數(shù)組a的20個元素分別賦值0~19;第二個for循環(huán),給數(shù)組p賦值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三個for循環(huán),將數(shù)組p中元素的值進(jìn)行累加,k=1+2+5+10=18。
57.B解析:fun()函數(shù)實(shí)現(xiàn)的功能為查找二維字符數(shù)組第一列中為字符T的個數(shù)。二維數(shù)組的地址作為函數(shù)的實(shí)參。
58.B本題主要考查C語言合法語句的定義。
在選項(xiàng)A中,a==1不是一個合法的語句,因?yàn)樗鼪]有語句結(jié)束標(biāo)識符“;”,不能說是一條語句,如果作為一個表達(dá)式,它是正確的。
在選項(xiàng)B中,由于變量i已被正確定義并有初值,“++i;”是正確的語句。
在選項(xiàng)C中,由于正確的賦值語句中,賦值符號的左邊不能為常量或表達(dá)式,而右邊不能為變量或表達(dá)式,很明顯,“a=a++=5;”違背了賦值語句的原則。
在選項(xiàng)D中,“a=int(i);”語句是不正確的,在C語言中沒有這種表示形式,如果是想將變量i強(qiáng)制轉(zhuǎn)換為整型的操作,應(yīng)該為“a=(int)i;”。
59.A
60.C
61.B模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度,所以C與D錯誤。故答案為B選項(xiàng)。
62.C
63.A解析:函數(shù)fun()的參數(shù)為指針類型,返回值為字符型,而選項(xiàng)B、C的參數(shù)不是指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專屬2024年商品銷售代表協(xié)議版
- 專業(yè)倉儲及配送服務(wù):2024協(xié)議范本版A版
- 科技驅(qū)動:公司未來發(fā)展
- 2025年度彩鋼房拆除與綠色建筑認(rèn)證服務(wù)合同范本4篇
- 2025年度影視基地場地借用及拍攝制作合同4篇
- 2025年度科研實(shí)驗(yàn)場地使用權(quán)出讓及研發(fā)支持服務(wù)合同4篇
- 二零二五年度抽沙船租賃及海洋環(huán)境監(jiān)測協(xié)議3篇
- 2025年度新型工業(yè)園區(qū)土地使用權(quán)交易合同范本4篇
- 2025年智能工廠設(shè)備租賃居間合同示范文本4篇
- 2025年度長租公寓運(yùn)營管理服務(wù)合同4篇
- 領(lǐng)導(dǎo)溝通的藝術(shù)
- 發(fā)生用藥錯誤應(yīng)急預(yù)案
- 南潯至臨安公路(南潯至練市段)公路工程環(huán)境影響報(bào)告
- 綠色貸款培訓(xùn)課件
- 大學(xué)生預(yù)征對象登記表(樣表)
- 主管部門審核意見三篇
- 初中數(shù)學(xué)校本教材(完整版)
- 父母教育方式對幼兒社會性發(fā)展影響的研究
- 新課標(biāo)人教版數(shù)學(xué)三年級上冊第八單元《分?jǐn)?shù)的初步認(rèn)識》教材解讀
- (人教版2019)數(shù)學(xué)必修第一冊 第三章 函數(shù)的概念與性質(zhì) 復(fù)習(xí)課件
- 重慶市銅梁區(qū)2024屆數(shù)學(xué)八上期末檢測試題含解析
評論
0/150
提交評論