




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年甘肅省嘉峪關(guān)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、2.填空題(10題)1.下列程序的運(yùn)行結(jié)果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",-i);
}
2.以下程序運(yùn)行后的輸出結(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);
}
3.設(shè)a、b、c為int型變量,且a=10、b=5、c=1,則執(zhí)行完以下語(yǔ)句,a的值變?yōu)椤尽俊?/p>
a/=10-(++b)-(c--);
4.以下程序運(yùn)行后的輸出結(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");
}
}
5.以下程序通過(guò)函數(shù)指針p調(diào)用函數(shù)fun,請(qǐng)?jiān)谔羁諜趦?nèi)寫出定義變量p的語(yǔ)句。
voidfun(intx,int*y)
{……}
main()
{inta=10,b=20;
【】;/*定義變量p*/
p=fun;p(&a,&b);
}
6.下列程序的運(yùn)行結(jié)果為【】。
main()
{intx=2,y,z;
x*=3+1;
printf("%d,",x++);
x+=y=z=5;
printf("%d,",x);
K=y==Z;
printf{"%d\n",x);
}
7.下列程序執(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);
}
8.以下條件表達(dá)式可計(jì)算:1+|a|的值,請(qǐng)?zhí)羁?。a>=0?【】:【】
9.以下程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){intf,f1,f2,i;f1=0;f2=1;printf("%d%d",f1,f2);for(i=3;i<=5;i++){f=-f1+f2,printf("%d",f);f2=f1;f1=f;}printf("\n");}
10.數(shù)據(jù)模型是用來(lái)描述數(shù)據(jù)庫(kù)的結(jié)構(gòu)和語(yǔ)義的,數(shù)據(jù)模型有概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型兩類,E-R模型是【】
二、單選題(10題)11.若有定義“inta,b,c;”,想通過(guò)語(yǔ)句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分別賦給變量a、b、c,則正確的鍵盤輸入是()。
A.1,2,3<Enter>
B.1,2<tab>3<Enter>
C.1<Enter><tab>2<tab>3
D.1<Enter>2<Enter>3
12.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)
13.s1和s2已正確定義并分別指向兩個(gè)字符串。若要求:當(dāng)s1所指串大于s2所指串時(shí),執(zhí)行語(yǔ)句s;則以下選項(xiàng)中正確的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
14.需求分析的主要任務(wù)是()。
A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)入員
15.關(guān)于C語(yǔ)言中數(shù)的表示,以下敘述中正確的是()。
A.只有整型數(shù)在允許范圍內(nèi)能精確無(wú)誤地表示,實(shí)型數(shù)會(huì)有誤差
B.只要在允許范圍內(nèi)整型數(shù)和實(shí)型數(shù)都能精確地表示
C.只有實(shí)型數(shù)在允許范圍內(nèi)能精確無(wú)誤地表示,整形數(shù)會(huì)有誤差
D.只有用八進(jìn)制表示的數(shù)才不會(huì)有誤差
16.以下敘述中正確的是A.局部變量說(shuō)明為static存儲(chǔ)數(shù),其生存期將得到延長(zhǎng)
B.全局變量說(shuō)明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大
C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的
D.形參可以使用的存儲(chǔ)類說(shuō)明符與局部變量完全相同
17.下面程序輸出的結(jié)果是main(){intx;x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3+4%6/5;printf("%d",x);x=(7+6)%5/2;printf("%d",x);}
A.111-31B.11-321C.12-321D.11121
18.軟件生命周期中,花費(fèi)最多的階段是()。
A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)
19.
20.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1三、程序設(shè)計(jì)題(10題)21.規(guī)定輸入的字符串中只包含字母和+號(hào)。編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)和尾部的母號(hào)外,將其他的*號(hào)全部刪除。形參h已指向字符串中第一個(gè)字母,形參P指向字符串中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用c語(yǔ)言提供的字符串函數(shù)。22.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫一個(gè)函數(shù),其功能是從傳入的num個(gè)字符串中找出最長(zhǎng)的一個(gè)字符串,并通過(guò)形參指針max傳回該字符串的地址(用****作為結(jié)束輸入的標(biāo)識(shí))。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:1#include<conio.h>2#include<stdio.h>3#include<string.h>4#include<stdlib.h>5char*fun(char(*a)[81],intnum,char*max)6{78}9voidmain()10{11FILE*wf;12charss[10][81],*ps=NULL;13chars[3][81]={"abed","deg","diegns"},*p=NULL;14inti=0,n;15system("CLS");16printf("輸入若干個(gè)字符串:");17gets(ss[i]);18puts(ss[i]);19while(!stremp(ss[i],"****")==0)/*用4個(gè)星號(hào)作為結(jié)束輸入的標(biāo)志*/20{21i++;22gets(ss[i]);24puts(ss[i]);25}26n=i;27ps=fun(ss,n,ps);28printf("\nmax=%s\n",ps);29/********************/30wf=fopen("out.dat","w");31p=fun(s,3,p);32fprintf(wf,"%s",p);33fclose(wf);34/********************/23.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是求斐波那契數(shù)列中大于t的最小的數(shù),結(jié)果由函數(shù)返回。斐波那契數(shù)列F(n)的定義為F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)例如,當(dāng)t=1000時(shí),函數(shù)值為1597。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<conio.h>#include<math.h>#include<stdio.h>intfun(intt){}main(){intn;n=1000;printf(“n=%d,f=%d\n”,n,fun(n));}
24.編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存人xx所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過(guò)k返回。
例如,若輸入l7,則應(yīng)輸出:46891012141516。
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填人你編寫的若干語(yǔ)句。
25.請(qǐng)編寫一個(gè)函數(shù)voidproc(chara[],charbE3,intn),其功能是:刪除一個(gè)字符串中指定下標(biāo)的字符。其中,a指向原字符串,刪除后的字符串存放在b所指的數(shù)組中,n中存放指定的下標(biāo)。例如,輸入一個(gè)字符串student,然后輸入5,則調(diào)用該函數(shù)后的結(jié)果為studet。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:
26.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)其功能是移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)為0~p(含p,p小于等于n-1)的數(shù)組元素平移到數(shù)組的最后。例如,一維數(shù)組中的原始內(nèi)容為1、2、3、4、5、6、7、8、9、10;P的值為3。移動(dòng)后,一維數(shù)組中的內(nèi)容應(yīng)為5、6、7、8、9、10、1、2、3、4。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn){}main(){ inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; inti,p,n=15; printf(“Theoriginaldata:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\nEnterp:”); scanf(“%d”,&p); fun(a,p,n); printf(“\nThedataaftermoving:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\n”);}
27.請(qǐng)編寫一個(gè)函數(shù)intproc(int*s,intt,int*k),用來(lái)求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。例如,輸入如下整數(shù):876675896101999401980431451777則輸出結(jié)果為4,999。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:
28.請(qǐng)編一個(gè)函數(shù)floatproe(doubleh),函數(shù)的功能是對(duì)變量h中的值保留2位小數(shù),并對(duì)第3位進(jìn)行四舍五人(規(guī)定h中的值為正數(shù))。例如,若h值為7.32596,則函數(shù)返回7.33;若h值為7.32496,則函數(shù)返回7.32。注意:部分源程序給出如下。.請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:
29.編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項(xiàng)小于0.0005時(shí)停止迭代)。
程序運(yùn)行后,若輸入精度
0.0005,則程序應(yīng)輸出為3.14…
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
30.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),其功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換成一個(gè)整數(shù)(不得調(diào)用C語(yǔ)言提供的將字符串轉(zhuǎn)換成整數(shù)的函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換成整數(shù)值-1234。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#include<string.h>longfun(char*p){}voidmain(){ chars[6]; longn; printf(“Enterastring:\n”); gets(s); n=fun(s); printf(“%ld\n”,n);}
四、2.程序修改題(10題)31.給定程序MODll.C中函數(shù)fun的功能是:計(jì)算小于形參k的最大的10個(gè)能被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳入,若k的值為500,則函數(shù)值為4622。
請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
32.下列給定程序中,函數(shù)fun()的功能是:從字符串s中,刪除所有大寫字母'F'。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
voidfun(char*s)
{
inti,j;
/*************found**************/
for(i=j=0;s[i]!='0';i++)
if(s[i]!='F')
/*************found**************/
s[j]=s[i];
s[j]='\0';
}
main()
{
chars[80];
printf("\nEnterastring:");
gets(s);
printf("Theoriginalstring:");
puts(s);
fun(s);
printf("Thestringafterdeleted:");
puts(s);
printf("\n\n");
}
33.下列給定程序中,函數(shù)fun()的功能是:用下面的公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于指定的數(shù)(參數(shù)num)為止。
π/4≈1-1/3+1/5-1/7+…
例如,程序運(yùn)行后,輸入0.0001,則程序輸出3.1414。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<math.h>
#include<stdio.h>
floatfun(floatnum)
{ints;
floatn,t,pi;
t=1;pi=0;n=1;s=1;
/**************found***************/
while(t>=num)
{
pi=pi+t;
n=n+2;
s=-s;
/**************found**************/
t=s%n;
}
pi=pi*4;
returnpi;
}
main()
{floatn1,n2;
clrscr();
printf("Enterafloatnumber:");
scanf("%f",&n1);
n2=fun(n1);
printf("%6.4f\n",n2);
}
34.給定程序MODll.C中函數(shù)fun的功能是:計(jì)算n!。
例如,給n輸入5,則輸出120.000000。
請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
35.給定程序MODll.C中函數(shù)fun的功能是:根據(jù)輸入的三個(gè)邊長(zhǎng)(整型值),判斷能否構(gòu)成三角形:構(gòu)成的是等邊三角形,還是等腰三角形。若能構(gòu)成等邊三角形函數(shù)返回3,若能構(gòu)成等腰三角形函數(shù)返回2,若能構(gòu)成一般三角形函數(shù)返回1,若不能構(gòu)成三角形函數(shù)返回0。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
36.下列給定的程序中,fun()函數(shù)的功能是:將p所指字符串中每個(gè)單詞的最后一個(gè)字母改成大寫(這里的“單詞”是指有空格隔開的字符串)。例如,若輸入:
Iamastudenttotaketheexamination
則應(yīng)輸出:IaMAstudenTtOtakethEexaminatioN
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注童:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<ctype.h>
#include<stdio.h>
voidfun(char*p)
{
intk=0;
for(;*p;p++)
if(k)
{
/*************found**************/
if(p=='')
{
k=0;
/*************found**************/
*p=toupper(*(p-1));
}
}
else
k=1;
}
main()
{charchrstr[64];
intd;
clrscr();
printf("\nPleaseenteranEnglishsentencewithin63letters:");
gets(chrstr);
d=strlen(chrstr);
chrstr[d=='';
chrstr[d+1]=0;
printf("\nBoforechanging:\n%s",chrstr);
fun(chrstr);
printf("\nAfterchanging:\n%s",chrstr);
}
37.下列給定程序中,函數(shù)fun()的功能是:先從鍵盤上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。
請(qǐng)改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
intfun()
{
inta[3][3],sum;
inti,j;
/*************found**************/
sum=1;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
/*************found**************/
scanf("%d",a[i][j]);
}
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("Sum=%d\n",sum);
}
main()
{
fun();
}
38.給定程序MODll.C中函數(shù)fun的功能是:找出100至n(不大于1000)之間三位數(shù)字相等的所有整數(shù),把這些整數(shù)放在s所指數(shù)組中,個(gè)數(shù)作為函數(shù)值返回。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
39.下列給定程序中,函數(shù)fun()的功能是:在字符串str中找出ASCII碼值最小的字符,將其放在第一個(gè)位置上,并將該字符前的原字符向后順序移動(dòng)。例如,調(diào)用fun()函數(shù)之前給字符串輸入fagAgBDh,調(diào)用后寧符串中的內(nèi)容為AfaggBDh。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
/*************found************/
voidfun(charp)
{
charmin,*q;
inti=0;
min=p[i];
while(p[i]!=0)
{
if(min>p[i])
{
/*************found*************/
p=q+i;
min=p[i];
}
i++;
}
while(q>p)
{*q=*(q-1);
q--;
}
p[0]=min;
}
main()
{
charstr[80];
printf("Enterastring:");
gets(str);
printf("\nTheoriginalstring:");
puts(str);
fun(str);
printf("\nThestringaftermoving:");
puts(str);
printf("\n\n");
}
40.N個(gè)有序整數(shù)數(shù)列已放在一維數(shù)組中,給定下列程序中,函數(shù)fun()的功能是:利用折半查找算法查找整數(shù)m在數(shù)組中的位置。若找到,則返回其下標(biāo)值:反之,則返回-1。
折半查找的基本算法是:每次查找前先確定數(shù)組中待查的范圍:low和high(low<high),然后把m與中間位置(mid)中元素的值進(jìn)行比較。如果m的值大于中間位置元素中的值,則下一次的查找范圍放在中間位置之后的元素中;反之,下次查找范圍落在中間位置之前的元素中。直到low>high,查找結(jié)束。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#defineN10
/*************found*********************/
voidfun(inta[],intm)
{intlow--0,high=N-l,mid;
while(low<=high)
{mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
/*************found*********************/
elseif(m>=a[mid])
low=mid+1;
elsereturn(mid);
}
return(-1);
}
main()
{inti,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m;
printf("a數(shù)組中的數(shù)據(jù)如下:");
for(i=0;i<N;i++)printf("%d",a[i]);
printf("Enterm:");scanf("%d",&m);
k=fun(a,m);
if(k>=0)printf("m=%d,index=%d\n",m,k);
elseprintf("Notbefound!\n");
}
五、程序改錯(cuò)題(2題)41.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參m,計(jì)算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入10,則應(yīng)輸出2.928968。請(qǐng)修改程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
42.下列給定程序中,函數(shù)proc()的功能是:通過(guò)某種方式實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語(yǔ)句和表達(dá)式。例如變量num1中的值原為2,num2中的值原為1,程序運(yùn)行后,num1中的值為l,num2中的值為2。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、操作題(2題)43.以下程序的輸出結(jié)果是【】。
main()
{charc='z';
printf("%c",c-25);}
44.請(qǐng)補(bǔ)充函數(shù)proc(),其功能是:計(jì)算并輸出給定l0個(gè)數(shù)的方差。例如,給定的10個(gè)數(shù)為12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0,輸出為s=8.877500。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。試題程序:
參考答案
1.33解析:分析程序運(yùn)行過(guò)程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,軸出結(jié)果為3。
2.2424解析:本題考核的知識(shí)點(diǎn)是數(shù)組的定義和數(shù)組元素的引用。主函數(shù)中首先定義了一個(gè)長(zhǎng)度為7的數(shù)組,然后用一個(gè)while循環(huán)引用數(shù)組的元素,當(dāng)i大于7或者p[i]為偶數(shù)時(shí),循環(huán)結(jié)束。顯然當(dāng)i=2時(shí),p12]=14為偶數(shù)時(shí),循環(huán)結(jié)束,此時(shí)j的值為j=p[0]+p[1]=24;
3.3
4.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個(gè)for循環(huán)后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2個(gè)for循環(huán)的功能是將數(shù)組元素按照3行3列的格式輸出。
5.void(*p)()或void(*p)(int*int*)void(*p)()或void(*p)(int*,int*)
6.8141
7.1212解析:本題的第—個(gè)for循環(huán)用于紿數(shù)組arr賦初值,第二個(gè)for循環(huán)用于求和運(yùn)算。由于第二個(gè)for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
8.1+a1-a1+a,1-a解析:考查條件運(yùn)算符的使用。因?yàn)轭}目中求的是1+|a|的值,即1和a的絕對(duì)值之和,所以根據(jù)數(shù)學(xué)中求絕對(duì)值的規(guī)則;當(dāng)a>=0時(shí),絕對(duì)值取本身,當(dāng)a<0時(shí),絕對(duì)值取相反數(shù),再結(jié)合條件運(yùn)算符的計(jì)算規(guī)則,可得到本題的答案為a>=0。
9.0111201112解析:在主函數(shù)中定義了整型變量f1和f2,并把其值賦為0和1,在屏幕上輸出。然后在第一次運(yùn)行for循環(huán)語(yǔ)句時(shí),變量f的值等于1,把其值輸出,把變量f1的值0賦給變量f2,變量f的值1賦給n,在執(zhí)行第二次for循環(huán)語(yǔ)句時(shí),變量f的值等于1,把此值輸出。然后再把變量f1的值1賦給變量f2,變量f的值1賦給f1,在執(zhí)行第三次for循環(huán)語(yǔ)句時(shí),變量f的值等于2,把此值輸出。所以程序運(yùn)行后的結(jié)果為01112。
10.概念數(shù)據(jù)模型概念數(shù)據(jù)模型
11.B題干中,格式輸入函數(shù)scanf的格式控制字符串中,第1個(gè)%d與第2個(gè)%d之間有一個(gè)逗號(hào)。所以輸入的第1個(gè)整數(shù)和第2個(gè)整數(shù)之間必須要有一個(gè)逗號(hào),選項(xiàng)C、D錯(cuò)誤;輸入的第2個(gè)整數(shù)和第3個(gè)整數(shù)之間需要間隔符,可以使用<Tab>鍵、<Enter>鍵、空格符。故本題答案為B選項(xiàng)。
12.B通過(guò)—維數(shù)組名或指向維數(shù)組元素的指針來(lái)引用數(shù)組元素有兩種寫法:a[i]和*(a+i),它們是等價(jià)的。這是一種運(yùn)算符之間的等價(jià)轉(zhuǎn)換,就好像a-(b-C)等價(jià)于a-b+c一樣。知道了這種轉(zhuǎn)換,我們可以將之?dāng)U展到二維數(shù)組甚至任意維數(shù)組上來(lái)。因?yàn)閇]運(yùn)算符的結(jié)合性是從左至右的,所以w[i][j]等價(jià)于(w[i][j],此時(shí)可以先將任意一個(gè)[]運(yùn)算符轉(zhuǎn)換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時(shí)轉(zhuǎn)換:*(*(w+i)+j)。上述幾種形式都完全等價(jià)于w[i][j]。選項(xiàng)A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正確的。選項(xiàng)B小,因?yàn)閇]運(yùn)算符的優(yōu)先級(jí)高于*運(yùn)算符,所以*(w+1)[4]等價(jià)于*((w+1)[4]等價(jià)于*(*((w+1)+4)),即*(*(w+5)+0),它等價(jià)于w[5][0],很明顯它超過(guò)數(shù)組的范圍了,故不正確。選項(xiàng)C等價(jià)于w[1][0],是下確的。選項(xiàng)D中,&w[0][0]是數(shù)組w第1個(gè)元素的地址,它等價(jià)于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個(gè)數(shù),然后再除以這個(gè)數(shù)一樣。所以,&w[0][0]等價(jià)于*(w+0)+0。即*w。所以原式就變?yōu)?(*w+1)等價(jià)于w[0][1],這個(gè)也是合法的。綜上所述,本題應(yīng)該選擇B。
13.D在C語(yǔ)言中,不能直接比較兩個(gè)字符串的大小,必須用特定的函數(shù)來(lái)完成,選項(xiàng)A錯(cuò)誤;選項(xiàng)B不管大于還是小于都執(zhí)行S,不符合題意;選項(xiàng)C正好相反,當(dāng)s2大于s1時(shí),執(zhí)行語(yǔ)句S,可知選項(xiàng)D正確。
14.A需求分析是軟件開發(fā)之前必須要做的準(zhǔn)備工作之一。需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。故需求分析的主要任務(wù)是確定軟件系統(tǒng)的功能。本題答案為A選項(xiàng)。
15.A當(dāng)數(shù)據(jù)類型是實(shí)數(shù)時(shí),在存儲(chǔ)過(guò)程中,當(dāng)小數(shù)部分無(wú)限長(zhǎng)時(shí),會(huì)存在小數(shù)部分的截?cái)啵瑫?huì)存在誤差,所以答案選擇A。
16.A解析:全局變量說(shuō)明為static存儲(chǔ)類,其生命周期將得到延長(zhǎng),但作用域不能被擴(kuò)大;static存儲(chǔ)類變量在未賦初值時(shí),是有默認(rèn)值的,形參中的存儲(chǔ)類說(shuō)明符與局部變量完全相同。
17.A解析:本題考查的是算術(shù)運(yùn)算符的各種運(yùn)算,x=-3+4*5-6=-3+20-6=11;x=3+4%5-6=3+4-6=1;x=-3+4%6/5=-3+4/5=-3+0=-3;x=(7+6)%5/2=13%5/2=3/2=1。故正確答案為選項(xiàng)A)。
18.D本題考查對(duì)軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開發(fā)階段和維護(hù)階段。其中定義階段包括可行性研究與計(jì)劃制訂和需求分析;開發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、開發(fā)和測(cè)試;維護(hù)階段是一個(gè)單獨(dú)階段,不包含在開發(fā)階段內(nèi),它是所花費(fèi)用最多的一個(gè)階段。
19.C
20.D本題考查邏輯運(yùn)算符的使用。當(dāng)“&&”的兩個(gè)運(yùn)算對(duì)象都是邏輯1時(shí),表達(dá)式返回值才是1;“||”的兩個(gè)運(yùn)算對(duì)象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。
21.22.1char*fun(char(*a)[81],intnum,char*max)2{3inti=0;4max=a[0];5for(i=0;i<num;i++)/*找出最長(zhǎng)的一個(gè)字符串*/6if(strlen(max)<strlen(a[i]))7max=a[i];8returnmax;/*傳回最長(zhǎng)字符串的地址*/9}<strlen(a[i]))解答本題之前,首先應(yīng)該明白ss是數(shù)組名,是指數(shù)組首元素的地址。max是字符指針變量,可以指向一個(gè)字符串。假定max指向數(shù)組中第1個(gè)字符串,它的長(zhǎng)度最長(zhǎng)。再使用循環(huán)語(yǔ)句遍歷字符串?dāng)?shù)組,使用條件語(yǔ)句判斷該字符串的長(zhǎng)度是否大于max指向的字符串的長(zhǎng)度,如大于,則max指向該字符串。保證max指向的字符串最長(zhǎng),并將其作為函數(shù)值返回。</strlen(a[i]))23.intfun(intt){intf0=0,f1=1,f;do{/*根據(jù)斐波那契數(shù)列的定義求數(shù)值*/f=f0+f1;f0=f1;f1=f;}while(f<t);/*如果求的數(shù)值小于t則繼續(xù)*/</t);returnf;}根據(jù)斐波那契數(shù)列定義不難發(fā)現(xiàn),該數(shù)列最終的結(jié)果由兩個(gè)數(shù)列之和組成,所以可以在循環(huán)內(nèi)部始終把f看成前兩項(xiàng)之和,而f0始終代表第n-2項(xiàng),f1代表第n-1項(xiàng)。退出循環(huán)時(shí)得到的數(shù)f,就是大于指定數(shù)的最小的數(shù)。24.【參考答案】
【考點(diǎn)分析】
本題考查:如何判斷非素?cái)?shù);循環(huán)判斷結(jié)構(gòu);數(shù)組的引用。
【解題思路】
題目要求將l~m之間的非素?cái)?shù)存人數(shù)組中,應(yīng)使用循環(huán)判斷結(jié)構(gòu)。循環(huán)語(yǔ)句用來(lái)遍歷1~m之間的每個(gè)數(shù),判斷語(yǔ)句用來(lái)判斷該數(shù)是否素?cái)?shù),若不是素?cái)?shù),則將其存人數(shù)組中。這道題目是考查一個(gè)數(shù)是否為素?cái)?shù)的簡(jiǎn)單延伸,只要掌握了判斷素?cái)?shù)的方法,問(wèn)題便能順利解決。
【解題寶典】
判定一個(gè)數(shù)是否為素?cái)?shù),即該數(shù)除了能被l和它本身外,不能被任何數(shù)整除。
代碼實(shí)現(xiàn)為:
此語(yǔ)句需要熟記,很多判斷素?cái)?shù)的題目也可通過(guò)此法解決。
25.
【解析】按照題目中的要求,刪除一個(gè)字符串中指定下標(biāo)的字符。首先,將指定下標(biāo)之前的字符放入字符數(shù)組b中,然后將指定下標(biāo)之后的字符也放入字符數(shù)組b中,最后為新的字符數(shù)組b添加結(jié)束符。
26.voidfun(int*w,intp,intn){ intX,j,ch; for(x=0;x<=p;x++) { ch=w[0]; for(j=1;j /*通過(guò)for循環(huán)語(yǔ)句,將p+1~n-1(含n-1)之間的數(shù)組元素依次向前移動(dòng)p+1個(gè)存儲(chǔ)單元*/ { w[j-1]=w[j]; } w[n-1]=ch; /*將下標(biāo)為0~p的數(shù)組元素逐一賦給數(shù)組w[n-1]*/ }}本題要求把下標(biāo)為0~p(含p,p小于等于n-1)的數(shù)組元素平移到數(shù)組的最后。可以根據(jù)輸入的p值,通過(guò)for循環(huán)語(yǔ)句,將p+1~n-1(含n-1)之間的數(shù)組元素依次向前移動(dòng)p+1個(gè)存儲(chǔ)單元,即w[j-1]=w[j];。同時(shí)將下標(biāo)為0~p的數(shù)組元素逐一賦給數(shù)組w[n-1],也就是通過(guò)語(yǔ)句w[n-1]=ch;來(lái)實(shí)現(xiàn)此操作。
27.
【解析】要得到數(shù)組中的最大元素的下標(biāo),需要比較數(shù)組中的每一個(gè)元素。將最大的元素返回給主函數(shù),最大元素的下標(biāo)通過(guò)形參返回給主函數(shù)。
28.
【解析】要實(shí)現(xiàn)對(duì)變量的值保留2位小數(shù)。并對(duì)第3位小數(shù)進(jìn)行四舍五入,可以通過(guò)先將其小數(shù)點(diǎn)后3位變?yōu)檎龜?shù)后加5,所得到的數(shù)除10,最后再除100來(lái)實(shí)現(xiàn)。
29.
【考點(diǎn)分析】
本題考查:迭代法求給定多項(xiàng)式的值。迭代算法:讓計(jì)算機(jī)對(duì)一組指令(或一定步驟)進(jìn)行重復(fù)執(zhí)行,在每次執(zhí)行這組指令(或這些步驟)時(shí),都從變量的原值推出它的一個(gè)新值。需要注意變量的數(shù)據(jù)類型以及賦初值操作。
【解題思路】
首先應(yīng)該定義double類型變量,并且賦初值,用來(lái)存放多項(xiàng)式的某一項(xiàng)和最后的總和。從第2項(xiàng)開始以后的每一項(xiàng)都是其前面一項(xiàng)乘以n/(2*n+1),程序中用sl來(lái)表示每一項(xiàng),s表示求和后的結(jié)果。需注意sl和S的初值都為1.0,因?yàn)檠h(huán)變量從第二項(xiàng)開始累加。30.longfun(char*p){ longn=0; intflag=1; if(*p==‘-’) /*負(fù)數(shù)時(shí)置flag為-1*/ {p++;flag=-1;} elseif(*p==‘+’) /*正數(shù)時(shí)置flag為1*/ p++; while(*p!=‘\0’) { n=n*10+*p-‘\0’; /*將字符串轉(zhuǎn)換成相應(yīng)的整數(shù)*/ p++; } returnn*flag;}if語(yǔ)句的作用是判斷該字符串為正數(shù)還是負(fù)數(shù),while循環(huán)的作用是將字符串轉(zhuǎn)換成相應(yīng)的整數(shù)。注意:*P是一個(gè)字符(如‘9’、‘4’),并不是一個(gè)數(shù),要將其轉(zhuǎn)換成相應(yīng)的數(shù)字需令其減去‘0’(而不是‘\\0’),即*p-‘0’就得到*P這個(gè)字符的相應(yīng)數(shù)字,如‘0’-‘0’=0、‘8’-‘0’=8等。
31.(1)if((k%13==0)II(k%17==0))(2)}(1)if((k%13==0)II(k%17==0))(2)}解析:該題中函數(shù)功能是求能被13或17整除的自然數(shù)之和。從已給定源程序的main主函數(shù)開始入手,“printf("%d\\n",fun(500));”語(yǔ)句中的fun函數(shù)將500傳給n,計(jì)算小于500的能被13或17整除的自然數(shù)之和。
32.(1)錯(cuò)誤:for(i=j=0;s[i]!='0';i++)正確:for(i=j=0;s[i]!'\0';i++)(2)錯(cuò)誤:s[j]=s[i]正確:s[j++]=s[i];(1)錯(cuò)誤:for(i=j=0;s[i]!='0';i++)正確:for(i=j=0;s[i]!'\\0';i++)\r\n(2)錯(cuò)誤:s[j]=s[i]正確:s[j++]=s[i];解析:錯(cuò)誤1:本題考查是否掌握字符串的最后一個(gè)字符是結(jié)束標(biāo)志符'\\0'。錯(cuò)誤2:在循環(huán)中,新字符串的下標(biāo)也要遞增,這樣最終產(chǎn)生一個(gè)新的字符串。
33.(1)錯(cuò)誤:while(t>=num)正確:while(fabs(t)>=num)(2)錯(cuò)誤;t=s%n;正確:t=s/n;(1)錯(cuò)誤:while(t>=num)正確:while(fabs(t)>=num)\r\n(2)錯(cuò)誤;t=s%n;正確:t=s/n;解析:函數(shù)fun()中while語(yǔ)句的含義是,當(dāng)新的一項(xiàng)大于給定參數(shù)時(shí),循環(huán)累計(jì),計(jì)算s的值。而題目要求是最后一項(xiàng)的絕對(duì)值小于給定參數(shù),因此循環(huán)條件應(yīng)當(dāng)為while(fabs(t)>=num),而非while(t>=num)。
34.(1)if(n==0)(2)result*=n--;(1)if(n==0)(2)result*=n--;解析:本題中函數(shù)的功能是計(jì)算階乘,其中,階乘的計(jì)算公式分為參數(shù)n是1和大于1兩種情況,例如,1的階乘1!=1;5的階乘5!=5×4×3×2×1。
35.(1)intfun(intaintbintc)(2)elsereturn1;(1)intfun(inta,intb,intc)(2)elsereturn1;解析:本題中函數(shù)的功能是判斷能否構(gòu)成三角形;構(gòu)成的是等邊三角形,還是等腰三角形,利用if語(yǔ)句判斷三邊值之間的關(guān)系,然后根據(jù)判斷結(jié)果,返回題干中要求的值。
構(gòu)成三角形的條件是任意兩邊之和大于第三邊,等腰三角形的條件是在構(gòu)成三角形的基礎(chǔ)上還需要兩條邊相等,等邊三角形是三條邊均相等。
36.(1)錯(cuò)誤:if(p=='')正確:if(*p=='')(2)錯(cuò)誤:*p=toupper(*(p-1));正確:*(p-1)=toupper(*(p-1));(1)錯(cuò)誤:if(p=='')正確:if(*p=='')\r\n(2)錯(cuò)誤:*p=toupper(*(p-1));正確
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 清庫(kù)存合同范本
- 2025-2030年中國(guó)物流信息化市場(chǎng)十三五規(guī)劃與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)熱電聯(lián)市場(chǎng)運(yùn)行動(dòng)態(tài)及前景趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)激光氣體分析儀行業(yè)十三五規(guī)劃與發(fā)展前景分析報(bào)告
- 2025-2030年中國(guó)水成膜泡沫滅火器市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及發(fā)展前景分析報(bào)告
- 現(xiàn)代服務(wù)業(yè)人才培養(yǎng)與人才需求分析
- 托管投資合同范本
- 主管年度團(tuán)隊(duì)計(jì)劃
- 長(zhǎng)期投資與短期收益的平衡計(jì)劃
- 搪瓷裝飾板在商場(chǎng)裝飾的設(shè)計(jì)考核試卷
- 2025年01月2025廣東深圳市何香凝美術(shù)館公開招聘應(yīng)屆高校畢業(yè)生2人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 園林聘用勞動(dòng)合同
- 300畝文冠果樹栽培基地建設(shè)項(xiàng)目可行性研究報(bào)告
- 2025年菏澤職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年江西生物科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年上海浦東新區(qū)高三一模高考英語(yǔ)試卷試題(含答案詳解)
- 2025年度企業(yè)安全生產(chǎn)與環(huán)保管理服務(wù)協(xié)議范本3篇
- 2025-2030年中國(guó)巧克力產(chǎn)品市場(chǎng)需求狀況及發(fā)展趨勢(shì)分析報(bào)告
- 上海市發(fā)展改革研究院工作人員招考聘用12人高頻重點(diǎn)提升(共500題)附帶答案詳解
- CRM系統(tǒng)應(yīng)用培訓(xùn)
- 六年級(jí)下冊(cè)音樂(lè)全冊(cè)教案湖南文藝出版社湘教版
評(píng)論
0/150
提交評(píng)論