C语言上机题库Word文件下载.docx
- 文档编号:16402136
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:24
- 大小:42.77KB
C语言上机题库Word文件下载.docx
《C语言上机题库Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言上机题库Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
intI;
for(I=2;
I<
=m;
I++)/*************found**************/t+=1.0/k;
/*************found**************/returnI;
}voidmain(){intm;
system("
\nPleaseenter1integernumber:
"
scanf("
%d"
&
m);
\nTheresultis%1f\n"
fun(m));
t+=1.0/k;
正确:
t+=1.0/I;
(2)错误:
returnI;
returnt;
分别统计字符串中大写字母和小写字母的个数。
例如,给字符串s输入:
AaaaBBb123CCccccd,则应输出结果:
upper=5,lower=9。
#include<
/*********found***********/voidfun(char*s,inta,intb){while(*s){/*********found***********/if(*s>
='
A'
&
&
*s<
Z'
)a++;
/*********found***********/if(*s>
a'
z'
)b++;
s++;
}}main(){chars[100];
intupper=0,lower=0;
\npleaseastring:
"
gets(s);
fun(s,&
upper,&
lower);
\nupper=%dlower=%d\n"
upper,lower);
}
【参考答案】
(1)错误:
voidfun(char*s,inta,intb)正确:
voidfun(char*s,int*a,int*b)
(2)错误:
a++;
(*a)++;
(3)错误:
b++;
(*b)++;
下列给定程序中函数fun的功能是:
计算正整数num各位上的数字之积。
例如,若输入252,则输出应该是20。
若输入202,则输出应该是0。
请改正程序中的错误,使它能得出正确的结果。
longfun(longnum){/*************found**************/longk;
do{k*=num%10;
/*************found**************/num\=10;
}while(num);
return(k);
main(){intn;
\Pleaseenteranumber:
%ld"
n);
\n%ld\n"
fun(n));
longk;
longk=1;
(2)错误:
num\=10;
num/=10;
计算n!
。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
doublefun(intn){doubleresult=1.0;
/*************found**************/ifn==0return1.0;
while(n>
1&
n<
170)/*************found**************/result=n--;
returnresult;
voidmain(){intn;
InputN:
\n\n%d!
=%lf\n"
n,fun(n));
ifn==0正确:
if(n==0)
(2)错误:
result=n--;
result*=n--;
下列给定的程序中,函数fun的功能是:
计算并输出k以内最大的10个能被13或17整除的自然数之和。
k的值由主函数传入,若k的值为500,则函数的值为4622。
intfun(intk){intm=0,mc=0,j;
while((k>
=2)&
(mc<
10)){/*************found**************/if((k%13=0)||(k%17=0)){m=m+k;
mc++;
}k--;
/*************found**************/returnm;
}voidmain(){system("
%d\n"
fun(500));
if((k%13=0)||(k%17=0))正确:
if((k%13==0)||(k%17==0))
(2)错误:
缺少大括号正确:
加}
下列给定程序中,函数fun()的功能是:
根据整型形参m的值,计算如下公式的值:
请改正函数fun()中的错误,使它能得出正确的结果。
doublefun(intm){doubley=1.0;
/*************found**************/for(I=2;
m;
I++)/*************found**************/y-=1/(I*I);
return(y);
}voidmain(){intn=5;
fun(n));
for(i=2;
i<
i++)正确:
i++)
(2)错误:
y-=1/(i*i);
y-=1.0/(i*i);
在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。
计算数组元素中值为正数的平均值(不包括0)。
例如,数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。
doublefun(intx[]){/*************found**************/intsum=0.0;
intc=0,I=0;
while(x[I]!
=0){if(x[I]>
0){sum+=x[I];
c++;
}I++;
}/*************found**************/sum=sum\c;
returnsum;
intsum=0.0;
doublesum=0.0;
sum\=c;
sum/=c;
判断一个整数m是否是素数,若是返回1,否则返回0。
在main函数中,若fun()返回1则输出"
YES"
若fun()返回0则输出"
NO!
intfun(intm){intk=2;
while(k<
=m&
(m%k))/*************found**************/k++/*************found**************/if(m=k)return1;
elsereturn0;
}voidmain(){intn;
\nPleaseentern:
scanf("
if(fun(n))printf("
YES\n"
elseprintf("
\n"
k++正确:
k++;
if(m=k)正确:
if(m==k)
按如下递归公式求函数值。
例如,当给n输入5时,函数值为18;
当给n输入3时,函数值为14。
/*************found**************/intfun(n){intc;
/*************found**************/if(n=1)c=10;
elsec=fun(n-1)+2;
return(c);
Entern:
Theresult:
%d\n\n"
fun(n));
intfun(n)正确:
intfun(intn)
(2)错误:
if(n=1)正确:
if(n==1)
用递归算法计算斐波拉契级数列中第n项的值。
从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,…例如,若给n输入7,该项的斐波拉契级数值为13。
longfun(intg){/*************found**************/switch(g);
{case0:
return0;
/*************found**************/case1;
case2:
return1;
}return(fun(g-1)+fun(g-2));
}voidmain(){longfib;
intn;
Inputn:
n=%d\n"
n);
fib=fun(n);
fib=%d\n\n"
fib);
switch(g);
去掉分号
(2)错误:
case1;
case2:
return1;
case1:
求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
#defineN20/*************found**************/voidfun(int*a,intn);
{intI,m,t,k;
for(I=0;
I<
n;
I++){/*************found**************/m=0;
for(k=I+1;
k<
k++)if(a[k]>
a[m])m=k;
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++)printf("
%d"
b[i]);
fun(b,n);
b[i]);
voidfun(int*a,intn);
voidfun(int*a,intn)
(2)错误:
m=0;
m=i;
将十进制正整数m转换成进制数,并按位输出。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
请改正函数fun中的错误,使它能得出正确的结果。
/*************found**************/voidfun(intm,intk);
{intaa[20],i;
i++){/*************found**************/aa[i]=m/k;
m/=k;
}for(;
i;
i--)/*************found**************/printf("
aa[i]);
}main(){intb,n;
\nPleaseenteranumberandabase:
%d%d"
n,&
b);
fun(n,b);
\n"
voidfun(intm,intk);
voidfun(intm,intk)
(2)错误:
aa[i]=m/k;
正确:
aa[i]=m%k;
printf("
aa[i]);
aa[i-1]);
计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。
其中x和y不相等,z和y不等。
例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.50。
/*************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);
}voidmain(){floatx,y,z,sum;
Inputxyz:
:
%f%f%f"
x,&
y,&
z);
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);
Theresultis:
%5.2f\n"
sum);
#defineFU(m,n)(m/n)正确:
#defineFU(m,n)(m)/(n)
(2)错误:
return(Value);
return(value);
先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。
例如,当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。
string.h>
voidfun(char*s,char*t){intI,s1;
s1=strlen(s);
for(I=0;
s1;
I++)/*************found**************/t[I]=s[s1-1];
I++)t[s1+I]=s[I];
t[2*s1]='
\0'
;
}voidmain(){chars[100],t[100];
\nPleaseenterstrings:
%s"
s);
fun(s,t);
printf("
%s\n"
t);
t[i]=s[s1-1];
t[i]=s[s1-1-i];
求三个数的最小公倍数。
例如,给变量x1、x2、x3分别输入15、11、2,则输出结果应当是330。
intfun(intx,inty,intz){intj,t,n,m;
/*************found**************/j=1;
t=m=n=1;
/*************found**************/while(t!
=0&
m!
n!
=0){j=j+1;
t=j%x;
m=j%y;
n=j%z;
}returnj;
}voidmain(){intx1,x2,x3,j;
Inputx1x2x3:
%d%d%d"
x1,&
x2,&
x3);
x1=%d,x2=%d,x3=%d\n"
x1,x2,x3);
j=fun(x1,x2,x3);
Theminimalcommonmultipleis:
%d\n"
j);
j=1;
j=0;
while(t!
=0)正确:
=0||m!
=0||n!
=0)
从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如输入8名学生的成绩:
80.5607290.59851.58864则低于平均分的学生人数为4(平均分为75.5625)。
#defineN20intfun(float*s,intn,float*aver){floatave,t=0.0;
intcount=0,k,i;
for(k=0;
k<
k++)/*************found**************/t=s[k];
ave=t/n;
i++)if(s[i]<
ave)count++;
/*************found**************/*aver=&
ave;
returncount;
}voidmain(){floats[30],aver;
intm,i;
\nPleaseenterm:
\nPleaseenter%dmark:
m);
i++)scanf("
%f"
s+i);
\nThenumberofstudents:
%d\n"
fun(s,m,&
aver));
Ave=%f\n"
aver);
t=s[k];
t+=s[k];
*aver=&
*aver=ave;
在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
字符串的长度最长允许为79。
不要改动main函数,不得增行或删行,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 题库
![提示](https://static.bdocx.com/images/bang_tan.gif)