版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年廣東省河源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下述程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a。"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&
2.
3.
4.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示
A.模塊之間的調(diào)用關(guān)系B.程序的組成成分C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向
5.非線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。
A.一對多關(guān)系B.多對多關(guān)系C.多對一關(guān)系D.一對一關(guān)系
6.設(shè)有inta=15,b=240;,則表達(dá)式(a&b)&b||b的值為______。
A.0B.1C.真D.假
7.在圖采用鄰接表存儲時(shí),求最小生成樹的Prim算法的時(shí)間復(fù)雜度為()。
A.O(n)B.O(n+e)C.O(n2)D.O(n3)
8.下列敘述中正確的是______。
A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性列表是非線性性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
9.設(shè)有定義“doublex=5.16894;”,則語句“printf(“%lf\n”,(int)(x*1000+0.5)/1000.);”的輸出結(jié)果是()。
A.5.16900B.5.16800C.0.00000D.輸出格式說明符與輸出項(xiàng)不匹配,產(chǎn)生錯(cuò)誤信息
10.以下能夠正確描述“k是大于0的偶數(shù)”的表達(dá)式是()。
A.(k>0)&&(k%2!=1)
B.(k>0)&&(k%2=0)
C.(k>0)||!(k%2)
D.(k>0)||(k%2==0)
11.有如下程序段: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
12.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
13.算法的時(shí)間復(fù)雜度是指()A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長度C.算法程序中的指令條數(shù)D.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
14.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
15.數(shù)據(jù)流圖用于抽象地描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
16.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是______。
A.2B.3C.4D.5
17.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”);程序段的運(yùn)行結(jié)果是()。
A.**B.****C.*D.********
18.A[N][N]是對稱矩陣,將下面三角(包括對角線)以行序存儲到一維數(shù)組T[N(N+1)/2]中,則對任一上三角元素a[i][j]對應(yīng)T[k]的下標(biāo)k是()。
A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1
19.
20.下列程序段中完全正確的是()。A.int*p;scanf(“%d”,&p);
B.int*p;scanf(“%d”,p);
C.intk,*p=&k;scanf(“%d”,p);
D.intk,*p;*p=&k;scanf(“%d”,p);
二、2.填空題(20題)21.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;
22.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
23.C語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個(gè)注釋以【】分別作為開始和結(jié)束。
24.下面的程序通過函數(shù)average計(jì)算數(shù)組中各元素的平均值,請?zhí)羁铡?/p>
floatavetage(int*pa,intn)
{inti;
floatavg=0.0;
for(i=0;i<n;i++);
avg=avg+【】;avg=【】;
returnavg;
}
main()
{inti,a[5]={2,4,6,8,10,};
floatmean;
prinf("%mean=%f\n",mean);
}
25.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。
26.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件: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");/*abc能構(gòu)成三角形*/
elseprintf("NO\n");/*abc不能構(gòu)成三角形*/
}
27.當(dāng)先后輸入1、3、4、12、23時(shí),屏幕上出現(xiàn)【】;再輸入12時(shí),則屏幕上出現(xiàn)【】。
#include<stdio.h>
#defineN5
main()
{inti,j,number,top,bott,min,loca,a[N],flag;
charc;
printf("Pleaseinput5numbers(a[i]>a[i-1])\n");
scanf("%d",&a[0]);
i=1;
while(i<N)
{scanf("%d",&a[i]);
if(a[i]>=a[i-1))i++;
}
printf("\n");
for(i=0;i<N;i++)printf("%d",a[i]);
printf("\n");
flag=1;
while(flag)
{scanf("%d",&number);
loca=0;
top=0;
bott=N-1;
if((number<a[0])||(number>a[N-1]))loca=-1;
while((loca==0)&&(top<=bott))
{min=(bott+top)/2;
if(number==a[min])
{loca=min;
printf("%disthe%dthnumber\n",number,loca+1);
}
elseif(number<a[min])bott=min-1;
elsetop=min+1;
}
if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);
c=getchar();
if(c=='N'||c=='n')flag=0;
}
}
28.有以下程序:
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];
}
程序運(yùn)行后的輸出結(jié)果是【】。
29.有以下程序
main()
{intx=1,y=1,z=1;
y=y+z;x=x+y;
printf("%d",x<y?y:x);
printf("%d",x<y?x++:y++);
printf("%d",x);
printf("%d",y);
}
運(yùn)行結(jié)果是【】
30.設(shè)y為int型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
31.以下程序的輸出結(jié)果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3,i>=0;i--,i--)printf("%c",*p[i]);
printf("\n");
}
32.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chara[]="labchmfye",t;
inti,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;j++;}
puts(a);
printf("\n");
}
33.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
{c=c*a;b=b+c;++n;}
printf("b=%d",B);
}
34.下列程序的運(yùn)行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
35.對軟件是否能達(dá)到用戶所期望的要求的測試稱為【】。
36.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
37.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為______。
38.下列語句的輸出結(jié)果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
39.下列程序利用指針將2個(gè)數(shù)按從大到小的順序輸出。
main()
{inta,b,【】;
printf("inputa,b:");
scanf("%d%d",&a,&b);
【】;
p2=&b;
if(a<b)
{p=p1;
p1=p2;
p2=p;
}
printf("a=%db=%d\n",a,b);
printf("max=%dmin=%d\n",【】);
40.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。
三、1.選擇題(20題)41.有如下程序:#include<stdio.h>main(){FILE*fpl;fp1=fopen("ftxt","w");fpfinff(fp1,"abc");fclose(fp1);若文本文件f1.txt中原有內(nèi)容為:good,則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為()。
A.goodabcB.abcdC.abcD.abegood
42.請選出可用作C語言用戶標(biāo)識符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
43.在執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,則結(jié)果為
main()
{inta,b,s;
scanf("%d%d",&a,&b);
S=a
if(a<b)
s=b;
S*=s;
printf("%d",s);}
A.36B.64C.48D.以上都不對
44.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\b",i,j);}程序運(yùn)行后的輸出結(jié)果是
A.9,9B.8,9C.1,8D.9,8
45.下列選項(xiàng)中合法的賦值語句是()。
A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);
46.下述關(guān)于C語言文件的操作的結(jié)論中,正確的是______。
A.對文件操作必須先關(guān)閉文件
B.對文件操作必須先打開文件
C.對文件操作順序無要求
D.對文件操作前必須先測文件是否存在,然后再打開文件
47.以下有4組用戶標(biāo)識符,其中合法的一組是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
48.有以下程序:#include<stdio.h>main(){inta=6,b=7,m=I;switch(a%2){case0:m++;break;case1:m++;switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
49.下面程序的輸出結(jié)果是______。main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}
A.3B.3.2C.0D.3.07
50.下列語句中,在字符串s1和s2相等時(shí)顯示"theyareEqual"的是()。
A.if(*s1==*s2)
B.if(!strcmp(s1,s2))puts("theyareEqual");puts("theyareEqual");
C.if(s1==s2)
D.if(strcmp(s1,s2))Puts("theyareEqual");puts("theyareEqual");
51.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是
A.scant("%d",pa);
B.scant("%d",a);
C.scanf("%d",&pa);
D.scanf("%d",*pa);
52.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}
A.11B.12C.13D.15
53.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。
A.scanf("%3d,%3d,%3d",&i,&j,&k);
B.scan("%d,%d,%d",&i,&j,&k);
C.scan("%do/od%d",&i,及j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
54.下列敘述中,正確的是()。
A.用E—R圖能夠表示實(shí)體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系
B.用E—R圖只能表示實(shí)體集之間一對一的聯(lián)系
C.用E—R圖只能表示實(shí)體集之間一對多的聯(lián)系
D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
55.下列程序的運(yùn)行結(jié)果為
#include<stdio.h>
voidabc(char*str)
{inta,b;
for(a=b=0;str[a]!='\0';a++)
if(str[a]!='c')
str[b++]=str[a];
str[b]='\0';}
voidmain()
{charstr[]="abcdef";
abc(str);
printf("str[]=%s",str);}
A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab
56.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x/(y*z)的C語言表達(dá)式是______。
A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z
57.若有定義語句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個(gè)元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]
58.若進(jìn)棧序列為1、2、3、4、5,并且在它們進(jìn)棧的過程中可以進(jìn)行出棧操作,那么不可能是出棧序列的是______。
A.1,3,2,5,4B.1,2,5,4,3C.4,3,2,1,5D.3,5,1,4,2
59.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
60.下面程序輸出的結(jié)果是______。main(){inti=5,j=9,x;x=(i==j?:(j=7));printf("\n%d,%d",i,j);}
A.5,7B.5,5C.語法錯(cuò)誤D.7,5
四、選擇題(20題)61.定義無符號整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。
A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}
62.(45)信息隱蔽的概念與下述哪一種概念直接相關(guān)()
A.軟件結(jié)構(gòu)定義
B.模塊獨(dú)立性
C.模塊類型劃分
D.模擬耦合度
63.
64.
65.有以下程序程序的運(yùn)行結(jié)果是()。
66.數(shù)據(jù)庫管理系統(tǒng)是()。
A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)
67.
68.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.OB.2C.3D.5
69.下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是()。
A.使用順序、選擇和重復(fù)(循環(huán).三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B.模塊只有一個(gè)入口,可以有多個(gè)出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
70.用樹形結(jié)構(gòu)來表示實(shí)體之間聯(lián)系的模型稱為()。
A.關(guān)系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型
71.有以下程序:
#include<stdio.h>
intfun()
{staticintx=1;
X*=2:
returnx;
}
main()
{inti,S=1;
for(i=1;i<=3;i++)S*=fun();
printf("%d\n",s);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.10C.30D.64
72.以下敘述中錯(cuò)誤的是()。
A.C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
B.C程序經(jīng)過編譯、連接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件
C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個(gè)文本文件中
D.C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
73.
74.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.3B.1C.2D.0
75.學(xué)生選課成績表的關(guān)系模式是sc(S#,c#,G),其中S#為學(xué)號,c#為課號,G為成績,檢索課號為2且成績及格的學(xué)生學(xué)號的表達(dá)式為()。
76.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法
A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)
77.
78.
79.對于現(xiàn)實(shí)世界中事物的特征,在實(shí)體一聯(lián)系模型中使用()。A.屬性描述B.關(guān)鍵字描述C.二維表格描述D.實(shí)體描述
80.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。
A.*p+=1;
B.(*p)++;
C.++(*p);
D.*++P
五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為l3。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}
六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:計(jì)算n門課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。例如,有6門課程的成績是90.5,72,80,61.5,55,60,則函數(shù)的值為69.83。注意:部分源程序給出如下。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.Astrcpy實(shí)現(xiàn)的功能是復(fù)制,該操作把a(bǔ)re復(fù)制到a中,aE03E33一’&’,且strcpy(aEl],"you")把you復(fù)制到a[l]中,故輸出a為“are&you”。
2.B
3.D
4.D解析:數(shù)據(jù)流相當(dāng)于一條管道,并有一級數(shù)據(jù)(信息)流經(jīng)它。在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實(shí)體流向系統(tǒng)或從系統(tǒng)流向外部實(shí)體。
5.B
6.B
7.B
8.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
9.A表達(dá)式“(int)(x*1000+0.5)”使用了強(qiáng)制轉(zhuǎn)換,其計(jì)算結(jié)果為5169,(5169/1000.0)=5.169。所以“printf(“%lf\\n”,5.169);”結(jié)果是5.16900。故本題答案為A選項(xiàng)。
10.A判斷k大于0的表達(dá)式為“k>0”,判斷k是偶數(shù)的表達(dá)式為“k%2==0”或“k%2!=1”。兩個(gè)表達(dá)式必須都成立才能確定k是大于0的偶數(shù),則對應(yīng)的表達(dá)式為“(k>0)&&(k%2==0)”或“(k>0)&&(k%2!=1)”。故本題答案為A選項(xiàng)。
11.C解析:p=&a[3]將指針指向數(shù)組a的第4個(gè)元素,p[5]則是數(shù)組a的第9個(gè)元素,而a[8]=9,所以b=9。
12.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。
13.D解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語言、執(zhí)行算法程序時(shí)所使用的計(jì)算工具以及程序員的水平無關(guān)。
選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤。因?yàn)樗惴ㄋ帉懙某绦蜷L度往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語言或者不同的程序員所編寫出的程序其長度可能會大不相同。
選項(xiàng)C錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序程序中,其指令條數(shù)往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時(shí)間復(fù)雜度。
所以,本題的正確答案為D。
14.B本題考查for循環(huán)的使用。對于第1個(gè)for循環(huán),任何一個(gè)i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時(shí)不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時(shí)退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
15.A解析:數(shù)據(jù)流圖包括四個(gè)方面,即加工(輸入數(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)中的控制流。
16.A解析:本題中p[4]='cd',所以strlen(p[4])=2。
17.C因?yàn)閮?nèi)層循環(huán)“for(k=1;k<3;k++)”后面直接跟了空語句“;”,所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行printf語句,輸出一個(gè)“*”。故本題答案為C選項(xiàng)。
18.B
19.A
20.CA選項(xiàng)中,沒有對指針進(jìn)行初始化,屬于無效指針,并且在“scanf(“%d”,&p);”中無須再進(jìn)行取地址操作;B選項(xiàng)中,沒有對指針進(jìn)行初始化,屬于無效指針;D選項(xiàng)中,語句“*p=&k;”書寫錯(cuò)誤,應(yīng)為“P=&k;”。故本題答案為C選項(xiàng)。
21.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。
22.132132解析:在程序中,i從9開始循環(huán),當(dāng)i=9時(shí),執(zhí)行case0后的語句m++;n++;此時(shí)m=1,n=1,然后執(zhí)行break,跳出循環(huán);當(dāng)i=10時(shí),執(zhí)行detault后的語句k++;n++;此時(shí)k=1,n=2;當(dāng)i=11時(shí),再執(zhí)行default后的語句,k=2,n=3。此時(shí),m=1,n=3,k=2。輸出結(jié)果為132。
23./**//**/解析:C語言程序的注釋可以出現(xiàn)在程序基本單詞之間的任何地方,C語言程序的注釋以“/*”作為開始標(biāo)記,并以“*/”作為結(jié)束標(biāo)記。
24.pa[i]avg/n
25.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機(jī)制和區(qū)別。
26.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的條件是兩邊之和大于第三邊。要用'&&'指令連接三個(gè)條件,表示三個(gè)條件都要滿足。
27.134122312isthe4thnumber.
28.234562,3,4,5,6解析:函數(shù)prt(a,5)的功能是使得a數(shù)組中,從a[0]~a[4]中元素均增1。
29.3233
30.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。
31.SO
32.j++a[i]>a[j]或a[j]<a[i]j++\r\na[i]>a[j]或a[j]<a[i]解析:題目要求排序的元素是下標(biāo)值為偶數(shù)的元素,外循環(huán)循環(huán)4次,i的值分別為0、2、4、6,所以內(nèi)循環(huán)也循環(huán)4次,i的值就應(yīng)為2、4、6、8,在循環(huán)體中已經(jīng)有了對j加1的操作,因此for后括號中的語句應(yīng)再對j加1,保證下標(biāo)為偶數(shù)。if語句的功能是如果后一個(gè)數(shù)比前一個(gè)數(shù)小則交換位置。
33.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時(shí),判斷條件不滿足,退出循環(huán)。
34.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
35.有效性測試有效性測試
36.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。
37.對象對象解析:類描述的是具有相似性質(zhì)的一組對象。例如,每本具體的書是一個(gè)對象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對象。一個(gè)具體對象稱為類的實(shí)例。
38.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動(dòng)覆蓋字符數(shù)組sp末尾的\'\\0\'。
39.*p*p1*p2p1:&a*p1*p2
40.隊(duì)尾隊(duì)尾解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。
41.C執(zhí)行語句fp1=fopen("f1.txt","w");以“只寫”方式打開了一個(gè)名為f1.txt的文件,執(zhí)行語句fPrintf(fp1,"abc",);向該文件寫數(shù)據(jù)時(shí),如果文件f1.txt不存在,則新建一個(gè)f1.txt文件;如果f1.txt已存在,則在打開該文件時(shí)重寫文件內(nèi)容。所以執(zhí)行fprintf(fp1,"abc");時(shí),f1.txt中原有內(nèi)容good被刪除,而字符中”abc”被輸出到fpl指向的文件f1.txt中。
42.B解析:C語言規(guī)定用戶標(biāo)識符由字母、數(shù)字和下畫線組成,且第一個(gè)字符必須是字母或下畫線,可見選項(xiàng)C),D)是錯(cuò)誤的;此外,C語言不允許用戶將關(guān)鍵字作為標(biāo)識符,而選項(xiàng)A)中的void正是C語言的關(guān)鍵字。
43.B解析:本題中a的值為6,b的值為8,最后s的值為8,s*=s等價(jià)于s=s*s。
44.D解析:本題考查了求數(shù)據(jù)類型長度的運(yùn)算符sizeof和求字符串長度的函數(shù)strlen的區(qū)別。strlen計(jì)算的是一個(gè)字符串的實(shí)際字符個(gè)數(shù),如果字符串放在字符數(shù)組中,則函數(shù)strlen的值為'\\0'之前的全部字符個(gè)數(shù)。而sizeof求出的是數(shù)據(jù)占據(jù)存儲空間的字節(jié)數(shù),當(dāng)然也要包括字符串的結(jié)束標(biāo)志符'\\0'。
45.D解析:選項(xiàng)A)是一個(gè)合法的賦值表達(dá)式,但結(jié)尾沒加分號,所以它不是一個(gè)賦值語句;選項(xiàng)B)是一個(gè)逗號表達(dá)式,也因?yàn)榻Y(jié)尾沒有加分號而不是合法的賦值語句,選項(xiàng)C)是一個(gè)算術(shù)表達(dá)式,雖然有分號,但這個(gè)表達(dá)式?jīng)]有賦值操作,因此,也不是一條賦值語句。
46.B解析:在C中對文件操作必須先打開文件,待文件操作完畢后要關(guān)閉文件。對文件以讀的方式進(jìn)行打開操作時(shí),同時(shí)會執(zhí)行文件的檢查文件是否存在,不存在將會返回空的文件指針,如果對文件以寫的方式打開時(shí),文件不存在,將會自動(dòng)創(chuàng)建文件,因此在C中打開文件前不必對其檢查文件是否存在,故答案為B。
47.C解析:選項(xiàng)A中for和case為C語言中的保留字,不能作為用戶標(biāo)志符,故A錯(cuò)誤。選項(xiàng)B中的4d其開頭的第一個(gè)為數(shù)字,而在C語言中規(guī)定,第一個(gè)字符必須為字母或者下劃線,故B錯(cuò)誤;選項(xiàng)D中void為C語言中的保留字,不能作為用戶標(biāo)志符,故D錯(cuò)誤。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
48.B解析:本題考查switch語句。因?yàn)閍=6,所以a%2=0,因此第一個(gè)switch語句,執(zhí)行case0,將m加1,遇到break語句跳出switch語句,輸出m值為2。
49.C
50.B解析:字符串比較不能用兩個(gè)等于號(=)來進(jìn)行比較,應(yīng)使用函數(shù)strcmp(s1,s2)來比較。函數(shù)strcmp(s1,s2)的功能:當(dāng)字符串s1和s2相等時(shí),返回值為0。因此,當(dāng)表達(dá)式!strcmp(s1,s2)=1時(shí),條件成立,執(zhí)行后面的語句,輸出theyareEqual。
51.A解析:scanf()函數(shù)的功能是進(jìn)行輸入數(shù)據(jù),它是按格式參數(shù)的要求從終端上把數(shù)據(jù)傳送到地址參數(shù)所指定的內(nèi)存空間中,C語言允許程序員間接地使用內(nèi)存地址,這個(gè)地址是通過對變量名“求地址”運(yùn)算得到的,求地址的運(yùn)算符是&,得到的地址是一種符號地址。本題中定義了整型變量a和一個(gè)指向整型數(shù)據(jù)的指針變量pa,并定義pa是一個(gè)存放a的地址的變量。選項(xiàng)B中應(yīng)該將a改為&a;選項(xiàng)C應(yīng)該將&pa改為pa,因?yàn)閜a已經(jīng)表示存放a的地址;選項(xiàng)D中*pa表示的是指針pa所指向存儲空間的變量的值,而不是一個(gè)地址。
52.B解析:在程序中如果有帶實(shí)參的宏,則按#define命令行中指定的字符串從左到右進(jìn)行置換,如果串中包含宏中的形參,則將程序語句中相應(yīng)的實(shí)參代替形參。將實(shí)參帶入已經(jīng)定義的宏中,可以得出答案為“12”。
53.B解析:函數(shù)scan()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符:“輸入項(xiàng)地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時(shí)要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。
54.A\n兩個(gè)實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集問的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。
\n
55.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數(shù)組的第一個(gè)元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行。
56.A解析:按照自左向右的運(yùn)算邏輯,選項(xiàng)A是先做x/y,然后再乘以x,顯然與題意不符。
57.B解析:二維數(shù)組的元素在內(nèi)存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內(nèi)存中的存放順序是:a[0][0]、a[0][1]、a[0][2]…a[0][5]、a[1][0]、\u3000a[1][1]…a[1][5]、a[2][0]…a[2][5]。由此可見,第10個(gè)元素就是第2行第4個(gè)元素,即a[1][3]。故應(yīng)該選擇B。
58.D
59.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計(jì)方法,主要有①逐步求精:對復(fù)雜的問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化;⑧模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)。
60.A解析:條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3;先求解表達(dá)式1,若為真則求解表達(dá)式2;若表達(dá)式1的值為假,則求解表達(dá)式3。本題中先判斷i=j,不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。
61.BB【解析】只有B選項(xiàng)369可以用無符號整數(shù)來表示和存儲。A選項(xiàng)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年重型機(jī)械焊接安裝服務(wù)協(xié)議3篇
- 2025年度二手房交易首付分期及風(fēng)險(xiǎn)控制協(xié)議4篇
- 2025年度防火門檢測維修服務(wù)合同4篇
- 2025版協(xié)議離婚實(shí)操教程與全程輔導(dǎo)合同3篇
- 2025年個(gè)人房產(chǎn)測繪與房地產(chǎn)市場調(diào)研合同4篇
- 2025版臨時(shí)演出場地租賃協(xié)議書3篇
- 2025年度綠色環(huán)保項(xiàng)目臨時(shí)工勞動(dòng)合同范本8篇
- 個(gè)人家政服務(wù)合同2024年度專用3篇
- 2025年度智慧城市基礎(chǔ)設(shè)施場外工程承包合同4篇
- 2025年度物業(yè)設(shè)施設(shè)備智能化升級合同3篇
- 2024-2025學(xué)年山東省聊城市高一上學(xué)期期末數(shù)學(xué)教學(xué)質(zhì)量檢測試題(附解析)
- 西方史學(xué)史課件3教學(xué)
- 2024年中國醫(yī)藥研發(fā)藍(lán)皮書
- 廣東省佛山市 2023-2024學(xué)年五年級(上)期末數(shù)學(xué)試卷
- 臺兒莊介紹課件
- 疥瘡病人的護(hù)理
- 人工智能算法與實(shí)踐-第16章 LSTM神經(jīng)網(wǎng)絡(luò)
- 17個(gè)崗位安全操作規(guī)程手冊
- 2025年山東省濟(jì)南市第一中學(xué)高三下學(xué)期期末統(tǒng)一考試物理試題含解析
- 中學(xué)安全辦2024-2025學(xué)年工作計(jì)劃
- 網(wǎng)絡(luò)安全保障服務(wù)方案(網(wǎng)絡(luò)安全運(yùn)維、重保服務(wù))
評論
0/150
提交評論