![2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第1頁](http://file4.renrendoc.com/view/4085ade08466e91c17fb70e90944f679/4085ade08466e91c17fb70e90944f6791.gif)
![2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第2頁](http://file4.renrendoc.com/view/4085ade08466e91c17fb70e90944f679/4085ade08466e91c17fb70e90944f6792.gif)
![2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第3頁](http://file4.renrendoc.com/view/4085ade08466e91c17fb70e90944f679/4085ade08466e91c17fb70e90944f6793.gif)
![2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第4頁](http://file4.renrendoc.com/view/4085ade08466e91c17fb70e90944f679/4085ade08466e91c17fb70e90944f6794.gif)
![2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第5頁](http://file4.renrendoc.com/view/4085ade08466e91c17fb70e90944f679/4085ade08466e91c17fb70e90944f6795.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下函數(shù)不能用于向文件中寫入數(shù)據(jù)的是()。
A.hellB.fwriteC.fputcD.fprintf
2.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
3.有以下程序:
A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,
4.設(shè)有定義inta=2,b=3,c=4;,則以下選項中值為0的表達式是______。A.(!a==1&&(!b==0)
B.(a<b)&&!c||1
C.a&&b
D.a||(b+b)&&(c-a)
5.判定一個順序棧st(最多元素為MaxSize)為空的條件是()。
A.st->top!B.st->top!C.top==-1D.top==MaxSize
6.
7.擁有PC機并以撥號方式接入網(wǎng)絡(luò)的用戶需要配置()
A.CD-ROMB.ModemC.電話機D.鼠標(biāo)
8.已知char**s,下面正確的語句是()。A.A.s="ABCDEF";
B.*s="ABCDEF";
C.**s="ABCDEF";
D.*s='A';
9.在C語言中,int、char和short種類型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)()。
A.由用戶自己定義B.均為2個字節(jié)C.是任意的D.由所用機器的機器字長決定
10.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類型說明是()。
A.auto和static
B.auto和register
C.register和static
D.extern和register
11.用樹形結(jié)構(gòu)表示實體之間聯(lián)系的模型的是
A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個都是
12.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
13.當(dāng)接受用戶輸入的含有空格的字符串時,應(yīng)使用()函數(shù)。
A.gets()B.getchar()C.scanf()D.printf()
14.若有定義“inta=3,*p=&a,**q=&p;”,則以下敘述中錯誤的是()。
A.q是指針變量,*q就是變量a
B.p是指針變量,p指向變量a
C.q指向變量p,所以*q指向變量a
D.*p與**q都代表變量a
15.
16.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。
A.p+1B.a+1C.a++D.++p
17.關(guān)于數(shù)組和指針,以下說法錯誤的是()。
A.數(shù)組名本身就是一個指針,指向數(shù)組內(nèi)存的起始位置
B.既可以讀入數(shù)據(jù)到數(shù)組中,也可以讀入數(shù)據(jù)到未賦初值的指針中
C.可以將指針指向一個同類型的數(shù)組
D.指針可以指向同類型的數(shù)組中的任意一個元素
18.數(shù)據(jù)庫設(shè)計中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設(shè)計的()。
A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段
19.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
20.具有20個結(jié)點的二叉樹,其深度最多為_______。
A.4B.5C.6D.20
二、2.填空題(20題)21.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括選擇、連接和【】。
22.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?/p>
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
23.設(shè)有如下程序:
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序運行后,如果從鍵盤上輸入1298,貝愉出結(jié)果為【】。
24.以下程序運行后的輸出結(jié)果是【】。
structNODE
{
intnum;
stmctNODE*next;
};
main()
{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;
intsum=0;
s[0].next=s+1;
s[1].next=s+2;
s[2].next=s;
p=s
q=p->next;
r=q->next;
sum+=q->next->num;
sum+=r->next->next->num;
printf("%d\n",sum);
}
25.已知字母A的ASCII碼為65。以下程序運行后的輸出結(jié)果是______。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
26.下列程序的輸出結(jié)果是【】。
voidfun(int*n)
{while((*n)--);
printf("%d",++(*n));
}
main()
{inta=1000;
fun(&a);
}
27.順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置______的存儲單元中。
28.若有如下程序:
main()
{intx=4,y=1;
printf("%d\n",sub(x,sub(x,y)));}
sub(inti,intj)
{staticinta=0;
intb=2;
a+=i+b;
b+=j(luò)+a;}
則程序運行后的輸出結(jié)果是【】。
29.以下程序的運行結(jié)果是【】。
#defineMAL(a,b)(a>b?a:b)+1
main()
{inti=6,j=8;
printf("%d\n",MAL(i,j));
}
30.下列程序的運行結(jié)果是______。
#definePOW(r)(r)*?
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
31.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。
32.若有如下程序:
main()
{ints=8,a=3,b=5,c=6;
if(a>b)s=a;a=b;b=s;
if(a>c){s=a;a=c;b=s);
if(b>c)s=b;b=c;c=s;
printf("%d,%d,%d\n",a,b,c);
}
則程序運行后的輸出結(jié)果是【】。
33.以下程序的運行結(jié)果是______。
structexmp{charname[10];
intnumber;
};
structexmptest[3]={{"WangXi",1},{"QiYu",2},{"HuHua",3}};
main()
{printf("%c,%s\n",test[0].name[1],test[2].name+3);
}
34.以下程序的運行結(jié)果是______。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%51d\n",k);}
35.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta,b,c;
a=25;b=025;e=0x25;
prinff("%d%d%d\n",a,h,c);
}
36.下列程序段的運行結(jié)果是______。
charstr[]="ABCD",*p=str;
printf("%d\n",*(p+3));
37.單獨測試一個模塊時,有時需要一個【】程序驅(qū)動被測試的模塊。
38.以下條件表達式可計算:1+|a|的值,請?zhí)羁铡>=0?【】:【】
39.下面的程序可列指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
40.當(dāng)所有結(jié)點的權(quán)值都相等時,用這些結(jié)點構(gòu)造的二叉排序樹是【】。
三、1.選擇題(20題)41.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
42.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int.*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){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,41
D.11,41,2112,42,22
43.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k/m)/SQR(k+m);printf("%d\n",A);}
A.16B.2C.9D.1
44.若輸入"Iamaboy!",下列程序的運行結(jié)果為______。charconnect(string1,string2,string)charstring1[],string2[],string[];{inti,j;for(i=0;stringl[i]!='\0';i++)string[i]=stringl[i];for(j=0;string2[j]!='\0';j++)string[i+j]=string2[j];string[i+j]='\0';}main(){chars1[100],s2[100],s[100];printf("\n輸入string1:\n");scanf("%s",s1);printf("\n輸入string2:\n");scanf("%s",s2);connect(s1,s2,s);printf("%s\n",s);}
A.Iamaboy!B.輸入string2:C.IamD.Iamaboy!
45.設(shè)變量a,b,c,d和y都已正確定義并賦值。若有以下if語句:
if(a<b)
if(c==d)y=0;
elsey=1;
該語句所表示的含義是()。
A.
B.
C.
D.
46.有下列程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1:m++;switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}程序運行后的輸出結(jié)果是()。
A.1B.2C.3D.4
47.下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。
A.軟件測試B.概要設(shè)計C.軟件維護D.詳細設(shè)計
48.下面函數(shù)的功能是將指針t2所指向的線性鏈表,鏈接到t1所指向的鏈表的末端。假定t1所指向的鏈表非空structnode{floatx;structnode*next;};connect(structnode*t1,structnode*t2){if(t1->next==NULL)t1->next=t2;elseconnect(______,t2);}要實現(xiàn)此功能則應(yīng)該填入的選項是
A.t1.nextB.++t1.nextC.t1->nextD.++t1->next
49.執(zhí)行下面語句后的輸出結(jié)果為()inti=-1;if(i<=0)print{("****\n");elseprintf("%%%%\n");
A.****B.%%%%%C.%%%%cD.有語法錯誤,不能正確執(zhí)行
50.十進制數(shù)124轉(zhuǎn)換成二進制數(shù)是()
A.111l010B.1111100C.1011111D.1111011
51.有以下程序#include<stdio.h>intf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}main(){intz;z=f(3);printf("%d\n",z);}程序的運行結(jié)果是
A.0B.9C.6D.8
52.下面程序的輸出結(jié)果是()#include<stdio.h>main(){inti,a[]={2,4,6,8};int*p=a;for(i=0;i<4;i++)a[i]=*p++;printf(*%d\n",a[2]);}
A.6B.8C.4D.2
53.若有結(jié)構(gòu)體定義:structstu{intnum;charsex;intage;}a1,a2;則下列語句中錯誤的是()。
A.printf("%d,%c,%d",a1);
B.a2.age=a1.age;
C.a1.age++;
D.a1.num=5;
54.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結(jié)果是
A.987B.876C.8765D.9876
55.若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。
A.(p++)->mB.*(p++)->mC.(*p).mD.*(++p)->m
56.以下敘述中錯誤的是A.gets函數(shù)用于從終端讀入字符串
B.getchar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
57.下列關(guān)于棧的描述中錯誤的是()。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
58.以下程序的輸出結(jié)果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}
A.9B.6C.36D.18
59.設(shè)有定義:chars[10];inti=0;,以下不能將一行(不超過100個字符)帶有空格的字符串正確讀入的語句或語句組是()。
A.gets(s);
B.scanf("%s",s);
C.while((s[i++]=getchar())!='\n');s[i]='\0';
D.do{scanf("%c",&s[i]);}while(s[i++]!='\n');s[i]='\0';
60.有下列程序段:typedefstructNODE{intnum;structNODE*next;}OLD;下列敘述中正確的是()。
A.以上的說明形式非法B.NODE是一個結(jié)構(gòu)體類型C.OLD是一個結(jié)構(gòu)體類型D.OLD是一個結(jié)構(gòu)體變量
四、選擇題(20題)61.為了避免在嵌套的條件語句ifelse中產(chǎn)生二義性,C語言規(guī)定,else子句總是與()配對。
A.縮排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if
62.
63.
64.若有以下定義和語句:“doubler=99,*p=&r;*P=r;”,則以下正確的敘述是()。
A.兩個*p含義相同,都說明給指針變量p賦值
B.在“doubler=99,*p=&r;”中,把r的地址賦值給了P所指的存儲單元
C.語句“*p=r;”把變量r的值賦給指針變量P
D.語句“*p=r;”取變量r的值放回r中
65.在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是()。
A.二維表B.E—R圖C.元組D.文件
66.設(shè)有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
67.在c語言中,變量的隱含存儲類別是()。
A.autoB.staticC.externD.無存儲類別
68.下列敘述中正確的是()。A.數(shù)據(jù)庫系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨立性問題,而文件系統(tǒng)不能
B.數(shù)據(jù)庫系統(tǒng)能夠管理各種類型的文件,而文件系統(tǒng)只能管理程序文件
C.數(shù)據(jù)庫系統(tǒng)可以管理龐大的數(shù)據(jù)量,而文件系統(tǒng)管理的數(shù)據(jù)量較少
D.數(shù)據(jù)庫系統(tǒng)獨立性較差,而文件系統(tǒng)獨立性較好
69.若某二叉樹中的所有結(jié)點值均大于其左子樹上的所有結(jié)點值,且小于右子樹上的所有結(jié)點值,則該二叉樹遍歷序列中有序的是()。
A.前序序列B.中序序列C.后序序列D.以上說法均可以
70.下面描述中,不屬于軟件危機表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高
71.有以下程序:
main()
{
chara[7]="a0\OaO\0";inti,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
}
程序運行后的輸出結(jié)果是()。
A)22B)76
C)75D)62
72.設(shè)有棧S和隊列Q,其狀態(tài)為空,元素a1,a2,a3,a4,a5,a6依次入棧,出棧的元素則進入隊列Q,若6個元素出隊列的順序是a2,a3,a4,a6,a5,a1,則棧的容量至少是
A.6B.4C.3D.2
73.
74.
75.
76.結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是()。
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進性D.程序的易讀性
77.有以下程序:
程序運行后的輸出結(jié)果是()
A.32B.12C.21D.22
78.以下選項中不能作為c語言合法常量的是()。.
A.0.1e+6B.’cd’.C.”、a”D.’\011
79.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,7,6,3,4,5,8,9,10,
C.1,2,7,6,5,4,3,8,9,10,
D.1,2,9,8,7,6,5,4,3,l0,
80.有以下定義:inta;longb;doublex,y;則以下選項中正確的表達式是()。
A.a%(int)(x-y)B.a=x!=y;C.(a*y)%bD.y=x+y=x
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為87653142時,t中的數(shù)為8642。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.下列程序判斷字符串s是否對稱,對稱則返回1,否則返回0;如f("abba")返回1,f("abab")返回0。
參考答案
1.Aftell是返回文件當(dāng)前指針。
2.A
3.C即輸出x[0][2]x[l][1]x[2][0]分別為357。
4.A解析:選項A中(!a==1)&&(!b==0)→(!2==1)&&(!b==0)→(0==1)&&(!b==0)→0&&(!b==0)→0(&&右邊表達式(!b==0)被“短路”):選項B中(a<b)&&!c||1→(2<3)&&!4||1→1&&0||1→0||1→1;選項C中a&&b→2&&3→1;選項Da||b+b)&&(c-a)→2||(b+b)&&(c-a)→1(||右邊表達式(b+b)&&(c-a)被“短路”)。所以本題選A。
5.B
6.B
7.B
8.C
9.D
10.B在用靜態(tài)static與外部extern定義變量時,系統(tǒng)立刻給其分配內(nèi)存,而定義自動類auto與強制放入寄存器register類型變量時,只有當(dāng)使用時才分配內(nèi)存。
11.C解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實體之間的聯(lián)系是用樹結(jié)構(gòu)來表示的,其中實體集(記錄型)是樹中的結(jié)點,而樹中各結(jié)點之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。
12.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。
13.A
14.A由題意可知:指針變量p指向變量a,p的值是a的地址;指針變量q指向變量p,q的值是P的地址。q是指針變量,q指向p,*q是變量P,選項A錯誤;p是指針變量,p指向變量a,選項B正確;由于q指向P,因此*q指向a,選項C正確;*p和**q都代表變量a,選項D正確。故本題答案為A選項。
15.D
16.C
17.BC語言中,數(shù)組名本身就是一個指針,指向數(shù)組內(nèi)存的起始位置,選項A正確;已經(jīng)定義的數(shù)組被分配了內(nèi)存空間,所以可以讀入數(shù)據(jù)到數(shù)組中,未賦初值的指針沒有分配內(nèi)存空間,不可以讀入數(shù)據(jù),選項B錯誤;可以將指針指向一個同類型的數(shù)組,選項C正確;指針指向一個數(shù)組后,可以通過移動指針,指向該數(shù)組中的任意一個元素,選項D正確。故本題答案為B選項。
18.CC?!窘馕觥縀—R(Entity—Relationship)圖為實體一聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。
19.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。
20.D
21.投影專門關(guān)系運算包括對單個關(guān)系進行垂直分解(投影操作)或水平分解(選擇操作)和對多個關(guān)系的結(jié)合(連接操作)等。
22.x[0]x[0]x[0],x[0]解析:函數(shù)f()通過for循環(huán)逐個比較數(shù)組x中的元素,循環(huán)結(jié)束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標(biāo)位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個元素x[n-1]交換位置,再將最小值x[p1]和第一個元素(x[0])進行交換,所以空白處應(yīng)該填入x[0]。
23.89218921解析:本題的程序的功能是將輸入的整數(shù)反向輸出。
24.55解析:主函數(shù)首先聲明了一個結(jié)點數(shù)組s[3],并分別初始化其成員num為1、2、3,而成員next全部被初始化為'\\0'也就是0。下面又用三條語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分別將三個結(jié)點指向其后面一個結(jié)點,而最后一個結(jié)點指向第1個結(jié)點,構(gòu)造出一條單向循環(huán)鏈表。接下來用結(jié)點指針p=s即讓其指向s[0],然后讓q=p->next,即指向了s[1],r=q->next即讓r指向s[2],然后讓一個累計變量sum累加q->next->num和r->next->next->nm,因為q指向s[1]所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最終輸出結(jié)果為5。
25.67G67G解析:字符型變量中保存的是某個字符的ASCII碼值,是一個整數(shù),因此字符型變量的算術(shù)運算和整型變量并無區(qū)別。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分別按十進制整數(shù)和字符形式輸出a和b的值為:67G。
26.00解析:while循環(huán)的條件為即當(dāng)*n非零時執(zhí)行循環(huán),(*n)一是先使用*n的值再對*n減1,結(jié)束while循環(huán)后*n的值為-1。++(*n)是先對*n加1再使用*n的值,-1+1=0,輸出*n的值即輸出0。
27.相鄰相鄰
28.19
29.99解析:用i和j替換宏MAL(a,b)小的參數(shù)a和b,(a>b?a:b)+1等價于(i>j?i:j)+1。因為6>8為假,則關(guān)系表達式i>j?i:j的值就是j的值,j=8,8+1=9,最后輸出9。
30.解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。
31.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。
32.5685,6,8解析:首先要清楚當(dāng)滿足第1個if的判斷條件時只執(zhí)行一條語句“s=a;”,當(dāng)滿足第2個if的判斷條件時執(zhí)行一條復(fù)合語句“{s=a;a=c;b=s};”,當(dāng)滿足第3個if的判斷條件時只執(zhí)行一條語句“s=b;”。執(zhí)行程序:判斷a>b,由于a=3,b=5則3>5為假,不執(zhí)行“s=a;”,執(zhí)行“a=b;”和“b=s;”,則a=5,b=8。判斷a>c,由于a=5,c=6則5>6為假,不執(zhí)行“{s=a;a=c;b=s};”。判斷b>c,由于b=5,c=6則5>6為假,不執(zhí)行“s=b;”,執(zhí)行“b=c;”和“c=s;”,則b=6,c=8。最后輸出5,6,8。
33.aua。a,ua。解析:test是結(jié)構(gòu)體數(shù)組,每個元素均可看作是一個結(jié)構(gòu)體變量,主函數(shù)將結(jié)構(gòu)體數(shù)組元素test[0]中的name域下標(biāo)為1的元素以字符形式輸出,將結(jié)構(gòu)體數(shù)組元素test[2]中的name域從地址name+3開始以字符串的形式輸出。
34.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
35.252137252137解析:程序中變量a、b、c分別為十進制、八進制、十六進制的數(shù)25,按%d格式輸出,a的輸出值為25;b=025轉(zhuǎn)換為十進制數(shù)(b=2*8+5=16+5=21)輸出;c=0x25轉(zhuǎn)換為十進制數(shù)(c=2*16+5=32+5=37)輸出。輸出結(jié)果為252137。
36.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。
37.驅(qū)動驅(qū)動
38.1+a1-a1+a,1-a解析:考查條件運算符的使用。因為題目中求的是1+|a|的值,即1和a的絕對值之和,所以根據(jù)數(shù)學(xué)中求絕對值的規(guī)則;當(dāng)a>=0時,絕對值取本身,當(dāng)a<0時,絕對值取相反數(shù),再結(jié)合條件運算符的計算規(guī)則,可得到本題的答案為a>=0。
39.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當(dāng)前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+l]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
40.右子樹(單支樹)右子樹(單支樹)解析:二叉排序樹對于任意新結(jié)點,若大于等于根結(jié)點,則在右子樹上建立。
41.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認測試和驗收的依據(jù)。
42.B解析:由于實參傳送的是變量的地址,所以對形參指針?biāo)赶虻膯卧獌?nèi)容的改變,即對實參內(nèi)容的改變。
43.B解析:C語言在預(yù)編譯時遇到帶實參的宏名,則按命令行中指定的字符串從左到右進行置換。在做這題時,也不妨運用置換法。得到a/=k+m*k+m/k+m*k+m=16/7=2。注:a為整型,所以在做除法,自動取整。
44.C
45.C解析:在C語言中,從if語句的最內(nèi)層開始,else總是與它上面最近的(未曾配對的)if配對,故本題中y=1的條件是c≠d。又因為此if語句是前一個if語句的內(nèi)層嵌套語句,所以在滿足內(nèi)層嵌套的if語句之前,必須先滿足外層的if語句中的條件表達式。a<b,所以選項C)正確。
46.B解析:本題考查switch語句。第一個switch語句,因為a=6,a%2=0,所以執(zhí)行case0.將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。
47.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個時期組成,每個時期又進一步劃分為若干個階段。軟件定義時期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)時期是具體設(shè)計和實現(xiàn)在前一時期定義的軟件,它通常由下面五個階段組成:概要設(shè)計、詳細設(shè)計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當(dāng)軟件在使用過程中發(fā)現(xiàn)錯誤時應(yīng)加以改正;當(dāng)環(huán)境改變時應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時應(yīng)該及時改進軟件,以滿足用戶的新要求。根據(jù)上述對軟件生命周期的介紹,可知選項C中的軟件維護不是軟件生命周期開發(fā)階段的任務(wù)。因此,本題的正確答案是C。
48.C解析:成員next中存放的是下一個結(jié)點的地址。
49.D
50.B
51.C解析:函數(shù)intf(intx)是一個遞歸函數(shù)調(diào)用,當(dāng)x的值等于0或1時,函數(shù)值等于3,其他情況下y=x2-f(x-2),所以在主函數(shù)中執(zhí)行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。
52.A
53.A解析:題中a1和a2兩個結(jié)構(gòu)體變量名所對應(yīng)的成員相同,可以與運算“++’相結(jié)合。結(jié)構(gòu)體變量的輸出格式為:printf('要輸出變量名;%d\\t',結(jié)構(gòu)變量名.要輸出的成員變量名),
54.B解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時的輸出結(jié)果來決定哪一項是正確的。第一次進入循環(huán)時,n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時,n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時,輸出為6,由此可以排除選項C)。
55.D
56.B其中B選項的getchar函數(shù)用于從終端讀入字符。故本題答案為B選項。
57.B棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?,也可以采用鏈式存儲。
58.C解析:觀察程序段可知,對帶參數(shù)的宏的展開只是將語句中的宏名后面括號內(nèi)的實參字符串代替#define命令行中的形參。本題中c=f(a)/f(b)用#definef(x)x*x代替得c=f(6)/f(2),即c=6*6/2*2,結(jié)果為36。
59.B解析:本題考查標(biāo)準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()數(shù)接收字符串時的結(jié)束標(biāo)志為回車或者空格。因此選巧
60.C解析:C語言允許用typedef說明一種新類型名,其一般形式為:typedef類型名標(biāo)識符。typedef語句的作用僅僅是使“標(biāo)識符”來代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型。原有類型名依然有效。此題中,用使typedef定義了新的類型OLD結(jié)構(gòu),所以O(shè)LD為結(jié)構(gòu)體類型。
61.B解析:本題考查ifelse語句。C語言規(guī)定,else總是與它前面的最近的if配對。
62.C
63.B
64.B在定義*p=&r時,是表示r的地址賦給了p所指的存儲單元,因此選項B正確。
65.A\n關(guān)系數(shù)據(jù)庫系統(tǒng)采用關(guān)系模型作為數(shù)據(jù)的組織形式。在關(guān)系模型中用二維表來表示實體及實體問的聯(lián)系。
\n
66.B解析:條件表達式的形式為:“表達式1?表達式2:表達式3”。其含義為:當(dāng)“表達式1”的值為非零時,求出“表達式2”的值,此時“表達式2”的值就是整個條件表達式的值;當(dāng)“表達式1”的值為零時,求出“表達式3”的值,此時“表達式3”的值就是整個條件表達式的值。對于本題來說,當(dāng)表達式EXP為非0值時條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時,執(zhí)行語句j--;這等同于條件表達式“(EXP!=0)?i++:i++;”。
67.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態(tài)存儲方式。大多數(shù)變量是自動變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲單元空間不釋放,局部變量保留原值,下次調(diào)用時可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實際上,關(guān)鍵字'auto'可以省略,auto不寫則隱含確定為'自動存儲類別',屬于動態(tài)存儲方式。
68.A數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了3個階段:
人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。三者各自的特點如下表所示。\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t特點\t\t\t\t\t\t\t人工管理階段\t\t\t\t\t\t\t文件系統(tǒng)階段\t\t\t\t\t\t\t數(shù)據(jù)庫系統(tǒng)階段\t\t\t\t\t\t\t管理者\t\t\t\t\t\t\t人\t\t\t\t\t\t\t文件系統(tǒng)\t\t\t\t\t\t\t數(shù)據(jù)庫管理系統(tǒng)\t\t\t\t\t\t\t面向?qū)ο骪t\t\t\t\t\t\t某個應(yīng)用程序\t\t\t\t\t\t\t某個應(yīng)用程序\t\t\t\t\t\t\t現(xiàn)實世界\t\t\t\t\t\t\t共享程度\t\t\t\t\t\t\t無共享,冗余度大\t\t\t\t\t\t\t共享性差,冗余度大\t\t\t\t\t\t\t共享性大,冗余度小\t\t\t\t\t\t\t獨立性\t\t\t\t\t\t\t不獨立,完全依賴于程序\t\t\t\t\t\t\t獨立性差\t\t\t\t\t\t\t具有高度的物理獨立性和一定的邏輯獨立性\t
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腎內(nèi)分泌科護理工作總結(jié)
- 2025年全球及中國醫(yī)用全自動凝血分析儀行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國企業(yè)級機械硬盤和固態(tài)硬盤行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球3D晶體管行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球立式不銹鋼離心泵行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球汽車電池試驗箱行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國游戲人工智能NPC行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球自動藥敏分析儀行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國無線藍牙肉類溫度計行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國固定橋式坐標(biāo)測量機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030年中國清真食品行業(yè)運行狀況及投資發(fā)展前景預(yù)測報告
- 廣東省茂名市電白區(qū)2024-2025學(xué)年七年級上學(xué)期期末質(zhì)量監(jiān)測生物學(xué)試卷(含答案)
- 《教育強國建設(shè)規(guī)劃綱要(2024-2035年)》全文
- 山東省濱州市2024-2025學(xué)年高二上學(xué)期期末地理試題( 含答案)
- 2025年河南洛陽市孟津區(qū)引進研究生學(xué)歷人才50人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年度軍人軍事秘密保護保密協(xié)議與信息安全風(fēng)險評估合同3篇
- 數(shù)字化轉(zhuǎn)型中的職業(yè)能力重構(gòu)
- 運用PDCA降低住院患者跌倒-墜床發(fā)生率
- 2025屆高中數(shù)學(xué)一輪復(fù)習(xí)專練:橢圓(含解析)
- 立春氣象與生活影響模板
- 中國服裝零售行業(yè)發(fā)展環(huán)境、市場運行格局及前景研究報告-智研咨詢(2025版)
評論
0/150
提交評論