




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021年廣東省清遠(yuǎn)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序運行后的輸出結(jié)果是()。
A.1,2,3,1,5,9,
B.1,3,5,1,3,5,
C.1,3,5,0,d,8,
D.1,3,5,-1,3,7,
2.
若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。
#include<stdio.h>
#include<string.h>
main
{intn;
chars1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A.-1B.0C."abcdef"D."abdef"
3.若有定義語句:"inta[4][10],*P,*q[4];"且0≤i<4,則錯誤的賦值是()。
A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]
4.有以下程序程序執(zhí)行后的輸出結(jié)果是()。
A.y=-IB.y=oC.y=lD.while構(gòu)成無限循環(huán).
5.若要判斷char型變量c中存放的是否為小寫字母,以下正確的表達式是()。A.'a'<=c<='z'
B.(c>='a')&&(c<='z')
C.(c>='a')‖(c<='z')
D.('a'<=c)AND('z'>=c)
6.若有下列定義(設(shè)int類型變量占2個字節(jié)):
inti=8;
則下列語句:
printf("i=%08d",i);
輸出的結(jié)果是()。A.A.i=8B.i=00000008C.i=08D.8
7.單鏈表中,增加一個頭結(jié)點的目的是為了()。
A.使單鏈表至少有一個結(jié)點B.標(biāo)識表結(jié)點中首結(jié)點的位置C.方面運算的實現(xiàn)D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?/p>
8.設(shè)n個待排序的記錄關(guān)鍵字,則在堆排序中需要()個輔助記錄單元。
A.1B.12C.60D.15
9.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序運行后的輸出結(jié)果是()。
A.0101B.1000C.1100D.1010
10.
11.下列說法正確的是()。
A.在C語言中,可以使用動態(tài)內(nèi)存分配技術(shù)定義元素個數(shù)可變的數(shù)組
B.在c語言中,數(shù)組元素的個數(shù)可以不確定,允許隨機變動
C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致
D.在C語言中,定義一個數(shù)組后.就確定了它所容納的元素的個數(shù)
12.有以下程序
A.741B.963C.852D.87542l
13.
14.已知一個長度為32的有序表,若采用二分查找一個不存在的元素,則比較次數(shù)最多是()
A.4B.5C.6D.7
15.在循環(huán)隊列中,若front與rear分別表示對頭元素和隊尾元素的位置,則判斷循環(huán)隊列空的條件是()。
A.front==rear+1B.rear==front+1C.front==rearD.front==0
16.設(shè)有以下程序段:structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std:若要引用結(jié)構(gòu)體變量std中的color成員,寫法錯誤的是()。A.std.colorB.ptr->colorC.std->colorD.(*ptr)color
17.
18.若x=10010111,則表達式(3+(int)(x))&(~3)的運算結(jié)果是()。
A.10011000B.10001100C.10101000D.10110000
19.用鄰接矩陣A表示有向圖G的存儲結(jié)構(gòu),則有向圖G中頂點i的出度為()。
A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和
20.下而程序的輸出結(jié)果是()。
A)32
B)26
C)24
D)4
二、2.填空題(20題)21.在具有n個單元、順序存儲的循環(huán)隊列中,隊滿時,共有【】個元素。
22.多媒體計算機所用的CD-ROM是【】。
23.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整型數(shù)據(jù),成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。
structnode
}intinfo;
【】link;
};
24.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。
word_num(str)
for(i=0;str[i]!=【】;i++)
if(【】='')word=0;
【】;
}
return(num);
}
25.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
26.如果一個工人可管理多個設(shè)施,而一個設(shè)施只被一個工人管理,則實體“工人”與實體“設(shè)備”之間存在______聯(lián)系。
27.有以下程序:
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結(jié)果是【】。
28.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
29.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許插入的一端稱作______。
30.以下程序的輸出結(jié)果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3,i>=0;i--,i--)printf("%c",*p[i]);
printf("\n");
}
31.已知head指向一個帶頭結(jié)點的單向鏈表,鏈表中每個結(jié)點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結(jié)點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在橫線處填入正確內(nèi)容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
32.將經(jīng)過確認(rèn)測試的軟件與外設(shè)、網(wǎng)絡(luò)等連接在一次運行的測試叫【】
33.以下程序運行后的輸出結(jié)果是【】。
main()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
34.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
35.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。
36.棧的基本運算有三種:入棧、退棧和【】。
37.已知字母A的ASCII碼為65。以下程序運行后的輸出結(jié)果是______。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
38.程序如下:
main()
{inti=4;
printf("%d",-++i);
}
該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。
39.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
intf(ihta[],intn)
{if(n>=1)returnf(a,n-1)+a[n-1];
elsereturn0;
main()
intaa[5]={1,2,3,4,5},s;
s=f(aa,5);prinff("%d\n",s);
}
40.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預(yù)防性維護o
三、1.選擇題(20題)41.下列選項中,不是一個算法的基本特征的是()。
A.完整性B.可行性C.有窮性D.擁有足夠的情報
42.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動移至下一個字符位置
43.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
44.在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是()。
A.各模塊應(yīng)包括盡量多的功能
B.各模塊的規(guī)模應(yīng)盡量大
C.各模塊之間的聯(lián)系應(yīng)盡量緊密
D.模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度
45.以下能正確定義二維數(shù)組的是()。
A.inta[][3];
B.inta[][3]={2*3};
C.inta[][3]={};
D.inta[2][3]={{1},{2},{3,4}}:
46.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"),*p=str[0];printf("%d\n",strlen(p+20));}程序運行后的輸出結(jié)果是()。
A.0B.5C.7D.20
47.當(dāng)a=1、b=3、c=5、d=4時,執(zhí)行下面一段程序:if(a<B)if(c<D)x=1;elseif(a<C)if(b<D)x=2;elsex=3;elesx=6;elsex=7;程序執(zhí)行后,x的值為()
A.1B.2C.3D.6
48.按條件f對關(guān)系R進行選擇,其關(guān)系代數(shù)表達式為
A.
B.
C.
D.
49.靜態(tài)測試是一種重要的測試方式,可以發(fā)現(xiàn)30%到70%的邏輯設(shè)計和編碼錯誤。下面()不屬于靜態(tài)測試?
A.白盒測試B.代碼檢查C.代碼質(zhì)量度量D.靜態(tài)分析
50.有以下程序:#include<stdio,h>voidfun(iht*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j--;fun(a,i,j);main()intx[]:{2,6,1,8},i;fun(x,0,3);for(i=0;i<4;i++)printf("%2d",x[i]);printf("\n");
A.1268B.8621C.8162D.8612
51.若變量已正確定義并賦值,下面符合C語言的表達式是_____。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
52.以下敘述中錯誤的是
A.gets函數(shù)用于從終端讀入字符串
B.getehar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
53.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫系統(tǒng)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
54.下列說法不正確的是()。
A.一個C語言源程序可以由一個函數(shù)組成也可以由多個函數(shù)組成
B.main()中的“()”是函數(shù)的參數(shù)部分,括號內(nèi)可為空,但括號不能省略
C.C語言程序是以函數(shù)為基本單位的
D.在C語言程序中,注釋行只能位于一條語句的后面
55.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}rintf("%d\n",m);}程序運行后的輸出結(jié)果是()。
A.1B.2C.3D.4
56.下列程序的運行結(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,5,C.2,2,2,2,D.5,5,5,5,
57.有以下程序:#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序運行后的輸出結(jié)果是______。
A.64,28B.4,4C.4,3D.64,64
58.下列程序的輸出結(jié)果是
#include"stdio.h"
main()
{inti,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;}
b++;}
printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
59.設(shè)x、y、t均為int型變量,執(zhí)行以下語句后,y的值為______。x=y=3;t=++x||++y;
A.不定值B.4C.3D.1
60.有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串從小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[5][10]={"abc","aabdog","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[0]));}程序運行后的輸出結(jié)果是()。
A.2B.4C.6D.3
四、選擇題(20題)61.若有定義語句:doublex,y,*px,*PY;執(zhí)行了laX=&x;lay=&y;之后,正確的輸入語句是()。A.scanf(”%If%le”,px,lay);
B.seanf(”%f%f¨&x,y);
C.seanf(”%f%f",x,y);
D.Scanf(”%If%If"·,x,y):
62.
63.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。
A.2B.3C.4D.5
64.有以下程序:
程序運行后的輸出結(jié)果是()。
A.0B.1C.4D.8
65.為了避免嵌套的條件分支語句if—else的二義性,C語言規(guī)定:C程序中的else總是與_____組成配對關(guān)系。
A.縮排位置相同的ifB.在其之前未配對的ifC.在其之前未配對的最近的ifD.同一行上的if
66.
67.以下程序的輸出結(jié)果是()。
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i<n;i=i+2)s=s+b[i];
returns;
}
voidmain()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}A.A.10
B.18
C.8
D.15
68.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,
69.對表達式for(表達式1;;表達式3)可理解為()。
A.for(表達式1;0;表達式3)
B.for(表達式1;1;表達式3)
C.for(表達式1;表達式1;表達式3)
D.for(表達式1;表達式3;表達式3)
70.以下程序運行后的輸出結(jié)果是()。
A.eelcomwB.weoclnleC.welcomeD.emoclew
71.
下列程序的輸出結(jié)果是()。
main
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)
if(p[i]%2)j+=p[i];
printf("%d\n",j);
}
A.42B.45C.56D.60
72.有以下程序:
程序運行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
73.
74.
75.應(yīng)用數(shù)據(jù)庫的主要目的是A.A.解決數(shù)據(jù)保密問題
B.解決數(shù)據(jù)完整性問題
C.解決數(shù)據(jù)共享問題
D.解決數(shù)據(jù)量大的問題
76.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是
A.sets(&s[0]);
B.scarf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
77.交換兩個變量的值,不允許用臨時變量,應(yīng)該使用下列()位運算符。
A.&B.^C.D.E.F.~
78.
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:在字符串的最前端加入m個*號,形成新串,并且覆蓋原串。例如,用戶輸入字符串a(chǎn)bcd(以Enter鍵結(jié)束),然后輸入m值為3,則結(jié)果為***abcd。注意:字符串的長度最長允許為79。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫一個函數(shù)voidproc(intm,intk,intxx[]),該函數(shù)的功能是將大于整數(shù)m且緊靠m的k個非素數(shù)存人所指的數(shù)組中。例如,若輸入:105(即M=10,k=5),則應(yīng)輸出:l214151618。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.Dmain函數(shù)中,fun(fun(t))嵌套調(diào)用fun函數(shù)。第一次調(diào)用為fun(1),調(diào)用后,a[3]={1,3,5},輸出1,3,5,返回a[1]=3。第二次調(diào)用為fun(3),調(diào)用后,a[3]={一1,3,7},輸出一l,3,7。
2.D
\n本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。
\n
3.A數(shù)組名是一個存放一個數(shù)組首地址的值,是一個地址常量。而p=a不是合法的,因為p和a的基本類型不同。
4.A當(dāng)y為。時,表達式y(tǒng)一才為假,循環(huán)結(jié)束,最終y的值為一l,所以答案選擇A)。
5.BC語言中,char型變量的值是其對應(yīng)字符的ASCII值,可以做比較運算。由于小寫字母的ASCII值按字母表的順序連續(xù)遞增,因此判斷char型變量c是不是小寫字母時,判斷c的ASCII值是否在’a’和’z’之間,即(c>=’a’)&&(c<=’z’)。本題答案為B選項。
6.B解析:本題考查printf函數(shù)的格式。“%08”格式符中的“0”表示在指定數(shù)據(jù)輸出寬度的同時,在數(shù)據(jù)前面的多余空格處加“0”;“8”表示指定數(shù)據(jù)的輸出寬度為8位。
7.C
8.A
9.D函數(shù)fun的作用是求一個十進制數(shù)的二進制數(shù)。通過輾轉(zhuǎn)相除法獲取這個整數(shù)的二進制數(shù)。因此(10)10=(1010)2。故本題答案為D選項。
10.D
11.D在C語言中,數(shù)組元素的個數(shù)是確定的,不允許隨機變動,數(shù)組定義好后,它所能容納的元素的個數(shù)也就確定了,并且同一個數(shù)組中所有元素都是同一類型。
12.C在for循環(huán)中,當(dāng)y的值為9、6或3時,執(zhí)行輸出語句,輸出表達式“——y”的值。y先自減1,然后再輸出y的值。
13.C
14.C
15.C
16.C【答案】C
【知識點】結(jié)構(gòu)體成員變量的引用
【解析】結(jié)構(gòu)體變量包括一個或多個成員變量,引用其成員變量的語法格式如下:
結(jié)構(gòu)體變量.成員變量。通過結(jié)構(gòu)體指針變量獲得其結(jié)構(gòu)體變量的成員變量的一般形式為:(*結(jié)構(gòu)體指針變量).成員變量,也可以使用:結(jié)構(gòu)體指針變量->成員變量來引用成員變量。
17.D
18.A解析:本題主要考查運算表達式的運算。3+(int)(x)的結(jié)果是10011010,~3的結(jié)果是11111100,二者邏輯與得10011000。
19.A
20.C本題考查的是聯(lián)合所占的存儲空間。sizeof(t)=sizeof(douhle)*3=8*3=24。聯(lián)合體所占的存儲空間取決于所占空間最大的成員所占的空間。
21.n-1
22.只讀光盤只讀光盤
23.struetnode*struetnode*解析:本題中的結(jié)構(gòu)類型名為struetnode,所以空白處應(yīng)填:structnode*,即定義一個指向自身的結(jié)構(gòu)體指針。
24.\O'或0或NULLstr[i]num++或num=num+1或num+=1\\O'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:
①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個字符;
②str[i]代表字符串str中的第i+1個字符;
③整形變量num的值是要記錄的單詞的個數(shù)。
C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結(jié)束符“\\0”,所以在題中第一個空中應(yīng)填寫“\\0”;題中第二個空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。
25.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
26.一對多(或1:N)一對多(或1:N)
27.00解析:for循環(huán)執(zhí)行完成后t=5×4×3×2×1×0=0。
28.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
29.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。
30.SO
31.structlink*headstructlink*head解析:考查用指針引用結(jié)構(gòu)體變量成員數(shù)據(jù)的方法。因為本題中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點,逐個節(jié)點的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有指向結(jié)構(gòu)體變量的指針,依次指向各個節(jié)點,即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。
32.系統(tǒng)測試系統(tǒng)測試
33.123056009123\r\n056\r\n009解析:數(shù)組a中元素的初值為:a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[12][0]=7、a[2][1]=8、a[2][2]=9。執(zhí)行第1個for循環(huán)后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2個for循環(huán)的功能是將數(shù)組元素按照3行3列的格式輸出。
34.測試實例測試實例解析:進行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。
35.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈?zhǔn)酱鎯碚f,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實現(xiàn)的。
36.讀棧頂元素讀棧頂元素解析:棧的基本運算有三種:入棧、退棧和讀棧頂元素。
入棧運算是指在棧頂位置插入一個新元素。這個運算有兩個基本操作:首先將棧頂指針進一(即top加1),然后將新元素插入到棧頂指針指向的位置。
退棧運算是指取出棧頂元素并賦給一個指定的變量。這個運算有兩個基本操作:首先將棧頂元素(棧頂指針指向的元素)賦給一個指定的變量,然后將棧頂指針退一(即top減1)。
讀棧頂元素是指將棧頂元素賦給一個指定的變量。這個運算不刪除棧頂元素,只是將它的值賦給一個變量。
37.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。
38.-55。
39.1515解析:程序通過遞歸調(diào)用實現(xiàn)求數(shù)組aa各元素之和,即a[4]+a[3]+a[2]+a[1]+a[0]=15。
40.完善性完善性解析:軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、完善性維護和預(yù)防性維護。完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。
41.A解析:作為一個算法,一般應(yīng)該具有下列4個特征:(1)可行性,即考慮到實際的條件能夠達到一個滿意的結(jié)果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內(nèi)做完;(4)擁有足夠的情報。
42.A解析:函數(shù)rewind的功能是將文件指針重新指向一個流的開頭。用法如下:
intrewind(FILE*stream);并且無返值。
43.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)
44.D解析:本題考查軟件工程中軟件設(shè)計的概念和原理。人們在開發(fā)計算機軟件的長期實踐中積累了豐富的經(jīng)驗,總結(jié)這些經(jīng)驗得到如下的啟發(fā)式規(guī)則:
(1)改進軟件結(jié)構(gòu),提高模塊獨立性;通過模塊的分解或合并,力求降低耦合提高內(nèi)聚。低耦合也就是降低不同模塊間相互依賴的緊密程度,高內(nèi)聚是提高一個模塊內(nèi)各元素彼此結(jié)合的緊密程度。
(2)模塊的規(guī)模應(yīng)適中。一個模塊的規(guī)模不應(yīng)過大,過大的模塊往往是由于分解不夠充分:過小的模塊開銷大于有益操作,而且模塊過多將使系統(tǒng)接口復(fù)雜。因此過小的模塊有時不值得單獨存在。
(3)模塊的功能應(yīng)該可以預(yù)測,但也要防止模塊功能過分局限。如果模塊包含的功能太多,則不能體現(xiàn)模塊化設(shè)計的特點:如果模塊的功能過分的局限,使用范圍就過分狹窄。
經(jīng)過上述分析,本題的正確答案是選項D。
45.B解析:(1)二維數(shù)組的定義
二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達式][常量表達式]。
二維數(shù)組在內(nèi)存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。
(2)二維數(shù)組元素的引用
二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)],下標(biāo)可以是整型常量或整型表達式其范圍為:0~(常量表達式-1)。
(3)二維數(shù)組的初始化
可以用以下方法對二維數(shù)組元素初始化:
①分行給二維數(shù)組賦初值
例如:inta[2][2]={{1,2},{3,4}};
這種賦值方式比較直觀,把第1個大括號內(nèi)的數(shù)據(jù)賦給第1行的元素,第2個大括號內(nèi)的數(shù)據(jù)賦給第2行的元素,即按行賦值。
②可以將所有數(shù)據(jù)寫在一個大括號內(nèi),按數(shù)組排列的順序?qū)Ω鱾€元素賦初值。
③可以對部分元素賦初值,沒有初始化的元素值為0。
④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。
46.C解析:主函數(shù)中定義了一個二維字符數(shù)組并初始化,初始化后的結(jié)果為str[0]='Hello'、str[1]='Beijng',然后定義一個字符指針變量p并讓它指向str[0],即指向數(shù)組的首地址,而在C語言中無論是一維還是多維數(shù)組,其元素在內(nèi)存中都是順序存放的,故p+20后指針指向str[1],所以strlen(p+20);返回的是str[1]中字符串的長度,即'Beijng'的長度7,故4個選項中選項C符合題意。
47.B
48.C解析:選擇運算是一個一元運算,關(guān)系R通過選擇運算(并由該運算給出所選擇的邏輯條件)后仍為一個關(guān)系。這個關(guān)系是由R中那些滿足邏輯條件的元組所組成。如果關(guān)系的邏輯條件為f,則R滿足f的選擇運算可以寫成;бf(R)。
49.A
50.C解析:語句fun(x,0、3);中將數(shù)組名x作為實參,即把數(shù)組x的首地址傳送給形參(指針a),使數(shù)組x與形參指針s共占同一段內(nèi)存單元,在調(diào)用函數(shù)期間,如果形參數(shù)組x的值發(fā)生了改變,實參指針a的值也就改變了。程序中fun函數(shù)是遞歸調(diào)用函數(shù),其運行過程是:第1次調(diào)用fun時,a=x,i=0,j=3,i<j成立,a[0]與a[3]交換,a數(shù)組中的數(shù)變?yōu)閧8,6,1,2},執(zhí)行i++;j--;繼續(xù)調(diào)用fun,此時i,j分別為1,2,i<j成立,a[1]與a[2]交換,a數(shù)組中的數(shù)變?yōu)閧8,1,6,2},執(zhí)行i++j--;繼續(xù)調(diào)用fun,此時i,j分別為2,1,i<j不成立,遞歸調(diào)用結(jié)束。當(dāng)返回主函數(shù)時,x數(shù)組中的數(shù)據(jù)就為{8,1,6,2}。
51.B解析:選項A和C一望而知其錯;對于表達式a=a+7=c+b(答案D),是先執(zhí)行賦值表達式a+7=c+b,再把這個表達式的值賦給a,顯然,表達式a+7=c+b非法,因為賦值表達式的左側(cè)不能為常量或表達式。
52.B
53.B解析:數(shù)據(jù)庫系統(tǒng)(DBS)是由數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、硬件平臺(硬件)、軟件平臺(軟件)五個部分構(gòu)成的運行實體。數(shù)據(jù)庫技術(shù)的根本目標(biāo)是解決數(shù)據(jù)的共享問題。
54.D解析:本題涉及C語言基本的3個知識點:①C語言是以函數(shù)為基本單位的,每一個函數(shù)完成相對獨立的功能,一個程序可以包括多個函數(shù),但有且僅有一個主函數(shù);②主函數(shù)main()的圓括號內(nèi)是填寫參數(shù)的,可以沒有參數(shù),但括號不可以省略;③程序的注釋部分應(yīng)該在“/*…………*/”之間,它允許出現(xiàn)在程序的任何位置。
55.A解析:本題中首先計算switch后面括號里的表達式a%3,即15%3為0;執(zhí)行case0:后面的語句m++:m自加1,即m為1遇到break語句;然后跳出switch語句,所以最后輸出的m的值為1。所以選項A正確。
56.A解析:分析fun函數(shù)程序段,可知fun函數(shù)要實現(xiàn)的功能是將s中第(t+1)個元素以前的元素逆置賦給數(shù)組p。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)組x,最后輸出x數(shù)組。
57.C解析:根據(jù)題意,il=f(8)/f(4)進行宏替換后.i1=(8*8)/(4*4)=4,i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3。所以輸出結(jié)果為4、3。
58.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)條件的判定。當(dāng)能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進行i++,判斷循環(huán)條件。
59.C
60.C解析:題目中已告知函數(shù)f()的作用是將字符串從小到大排序,因此主函數(shù)中調(diào)用完f(p,5);后,二維數(shù)組p中的內(nèi)容為('aabdfg','abbd','abc','cd','dcdbc'}。輸出的結(jié)果是strlen(p[0]),即p中第1個字符串的長度,所以結(jié)果是6。故本題應(yīng)該選擇C。
61.A因為X,Y都是double型數(shù)據(jù),所以輸入時的格式字符應(yīng)為%If,所以B與C錯誤。D選項中scanf(”%lf%%’,x,Y);應(yīng)為sc“(”%If%If"’,,&)r);。
62.A
63.A解析:選擇排序的基本思想是掃描整個線性表,從中選出最小的元素,將它交換到表的最前面,然后對剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個位置,元素15則放在第二個位置。
64.Cm函數(shù)中的X為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可保留上次調(diào)用時的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,x的定義相當(dāng)于不存在,直接使用
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村出售地皮合同范本
- 出口定金合同范本
- 業(yè)務(wù)用車租賃合同范本
- 入股果園合同范例
- 第五單元第14課文藝復(fù)興運動2023-2024學(xué)年九年級上冊歷史同步教學(xué)設(shè)計(部編版)
- 專利實施使用合同范本
- epc項目銷售合同范本
- 2024年溫州龍港農(nóng)商銀行招聘筆試真題
- 借條合同范本范文
- 保安顧問合同范本
- 幼兒園衛(wèi)生保健十三種表格
- 大灰狼兒童睡前故事大全
- 家長進課堂--小學(xué)生食品安全知識
- 酒店預(yù)訂確認(rèn)單
- 會計人才培養(yǎng)方案調(diào)研報告書
- 企業(yè)標(biāo)準(zhǔn)自我聲明公開
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)(微課版第3版)課件 第1、2章 了解創(chuàng)業(yè)規(guī)劃你的職業(yè)生涯、創(chuàng)新與創(chuàng)新思維
- E時代大學(xué)英語-讀寫教程2 第四單元
- 四年級語文上冊第一單元單元整體教學(xué)設(shè)計
- 玩具安全標(biāo)準(zhǔn)測試培訓(xùn)-(SGS)課件
- 員工工資條模板
評論
0/150
提交評論