版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年山西省朔州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.一棵二叉樹共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為l的結(jié)點(diǎn)數(shù)為()。
A.16B.10C.6D.4
2.數(shù)據(jù)結(jié)構(gòu)主要研究的是數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的運(yùn)算和()。A.數(shù)據(jù)的方法B.數(shù)據(jù)的存儲結(jié)構(gòu)C.數(shù)據(jù)的對象D.數(shù)據(jù)的邏輯存儲
3.設(shè)有定義語句
則以下敘述正確的是().
A.f是指向函數(shù)的指針變量,該函數(shù)具有_個(gè)int類型的形參
B.f是基類型為int的指針變量
C.f是指向int類型一維數(shù)組的指針變量
D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址
4.表達(dá)式a*(b+c)-d的后綴表達(dá)式是()。
A.abcdd+-B.abc+*d-C.abc*+d-D.-+*abcd
5.若查找每個(gè)記錄的概率均等,則在具有n個(gè)記錄的連續(xù)順序文件中采用順序查找法查找一個(gè)記錄,其平均查找長度ASL為()
A.(n-1)/2B.n/2C.(n+1)/2D.n
6.有以下程序
#include<stdio.h>
main()
{charb,c;inti;
b=‘a(chǎn)’;c=‘A’;
for(i=0;i<6;i++)
{if(i%2)putchar(i+b);
elseputehar(i+c);
}printf(“\n”);
}
程序運(yùn)行后的輸出結(jié)果是A.ABCDEFB.AbCdEfC.aBeDeFD.abcdef
7.以下敘述中錯(cuò)誤的是()。
A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型
B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員
D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
8.數(shù)據(jù)的存儲結(jié)構(gòu)是指______。
A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲方式D.存儲在外存中的數(shù)據(jù)
9.下面敘述中錯(cuò)誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤
B.對被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟
C.程序調(diào)試通常也稱為Debug
D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性
10.
11.在一個(gè)具有n個(gè)結(jié)點(diǎn)的有序單鏈表中插入一個(gè)新結(jié)點(diǎn)并仍然保持有序的時(shí)間復(fù)雜度是()。
A.O(1)B.O(n)C.O(n2)D.O(nlog2n)
12.圖的BFS生成樹的樹高比DFS生成樹的樹高()
A.小或相等B.小C.大或相等D.大
13.若以“a+”方式打開一個(gè)已存在的文件,則下列敘述正確的是()。
A.文件打開時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進(jìn)行添加或讀操作
B.文件打開時(shí),原有文件內(nèi)容不被刪除,只能進(jìn)行讀操作
C.文件打開時(shí),原有文件內(nèi)容被刪除,只能進(jìn)行寫操作
D.以上三種說法都不正確
14.樹最適合用來表示()。
A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)
15.下列敘述中正確的是______。
A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性列表是非線性性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
16.請閱讀以下程序:#include<stdio.h>voidfun(ints[]){staticintj=0;dos[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]);}上面程序的輸出是
A.34756B.23445C.35745D.12345
17.設(shè)有定義:intn=0,*p=&n,**q=&p;則以下選項(xiàng)中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
18.軟件調(diào)試的目的是______。
A.發(fā)現(xiàn)錯(cuò)誤B.改正錯(cuò)誤C.改善軟件的性能D.挖掘軟件的潛能
19.定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:structst{charname[15];intage;}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);執(zhí)行語句printf("%d,%C",a[2].a(chǎn)ge,*(a[3].name+2))的輸出結(jié)果為()。A.15,AB.16,HC.16,AD.17,H
20.若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。
main()
{inti,j=50,a[]={7,4,10,5,8};
for()
j+=a[i];
primf("%d,j-40);
}
A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
二、2.填空題(20題)21.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。
22.下列表達(dá)式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
23.下列程序的輸出結(jié)果是______。
main()
{inta=1,b=2,c=3,t=0;
if(a<B){t=a;a=b;b=t;}
if(a<C){t=a;a=c;c=t;}
printf("%d,%d,%d\n",a,b,C);
}
24.軟件危機(jī)的核心問題是【】和軟件開發(fā)效率低。
25.函數(shù)check用來判斷字符串s是否是“回文”(順讀和倒讀都一樣的字符串為“回文”,如abeba)。是則函數(shù)返回值1,否則返回值0,請?zhí)羁铡?/p>
intcheck(char*s)
{
char*p1,*p2;intn;
n=strlen(s);
p1=s;
p2=【】;
while(p1<p2)
{
if(*p1!=*p2)break;
else{p1++;p2--;}
}
if(【】)return0;
elsereturn1;
}
26.已知字符'A'的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>,則輸出結(jié)果是【】。
#include<stdio.h>
main()
{chara,b;
a=getchar();seanf("%d",&b);
a=a-'A'+'0';b=b*2;
prinff("%c%c\n",a,b);
}
27.測試的目的是暴露錯(cuò)誤,評價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。
28.下列程序的輸出結(jié)果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
29.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{
if(i%2==0)
*p='*';
p++;i++;
}
puts(a);
}
30.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
31.以下程序運(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);
}
32.下面程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;
sub(s,7,SIZE-1);
for(I=0;I<SIZE;I++)printf("%c",s[I]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
33.下面程序的運(yùn)行結(jié)果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
34.下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
35.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
36.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為______。
37.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%B);
printf("%d,",(a-b,a+B));
printf("%dLn",a-b?a-b:a+B);
}
38.在兩種基本測試方法中,()測試的原則之一是保證所測模塊中每一個(gè)獨(dú)立路徑至少執(zhí)行一次。
39.下面程序執(zhí)行后輸出的結(jié)果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
40.以下程序的功能是輸入任意整數(shù)給n后,輸出n行從大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(shí)(注意:n不得大于10),程序運(yùn)行結(jié)果如下:
ABCDE
FCHI
JKL
MN
O
請?zhí)羁胀瓿稍摮绦颉?/p>
#include<stdio.h>
main()
inti.j,n;charch='A';
scanf("%d",&n);
if(n<11)
for(i=1;i<=n;i++)
for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
elseprintf("nistoolarge!\n");
prinff("\n");
}
三、1.選擇題(20題)41.有以下程序structs{intx,y;}data[2]={10,100,20,200};main(){structs*p=data;printf("%d\n",++(p->x));}程序運(yùn)行后的輸出結(jié)果是
A.10B.11C.20D.21
42.對于長度為n的線性表,在最壞的情況下,下列各排序法所對應(yīng)的比較次數(shù)中正確的是______。
A.冒泡排序?yàn)閚/2B.冒泡排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2
43.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;pfintf("%d,%d,%d,%d\n",a,b,c,d);}
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯(cuò)
44.有以下程序:main(){inta[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。
A.7B.6C.8D.無確定值
45.設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式是______。
A.'a'&&'b'
B.a<=b
C.a||+c&&b-c
D.!((a<b)&&!c||1)
46.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述錯(cuò)誤的是()。
A.選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口
B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)
C.不允許使用GOTO語句
D.語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬
47.若有如下定義:intx=3,y=2,Z;則表達(dá)式Z=X/y*3.0的值是()。
A.2B.2C.3D.3
48.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運(yùn)行后的輸出結(jié)果是()。
A.1*1=11*2=21*3=32*1=22*2=43*1=3
B.1*1=11*2=21*3=32*2=42*3=63*3=9
C.1*1=11*2=22*2=41*3=32*3=63*3=9
D.1*1=12*1=22*2=43*1=33*2=63*3=9
49.以下各選項(xiàng)企圖說明—種新的類型名,其中正確的是______。
A.typedefviint;
B.typedefV2=int;
C.typedefintv3;
D.lypedefv4:int
50.已知大寫字母B的ASCII碼值是66,小寫字母b的ASCII碼值是98,則用八進(jìn)制表示的字符常量'\142'是()
A.字符BB.字符bC.字符aD.非法的常量
51.若有如下程序;#defineX3#defineYX+1#defineZY*Y/2main(){intn;for(n=1;n<=Z;n++)printf("%d",n);}則程序運(yùn)行后的輸出結(jié)果是()
A.12345B.1234567C.12345678D.123456
52.若有以下說明和語句:char*language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"};char**q;q=language+2;則語句printf("%o\n",*q);()。
A.輸出的是language[2]元素的地址
B.輸出的是字符串PASCAL
C.輸出的是language[2]元素的值,它是字符串PASCAL的首地址
D.格式說明不正確,無法得到確定的輸出
53.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
54.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是
A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表
55.有以下程序#include<stdio.h>#include<string.h>typedefstrtlct{charname[9];charsex;floatscore[2];}STU;voidf(STUA)
{STUb={"Zhao",'m',85.0,90.0};inti;strcpy(,b.name);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90
56.有以下程序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
57.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)3者之間的關(guān)系是二______。
A.數(shù)據(jù)庫包含數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)
B.數(shù)據(jù)庫系統(tǒng)包含數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫管理系統(tǒng)包含數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)
D.以上都不正確
58.用樹形結(jié)構(gòu)來表示實(shí)體之間聯(lián)系的模型稱為()。
A.關(guān)系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型
59.下列程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}
A.5,6B.5,5C.6,6D.6,5
60.以下選項(xiàng)中合法的實(shí)型常數(shù)是
A.5E2.0B.E-3C.2E0D.1.3E
四、選擇題(20題)61.
62.下面程序的輸出結(jié)果是
main
{
intx=3,y=6,a=0;
while(x++!=(y-=1))
{
a+=1;
if(y<x)
break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1
C.x=5,y=4,a=1D.x=5,y=4,a=3
63.有如下程序段
#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
64.
65.
66.
67.
68.
69.下列函數(shù)的功能是()
70.
71.
有以下程序
#include<stdio.h>
main
{inta=1,b=2,c=3,x;
x=(a^b)&C;printf("%d",x);
}
程序的運(yùn)行結(jié)果是()。
A.0B.1C.2D.3
72.下列合法的聲明語句是()。
A.intabc=50;
B.doubleint=3+5e2.5;
C.longdo=1L;
D.float3asd=3e一3;
73.表達(dá)式3.6-5/2+1.2+5%2的值是()。A.3.8B.4.8C.3.3D.4.3
74.若有以下程序
#include<stdio.h>
inta[]={2,4,6,8};
main()
{inti;
int*p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);
}
上面程序的輸出結(jié)果是
A.6B.8
C.4D.2
75.HTTP協(xié)議的GET請求方法可以獲取()類型的數(shù)據(jù)。
A.HTML文檔B.圖片C.視頻D.以上都可以
76.
77.有以下程序
78.
79.以下能正確定義字符串的語句是(
)。
80.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是()。
A.文件B.數(shù)據(jù)庫C.字段D.記錄
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:求兩個(gè)非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若nmnl和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸也的最大公約數(shù)為27。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動main函數(shù),不得增行或硼行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將M行N列的二維數(shù)組中的數(shù)據(jù),按列的順序依次存放到一維數(shù)組中,將一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲單元中。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){}main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf(“Thematrix:\n”);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%3d”,w[i][j]);printf(“\n”);}fun(w,a,&n,3,4);printf(“TheAarray:\n”);for(i=0;i<n;i++)<p=""></n;i++)<>printf(“%3d”,a[i]);}
參考答案
1.A根據(jù)二叉樹的性質(zhì),n=n0+n1+n2(n表示總結(jié)點(diǎn)數(shù),n0表示葉子結(jié)點(diǎn)數(shù),nl表示度數(shù)為1的結(jié)點(diǎn)數(shù),n2表示度數(shù)為2的結(jié)點(diǎn)數(shù)),而葉子結(jié)點(diǎn)數(shù)總是比度數(shù)為2的結(jié)點(diǎn)數(shù)多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。
2.B詳細(xì)解答:
數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)元素及其之間的相互關(guān)系和數(shù)據(jù)運(yùn)算的一門學(xué)科,它包含3個(gè)方面的內(nèi)容,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算。
3.A
4.B
5.C
6.B解析:變量b和c中分別存放字符a和A的ASCII碼,當(dāng)i的值對2求余非零時(shí)輸出ASCII碼為i+b)的字符;當(dāng)i的值對2求余為零時(shí)輸出ASCII碼為i+c的字符。分析程序可知本題選B。
7.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。
8.B解析:數(shù)據(jù)元素在計(jì)算機(jī)存儲空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。
9.A軟件測試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,并不涉及改正錯(cuò)誤,所以選項(xiàng)A錯(cuò)誤。程序調(diào)試的基本步驟有:錯(cuò)誤定位、修改設(shè)計(jì)和代碼,以排除錯(cuò)誤、進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。程序調(diào)試通常稱為Debug,即排錯(cuò)。軟件測試的基本準(zhǔn)則有:所有測試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測試不可能、妥善保存測試計(jì)劃等文件。故答案為A選項(xiàng)。
10.B
11.B
12.A
13.A解析:本題考查文件使用方式標(biāo)識符,以“a+”方式打開一個(gè)已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時(shí),可以進(jìn)行追加或讀操作。
14.C樹最適合用來表示元素之間具有分支層次關(guān)系的數(shù)據(jù),故本題選C。
15.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
16.C解析:本題考查了通過數(shù)組首地址引用數(shù)組元素的方法。第一次執(zhí)行fun(a)后,a[0]=3,a[1]=5。第二次執(zhí)行fun(a)時(shí),因?yàn)閟tatic變量j保存著上次執(zhí)行時(shí)的值為2,所以a[2]=7,最后數(shù)組a={3,5,7,4,5},所以正確答案為C)。
17.D解析:本題考核的知識點(diǎn)是指針變量定義和賦值語句的基本應(yīng)用。在使用一個(gè)指針變量之前,先要用聲明語句對其進(jìn)行定義,在定義了一個(gè)指針變量之后,系統(tǒng)就為這個(gè)指針變量分配了一個(gè)存儲單元,用它來存放地址。在C語言中有兩個(gè)有關(guān)指針的運(yùn)算符:&運(yùn)算符,為取地址運(yùn)算符,*運(yùn)算符是指針運(yùn)算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個(gè)指針變量p并讓它指向n,然后定義了一個(gè)指向指針的指針變量q并讓它指向p,選項(xiàng)A中將常量1賦給指針p不正確;選項(xiàng)B也是將常量2賦給*p,故選項(xiàng)B不正確;選項(xiàng)C中P不是指向指針的指針變量,而將他賦值給一個(gè)指向指針的指針變量小顯然不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
18.B解析:在對程序進(jìn)行測試時(shí)會發(fā)現(xiàn)錯(cuò)誤,這就要進(jìn)行程序調(diào)試(排錯(cuò))。程序調(diào)試活動由三部分組成:一是錯(cuò)誤定位,根據(jù)錯(cuò)誤的外部表現(xiàn)形式,確定程序中出錯(cuò)的位置,找出錯(cuò)誤的內(nèi)在原因;二是對程序進(jìn)行修改,排除這個(gè)錯(cuò)誤;三是進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。所以程序調(diào)試的目的就是診斷和改正程序中的錯(cuò)誤。軟件調(diào)試不能改善軟件的性能,也不能挖掘軟件的潛能。
19.C本題考查結(jié)構(gòu)體數(shù)組。a[2].a(chǎn)ge為結(jié)構(gòu)體aEZ]的age成員,即a[3].name為指向結(jié)構(gòu)體a[3]的name成員的第一個(gè)元素的指針,即指向“2”,(a[3].name+2)將指針后移兩位指向第三個(gè)元素“A”,*(a[3].name+2)是取指針?biāo)赶虻刂返膬?nèi)容。
20.D解析:要想使程序輸出是25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)中的語句,使引用的數(shù)組元素累加為65-50=15即可。
21.隊(duì)尾隊(duì)尾解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。
22.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達(dá)。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關(guān)系,年號能被400整除即y%400==0,與前兩項(xiàng)是或的關(guān)系。
23.3123,1,2解析:分析程序,第一個(gè)if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時(shí)a=2,b=1。第二個(gè)if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時(shí)a=3,c=2。
24.軟件質(zhì)量差軟件質(zhì)量差解析:大約在20世紀(jì)60年代末人們在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中,遇到了一系列嚴(yán)重問題,從而認(rèn)識到軟件危機(jī)的存在。軟件危機(jī)的核心問題是軟件開發(fā)的質(zhì)量太差和軟件系統(tǒng)開發(fā)的效率太低。
25.s+n-1p1<p2s+n-1\r\np1<p2解析:判斷是否“回文”字符串,應(yīng)該使用兩個(gè)字符型指針,一個(gè)從前往后遍歷字符串,另一個(gè)從后往前遍歷字符串,直到它們中途相遇,如果每次兩個(gè)指針?biāo)傅淖址枷嗤?,則為“回文”字符串。程序中已經(jīng)使p1=s,即指向字符串的第一個(gè)字符了,所以p2應(yīng)該指向s的最后一個(gè)字符,故第一空應(yīng)填s+n-1。比較兩個(gè)指針時(shí),如果有一次不相同,則跳出循環(huán),因?yàn)榇藭r(shí)已可肯定不是“回文”字符串。如果是while循環(huán)的條件p1<p2不滿足時(shí)自然結(jié)束的循環(huán),則每次比較都是相同的,兩個(gè)指針是中途相遇了才結(jié)束比較。兩種情況的區(qū)別就是pl<p2是否成立。故第二空應(yīng)該填p1<p2。
26.1B1B解析:本題輸入B33,字符'B'被輸入給字符變量a,33賦給b,執(zhí)行a=a-'A'+'0';得到a的值'1';執(zhí)行b=b*2;得到b值66,最后以字符型輸出為1B。
27.調(diào)試調(diào)試
28.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。
29.*2*4*6*8**2*4*6*8*解析:程序中定義了一個(gè)字符數(shù)組a,并初始化為123456789,接著定義了一個(gè)指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個(gè)while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時(shí),將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時(shí)數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*
30.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
31.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。
32.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運(yùn)算等,某字符的大寫字母的ASCII碼值比它對應(yīng)的小寫字母ASCII碼值小32。
33.3030解析:題目中for(;;)表示:for循環(huán)的初始化表達(dá)式,條件表達(dá)式和修正表達(dá)式都省略了,表示進(jìn)行for循環(huán)和for循環(huán)的終止都沒有限制。注意:while循環(huán)的執(zhí)行原理。
34.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。
35.線性結(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)有樹、二叉樹等。
36.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。
37.11371,13,7解析:本題考查3個(gè)知識點(diǎn):①余數(shù)的計(jì)算,題中的a=10,b=3,a%b=1;②(表達(dá)式1,表達(dá)式2)形式的結(jié)果為最后—個(gè)表達(dá)式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13:③條件運(yùn)算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結(jié)果為7。
38.白盒白盒解析:按功能劃分測試可分為白盒測試和黑盒測試。白盒測試的原則是保證所測試模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測試模塊所有判斷的每一分支至少執(zhí)行一次:保證所測試模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。
39.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。
40.ch++或ch=ch+1或++chprintf("\n")或prinff("\015")ch++或ch=ch+1或++ch,\r\nprintf('\\n')或prinff('\\015')解析:程序中使用了兩層for循環(huán),外循環(huán)的作用是控制行數(shù),內(nèi)循環(huán)的作用是控制每行的列數(shù),在內(nèi)循環(huán)中首先輸出當(dāng)前字符(從\'A\'開始),[6]中應(yīng)填ch++,使ch中的字符變?yōu)橐敵龅南乱粋€(gè)字符。每輸出一行就需換一次行,所以[7]處應(yīng)填pfintf('\\n')。
41.B解析:本題中定義了一個(gè)結(jié)構(gòu)體數(shù)組data[2]并初始化,主函數(shù)中定義了一個(gè)結(jié)構(gòu)體類型指針變量并讓它指向data的首地址,由于p指向第一個(gè)元素的地址,所以p->x相當(dāng)于data[0].x即為10,所以++(p->x)后的值為11。
42.D解析:存最壞情況下,快速排序退化為冒泡排序,冒泡排序法的基本過程參見本題的理論鏈接。冒泡排序的每個(gè)元素都要與它前面的元素相比較,因此比較次數(shù)為(n-1)+(n-2)+…+1=n(n-1)/2。
43.D解析:程序中if子句后面有2條語句b=1;c=2;需要用{}括起來,成為一條復(fù)合語句,否則else找不到與之配對的if,所以編譯出錯(cuò)。
44.A解析:本題定義了一個(gè)指向由3個(gè)元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時(shí)用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[im][j])。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1,執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa=[1][1]=pa[1][1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故prinff語句輸入的值為2+4+1=7。所以,A選項(xiàng)為所選。
45.D解析:選項(xiàng)A:'a'&&'b'是字符a與b的相與,不為0:選項(xiàng)B:a<=b,由題中變量賦值可知,結(jié)果為1。選項(xiàng)C:a||+c&&b-c,結(jié)果為1;選項(xiàng)D:!((a<B)&&!c||1),運(yùn)算結(jié)果為0。
46.C解析:限制使用GOTO語句是結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。
47.C解析:變量z被定義為整型,所以選項(xiàng)B和D不符合題意,首先被排除。變量x和y也被定義為整型,所以表達(dá)式x/y的值為整數(shù)1,最后z被賦值為3,選項(xiàng)C正確。
48.B解析:外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)束.對于外層循環(huán)自變量i的每一個(gè)值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*j=兩個(gè)乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。
49.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于數(shù)據(jù)類型取個(gè)別名。
50.B
51.D
52.C解析:題中指針數(shù)組language中的每個(gè)元素都是一個(gè)指向一個(gè)字符串的字符指針。通過這個(gè)指針可以引用到字符串中的每一個(gè)字符。題中的q是雙重字符指針,q=language+2則使指針q指向了數(shù)組language的第三個(gè)元素,是字符串“PASCAL”的首地址。
53.D解析:將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。
54.D解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)系。即關(guān)系模型是用表格數(shù)據(jù)來表示實(shí)體本身及其相互之間的聯(lián)系。本題的正確答案是D。
55.A解析:本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)傳遞問題。程序在調(diào)用函數(shù)f時(shí),傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個(gè)拷貝,函數(shù)f的所有操作只是針對這個(gè)數(shù)據(jù)拷貝進(jìn)行的修改,這些都不會影響變量c的值。
56.D解析:本題考核的知識點(diǎn)是函數(shù)的定義、調(diào)用方式以及參數(shù)的傳遞。C語言規(guī)定,在函數(shù)調(diào)用時(shí)變量作為參數(shù)傳遞是傳值的,在函數(shù)體中對形參變量的修改不能影響到對應(yīng)的實(shí)參變量。本題定義了一個(gè)函數(shù)f(),用變量作為形參,在main()函數(shù)中調(diào)用了3次f()函數(shù),由于變量作為參數(shù)進(jìn)行傳遞,所以對應(yīng)的實(shí)參的值并沒有被交換。所以輸出的a、b、c依舊是原來的值4,3、5。所以,D選項(xiàng)為所選。
57.B
58.B解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有3種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實(shí)體之間的聯(lián)系是用樹結(jié)構(gòu)來表示的,其中實(shí)體集(記錄型)是樹中的結(jié)點(diǎn),而樹中各結(jié)點(diǎn)之間的連線表示它們之間的關(guān)系。所以,本題的正確答案是B。
59.A解析:轉(zhuǎn)義字符'\\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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初二數(shù)學(xué)學(xué)習(xí)法模板
- 夜間照明專項(xiàng)施工方案
- 鞋面制作課程設(shè)計(jì)
- 運(yùn)輸機(jī)器人課程設(shè)計(jì)
- 2024年醫(yī)院設(shè)備采購管理制度
- 2025年度智能建筑打樁施工技術(shù)服務(wù)合同4篇
- 2025年度租賃住宅用電安全保障合同樣本4篇
- 2025年消防應(yīng)急照明與疏散指示系統(tǒng)三方合同范文3篇
- 二零二五版離婚協(xié)議書起草與子女撫養(yǎng)權(quán)變更執(zhí)行監(jiān)督協(xié)議書4篇
- 銷售部培訓(xùn)課程設(shè)計(jì)
- 保險(xiǎn)反洗錢培訓(xùn)
- 普通高中生物新課程標(biāo)準(zhǔn)
- 茉莉花-附指法鋼琴譜五線譜
- 結(jié)婚函調(diào)報(bào)告表
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設(shè)計(jì)規(guī)范-PDF解密
- 冷庫制冷負(fù)荷計(jì)算表
- 肩袖損傷護(hù)理查房
- 設(shè)備運(yùn)維管理安全規(guī)范標(biāo)準(zhǔn)
- 辦文辦會辦事實(shí)務(wù)課件
- 大學(xué)宿舍人際關(guān)系
- 2023光明小升初(語文)試卷
評論
0/150
提交評論