




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年廣東省惠州市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i]:returnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。、A.45B.50C.60D.55
2.下列程序的輸出結(jié)果是()#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf(“%d”,a);}A.19B.18C.6D.8
3.若有定義語句“char*s1=“OK”,*s2=“ok”;”,以下選項中,能夠輸出“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);
4.
5.
6.假設(shè)把整數(shù)關(guān)鍵碼K散列到有N個槽的散列表,以下哪些散列函數(shù)是好的散列函數(shù)()
A.h(K)=KmodN
B.h(K)=1
C.h(K)=K/N
D.h(K)=(K+rand(N))modN,rand(N)返回一個0到N-1的整數(shù)
7.按照“先進(jìn)先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
8.下列描述中正確的是()。
A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
9.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
10.對于循環(huán)隊列,下列敘述中正確的是()。
A.隊頭指針是固定不變的
B.隊頭指針一定大于隊尾指針
C.隊頭指針一定小于隊尾指針
D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針
11.以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
12.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為
A.intB.floatC.doubleD.不確定
13.若變量已正確定義,下列正確的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
14.設(shè)有定義:intx=2.以下表達(dá)式中,值不為6的是()。A.2*x,x+=2B.x++.2*xC.x*=(1+x)D.x*=x+1
15.設(shè)x和y均為bool量,則x&&y為真的條件是()。
A.它們均為真B.其中一個為真C.它們均為假D.其中一個
16.在C語言中,要求運算數(shù)必須是整型的運算符是()。
A./B.++C.!=D.%
17.C語言源程序的擴展名是()。
A..CB..exeC..objD..cp
18.如有inta=11;則表達(dá)式(a/1)的值是()。
A.0B.3C.4D.11
19.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
20.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf(“%d\n,”,S(k+j));}程序的運行結(jié)果是()。
A.33B.197C.143D.28
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
intfun(int*x,intn)
{if(n==0)returnx[0];
elsereturnx[0]+fun(x+1,n-1);
}
main()
{inta[]={1,2,3,4,5,6,7};
printf("%d\n",fun(a,3));}
22.層次模型的典型代表是IBM公司的【】數(shù)據(jù)庫管理系統(tǒng)。
23.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲空間是______的。
24.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
25.若x和a均是int型變量,則計算完x=(a=4,6*2)后的x值為______。
26.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。
27.下列程序的運行結(jié)果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
28.數(shù)據(jù)結(jié)構(gòu)分為線性數(shù)據(jù)結(jié)構(gòu)和非線性數(shù)據(jù)結(jié)構(gòu),帶鏈的隊列屬于()。
29.在兩種基本測試方法中,【】測試的原則之一是保證所測模塊中每一個獨立路徑至少要執(zhí)行一次。
30.以下程序的輸出結(jié)果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
31.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大的數(shù),再求這N個最大值中的最小的那個數(shù)作為函數(shù)值返回。請?zhí)羁铡?/p>
#include<stdio.h>
#defineN100
intfun(int(*a)[N])
{
introw,col,max,min;
for(row=0;row<N;row++
{
for(max=a[row][0],col=1;col<N;col++)
if(【】)max=a[row][col];
if(row==0)min=max;
elseif(【】)min=max;
}
returnmin;
}
32.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括選擇、連接和【】。
33.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
ginclude"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
pfintf("Enterx:");scanf("%lf"&x);
y1=fun([10]);y2=fun([11]);
pin
34.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和方法的機制稱為______。
35.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結(jié)果如下:
ABCDE
FGHI
JKL
MN
O
請?zhí)羁胀瓿稍摮绦颉?/p>
main()
{inti,j,n;charch='A';
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
}
elseprintf("nistoolarge!\n")
printf("\n"0);
}
36.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
37.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
38.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。
39.關(guān)系操作的特點是______操作。
40.下面程序的運行結(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]);}}}
三、1.選擇題(20題)41.利用fseek函數(shù)可以實現(xiàn)的操作是
A.改變文件的位置指針B.文件的順序讀寫C.文件的隨機讀寫D.以上答案均正確
42.源程序中應(yīng)包含一些內(nèi)部文檔,以幫助閱讀和理解程序,源程序的內(nèi)部文檔通常包括選擇合適的標(biāo)識符、注釋和
A.程序的視覺組織B.盡量不用或少用GOTO語句C.檢查輸入數(shù)據(jù)的有效性D.設(shè)計良好的輸出報表
43.a、b、c、d變量均為float類型且已正確賦值,下列選項中與數(shù)學(xué)式子“2ab/(5cd)”等價的C語言表達(dá)式是()。
A.2/5*a/c*d/b
B.a/(5*c*d)*(2*b)
C.2*a*b/5*c*d
D.2/5*a*d*(1/c*d)
44.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
45.若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態(tài)存儲單元int*pp=______malloc(sizeof(int));則應(yīng)填入______。
A.intB.int*C.(*int)D.(int*)
46.在以下術(shù)語中,與數(shù)據(jù)的邏輯結(jié)構(gòu)無關(guān)的是______。
A.線性結(jié)構(gòu)B.鏈?zhǔn)浇Y(jié)構(gòu)C.樹型結(jié)構(gòu)D.網(wǎng)狀結(jié)構(gòu)
47.可以在C語言中用做用戶標(biāo)識符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
48.判斷char型變量cl是否為大寫字母的正確表達(dá)式是
A.′A′<=cl<=′Z′
B.(cl>=A)&&(cl<=Z)
C.(′A′>=cl)||(′Z′<=cl)
D.(cl>=′A′)&&(cl<=′Z′)
49.假定所有變量均已正確說明,以下程序段運行后,x的值是______。a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
50.以下選項中合法的實型常數(shù)是A.5E2.0B.E-3C.2.00E-01D.1.3E
51.設(shè)有定義:intk=1,m=2;noatf=7;則下列選項中錯誤的表達(dá)式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
52.若有程序片段:inta[12]={0},*p[3],**pp,ifor(i=0;i<3;i++)p[i]=&a[i*4];pp=p;則對數(shù)組元素的錯誤引用是()
A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)
53.在執(zhí)行完下列的C語句段之后,則B的值是()。Chara="A";intb;B=((34&&56)&&(a<'b'));
A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯
54.表達(dá)式~0x11的值是()。
A.0xFFEEB.0x71C.0x0071D.0xFFE1
55.若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是()。
A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);
56.以下程序輸出正確的是______。amovep(int*p,int(*A)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}
A.56B.25C.34D.程序錯誤
57.若有以下類型說明語句:charw;intx;flooaty,z;則表達(dá)式w*x+z-y的結(jié)果為______類型。
A.floatB.charC.intD.double
58.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是使位置指針從文件末尾向前移2*sizeof(int)字節(jié))#include<stdio.h>main(){FILE*fp;inti,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/felose(fp);printf("%d\n",b);}執(zhí)行后輸出結(jié)果是
A.2B.1C.4D.3
59.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間
60.若x=2,y=3,則x&y的結(jié)果是()。
A.0B.2C.3D.5
四、選擇題(20題)61.定義如下變量和數(shù)組:inti;intx[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
62.有以下程序:
#include<stdio.h>
voidmain()
{fILE*fp;inti,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);
fclose(fp)
fp=fopen("data.dat","rb");
fseek(fp,-2L*sizeof(int),1,fp);/*文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/
fclose(fp);
printf("%d\n",b);
}
程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是()。
A.使位置指針從文件末尾向前移2*sizeof(int)字節(jié)
B.使位置指針從文件末尾向前移2字節(jié)
C.使位置指針向文件末尾向前移懂2*sizeof(int)字節(jié)
D.使位置指針向文件末尾移動2字節(jié)
63.以下程序的輸出結(jié)果是()。
main()
{char*s="12134211";
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{case’1’:v1++;
case’3’:v3++;
case’2’:v2++;
defaule:v4++;
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n,v1,v2,v3,v4);
}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=4,v2=7,v3=5,v4=8
64.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()0、
A.雙向鏈表
B.帶鏈的棧
C.二叉鏈表
D.循環(huán)鏈表
65.一間宿舍可住多個學(xué)生,則實體宿舍和學(xué)生之間的聯(lián)系是()。
A.一對一B.一對多C.多對一D.多對多
66.下列字符串是標(biāo)識符的是()。
A.aaB.a-classC.intD.LINE1
67.模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的一般度量標(biāo)準(zhǔn)是
A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機制和控制方法
68.以下程序的輸出結(jié)果是()。
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010B.99C.910D.109
69.
70.以下敘述中正確的是()。A.A.當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)
D.c語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
71.
72.有兩個關(guān)系R、S如下:
由關(guān)系R通過運算得到關(guān)系s,則所使用的運算為()。
A.選擇B.投影C.插入D.連接
73.下列關(guān)于Internet和Web的說法中,正確的是()。
A.Web就是Internet的別稱
B.Web是基于Internet之上的一個應(yīng)用服務(wù)
C.Internet是基于Web之上的一個信息系統(tǒng)
D.Internet與Web沒有任何關(guān)系
74.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分為()。A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
75.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之問的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
76.下列程序的運行結(jié)果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2
77.
78.若有定義“inta=5,b=7;”,則表達(dá)式a%-(b%2)運算后,a的值為()。
A.0B.1C.11D.3
79.以下選項中不能作為c語言合法常量的是()。
80.成功的測試是指A.A.運行測試實例后未發(fā)現(xiàn)錯誤
B.發(fā)現(xiàn)程序的錯誤
C.證明程序正確
D.軟件產(chǎn)生
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的:個邊長(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構(gòu)成三角形則返回l;若不能,則返回0。
例如,輸入3個邊長為3,4,5,實際輸入時,數(shù)與數(shù)之間以Enter鍵分隔而不是逗號。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<math.h>
intproc(inta,intb,intc)
{
if(a+b>c&&b-c>a&&a+c>b)
{
if(a==b&&b==c)
//****found****
return1;
elseif(a==b||b==C||a==c)
return2;
//****found****
elsereturn3;
}
elsereturn0;
}
voidmain
{
inta,b,c,shape;
printf("\nInputa,b,c:");
scanf("%d%d%d",&a,&b,&c);
printf("\na=%d.b=%d,c=%d\n",a,b,c);
shape=proc(a,b.c):
printf("\n\nTheshape:%d\n",shape);
}
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為:132333431424344415253545則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.C在函數(shù)intfun(intx[],intn)的定義中,變量sum為一個靜態(tài)局部變量。由于在整個程序運行期間,靜態(tài)局部變量在內(nèi)存中的靜態(tài)存儲中占據(jù)著永久的存儲單元。函數(shù)intfun(intx[],intn)的功能是求出數(shù)組x[]各個元素的和,所以在主函數(shù)中,調(diào)用函數(shù)fun(a,5)后,變量sum=1+2+3+4+5=15,當(dāng)再次調(diào)用fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。
2.A本題考查switch語句。當(dāng)i=1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,a=a+2=2,a=a+3=5;當(dāng)i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下運行,a=a+2=7,a=a+3=10;當(dāng)i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a=a+2=13,a=a+3=16;當(dāng)i=4時,執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。
3.B“strcmp(S1,S2)”是字符串比較函數(shù),比較規(guī)則是兩個字符串自左向右逐個字符相比較(按照ASCII值大?。?。因為“OK”<“ok”,所以“strcmp(S1,S2)”為負(fù)值。故本題答案為B選項。
4.D
5.D
6.A
7.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進(jìn)先出”的原則組織數(shù)據(jù)的。
【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進(jìn)先出,后進(jìn)后出。
8.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計算機軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進(jìn)度無法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。軟件項目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項C正確。
9.A
10.D循環(huán)隊列的隊頭指針與隊尾指針都不是固定的,隨著入隊與出隊操作要進(jìn)行變化。因為是循環(huán)利用的隊列結(jié)構(gòu),所以隊頭指針有時可能大于隊尾指針,有時也可能小于隊尾指針。
11.A解析:C語言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。
12.C解析:根據(jù)混合運算規(guī)則,如果有一個數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運算的結(jié)果最終也是double型。
13.D解析:本題考查兩個知識點:①C語言用'\\n'這個字符常量表示換行;②函數(shù)getchar()的作用是從終端輸入一個字符,當(dāng)遇到換行時結(jié)束輸入。
14.A[解析]A)選項中逗號表達(dá)式先計算第一表達(dá)式2*x,然后計算表達(dá)式x+=2的值,即x=x+2即4.整個逗號表達(dá)式為第二個表達(dá)式的值4.所以選A)。B)選項中首先計算逗號表達(dá)式中第一個表達(dá)式x++,此時x為3.再執(zhí)行第二個表達(dá)式2*x=2*3=6.所以逗號表達(dá)式為第二個表達(dá)式的值6.C)選項的賦值表達(dá)式可以表示為x==x*(1+x)=2*(1+2)=6.D)選項中的表達(dá)式可以表示為x=x*(x+1)=2*3=6.
15.A
16.D解析:/、++和!=的操作數(shù)既可能是整型,又可能是實型。而%的操作數(shù)只能是整型。
17.AC語言源程序的擴展名是.C,目標(biāo)文件的擴展名是.obj,可執(zhí)行文件的擴展名是.exe。故本題答案為A選項。
18.D
19.C解析:解答本題,首先要明白在對指針進(jìn)行加、減運算的時候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。
20.CS為帶參數(shù)的宏定義,運行“S(k+j)”為4*(k+j)*k+j+1=143。故本題答案為C選項。
21.1010解析:題目中的fun()函數(shù)直接調(diào)用了自身,所以它是遞歸函數(shù)。函數(shù)中只有一條if語句,意思是:若n為0,則返回x所指內(nèi)容(x[0]等價于*x),否則返回x所指內(nèi)容加上fun(x+1,n-1)。即,當(dāng)n>0時,fun(x,n)=x[0]+fun(x+1,n-1)=x[0]+x[1]+fun(x+2,n-2)=…=x[0]+x[1]+…+x[n];當(dāng)n=0時,fun(x,n)=x[0];當(dāng)n<0時,函數(shù)將無限循環(huán)遞歸調(diào)用下去,因為n-1下去永遠(yuǎn)也不會等于0。所以本題中fun(a,3)=a[0]+a[1]+a[2]+a[3]=12+3+4=10。故應(yīng)該填10。
22.IMS(informationManagementSystem)
23.連續(xù)連續(xù)解析:順序存儲結(jié)構(gòu)具有兩個特點:1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。
24.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
25.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個表達(dá)式的值:x=(a=4,6*2)=2*6=12。
26.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。
27.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。
“表達(dá)式1?表達(dá)式2:表達(dá)式3”的功能是:表達(dá)式1的值若非0,則計算表達(dá)式2的值,且表達(dá)式2的值為最終結(jié)果;若表達(dá)式1的值為0,則計算表達(dá)式3的值,且為最終結(jié)果。
本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。
28.線性數(shù)據(jù)結(jié)構(gòu)線性數(shù)據(jù)結(jié)構(gòu)解析:隊列的鏈?zhǔn)酱鎯ΨQ為鏈隊列,它屬于線性數(shù)據(jù)結(jié)構(gòu)。
29.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本題考查軟件工程的測試。測試一般有兩種方法:黑盒測試和白盒測試。黑盒測試不考慮程序的內(nèi)部邏輯結(jié)構(gòu)和處理過程,只著眼于程序的外部特性。用黑盒測試來發(fā)現(xiàn)程序中的錯誤,必須用所有可能的輸入數(shù)據(jù)來檢查程序能否都能產(chǎn)生正確的輸出。白盒測試是在了解程序內(nèi)部結(jié)構(gòu)和處理過程的基礎(chǔ)上,對程序的所有路徑進(jìn)行測試,檢查路徑是否都能按預(yù)定要求正確工作。因此,劃線處應(yīng)填入“白盒(箱)”或“WhiteBox”。
30.SOSO解析:題中需要注意兩個問題:一是for循環(huán)的修正表達(dá)式共執(zhí)行兩次“i-”操作;二是*p[i]是對某個字符的引用。
31.a[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)max<min或min>max或max<=min或min>=maxa[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)\r\nmax<min或min>max或max<=min或min>=max解析:本題有兩層for循環(huán),主函數(shù)中定義了整型變量row、col、max和min,其中row用來存放外循環(huán)中的循環(huán)次數(shù),col用來存放內(nèi)循環(huán)中的次數(shù),max記錄每行中的最大值,min記錄所有行中最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0列元素值,然后從第一列開始依次與max進(jìn)行比較。如果大于max則將其值賦給max,當(dāng)每一行循環(huán)結(jié)束,max記錄了每一行的最大值。所以第一個空應(yīng)該填a[row][col]>max或a[row][col]>=max。退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時,將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應(yīng)該填max>min或mm>max,當(dāng)退出外循環(huán)時,min為所有行中的最大值的最小值。
32.投影專門關(guān)系運算包括對單個關(guān)系進(jìn)行垂直分解(投影操作)或水平分解(選擇操作)和對多個關(guān)系的結(jié)合(連接操作)等。
33.用x+8代替函數(shù)fun(doublex)中形式參數(shù)x。用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
34.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。
35.ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;priintf("\n");或putchar('\n');ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;\r\npriintf('\\n');或putchar(\'\\n\');解析:因為ch被初始化為\'A\',而內(nèi)循環(huán)中有—條輸出ch的語句,整個程序都沒有一條改變ch值的語句。所以,第1空應(yīng)該填ch++或其它類似的表達(dá)式,以使每次輸出一個字母后ch都能變?yōu)橄乱粋€字母。內(nèi)循環(huán)結(jié)束后,代表這一行已經(jīng)輸出完畢,此時即將開始下一行的輸出,所以在第2空位置應(yīng)該輸出一個換行符,故應(yīng)填入printf('\\n');或其他等價形式。
36.調(diào)試調(diào)試
37.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
38.22解析:'\\13':表示八進(jìn)制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進(jìn)制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個字節(jié)。
39.集合集合
40.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i=5,因為switch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調(diào)用P(a[i++])=P(a[4])=P(5),輸出5,之后i自加1等于5。
41.D解析:用fseek函數(shù)可以實現(xiàn)改變文件的位置指針,從而實現(xiàn)對文件的順序和隨機讀寫。
42.A解析:源程序文檔化主要包括三個方面的內(nèi)容:標(biāo)識符的命名、程序中添加注釋以及程序的視覺組織。
43.B解析:選項A和選項D中首先計算2/5,因為兩個計算分量都是整型,所以結(jié)果為2,與實際運算不符;選項B中因為乘除法滿足交換律,所以2*b放前面和放后面都是一樣的,所以滿足題目要求;選項C中的表達(dá)式等價于2abcd/5,所以不滿足題目要求。故應(yīng)該選擇B。
44.C解析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語句要輸出的值就是a[4]。
45.D解析:不論p是指向什么類型的指針變量,都可以通過強制類型轉(zhuǎn)換的方法使之類型一致,強制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)。
46.B
47.B解析:C語言規(guī)定,標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標(biāo)識符。選項A中void,C中for都為關(guān)鍵字,D中2c以字母開頭。
48.D解析:本題考查字母大小寫的判斷。字符型數(shù)據(jù)在計算機內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的。大寫字母A到Z是從65到90,所以只要變量c1大于A并且小于Z就能保證其為大寫字母。
49.B
50.C解析:在C語言中,實數(shù)有兩種表示形式:小數(shù)形式與指數(shù)形式。小數(shù)形式的實數(shù)由整數(shù)部分、小數(shù)點和小數(shù)部分組成(必須要有小數(shù)點)。指數(shù)形式字母e(E)之前必須有數(shù)字,且e或E后的指數(shù)必須為整數(shù)。選項A中,5E2.0中E后面的2.0不是整數(shù);選項B中,E前面沒有數(shù)字;選項D中,E后面沒有數(shù)字,只有選項C正確。
51.C解析:在C語言中,求余運算符“%”兩邊的運算對象都應(yīng)為整型數(shù)據(jù),所以需要對變量f進(jìn)行強制類型轉(zhuǎn)換,正確的寫法為k%(int)f。在C語言中,邏輯運算符與賦值運算符、算術(shù)運算符、關(guān)系運算符之間從高到低的運算優(yōu)先次序是:!(邏輯“非”)、算術(shù)運算符、關(guān)系運算符、&&(邏輯“與”)、‖(邏輯“或”)、賦值運算符。根據(jù)運算符的優(yōu)先級與結(jié)合性,對于選項A),先計算k>=k的值(為真,即1),再用1對k進(jìn)行賦值。對于選取項B),先計算k什的值,再對其取負(fù)數(shù)。對于選項D),先計算k>=f的值(為假,即0),再用0與m進(jìn)行比較,故最終結(jié)果為0。
52.C
53.A解析:本題考查默認(rèn)函數(shù)的函數(shù)值的類型。在函數(shù)定義時,由于函數(shù)沒有說明其類型,系統(tǒng)默認(rèn)一律自動按整型處理,因此,函數(shù)的類型為int類型。
54.A解析:本題主要考查按位求反運算和整型常量的表示:①十六進(jìn)制整型常量的形式是以數(shù)字0x或0X開頭的十六進(jìn)制字符串;②按位求反運算的規(guī)則是:將二進(jìn)制表示的運算對象按位取反,即將1變0,將0變1?!?x11”即0000000000010001,進(jìn)行按位求反運算“~0x11”后為1111111111101110,即OxFFEE。
55.A解析:C語言規(guī)定,賦值號的右邊可以是一個賦值表達(dá)式.因此選項C)、選項D)正確:在選項B)中,a++是一個自加1的表達(dá)式,a被重新賦值,因此它是一個合法的賦值表達(dá)式:選項A)中,a+d是一個算術(shù)表達(dá)式,雖然最后有一個分號,但這個表達(dá)式中沒有賦值操作,因此它不是一條賦值語句。
56.A解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲單元中,a的各各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過malloc()函數(shù)紿指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實參p與形參p,實參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲空間。最后輸出p[2],p[5]為56。
57.A解析:在進(jìn)行運算時,不同類型的數(shù)據(jù)參加運算,需要先將其轉(zhuǎn)換成同—類型的數(shù)據(jù),然后再進(jìn)行運算。轉(zhuǎn)換的順序由低到高為:char,short→int→unsigned→long→double←float,故結(jié)果為float型。
58.D解析:函數(shù)fopen(eonstchar*filename,cortstchar*mode)的功能是以mode指定的模式打開filename指定的磁盤文件;fclose(FILE*fp)的功能是關(guān)閉文件指針fp指向的文件;函數(shù)fscanf(FILE*fp,constchar*format[address,--))的功能是根據(jù)for-mat中的格式從fp指向的文件中讀取數(shù)據(jù),并存入到相應(yīng)的address指向的變量中。函數(shù)fprintf(FILE*fp,constchar*format[,argument,--])的功能是把argument列表中的表達(dá)式值寫到fp所指向的文件中;函數(shù)fwrlte(void*ptr,intsize,intn,F(xiàn)ILE*fP)的功能是把ptr指向的緩沖區(qū)中的size×n個字節(jié)寫到文件指針fP指向的文件中。本題中首先定義了一個文件指針fp,然后通過函數(shù)fopen以“wb”的方式打開文件“data.dat”,直接通過一個for循環(huán),每循環(huán)一次調(diào)用函數(shù)fwrite將數(shù)組中的元素a[i]的值寫進(jìn)fp所指的文件中,該循環(huán)共循環(huán)4次,循環(huán)完后fp所指文件的內(nèi)容為123,然后通過fclose函數(shù)關(guān)閉fp所指文件。接著通過函數(shù)fopen以“rb”的方式打開文件“data.dat”,通過fseek函數(shù)讓指針fp從文件末尾向前移動2個int型大小字節(jié)的,然后通過函數(shù)fread從fp所指的文件中讀取一個int型大小的數(shù)據(jù)到變量b中,故此時b的值為3,因此最后輸出的b的值為3。
59.D【解析】算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術(shù),以便盡量減少不必要的額外空間。
60.B解析:本題主要考查按位與(&)運算的知識點。“&”是對兩個運算量相應(yīng)的位進(jìn)行邏輯與,“&”的規(guī)則與邏輯與“&&”相同。x=2的二進(jìn)制為00000010,y=3的二進(jìn)制為00000011,x&y=00000010,轉(zhuǎn)化為十進(jìn)制即為2。
61.C
62.Afseek用于二進(jìn)制方式打開的文件,移動文件讀寫指針位置.
63.Dk=0,s[k]=1,v1++,v2++,v3++,v4++;k=1,s[k]=2,v2++,v4++;k=3,s[k]=1,……,直到k=8,s[k]=0.退出循環(huán)
64.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
65.B解析:兩個實體間的聯(lián)系可以歸納為3種類型:一對一聯(lián)系:一對一的聯(lián)系表現(xiàn)為主表中的每一條記錄只與相關(guān)表中的一條記錄相關(guān)聯(lián)。一對多聯(lián)系或多對一:一對多的聯(lián)系表現(xiàn)為主表中的每一條記錄與相關(guān)表中的多條記錄相關(guān)聯(lián)。多對多聯(lián)系:多對多的聯(lián)系表現(xiàn)為一個表中的多個記錄在相關(guān)表中同樣有多個記錄與其匹配。一間宿舍可以住多個學(xué)生,但每個學(xué)生只能住一個宿舍,所以實體宿舍和學(xué)生之間的聯(lián)系為一對多的聯(lián)系。
66.A
\nC語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。int就是表達(dá)整型變量類型的標(biāo)識符,它不能用做變量名和函數(shù)名。
\n
67.C本題考查衡量模塊獨立性的標(biāo)準(zhǔn)。
模塊獨立性的概念是模塊化、抽象和信息隱蔽的直接結(jié)果。
模塊獨立性是軟件質(zhì)量的關(guā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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司全合同范本
- 2手房購房合同范本
- 代銷協(xié)議違約合同范本
- 寫好電子版合同范本
- 公司貨款合同范本
- 建設(shè)施工合同證據(jù)目錄
- 股份制企業(yè)合同文書撰寫指南
- 住房裝修合同終止協(xié)議書
- 水電消防分包合同
- 車輛代駕租賃合同
- 新大象版科學(xué)三年級下冊全冊知識點 (復(fù)習(xí)用)
- 《提案與方案優(yōu)化設(shè)計》課件-第二部分 平面布局方案設(shè)計
- 2024年黑龍江省專升本考試生理學(xué)護(hù)理學(xué)專業(yè)測試題含解析
- 奧特康唑膠囊-臨床用藥解讀
- 《新能源發(fā)電技術(shù)第2版》 課件全套 朱永強 第1-10章 能源概述- 分布式發(fā)電與能源互補
- 認(rèn)識統(tǒng)計年報基本概念與作用
- 2024年內(nèi)蒙古化工職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 民盟入盟申請書(通用6篇)
- XX精神科醫(yī)生述職報告(四篇合集)
- 給家里人做一頓飯
- 《嬰兒撫觸》課件
評論
0/150
提交評論