版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年山西省長治市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.對線性表進行折半查找時,必須要求線性表()。
A.順序方式存儲B.鏈式方式存儲C.以順序方式存儲,且結(jié)點按關(guān)鍵字有序排列D.以鏈式方式存儲,且結(jié)點按關(guān)鍵字有序排列
2.以下敘述中正確的是()。
A.文件指針是一種特殊的指針類型變量
B.文件指針的值等于文件當前讀寫位置,以字節(jié)為單位
C.文件指針的值等于文件在計算機硬盤中的存儲位置
D.調(diào)用fscanf函數(shù)只能向文本文件中寫入任意字符
3.下面哪個序列不是此圖的一個拓撲排序()A.ebfgadchB.aebdgfchC.adchebfgD.Aedbfgch
4.若一組記錄的排序碼為(46,79,56,38,40,84),則利用快速排序的方法,以第一個記錄為基準得到的一次劃分結(jié)果為()
A.38,40,46,56,79,84
B.40,38,46,79,56,84
C.40,38,46,56,79,84
D.40,38,46,84,56,79
5.下列程序的運行結(jié)果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5
6.若有序表的關(guān)鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關(guān)鍵字b的過程中,先后進行的關(guān)鍵字依次為()
A.f,c,BB.f,d,BC.g,c,BD.g,d,B
7.若變量已正確定義為int型,要通過語句“scanf(“%d,%d,%d”,&a,&b,&c);”將a賦值為1、將b賦值為2、將c賦值為3,以下輸入形式中錯誤的是(注:□代表一個空格符)()。
A.1,2,3<Enter>
B.□□□1,2,3<Enter>
C.1,□□□2,□□□3<Enter>
D.1□2□3<Enter>
8.
9.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++printf("%d\n",sum);)執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9
10.有以下函數(shù):intfun(char*x,char*y)intn=0;while((*x==*y)&&*x!=‘\0’)∣x++;y++;n++;∣returnn;函數(shù)的功能是()。A.將y所指字符串賦給x所指存儲空間
B.查找和y所指字符串中是否有‘\0’
C.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)
D.統(tǒng)計x和y所指字符串中相同的字符個數(shù)
11.if語句的基本形式是“if(表達式)語句”,以下關(guān)于“表達式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
12.在位運算中,操作數(shù)每左移兩位,其結(jié)果相當于()。
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4
13.有以下程序:#include<stdio.h>main(){char*s="[2]34";intk=0,a=0;whil(s[k+1]!=\0){k++;if(k%2=o){a=a+(s[k]-0+1);continue;}a=a+(s[k]-0);printf("k=%da=%d\n",k,a);}程序運行后的輸出結(jié)果是()。A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15
14.若有定義“inta=5,b=7;”,則表達式a%-(b%2)運算后,a的值為()。
A.0B.1C.11D.3
15.數(shù)據(jù)庫設計的四個階段是:需求分析、概念設計、邏輯設計和______。A.編碼設計B.測試階段C.運行階段D.物理設計
16.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
17.
18.A.A.75310246B.01234567C.76310462D.13570246
19.以下描述中正確的是
A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復合語句
B.do-while循環(huán)由d。開始,用while結(jié)束,在while(表達式)后面不能寫分號
C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進行判斷
D.do-while循環(huán)中,根據(jù)情況可以省略while
20.如果最常用的操作是取第i個結(jié)點及其前驅(qū),最節(jié)省時間的存儲方式是()。
A.單鏈表B.雙向鏈表C.單循環(huán)鏈表D.順序表
二、2.填空題(20題)21.以下程序的運行結(jié)果是【】。
#include<string.h>
typeaefstructstudent{
charname[10];
longsno;
floatscore;
{STU;
main()
{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0)d=b;
if(strcmp(C.name,)>0)d=C;
printf("%1d%s\n",d.sno,p->name);
}
22.當線性表采用順序存儲結(jié)構(gòu)實現(xiàn)存儲時,其主要特點是______。
23.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請?zhí)羁铡?/p>
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
24.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(jié)構(gòu)。
25.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
26.下列程序段的輸出結(jié)果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf(”pass");
case'd':case'D':printf(”warn");
}
27.執(zhí)行以下程序后的輸出結(jié)果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
28.結(jié)構(gòu)化程序設計的3種基本結(jié)構(gòu)分別是順序、選擇和______。
29.下面rotme函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置為A'。例如:
請?zhí)羁铡?/p>
#defineN4
voidrotate(inta[][N])
{inti,j,t;
for(i=0;i<N;i++)
for(j=0;【】;j++)
{t=a[i][j];
【】;
a[j][i]=t;
}
}
30.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。
31.現(xiàn)有如下定義:structaa{inta;floatb;charc;}*p;現(xiàn)需用malloc函數(shù)動態(tài)的申請一個structaa類型大小的空間(由p指向),則定義的語句為:【】。
32.在面向?qū)ο蟪绦蛟O計中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作的算法,這稱為對象的______。
33.在面向?qū)ο蟪绦蛟O計中,從外面看只能看到對象有外部特征,而不知道也無需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作的算法,這稱為對象的______。
34.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
35.以下程序中給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{dOuble*p;
p=(double*)malloc();
p[0]=1.5;p[1]=2.5;p[2]=3.5
printf("%f%f%f\n",p[0],p[1],p[2]);
}
36.設x、y、z為整型變量,且x=2,y=3,z=4,當執(zhí)行以下語句后,x的值是______。
x*=(y++)+(--z);
37.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%P",PI);
38.下面程序的功能是:計算110之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,I;
a=c=0;
for(I=0;I<=10;I+=2)
{a+=I;
【】;
c+=b;}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);}
39.有以下程序
main()
{intn=0,m+1,X=2;
if(!n)X-=l;
if(m)X-=2;
if(X)X-=3;
printf("%d\n",x);
}
執(zhí)行后輸出的結(jié)果是【】。
40.以下程序段的輸出結(jié)果是【】。
inti=9;
printf("%o\n",i);
三、1.選擇題(20題)41.以下程序的輸出結(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
42.若有以下定義:
structlink
{intdata;
structlink*next;
}a,b,c,*p,*q;
且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):
指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是:
A.a.next=c;c.next=b;
B.p.next=q;q.next=p.next;
C.p->next=&c;q->next=p->next;
D.(*p).next=q;(*q).next=&b;
43.下面的程序段運行后,輸出結(jié)果是
inti,j,x=0;
staticinta[8][8];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j;
for(i=0;i<8;i++)
x+=a[i][j];
printf("%d",x);
A.9B.不確定值C.0D.18
44.下列選項中不屬于結(jié)構(gòu)化程序設計方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復用
45.若有程序片段: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)
46.有以下程序#include.<string.h>main(){char*p="abcde\ofghjik\0";printf("%d\n",strlen(p));}程序運行后的輸出結(jié)果是
A.12B.15C.6D.5
47.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n",y);}程序的運行結(jié)果是
A.y=0B.y=1C.y=2D.y=3
48.下列關(guān)于標識符的說法中錯誤的是
A.合法的標識符是由字母、數(shù)字和下劃線組成
B.C語言的標識符中,大寫字母和小寫字母被認為是兩個不同的字符
C.C語言的標識符可以分為三類,即關(guān)鍵字、預定義標識符和用戶標識符
D.用戶標識符與關(guān)鍵字不同時,程序在執(zhí)行時將給出出錯信息
49.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}執(zhí)行后的輸出結(jié)果是______。
A.58B.56C.45D.24
50.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char為指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
51.下面程序的輸出結(jié)果是()main(){intx,y,z;x=0;y=z=-1;x+=-z---yprintf("x=%d\n",x);}
A.x=4B.x=0C.x=2D.x=3
52.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點,則以下可以將q所指結(jié)點從鏈表中刪除并釋放該結(jié)點的語句組是()
A.free(q);p->Next=q->next;
B.(*p).next=(*q).nexy;free(q);
C.q=(*q).next;(*p).next=q;free(q);
D.q=q->next;p->next=q;p=p->next;free(p);
53.n個頂點的連通圖中邊的條數(shù)至少為______。A.A.0B.1C.n-1D.n
54.若已知a=10,b=20,則表達式!a<b的值為______。
A.10B.1C.20D.30
55.下列敘述中正確的是A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鏈表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
56.在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設計B.詳細設計C.可行性分析D.需求分析
57.設變量已正確定義,則下列能正確計算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
58.設a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式是______。
A.'a'&&'b'
B.a<=b
C.a||+c&&b-c
D.!((a<b)&&!c||1)
59.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}
A.2B.8C.9D.5
60.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項是()。
A.a,point,*&a
B.&*a,&a,*point
C.*&point,*point,&a
D.&a,&*point,point
四、選擇題(20題)61.
A.P=8;B.P=k;C.P=s[0];D.k=s;
62.下列敘述中正確的是()。
A.用E—R圖能夠表示實體集之間一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系
B.用E—R圖只能表示實體集之間一對一的聯(lián)系
C.用E—R圖只能表示實體集之間一對多的聯(lián)系
D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
63.一棵二叉樹共有25個結(jié)點,其中5個是葉子結(jié)點,則度為l的結(jié)點數(shù)為()。
A.16B.10C.6D.4
64.
65.程序設計方法要求在程序設計過程中()。
A.先編制出程序,經(jīng)調(diào)試使程序運行結(jié)果正確后再畫出程序的流程圖
B.先編制出程序,經(jīng)調(diào)試使程序運行結(jié)果正確后再在程序中的適當位置處加注釋
C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運行結(jié)果正確后再在程序中的適當位置處加注釋
D.以上三種說法都不對
66.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應的
B.算法的時間復雜度與空間復雜度一定相關(guān)
C.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
D.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量
67.
68.以下程序的輸出結(jié)果是()。
A.20B.24C.25D.15
69.有以下程序程序的運行結(jié)果是()。
A.1B.41C.2D.331
70.執(zhí)行下述程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0
71.已知大寫字母A的ASCIl碼值是65,小寫字母a的ASCIl碼值是97。以下不能將變量C中的大寫字母轉(zhuǎn)換為對應小寫字母的語句是()。
A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"
72.有如下程序段
#include"stdio.h"
typedefunion
{longx[2];
inty[4];
charz[8];
}atx;
typedefstructaa
{longx[2];
inty[4];
charz[8];
}stx;
main()
{printf("union=%d,structaa=%d\n",sizeof(atx),sizeof(stx));}
則程序執(zhí)行后輸出的結(jié)果是
A.union=8,structaa=8
B.union=8,structaa=24
C.union=24,structaa=8
D.union=24,structaa=24
73.一些重要的程序設計語言(inC語言和Pascal語言)允許過程的遞歸調(diào)用,而實現(xiàn)遞歸調(diào)用中的存儲分配通常用()。
A.棧B.堆C.數(shù)組D.鏈表
74.
75.
76.
77.下面四個選項中,均是不正確的8進制數(shù)或16進制數(shù)的選項是
A.0160x8f018
B.0abc0170xa
C.010-0x110x16
D.0a127ff-123
78.
79.有以下程序段
structSTU
{charnum[10];floatscore[3];};
main()
{
structSTUs[3]={
{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90},
},*p=s;
inti;floatsum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序運行后的輸出結(jié)果是
A.260.00B.270.00
C.280.00D.285.00
80.將E—R圖轉(zhuǎn)換為關(guān)系模式時,實體和聯(lián)系都可以表示為()。
A.屬性B.鍵C.關(guān)系D.域
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求出以下分數(shù)序列的前m項之和。2/1,3/2,5/3,8/5,13/8,21/13,…和值通過函數(shù)值返回main()函數(shù)。例如,若m=6,則應輸出10.007051。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設計題(1題)82.輸出1—100之間不能被12整除的數(shù)。
參考答案
1.C
2.A文件指針實際上是指向一個結(jié)構(gòu)體類型的指針。這個結(jié)構(gòu)體中包含緩沖區(qū)的地址、在緩沖區(qū)中當前存取字符的位置、對文件是“讀”還是“寫”、是否出錯、是否已經(jīng)遇到文件結(jié)束標識等信息。選項A正確,選項B、C錯誤;fscanf函數(shù)只能從文本文件中輸入數(shù)據(jù)到內(nèi)存,選項D錯誤。故本題答案為A選項。
3.C
4.C
5.A依據(jù)fun函數(shù),可知其要實現(xiàn)的功能是將S中第(t+1)個元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)x,最后輸出x數(shù)組。
6.A
7.D在輸入整數(shù)或?qū)崝?shù)這類數(shù)值型數(shù)據(jù)時,輸入數(shù)據(jù)之間必須用空格、回車符、制表符等間隔符隔開,間隔符個數(shù)不限。scanf的格式控制字符串也可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配,所以逗號必須輸入。故本題答案為D選項。
8.A
9.Csum=fun((a++,b++,a+b),c++)中a++,b++,a+b為逗號表達式,運算后取a+b的值為5,c++為3,故函數(shù)調(diào)用后輸出結(jié)果為8。
10.C本題中由循環(huán)條件可知遇到‘\\0’或x與y所指的字符的值不等中的一個條件時就結(jié)束,所以功能是統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)。
11.Dif語句中的表達式可以是任意合法的數(shù)值,如常量、變量表達式。故本題答案為D選項。
12.D解析:本題主要考查左移、右移對數(shù)據(jù)值的影響,左移n位相當于乘以2的n次冪,右移n位相當于除以2的n次冪。
13.C輸出結(jié)果:k=1a=2\r\nk=2a=4\r\nk=3a=7\r\nk=4a=12
14.A本題考查“%”運算符的使用。運算符“%”是整數(shù)除法的余數(shù)。本題中表達式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。
15.DD)【解析】數(shù)據(jù)庫設計目前一段采用生命周期法.即將整個數(shù)據(jù)庫應用系統(tǒng)的開分解成目標獨立的若干階段,它們是:需要分析階段、概念設計階段、邏輯設計階段、物理設計階段、編碼階段、測試階段、運行階段、進一步修改階段。在數(shù)據(jù)庫設計中采用上面幾個階段中的前四個階段,并且重點以數(shù)據(jù)結(jié)構(gòu)和模型設計為主線。
16.Ddouble*p,a定義了一個指向雙精度型的指針變量P和雙精度型變量a,p=&a表示將變量a的地址賦給指針變量p;scanf("%If",p)表示用鍵盤輸入的數(shù)賦給指針變量P所指向的地址單元中,scanf函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f。否則,數(shù)據(jù)不能正確輸入。所以選項D正確。
17.A
18.A本題的考點是C語言的數(shù)組及其排序。本題的程序中分為2個循環(huán)體,第一個循環(huán)體將數(shù)組中1,3,5,7,2,4,6,0的前4個元素從大到小排序,這個循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,2,4,6,0。第二個循環(huán)體將數(shù)組中7,5,3,1,2,4,6,0從第5個開始的4個元素從小到大排序,這個循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,0,2,4,6。所以正確答案是選項A。
19.C解析:do-while語句的一般形式為:do循環(huán)體語句while(表達式);,其中循環(huán)體語句可以是復合型語句,但必須用花括號括起來。while后必須要有分號作為語句的結(jié)束,在do-while循環(huán)中,不可以省略while。
20.D
21.2002Shanxian2002Shanxian解析:本題中第一個if語句將結(jié)構(gòu)體變量a.name和結(jié)構(gòu)體變量b.name中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量c.name和結(jié)構(gòu)體變量d.name較大的那個賦給結(jié)構(gòu)體變量d。通過函數(shù)strcmp比較。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本程序中第一個if語句strcmp(a.name,b.name)>0為真,故將b的值賦給d,第二個if語句strcmp(c.name,d.name)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此d.sno和p->name的值為2002Shangxian。
22.邏輯結(jié)構(gòu)中相鄰的結(jié)點在存儲結(jié)構(gòu)中仍相鄰。邏輯結(jié)構(gòu)中相鄰的結(jié)點在存儲結(jié)構(gòu)中仍相鄰。解析:順序存儲結(jié)構(gòu)的主要特點是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中,各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點間的相鄰關(guān)系是一致的。
23.ii解析:外循環(huán)是遞減的,方陣中的每個元素為(j-1)*4+i,因此空格處填i。
24.存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用。可知,循環(huán)隊列應當是物理結(jié)構(gòu)。
25.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
26.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。
27.a=14a=14解析:逗號表達式的值是以逗號分隔的最后一個表達式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結(jié)果是a=14。
28.重復(循環(huán))重復(循環(huán))解析:結(jié)構(gòu)化程序設計包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達出各種其他形式結(jié)構(gòu)的程序設計方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。
29.j<Ia[i][j]=a[j][i]j<I\r\na[i][j]=a[j][i]解析:本題中要求將n行n列的矩陣A轉(zhuǎn)置,即讓數(shù)組中行上的元素變成對應列上的元素。即把對角線兩邊的元素對換,所以本題的第一個空白處應該填寫j<i,第二個空白處填寫交換對角線兩邊的元素的語句a[i][j]=a[j][i]。
30.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。
31.p=(structaa*)malloc(sizeof(structaa));p=(structaa*)malloc(sizeof(structaa));解析:ANSIC標準規(guī)定malloc函數(shù)的返回值類型為void*,函數(shù)的調(diào)用形式為:malloc(size)要求size的類型為unsignedint。由于返回類型為void*,所以在調(diào)用函數(shù)時,必須利用強制轉(zhuǎn)換將其轉(zhuǎn)換為所需要的類型。
32.封裝性封裝性解析:對象具有下列5個基本特點:①標識惟一性;②分類性:③多態(tài)性;④封裝性;⑤模塊獨立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內(nèi)部特征即處理能力的實行和內(nèi)部狀態(tài),對外是不可見的,對象的內(nèi)部狀態(tài)只能由其自身改變。
33.對象具有5個基本特點:①標識唯一性;②分類性;③多態(tài)性;④封裝性;⑤模塊獨立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內(nèi)部特征即處理能力的實行和內(nèi)部狀態(tài),對外是不可見的,對象的內(nèi)部狀態(tài)只能由其自身改變。\r\n\r\n
34.88解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達式相當于2.0的3.0次方,結(jié)果為8.000000。
35.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應該填寫3*sizeof(double)或size(double)*3或其他等價的表達式。
36.12。12。解析:表達式x*=(y++)+(--z)相當于先進行z的自減運算,再執(zhí)行x=x*(y+z),最后y自加。因此,變量x的值為12,y和z的值分別是4和3。
37.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進行替換的。
38.b=I+1b=I+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2后的和累加至a,所以a的值就是110之間的偶數(shù)之和;b的值是111之間的奇數(shù)和,但在輸出b值時,c去掉多加的11,即為110之間的奇數(shù)之和。
39.-4-4解析:if-else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過程是:先對條件表達式進行判斷,若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行else分結(jié)構(gòu)(S2)。本題中,n=O,可以判斷(!n)為真,執(zhí)行“x=x-1=2-1=1;m=1”,可以判斷(m)為真,執(zhí)行“x=x-2=1-2=-1;”進而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。所以,最后輸出為-4。
40.1111解析:本題考核的知識點是printf()函數(shù)的輸出格式。本題中定義了一個整型變量i并賦初值為9,然后要求以八進制輸出i的值,9的八進制數(shù)的表示為11。
41.B解析:考查指針作為參數(shù)的函數(shù)調(diào)用。盡管C語言以傳值方式進行函數(shù)調(diào)用,但也可以通過傳遞指針的值(變量的地址)來達到修改實參變量值的目的,這是此題主要說明的問題。另外,應注意表達式\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。
42.D解析:本題考查鏈表的數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實現(xiàn),即一個結(jié)點中應包含一個指針變量,用它存放下一結(jié)點的地址。
43.C解析:本題主要考查的是用二維數(shù)組首地址和下標來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:
012
234
456
由于數(shù)組的下標是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應位置的元素。
44.D解析:20世紀70年代以來,提出了許多軟件設計方法,主要有①逐步求精:對復雜的問題,應設計一些子目標作過渡,逐步細化;②自頂向下:程序設計時應先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節(jié),先從最上層總目標開始設計,逐步使問題具體化;⑧模塊化:一個復雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊,而可復用是面向?qū)ο蟪绦蛟O計的一個優(yōu)點。
45.C
46.D解析:本題首先定義了一個字符型指針變量p,并用一個字符串給它賦值,然后調(diào)用printf()函數(shù)輸出p所指向的字符串的長度。由于字符串的結(jié)束標記為、0,其長度為第1個\\0前的字符個數(shù),故長度為5。所以4個選項中D正確。
47.D解析:在程序中指針變量P初始指向a[3],執(zhí)行p減1后,P指向a[2],語句y=*p的作用是把a[2]的值賦給變量y,所以輸出為y=3。
48.D解析:用戶標識符與關(guān)鍵字相同時,程序在編譯過程中將給出出錯信息。注意:選項D)應該改為用戶標識符與關(guān)鍵字相同,程序在編譯時將給出出錯信息。注意:合法的標識符第一個字符必須為字母或下劃線。
49.D解析:程序中while語句的循環(huán)條件為i<7&&p[i]%2。當i=0時,條件成立,k=k+p[0]=11;當i=1時,條件仍成立,k=k+p[1]=11+13=24;當i=2時,p[2]%2=0條件不成立,結(jié)束while循環(huán),所以k=24。
50.A解析:C語言中[]比*優(yōu)先級高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個元素,然后再與line前面的'*'結(jié)合,表示此數(shù)組是一個指針數(shù)組,每個數(shù)組元素都是一個基類型為char的指針變量。
51.C
52.B
53.C解析:在無向圖(邊沒有方向性的圖)中,若從頂點vi到vj有路徑,則稱vi和vj是連通的,若該圖中仟意兩個頂點都是連通的,則稱該圖為連通圖。
54.B解析:!的優(yōu)先級高于<,!a的值為0,0<b顯然成立,該表達式的值為1。
55.A根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件:1,有且只有一根節(jié)結(jié)點,2,每一個結(jié)點最多有一個前件,也最多有一個后件,則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
56.D通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。
軟件生命周期的主要活動階段為:
①可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務的實施計劃。
②需求分析。對待開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊,提交評審。
③軟件設計。系統(tǒng)設計人員和程序設計人員應該在反復理解軟件需求的基礎上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。
④軟件實現(xiàn)。把軟件設計轉(zhuǎn)換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。
⑤軟件測試。在設計測試用例的基礎上,檢驗軟件的各個組成部分。編寫測試分析報告。
⑥運行和維護。將已交付的軟件投入運行,并在運行使用中不斷地維護,根據(jù)新提出的需求進行必要而且可能的擴充和刪改。
57.D解析:要正確計算函數(shù)f=n!,由n!的數(shù)學定義可知n!=n*(n-1)*(n-2)*……*1。在選項A)中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計算f=n!=O,所以選項A)不正確。在選項B)中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計算得到f=(n-1)!,所以選項B)不正確。在選項C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項C)不正確。在選項D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計算f=n!,所以選項D)正確。
58.D解析:選項A:'a'&&'b'是字符a與b的相與,不為0:選項B:a<=b,由題中變量賦值可知,結(jié)果為1。選項C:a||+c&&b-c,結(jié)果為1;選項D:!((a<B)&&!c||1),運算結(jié)果為0。
59.A解析:本題考查函數(shù)的遞歸調(diào)用。
在函數(shù)遞歸調(diào)用時,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的計算結(jié)果為2。
60.D本題主要考查指針變量對數(shù)值的引用。在題目中,首先定義了整型指針變量point和一個整型變量a,變量a的初值為4,然后是指針變量指向a,或者說將變量a所在存儲單元的地址值賦給指針變量。
在選項A中,很顯然,不全是地址,只有point表示地址,而*&a等價于*(&a),表示取一個數(shù)值。
在選項B中,也不都表示地址,其中*point表示數(shù)值,其他兩個表示地址。
在選項C中,與選項B類似,其中的*point表示數(shù)值。
在選項D中,都表示地址,是題目的選擇答案。
61.C字符型一維指針P只能指向一個一維數(shù)組如chars[3],而不能指向二維數(shù)組的地址,所以A)錯誤。P應該為字符型變量的地址,而不能為數(shù)組指針的地址,所以B)錯誤。k為數(shù)組指針,但如果想將s的地址賦給它,定義形式應為char(*k)[10]而不是char(*k)[3],所以D)錯誤。
62.A用E—R圖可以描述實體及其相互之間的聯(lián)系,還可以描述多個實體集之間的聯(lián)系和一個實體集內(nèi)部實體之間的聯(lián)系。用E—R圖表示的概念數(shù)據(jù)模型不僅能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型,還可以轉(zhuǎn)換為其他數(shù)據(jù)模型,如網(wǎng)狀模型和層次模型等。所以A的說法正確。
63.A根據(jù)二叉樹的性質(zhì),n=n0+n1+n2(n表示總結(jié)點數(shù),n0表示葉子結(jié)點數(shù),nl表示度數(shù)為1的結(jié)點數(shù),n2表示度數(shù)為2的結(jié)點數(shù)),而葉子結(jié)點數(shù)總是比度數(shù)為2的結(jié)點數(shù)多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。
64.D
65.D解析:在程序設計過程中,一個很重要的環(huán)節(jié)是首先確定實現(xiàn)各種功能的算法,并且用某種工具將它精確地表達出來。流程圖是其中的工具之一。因此,程序設計的過程應是先畫出流程圖,然后根據(jù)流程圖編制出程序。因此,選項A中的說法是錯誤的。程序中的注釋是為了提高程序的可讀性,使程序易于理解、易于維護,注釋必須在編制程序的同時加入。因此,選項B和C中的說法也都是錯誤的。
66.D根據(jù)時間復雜度和空間復雜度的定義可知,算法的時間復雜度與空間復雜度并不相關(guān)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)元素之間的邏輯關(guān)系,它是從邏輯上描述數(shù)據(jù)元素之間關(guān)系的,是獨立于計算機的;數(shù)據(jù)的存儲結(jié)構(gòu)是研究數(shù)據(jù)元素和數(shù)據(jù)元素之間的關(guān)系如何在計算機中表示的,它們并非一一對應。算法的執(zhí)行效率不僅與問題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)。
67.B
68.D第一次循環(huán)結(jié)束:a=1,i=1;第二次循環(huán)結(jié)束:a=3,i=2;第三次循環(huán)結(jié)束:a=6,i=3;第四次循環(huán)結(jié)束:a=10,i=4;第五次循環(huán)結(jié)束:a=15,i=5;結(jié)束:a=15;
69.Ax>y不成立,之后的if
和lelse都不執(zhí)行,輸出x++表達式值為1。
70.D本題j=要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《電路分析基礎試題》課件
- 《微觀經(jīng)濟學》考試試卷試題及參考答案
- 《專業(yè)英語(計算機英語)》復習題
- 八下期末考拔高測試卷(5)(原卷版)
- 《誠邀創(chuàng)業(yè)伙伴》課件
- 2012年高考語文試卷(安徽)(解析卷)
- 父母課堂與教育理念分享計劃
- 購物中心導購員服務總結(jié)
- 水產(chǎn)養(yǎng)殖行業(yè)銷售工作總結(jié)
- 娛樂場館衛(wèi)生要素
- 以案促改心得體會
- 華東師范大學《法學導論(Ⅰ)》2023-2024學年第一學期期末試卷
- 空壓機操作安全培訓
- 自然辯證法論述題146題帶答案(可打印版)
- 工程施工日志60篇
- 特殊作業(yè)安全管理監(jiān)護人專項培訓課件
- 2024年中國工業(yè)級硝酸銨市場調(diào)查研究報告
- 成品油出入庫管理制度
- 電梯日管控、周排查、月調(diào)度內(nèi)容表格
- 學生厭學不愿上課協(xié)議書范文
- 鄉(xiāng)村振興課件教學課件
評論
0/150
提交評論