版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年四川省廣安市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下選項(xiàng)中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
2.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進(jìn)棧,元素進(jìn)?;虺鰲m樞蚴俏粗模铝行蛄兄?,不可能成為??諘r彈出的元素構(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}
3.擁有PC機(jī)并以撥號方式接入網(wǎng)絡(luò)的用戶需要配置()
A.CD-ROMB.ModemC.電話機(jī)D.鼠標(biāo)
4.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。
A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式
5.下列敘述中錯誤的是()。
A.C語言程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行過程中進(jìn)行的
B.預(yù)處理命令行的最后不能以分號表示結(jié)束
C.“#defmeMAX”是合法的宏定義命令行
D.在程序中,凡是以“#”開始的語句行都是預(yù)處理命令行
6.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.研究算法中的輸入和輸出的關(guān)系C.分析算法的效率以求改進(jìn)D.分析算法的易讀性和文檔性
7.
8.下列敘述中正確的是()。
A.順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間不一定是連續(xù)的
B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯Y(jié)構(gòu)只針對非線性結(jié)構(gòu)
C.順序存儲結(jié)構(gòu)能存儲有序表,鏈?zhǔn)酱鎯Y(jié)構(gòu)不能存儲有序表
D.鏈?zhǔn)酱鎯Y(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間
9.有以下函數(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)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個數(shù)
D.統(tǒng)計(jì)x和y所指字符串中相同的字符個數(shù)
10.設(shè)有說明:charw;intx;f1oaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為()。
A.floatB.charC.intD.double
11.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
12.算法分析的兩個主要方面是()。
A.空間復(fù)雜度和時間復(fù)雜度B.正確性和簡明性C.可讀性和文檔性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性
13.有如下程序段
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
程序運(yùn)行后輸出的結(jié)果是A.A.63
B.36
C.編譯出錯
D.00
14.
有如下程序:
main()
{intn[5]={0,0,0},i,k=2;
for(i=0;i&printf("%d\n",n[k]););
}
該程序的輸出結(jié)果是()。
A.不確定的值B.2C.1D.0
15.是哈希查找的沖突處理方法()。
A.求余法B.平均取中法C.二分法D.開放地址法
16.下列敘述中正確的是A.程序設(shè)計(jì)就是編制程序
B.程序的測試必須由程序員自己去完成
C.程序經(jīng)調(diào)試改錯后還應(yīng)進(jìn)行再測試
D.程序經(jīng)調(diào)試改錯后不必進(jìn)行再測試
17.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);當(dāng)執(zhí)行上述程序段時,從鍵盤上輸入555667777abc后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
18.在一個有頭結(jié)點(diǎn)的鏈隊(duì)列中,假設(shè)f和r分別為隊(duì)首和隊(duì)尾指針,則隊(duì)頭出隊(duì)的運(yùn)算是()。
A.q=f->next;f->next=f->next->next;free(q);
B.q=f;f->next=f->next->next;free(q);
C.f->next=f->next->next;q=f->next;free(q);
D.q=f->next->next;f=f->next;free(q);
19.使用二分查找算法在一個有序序列中查找一個元素的時間復(fù)雜度為()
A.O(N)B.O(logN)C.O(N*N)D.O(N*logN)
20.當(dāng)n=5時,函數(shù)輸出為()A.5B.11C.29D.10
二、2.填空題(20題)21.以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
doublefun(doublex){return(x*x-2*x+6);}
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun([6]);
y2=fun([7]);
printf("y1=%lf,y2=%lf\n",y1,y
22.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
while(s[length])
【】;
-i;
j=i
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
23.下列程序執(zhí)行后輸出的結(jié)果是【】。
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);
24.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊(duì)列都屬于【】。
25.以下程序的輸出結(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));}
26.下面程序的功能是輸出數(shù)組中最大的數(shù),由a指針指向該元素。請?zhí)羁铡?/p>
main()
{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b;
for(【】)
if(*a<*b)a=b;
printf("%d",*a);
}
27.函數(shù)count(head)統(tǒng)計(jì)鏈表的結(jié)點(diǎn)個數(shù),head為表頭指針,閱讀程序,要求將整個if語句改成while循環(huán)控制結(jié)構(gòu),其形式為【】。
#include<stdio.h>
intcount(NODE*head)
{intn=0;
if(head!=NULL)
do
{n++;
head=head->next;
}while(head!=NULL);
returnn;}
28.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對象稱為【】。
29.以下程序運(yùn)行后輸出結(jié)果是【】。
#include<stdio,h>
main()
{inta,b,c;
a=10;b:20;c=(a%b<1)‖(a/b>1);
printf("%d%d%d\n",a,b,c);
}
30.以下說明語句中,【】是結(jié)構(gòu)體類型名。
typedefstruct
{intn;
charch[8];
}PER;
31.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。
32.以下程序運(yùn)行后的輸出結(jié)果是【】。
structNODE
{
intnum;
stmctNODE*next;
};
main()
{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;
intsum=0;
s[0].next=s+1;
s[1].next=s+2;
s[2].next=s;
p=s
q=p->next;
r=q->next;
sum+=q->next->num;
sum+=r->next->next->num;
printf("%d\n",sum);
}
33.以下程序的輸出結(jié)果是【】。
main()
{intx=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
34.以下程序是求矩陣a,b的和,結(jié)果存入矩陣c中,并按矩陣形式輸出,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};
intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};
inti,j,c[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
c[i][j]=【】;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%3d",c[i][j]);
printf("\n");}}
35.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(S);
for(i=j(luò)0;s[i]!'\0';i++)
if(s[i]!='c')______;
s[j]='\0;
puts(S);
}
36.在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
37.以下程序的輸出結(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);
}
38.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負(fù)值。請?zhí)羁铡?/p>
My_cmp(char*s,char*t)
{while(*s==*t)
{if(*s==′\0)return0;
++s;++t;
}return【】;
}
39.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%f",PI);
40.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
三、1.選擇題(20題)41.算法的時間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)
42.以下四個選項(xiàng),不能看作一條語句的是()。
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
43.在計(jì)算機(jī)系統(tǒng)中,一個字長的二進(jìn)制位數(shù)為______。
A.8B.16C.32D.由CPU型號決定
44.在軟件工程中,白箱測試法可用于測試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是______。A.A.路徑的集合B.循環(huán)的集合C.目標(biāo)的集合D.地址的集合
45.模塊本身的內(nèi)聚是模塊獨(dú)立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強(qiáng)內(nèi)聚的—類是______。
A.順序性內(nèi)聚B.過程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚
46.C語言結(jié)構(gòu)體類型變量在程序運(yùn)行期間
A.TC環(huán)境在內(nèi)存中僅僅開辟一個存放結(jié)構(gòu)體變量地址的單元
B.所有的成員一直駐留在內(nèi)存中
C.只有最開始的成員駐留在內(nèi)存中
D.部分成員駐留在內(nèi)存中
47.若有以下類型說明語句:charw;intx;floaty,z;則表達(dá)式w*x+z-y的結(jié)果為______類型。
A.floatB.charC.intD.double
48.C語言規(guī)定如果調(diào)用fputc函數(shù)輸出成功,則返回值是()。
A.1B.輸出的字符C.0D.真
49.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+c-k值的類型為:
A.intB.doubleC.floatD.char
50.若有說明:inta[][4]={0,0};則下面不正確的敘述是()。
A.數(shù)組a的每個元素都可得到初值0
B.二維數(shù)組a的第一維大小為1
C.當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大小
D.只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到確定的初值
51.以下程序中函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進(jìn)行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是
A.22B.10C.34D.30
52.信息隱蔽的概念與下述哪一種概念直接相關(guān)()。
A.軟件結(jié)構(gòu)定義B.模塊獨(dú)立性C.模塊類型劃分D.模塊耦合度
53.已知inta=1,b=3則a^b的值為
A.3B.1C.2D.4
54.以下敘述中正確的是()。
A.用C語言實(shí)現(xiàn)的算法必須要有輸入和輸出操作
B.用C語言實(shí)現(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C語言程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C語言程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
55.有以下程序main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是
A.77B.88C.810D.1010
56.下列程序的輸出結(jié)果是______。main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}
A.0B.0.25C.0.5D.1
57.下列敘述中正確的是()。
A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個對象之間具有密切的聯(lián)系
B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個對象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個對象之間相對獨(dú)立,相互依賴性小
D.上述三種說法都不對
58.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
59.在函數(shù)scanf的格式控制中,格式說明的類型與輸入項(xiàng)的類型應(yīng)該對應(yīng)匹配。如果類型不匹配,系統(tǒng)將()。
A.不予接收B.并不給出出錯信息,但不能得到正確的數(shù)據(jù)C.能接收到正確輸入D.給出出錯信息,不予接收輸入
60.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
四、選擇題(20題)61.
62.
63.以下敘述中錯誤的是()。
A)對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出
B)數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C)當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界的出錯信息”
D)可以通過賦初值的方式確定數(shù)組元素的個數(shù)
64.算法的空間復(fù)雜度是指()。
A.算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)
65.(32)數(shù)據(jù)的存儲結(jié)構(gòu)是指()
A.數(shù)據(jù)所占的存儲空間量
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示
C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲方式
D.存儲在外存中的數(shù)據(jù)
66.有三個關(guān)系R、S和T如下:
則由關(guān)系R和s得到關(guān)系T的操作是()。
A.自然連接B.并C.交D.差
67.
有以下程序:
voidfun(char*a,char*b)
{a=b;(*a)++;}
main
{charc1=A,c2=a,*p1,*p2;
p1=&c1;p2=*c2;fun(p1,p2);
printf("%C%c\n",c1,c2);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.AbB.aaC.AaD.Bb
68.(40)將E-R圖轉(zhuǎn)換到關(guān)系模式時,實(shí)體與聯(lián)系都可以表示成()
A.屬性
B.關(guān)系
C.鍵
D.域
69.下列關(guān)于棧的描述中錯誤的是()。
A.棧是先進(jìn)先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針
70.在“文件包含,預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
71.已知:chara;intb;floatc;doubled;執(zhí)行語句“c=a+b+c+d;”后,變量c的數(shù)據(jù)類型是()。
A.intB.charC.floatD.double
72.有如下嵌套的if語句:
以下選項(xiàng)中與上述if語句等價的語句是()。
A.
B.
C.
D.
73.有以下程序段程序的輸出結(jié)果是()。
A.a=10b=50c=10
B.a=10b=50c=30
C.a=10b=30c=lO
D.a=50b=30c=50
74.
有以下程序:
main
{inta=0,b=l0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,C,d);
}
程序輸出()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯
75.
76.若有以下說明和定義,以下敘述中錯誤的是(
)。uniondt{
int
a;char
b;double
c;}data;A.兩個共用體變量之間可以相互賦值B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000D.共用體在初始化時只能用第一個成員的類型進(jìn)行初始化
77.下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inti,s=0;
for(i=1;i<10;i++)
if(!(i%2)&&!(i%3))s+=i;
printf("%d\n",s);
}A.4B.39C.45D.6
78.計(jì)算機(jī)能直接執(zhí)行的程序是()。
A.源程序B.目標(biāo)程序C.匯編程序D.可執(zhí)行程序
79.
80.若有定義語句:"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]
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:逐個比較P.q所指兩個字符串對應(yīng)位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的數(shù)組中,形成一個新的字符串。
例如,若主函數(shù)中a字符串為“aBCDeFgH”,b字符串為“Abed”,則C中的字符串應(yīng)為“aBcdeFgH”。請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是統(tǒng)計(jì)各年齡段的人數(shù)。N個年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放入主函數(shù)的age數(shù)組中。要求函數(shù)把0~9歲的人數(shù)存放在d[0]中,把10~19歲的人數(shù)存放在d[1]中,把20~29歲的人數(shù)存放在d[2]中,依此類推,把100歲(含100歲)以上年齡的人數(shù)都存放在d[10]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.D在選項(xiàng)中,\\019,以0開頭的數(shù)都為八進(jìn)制數(shù),而八進(jìn)制的表示數(shù)字是0~7,所以答案選擇D。
2.B
3.B
4.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。
5.A預(yù)處理是在程序編譯之前進(jìn)行的,所以A選項(xiàng)錯誤。故本題答案為A選項(xiàng)。
6.C
7.C
8.A解析:順序存儲結(jié)構(gòu)就是用一組地址連續(xù)的存儲單元依次存儲該線性表中的各個元素,鏈?zhǔn)酱鎯Y(jié)構(gòu)中各數(shù)據(jù)結(jié)點(diǎn)的存儲序號是不連續(xù)的,并且各結(jié)點(diǎn)在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致,所以選項(xiàng)A是正確的。兩者都可以存儲線性的、有序的邏輯結(jié)構(gòu),所以選項(xiàng)B、C不正確。順序結(jié)構(gòu)使用的是連續(xù)物理空間,鏈?zhǔn)浇Y(jié)構(gòu)可以使用零散的物理空間存儲,鏈?zhǔn)浇Y(jié)構(gòu)更靈活,不存在誰節(jié)約空間的說法,所以選項(xiàng)D不正確。
9.C本題中由循環(huán)條件可知遇到‘\\0’或x與y所指的字符的值不等中的一個條件時就結(jié)束,所以功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個數(shù)。
10.D
11.C算法具有的5個特性是:有窮性、確定性、可行性、有0個或多個輸入、有一個或多個輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。
12.A
13.B在本題中,程序首先定義了一個無返回值的函數(shù)fun,該函數(shù)帶有兩個整型的指針形參變量,在函數(shù)體中,首先定義一個整型指針變量k,然后試圖利用k來交換a和b的結(jié)果。但處理語句k=a;很明顯是對地址進(jìn)行賦值操作。在C語言中,指針變量作為函數(shù)參數(shù)時,可以改變被指向的變量的值,但不能改變指針變量本身的值,即我們可以改變實(shí)參指向的變量的值,不能使實(shí)參指向其他的變量。因此,本函數(shù)并不能交換形參所指向變量的結(jié)果。
在主函數(shù)中,首先定義了兩個整型變量a和b,并分別被初始化為3和6,然后定義兩個指針變量x和y,分別指向a和b,接著調(diào)用fun函數(shù),傳遞的實(shí)參為指針變量x和y,根據(jù)前面對fun函數(shù)的分析可知,調(diào)用該函數(shù)后并不能實(shí)現(xiàn)a和b數(shù)組的交換,因此,執(zhí)行輸出語句后,輸出的結(jié)果是36。本題正確答案選B。
14.D
\n本題for循環(huán)中,當(dāng)i=0時,判斷條件i&printf('%d\n',n[k]),此時i的值是0,輸出n[k]的值也為0,0&0結(jié)果還是0,條件不成立,退出循環(huán)。所以最后輸出結(jié)果為0。
\n
15.D
16.C解析:軟件設(shè)計(jì)的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件沒計(jì)是確定系統(tǒng)的物理模型。軟件測試即使用人工或自動手段來運(yùn)行或測定某個系統(tǒng)的過程,其日的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件調(diào)試后要進(jìn)行回歸測試,防止引進(jìn)新的錯誤。
17.Ascanf是格式輸入函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入指定的變量中。其中,在百分號(%)與格式碼之間的整數(shù)用于限制從對應(yīng)域讀入的最大字符數(shù)。所以j的值為55,y的值為566.0,字符數(shù)組name的值為7777abc。故本題答案為A選項(xiàng)。
18.A
19.B
20.C
21.
22.length++i<lengthlength++\r\ni<length解析:第一個循環(huán)極有可能是計(jì)算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到第i+n或最后一個間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。
23.1212解析:本題的第一個for循環(huán)用于給數(shù)組arr賦初值,第二個for循環(huán)用于求和運(yùn)算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
24.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類似,隊(duì)列也是線性表,可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu),所以帶鏈的隊(duì)列屬于線性結(jié)構(gòu)。
25.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強(qiáng)制轉(zhuǎn)換類型轉(zhuǎn)換運(yùn)算符,將一個表達(dá)式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。
本題可按部就班地逐步運(yù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
26.a=sb=s+1;b-s<sizeof(s)/sizeof(s[0]);b++a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++解析:題目要求輸出數(shù)組中最大的數(shù),所以要遍歷整個數(shù)組,而指針a用來指向最大數(shù),所以循環(huán)變量只有使用指針b。for初始化時,應(yīng)該先讓a指向第1個數(shù),然后讓b指向第2個數(shù),故循環(huán)初始化語句應(yīng)該為a=s,b=s+1或其他等價表達(dá)式。因?yàn)橐筨遍歷整個數(shù)組,故循環(huán)條件應(yīng)該為b-s<sizeof(s)/sizeof(s[0])或其他等價表達(dá)式。最后每次循環(huán)應(yīng)該讓b往后移動一位,故for的第3條語句應(yīng)該是++b、b++或其他等價形勢。所以本題應(yīng)填a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++或其他等價語句。
27.while(p!=NULL){n++;head=head→next;}while(p!=NULL){n++;head=head→next;}解析:do…while循環(huán)轉(zhuǎn)化為while循環(huán),循環(huán)體執(zhí)行的內(nèi)容應(yīng)該是一致的,不同的是do…while結(jié)構(gòu)是先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否滿足,而while循環(huán)則是先判斷循環(huán)條件是否滿足,滿足則執(zhí)行循環(huán)體。所以do…while循環(huán)結(jié)構(gòu)若想轉(zhuǎn)換為while循環(huán)結(jié)構(gòu),必須在do…while循環(huán)之前先對循環(huán)條件進(jìn)行一個判斷,即此題中的if(head!=NULL)。注意:3種循環(huán)結(jié)構(gòu)的比較。
28.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。
29.1020010200解析:程序中(a%b<1)||(a/b>1)的運(yùn)算順序?yàn)橄人憷ㄌ枴阈g(shù)運(yùn)算符→關(guān)系運(yùn)算符→邏輯運(yùn)算符。首先計(jì)算a%b=10,a/b=0,因?yàn)閍%b<1為假(0),a/b>1也為假(0),所以整個表達(dá)式的結(jié)果為假(0),最后輸出a,b,c的值為10200。
30.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構(gòu)體類型,此時,也可以用PER來定義變量。
31.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標(biāo)準(zhǔn)的調(diào)用形式應(yīng)該寫成:
p(double*)malloc(sizeof(double));
32.55解析:主函數(shù)首先聲明了一個結(jié)點(diǎn)數(shù)組s[3],并分別初始化其成員num為1、2、3,而成員next全部被初始化為'\\0'也就是0。下面又用三條語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分別將三個結(jié)點(diǎn)指向其后面一個結(jié)點(diǎn),而最后一個結(jié)點(diǎn)指向第1個結(jié)點(diǎn),構(gòu)造出一條單向循環(huán)鏈表。接下來用結(jié)點(diǎn)指針p=s即讓其指向s[0],然后讓q=p->next,即指向了s[1],r=q->next即讓r指向s[2],然后讓一個累計(jì)變量sum累加q->next->num和r->next->next->nm,因?yàn)閝指向s[1]所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最終輸出結(jié)果為5。
33.77解析:在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語句,該語句的執(zhí)行過程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回推到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,在回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。
34.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:此題是雙重for循環(huán)結(jié)構(gòu)應(yīng)用在了二維數(shù)組中。外層for循環(huán)用來控制二維數(shù)組的行,內(nèi)層for循環(huán)控制二維數(shù)組的列。
35.s[j++]=s[i]s[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過.j++將下標(biāo)加1,指向下一元素要存儲的位置。
36.驅(qū)動模塊驅(qū)動模塊解析:在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中,驅(qū)動模塊相當(dāng)于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實(shí)際測試結(jié)果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。
37.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(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。
38.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當(dāng)前字符的差返回,所以在空框處應(yīng)填入*s-*t,保證在s>t時,返回正值,當(dāng)s<t時,返回負(fù)值。
39.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進(jìn)行替換的。
40.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達(dá)式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個程序中a、b、c的值沒做任何改變。
41.C解析:算法的時間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語言、執(zhí)行算法程序時所使用的計(jì)算的工具以及程序員的水平無關(guān)。選項(xiàng)A錯誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時,其計(jì)算時間是不同的。選項(xiàng)B錯誤,因?yàn)樗惴ㄋ帉懙某绦蜷L度往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計(jì)語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項(xiàng)D錯誤,因?yàn)楦鶕?jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。
42.D解析:在if后面只能有一條語句,或一條復(fù)合語句,即用花括號將多條語句括起來。選項(xiàng)D)中沒有將兩條語句括起來,不能看成一條語句。
43.D解析:字長是指微機(jī)能直接處理二進(jìn)制信息的位數(shù),由CPU的類型和型號決定。
44.A解析:軟件的白盒測試方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試。此方法將程序看做是路徑的集合,故選項(xiàng)A正確。
45.D解析:內(nèi)聚性是一個模塊內(nèi)部各元素間彼此結(jié)合的緊密程度的度量。內(nèi)聚共有7類,它們之間的內(nèi)聚性由弱到強(qiáng)排列順序?yàn)椋号既粌?nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。
46.B解析:結(jié)構(gòu)體類型的變量在程序運(yùn)行期間要作為一個整體占用連續(xù)的內(nèi)存單元。
47.A解析:在進(jìn)行運(yùn)算時,不同類型的數(shù)據(jù)參加運(yùn)算,需要先將其轉(zhuǎn)換成同一類型的數(shù)據(jù),然后再進(jìn)行運(yùn)算。轉(zhuǎn)換的順序由低到高為:char,short→int→unsigned→long→double←float,故結(jié)果為float型。
48.B解析:調(diào)用fputc函數(shù)輸出成功,則返回值是輸出的字符。
49.B解析:雙目運(yùn)算中兩邊運(yùn)算量類型轉(zhuǎn)換規(guī)律:
運(yùn)算數(shù)1運(yùn)算數(shù)2轉(zhuǎn)換結(jié)果類型
短整型長整型短整型->長整型
整型長整型整型->長整型
字符型整型字符型->整型
有符號整型無符號整型有符號整型->無符號整型
整型浮點(diǎn)型整型->浮點(diǎn)型
在a/b的時候,a、b的類型不一致,根據(jù)類型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類型,之后的加、減類似。轉(zhuǎn)化規(guī)則為char,short->int->unsigned->long->double←float。
50.D解析:本題考查二維數(shù)組的基本概念。對于二維數(shù)組,只可以省略第一個括號中的常量表達(dá)式,而不能省略第二個括號中的常量表達(dá)式。數(shù)組中未賦初值的元素系統(tǒng)會自動對它們賦初值0。
51.A解析:本題考查的知識點(diǎn)是數(shù)組名作為函數(shù)參數(shù)及函數(shù)調(diào)用。reverse()數(shù)的功能是將具有n個元素的數(shù)組a反序存放。在主函數(shù)中調(diào)用語句是“reverse(b,8);”,實(shí)現(xiàn)的功能是把b數(shù)組的前八個元素逆置,所以b數(shù)組中依次存放的值為“8,7,6,5,4,3,2,1,9,10”。for循環(huán)了4次,分別把b[6]、b[7]、b[8]和b[9]的值(分別是2、1、9、10)加到了s中,s的結(jié)果是22,所以最后輸出的s值為22。所以4個選項(xiàng)中A正確。
52.B解析:信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。衡量軟件的模塊獨(dú)立性的度量標(biāo)準(zhǔn)是耦合性和內(nèi)聚性。一個模塊的耦合性越強(qiáng),則該模塊的模塊獨(dú)立性越強(qiáng)。
53.C解析:^是按位異或運(yùn)算,如果對應(yīng)位不同則結(jié)果為1,相同則為0。
54.C解析:一個算法應(yīng)該具有以下5個特性:有窮性、確定性、可行性、有零個或多個輸入、有一個或多個輸出。因此一個算法可以沒有輸入(程序的功能確定),但必須要有輸出,沒有輸出的算法是沒有意義的。
55.C解析:本題考核的知識點(diǎn)是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8.定義時b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個選項(xiàng)中選項(xiàng)C符合題意。
56.C
57.C解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對象是面向?qū)ο蟮能浖幕灸K,它是由數(shù)據(jù)及可以對這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對象是以數(shù)據(jù)為中心的,操作圍繞對其數(shù)據(jù)所需做的處理來設(shè)置,沒有無關(guān)的操作。從模塊的獨(dú)立性考慮,對象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。由于完成對象功能所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對象內(nèi)部,它與外界的聯(lián)系自然就比較少,所以,對象之間的耦合通常比較松。所以,選項(xiàng)A與B錯誤,選項(xiàng)C正確。
58.B解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。數(shù)據(jù)庫管理系統(tǒng)建立在操作系統(tǒng)之上,實(shí)施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過數(shù)據(jù)庫管理系統(tǒng)。另外,數(shù)據(jù)庫管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫的安全保護(hù)工作,按照數(shù)據(jù)庫管理員所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。
59.B解析:在scanf函數(shù)的格式控制中,格式說明的類型與輸入項(xiàng)的類型必須一一對應(yīng)匹配,如不匹配將導(dǎo)致數(shù)據(jù)輸入出現(xiàn)錯誤,但是系統(tǒng)并不報(bào)錯。
60.B軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)接口設(shè)計(jì)和過程設(shè)計(jì)。其中
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廠房租賃合同違約責(zé)任協(xié)議范本3篇
- 2025年度老舊建筑拆除與裝修一體化合同范本4篇
- 2025年度環(huán)保產(chǎn)品試用合同范本4篇
- 2025年茶樓與茶藝表演團(tuán)隊(duì)合作演出合同4篇
- 2025年度廠房物業(yè)管理及設(shè)施設(shè)備更新合同4篇
- 二零二五年度茶樓轉(zhuǎn)讓及茶藝文化體驗(yàn)館合作合同范本:茶樓與茶藝文化體驗(yàn)館合作轉(zhuǎn)讓協(xié)議
- 二零二五年度云計(jì)算基礎(chǔ)設(shè)施建設(shè)項(xiàng)目合同協(xié)議書
- 2025年度智能空調(diào)銷售及智能控制系統(tǒng)安裝合同
- 二零二五年度國際集裝箱船員雇傭合同
- 2025年度金融科技產(chǎn)品經(jīng)理雇傭勞動合同
- 齲病的治療 深齲的治療
- GB/T 35005-2018集成電路倒裝焊試驗(yàn)方法
- 投標(biāo)報(bào)價明顯低于采購預(yù)算價說明函
- 福建師范大學(xué)(答案)課程考試2023年2月《刑事訴訟法》作業(yè)考核試題
- 寫人事物景作文課件
- 廠級安全培訓(xùn)資料
- 中國藥科大學(xué)《藥物化學(xué)》教學(xué)日歷
- 露天礦山課件
- 經(jīng)濟(jì)效益證明(模板)
- 銀行卡凍結(jié)怎么寫申請書
- 果樹蔬菜病害:第一章 蔬菜害蟲
評論
0/150
提交評論