计算机语言试题及答案.docx
- 文档编号:16660404
- 上传时间:2023-07-16
- 格式:DOCX
- 页数:179
- 大小:73.50KB
计算机语言试题及答案.docx
《计算机语言试题及答案.docx》由会员分享,可在线阅读,更多相关《计算机语言试题及答案.docx(179页珍藏版)》请在冰点文库上搜索。
计算机语言试题及答案
程序修改题
1、给定程序MODI1.C中,fun函数的功能是:
删除b所指数组中小于10的数据。
主函数中输出删除后数组中余下的数据。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include #include #defineN20
intfun(int*b)
{
/**********found**********/
intt[N],i,num
for(i=0;i if(b[i]>=10)
/**********found**********/
t[++num]=b[i];
/**********found**********/
for(i=0;i b[i]=t[i];
return(num);
}
main()
{inta[N],i,num;
printf("a数组中的数据:
\n");
for(i=0;i printf("\n");
num=fun(a);
for(i=0;i printf("\n");
}
2、给定程序MODI1.C中函数fun的功能是:
将十进制正整数m转换成k(2≤k≤9)进制数,并按高位到低位顺序输出。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
请改正fun函数中的错误,使它能得出正确的结果。
注意:
不要改动main函数。
不得增行或删行,也不得更改程序的结构!
#include #include voidfun(intm,intk)
{
intaa[20],i;
for(i=0;m;i++)
{
/**********found**********/
aa[i]=m/k;
m/=k;
}
for(;i;i--)
/**********found**********/
printf("%d",aa[i]);
}
main()
{
intb,n;
printf("\nPleaseenteranumberandabase:
\n");
scanf("%d%d",&n,&b);
fun(n,b);
printf("\n");
}
3、给定程序MODI1.C中函数fun的功能是:
用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include #include #defineMAXLINE20
fun(char*pstr[6])
{inti,j;
char*p;
for(i=0;i<5;i++){
/**************found**************/
for(j=i+1,j<6,j++)
{
if(strcmp(*(pstr+i),*(pstr+j))>0)
{
p=*(pstr+i);
/**************found**************/
*(pstr+i)=pstr+j;
*(pstr+j)=p;
}
}
}
}
main()
{inti;
char*pstr[6],str[6][MAXLINE];
for(i=0;i<6;i++)pstr[i]=str[i];
printf("\nEnter6string(1stringateachline):
\n");
for(i=0;i<6;i++)scanf("%s",pstr[i]);
fun(pstr);
printf("Thestringsaftersorting:
\n");
for(i=0;i<6;i++)printf("%s\n",pstr[i]);
}
4、给定程序MODI1.C中函数fun的功能是:
计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。
其中x和y的值不等,z和y的值不等。
例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include #include #include /************found************/
#defineFU(m,n)(m/n)
floatfun(floata,floatb,floatc)
{floatvalue;
value=FU(a+b,a-b)+FU(c+b,c-b);
/************found************/
Return(Value);
}
main()
{floatx,y,z,sum;
printf("Inputxyz:
");
scanf("%f%f%f",&x,&y,&z);
printf("x=%f,y=%f,z=%f\n",x,y,z);
if(x==y||y==z){printf("Dataerror!
\n");exit(0);}
sum=fun(x,y,z);
printf("Theresultis:
%5.2f\n",sum);
}
5、给定程序MODI1.C中函数fun的功能是:
用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:
π111
┄┄≈1-┄┄+┄┄-┄┄+...
4357
例如,程序运行后,输入0.0001,则程序输出3.1414。
请改正程序中的错误,使它能输出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include #include 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;
printf("Enterafloatnumber:
");
scanf("%f",&n1);
n2=fun(n1);
printf("%6.4f\n",n2);
}
6、给定程序MODI1.C中函数fun的功能是:
求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include #defineN20
voidfun(int*a,intn)
{inti,m,t,k;
for(i=0;i<2;i++){
/**********found**********/
m=0;
for(k=i+1;k /**********found**********/
if(a[k]>a[m])k=m;
t=a[i];a[i]=a[m];a[m]=t;
}
}
main()
{intb[N]={11,5,12,0,3,6,9,7,10,8},n=10,i;
for(i=0;i fun(b,n);
for(i=0;i }
7、例如,若给m输入-100,给n输入90,则函数求得的一个根值为2.000。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include #include doublefunx(doublex)
{return(2*x*x*x-4*x*x+3*x-6);}
doublefun(doublem,doublen)
{
/************found************/
intr;
r=(m+n)/2;
/************found************/
while(fabs(n-m)<0.001)
{if(funx(r)*funx(n)<0)m=r;
elsen=r;
r=(m+n)/2;
}
returnr;
}
main()
{doublem,n,root;
printf("Entermn:
\n");scanf("%lf%lf",&m,&n);
root=fun(m,n);
printf("root=%6.3f\n",root);
}
8、给定程序MODI1.C中函数fun的功能是:
根据整型形参m,计算如下公式的值。
1111
y=-------+---------+---------+……+-------
100*100200*200300*300m*m
例如,若m=2000,则应输出:
0.。
请改正程序中的语法错误,使它能计算出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include /************found************/
fun(intm)
{doubley=0,d;
inti;
/************found************/
for(i=100,i<=m,i+=100)
{d=(double)i*(double)i;
y+=1.0/d;
}
return(y);
}
main()
{intn=2000;
printf("\nTheresultis%lf\n",fun(n));
}
9、给定程序MODI1.C中函数fun的功能是:
统计字符串中各元音字母(即:
A、E、I、O、U)的个数。
注意:
字母不分大、小写。
例如:
若输入:
THIsisaboot,则输出应该是:
1、0、2、2、0。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include voidfun(char*s,intnum[5])
{intk,i=5;
for(k=0;k
/**********found**********/
num[i]=0;
for(;*s;s++)
{i=-1;
/**********found**********/
switch(s)
{case'a':
case'A':
{i=0;break;}
case'e':
case'E':
{i=1;break;}
case'i':
case'I':
{i=2;break;}
case'o':
case'O':
{i=3;break;}
case'u':
case'U':
{i=4;break;}
}
if(i>=0)
num[i]++;
}
}
main()
{chars1[81];intnum1[5],i;
printf("\nPleaseenterastring:
");gets(s1);
fun(s1,num1);
for(i=0;i<5;i++)printf("%d",num1[i]);printf("\n");
}
10、给定程序MODI1.C的功能是:
读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
例如,若输入:
Iamastudenttotaketheexamination.,
则应输出:
IAmAStudentToTakeTheExamination.。
请改正程序中的错误,使程序能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include #include /************found************/
include /************found************/
voidupfst(charp)
{intk=0;
for(;*p;p++)
if(k)
{if(*p=='')k=0;}
elseif(*p!
='')
{k=1;*p=toupper(*p);}
}
main()
{charchrstr[81];
printf("\nPleaseenteranEnglishtextline:
");gets(chrstr);
printf("\n\nBeforechanging:
\n%s",chrstr);
upfst(chrstr);
printf("\nAfterchanging:
\n%s\n",chrstr);
}
11、给定程序MODI1.C中函数fun的功能是:
求出两个非零正整数的最大公约数,并作为函数值返回。
例如,若给num1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include intfun(inta,intb)
{intr,t;
if(a
/************found************/
t=a;b=a;a=t;
}
r=a%b;
while(r!
=0)
{a=b;b=r;r=a%b;}
/************found************/
return(a);
}
main()
{intnum1,num2,a;
printf("Inputnum1num2:
");scanf("%d%d",&num1,&num2);
printf("num1=%dnum2=%d\n\n",num1,num2);
a=fun(num1,num2);
printf("Themaximuncommondivisoris%d\n\n",a);
}
12、给定程序MODI1.C中函数fun的功能是:
将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。
例如,若输入"Ab,cD",则输出"AB,CD"。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include #include char*fun(chartt[])
{
inti;
for(i=0;tt[i];i++)
/**********found***********/
if(('a'<=tt[i])||(tt[i]<='z'))
/**********found***********/
tt[i]+=32;
return(tt);
}
main()
{
chartt[81];
printf("\nPleaseenterastring:
");
gets(tt);
printf("\nTheresultstringis:
\n%s",fun(tt));
}
13、给定程序MODI1.C的功能是:
读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。
例如,若输入整数:
2310,则应输出:
2、3、5、7、11。
请改正程序中的语法错误,使程序能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include /************found************/
IsPrime(intn);
{inti,m;
m=1;
for(i=2;i /************found************/ if! (n%i) {m=0;break;} return(m); } main() {intj,k; printf("\nPleaseenteranintegernumberbetween2and10000: ");scanf("%d",&k); printf("\n\nTheprimefactor(s)of%dis(are): ",k); for(j=2;j<=k;j++) if((! (k%j))&&(IsPrime(j)))printf("\nM",j); printf("\n"); } 14、给定程序MODI1.C中函数fun的功能是: 把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。 例如,输入的数为: 551234, 输出结果应当是: a=55.0,b=34.0,c=12.0。 请改正程序中的错误,使它能得出正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include voidfun(float*a,float*b,float*c) { /**********found**********/ float*k; if(*a<*b) {k=*a;*a=*b;*b=k;} /**********found**********/ if(*a>*c) {k=*c;*c=*a;*a=k;} if(*b<*c) {k=*b;*b=*c;*c=k;} } main() {floata,b,c; printf("Inputabc: ");scanf("%f%f%f",&a,&b,&c); printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c); fun(&a,&b,&c); printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c); } 15、给定程序MODI1.C中函数fun的功能是: 依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include voidfun(char*s) {inti,j; for(i=0,j=0;s[i]! ='\0';i++) if(s[i]>='0'&&s[i]<='9') /**********found**********/ s[j]=s[i]; /**********found**********/ s[j]="\0"; } main() {charitem[80]; printf("\nEnterastring: ");gets(item); printf("\n\nThestringis: \"%s\"\n",item); fun(item); printf("\n\nThestringofchangingis: \"%s\"\n",item); } 16、给定程序MODI1.C中函数fun的功能是: 交换主函数中两个变量的值。 例如: 若变量a中的值原为8,b中的值为3。 程序运行后a中的值为3,b中的值为8。 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include /*********found**********/ voidfun(intx,inty) { intt; /*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机语言 试题 答案