




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2022-2023年浙江省湖州市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.efg,h,z,q,bcd
B.efg,d,zyz,wbbcd
C.efgabcdsnopqhijkIxyz,h,z,q,bcd
D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd
2.
3.在面向?qū)ο笤O(shè)計中,對象有很多基本特點,其中“從外面看只能看到對象的外部特性,而對象的內(nèi)部對外是不可見的?!边@一性質(zhì)指的是對象的
A.分類性B.標識惟一性C.多態(tài)性D.封裝性
4.數(shù)據(jù)庫的故障恢復(fù)一般是由()來執(zhí)行恢復(fù)
A.電腦用戶B.數(shù)據(jù)庫恢復(fù)機制C.數(shù)據(jù)庫管理員D.系統(tǒng)普通用戶
5.以下程序的輸出結(jié)果是
#include<stdio.h>
voidprt(int*x,int*y,int*z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{inta=10,b=40,c=20;
prt(&a,&b,&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,21
D.11,41,2112,42,22
6.設(shè)文件指針fp已定義,執(zhí)行語句“fP=foPen(“file”,“w”);”后,下列針對文本文件file操作敘述的選項中正確的是()。
A.只能寫,不能讀B.寫操作結(jié)束后可以從頭開始讀C.可以在原有內(nèi)容后追加寫D.可以隨意讀和寫
7.數(shù)據(jù)的存儲結(jié)構(gòu)是指______。
A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)
8.若要判斷char型變量c中存放的是否為小寫字母,以下正確的表達式是()。A.'a'<=c<='z'
B.(c>='a')&&(c<='z')
C.(c>='a')‖(c<='z')
D.('a'<=c)AND('z'>=c)
9.
10.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
11.若有說明語句:inta,b,c,*d=&c;,則能正確從鍵盤讀入3個整數(shù)分別賦給變量a、b、c的語句是______。
A.scanf("%d%d%d",&a,&b,d);
B.scanf("%d%d%d",&a,&b,&d);
C.scanf("%d%d%d",a,b,d);
D.scanf("%d%d%d",a,b,*d);
12.若變量已正確定義,有以下程序段
A.0,0B.0,1C.1,1D.程序進入無限循環(huán)
13.
14.下面的哪個保留字不能作為函數(shù)的返回類型()。
A.voidB.intC.newD.long
15.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
16.設(shè)無向圖G中的邊的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點a出發(fā)進行深度優(yōu)先遍歷可以得到的一種頂點序列為()。
A.aedfcbB.acfebdC.aebcfdD.aedfbc
17.在鏈表中進行操作比在順序表中進行操作效率高()。
A.順序查找B.折半查找C.分塊查找D.插入
18.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化
19.已知一算術(shù)表達式的中綴形式為A+B*C–D/E,后綴形式為ABC*+DE/–,其前綴形式為()。
A.–A+B*C/DEB.–A+B*CD/EC.–+*ABC/DED.–+A*BC/DE
20.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{charc;intn=100;
floatf=10:doublex:
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
22.下面程序
main()
{inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
運行后,i,j,m,n的值分別是_______。
23.若有如下結(jié)構(gòu)體說明:
structSTRU
{inta,b;charc:doubled;
stmctSTRU*p1,*p2;
};
請?zhí)羁眨酝瓿蓪數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。【】t[20]
24.以下程序運行后的輸出結(jié)果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*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);
ptintf("\n");
}
25.有以下語句段
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>
n1=10
n2=20
26.下面程序的輸出是【】
main()
{enumem{eml=3,em2=1,em3};
char*aa[]={"AA',"BB","CC","DD"}
printf("%s%s%\n",aa[em1],aa[em2],aa[em3]);
}
27.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
28.下列程序的輸出結(jié)果是______。
#include<stdio.h>
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
如:dp=x*-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,D);
printf("%d%d\n",c,D);
}
29.閱讀下面語句,則程序的執(zhí)行結(jié)果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\",a,b);
elseprintf("%d,%d\n",b,a);}
30.把數(shù)學表達式改寫成C語言的表達式是【】。
31.有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是【】。
structnode
{chardata;
structnode*next;}a,b
32.數(shù)據(jù)管理技術(shù)發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個階段,其中數(shù)據(jù)獨立性最高的階段是______。
33.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
34.以下程序的輸出結(jié)果是_______。
main()
{char*p[]={"BOOL","OPK","H","SP:,};
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
35.若運行輸入:3<回車>,則以下程序的輸出結(jié)果是()。main(){inta,b;scanf("%d",&A);b=(a>=0)?a:-a;printf("b=%d",B);}
36.診斷和改正程序中錯誤的工作通常稱為【】。
37.對下列二叉樹進行中序遍歷的結(jié)果為【】。
38.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
39.算法的基本特征主要包括叫個方面,它們分別是可行性、確定性、()和擁有足夠的情報。
40.若有以下程序
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
執(zhí)行后輸出結(jié)果是【】。
三、1.選擇題(20題)41.一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為()。
A.對應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
42.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個元素都有一個直接前件和直接后件
B.線性表中至少要有一個元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
43.棧通常采用的兩種存儲結(jié)構(gòu)是()。
A.順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
44.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是
A.p=q;B.*p=*q;C.n=*q;D.p=n;
45.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個關(guān)鍵碼為基準元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個位置。
A.3B.5C.7D.9
46.C語言中最簡單的數(shù)據(jù)類型包括()。
A.整型、實型、邏輯型B.整型、實型、字符型C.整型、字符型、邏輯型D.整型、實型、邏輯型、字符型
47.以下程序有錯,錯誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;……}
A.p和q的類型不一致,不能執(zhí)行*p=*q;語句
B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句
C.q沒有指向具體的存儲單元,所以*q沒有實際意義
D.q雖然指向了具體的存儲單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會影響后面語句的執(zhí)行結(jié)果
48.下列說法錯誤的是()。
A.下列結(jié)構(gòu)體定義時,占據(jù)了5個字節(jié)的空間structstudent“ntnum;intage;charsex;}
B.結(jié)構(gòu)體的成員名可以與程序中的變量名相同
C.對結(jié)構(gòu)體中的成員可以單獨使用,它的作用相當于普通變量
D.結(jié)構(gòu)體可以嵌套定義
49.軟件危機產(chǎn)生的原因從根本上說是()
A.軟件需求的增長超過軟件生產(chǎn)率的提高
B.軟件需求的增長小于軟件生產(chǎn)率的提高
C.軟件需求的減少大于軟件生產(chǎn)率的減少
D.軟件需求的減少小于軟件生產(chǎn)率的減少
50.下列程序的運行結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}
A.2B.3C.5D.4
51.若有如下語句:structa{charx[10]inty;}s,*t;t=&s;則對結(jié)構(gòu)體變量s中的成員y的正確引用是()
A.a.y;B.t->y;C.t.y,D.*t->y;
52.下列程序的運行結(jié)果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}
A.正數(shù)B.負數(shù)C.零D.不確定的值
53.以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);}
程序運行后的輸出結(jié)果是
A.4B.3C.2D.1
54.執(zhí)行以下程序后輸出的結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
55.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}執(zhí)行后輸出結(jié)果是()。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
56.下列程序的運行結(jié)果是#include"stdio.h"main(){intx=-9,y=5,z=8;if(x<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);}
A.6B.7C.8D.9
57.執(zhí)行下面程序的正確結(jié)果是()main(){floata=1.9switch(A){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",A);}
A.1.900000
B.111133331.900000
C.33331.900000
D.00001111233331.900000
58.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
59.在C語言程序中,下列說法正確的是()。
A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套
B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
C.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套
60.在“文件包含”預(yù)處理語句的使用形式中,當#include后面的文件名用"",(雙撇號)括起時,尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標準方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標準方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當前目錄
四、選擇題(20題)61.有以下程序
#include<stdio.h>
voidfun(ints[])
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{
intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
程序的運行結(jié)果是
A.34756B.23445
C.35745D.12345
62.
有以下程序:
voidf(intx,inty)
{intt;
if(x<y){t=x;x=Y;y=t;)
}
main
{inta=4,b=3,c=5;
f(a,b);f(a,c);f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
執(zhí)行后輸出結(jié)果是()。
A.3,4,5B.5,3,4C.5,4,3D.4,3,5
63.設(shè)有以下定義和語句:
則以下敘述中正確的是()。
A.str數(shù)組長度和P所指向的字符串長度相等
B.*P與str[0]的值相等
C.str與P的類型完全相同
D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同
64.有以下程序:
#include<stdio.h>
#include<strin9.h>
main()
{printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}
程序運行后的輸出結(jié)果是()。
A.3B.8C.4D.9
65.下列程序的輸出結(jié)果是
intb=2;
intfunc(int*a)
{b+=*a;return(b);}
main()
{inta=2,res=2;
res+=func(&a);
printf("%d\n",res);
}A.2
B.4C.6
D.8
66.
67.以下程序運行后的輸出結(jié)果是()。
A.1B.2C.4D.8
68.一間宿舍可住多名學生,則實體宿舍和學生之間的聯(lián)系是()。A.一對一B.一對多C.多對一D.多對多
69.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)
70.有三個關(guān)系R、S和T如下:
則由關(guān)系R和s得到關(guān)系T的操作是()。
A.自然連接B.差C.交D.并
71.有如下程序段
#include"stdio.h"
voidfun(int*a,int*b,int*c,int*d,int*e)
{inti,j,k,m;
for(i=0;i<*a;i++)
for(j=0;j<*b;j++)
for(k=0;k<*c;k++)
for(m=0;m<*d;m++)
++*e;
}
main()
{inta=10,b=10,c=10,d=10,e=0;
fun(&a,&b,&c,&d,&e);
printf("%d\n",e);}
則程序段的輸出結(jié)果是
A.10000B.1000
C.100D.0
72.有以下程序:
程序的運行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
73.
74.
75.
對兩個數(shù)組a和b進行下列初始化:
charm[]1="l234567":
charn[]={1,2,3,4,5,6,7);
則下列敘述正確的是()。
A.數(shù)組m與數(shù)組n完全相同
B.數(shù)組m與數(shù)組n長度相同
C.數(shù)組m比數(shù)組n長1
D.數(shù)組m與數(shù)組n中都存放字符串
76.
下列程序執(zhí)行后的輸出結(jié)果是()。
main
{inta[3][3],*p,i};
p=&a[0][0];
for(i=p;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
A.3B.6C.9D.隨機數(shù)
77.
78.非空循環(huán)鏈表所表示的數(shù)據(jù)結(jié)構(gòu)()。
A.有根結(jié)點也有葉子結(jié)點B.沒有根結(jié)點但有葉子結(jié)點C.有根結(jié)點但沒有葉子結(jié)點D.沒有根結(jié)點也沒有葉子結(jié)點
79.以下敘述正確的是()。A.C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))
B.C語言程序是由過程和函數(shù)組成的
C.c語言函數(shù)不可以單獨編譯
D.c語言中除了main函數(shù),其他函數(shù)不可作為單獨文件形式存在
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計算正整數(shù)m各位上數(shù)字的平方和。 例如,輸入498,則輸出應(yīng)該是161。 請修改程序中的錯誤,使它能得到正確結(jié)果。 注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。 試題程序: #include<stdlib.h> #include<stdio.h> #include<conio.h> longproc(10ngm) {//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum); } voidmain {longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n)); }六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:使字符串中前部的*號不得多余m個;若多余m個,則刪除多余的*號;若少于或等于m個,則什么也不做,字符串中間和尾部的*號不刪除。例如,字符串中的內(nèi)容為****A*BC*DEF*G****,若m的值為2,刪除后,字符串中的內(nèi)容則應(yīng)當是**A*BC*DEF*G****;若m的值為4,則字符串中的內(nèi)容仍為****A*BC*DEF*G****。n的值在主函數(shù)中輸入。在編寫函數(shù)時,不得使用c語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.A程序定義一個二維字符數(shù)組v,使用5個字符串對其初始化。對于表達式“*v”等價于“*(v+0)”,輸出的是數(shù)組v的第1個元素efg;“**(v+3)”等價于“*(*(v+3)+0)”,輸出的是數(shù)組v的第4個元素的第1個字符h;“v[4]”表示數(shù)組v的第5個元素,“v[4]+2”表示輸出從下標2開始的所有字符,即z;“v[2]”表示數(shù)組v的第3個元素,“*(v[2]+4)”表示數(shù)組v的第3個元素的下標為4的字符q;“v[1]+1”表示數(shù)組v的第2個元素從下標1開始的子字符串,即bcd。所以程序輸出:efg,h,z,q,bcd。本題答案為A選項。
2.A
3.D解析:從外面看只能看到對象的外部特性,而對象的內(nèi)部,即處理能力的實行和內(nèi)部狀態(tài),指的是對象的封裝性。
4.CC)【解析】數(shù)據(jù)庫一旦發(fā)生故障,需要及時進行故障恢復(fù),并由數(shù)據(jù)庫管理員負責執(zhí)行故障恢復(fù)。
5.B解析:考查指針作為參數(shù)的函數(shù)調(diào)用。盡管C語言以傳值方式進行函數(shù)調(diào)用,但也可以通過傳遞指針的值(變量的地址)來達到修改實參變量值的目的,這是此題主要說明的問題。另外,應(yīng)注意表達式\ue008*(z++)\ue009的值是*z,其后的z++在程序中無實際作用。函數(shù)調(diào)用時,由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時,*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。
6.A以“w”方式打開文件時只能寫,不能讀。故本題答案為A選項。
7.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。
8.BC語言中,char型變量的值是其對應(yīng)字符的ASCII值,可以做比較運算。由于小寫字母的ASCII值按字母表的順序連續(xù)遞增,因此判斷char型變量c是不是小寫字母時,判斷c的ASCII值是否在’a’和’z’之間,即(c>=’a’)&&(c<=’z’)。本題答案為B選項。
9.D
10.D解析:本題考查指向字符串指針的運算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。
11.A解析:選項B中d已經(jīng)為地址,不應(yīng)在加上求地址符號“&”,故選項B不正確;選項C中,a和b都為變量不是地址,應(yīng)該在a和b之前加上求地址符號“&”,故選項C不正確:選項D中指針d所指向的存儲空間的位置為變量c的值,不為地址,故選項D不正確,所以,4個選項中A為所選。
12.Bdo…while循環(huán)的執(zhí)行過程如下:①執(zhí)行do后面的循環(huán)體中的語句。②計算while后一對圓括號中表達式的值。當值為非0時,轉(zhuǎn)去執(zhí)行步驟①;當值為0時,執(zhí)行步驟③。③退出do…while循環(huán)。對于本題變量i的初始值等于“0”,接著執(zhí)行do后面的循環(huán)體中的語句,輸出變量i的值0。再判斷while后面括號中表達式i十的值,其值為0,所以循環(huán)結(jié)束。.此時變量i的值經(jīng)過自加已經(jīng)變?yōu)?,所以再次輸出i的值“1”。
13.C
14.C
15.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應(yīng)該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。
16.B
17.D
18.C棧是先進后出的數(shù)據(jù)結(jié)構(gòu),在對棧操作的整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。
19.D
20.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s。“(*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運算符“*”,故選項A、C不能表示“a[3]”;選項D的“*s+3”等于“a[0]+3”。故本題答案為B選項。
21.220220解析:根據(jù)賦值運算符“自右至左”的結(jié)合順序,程序中賦值表達式x=f*=n/=(c=50)的求解步驟為:首先計算n/=(c=50),即n=n/c=100/50=2;然后計算f*=n,即f=f*n=10*2=20.000000,由此得到x的值為20.000000。
22.611610。6,11,6,10。解析:本題考查自加的前置和后置的區(qū)別。
23.structSTRUstructSTRU解析:結(jié)構(gòu)體類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構(gòu)體類型的定義:
struct結(jié)構(gòu)體類型名
{
成員項表;
};
定義結(jié)構(gòu)體變量的的形式為:
struct結(jié)構(gòu)體類型名變量1,變量2,……
其中變量包括:一般變量、指針變量、數(shù)組變量等。
24.1343113431解析:程序首先定義了一個結(jié)構(gòu)體NODE,在主函數(shù)中聲明了一個該結(jié)構(gòu)體的數(shù)組m[5]和兩個結(jié)構(gòu)體指針p和q,并分別初始化p指向m(指向數(shù)組的第—個元素):q指向m+4(指向數(shù)組的最后一個元素)。接下來定義并初始化一個整型變量i為0。然后用一個while循環(huán),在p和q不相等的時候執(zhí)行循環(huán)體:讓p所指結(jié)構(gòu)體的成員k等于++i的值,然后讓p指向下一個結(jié)構(gòu)體;讓q所指結(jié)構(gòu)體的成員k等于i++的值,然后讓q指向前一個結(jié)構(gòu)體。i從0開始交替調(diào)用++i和i++,兩個表達式的值依次分別為1和1、3和3……。所以當p==q循環(huán)結(jié)束時,實際循環(huán)了兩次,p和q都指向m數(shù)組的中間位置m[2],i自增了4次,所以q->k=i;就是讓m[2]k=4。所以程序最后輸出為:13431。
25.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù),其中格式控制參數(shù)由兩種成分組成:格式說明和普通字符,普通字符將被簡單地復(fù)制顯示,格式說明項將引起一個輸出參數(shù)項的轉(zhuǎn)換與顯示,它是由“%”引出并以一個類型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數(shù),所以格式說明項為%d,也可以在%與d之間加上域?qū)?,另外還要在每行輸出結(jié)束時加轉(zhuǎn)義字符\\n進行換行。所以,應(yīng)填寫n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。
26.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上—個元素存在并有明確值的情況下,這個牧舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=cm2+1=1+1=2,進而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當為'DDBBCC'。
27.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
28.7979解析:因為在調(diào)用子函數(shù)時進行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。
29.101,0解析:與運算兩邊的語句必須同時為真時,結(jié)果才為真。當執(zhí)行完if((++a<0)&&!(b--<=0))時,a,b的值已經(jīng)發(fā)生了變化。
30.(cosx)*(cosx)*(m+n)/(m-n)
31.a.next=aba.next=ab解析:選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應(yīng)該是p->next=&b;在選項D)中,用*運算符取出結(jié)構(gòu)體變量,并且保存的就是b的地址。
32.數(shù)據(jù)庫系統(tǒng)或數(shù)據(jù)庫系統(tǒng)階段或數(shù)據(jù)庫或數(shù)據(jù)庫階段或數(shù)據(jù)庫管理技術(shù)階段數(shù)據(jù)庫系統(tǒng)或數(shù)據(jù)庫系統(tǒng)階段或數(shù)據(jù)庫或數(shù)據(jù)庫階段或數(shù)據(jù)庫管理技術(shù)階段解析:在數(shù)據(jù)庫系統(tǒng)管理階段,數(shù)據(jù)是結(jié)構(gòu)化的,是面向系統(tǒng)的,數(shù)據(jù)的冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性,同時提高了數(shù)據(jù)的可擴充性和數(shù)據(jù)應(yīng)用的靈活性;數(shù)據(jù)具有獨立性,通過系統(tǒng)提供的映象功能,使數(shù)據(jù)具有兩方面的獨立性:一是物理獨立性,二是邏輯獨立性;保證了數(shù)據(jù)的完整性、安全性和并發(fā)性-綜上所述,數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)管理階段。
33.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
34.
35.b=3b=3解析:條件表達式的基本格式為:“表達式1?表達式2:表達式3”;其功能是:表達式1的值若非0,則計算表達式2的值,且為最終結(jié)果;若表達式1的值為0,則計算表達式3的值,且為最終結(jié)果。因為a=3,則a>=0成立,所以b=a=3。
36.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
37.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當二叉樹的根不為空時,依次執(zhí)行如下3個操作:①按中序遍歷左子樹。②訪問根結(jié)點。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點B,然后訪問結(jié)點D,因為結(jié)點D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點F的左子樹。然后訪問根結(jié)點F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點E,然后訪問結(jié)點E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點G,最后訪問G的右子樹P。以上就把整個二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。
38.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關(guān)系,年號能被400整除即y%400==0,與前兩項是或的關(guān)系。
39.有窮性有窮性
40.99解析:函數(shù)的嵌套調(diào)用是在主函數(shù)中函數(shù)f(f(3,4),f(3,5))的返回值賦給d。函數(shù)的第一個參數(shù)為f(3,4)的返回值,函數(shù)f(3,4)返回值為(4-3)*3=3,f(3,5)返回值為(5-3)*3=6,那么函數(shù)f(f(3,4),f(3,5))等價于函數(shù)f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9,所以輸出9。
41.C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個具有N個屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點。
42.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。
43.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結(jié)構(gòu)中的應(yīng)用。
44.D解析:本題中首先定義了一整型變量n并賦初值為2,接著定義了一個整型指針變量p并讓它指向n,接著又定義了一指向指針的指針變量q。選項A中給指針變量p賦值q,故這個賦值語句正確。選項B中*p=*q就是將*q的值賦給指針變量p所指向的變量n,故這個賦值語句不是非法的賦值語句。選項C中是將*q的值賦給變量n,故這個表達式不是非法的賦值語句。選項D中p為一指針變量,應(yīng)該將一地址賦給它,而在此選項的表達式中將變量n而不是n的地址賦給它,故這個表達式不合法。
45.BB.【解析】快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。
46.B
47.D解析:該程序的執(zhí)行過程是:首先聲明整型指針變量P和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,將40賦給*p,此時,q已經(jīng)指向了一個具體的存儲單元,但ch的值不確定,即*p沒有確定的值,所以不能執(zhí)行*p=*q語句。
48.A解析:本題主要考查定義結(jié)構(gòu)體的幾個特點:①結(jié)構(gòu)的定義明確了結(jié)構(gòu)的組成形式,定義了一種C語言中沒有而用戶需要的新的數(shù)據(jù)類型。與其他的數(shù)據(jù)類型不同,在程序編譯的時候結(jié)構(gòu)的定義并不會使系統(tǒng)為該結(jié)構(gòu)分配內(nèi)存空間,只有在說明結(jié)構(gòu)變量時才分配內(nèi)存空間;②結(jié)構(gòu)體的成員名可以與程序中的變量名相同:⑧結(jié)構(gòu)體中的成員可以單獨使用,它的作用相當于普通變量:④結(jié)構(gòu)體可以嵌套定義。
49.B
50.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第二個if語句,先判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對的else語句,c+=1,得c=5。
51.B解析:本題中的a是結(jié)構(gòu)體名,s是結(jié)構(gòu)體a的變量,t是結(jié)構(gòu)體a的指針。通過變量直接訪問結(jié)構(gòu)體成員應(yīng)該使用“.”運算符,而通過指針間接訪問結(jié)構(gòu)體成員應(yīng)該使用“->”運算符。故本題的正確答案為B。
52.A解析:本題考查字符串比較函數(shù)和兩個字符串比較的原則兩個知識點,①原則是依次比較兩個字符串同一位置的對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大。②strcmp(s1,s2)的返回值,當str1<str2時,返回值<0;當str1=str2時,返回值為0;當str1>str2,返回值>0。
53.B解析:在main函數(shù)中,對f(1)和f(2)的值進行了累加。
f(1)=1
f(2)=f(1)+1=2
最后,j的值為1+2=3
54.D解析:do-while語句的特點是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立,當循環(huán)條件的值為0時循環(huán)結(jié)束。當y=0時循環(huán)結(jié)束,printf('%d\\n',y-)語句是先輸出y再自減,所以輸出結(jié)果為0。
55.B解析:本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形參x和y,該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變量。主函數(shù)中定義了兩個指針變量p和q,并讓它們指向變量a和b,調(diào)用函數(shù)f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和*r的值是7,8和7。所以,B選項為所選。
56.D解析:if...else語句的執(zhí)行過程如下,首先計算if后面一對圓括號內(nèi)表達式的值,若表達式的值為非0,執(zhí)行if子句,然后跳過else子句,去執(zhí)行if語句后的下一條語句;若表達式的值為0,跳過if子句,去執(zhí)行else子句,接著去執(zhí)行if語句后的下一條語句。C語言的語法規(guī)定,else子句總是與前面最近的不帶else的if匹配,與書寫格式無關(guān),本題目的后一個ifelse相當于嵌套在第一個if子句里,相當于x<y&&y<0時,z=0;當x<y&&y>=0時,z=z+1。
57.B
58.A解析:在C語言中,動態(tài)存儲區(qū)域中存放的變量在使用時才分配內(nèi)存空間,函數(shù)調(diào)用時返回的地址和自動類局部變量等存放在動態(tài)存儲區(qū)域中。auto變量和register變量都屬于自動類局部變量,因此選項A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲中占據(jù)著永久的存儲單元,直至程序運行結(jié)束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個程序運行期間都占用內(nèi)存空間。
59.B解析:本題考查函數(shù)調(diào)用的基本概念。因為函數(shù)的結(jié)果是個未知量,而函數(shù)定義時不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。
60.B解析:本題考查庫函數(shù)調(diào)用的知識點。格式1:#include<文件名>,預(yù)處理程序在標準目錄下查找指定的文件;格式2:#include'文件名',預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標準目錄搜索。
61.C在本題中,首先定義了一個fun函數(shù),函數(shù)中的形參是一個數(shù)組,該函數(shù)中首先定義了一個靜態(tài)整型變量j并賦了初值,注意,靜態(tài)變量的作用域是整個程序,而非該函數(shù)。從該函數(shù)的程序段不難看出該函數(shù)的作用是通過一個循環(huán)求形參數(shù)組中相鄰兩個元素(具體根據(jù)j確定)的和,并保存。
在主函數(shù)中,定義了一個數(shù)組并賦初值,然后用循環(huán)調(diào)用fun函數(shù)。
當k=1時,調(diào)用fun函數(shù),此時剛開始j的值為0,那么fun函數(shù)分別計算數(shù)組a中的第一個元素與第二個元素的和與第二個元素與第三個元素的和,并分別保存為數(shù)組的第一個元素和第二個元素,結(jié)果分別為3和5。
當k=2時,調(diào)用fun函數(shù),此時j的值為2,那么fun函數(shù)只計算數(shù)組a中的第三個元素與第四個元素的和,并保存為數(shù)組的第三個元素,結(jié)果為7。
循環(huán)結(jié)束,經(jīng)過該層循環(huán)后,數(shù)組a中各元素的值分別為3、5、7、4、5,最后用循環(huán)輸出結(jié)果為35745。因此,答案選C。
62.D
\na、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是4、3、5。
\n
63.BP是字符串指針,所指向的字符串為”Program”,其長度為7,而數(shù)組str中元素的個數(shù)為25,因此選項A)和D)是錯誤的;p=str;后,指針P指向str的首地址,*P=str[0],因此選項B)是正確的;str是數(shù)組,不是指針變量,所以選項c)也是錯誤的。
64.B\n本題考查strlen函數(shù)和轉(zhuǎn)移字符,strlen函數(shù)的功能是求字符串的長度,在本題中有“\”,C語言中“\”是轉(zhuǎn)義字符,在計算長度時會將轉(zhuǎ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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北海市初中數(shù)學試卷
- 豆類項目風險識別與評估綜合報告
- 邊坡錨桿錨索腰梁施工方案
- 浙江油田油管清洗施工方案
- 房屋地面鋪裝工程施工方案
- 三水裝配式檢查井施工方案
- “油茶+N”混交造林模式的技術(shù)創(chuàng)新與應(yīng)用實踐的效益詳述
- 智能制造與供應(yīng)鏈管理的策略及實施路徑
- 數(shù)字化改造的必要性與挑戰(zhàn)
- 變電站巡檢的重要性
- 季節(jié)性施工專項施工方案(常用)
- 傷口(壓瘡)的評估與記錄
- 煤礦機電運輸類臺賬(各種記錄匯編)
- 風電場道路及平臺施工組織方案
- 風險分級管控74411ppt課件(PPT 146頁)
- 三八女神節(jié)活動策劃PPT課件
- 畢業(yè)設(shè)計(論文)3000t自由鍛液壓機本體設(shè)計
- 風力發(fā)電機組PLC系統(tǒng)
- Q∕GDW 12131-2021 干擾源用戶接入電網(wǎng)電能質(zhì)量評估技術(shù)規(guī)范
- T∕CAEPI 32-2021 全尾砂膏體充填關(guān)鍵設(shè)備技術(shù)要求
- 第2章全站儀使用
評論
0/150
提交評論