版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022年湖北省咸寧市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])
B.doublefun(double*a)
C.doublefun(doublea[])
D.doublefun(doublea)
2.以下不合法的字符常量是()。
A.‘\\’B.‘\”’C.‘\018’D.‘\xcc’
3.以下定義語句中正確的是()。
A.inta=b=0;
B.charA=65+1,b=‘b’;
C.floata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
4.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價的賦值語句是()。
A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;
5.設(shè)有如下函數(shù)定義:#include<stdio.h>intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若執(zhí)行調(diào)用語句“n=fun(3);”,則函數(shù)fun總共被調(diào)用的次數(shù)是()。
A.2B.3C.4D.5
6.數(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è)計
7.定義如下變量和數(shù)組:inti;intx[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};則下面語句的輸出結(jié)果是()。A.15913B.161116C.471013D.481216
8.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
9.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭*/fwrite(s1,5,1,pf);fclose(pf);}程序執(zhí)行后,abc.dat文件的內(nèi)容是()。
A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina
10.在計算機(jī)中,算法是指()
A.加工方法B.解題方案的準(zhǔn)確而完整的描述C.排序方法D.查詢方法
11.執(zhí)行完下列語句段后,i值為()。A.A.2B.4C.8D.無限遞歸
12.C語言中,要求參加運算的數(shù)必須是整數(shù)的運算符是()。
A./B.!C.%D.==
13.合法的常量是()。A.‘program’B.–e8C.03xD.0xfl
14.有以下程序
prt(int*m,intn)
{
inti;
for(i=0;i<n;i++)
m[i]++;
}
main()
{
inta[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
}
程序運行后的輸出結(jié)果是A.A.1,2,3,4,5,
B.3,4,5,6,7,
C.2,3,4,5,6,
D.2,3,4,5,1,
15.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序
16.有以下程序
#include<stdio.h>
main()
{charb,c;inti;
b=‘a(chǎn)’;c=‘A’;
for(i=0;i<6;i++)
{if(i%2)putchar(i+b);
elseputehar(i+c);
}printf(“\n”);
}
程序運行后的輸出結(jié)果是A.ABCDEFB.AbCdEfC.aBeDeFD.abcdef
17.有以下程序:#includedstdi0.h>#definef(x)X*x*xmain(){inta=3,S,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",S,t);}程序運行后的輸出結(jié)果是()。A.10,64B.10,10C.64,10D.64,64
18.
19.
20.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
二、2.填空題(20題)21.【】是從二維表列的方向進(jìn)行的運算。
22.執(zhí)行以下程序后的輸出結(jié)果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
23.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?zhí)羁铡?/p>
main()
{inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",(【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=(【】);
}
}
printf("sum=%d,count=%dhn",sum,count);
}
24.執(zhí)行以下程序的輸出結(jié)果是()。
#include<stdio.h>
#defineM5
#defineNM+M
main()
{intk;
k=N*N*5;printf(”%d\n",k);
}
25.以下程序的輸出結(jié)果是【】。
main()
{intx=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
26.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。
27.以下程序的運行結(jié)果為【】。
#include<stdio.h>
main()
{staticintb[2][3]={{1,2,3},{4,5,6}};
staticint*pb[]={b[0],b[1]};
inti,j;
i=0;
for(j=0;j<3;j++)
printf("b[%d][%d]=%d",i,j,*(pb[i]+j));
printf("\n");
}
28.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時,確定a、b、c能構(gòu)成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&C);
if(())printf("YES\n");/*a、b、c能構(gòu)成三角形*/
elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/
}
29.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{intI;
for(I=0;【】!='\n';I++);
return(I);}
30.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}
31.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%f",PI);
32.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結(jié)構(gòu)必須是______。
33.若有以下程序:
main()
{
inta[4][4]={{l,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},
{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后輸出的結(jié)果是【】。
34.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
35.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{intn=12345,d;
while(n!=0){d=n%10;printf("%d",D);n/=10;}
}
36.與結(jié)構(gòu)化需求分析方法相對應(yīng)的是【】方法。
37.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{ihtx=0210;printf("%x\n",x);
}
38.執(zhí)行以下程序后,輸出‘#’號的個數(shù)是______。
#include<stdio.h>
main()
{
inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)
putchar('#');
}
39.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補(bǔ)充家整。
seanf("%d",【】);
printf("%d\n",【】);
40.有以下程序:
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)填入的是【】。
三、1.選擇題(20題)41.若x是int型變量,且有下面的程序片段:for(x=3;x<6;x++)printf(x%2)?("**%d"):(”##%d\n”),x);上面程序片段的輸出結(jié)果是()
A.**3##4**5
B.##3**4##5
C.##3**4##5
D.**3##4**5
42.有以下程序
#include<string.h>
main()
{charp[20]={′a′,′b′,′c′,′d′},q[]="abc",r[]="abcde";
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序運行后的輸出結(jié)果是
A.9B.6C.11D.7
43.假定w、x、y、m均為int型變量,則執(zhí)行下列的語句后,m的值是()。w=6,x=4,y=3;m=(w<x)?w:x;m=(m<y)?m:y;
A.3B.4C.5D.6
44.以下程序的輸出結(jié)果是
#include<stdio.h>
intfun(intn,int*s)
{intf1,f2;
if(n==0||n==1)
*s=1;
else
{fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}}
voidmain()
{intx;
fun(6,&x);
printf("\n%d",x);}
A.7B.13C.9D.10
45.有以下程序
#inGlude<stdlib.h>
structNODE{
intnum;
structNODE*next;
}
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(stnlctNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next;r;r->next=NULL;
sum+=q->next->Num,sum+=p->num;
printf("%d\n",sum);
}
執(zhí)行后輸出結(jié)果是
A.3B.4C.5D.6
46.有以下結(jié)構(gòu)體說明和變量定義,如下圖所示,指針p、q、r分別指向一個鏈表中的3個連續(xù)結(jié)點。structnode{intdata;structnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指結(jié)點的先后位置交換,同時要保持鏈表的連續(xù),以下錯誤的程序段是()。
A.r->next=q;q->next=r->next;p->next=r;
B.q->next=r->neaxt;p->next=r;r->next=q;
C.p->next=r;q->next=r->next;r->next=q;
D.q->next=r->next;r->next=q;p->next=r;
47.結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是()。
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序的易讀性
48.運行以下程序后,如果從鍵盤上輸入6514<回車>,則輸出結(jié)果為______。main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}
A.m=3B.m=2C.m=1D.m=0
49.以下能正確對整型數(shù)組賦初值的語句是______。
A.inta[4]={1,2,3,4,5};
B.inta[2][2]={1,2,3,4,5};
C.inta[4]={'1','2','3','4');
D.inta[3][]={1,2,3,4,5,6};
50.下述關(guān)于C語言文件的操作的結(jié)論中,正確的是______。
A.對文件操作必須先關(guān)閉文件
B.對文件操作必須先打開文件
C.對文件操作順序無要求
D.對文件操作前必須先測文件是否存在,然后再打開文件
51.若程序中已包含頭文件stdio.h,以下選項中,正確運用指針變量的程序段是
A.int*i=NULL;scanf("%d",i);
B.float*f=NULL;*f=10.5;
C.chart='m',*c=&t;*c=&t;
D.long*L;L='\0';
52.設(shè)有以下說明語句:structex{intx;flocty;charz;}example;則下面的敘述中不正確的是()
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.example是結(jié)構(gòu)體類型名
C.x,y,z都是結(jié)構(gòu)體成員名
D.structex是結(jié)構(gòu)體類型
53.閱讀以下函數(shù):fun(char*s1,char*s2){inti=0;while(s1[i]==s2[i]&&s2[i]!='\0')i++;return(s1[i]=='\0'&&s2[i]=='\0');}此函數(shù)的功能是()。
A.將s2所指字符串賦給s1
B.比較s1和s2所指字符串的大小,若s1比s2的大,函數(shù)值為1,否則函數(shù)值為0
C.比較s1和s2所指字符串是否相等,若相等,函數(shù)值為1,否則函數(shù)值為0
D.比較s1和s2所指字符串的長度,若s1比s2的長,函數(shù)值為1,否則函數(shù)值為0
54.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達(dá)式是
A.kk>=′A′&&kk<=′Z′
B.!(kk>=′A′||kk<=′Z′)
C.(kk+32)>=′a′&&(kk+32)<=′Z′
D.isalpha(kk)&&(kk<91)
55.以下不合法的數(shù)值常量是()。
A.11B.lelC.8.0E0.5D.0xabcd
56.下面程序的輸出結(jié)果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}
A.xyzabcABCB.abcABCC.xyzabcD.xyzABC
57.設(shè)變量已正確定義,則下列能正確計算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
58.使計算機(jī)病毒傳播范圍最廣的媒介是________
A.硬磁盤B.軟磁盤C.內(nèi)部存儲器D.互聯(lián)網(wǎng)
59.有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];prizltf("%d\n",j);}程序運行后的輸出結(jié)果是
A.42B.45C.56D.60
60.函數(shù)ftell(fp)的作用是()。
A.得到fp所指向文件的當(dāng)前讀寫位置B.初始化流式文件的位置指針C.移動流式文件的位置指針D.以上三種答案均正確
四、選擇題(20題)61.以下能定義為用戶標(biāo)識符的是()。
A.printfB.charC._8abcD.Void
62.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序
63.在數(shù)據(jù)庫設(shè)計中,將E—R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。
A.需求分析階段B.概念設(shè)計階段C.邏輯設(shè)計階段D.物理設(shè)計階段
64.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高
65.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運行維護(hù)過程
66.
67.以下敘述中正確的是()。A.A.break語句只能用在循環(huán)體內(nèi)和switch’語句體內(nèi)
B.continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
D.break語句只能用于switch語句體中
68.
69.若有以下定義和語句:
則輸出結(jié)果是()。
A.107B.105C.55D.58
70.有以下程序程序運行后的輸出結(jié)果是()。
A.21B.11C.20D.10
71.下列選項不符合良好程序設(shè)計風(fēng)格的是()。
A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計原則是高耦合、高內(nèi)聚
72.若有以下程序:inta=1,b=2:a=a^b:b=b^a:則執(zhí)行以上語句后a和b的值分別是()。
A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1
73.
74.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。
A.2B.3C.4D.5
75.
76.
77.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源
78.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。
A.A.A,BB.A,68C.65,66D.65,68
79.在面向?qū)ο蠓椒ㄖ校瑢崿F(xiàn)信息隱蔽是依靠()。
A.對象的繼承B.對象的多態(tài)C.對象的封裝D.對象的分類
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有小寫字母c。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。
注意:部分源程序給出如下。
請勿改動maini)函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(chara)
{
voidmain
{
chars[81];
print{("Enterastring:\n");
gets(s):
fun(S);
printf("Thestringafterdeleted:\n");
puts(s);
}
參考答案
1.A由題可知fun的參數(shù)為變量,而a[15]為常量,所以答案為A。
2.C轉(zhuǎn)義字符中,八進(jìn)制的表示形式為\\ddd,但是八進(jìn)制中不能包含數(shù)字8,所以C選項不合法。故本題答案為C選項。
3.BA選項中的變量b沒有定義,不能直接給變量a賦值。C選項中,*b、*c表示的是一個實型變量的地址,不能將指針型變量b的地址賦值給指針型變量c。D選項中,“a=0.0”后面應(yīng)該為逗號,不能是分號。故本題答案為B選項。
4.B解析:本題考核的知識點是for循環(huán)次數(shù)的計算.本程序中for循環(huán)的次數(shù)為c-1+1共循環(huán)了c次,而每循環(huán)一次s的值加1,所以s的值為s+c.而最開始s的值為a,故4個選項中選項B符合題意.
5.B執(zhí)行調(diào)用語句“n=fun(3);”,3被當(dāng)作實參傳遞進(jìn)去,進(jìn)行了一次調(diào)用。3被當(dāng)作實參傳進(jìn)去后,程序會執(zhí)行“elsereturnfun(k-1)+1;”,函數(shù)被調(diào)用了第2次,參數(shù)是3-1,也就是2。2被當(dāng)作參數(shù)傳進(jìn)去后,程序會執(zhí)行“elsereturnfun(k-1)+1;”函數(shù)被調(diào)用了第3次,參數(shù)是2-1,也就是1。1被當(dāng)作實參傳進(jìn)去后,程序會執(zhí)行“elseif(k==1)return1;”,函數(shù)不再被遞歸調(diào)用。所以最終結(jié)果為3次。故本題答案為B選項。
6.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)特性)。
7.C
8.B本題考查按位異或的用法。按位異或運算的規(guī)則是:兩個運算數(shù)的相應(yīng)二進(jìn)制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進(jìn)制為00000010,a=1的二進(jìn)制為00000001,a=a^b一00000011,轉(zhuǎn)化為十進(jìn)制后為3,b=b^a=00000010^00000011=00000001,即1。
9.B題目中先是將s2字符串寫入adc.dat中,然后執(zhí)行rewind函數(shù)將寫指針放置于文件開頭,寫入s1字符串。s1字符串將前5個字符覆蓋,所以最終結(jié)果為Chinang。故本題答案為B選項。
10.B在計算機(jī)中,算法被定義為對一個問題求解步驟的一種描述,是求解問題的方法,它是指令的有限序列,其中每條指令表示一個或者多個操作。算法具有有窮性、確定性、可行性、輸入和輸出五大特點。
在本題中,選項A、C、D的說法明顯偏離了算法的定義,因此正確答案選B。
11.B
12.C
13.D
14.C用數(shù)組名作為函數(shù)實參時,不是把數(shù)組的值傳遞給形參,而是把實參數(shù)組的起始地址傳遞給形參數(shù)組,這樣兩個數(shù)組就共同占用同一段內(nèi)存單元。本題通過“prt(a,5);”將數(shù)組a的首地址傳遞給了指針變量m,使指針變量m指向數(shù)組a的首地址,那么,對指針變量所指向的存儲單元的內(nèi)容的改變就是對數(shù)組a中的元素的改變。題中函數(shù)prt的作用是將指針變量m所指向的存儲單元中的元素值各加上1,故數(shù)組a中的值也隨之變化,所以。輸出的數(shù)組元素的值為2,3,4,5,6,。
15.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
16.B解析:變量b和c中分別存放字符a和A的ASCII碼,當(dāng)i的值對2求余非零時輸出ASCII碼為i+b)的字符;當(dāng)i的值對2求余為零時輸出ASCII碼為i+c的字符。分析程序可知本題選B。
17.A本題考查帶參數(shù)的宏定義。第一次函數(shù)調(diào)用求S的值,x=a+1,所以X*X*X應(yīng)寫成a+1*a+1*a+1,沒有括號優(yōu)先級,結(jié)果為l0,第二次函數(shù)調(diào)用x*X*X可寫成(a+1)*(a+1)*(a+1),所以結(jié)果為43=64。
18.B
19.C
20.AB選項中運算符“%”的運算對象為整數(shù)。C選項中不能將變量賦給表達(dá)式“x+n”。D選項中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項。
21.投影投影解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運用常規(guī)的集合運算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關(guān)系運算,如投影、選擇、連接等。投影是從二維表的列方向上進(jìn)行的運算。
22.a=14a=14解析:逗號表達(dá)式的值是以逗號分隔的最后一個表達(dá)式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結(jié)果是a=14。
23.&a[i]或a+Ia[i]或*(a+i)&a[i]或a+I\r\na[i]或*(a+i)解析:主函數(shù)中一開始定義了一個長度為20的整形數(shù)組,然后通過一個循環(huán),循環(huán)20次給它的每個元素賦初值,所以在第一個空格處應(yīng)填各個元素的地址,即填&a[i]或a+i,然后再通過一個循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于0將其累加到變量sum中,所以第二個空格處應(yīng)該填入數(shù)組元素,即應(yīng)該填a[i]或*(a+i)。
24.5555解析:本題考查的重點是對宏定義的理解。#define指令定義一個標(biāo)識符和一個串,編譯程序在對C源程序處理時.發(fā)現(xiàn)該標(biāo)識符都用該串替換,因此,在語句k=N*N*5將替換成k=M+M*M+M*5后,M被替換成5,從而k=5+5*5+5*5=55。
25.77解析:在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語句,該語句的執(zhí)行過程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回推到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,在回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。
26.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊列也是線性表,也町以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。
27.b[0][0]=1b[0][1]=2b[0][2]=3
28.(a+b>C)&&(a+c>B)&&(b+c>A)(a+b>C)&&(a+c>B)&&(b+c>A)解析:本題主要考查運算符邏輯與“&&”的用法。
29.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+I)來訪問字符串中的第I個元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個元素進(jìn)行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。
30.JD
31.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進(jìn)行替換的。
32.順序存儲(順序方式存儲)順序存儲(順序方式存儲)解析:二分法查找對表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲。
33.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素;若不是則判斷a[¨剛的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a(bǔ)[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。
34.數(shù)據(jù)存儲數(shù)據(jù)存儲
35.5432154321解析:在while循環(huán)中,d=n%10;語句每次求得的結(jié)果是n個位上的數(shù)值,例如12345÷10所得的余數(shù)就是個位上的5。接下來輸出得到的個位數(shù)字d,然后執(zhí)行n/=10;語句,該語句等價于n=n/10;。在C語言中,如果/運算的兩個運算分量都是整數(shù),那所得的結(jié)果也截尾取整,所以12345/10=1234,即n-=n/10;語句的作用是讓n截去個位上的數(shù)字。由此可知,隨著while循環(huán)的繼續(xù),n依次為12345、1234、123、12、1,而每次輸出n的個位數(shù)字將為5、4、3、2、1。故本題應(yīng)填543210。
36.結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計解析:與結(jié)構(gòu)化需求分析方法相對應(yīng)的是結(jié)構(gòu)化設(shè)計方法。結(jié)構(gòu)化設(shè)計就是采用最佳的可能方法設(shè)計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術(shù)。
37.8888解析:程序中的0210表示八進(jìn)制數(shù),%x是以十六進(jìn)制形式輸出。本題可先將0210轉(zhuǎn)換為十進(jìn)制數(shù),再將其轉(zhuǎn)換為十六進(jìn)制數(shù)。
38.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了四次.當(dāng)i=1時,由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán).當(dāng)i=2時,執(zhí)行內(nèi)層循環(huán),輸出一個#當(dāng)i=3時,內(nèi)層循環(huán)循環(huán)兩次,輸出兩個#,當(dāng)i=4時,內(nèi)層循環(huán)循環(huán)三次,輸出三#。當(dāng)i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。
39.k[7]*kk[7]*k解析:scanf()函數(shù)有兩個參數(shù),第—個參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空格處位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應(yīng)該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個需要計算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號分隔開)。而第二個空位于printf()函數(shù)的第二個參數(shù)處,所以應(yīng)該填*K。
40.ii解析:上三角的情況是對數(shù)組a[i][j],j≥j的時候,因此,在j≥i時應(yīng)輸出所需要的元素,故橫線上應(yīng)填i。
41.D
42.B解析:strcpy()函數(shù)的功能是將字符串q復(fù)制到從p[3]位置開始的存儲單元,同時復(fù)制字符串結(jié)束標(biāo)志'\\0'到p[6]中。函數(shù)strlen()返回的是字符串中不包括'\\0'在內(nèi)的實際長度,故本題答案為B)
43.A解析:條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達(dá)式b的值,當(dāng)a為假時,其值等于表達(dá)式c的值。第一個表達(dá)式:w=6<x=4為假,所以返回x的值,即m=x=4;第二個表達(dá)式:m=4<y=3為假,所以返回y的值,即m=y=3。
44.B解析:考查函數(shù)的遞歸調(diào)用。n=0或n=1是遞歸的終止條件,然后利用已知值逐步遞推求出未知值。通過傳送地址值,在被調(diào)用函數(shù)中直接改變調(diào)用函數(shù)中的變量的值。
45.B解析:本題中定義了一個結(jié)點structNODE,在主函數(shù)中定義了三個結(jié)點變量指針p、q和r,接著通過malloc函數(shù)分配了三個結(jié)點并讓p、q和r分別指向他們,再接著給p、q和r所指向的結(jié)點的num域賦值為1、2、3,然后讓結(jié)點p指向q,讓q指向r,r指向NULL。顯然q->next->num的值為指針r所指向結(jié)點的num域的值為3,p->hum的值為指針P所指向結(jié)點的num域的值為1,故最后輸出s的值為3+1=4。
46.A解析:題目中要求將q和r所指結(jié)點的先后位置交換,即要求p所指結(jié)點的指針域指向r所指向的結(jié)點,r所指向結(jié)點的指針域指向q所指向的結(jié)點,q所指向結(jié)點的指針域指向r所指向的結(jié)點。選項A首先讓r所指向指針的指針域指向q所指向的結(jié)點,這樣就將r所指向結(jié)點的指針域指向的結(jié)點丟失了,故選項A錯誤。選項B首先讓q所指向結(jié)點的指針域指向r所指向結(jié)點的指針域所指向的結(jié)點,然后,讓p所指向結(jié)點的指針域指向r所指向的結(jié)點,最后讓r所指向結(jié)點的指針域指向q所指向的結(jié)點,滿足要求,故選項B正確。選項C首先讓p所指向結(jié)點的指針域指向r所指向的結(jié)點,然后讓q所指向結(jié)點的指針域指向r所指向結(jié)點的指針域所指向的結(jié)點,最后讓r所指向結(jié)點的指針域指向q所指向的結(jié)點,滿足要求,故選項C正確。選項D首先讓q所指向結(jié)點的指針域指向r所指向結(jié)點的指針域所指向的結(jié)點,然后,讓r所指向結(jié)點的指針域指向q所指向的結(jié)點,最后讓p所指向結(jié)點的指針域指向r所指向的結(jié)點,滿足要求,故選項D正確。所以,4個選項中選項A符合題意。
47.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。
48.C解析:分析程序可知,該程序?qū)崿F(xiàn)的功能是對數(shù)m,n求其最大公約數(shù)。在本題中m與n的值分別為65與14,其最大公約數(shù)為1,故其輸出結(jié)果為m=1。
49.C解析:A、B定義的數(shù)組長度小于花括號中數(shù)據(jù)的個數(shù),C是將數(shù)字字符的ASCII碼值作為整數(shù)賦給整型數(shù)組的各元素,D是定義二維數(shù)組,第二維的長度不能缺省。
50.B解析:在C中對文件操作必須先打開文件,待文件操作完畢后要關(guān)閉文件。對文件以讀的方式進(jìn)行打開操作時,同時會執(zhí)行文件的檢查文件是否存在,不存在將會返回空的文件指針,如果對文件以寫的方式打開時,文件不存在,將會自動創(chuàng)建文件,因此在C中打開文件前不必對其檢查文件是否存在,故答案為B。
51.D解析:選項A定義了一個整型變量i,并且初始化讓它指向NULL,接著通過seanf()函數(shù),改變i指向的存儲空間的值,選項A中首先定義了整型指針變量i并初始化為NULL,即表示指針i不指向任何內(nèi)存,即此時程序還沒有為i在內(nèi)存中開辟存儲單元,而在scanf()函數(shù)中笫;個參數(shù)是地址參數(shù),顯然在這里i不在表示地址,所以下面的scanf('%d',i)語句是不正確的,故選項A不正確;選項B定義了一個浮點型變量f并初始化讓它指向NULL,而當(dāng)一個指針變量指向NULL以后不能在給它賦值,而按下來的程序中為其賦了一值,故選項B錯誤;選項C中首先定義了一個字符變量t并給它賦初值\'m\',然后定義一個字符型指針c并讓它指向了變量t,這一部分正確,然后接著用了一個語句“c=&t;”應(yīng)該特該語句中c前的“*”去掉,故選項c運用指針變量不正確。所以,4個選項中選項D符合題意。
52.B
53.C解析:在函數(shù)fun()中有兩個字符型指針變量s1和s2,在函數(shù)中程序執(zhí)行while循環(huán),該循環(huán)退出條件有兩個:一個是s1[i]!=s2[i](兩個字符串不相等):第二個是s1[i]和s2[i]相等均為“\\0”(兩個字符串相等)。循環(huán)退出后,執(zhí)行return語句,即兩個字符串相等則返回1,不相等則返回0。所以,C選項為所選。
54.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在'A'和'Z'之間就可以了,選項A)和C)符合要求。函數(shù)isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65到90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。
55.C解析:指數(shù)形式規(guī)定字母e(或E)之前必須有數(shù)字(可以是一個十進(jìn)制的整數(shù)或小數(shù)),之后必須是一個整數(shù)。選項C的字母E之后是一個小數(shù),故應(yīng)該選擇C。
56.B解析:strcpy(str1,s1):作用是將字符串s1拷貝到字符數(shù)組str1中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個字符數(shù)組p1,p2,sir,strcat(p1,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。
57.D解析:要正確計算函數(shù)f=n!,由n!的數(shù)學(xué)定義可知n!=n*(n-1)*(n-2)*……*1。在選項A)中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計算f=n!=O,所以選項A)不正確。在選項B)中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計算得到f=(n-1)!,所以選項B)不正確。在選項C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項C)不正確。在選項D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計算f=n!,所以選項D)正確。
58.D
59.B解析:本題考查的是while語句和if語句的綜合應(yīng)用。程序中while的循環(huán)條件是1++<7,由于程序開始時將i初始化為0,而且循環(huán)體中沒有改變變量i的語句,只有循環(huán)條件中i的自增,所以當(dāng)i從0自增到6時循環(huán)的循環(huán)體一共被執(zhí)行了7次,但是在循環(huán)體中,i的值為從1到7。在循環(huán)體中只有一條if語句,其條件表達(dá)式為p[i]%2,當(dāng)p[i]為奇數(shù)時,p[i]除以2余1,條件表達(dá)式的值為“真”,所以整個循環(huán)語句所做的事就是:累計p[1]到p[7]之間的奇數(shù)到變量j中。所以最后j的值應(yīng)該為13+15+17=45.選項B符合題意。
60.A解析:位置指針當(dāng)前值函數(shù)ftell()的基本調(diào)用格式為:fiell(fp)。
fiell()函數(shù)的參數(shù)說明:“fp”是指向文件的文件型指針。
fiell函數(shù)的功能:得到fp所指向文件的當(dāng)前讀寫位置,即位置指針的當(dāng)前值,如果函數(shù)的返回值為-1L,表示出錯。
61.B用戶自定義標(biāo)識符不能與關(guān)鍵字相同。但可以與庫函數(shù)名相同,只是一般不建議用戶這么做。
62.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
63.CC)【解析】邏輯結(jié)構(gòu)設(shè)計的任務(wù):概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),為了能夠用某一DBMS實現(xiàn)用戶需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計所要完成的任務(wù)。它包括從E—R圖向關(guān)系模式轉(zhuǎn)換和邏輯模式規(guī)范化及調(diào)整、實現(xiàn)。
64.A軟件危機(jī)主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進(jìn)度無法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。所以選擇A。
65.A通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度航空航天產(chǎn)業(yè)投資借款合作協(xié)議3篇
- 乒乓球-正手攻球 說課稿 -八年級體育與健康
- 《數(shù)學(xué)游戲分享-數(shù)數(shù)比比》說課稿-2024-2025學(xué)年一年級上冊數(shù)學(xué)蘇教版
- 2025年度購物中心物業(yè)維護(hù)與管理及商業(yè)活動執(zhí)行合同3篇
- Unit 2 Last weekend PA Let's learn(說課稿)-2024-2025學(xué)年人教PEP版英語六年級下冊
- 2025年度蝦苗及蝦飼料進(jìn)出口貿(mào)易合同范本3篇
- Module 1 wonders of the world unit 3 language in use 英文版說課稿 2024-2025學(xué)年外研版九年級英語上冊
- 2《致云雀》說課稿 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- Unit 2 Morals and Virtues Listening and Speaking 說課稿-2023-2024學(xué)年高中英語人教版(2019)必修第三冊
- 第三單元整體 說課稿-2024-2025學(xué)年統(tǒng)編版語文五年級上冊
- 小學(xué)語文生本課堂教學(xué)設(shè)計
- 上海某建筑基礎(chǔ)及上部結(jié)構(gòu)加固工程施工方案磚木結(jié)構(gòu) 磚混結(jié)構(gòu)
- 精神病醫(yī)院財務(wù)后勤總務(wù)管理制度
- 停車場施工施工組織設(shè)計方案
- GB/T 37238-2018篡改(污損)文件鑒定技術(shù)規(guī)范
- 普通高中地理課程標(biāo)準(zhǔn)簡介(湘教版)
- 河道治理工程監(jiān)理通知單、回復(fù)單范本
- 超分子化學(xué)簡介課件
- 高二下學(xué)期英語閱讀提升練習(xí)(一)
- 易制爆化學(xué)品合法用途說明
- 【PPT】壓力性損傷預(yù)防敷料選擇和剪裁技巧
評論
0/150
提交評論