版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年貴州省貴陽市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列選項中,能正確定義數(shù)組的語句是()。
A.intnum[0..2008];
B.intnum[];
C.intN=2008;intnum[N];
D.#defineN2008;intnum[N];
2.軟件詳細(xì)設(shè)計的主要任務(wù)是確定每個模塊的()。
A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程
3.有下列程序段:
intk=0,a=1,b=2,c=3;
k=a<b?b:a;k=k>C?C:k;
執(zhí)行該程序段后,k的值是()。
A.3B.2C.1D.0
4.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2||c--!=3) printf(“%d,%d,%d\n”,a,b,c); elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);}程序的運行結(jié)果是()。
A.1,3,2B.1,3,3C.1,2,3D.3,2,1
5.以下敘述中正確的是()A.當(dāng)對文件的讀(寫操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)
D.語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
6.對稱數(shù)組A中,每個元素的長度為4個字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到8。將其下三角中的元素連續(xù)存儲在從首地址SA開始的存儲器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。
A.SA+124B.SA+128C.SA+132D.136
7.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致,
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
8.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。
A.詳細(xì)設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試
9.以下程序運行時若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對值,應(yīng)在程序空缺處填入的正確選項是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
10.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運行后的輸出結(jié)果是()。
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
11.在C語言中,函數(shù)返回值的類型最終取決于()。
A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型
B.return語句中表達(dá)式值的類型
C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型
D.函數(shù)定義時形參的類型
12.從一個長度為100的順序表中刪除第30個元素時需向前移動()個元素
A.70B.71C.69D.30
13.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進(jìn)棧,元素進(jìn)棧或出棧順序是未知的,下列序列中,不可能成為棧空時彈出的元素構(gòu)成序列的有()
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,c,b,a}
D.{c,d,b,e,f,a,g}
14.已知10個元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹,查找值為62的結(jié)點所需比較次數(shù)為()
A.4B.3C.2D.5
15.下列正確的實型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
16.在面向?qū)ο笤O(shè)計中,對象有很多基本特點,其中“從外面看只能看到對象的外部特性,而對象的內(nèi)部對外是不可見的?!边@一性質(zhì)指的是對象的
A.分類性B.標(biāo)識惟一性C.多態(tài)性D.封裝性
17.若有如下定義,則__________是對數(shù)組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
18.若有定義inta=5,b=7;,則表達(dá)式a%=(b%2)運算后,a的值為()。
A.0B.1C.11D.3
19.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運行結(jié)果是
A.A.331
B.41
C.2
D.1
20.下列敘述中正確的是()。
A.在賦值表達(dá)式中,賦值號的左邊既可以是變量,也可以是任意表達(dá)式
B.實型變量中允許存放整型數(shù)
C.若a和b類型相同,在執(zhí)行賦值a=b后,b中的值將放入a中,但b中的值不變
D.在C程序中,求余算符“%”兩邊的類型相同時才能進(jìn)行運算
二、2.填空題(20題)21.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
22.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\N,*p,*q))
}
23.定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為______。
24.下面程序的運行結(jié)果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
25.以下程序中函數(shù)fun的功能是求出能整除x且不是偶數(shù)的務(wù)正整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。
例如,若x中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。
請按題意,完成填空。
試題程序:
#include<stdio.h>
voidfun(intx,intpp[],int*n)
{inti,j=0;
【】;
if(x%i==0)pp[j++]=i;
【】;
}
main()
{intx,aa[1000],n,i;
printf("\nPleaseenteranintegernumber:\n");
scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++)printf("%d",aa[i]);
printf("\n");
}
26.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。
27.以下程序的輸出結(jié)果是【】。
voidfun()
{staticinta;
a+=2;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)fun();
printf("\n");
}
28.一個模塊直接訪問另一個模塊的內(nèi)容,稱為【】藕合。
29.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>
voidfunc(intx,inty,【】z)
{*z=x+y;}
30.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
31.以下程序運行后的輸出結(jié)果是______。
main()
{
intp[7]={11,13,14,15,16,17,18);
inti=0,j=0;
while(i<7&&p[i]%2==1)
j+p[i++];
printf(“%d\n”j);
}
32.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。
33.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和,請?zhí)羁铡?/p>
#include<stdio,h>
main()
inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=【】;
}
prinff("sum=%d,count=%d\n",sum,count);
}
34.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。
35.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
36.函數(shù)sub的功能是根據(jù)下面近似分式求π的值。
(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
現(xiàn)在請在下面的函數(shù)中填空,完成求π值的功能。
#include"math.h"
doublesub(longm)
{doublesum=0.0,t;longn;
for(n=1;n<=m;n++)sum+=【】;
t=sqrt(6*sum);
return(t);
}
37.在數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計中,常用的描述工具是【】。
38.以下程序運行后輸出結(jié)果是【】。
#include<stdio,h>
voidswap(y)
{intt;
t=x;x=y;y=t:printf("%d%d",x,y);
}
main()
{ihta=3,b=4:
swap(a,b);prinff("%d%d",a,b);
}
39.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;};
40.下列程序的輸出結(jié)果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
三、1.選擇題(20題)41.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}
A.languageB.lnugC.有語法錯誤D.lang
42.順序查找一個具有n個元素的線性表,二分查找一個具有n個元素的有序表,其時間復(fù)雜性為______。
A.O(n)
B.O(log2n)
C.O(n2)
D.O(nlog2n)
43.下列定義中,不正確的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
44.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}則循環(huán)體執(zhí)行的次數(shù)是()。
A.1B.5C.9D.死循環(huán)
45.一個算法應(yīng)該具有“確定性”等5個特性,下面對另外4個特性的描述中錯誤的是()A.有零個或多個輸入B.有零個或多個輸出C.有窮性D.可行性
46.若有函數(shù)max(a、b),為了讓函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時,正確的賦值方法是
A.(*p)max(a,b)B.*pmax(a,b)C.p=max(a,b)D.*p=max(a,b)
47.一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為()。
A.對應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系
48.若有定義:"inta[2][3];"則對a數(shù)組的第i行第j列無素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
49.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是
A.8,6B.8,3C.6,4D.7,4
50.下列說法正確的是()。
A.在C語言中,可以使用動態(tài)內(nèi)存分配技術(shù),定義元素個數(shù)可變的數(shù)組
B.在C語言中,數(shù)組元素的個數(shù)可以不確定,允許隨機(jī)變動
C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致
D.在C語言中,定義了一個數(shù)組后,就確定了它所容納的元素的個數(shù)
51.對下述程序,正確的判斷是()。main(){inta,b;scanf("%d",&a);scanf("%d",&b);if(a>b)a+=b;b++;elseb+=a;a++;printf("%d,%d",a,b);}
A.有語法錯誤,不能通過編譯
B.若輸入數(shù)據(jù)2和5,則輸出3和7
C.若輸入數(shù)據(jù)5和2,則輸出7和3
D.若輸入數(shù)據(jù)5和5,則輸出6和10
52.以下語句的輸出結(jié)果是()printf("%d,%d,%u\n",016,16,-16);
A.16,16,65420B.14,16,6542C.16,16,-16D.14,16,-16
53.以下非法的賦值語句是
A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;
54.以下程序段的輸出結(jié)果是chars[]="\\141\141abc\t";printf("%d\n",strlen(s));
A.9B.12C.13D.14
55.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U(kuò)大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
56.下面程序的輸出結(jié)果是#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*p+9);}
A.0B.1C.10D.9
57.下面程序的輸出結(jié)果是()main(){inta[10]={l,2,3,4,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
58.下列選項可以正確表示字符型常量的是
A.'\r'B.aC.\897D.296
59.有以下函數(shù):mtaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關(guān)于aaa函數(shù)的功能的敘述正確的是()。
A.求字符串s的長度B.比較兩個串的大小C.將串s復(fù)制到串tD.求字符串s所占字節(jié)數(shù)
60.當(dāng)變量c的值不為2、4、6時,值也為“真”的表達(dá)式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
四、選擇題(20題)61.若變量X、y已正確定義并賦值,以下符合c語言語法的表達(dá)式是()。
A.++x,y=x-一B.x+l=yC.x=x+10--x+yD.double(x)/lO
62.以下敘述中不正確的是()。
A.在不同的函數(shù)中可以使用相同名字的變量
B.函數(shù)中的形式參數(shù)是局部變量
C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
63.下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是()。
A.可封裝B.自頂向下C.模塊化D.逐步求精
64.算法的時間復(fù)雜度是指()。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)
65.
以下程序的輸出結(jié)果是()。
main
{charw[][10]={"ABCD","EFGH","IJKL","
MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);
A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
66.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a(chǎn)[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序運行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
67.兩次運行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結(jié)果是()。
if(x++>5)printf("%d",x);
elseprintf("%d\n",x--);
A.7和5B.6和3C.7和4D.6和4
68.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6
69.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
70.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
71.
72.
73.下列選項中屬于結(jié)構(gòu)化程序設(shè)計原則的是()。
A.可封裝
B.多態(tài)性
C.自下而上
D.逐步求精
74.以下程序的輸出結(jié)果是
#include<stdio.h>
main()
{
inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A.6,1B.6,0
C.2,1D.2,0
75.
76.
77.以下選項中關(guān)于程序模塊化的敘述錯誤的是()。
A.可采用自底向上、逐步細(xì)化的設(shè)計方法把若干獨立模塊組裝成所要求的程序
B.把程序分成若干相對獨立、功能單一的模塊,可便于重復(fù)使用這些模塊
C.把程序分成若干相對獨立的模塊,可便于編碼和調(diào)試
D.可采用自頂向下、逐步細(xì)化的設(shè)計方法把若干獨立模塊組裝成所要求的程序
78.
79.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
80.
五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。
main
{intn;
For(n=3;n<=10;n++)
{if(n%6==0)break;Printf(“%d”,n);}}
六、程序設(shè)計題(1題)82.N名學(xué)生的成績已在主函數(shù)中放人一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點。請編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。
例如,若學(xué)生的成績是:8576698591726487,則平均分應(yīng)當(dāng)是:78.625。注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
參考答案
1.DC語言不允許定義動態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達(dá)式。A選項錯誤,C語言中的數(shù)組沒有此類型的定義方法;B選項錯誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定元素的個數(shù);C選項錯誤,N為變量,不能用來定義數(shù)組大小。故本題答案為D選項。
2.A解析:從軟件開發(fā)的工程化觀點來看,在使用程序設(shè)計語言編制程序以前,需要對所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計的任務(wù)就是要決定各個模塊的實現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項A。
3.B解析:因為a<b成立,所以條件表達(dá)式a<b?b:a的值等于b的值等于2,因此變量k的值等于2。又因為k=2>c=3不成立,所以條件表達(dá)式k>c?c:k的值等于k的值等于2。把條件表達(dá)式k>c?c:k的值賦給變量k,因而變量k的值等于2。因此,選項B)為正確答案。
4.Belse總是和最近的if配對。進(jìn)入第1個if語句進(jìn)行條件判斷時,因為是選輯與操作,需要兩邊運算對象的值均為非零值才為真,所以需要逐個執(zhí)行判斷。結(jié)果為1,進(jìn)入第2個if語句進(jìn)行條件判斷。因為“b!=2”條件成立,所以整個條件表達(dá)式的值為真,不再執(zhí)行邏輯或的第2個運算對象“(c--!=3)”變量c的值不變,也不再執(zhí)行第1個else語句。輸出a的值1,b的值3,c的值3。故本題答案為B選項。
5.AB)選項中打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進(jìn)行追加操作等。C)選項中在一個程序中當(dāng)對文件進(jìn)行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D)選項中,C語言中的文件可以進(jìn)行隨機(jī)讀寫。
6.B
7.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管其在計算機(jī)中的存儲方式。數(shù)據(jù)的存儲結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計算機(jī)存儲器里的實現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項A的說法是錯誤的。
數(shù)據(jù)庫可以看成是長期存儲在計算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。
數(shù)據(jù)庫設(shè)計是在數(shù)據(jù)庫管理系統(tǒng)的支持下,按照應(yīng)用的要求,設(shè)計一個結(jié)構(gòu)合理、使用方便、效率較高的數(shù)據(jù)庫及其應(yīng)用系統(tǒng)。數(shù)據(jù)庫設(shè)計包含兩方面的內(nèi)容:一是結(jié)構(gòu)設(shè)計,也就是設(shè)計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu);二是行為設(shè)計,即設(shè)計基于數(shù)據(jù)庫的各類應(yīng)用程序、事務(wù)等。因此,選項C的說法是錯誤的。
數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還必須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項D的說法是正確的。因此,本題的正確答案是選項A。
8.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個模塊的功能、建立與已確定的軟件需求的對應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計的任務(wù)是:在使用程序設(shè)計語言編制程序以前,對所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計階段。
9.B解析:考查函數(shù)指針的使用方法??梢允褂煤瘮?shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實參表列)。
10.D解析:本題中首先定義一個字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時輸出的p所指的字符串的值為D。所以,4個選項中選項D符合題意。
11.A解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型一致。如果函數(shù)值的類型和return語句中的表達(dá)式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動進(jìn)行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。
12.A
13.B
14.B
15.B解析:實型常量有兩種書寫形式:①小數(shù)形式,它由符號、整數(shù)部分、小數(shù)點及小數(shù)部分組成;②指數(shù)形式,由十進(jìn)制小數(shù)形式加上指數(shù)部分組成,其形式為十進(jìn)制小數(shù)e指數(shù)或十進(jìn)制小數(shù)E指數(shù)。注:e或E后面的指數(shù)必須是整數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項A)中E的前面沒有數(shù)字,因此錯誤。選項C)中0.8不是整數(shù),因此錯誤。選項D)中4是整型常量而不是實型常量。
16.D解析:從外面看只能看到對象的外部特性,而對象的內(nèi)部,即處理能力的實行和內(nèi)部狀態(tài),指的是對象的封裝性。
17.D
18.A解析:本題考查'%'運算符的使用。運算符'%'要求兩個運算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。本題中表達(dá)式ao%=(b%2)等價于a=a%o(b%2)=5%(7%2)=5%1=0。
19.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導(dǎo)條件為“真”時執(zhí)行的操作;由else引導(dǎo)條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進(jìn)行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進(jìn)行x++操作。x的初始值為1,輸出結(jié)果為1。
20.D選項A,在賦值表達(dá)式中,賦值號的左邊只能是變量或者是代表某個存儲單元的表達(dá)式,不能是任意表達(dá)式,右邊也不得出現(xiàn)表達(dá)式;選項8中,整型變量中只能存放整型數(shù),但實型變量中能存放實型數(shù),也能存放整型數(shù);選項C,表達(dá)式a=b的意思是把變量b的值賦給變量a,從而覆蓋a中原來值;選項D,要求取余運算符"%"兩邊的類型均為整型。
21.3232解析:while(表達(dá)式)的功能是:首先計算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
22.3535解析:函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
23.用“&&”連接兩個表達(dá)式時,若第1個表達(dá)式的值為“假”,則運算結(jié)果與第2個表達(dá)式無關(guān),此時第2個表達(dá)式將不再進(jìn)行計算。本題中第1個表達(dá)式“j=!ch”值為0,所以第2個表達(dá)式i++將不再進(jìn)行計算,i的值為1。\r\n\r\n
24.x=2y=1
25.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本題題干信息是求能整除x且不是偶數(shù)的所有正整數(shù)。循環(huán)語句中i從1開始且每次增2,所以i始終是奇數(shù),語句,n=j;是記錄符合題意的整數(shù)的個數(shù)。
26.格式化模型格式化模型解析:層次模型與網(wǎng)狀模型屬于格式化模型。
27.2468
28.內(nèi)容內(nèi)容
29.int*int*解析:從題中代碼可知:z應(yīng)該是一個整型指針,因此應(yīng)填int*。
30.模塊模塊
31.2424解析:本題考核的知識點是數(shù)組的定義和數(shù)組元素的引用。主函數(shù)中首先定義了一個長度為7的數(shù)組,然后用一個while循環(huán)引用數(shù)組的元素,當(dāng)i大于7或者p[i]為偶數(shù)時,循環(huán)結(jié)束。顯然當(dāng)i=2時,p12]=14為偶數(shù)時,循環(huán)結(jié)束,此時j的值為j=p[0]+p[1]=24;
32.88解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。
33.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應(yīng)該填寫地址,由于是循環(huán)輸入,所以填&a[i]。依據(jù)題意第二處應(yīng)該填寫a[i],以實現(xiàn)sum=sum+a[i]的求和。
34.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。
35.43214321解析:靜態(tài)存儲類的局部變量其生存期為整個程序的運行期間,作用域卻只是定義它的函數(shù)或局部范圍。注意:局部變量和全局變量的作用域。
36.1.0/(n*n)1.0/(n*n)解析:sam中累加的值是1+1/(2*2)+1/(3*3)+…+1//(n*n),如果寫為1/(n*n),則會因為1和n都為整型,結(jié)果則為實型,將1變?yōu)?.0,結(jié)果則為實型。
37.E-R圖E-R圖解析:E-R圖是設(shè)計概念模型的有力工具。
38.43344334解析:程序?qū)⒆兞縜,b的值傳給函數(shù)swap的形參x,y,并在函數(shù)中對x,y的值進(jìn)行交換,所以在函數(shù)swap中輸出x,y的值4,3,由于c程序的函數(shù)是僧傳遞,實參a,b的值不會隨形參x,y的改變而改變,所以在主函數(shù)中輸出的a,b的值為3,4。
39.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個指向自身的結(jié)構(gòu)體指針。
40.5656解析:本題中a,b,c,d足實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
41.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。
第1次for循環(huán),p=a,p指向數(shù)組的第1個元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。
42.B
43.C
44.B解析:因為在循環(huán)中存在一條這樣的語句“if(n=4)break;”,所以循環(huán)變量n遞增到4的時候循環(huán)會被強(qiáng)行結(jié)束。故一共循環(huán)了5次,每次n的值分別為0、1、2、3、4。應(yīng)該選擇B。
45.B解析:本題考核的知識點是算法的性質(zhì)。算法是為解決某個特定問題而采取的確定的且有限的步驟,一個算法應(yīng)當(dāng)具有以下5個基本特性:1.有窮性,就是指一個算法應(yīng)當(dāng)包含有限個操作步驟。2.確定性,就是說算法中每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結(jié)果。3.有零個或多個輸入。4.可行性,就是說算法中指定的操作,都可以通過已經(jīng)實現(xiàn)的基本運算執(zhí)行有限次實現(xiàn),5.有一個或多個輸出。由此可知選項B不正確,所以,4個選項中選項B符合題意。
46.C解析:考查指向函數(shù)的指針變量的使用。在本題中,將函數(shù)的入口地址賦給指針后就可以用該指針調(diào)用函數(shù)了。
47.C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個具有N個屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點。
48.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
49.C解析:本題考查的知識點是運算符的優(yōu)先級.在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個選項中C正確。
50.D解析:本題考查數(shù)組的兩個知識點:①在C語言中,數(shù)組元素的個數(shù)是確定的,不允許隨機(jī)變動,數(shù)組定義好之后,它所能容納的元素的個數(shù)也就確定了;②同一個數(shù)組中所有元素的類型是一樣的。
51.A解析:本題中的else語句和if語句之間有兩條語句,并且未用大括號括起來,故編譯通不過。所以應(yīng)該選擇A。
52.B
53.C解析:本題考查的知識點是賦值語句的基本知識。在表達(dá)式的運算中,雙目賦值運算符的格式為“變量二表達(dá)式”,單目運算符一般形式為“運算符表達(dá)式”或“表達(dá)式運算符”。常量和表達(dá)式是不能被賦值的。選項A為復(fù)合表達(dá)式,首先計算(i=2,++i)的值,然后賦值給n,故選項A正確;選項B為簡單自加運算,故選項B正確;選項C在表達(dá)式++(i+1);中,(i+1)不是變量,該表達(dá)式的值為常量,而在++運算中,其運算對象必須為變量,故選項C錯誤;選項D中為復(fù)合賦值表達(dá)式,正確.所以應(yīng)當(dāng)選擇C。
54.A解析:本題考核的知識點是字符串的長度。字符數(shù)組中可以存放字符串,但字符數(shù)組的長度并不是字符串的長度,字符串的長度是指字符數(shù)組中存放的有效字符個數(shù),即,\'\\0\'之前的字符數(shù)。字符數(shù)組s中依次存放的字符是:\'\\\\'1'4'1'141'a'b'c'\\t\'和最后一個字符串結(jié)束標(biāo)記\'\\0\',故字符串的長度是9。所以,4個選項中A為所選。
55.A解析:局部變量在執(zhí)行到它所在的程序塊時產(chǎn)生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結(jié)束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結(jié)束,故選項B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。
56.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因為運算符“*”的優(yōu)先級高于“+”,所以輸出結(jié)果為p指向的元素1,然后加9,值為10。
57.A
58.A解析:C語言中,一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號括起來作為字符常量,字符常量的范圍是0~127。由于字符常量用單引號括起來,所以
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高端建筑材料供應(yīng)合同3篇
- 2025年度金融資產(chǎn)清算及轉(zhuǎn)讓協(xié)議合同3篇
- 2025年度農(nóng)家樂房屋租賃及鄉(xiāng)村旅游開發(fā)合同3篇
- 2024年中國激光切紙快速成型系統(tǒng)市場調(diào)查研究報告
- 2025年度棉花企業(yè)棉花銷售代理及運輸服務(wù)合同3篇
- 2025年度智能辦公空間個人租賃合同3篇
- 2024年中國水洗球粘土市場調(diào)查研究報告
- 2024年發(fā)光管汽車尾燈項目可行性研究報告
- 2024年汪清縣中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年中國智能彩色病理圖文分析儀市場調(diào)查研究報告
- 養(yǎng)老服務(wù)中心裝飾裝修工程施工方案
- 落地式腳手架監(jiān)理實施細(xì)則
- 上海市金山區(qū)2022-2023學(xué)年中考一模英語試題含答案
- 節(jié)水灌溉供水工程初步設(shè)計報告
- 【期末試題】河西區(qū)2018-2019學(xué)年度第一學(xué)期六年級數(shù)學(xué)期末試題
- 2022年總經(jīng)理年會發(fā)言稿致辭二
- 警綜平臺運行管理制度
- 立法學(xué)完整版教學(xué)課件全套ppt教程
- 簡約中國風(fēng)水墨山水工作總結(jié)通用PPT模板
- 礦山測量課程設(shè)計
- 藥廠生產(chǎn)車間現(xiàn)場管理-PPT課件
評論
0/150
提交評論