C语言习题集Word版Word格式.docx
《C语言习题集Word版Word格式.docx》由会员分享,可在线阅读,更多相关《C语言习题集Word版Word格式.docx(72页珍藏版)》请在冰豆网上搜索。
%lf%lf%lf"
&
a,&
b,&
c);
x1=fun(a,b,c);
Thex1=%lf:
\n"
x1);
2、函数fun的功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的个位和百位上,
b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12,调用该函数后,c=2514。
注意:
部分源程序存在文件PROG1.C中。
数据文件bc.in中的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
conio.h>
longfun(inta,intb)
longc=0;
//--ksstart(注释不能删除)—
//考生代码从此开始编写
intc1,c2,c3,c4;
c1=b%10;
c2=a%10;
c3=b/10;
c4=a/10;
c=c1*1000+c2*100+c3*10+c4;
//--ksend---
returnc;
{inta,b;
longc;
Inputa,b:
%d%d"
&
a,&
b);
c=fun(a,b);
Theresultis:
%ld\n"
c);
3、将公式ln(|cos(x)|esin(x))转换为C语言的表达式,转换以后的语句写在函数fun的花括号,fun函数的其他语句请不要修改,main函数供你调试程序使用也可以任意修改。
doublefun(doublex)
doubley=0.0;
y=log(fabs(cos(x))*exp(sin(x)));
returny;
{
doublex=0,y=0.0;
Thex:
%lf"
x);
y=fun(x);
They=%lf:
y);
4、将公式an*e3x+2转换为C语言的表达式,转换以后的语句写在函数fun的花括号,fun函数的其他语句请不要修改,main函数供你调试程序使用也可以任意修改。
doublefun(doublea,intn,doublex)
y=pow(a,n)*exp(3*x+2);
doublea=0.0,x=0,y=0.0;
Thea,n,x:
%lf%d%lf"
n,&
y=fun(a,n,x);
5、请编写函数fun,函数的功能是把字符串中的若是数字且为偶数加2(若加2超过9则对10取余数),其他字符保持不变小。
注意:
部分源程序在文件prog1.c中。
阅卷时仅截取fun()中指定部分的代码去编译与运行,因此请仅在fun()函数的指定部分编写代码,主函数main()的代码可以修改,其他地方的代码请不要修改。
string.h>
stdlib.h>
intfun(chars[],intn)
inti;
for(i=0;
i<
n;
i++)
{
if(s[i]>
='
0'
&
&
s[i]<
9'
)
{
if(s[i]%2==0&
'
8'
s[i]=s[i]+2;
else
if(s[i]=='
s[i]='
;
}
}
//--ksend---
returnn;
{chars[]="
abcABd21e9fg"
intn=strlen(s);
%s\n"
s);
n=fun(s,n);
6、请编写一个函数fun,它的功能是:
比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。
若两个字符串长度相同,则返回第一个字符串。
部分源程序存在文件PROG1.C文件中。
voidfun(chars[],chart[],charst[])
inti,j,m,n;
for(i=0;
s[i]!
\0'
m=i;
for(j=0;
t[j]!
j++)
n=j;
if(m<
n){
j<
10;
st[j]=t[j];
if(m>
=n){
i<
20;
st[i]=s[i];
main()
{chara[20],b[10],c[180];
Input1thstring:
);
gets(a);
Input2thstring:
gets(b);
fun(a,b,c);
c);
7、请编写函数fun,函数的功能是:
判断字符串是否为回文?
若是,函数返回1,主函数中输出:
YES,否则返回0,主函数中输出NO。
回文是指顺读和倒读都一样的字符串。
例如,字符串LEVEL是回文,而字符串123312就不是回文。
注意:
部分源程序在文件PROG1.C中。
#defineN80
intfun(charstr[])
inti,j,n,z=0;
n=strlen(str);
j=n-1;
j;
i++,j--){
if(str[i]!
=str[j])
break;
else
z=1;
returnz;
{chars[N];
Enterastring:
"
gets(s);
\n\n"
puts(s);
if(fun(s))printf("
YES\n"
elseprintf("
NO\n"
8、假设有某张纸可以反复来回折叠,咱们人类也有办法完成这个折叠过程,请问叠了多少次后可以达到指定的高度。
其中纸的厚度为
hpaper、山的高度h。
仅在函数fun的花括号中填入你编写的若干语句。
intfun(floathpaper,floath)
inti;
for(i=1;
hpaper<
h;
hpaper=hpaper*2;
returni-1;
intmain()
floathpaper=0.5,h=2;
/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。
*/
n=fun(hpaper,h);
fprintf(stdout,"
%6d\n"
n);
system("
pause"
return0;
9、请编写函数fun,其功能是:
计算并输出下列多项式的值:
要求n的值大于1但不大于100。
部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
doublefun(intn)
inti,s=0;
doublez=0;
=n;
i++){
s+=i;
z+=1.0/s;
{intn;
doubles;
\nInputn:
%d"
n);
s=fun(n);
\n\ns=%f\n\n"
10、乌龟决心去做环球旅行,第1小时爬行了10米,第2小时爬行了5米,第3小时爬行2.5米,速度不断减半,请问n小时后可以爬行了多少米仅在函数fun的花括号中填入你编写的若干语句。
doublem=10,z=0;
z+=m;
m=m/2;
intn=2;
d