版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022年黑龍江省佳木斯市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、2.填空題(10題)1.數(shù)據(jù)字典是各類(lèi)數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過(guò)程。
2.設(shè)一棵完全二叉樹(shù)共有700個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
3.以下程序運(yùn)行后的輸出結(jié)果是()。
main()
{intx,a=1,b=2,c=3,d=4;
{intx,a=1,b=2,c=3,d=4;
x=(a<B)?a:b;x=(a<C)?x:C;x=(d>x)?x:d;
printf("%d\n",x);
}
4.以下程序的輸出結(jié)果是【】。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{
inti=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
5.軟件定義時(shí)期主要包括______和需求分析兩個(gè)階段。
6.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開(kāi),由此文件指針fr指向該文件,則程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fr;charstr[40];
…
fgets(str,5,fr);
printf("%s\n",str);
felose(fr);
}
7.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%f",PI);
8.在面向?qū)ο蟮脑O(shè)計(jì)中,用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求稱(chēng)為【】。
9.下面程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
intf(inta[],intn)
{if(n>1)
returna[0]+f(a+1,n-1);
else
returna[0];
}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},s;
s=f(aa+2,4);printf("%d\n",s);
}
10.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{chara[]="labchmfye",t;
inti,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;
}
puts(a);
printf("\n");
}
二、單選題(10題)11.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲(chǔ)結(jié)C.元素按值有序且采用順序存儲(chǔ)結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
12.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。
A.存儲(chǔ)在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲(chǔ)空間量C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示
13.下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{iuta=2,b=3,p;
p=f(a,B)
printf("%d",p);
}
intf(a,b)
{intc;
if(a>B)c=1;
e1Seif(a==B)c=0;
else(3=-1;
return(C);
}
A.-1B.0C.1D.2
14.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9
15.以下選項(xiàng)中的表達(dá)式調(diào)用庫(kù)函數(shù)依次求-4.5的絕對(duì)值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調(diào)用是()
A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)
16.標(biāo)準(zhǔn)庫(kù)函數(shù)fgets(str,n,fp)的功能是()。A.從fp所指的文件中讀取長(zhǎng)度不超過(guò)n-1的字符串存入指針str所指的內(nèi)存
B.從fp所指的文件中讀取長(zhǎng)度為n的字符串存入指針str所指的內(nèi)存
C.從fp所指的文件中讀取n個(gè)字符串存入指針str所指的內(nèi)存
D.從fp所指的文件中讀取長(zhǎng)度為n-1的字符串存入指針str所指的內(nèi)存
17.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
18.
19.數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是()。A.數(shù)據(jù)定義語(yǔ)言B.數(shù)據(jù)管理語(yǔ)言C.數(shù)據(jù)操縱語(yǔ)言D.數(shù)據(jù)控制語(yǔ)言
20.設(shè)棧S和隊(duì)列Q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5和e6依次通過(guò)棧S,一個(gè)元素出棧后即進(jìn)隊(duì)列Q,若6個(gè)元素出隊(duì)的序列是e2,e4,e3,e6,e5,e1,則棧S的容量至少應(yīng)該是()。
A.6B.4C.3D.2
三、程序設(shè)計(jì)題(10題)21.請(qǐng)編寫(xiě)函數(shù)proc(),該函數(shù)的功能是:將str所指字符串中ASCⅡ值為偶數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為aBcdef9789,其中字符8的ASCⅡ碼值為偶數(shù)……字符8的ASCⅡ碼值為偶數(shù)……都應(yīng)當(dāng)刪除,其他依此類(lèi)推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是ace979。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
22.編程將文件read.txt中的字符讀出顯示到屏幕上。
23.請(qǐng)編寫(xiě)一個(gè)函數(shù)voidproc(intm,intk,intxxE3),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入所指的數(shù)組中。例如,若輸入206,則應(yīng)輸出232931374143。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
24.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放人結(jié)構(gòu)體數(shù)組stu中。請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是:函數(shù)返回指定成績(jī)的學(xué)生數(shù)據(jù),指定的成績(jī)?cè)谥骱瘮?shù)中輸入。若沒(méi)找到指定的成績(jī),在結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績(jī)置-1,作為函數(shù)值返回。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫(xiě)的若干語(yǔ)句。試題程序:
25.三個(gè)整數(shù)a、b、c,由鍵盤(pán)輸入,輸出其中最大的一個(gè)數(shù)。
26.請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:計(jì)算并輸出下列多項(xiàng)式值。S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)例如,若主函數(shù)從鍵盤(pán)給n輸入20后,則輸出為s=0.680803。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
27.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號(hào)全部刪除,中間和后面的*號(hào)不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
28.M名學(xué)生的成績(jī)已在主函數(shù)中放人一個(gè)帶頭結(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭結(jié)點(diǎn)。請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是:找出學(xué)生的最高分,由函數(shù)值返回。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
29.…請(qǐng)編寫(xiě)函數(shù)。fun能是:判斷形參n中的正整數(shù)是幾位數(shù)(輸入數(shù)據(jù)的位數(shù)不超過(guò)4位),并將結(jié)果通過(guò)函數(shù)值返回。例如:若輸入的數(shù)據(jù)為l23,則輸出結(jié)果為:輸入的數(shù)字是3位。注意:部分源程序存在PROGl.C中,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所縮寫(xiě)的若干語(yǔ)句。試題程序:
30.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是:使字符串中前部的*號(hào)不得多余m個(gè);若多余m個(gè),則刪除多余的*號(hào);若少于或等于m個(gè),則什么也不做,字符串中間和尾部的*號(hào)不刪除。例如,字符串中的內(nèi)容為****A*BC*DEF*G****,若m的值為2,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是**A*BC*DEF*G****;若m的值為4,則字符串中的內(nèi)容仍為****A*BC*DEF*G****。n的值在主函數(shù)中輸入。在編寫(xiě)函數(shù)時(shí),不得使用c語(yǔ)言提供的字符串函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
四、2.程序修改題(10題)31.給定程序MODII.C中函數(shù)fun的功能是:把主函數(shù)中輸入的3個(gè)數(shù),最大的放在a中,最小的放在c中,中間的放在b中。
例如,輸入的數(shù)為:551234,輸出結(jié)果應(yīng)當(dāng)是:a=55.0,b=34.0,c=12.0。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
32.給定程序MODll.C中函數(shù)fun的功能是:計(jì)算n的5次方的值(規(guī)定n的值大于2、小于8),通過(guò)形參指針傳回主函數(shù);并計(jì)算該值的個(gè)位、十位、百位上數(shù)字之和作為函數(shù)值返回。
例如,7的5次方是16807,其低3位數(shù)的和值是15。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
33.下列給定程序中,函數(shù)fun()的功能是;利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入到前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入到前3個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu).
試題程序:
#include<String.h>
#include<stdio.h>
#defineN80
voidinsert(char*aa)
{ihti,j,n;charch;
n=strlen(aa);
for(i=1;i<n;i++)
/**********************************/
{c=aa[i];
j=i-1;
while((j>=0)&&(ch<aa[j]))
{aa[j+l]=aa[j];
j--;
}
aa[j+l]=ch;
}
}
main()
{chara[N]="QWERTYUIOPASDFGHJKIMNBVCXZ";
inti;
printf("Theoriginalstring:%s\n",a);
insert(a);
printf("Thestringaftersorting:
%s\n\n",a);
}
34.給定程序MODll.C中函數(shù)fun的功能是:求三個(gè)數(shù)的最小公倍數(shù)。
例如,給主函數(shù)中的變量x1、x2、x3分別輸入15112,則輸出結(jié)果應(yīng)當(dāng)是:330。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
35.下列給定程序中,函數(shù)fun()的功能是:求整數(shù)x的y次方的低3位值。例如,整數(shù)5的6次方為15625,此值的低3位值為6250
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
longfun(intx,inty,long*p)
{inti;
longt=1;
/**************found***************/
for(i=1;i<y;i++)
t=t*x;
*p=t;
/**************found***************/
t=t/1000;
returnt;
}
main()
{longt,r;intx,y;
printf("\nInputxandy:");scanf
("%1d%1d",&x,&y);
t=fun(x,y,&r);
printf("\n\nx=%d,y=%d,r=%1d,last=
%1d\n\n",x,y,r,t);
}
36.下列給定程序中,函數(shù)fun()的功能是逐個(gè)比較a,b兩個(gè)字符串對(duì)應(yīng)位置中的字符,把ASCII值小或相等的字符依次存放到c數(shù)組中,形成一個(gè)新的字符串。
例如:a中的字符串為fshADfg,b中的字符串為sdAEdi,則c中的字符串應(yīng)為fdAADf。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<strinq.h>
voidfun(char*p,char*q,char*c)
{intk=0;
while(*p||*q)
/**********found**************/
{if(*p<=*q)
c[k]=*q;
elsec[k]:*p;
if(*p)p++;
if(*q)q++;
/**+**********found**************/
k++
}
}
main()
{chara[10]="fshADfg",b[10]="sdAEdi",
c[80]={'\0');
fun(a,b,c);
printf("Thestringa:");puts(a);
printf("Thestringb:");puts(b);
printf("Theresult:");puts(c);
}
37.下列給定程序中,函數(shù)fun()的功能是:根據(jù)整型形參n,計(jì)算如下公式的值。
A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=(1/(1+A(n-1))
例如,若p=10,則應(yīng)輸出0.617977。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)mah函數(shù),不得增行或刪行,也不得更改程序的蛄構(gòu).
試題程序:
#include<conio.h>
#include<stdio.h>
/**************found********************/
ihtfun(ihtn)
{floatA=l;inti;
/**************foudn********************/
for(i=2;i<n;i++)
A=1.0/(i+A);
returnA;
}
main()
{intn;
clrscr();
printf("\nPleaseentern:");
$canf("%d",&n);
printf("A%d=%lf\n",n,fun(n));
}
38.下列給定程序中函數(shù)fun()的功能是:將長(zhǎng)整型數(shù)中每一位上為偶數(shù)的數(shù)依次逆向取出,構(gòu)成一個(gè)新數(shù)放在t中。高位在低位,低位在高位。例如當(dāng)s中的數(shù)為25846513時(shí),t中的數(shù)為6482。請(qǐng)改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<conio.h>
voidfun(longS,long*t)
{
intd;
longsl=l,i=1;
*t=0;
while(s/i>0)
i=i*10;
i=i/10;
while(s>0)
{
d=s/i
/*************found*************/
if(d%2!=0)
{
/*************found*************/
t=d*sl+t;
sl*=l0;
}
S=S%i;
i=i/10;
}
}
main()
{
longS,t;
clrscr();
printf("\nPleaseenterS:");
scanf("%ld",&s);
fun(S,&t);
printf("Theresultis:%ld\n",t);
}
39.給定程序MODll.C中函數(shù)fun的功能是:對(duì)N名學(xué)生的學(xué)習(xí)成績(jī),按從高到低的順序找出前m(m≤10)名學(xué)生來(lái),并將這些學(xué)生數(shù)據(jù)存放在一個(gè)動(dòng)態(tài)分配的連續(xù)存儲(chǔ)區(qū)中,此存儲(chǔ)區(qū)的首地址作為函數(shù)值返回。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
40.下列給定程序中,fun()函數(shù)的功能是:根據(jù)形參m,計(jì)算下列公式的值。
t=-1+1/2+1/3+1/4+…+1/m
例如,若輸入5,則應(yīng)輸出2.283333。
請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<stdio.h>
doublefun(intm)
{
doublet=1.0;
inti;
for(i=2;i<=m;i++)
/*************found**************/
t+=1.0/k;
/*************found**************/
returni;
}
main()
{intm;
clrscr();
printf("\nPleaseenterlintegernumber:");
scanf("%d",&m);
printf("\nTheresultis%1f\n",fun(m));
}
五、程序改錯(cuò)題(2題)41.給定程序中,函數(shù)proc()的功能是:使數(shù)組中的元素的值增加10倍。修改其中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
42.下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有大寫(xiě)字母'F'。
請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、操作題(2題)43.以下程序的輸出結(jié)果是【】。
main()
{charc='z';
printf("%c",c-25);}
44.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個(gè)最大值作為函數(shù)值返回,并通過(guò)形參傳回此最大值所在的行下標(biāo)。請(qǐng)?zhí)羁铡?/p>
#defineN3
#defineM3
select{inta[N][M],int*n;
{inti,j,row=l,eolum=l;
for(i=0;i<N;i++
forj=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j:}
*n=______;
return______;
}
main()
{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj
max=select(a,&n);
printf("max=%d,line=%d\n",max.n;
}
參考答案
1.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)
2.350350解析:在任意一棵二叉樹(shù)中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。在根據(jù)完全二叉樹(shù)的定義,在一棵完全二叉樹(shù)中,最多有1個(gè)度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹(shù)具有n個(gè)結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹(shù)中有n/2個(gè)葉子結(jié)點(diǎn)以及n/2-1個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹(shù)中有[n/2]+1個(gè)葉子結(jié)點(diǎn)以及[n/2]個(gè)度為2的結(jié)點(diǎn),沒(méi)有度為1的結(jié)點(diǎn)。本題中,完全二叉樹(shù)共有700個(gè)結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹(shù)中有350個(gè)葉子結(jié)點(diǎn)以及349個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。
3.11解析:條件運(yùn)算表達(dá)式:“表達(dá)式1?表達(dá)式2:表達(dá)式3”,但表達(dá)式1的值為非0時(shí),此時(shí)表達(dá)式2的值就是整個(gè)條件表達(dá)式的值,反之為表示式3的值。解析易知結(jié)果為1。
4.1616解析:首先用j和MCRA(i)替換MCRB(n,m)中的參數(shù)n和m,變成2*MCRA(j)+MCRA(i),再用j和i替換MCRA(m)中的參數(shù)m,變成2*2*j+2*i=2*2*3+2*2=16。
5.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個(gè)階段:①軟件定義階段:可行性研究和需求分析;②軟件開(kāi)發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。
6.HellHell解析:文件的字符串讀寫(xiě)函數(shù)fgets()有3個(gè)參數(shù),第三個(gè)參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個(gè)參數(shù)是一個(gè)整數(shù)(假設(shè)為n),表示從文件中讀取n-1個(gè)字符并在其后加一個(gè)'0',第一個(gè)參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中??梢?jiàn)本題的輸出結(jié)果為:Hell。
7.PI=3.14159PI=3.14159解析:本題先定義了一個(gè)宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語(yǔ)言規(guī)定:雙引號(hào)中的宏名是不進(jìn)行替換的。
8.消息消息解析:在面向?qū)ο蠹夹g(shù)中,主要用到對(duì)象(object)、類(lèi)(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求。
9.本題主要考查函數(shù)的嵌套調(diào)用和數(shù)組名作為實(shí)參。實(shí)際程序運(yùn)行結(jié)果應(yīng)為aa[2]+aa[3]+aa[4]+aa[5]=18。\r\n\r\n
10.j+=2a[i]>a[j]j+=2\r\na[i]>a[j]解析:由于要對(duì)偶數(shù)位進(jìn)行排位,所以空格處應(yīng)填。j+2,空13處是一個(gè)排序算法中的判斷語(yǔ)句,經(jīng)過(guò)分析后應(yīng)該填a[i]>a[j]。
11.C
12.D數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)則是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的物理實(shí)現(xiàn),有時(shí)也稱(chēng)作數(shù)據(jù)的物理結(jié)構(gòu)。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構(gòu)只涉及到數(shù)據(jù)之間抽象的數(shù)學(xué)關(guān)系。存儲(chǔ)結(jié)構(gòu)則涉及到如何在計(jì)算機(jī)中通過(guò)對(duì)數(shù)據(jù)的物理存儲(chǔ)進(jìn)行組織來(lái)表達(dá)數(shù)據(jù)元素之間的邏輯關(guān)系。比如在線性表的順序存儲(chǔ)中是利用物理存儲(chǔ)空間上的連續(xù)性來(lái)表達(dá)線性表中數(shù)據(jù)的前后件關(guān)系;在線性表的鏈?zhǔn)酱鎯?chǔ)中是通過(guò)指針域構(gòu)成的邏輯鏈條來(lái)表達(dá)數(shù)據(jù)的前后件關(guān)系。一般的,一種數(shù)據(jù)的邏輯結(jié)構(gòu)對(duì)應(yīng)的物理實(shí)現(xiàn),即數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不止一種。因此選項(xiàng)D正確。
13.A解析:本題考查ifelse語(yǔ)句。在intf(a,B)中:第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對(duì)的else語(yǔ)句:第二個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對(duì)的else語(yǔ)句,c=-1。
14.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語(yǔ)句為p[5],由數(shù)組a可知輸出的為6。
15.C
16.Afgets函數(shù)的功能是從fp所指文件中讀入n-1個(gè)字符放入以str為起始地址的空間內(nèi),讀取長(zhǎng)度不超過(guò)n-1,讀入結(jié)束后,自動(dòng)在最后添加’\\0’,選項(xiàng)A正確。本題答案為A選項(xiàng)。
17.C解析:解答本題,首先要明白在對(duì)指針進(jìn)行加、減運(yùn)算的時(shí)候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個(gè)存儲(chǔ)單元長(zhǎng)度,而1個(gè)存儲(chǔ)單元長(zhǎng)度占多少存儲(chǔ)空間,應(yīng)該視具體情況而定。如果基本類(lèi)型是int型,移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移2個(gè)字節(jié),如果基本類(lèi)型是float型,移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。
18.D
19.AA。數(shù)據(jù)定義語(yǔ)言(DDL)是集中負(fù)責(zé)數(shù)據(jù)庫(kù)模式定義與數(shù)據(jù)庫(kù)對(duì)象定義的語(yǔ)言。數(shù)據(jù)操縱語(yǔ)言(DML)是指用來(lái)查詢(xún)、添加、修改和刪除數(shù)據(jù)庫(kù)中數(shù)的語(yǔ)句。數(shù)據(jù)控制語(yǔ)言(DCL)是用來(lái)設(shè)置或者更改數(shù)據(jù)為用戶(hù)或角色權(quán)限的語(yǔ)句。據(jù)此,本題正確答案為選項(xiàng)A。
20.C
21.
【解析】要把字符串str中ASCⅡ碼值為偶數(shù)的字符刪除,需要判斷字符串str中每一個(gè)字符的ASCⅡ值,將ASCⅡ碼值為奇數(shù)的字符放入字符串t中,ASCⅡ碼值為偶數(shù)的字符不予處理。最后為新的字符串t加上結(jié)束符。
22.\n#include'stdio.h'
\nmain
\n{intc;
\nFILE*fp;
\nfp=open('read.txt','r');
\nc=fgetc(fp);
\nwhile(c!=\\n)
\n{putchar(c);
\nc=fgetcr(fp);
\n}}
\nfclose;}\n
23.
【解析】要將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入所指的數(shù)組中,首先應(yīng)該判斷大于整數(shù)m且緊靠m的整數(shù)是否為素?cái)?shù)。將緊靠m且為素?cái)?shù)的k個(gè)整數(shù)放入數(shù)組xx中。
24.
【解析】要返回指定成績(jī)的學(xué)生數(shù)據(jù),首先應(yīng)該將所有學(xué)生的成績(jī)與指定成績(jī)相比較。如果有學(xué)生的成績(jī)與指定成績(jī)相等,則將該學(xué)生的記錄返回給主函數(shù),否則將學(xué)號(hào)置成空串,成績(jī)置一l返回給主函數(shù)。
25.\n\tmain
\n{inta,b,c;
\nprintf(“請(qǐng)輸入三個(gè)整數(shù):”);
\nscanf(“%d,%d,%d”,&a,&b,&c);
\nif(aif(belseprintf(“max=%d\\n”,b);
\nelseif(aelseprintf(“max=%d\\n”,a);}
\n
26.
【解析】由題目中所給的表達(dá)式可知,多項(xiàng)式的值為n項(xiàng)表達(dá)式的和。可以利用n次循環(huán)求出n項(xiàng)表達(dá)式的值,求和放在變量s中。最后將多項(xiàng)式的值返回到主函數(shù)當(dāng)中。
27.\n\tvoidproc(char*str)\n\n\n\t{\n\n\n\tchar*p=str:\n\n\n\twhile(*p==*)p++;//通過(guò)P的移動(dòng)來(lái)達(dá)\n\n\n\t到使P指向第一個(gè)不是*號(hào)的字符\n\n\n\tfor(;*p!=\0
;p++,str++)//把從第一個(gè)\n\n\n\t不是*號(hào)的字符放到a中‘\n\n\n\t*str=*P:\n\n\n\t*str=\0
;//最后用\0作為字符串結(jié)束標(biāo)志\n\n\n\t}\n\n\n\t【解析】題目中要求將字符串中的前導(dǎo)*號(hào)全部刪除首先將指針p移動(dòng)到第一個(gè)不是*的字符,將指針P之后的字符放入原來(lái)的字符串中,并為新的字符串添加結(jié)束符。\n
28.
【解析】要找出學(xué)生的最高分,就要比較所有學(xué)生的成績(jī)。定義一個(gè)變量max用來(lái)存放學(xué)生的最高分,初始化為第一個(gè)學(xué)生的成績(jī),依次與其后的學(xué)生成績(jī)相比較,最后將得到的最高分返回主函數(shù)。
29.
【考點(diǎn)分析】主要考察考生對(duì)循環(huán)跳出的條件的理解,以及理解取數(shù)字位數(shù)的方法?!窘忸}思路】通過(guò)對(duì)指定的多位數(shù)每次除以10,去掉最后一位,直到為0結(jié)束,使用臨時(shí)變量來(lái)統(tǒng)計(jì)一個(gè)多位數(shù)的位數(shù)。
30.
【解析】題目中要求字符串前部的*不得多于m,首先要計(jì)算出字符串前部的*號(hào)的個(gè)數(shù),與變量m進(jìn)行比較。當(dāng)字符串前部的*多于m個(gè)時(shí),刪除多余的*。規(guī)定不能用字符串函數(shù)處理,可以通過(guò)移動(dòng)字符串的首指針來(lái)實(shí)現(xiàn)。
31.(1)f1oatk;(2)if(*a<*c)(1)f1oatk;(2)if(*a<*c)解析:本題中函數(shù)的功能是把主函數(shù)中輸入的3個(gè)數(shù),最大的放在a中,最小的放在c中。對(duì)三個(gè)數(shù)進(jìn)行兩兩比較,實(shí)現(xiàn)函數(shù)功能。
32.(1)d=1;s=0;(2)d=d/10;(1)d=1;s=0;(2)d=d/10;解析:本題中函數(shù)的功能是計(jì)算n的5次方的值(規(guī)定n的值大于2、小于8),通過(guò)形參指針傳回主函數(shù);并計(jì)算該值的個(gè)位、十位、百位上數(shù)字之和作為函數(shù)值返回。本題解題過(guò)程首先是求5次方,然后對(duì)結(jié)果進(jìn)行截取以及求和。
33.錯(cuò)誤:c=aa[i]正確:ch=aa[i];錯(cuò)誤:c=aa[i]正確:ch=aa[i];解析:對(duì)長(zhǎng)度為n的數(shù)組元素進(jìn)行排列,可先對(duì)數(shù)組的前m-1項(xiàng)進(jìn)行排序,之后再對(duì)前m項(xiàng)進(jìn)行排序,如此循環(huán)直到數(shù)組全部元素完成排序。對(duì)前m項(xiàng)的子數(shù)列進(jìn)行排序的方法是,將該子數(shù)列的末尾元素與前m-1項(xiàng)的元素相比較,由于前m-1項(xiàng)已經(jīng)完成排序,可以找到某一位置,使得將該末尾元素插入該位置之后,前m項(xiàng)仍然保持升序。這樣循環(huán)后,就可以得到全部元素的排序。
34.(1)intfun(intxintyintz)(2)returnj;(1)intfun(intx,inty,intz)(2)returnj;解析:本題中函數(shù)的功能是求三個(gè)數(shù)的最小公倍數(shù)。fun函數(shù)辛接收的值能同時(shí)被x、y、z除盡的最小數(shù)就是它們的最小公倍數(shù)。
35.(1)錯(cuò)誤:for:(i=1;i<y;i++)正確:for(i=1;i<=y;i++)(2)錯(cuò)誤:t=t/1000;正確:t=t%1000;(1)錯(cuò)誤:for:(i=1;i<y;i++)正確:for(i=1;i<=y;i++)\r\n(2)錯(cuò)誤:t=t/1000;正確:t=t%1000;解析:我們先用簡(jiǎn)單的思想理解一下該程序,如果當(dāng)x=y=1時(shí),程序的問(wèn)題出在哪兒?很簡(jiǎn)單吧,所以for(i=1;i<y;i++)的循環(huán)條件應(yīng)該是for(i=1;i++),另外,t=t/1000;中的錯(cuò)誤是混淆了“/”和“%”的定義,對(duì)這樣的細(xì)節(jié)問(wèn)題務(wù)必注意。
36.(1)錯(cuò)誤:{if(*P<=*q)正確:{if(*p>=*q)(2)錯(cuò)誤:k++正確:k++;(1)錯(cuò)誤:{if(*P<=*q)正確:{if(*p>=*q)\r\n(2)錯(cuò)誤:k++正確:k++;解析:錯(cuò)誤1:依題意,把ASCII
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生秋季預(yù)防傳染病
- 水和鈉代謝紊亂病人的護(hù)理
- 常見(jiàn)危機(jī)預(yù)案的臨床應(yīng)用
- 上海交通職業(yè)技術(shù)學(xué)院《動(dòng)物遺傳學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山西金融職業(yè)學(xué)院《機(jī)械制造基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 設(shè)備維修保養(yǎng)合同模板6篇
- 寧夏職業(yè)技術(shù)學(xué)院《應(yīng)用流體力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京信息工程大學(xué)《生理學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度養(yǎng)老護(hù)理員保姆雇傭服務(wù)協(xié)議
- 二零二五年度2025年度文化創(chuàng)意產(chǎn)業(yè)雇傭合同書(shū)
- 中華人民共和國(guó)殘疾評(píng)定表
- 小學(xué)科學(xué)學(xué)情分析報(bào)告總結(jié)
- 2024年國(guó)考行測(cè)真題-言語(yǔ)理解與表達(dá)真題及完整答案1套
- 2024屆高考數(shù)學(xué)復(fù)習(xí) 立體幾何考情分析及備考策略
- 基于課程標(biāo)準(zhǔn)的學(xué)生創(chuàng)新素養(yǎng)培育的學(xué)科教學(xué)改進(jìn)研究課題申報(bào)評(píng)審書(shū)
- 醫(yī)療人員廉潔從業(yè)九項(xiàng)準(zhǔn)則
- 健康中國(guó)產(chǎn)業(yè)園規(guī)劃方案
- (2024年)二年級(jí)上冊(cè)音樂(lè)
- 2024屆高考英語(yǔ)一輪復(fù)習(xí)讀后續(xù)寫(xiě)脫險(xiǎn)類(lèi)續(xù)寫(xiě)講義
- ISO13485內(nèi)部審核檢查表+內(nèi)審記錄
- 培訓(xùn)費(fèi)收款收據(jù)模板
評(píng)論
0/150
提交評(píng)論