




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年安徽省合肥市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有定義“intb[8],*p=b;”,則p+6表示()。
A.數組元素b[6]的值B.數組元素b[6]的地址C.數組元素b[7]的地址D.數組元素b[0]的值加上6
2.當用戶要求輸入的字符串中含有空格時,應使用的輸入函數是()。
A.scanfB.getcharC.getsD.getc
3.使用深度優(yōu)先算法遍歷下圖,遍歷的順序為()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG
4.在下面棧的基本運算中,不是加工型運算的是______。
A.初始化B.進棧C.退棧D.判???/p>
5.下列敘述中正確的是()。
A.有一個以上根結點的數據結構不一定是非線性結構
B.只有一個根結點的數據結構不一定是線性結構
C.循環(huán)鏈表是非線性結構
D.雙向鏈表是非線性結構
6.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序運行時輸入k并按<Enter>鍵,則輸出結果為()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
7.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運行后的輸出結果是()。A.0B.1C.2D.3
8.下列程序的輸出的結果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07
9.設x和y均為int型變量,且x=10,y=3,則以下語句的輸出結果是()printf("%d,%d\n",x--,--y);
A.10,3B.9,3C.9,2D.10,2
10.以下是正確的C語言實型常量的是()。
A..8e+8.B.e+8C.+8e.8D.+8.8e+8
11.下列敘述中正確的是A.為了建立一個關系,首先要構造數據的邏輯關系
B.表示關系的二維表中各元組的每一個分量還可以分成若干數據項
C.一個關系的屬性名表稱為關系模式
D.一個關系可以包括多個二維表
12.設單鏈表中結點的結構為已知指針p所指結點不是尾結點,若在*p之后插入結點*s,則應執(zhí)行下列哪一個操作______。A.s->link=p;p->link=s;
B.s->link=p->link;p->link=s;
C.s->link=p->link;p=s;
D.p->link=s;s->link=p;
13.下列程序的運行結果是()。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
14.
15.
16.
17.以下程序段中,與語句“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:
18.以下敘述中錯誤的是()。
A.C語句必須以分號結束
B.復合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運行
D.賦值表達式末尾加分號就構成賦值語句
19.下列數據結構中,按先進后出原則組織數據的是()。
A.循環(huán)隊列B.棧C.順序表D.循環(huán)鏈表
20.有下列二叉樹.對此二叉樹前序遍歷的結果為()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
二、2.填空題(20題)21.開發(fā)軟件所需要的高成本和產品的低質量之間有著尖銳的矛盾,這種現(xiàn)象被人們稱之為【】。
22.在面向對象方法中,【】描述的是具有相似屬性與操作的一組對象。
23.下列程序的運行結果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0‖x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
24.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%dln",a,b,c);
}
執(zhí)行后輸出結果為______。
25.以下程序運行后的輸出結果是【】。
#include<stdio.h>
msin()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
26.下面程序的運行結果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}
27.以下程序中,for循環(huán)體執(zhí)行的次數是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i=1;i<K;i++)
{…}
…
}
28.函數YangHui的功能是把楊輝三角形的數據賦給二維數組的下半三角,形式如下:
1
11
121
1331
14641
其構成規(guī)律是:
①第0列元素和主對角線元素均為1;
②其余元素為其左上方和正上方元素之和;
③數據的個數每行遞增1。
請將程序補充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=x[i][i]=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
29.寫出下列程序的輸出結果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
30.設函數findbig已定義為求3個數中的最大值。以下程序將利用函數指針調用findbig函數。請?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);
}
31.若按功能劃分,軟件測試的方法通常分為______測試方法和黑盒測試方法。
32.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。
33.在宏定義#definePI3.14159中,用宏名PI代替一個______。
34.以下程序段的輸出結果是【】。
inti=9;
printf("%o\n",i);
35.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
36.以下程序的輸出結果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
37.______是數據庫應用的核心。
38.下列程序的輸出結果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
39.當數據的物理結構(存儲結構、存取方式等)改變時,不影響數據庫的邏輯結構,從而不致引起應用程序的變化,這是指數據的【】。
40.下列語句使指針p指向一個double類型的動態(tài)存儲單元。
p=【】malloc(sizeof(double));
三、1.選擇題(20題)41.樹是結點的集合,它的根結點的數目是()。
A.有且只有1個B.1或多于1C.0或1D.至少有2個
42.在C語言中,下列關于文件操作的敘述正確的是()。
A.對文件操作必須先關閉文件B.對文件操作必須先打開文件C.對文件操作順序沒有統(tǒng)一規(guī)定D.以上全錯
43.執(zhí)行下面的程序后,a的值為
main()
{inta,b;
for(a=1,b=1;a<=10;a++)
{if(b%3==1)
{b+=3;
continue;}
b-=5;}}
A.7B.8C.9D.10
44.以下4個程序中,完全正確的是
A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}
B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}
C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}
D.include<stdio.h>main(){/*programming*/printf("programming!\n");}
45.在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設計B.詳細設計C.可行性分析D.需求分析
46.設x和y均為int型變量,則以下語句:“x+=y;y=x-y;x-=y;”的功能是______。
A.把x和y按從大到小排列B.把x和y按從小到大排列C.無確定結果D.交換x和y中的值
47.閱讀下列程序段,則程序的輸出結果為
#include"stdio.h"
#defineM(X,Y)(X)*(Y)
#defineN(X,Y)(X)/(Y)
main()
{inta=5,b=6,c=8,k;
k=N(M(a,b),c);
printf("%d\n",k);
A.3B.5C.6D.8
48.有以下程序
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數調用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);
49.有如下程序:#include<stdio.h>main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);}該程序的輸出結果是
A.0B.1C.2D.3
50.在計算機內部,一切信息存取、處理和傳送的形式是()
A.ASCⅡ碼B.BCD碼C.二進制D.十六進制
51.若執(zhí)行下面的程序時,從鍵盤輸入5和2,則輸出結果是
main()
{inta,b,k;
scanf("%d,%d",&a,&b);
k=a;
if(a<b)k=a%b;
elsek=b%a;
printf("%d\n",k);}
A.5B.3C.2D.0
52.若有如下程序段:structstudent{intnum;floatscore;}stu[3]={{10,85},{60,58},{32,23}};main(){structstudent*t;t=stu;}則下面表達式中值為58的是()。
A.(*t).numB.*(t++)->numC.(*++t)scoreD.(++t)->score
53.在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于()A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段
54.對于n個結點的單向鏈表(無表頭結點),需要指針單元的個數至少為______。
A.n-1B.nC.n+1D.2n
55.已定義以下函數:fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函數的功能是()。
A.將P1所指字符串復制到p2所指內存空間,
B.將p1所指字符串的地址賦給指針p2
C.對p1和p2兩個指針所指字符串進行比較
D.檢查p1和p2兩個指針所指字符串中是否有'\0'
56.以下有4組用戶標識符,其中合法的一組是______。
A.FOR
B.4d
C.f2G3
D.WORD-subDOIFvoidCaseSizeabcdefine
57.有以下程序main(){inta=15,b=21,m=0;switch(a%3){casc0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(“%d\n”,m);}程序運行后的輸出結果是
A.1B.2C.3D.4
58.某二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數為()
A.n+1B.n-1C.2nD.n/2
59.下列程序的輸出結果是______。#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}
A.7B.8C.9D.10
60.若x和y代表整型數,以下表達式中不能正確表示數學關系|x-y|<10的是
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<=10||!(y-x)>10
D.(x-y)*(x-y)<100
四、選擇題(20題)61.下列敘述中正確的是()。
A.算法就是程序B.設計算法時只需要考慮數據結構的設計C.設計算法時只需要考慮結果的可靠性D.以上3種說法都不對
62.有以下程序:
程序運行后的輸出結果是()。
A.1,0,7,0,B.1,2,3,4,C.1,4,5,9,D.3,4,8,10,
63.
有下列程序:
main
{intk=5,n=0;
while(k>0)
{switch(k)
{dcfault:break;
case1:n=n+k;
case2:
case3:n+=k;
}
k--;
}
printf("%d\n".n);
}
程序運行后的輸出結果足()。
A.0B.4C.6D.7
64.面向對象方法中,繼承是指()。
A.一組對象所具有的相似性質B.一個對象具有另一個對象的性質C.各對象之間的共同性質D.類之間共享屬性和操作的機制
65.
66.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;
B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"
C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;
D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;
67.有以下結構體說明、變量定義和賦值語句
68.
69.有三個關系R、S和T如下:
則由關系R和S得到關系T的操作是()。
A.自然連接B.交C.投影D.并
70.軟件生命周期中的活動不包括()。
A.市場調研B.需求分析C.軟件測試D.軟件維護
71.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間
72.下列對于線性鏈表的描述中正確的是()。
A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的
B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面
C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面
D.存儲空間必須連續(xù),且各元素的存儲順序是任意的
73.
74.結構化程序所要求的基本結構不包括()。
A.順序結構B.選擇(分支)結構C.GOT0跳轉D.重復(循環(huán))結構
75.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的字符是
A.大寫字母B.連接符C.小寫字母D.下畫線
76.若有以下程序
#include<stdio.h>
voidf(intn);
main()
{
voidf(intn);
f(5);
}
voidf(intn)
{
printf("%d\n",n);
}
則以下敘述中不正確的是
A.若只在主函數中對函數f進行說明,則只能在主函數中正確調用函數f
B.若在主函數前對函數f進行說明,則在主函數和其后的其他函數中都可以正確調用函數f
C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:對f函數重復說明
D.函數f無返回值,所以,可用void將其類型定義為無返回值型
77.以下程序段中,與語句“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:
78.
79.(35)檢查軟件產品是否符合需求定義的過程稱為______。
A.確認測試
B.集成測試
C.驗證測試
D.驗收測試
80.在一個C程序中
A.main函數必須出現(xiàn)在所有的函數之前B.main函數可以在任何地方出現(xiàn)
C.main函數必須出現(xiàn)在所有的函數之后D.main函數必須出現(xiàn)在固定位置
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:判斷一個整數m是否是素數,若是返回1,否則返回0。在main()函數中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main)函數,不得增行或刪行,也不得,t更改程序的結構。
試題程序:
六、程序設計題(1題)82.請編寫函數proc,其功能是:計算并輸出下列多項式值。
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函數從鍵盤給n輸入20后,則輸出為S=0.680803。
注意:部分源程序給出如下。
請勿改動main函數和其他函數中的任何內容,僅在函數proc的花括號中填入所編寫的若干語句。
試題程序:
#includet:stdio.h>
doubleproc(intn)
{
}
voidmain
{
intn;
doubleslim;
printf("\nInputn:");
scanf("%d",&n);
sum=proc(n)。
printf("\ns=%f\n",sum);
}
參考答案
1.B指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。
2.C解析:C語言提供了許多輸入函數,其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數默認將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數可以輸入一整行作為一個字符串,其中也包括空格字符,故應該選擇C。
3.C
4.D
5.B解析:如果一個非空的數據結構滿足以下兩個條件:(l)有且只有一個根結點;(2)每個結點最多有一個前件,也最多有一個后件。則稱該數據結構為線性結構。如果一個數據結構不是線性結構,則稱之為非線性結構,故A項錯誤。有一個根結點的數據結構不一定是線性結構,如二叉樹,B項說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項錯誤。
6.Dmain函數定義一個字符數組s,使用字符串“pmfc”初始化;然后通過getchar讀取一個字符k到字符變量c;再將字符串s和字符c傳入fun函數。函數fun首先通過while循環(huán)遍歷字符串s,直到指針a指向字符串結束標識‘\\0’后的一個字符,如下圖所示。接著通過while循環(huán)逆序遍歷字符串s,首先a-1的字符位‘\\0’,它的ASCII值為0,小于b(字符‘k’)的ASCII值107,那么將‘\\0’賦給下標為5的元素位置。接著繼續(xù)向前遍歷,同理,將‘c’(ASCII值為99)賦給下標為4的元素位置,將‘f’(ASCII值為102)賦給下標為3的元素位置。由于‘m’(ASCII值為109)大于b,因此循環(huán)結束,將b(字符‘k’)賦給下標為2的元素位置,此時str字符串如下。故本題答案為D選項。
7.D
8.C根據賦值運算的類型轉換規(guī)則,先將double型的常量l.2轉換為int型,因為x的類型是int,則X的值為1;執(zhí)行語句y=(K+3.8)/5.0時,即先將整型變量X的值1轉換為double型1.0,然后3.8相加得4.8,進行除法運算4.8/5.0結果為0.即變量y的值為0,d*Y的值也為0,故選C選項。
9.D
10.DC語言中,實型常量有兩種表示形式:小數形式和指數形式。其中指數形式的一般形式為:尾數E(或e)整型指數。C語言規(guī)定,字母E或e之前必須要有數字,且E或e后面的指數必須是整數,所以選項A、B、C錯誤,選項D正確。故本題答案為D選項。
11.C解析:在格式化模型中,要事先根據應用的需要,確定數據之間的邏輯關系,即先對數據進行結構化。在關系模型中,不需要事先構造數據的邏輯關系,只要將數據按照一定的關系存入計算機,也就是建立關系。所以選項A錯誤。對于一個表示關系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數據項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關系的屬性名表稱為關系模式,也就是二維表的表框架,相當于記錄型。因此,選項C說法正確。
12.B
13.D本題考查"drhile循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,X++后值為1,x自加變成2,進入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1,循環(huán)條件成立,進入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<X成立,執(zhí)行break語句,退出循環(huán)。結果為D。
14.D
15.A
16.B
17.A本題考查了雙重三目運算符的用法。例如:表達式a>b?c:d可以看成,當a>b時取C的值,否則取d的值。在本題中k=a>b?(b>c?1:0):0可以看做:當b>c時為真,則k=a>b?1:0。當bb?0:0。也就是說,當a>b并且b>C時,k=1,否則k=0。所以A選項符合題意。
18.C解析:C語句必須以分號結束,選項A是正確的。復合語句在語法上被看作一條語句,選項B也是正確的。空語句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當作條件子句或者循環(huán)體來看待,所以選項c是錯誤的。賦值表達式末尾加分號就構成賦值語句,選項D正確。故本題應該選擇C。
19.B解析:循環(huán)隊列是隊列的一種順序存儲結構,隊列是以先進先出為原則組織數據的一種特殊線性表,選項A錯誤;棧是以先進后出為原則組織數據的一種特殊線性表,選項B正確;順序表是線性表的順序存儲結構,選項C錯誤;循環(huán)鏈表是一般線性表的一種鏈式存儲結構,選項D錯誤。
20.D
\n所謂二叉樹的前序遍歷是指先訪問根結點,訪問左子樹,最后訪問右子樹,本題中序為DYBEAFCZX,后序為YDEBFZXCA。
\n
21.軟件危機軟件危機
22.類類解析:在面向對象方法中,類描述的是具有相似屬性與操作的一組對象。
23.2424解析:本題考查函數的循環(huán)調用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1-24。
24.503503解析:此處需注意的是:如果if后面的條件為真,只執(zhí)行其后的一條語句或一條復合語句,如果if后面的條件為假,只執(zhí)行else后面的一條語句或一條復合語句。先判斷表達式“a<b”為假,不執(zhí)行“t=a”,但執(zhí)行“a=b;b=t;”,s的值為3,b的值為0。在判斷表達式“a<c”,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結果a的值為5,c的值為3,所以最后輸出的結果為5、0和3。
25.1371513715解析:程序中n是一個有5個元素,且元素值全為0的數組。在for循環(huán)中,當i=1時,n[1]=n[0]*2+1,此時n[1]=1;i=2時,n[2]=n[1]*2+1,此時n[2]=3;i=3時,n[3]=n[2]*2+1,此時n[3]=7;i=4時,n[4]=n[3]*2+1,此時n[4]=15,循環(huán)結束。輸出函數中%d后有空格,因此輸出結果為13715。
26.s=30s=30解析:分析循環(huán)條件“m=1,m<=4”,所以循環(huán)4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。
27.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。
28.x[i-1][j-1]+x[i-1][j]x[i-1][j-1]+x[i-1][j]解析:在程序外層i循環(huán)中先將數組的第0列元素和主對角線元素置1,內層j循環(huán)的功能是給其余元素賦值,根據題意,空格內應填入x[i-1][j-1)+x[i-1][j]。
29.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當前值3,然后再將n加l,即程序結束后得到n=4,但輸出的是3。
30.findbigfindbig解析:本題首先定義了一個指向函數的指針變量f,如果希望讓它指向某個函數,只需把函數名賦給該指針變量即可。所以說本題的空格處應該填入函數名findbig。
31.白盒白盒解析:軟件測試的方法分為白盒測試方法和黑盒測試方法.
32.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。
33.字符串字符串解析:本題考查字符替換格式:#define標識符字符串。
34.1111解析:本題考核的知識點是printf()函數的輸出格式。本題中定義了一個整型變量i并賦初值為9,然后要求以八進制輸出i的值,9的八進制數的表示為11。
35.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當其變?yōu)椤癵”時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達式“i-'a'+'A'”即表示輸出i對應的大寫字母,結果為ACE。
36.99解析:本題要輸出的結果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應該是3+1+3+1+1=9。故本題應該填9。
37.數據庫設計數據庫設計
38.5656解析:本題中a,b,c,d足實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數據傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。在調用函數時,給形參分配存儲單元,并將實參對應的值傳遞給形參,調用結束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結果是56。
39.物理獨立性物理獨立性
40.(double*)
41.CC。【解析】樹具有明顯的層次關系,即樹是一種層次結構。在樹結構中,根結點在第一層上。當樹為非空時,樹中有且只有一個根結點,當樹為空時,樹中根結點的數目為0。
42.B解析:本題考查對文件的操作。文件打開后才可以對文件進行操作,使用結束后要關閉文件。對文件的操作都是順序讀寫,即從文件的第一個數據開始,依次進行讀寫。
43.D解析:考查continue語句的使用。continue語句的作用是結束本次循環(huán),直接進入下次循環(huán)。
44.B解析:選項A)main();的分號是錯誤的,不能有分號;選項C)的注釋語句多了兩個*號;選項D)include前面沒有#。
45.D通常,將軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說:軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。
軟件生命周期的主要活動階段為:
①可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務的實施計劃。
②需求分析。對待開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊,提交評審。
③軟件設計。系統(tǒng)設計人員和程序設計人員應該在反復理解軟件需求的基礎上,給出軟件的結構、模塊的劃分、功能的分配以及處理流程。
④軟件實現(xiàn)。把軟件設計轉換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。
⑤軟件測試。在設計測試用例的基礎上,檢驗軟件的各個組成部分。編寫測試分析報告。
⑥運行和維護。將已交付的軟件投入運行,并在運行使用中不斷地維護,根據新提出的需求進行必要而且可能的擴充和刪改。
46.D解析:先將兩個數的和賦給變量x,即x=x+y;再執(zhí)行y=x-y,相當于y=(x+y)-y=x,x的值已經換給了y;最后執(zhí)行x=x-y,相當于x=(x+y)-x=y,這樣不通過第3個變量就可以將兩個變量的值互換。
47.A解析:帶參數的宏定義命令行形式如下:#define宏名(形參表)替換文本。首先進行M的宏替換,之后再進行N的宏替換,替換后的表達式為(a)*(b)/(c)。
48.C答案C
解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數的函數。
49.C解析:if語句嵌套使用時,else總是與它上面最近的if配對。因此,本題中先判斷(a<b),因為表達式的值為0,故不執(zhí)行下面的if語句,直接跳到printf行,c值沒有改變。
50.D
51.C解析:本題考查簡單的if卐lse語句。先執(zhí)行條件if(a<b),顯然不成立,在執(zhí)行else語句。
52.D解析:本題是以結構體指針的方式防問結構體數組中的元素。main()函數之前聲明了一個結構體,并在聲明同時定義了一個全局結構體數組stu[3]。主函數中,第一行定義了一個該結構體的指針t,然后讓t指向stu,即t指向的是數組stu的第一個元素。選項A提取的是數組第一個元素的num成員,值為10,不符合題意。選項B使用了一個后綴自增運算符,使t指向第二個元素,但t++表達式返回的還是第一個元素的指針,故結果與選項A相同,不符合題意,選項C語法錯誤編譯不會通過。故應該選擇D。
53.B數據庫應用系統(tǒng)的邏輯設計包括數據庫邏輯結構設計、數據庫事務概要設計和應用程序概要設計三方面。數據庫邏輯結構設計的主要步驟為:將E—R圖轉換為初始關系模式,對初始關系模式進行優(yōu)化,檢查關系表對數據庫事務的支持性,確定關系模式完整性約束,設計基于關系模式的用戶視圖。
54.C解析:在n個結點的單向鏈表(無表頭結點)中,每個結點都有一個指針單元(即指針域),加上頭指針,至少需要n+1個指針單元。
55.A解析:本題中的while((*p2=*p1)!='\\0')語句首先進行賦值*p2=*p1,即把p1所指存儲單元的字符逐一復制到p2所指存儲單元中,然后判斷p1所指單元內容是否為'\\0',若判斷條件成立,則指針p1和p2依次指向下一個字符,繼續(xù)執(zhí)行循環(huán)體語句,否則循環(huán)終止。
56.C解析:C語言的標識符的定義為:以字母或下劃線開頭的由字母、數字字符、下戈峨組成的字符串。而且標識符不能與關鍵字相同。
57.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計算switch后面括號里的表達式a%3,即15%3為0;執(zhí)行case0;后面的語句m++;m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m的值為1。
58.A解析:本題考查數據結構中二叉樹的性質。二叉樹滿足如下一條性質,即:對任意一棵二叉樹,若終端結點(即葉子結點)數為n0,而其度數為2的結點數為n2,則n0=n2+1。根據這條性質可知,若二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數為n+1。因此,本題的正確答案是選項A。
59.B
60.C解析:本題考核的知識點是關系運算和邏輯運算的混合應用。選項A用了一個絕對值函數abs(),故選項A正確:選項B中用了一個“&&”邏輯與,故選項B正確:選項C中,“||”左邊的式子如為真,將不再判斷其后的表達式的值,故選項C不正確;選項D為本題中數學關系式的一個等價命題,故選項D正確.所以,4個選項中選項C符合題意。
61.D程序(program)是為實現(xiàn)特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。設計算法時要考慮到數據結構的設計,但是不僅僅是要考慮到數據結構的設計,還要考慮到其他的程序結構的問題。設計算法時不能只考慮結果的正確性和可靠性,還需要考慮到程序的時間冗余度等方面。所以答案選擇D。
62.A該程序首先在定義變量時,對二維數組a[][N]進行賦值操作;調用函數fun,函數fun的功能是將二維數組中的a[0兒0]、a[1][1]、a[2][2]和a[3][3]賦值給一維數組,最后將一維數組元素l,0,7,0,輸出。
63.D
\n本題主要考查while循環(huán)語句和switchcase語句的使用方法。其執(zhí)行步驟為:k=5時,跳出switch語句,然后k自減1;當k=4時,跳出switch語句,然后k自減1;當k=3時,n=13+k=0+3=3,跳出switch語句,然后k自減1;當k=2時n=n+k=3+2=5,跳出switch語句,然后k自減l;當k=1時,case1:n=n+k一5+1=6,沒有break繼續(xù)執(zhí)行CaSe3;n=n+k=6+1=7,跳出switch語句,然后k自減1;當k=0時,退出循環(huán),所以輸出結果為7。
\n
64.D繼承是面向對象的方法的一個主要特征,是使用已有的類的定義作為基礎建立新類的定義技術。廣義的說,繼承是指能夠直接獲得已有的性質和特征,而不必重復定義它們,所以說繼承是指類之間共享屬性和操作的機制。
65.B
66.By=(x=)071:x<0?-1:0)中有兩個三目運算符,因此按從右到在的順序運算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項。
67.Aps一>age不是地址,不能用于scanf函數中。所以選擇A)。
68.C\r\n
69.A解析:結構化程序的概念首先是從以往編程過程中無限制地使用轉移語句而提出的。轉移語句可以使程序的控制流程強制性地轉向程序的任一處,在傳統(tǒng)流程圖中,就是用上節(jié)我們提到的“很隨意”的流程線來描述這種轉移功能。如果一個程序中多處出現(xiàn)這種轉移情況,將會導致程序流程無序可尋,程序結構雜亂無章,這樣的程序是令人難以理解和接受的,并且容易出錯。尤其是在實際軟件產品的開發(fā)中,更多的追求軟件的可讀性和可修改性,象這種結構和風格的程序是不允許出現(xiàn)的。
70.A軟件的生命周期描述了軟件從產生到最終消亡的全過程,生命周期中的活動包括需求分析、軟件設計(分為概要設計和詳細設計)、軟件實現(xiàn)、軟件測試和軟件維
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025電梯租賃合同范本
- 催收勞動合同標準文本
- 修路排水合同標準文本
- 學生如何寫入團申請書(5篇)
- 中原商鋪傭金合同范例
- 養(yǎng)殖農莊出租合同標準文本
- 俱樂部教練簽約合同標準文本
- 農村鐵管銷售合同標準文本
- 修路材料銷售合同標準文本
- 電工技術王雪琦59課件
- 鐵路職工政治理論應知應會題庫
- 2020年交安A、B、C證(公路)考試題庫1088題(含答案)
- 墻繪驗收單模板
- 節(jié)后復工檢查表
- 財務有哪些制度要上墻
- 醫(yī)學教學課件:軟組織腫瘤影像診斷
- 礦山礦石損失與貧化管理規(guī)程
- 安全生產晨會管理制度
- 直線導軌裝配文檔課件
- 2022年招標師資格《招標采購專業(yè)實務》考試題庫(真題整理版)
- (GIS)110kv組合電器
評論
0/150
提交評論