版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年河北省保定市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.設(shè)有定義:intx[2][3];,則以下關(guān)于二維數(shù)組X的敘述錯誤的是()。
A.x[0]可看做是由3個整型元素組成的一維數(shù)組
B.x[0]和x[l]是數(shù)組名,分別代表不同的地址常量
C.數(shù)組X包含6個元素
D.可以用語句x[o]=0;為數(shù)組所有元素賦初值0
2.帶頭結(jié)點的單鏈表head為空的判定條件是()。
A.head=NULLB.head→next=NULLC.head→next=headD.head!=NULL
3.
4.若x、y、z、m均為int型變量,則執(zhí)行下面語句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;
A.1B.2C.3D.4
5.假設(shè)在程序中a、b、c均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式1/abc的表達式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c
6.眾所周知數(shù)據(jù)結(jié)構(gòu)中非?;镜臉浣Y(jié)構(gòu)包括二叉查找樹(BST)。當(dāng)我們把如下序列:10,5,19,4,13,7,6,3,1按順序建立一棵BST時,樹的最大深度是?(令根節(jié)點深度為0,不執(zhí)行平衡二叉樹操作)()
A.5B.4C.3D.2
7.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序執(zhí)行后變量w中的值是A.5.21B.5C.5.0D.0.0
8.下面描述中,不屬于軟件危機表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高
9.設(shè)a,b,c,d,m和n均為int型變量,且a=5,b=6,c=7,d=m=2,n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為()
A.0B.1C.2D.3
10.請選出以下程序的輸出結(jié)果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
11.下列數(shù)據(jù)結(jié)構(gòu)中,按先進后出原則組織數(shù)據(jù)的是()。
A.循環(huán)隊列B.棧C.順序表D.循環(huán)鏈表
12.
13.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯Y(jié)構(gòu)
14.有以下函數(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ù)
15.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1
16.已知函數(shù)的調(diào)用形式為fread(buf,size,count,fp),參數(shù)buf的含義是
A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)
B.一個文件指針,指向要讀的文件
C.一個指針;指向要讀入數(shù)據(jù)的存放地址
D.一個存儲區(qū),存放要讀的數(shù)據(jù)項
17.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,則對a數(shù)組元素不正確的引用是()
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
18.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abbcdefghijkI23456789964
B.123456789964abbcdefghijk
C.123445667899abbcdefghijk
D.abbcdefghijk123445667899
19.設(shè)有定義:charpE]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
20.C語言中的基本數(shù)據(jù)類型所占存儲空間長度的順序是()
A.char<=int<=float<=double<=long
B.int<=char<=float<=long<=double
C.int<=long<=float<=double<=char
D.char<=int<=float<=long<=double
二、2.填空題(20題)21.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
22.下面程序的功能是:計算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);}
23.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(【】);
}
24.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];
pfintf("%d\n",s);
25.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
26.對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為【】。
27.以下程序的輸出結(jié)果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
28.如下程序片段:
ina,b,c;
printf("inputa,b,c:");
scanf("a=%d,b=%d,c=%d",&a,&b,&c);
欲使輸出結(jié)果為1、2、3(分別對應(yīng)于a、b、c),輸入數(shù)據(jù)的正確形式為【】。
29.下列程序的輸出結(jié)果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
30.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
31.執(zhí)行下面程序段后,k的值是【】。
r=1;n=203;k=1
do{k*=n%10*r;n/=10;r++;}while(n);
32.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta,b,c;
a=25;b=025;e=0x25;
prinff("%d%d%d\n",a,h,c);
}
33.下面程序的功能是求整數(shù)m、n的最大公約數(shù),請?zhí)羁铡?/p>
main()
{intm,n,r;
scanf("%d,%d",&m,&n);
if(【】){r=m;m=n;n=r;)
while(【】)
{r=m%n;m=n;n=r;}
printf("%d",m);
}
34.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
執(zhí)行后輸出結(jié)果是【】。
35.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
{c=c*a;b=b+c;++n;}
printf("b=%d",B);
}
36.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),二叉樹屬于______。
37.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。
38.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。
39.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。
#include<stdio.h>
#include<string.h>
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
40.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序完整。(注:程序采用了冒泡排序算法)
#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(【】);
}
三、1.選擇題(20題)41.下面程序的輸出結(jié)果是()。#defineWW(X)X*Xmain(){inta,i;i=3;a=++WW(i+1);printf("%d\n",a);}
A.5B.6C.9D.程序有錯誤
42.以下敘述中錯誤的是()
A.二進制文件打開后可以先讀文件的末尾,而順序文件不可以
B.在程序結(jié)束時,應(yīng)當(dāng)用fclose函數(shù)關(guān)閉已打開的文件
C.在利用fread函數(shù)從二進制文件中讀數(shù)據(jù)時,可以用數(shù)組名給數(shù)組中所有元素讀入數(shù)據(jù)
D.不可以用FILE定義指向二進制文件的文件指針
43.若二維數(shù)組a有m列,且設(shè)a[0][0]位于數(shù)組的第一個位置上,則計算任意元素a[i][j]在數(shù)組中位置的公式為______。
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
44.可在C程序中用作用戶標(biāo)識符的一組標(biāo)識符是
A.andB.DateC.HiD.case_2007y-m-dDr.TomBigl
45.以下程序中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個合法的整型單元的是
A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}
B.main(){int*p;fun(&p);…}intfun(int**p){ints;*p=&s;)
C.#includemain(){int*p;fun(&p);…}intfun(int**p)*p=(int*)malloc(2);}
D.#includemain(){iht*p;fun(p);…}ihtfun(iht*p){p=(int*)malloc(sizeof(int));}
46.下列敘述中正確的是()。
A.軟件交付使用后還需要進行維護
B.軟件一旦交付使用就不需要再進行維護
C.軟件交付使用后其生命周期就結(jié)束
D.軟件維護是指修復(fù)程序中被破壞的指令
47.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)是一種______的存儲結(jié)構(gòu)。
A.隨機存儲B.順序存儲C.索引結(jié)構(gòu)D.散列結(jié)構(gòu)
48.若運行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運行結(jié)果是#include<stdio.h>main(){charc;intv0=1,v1=0,v2=0;do{switch(c=getchar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1+=1default:v0+=1;v2+=1;}}while(c!='\n');printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=13,v1=4,v2=12
49.能將高級語言程序轉(zhuǎn)換成目標(biāo)語言程序的是______。
A.調(diào)試程序B.解釋程序C.編譯程序D.編輯程序
50.利用fseek函數(shù)可實現(xiàn)的操作是()。
A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確
51.設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()
A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
52.表達式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8
53.下列有關(guān)數(shù)據(jù)庫的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程
B.數(shù)據(jù)的物理獨立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,數(shù)據(jù)的存儲結(jié)構(gòu)不變
C.關(guān)系中的每一列稱為元組,一個元組就是一個字段
D.如果一個關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字
54.有以下程序
#include<stdio.h>
#include<string.h>
typedefstmct{charname[9];charsex;floatscore[2];}STU;
voidf(STUa)
{STUb={"Zhao",'m',85.0,90.0};inti;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
main()
{STUc={"Qian",'f',95.0,92.0};
f(c);printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);
}
程序的運行結(jié)果是
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90
55.若有定義語句:floatx[6];則以下對x數(shù)組元素的正確引用形式是()。
A.x+2B.&x[6]C.*(x+2)D.*&x[6]
56.下面程序運行后的輸出結(jié)果是_____。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}
A.5B.6C.7D.8
57.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是
A.5B.6C.9D.8
58.下列關(guān)于棧的描述中錯誤的是()。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
59.已知字母A的ASCII碼為十進制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的輸出是_________。
A.67,DB.B,CC.C,DD.不確定的值
60.棧通常采用的兩種存儲結(jié)構(gòu)是()。
A.順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
四、選擇題(20題)61.由兩個棧共享一個存儲空間的好處是______。A.A.減少存取時間,降低下溢發(fā)生的概率
B.節(jié)省存儲空間,降低上溢發(fā)生的概率
C.減少存取時間,降低上溢發(fā)生的概率
D.節(jié)省存儲空間,降低下溢發(fā)生的概率
62.
63.負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。
A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
64.
65.
66.
67.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。
A.從文件file中讀取長度為n的字符串存入字符數(shù)s由
B.從文件file中讀取長度不超過n-1個字符的字符放到字符數(shù)組S中
C.從文件file中讀到n個字符串存入字符數(shù)組s中
D.從文件file中讀取長度為n-1個字符的字符串存字符數(shù)組S中
68.下面不屬于需求分析階段任務(wù)的是()。
A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審
69.以下敘述中錯誤的是()。
A.算法正確的程序可以有零個輸入
B.算法正確的程序最終一定會結(jié)束
C.算法正確的程序可以有零個輸出
D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果
70.以下程序段中,與語句:k=a>;b?(b>;c?1:O):0;功能相同的是()。
71.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A.可行性分析報告B.軟件需求規(guī)格說明書C.概要設(shè)計說明書D.集成測試計劃
72.在軟件生產(chǎn)過程中,需求信息的給出是______。A.A.程序員B.項目管理者C.軟件分析設(shè)計人員D.軟件用戶
73.
74.若有定義語句:
charS[10]=”1234567\0\0”;則strlen(s)的值是()。
A.7B.8C.9D.10
75.為了避免在嵌套的條件語句ifelse中產(chǎn)生二義性,C語言規(guī)定,else子句總是與()配對。
A.縮排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if
76.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()。
A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項管理
77.有以下程序:
#include<stdio.h>
structord
{intX,y;)dt[2]={1,2,3,4};
main()
{
structord*p=dt;
printf("%d,",++(p->x));printf("%d\n",++(p->y));
}
程序運行后的輸出結(jié)果是()。
A.1,2
B.4,1
C.3,4
D.2,3
78.語句“printf(”a\bhow\’are\’y\\\bou\n”);”的輸出結(jié)果是()。A.A.a\bhow\'are\'y\\bou
B.a\bhow\’are\’y\bou
C.how'are'you
D.ahow'are'y\bou
79.
80.設(shè)以下變量均為int類型,表達式的值不為7的是A.(x=y=6,x+y,x+1)
B.(x=6,x+1,y=6,x+y)
C.(x=y=6,x+y,y+1)
D.(y=6,y+1,x=y,x+1)
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從低位開始取出長整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中。例如,當(dāng)s中的數(shù)為l23456789時,t中的數(shù)為l3579。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項小于0.0005時停止迭代)。
程序運行后,若輸入精度
0.0005,則程序應(yīng)輸出為3.14…
注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
參考答案
1.Dx[0]是不能賦值的。
2.B
3.B
4.A解析:?:運算符首先執(zhí)行?之前的表達式,如果表達式的值為真,則返回?和:之間的表達式的值,否則返回:之后的表達式的值。本題中m比x和y都要小,所以,3個表達式都沒有改變m的值,故應(yīng)該選擇A。
5.D
6.B
7.C(33)C)解析:題中變量w的定義為double型,函數(shù)fun2()的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。
8.A軟件危機主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進度無法控制;軟件質(zhì)量難以保證;軟件不可維護或維護程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。所以選擇A。
9.C
10.B
11.B解析:循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu),隊列是以先進先出為原則組織數(shù)據(jù)的一種特殊線性表,選項A錯誤;棧是以先進后出為原則組織數(shù)據(jù)的一種特殊線性表,選項B正確;順序表是線性表的順序存儲結(jié)構(gòu),選項C錯誤;循環(huán)鏈表是一般線性表的一種鏈?zhǔn)酱鎯Y(jié)構(gòu),選項D錯誤。
12.D
13.C
14.C本題中由循環(huán)條件可知遇到“0或x與y所指的字符的值不等中的一個條件時就結(jié)束,所以功能是統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)。
15.D本題考查邏輯運算符的使用。當(dāng)“&&”的兩個運算對象都是邏輯1時,表達式返回值才是1;“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。
16.C解析:這是一道考查fread函數(shù)的題。buf是一個指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。
17.D解析:通常,引用一個數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開始的。
18.B程序定義數(shù)組a和b,其中a使用小寫字母和數(shù)字構(gòu)成的字符串完成初始化。第1個for循環(huán)將數(shù)組a中所有的非小寫字母字符(數(shù)字字符)自左向右存放到b數(shù)組中;第2個for循環(huán)將數(shù)組a中所有的非數(shù)字字符(小寫字母)自左向右存放到b的后續(xù)單元中,在所有字符后添加空字符,輸出b,此時b的值為:123456789964abbcdefghijk。本題答案為B選項。
19.A根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組P中所有元素所占用的字節(jié)數(shù),而不是ch”型數(shù)據(jù)所占字節(jié)數(shù)。
20.A
21.軟件開發(fā)
22.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ù)之和。
23.str[i]或str+iistr[i]或str+i\r\ni
24.3030解析:當(dāng)i=0時,s=0+a[0][0]+a[0][2]=10;i=1時,s=10+a[1][1]+a[1][1]=18;i=2時,s=18+a[2][2]+a[2][0]=30。
25.調(diào)試調(diào)試
26.4545解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過遍的從前往后掃描和遍的從后往前掃描,需要比較次數(shù)為。
27.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉(zhuǎn)換類型轉(zhuǎn)換運算符,將一個表達式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。
本題可按部就班地逐步運算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
28.a=1b=2c=3a=1,b=2,c=3解析:此題考查了scanf函數(shù)的輸入格式。scanf函數(shù)的輸入格式規(guī)定如果兩個格式說明項間有一個或多個普通字符,那么在輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間也必須以這一個或多個字符作為分隔符。
解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉(zhuǎn)換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
30.*(p+5)或p[5]*(p+5)或p[5]
31.00解析:本題考查的是do厀hile循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20,所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4,所以k的值為0。
32.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。
33.m<n或n>mr或r!=0m<n或n>m\r\nr或r!=0解析:本題使用的是“輾轉(zhuǎn)相除”法求兩個數(shù)的最大公約數(shù),即以兩個數(shù)中較大的除以較小的,如果余數(shù)不為0,則將較小的數(shù)和余數(shù)做同樣處理,直到被除斷為止,此時較小的數(shù)就是兩個數(shù)的最大公約數(shù)。本題第一空要求填寫一個if語句的判斷條件,如果滿足此條件則交換m和n的值,再看后面while循環(huán)的循環(huán)體,使用m%n求余,則此if語句的作用應(yīng)該是保證m是兩個數(shù)中較大的那個,故第一空填m<n或n>m。接下來的while循環(huán)實現(xiàn)整個輾轉(zhuǎn)相除的過程,其結(jié)束條件應(yīng)該是余數(shù)r為0,所以while的循環(huán)條件應(yīng)該填r或r!=0。
34.11解析:首先計算if語句后面的表達式,根據(jù)運算符的優(yōu)先級可知,先算“a!=0”,該值為1,再把1賦值給p,結(jié)果為1(真),執(zhí)行其后的printf語句,輸出的值為1。
35.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時,判斷條件不滿足,退出循環(huán)。
36.非線性結(jié)構(gòu)非線性結(jié)構(gòu)解析:對于一個非空的數(shù)據(jù)結(jié)構(gòu),如果同時滿足下列兩個條件,即1)有且只有一個根結(jié)點;2)每一個結(jié)點最多有一個前件,也最多有一個后件;即為線性結(jié)構(gòu),而二叉樹的結(jié)點可能存在兩個后件,所以是非線性結(jié)構(gòu)。
37.參照完整性參照完整性
38.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結(jié)果顯然為0。
39.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]
40.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+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填;'%s',str。
41.C解析:表達式“a++WW(i+1);”,宏展開之后為a=++i+1*i+1,先計算++i,結(jié)果為4,i的值也變?yōu)?,所以a=4+1*4+1=9。所以正確答案是選項C。
42.D解析:順序文件只能從頭讀寫,二進制文件可以隨機讀寫,選項A正確:文件在使用后應(yīng)關(guān)閉,當(dāng)程序結(jié)束時,應(yīng)當(dāng)把打開的文件關(guān)閉,選項B正確:用fread()函數(shù)可以一次性地讀取同類型的很多數(shù)據(jù),選項C正確;在C語言中指向各種文件的文件指針都是通過FILE來定義的,故選項D是錯誤的。所以4個選項中選D
43.D解析:a[i][j]的位置應(yīng)該是第i+1行,第j+1列,那么它的位置是(i+1-1)*m+j+1=i*m+j+1。
44.A解析:在C語言中,合法標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線。C語言的標(biāo)識符可以分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符。選項B)和C)中的橫線以及點都不合法,選項D)中的case為C語言關(guān)鍵字。
45.C解析:本題考核的知識點是指針變量作為函數(shù)的參數(shù)以及變量的作用域。在選項A中,main()函數(shù)中定義了一個指針變量p,調(diào)用fun()函數(shù)時把p傳給形參p,在函數(shù)中讓p指向局部變量s,由于函數(shù)調(diào)用返回后,局部變量s將被釋放,因此無法實現(xiàn)讓實參p指向一個整型單元,故選項A錯誤.選項B中實現(xiàn)的也是讓實參p,指向一個在函數(shù)fun()定義的局部變量s,因此也是錯誤的;選項C在函數(shù)fun()中分配了兩個字節(jié)的內(nèi)存單元并把首地址賦值給形參p指向的變量,即main()函數(shù)的指針變量p中,由于整型變量占兩個字節(jié),因此,選項C是正確的;選項D在主函數(shù)中定義了一個指針地址變量p,并把指針變量的值傳給形參變量p,在fun()函數(shù)分配了一個整型單元并把首地址賦值給行參指針變量p,由于C語言中變量作為參數(shù)是傳值的,所以并沒有改變對應(yīng)實參指針變量的值,因此選項D也是錯誤的.所以,C選項為所選。
46.A解析:維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護性,同時也要設(shè)法降低維護的代價。
軟件維護通常有以下四類;
①為糾正使用中出現(xiàn)的錯誤而進行的改正性維護;
②為適應(yīng)環(huán)境變化而進行的適應(yīng)性維護;
③為改進原有軟件而進行的完善性維護;
④為將來的可維護和可靠而進行的預(yù)防性維護。
軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項B、C、D中的說法都是錯誤的。
47.B解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中的每一個存儲結(jié)點不僅含有一個數(shù)據(jù)元素,還包括指針,每一個指針指向一個與本結(jié)點有邏輯關(guān)系的結(jié)點。此類存儲方式屬于順序存儲。
48.D解析:本題考查switch語句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語句的語法格式:
switch語句的語法格式為:
switch(表達式)
{
case常量表達式1:語句組1;
case常量表達式2:語句組2;
……
case常量表達式n:語句組n;
default:語句組n+1;
}
另外,注意以下幾點關(guān)于switch語句的重點:
①系統(tǒng)在執(zhí)行時計算開關(guān)表達式的值;②根據(jù)所得的值在各個case標(biāo)號表達式中尋找匹配,直到發(fā)現(xiàn)與表達式匹配的標(biāo)號(本例中匹配的是case'B':);③找到匹配后執(zhí)行后面相應(yīng)的語句表,順序往下執(zhí)行;④如果無相匹配的標(biāo)號,若存在default標(biāo)號,則執(zhí)行該語句標(biāo)號后面的語句表n+1;當(dāng)不存在default標(biāo)號時,不執(zhí)行switch中的任何一個語句表。
一般而言,在多分支結(jié)構(gòu)中總會出現(xiàn)“意外”的情況,這時均可歸入default:程序段,作統(tǒng)一的處理;default標(biāo)號是可選性的,不必每次都有,視需要而定。switch語句中還可以包含switch語句,形成switch的嵌套。
49.C解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由O和1組成的二進指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標(biāo)程序”。
50.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實現(xiàn)文件的順序讀寫;③輔助實現(xiàn)文件的隨機讀寫。
51.B解析:所謂二叉樹的前序遍歷(DLR)是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這3者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹,并且,在遍歷左右子樹時,上述規(guī)則同樣適用,即“根-左-右”。故該二叉樹的前序遍歷結(jié)果為“ATBZXCYP”。對于本題,若使用后序遍歷和中序遍歷的結(jié)果分別為“ZBTYCPXA”和“TZBACYXP”。
52.D解析:*、/和%的優(yōu)先級要高于+和—,同級別的運算符從左至右運算。所以本題首先計算5/2和5%2,雖然我們都知道5/2的結(jié)果應(yīng)該是2.5,但C語言中規(guī)定了兩個整數(shù)相除的結(jié)果為整數(shù),而且是截尾取整,所以5/2的結(jié)果是2;5%2表示的是5除以2所得的余數(shù),其結(jié)果為1。計算完后,表達式變?yōu)?.6-2+1.2+1,從左至右計算不難得出結(jié)果為3.8,故應(yīng)該選擇D。
53.D數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項A敘述錯誤。數(shù)據(jù)的物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),故選項B敘述錯誤。關(guān)系中的行稱為元組,對應(yīng)存儲文件中的記錄,關(guān)系中的列稱為屬性,對應(yīng)存儲文件中的字段,故選項C敘述錯誤。所以本題選D。
54.A解析:本題考查的是函數(shù)調(diào)用時的參數(shù)傳遞問題。程序在調(diào)用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個副本,函數(shù)f的所有操作只是針對這個數(shù)據(jù)副本進行的修改,這些都不會影響變量c的值。
55.C解析:數(shù)組名x為該數(shù)組的首地址即第1個元素的地址,x+2表示數(shù)組第3個元素的值地址。x[6]表示數(shù)組中長度為6,數(shù)組元素的下標(biāo)從0到5,沒有x[6]。&為取地址符,取得的是元素的地址。*為間接訪問運算符,其運算對象為地址或存放地址的指針變量。*(x+2)為取數(shù)組第3個元素的值,因此只有選項C正確引用了數(shù)據(jù)元素,選項C正確。
56.B解析:在main函數(shù)中定義了一個structabc類型的數(shù)組,同時分別利用{1,2,3}及{4,5,6}對數(shù)組中兩個元素進行初始化。在該結(jié)構(gòu)體,依次對其中的a,b,c三個變量進行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。
57.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]指向數(shù)組a的第9個元素,而a[8]=9,所以b=9。
58.B棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?,也可以采用鏈?zhǔn)酱鎯Α?/p>
59.A解析:由于字符“5”和“3”的ASCII碼相差為2,所以ch1經(jīng)過運算后的值應(yīng)為65+2=67;同理,ch2經(jīng)過運算后的值應(yīng)為65+3=68,即是字符“D”。
60.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈?zhǔn)綏5牟僮鞲子趯崿F(xiàn)。注意:這3種運算方法在各種存儲結(jié)構(gòu)中的應(yīng)用。
61.B棧是一種只允許在棧頂進行插入和刪除操作的線性表,使兩個棧共享同一存儲空間的是雙向棧,即將兩個棧的棧頂設(shè)在向量空間的兩端,讓兩個棧各自向中間空間延伸。當(dāng)其中一個棧的元素較多,超過向量空間的一半時,只要另一個棧的元素不多,那么,前者就可以占用后者的部分存儲空間。只有當(dāng)整個向量空間被兩個棧占滿(即兩個棧底相遇)時,才會發(fā)生上溢。使用這種棧的優(yōu)點是可以有效地節(jié)省存取空間,降低上溢發(fā)生的概率,而對于存取時間并沒有影響。
62.A\r\n
63.C數(shù)據(jù)定義語言:負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言:負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增加、刪除、修改等操作;數(shù)據(jù)控制語言:負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。因此本題答案為C)。
64.A
65.C
66.D
67.B本題考查fgets函數(shù)的使用調(diào)用形式:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“S”可以是一個字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個數(shù);“fp”是指向該文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串放到字符數(shù)組S中,讀入字符串后會自動在字符串末尾加入"\0"結(jié)束符,表示字符串結(jié)束。
68.C【答案】:C
【知識點】:需求分析階段的任務(wù)
【解析】:需求分析階段的任務(wù)是深入描述軟件的功能和性能,確定軟件設(shè)計的約束和軟件同其他系統(tǒng)元素的接口細節(jié),定義
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 競聘崗位發(fā)言稿
- 2024版機電設(shè)備買賣合同書
- 2024年車輛收車協(xié)議:以租代購方式2篇
- 2024琴行教師聘請及教學(xué)成果考核合同范本3篇
- 2024年高速公路路燈采購與安裝合同
- 2024年高壓輸電線路設(shè)計咨詢專項合同范本
- 三人協(xié)作商務(wù)協(xié)議樣本一
- 2024承包土方填土合同模板
- 祛斑知識培訓(xùn)課件下載
- 2024年食品行業(yè)ERP系統(tǒng)購銷協(xié)議3篇
- 2024年度中國醫(yī)院人力資源現(xiàn)狀調(diào)研報告
- 智聯(lián)招聘行測題庫及答案
- 前程無憂測評題庫及答案
- 【MOOC】有機化學(xué)-華中農(nóng)業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 二水石膏轉(zhuǎn)化為半水石膏的研究
- 中醫(yī)特色治療進修匯報
- 闌尾炎內(nèi)鏡治療
- 《2025年日歷》電子版模板年歷月歷工作學(xué)習(xí)計劃橫版整年帶農(nóng)歷
- 2023-2024學(xué)年廣東省廣州市白云區(qū)九年級(上)期末語文試卷
- 2025年中國鋁合金鑄件行業(yè)市場現(xiàn)狀、前景分析研究報告(智研咨詢發(fā)布)
- 頌缽療愈師培訓(xùn)
評論
0/150
提交評論