c上机题目10套.docx

上传人:b****8 文档编号:9897209 上传时间:2023-02-07 格式:DOCX 页数:35 大小:28.22KB
下载 相关 举报
c上机题目10套.docx_第1页
第1页 / 共35页
c上机题目10套.docx_第2页
第2页 / 共35页
c上机题目10套.docx_第3页
第3页 / 共35页
c上机题目10套.docx_第4页
第4页 / 共35页
c上机题目10套.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

c上机题目10套.docx

《c上机题目10套.docx》由会员分享,可在线阅读,更多相关《c上机题目10套.docx(35页珍藏版)》请在冰豆网上搜索。

c上机题目10套.docx

c上机题目10套

一、程序填空题

考试做题要求:

1、在__1__处填写正确的答案,并将下划线和数字删除。

2、将题目做完之后一定要保存。

3、不能删除/**********found**********/,也不能多行或少行。

1、请补充fun函数,fun函数的功能是求m的阶乘。

请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。

注意:

部分源程序给出如下。

#include<>

longfun(intm)

{

if(___1___)

return(m*fun(___2___));

return___3___;

}

main()

{

printf("8!

=%ld\n",fun(8));

}

2、请补充fun函数,该函数的功能是:

判断一个年份是否为闰年。

例如,2007年不是闰年,2008是闰年。

请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。

注意:

部分源程序给出如下。

#include<>

#include<>

intfun(intn)

{

intflag=0;

if(n%4==0)

if(____1_____)

flag=1;

if(____2____)

flag=1;

return___3____;

}

main()

{

intyear;

printf("Inputtheyear:

");

scanf("%d",&year);

if(fun(year))

printf("%disaleapyear.\n",year);

else

printf("%disnotaleapyear.\n",year);

}

 

3、函数fun的功能是:

从三个形参x、y、z中找出中间的那个数,作为函数值返回。

例如,当x=121,y=456,z=333时,中间的数为333。

请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。

注意:

部分源程序给出如下。

#include<>

intfun(inta,intb,intc)

{

inttemp;

temp=(a>b)(b>cb:

(a>cc:

___1___)):

((a>c)___2___:

((b>c)c:

___3___));

returntemp;

}

main()

{

intx=121,y=456,z=333,mid;

mid=fun(x,y,z);

printf("\nThemiddlenumberis:

%d\n",mid);

}

 

4、请补充函数fun(char*t),该函数的功能是把字符串中的内容逆置。

例如,字符串中原有的字符串为ABCDE,则调用该函数后,串中的内容为EDCBA。

请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。

注意:

部分源程序给出如下。

#include<>

#include<>

#include<>

#defineM60

voidfun(char*t)

{

intj,m=strlen(t)-1;

chars;

for(j=0;j

{

s=t[j];

___2___;

___3___;

}

}

main()

{

charb[M];

printf("Inputastring:

");

gets(b);

printf("Theoriginalstringis:

");

puts(b);

fun(b);

printf("\n");

printf("Thereversalstring:

");

puts(b);

}

5、请补充main函数,该函数的功能是:

从键盘输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。

例如,输入:

-666,结果为:

666。

仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其他任何内容。

注意:

部分源程序给出如下。

#include<>

#include<>

main()

{

longinta;

printf("Enterthedata:

\n");

scanf(___1___);

printf("Theorigialdatais%ld\n",a);

if(a<0)

___2___;

printf("\n");

printf(___3___);

}

 

6、请补充函数fun,它的功能是:

计算并输出m(包括m)以内能被2或5整除的所有自然数的倒数之和。

例如,在主函数中从键盘给m输入21后,输出为:

s=。

请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。

注意:

部分源程序给出如下。

#include<>

doublefun(intm)

{

intj;

doubletoal=;

for(j=1;___1___;j++)

if(j%2==0___2___j%5==0)

toal+=___3___/j;

returntoal;

}

main()

{

intm;

doublef;

printf("\nInputm:

");

scanf("%d",&m);

f=fun(m);

printf("\n\ns=%f\n",f);

}

 

7、请补充fun函数,该函数的功能是把从键盘输入的3个整数按从大到小输出。

例如,输入116513,结果输出651311。

仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其他任何内容。

注意:

部分源程序给出如下。

#include<>

#include<>

main()

{

inta,b,c,t;

printf("Inputa,b,c\n");

scanf("%d%d%d",&a,&b,&c);

if(___1___)

{

t=a;

a=b;

b=t;

}

if(___2___)

{

t=c;

c=a;

a=t;

}

if(___3___)

{

t=b;

b=c;

c=t;

}

printf("Theresult\n");

printf("frombigtosmall:

%d%d%d\n",a,b,c);

}

 

8、给定程序的功能是分别统计字符串中大写字母和小写字母的个数。

例如,给字符串str输入:

sfd34ddfoFFDEsd23sdf,则输出结果应为:

cap=4,min=13

请勿改动函数中的其他内容,仅在横线上填写所需的若干表达式或语句。

注意:

部分源程序给出如下。

#include<>

voidfun(char*str,int*x,int*y)

{

while(*str)

{

if(*str>='A'&&*str<='Z')

___1___;

if(*str>='a'&&*str<='z')

___2___;

str++;

}

}

main()

{

charstr[100];

intcap=0,min=0;

printf("\nPleaseastringtocount:

");

gets(str);

fun(str,&cap,&min);

printf("\ncap=%dmin=%d\n",___3___);

}

 

9、给定程序的功能是求1/4的圆周长,函数通过形参得到圆的直径,函数返回1/4的圆周长(圆周长公式为:

L=πd,在程序中定义的变量名要与公式的变量相同)。

例如,输入圆的直径值:

,输出为:

请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句。

注意:

部分源程序给出如下。

#include<>

doublefun(doubled)

{

return*___1___/;

}

main()

{

doublez;

printf("Inputthedoftheround:

");

scanf("%lf",&___2___);

printf("L=%lf\n",fun(___3___));

}

 

10、函数fun的功能是:

统计长整数test的各位上出现数字5、6、7的次数,并通过外部(全局)变量sum5、sum6、sum7返回主函数。

例如,当test=时,结果应该为:

sum5=0 sum6=2 sum7=1。

请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。

注意:

部分源程序给出如下。

  

#include<>

intsum5,sum6,sum7;

voidfun(longtest)

{

sum5=sum6=sum7=0;

while(test)

{

switch(___1___)

{

case5:

sum5++;

___2___;

case6:

sum6++;

___3___;

case7:

sum7++;

}

test/=10;

}

}

main()

{

longtest=89431676L;

fun(test);

printf("\nThecountresult:

\n");

printf("test=%ldsum5=%dsum6=%dsum7=%d\n",test,sum5,sum6,sum7);

}

二、程序改错题

考试做题要求:

1、在/**********found**********/的下一行改正错误。

2、将题目做完之后一定要保存。

3、不能删除/**********found**********/,也不能多行或少行。

1、下列给定程序的功能是:

读入一个整数n(2≤n≤5000),打印它的所有为素数的因子。

例如,若输入整数1234,则应输出:

2、617。

请修改程序中的错误,使程序能得出正确的结果。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

#include<>

/*******error*********/

Prime(intm);

{

intj,p;

p=1;

/*******error*********/

for(j=2;j

if!

(m%j)

{

p=0;

break;

}

return(p);

}

main()

{

inti,n;

printf("\npleaseenteranintegernumberbetween2and5000:

");

scanf("%d",&n);

printf("\n\nTheprimefactor(s)of%dis(are):

",n);

for(i=2;i

if((!

(n%i))&&(Prime(i)))

printf("%4d,",i);

printf("\n");

}

2、下列给定程序中,fun函数的功能是:

根据形参n,计算如下公式的值。

例如,若输入5,则应输出。

请修改程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

#include<>

doublefun(intn)

{

doubles=;

inti;

/******error**********/

for(i=2;i<=n;i++)

s+=k;

/******error**********/

___填空___

}

main()

{

intn;

printf("\npleaseenter1integernumbers:

\n");

scanf("%d",&n);

printf("\n\ntheresultis%lf\n",fun(n));

}

 

3、下列给定程序中,函数fun和quest的功能是:

用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过。

例如,若给m输入-50,给n输入30,则函数求得的一个根值为。

请修改程序中的错误,得出正确的结果。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

#include<>

doublequest(doublex)

{

return(2*x*x*x-4*x*x+3*x-6);

}

doublefun(doublem,doublen)

{

/********error********/

intr;

r=(m+n)/2;

/********error********/

while(fabs(n-m)<

{

if(quest(r)*quest(n)<0)

m=r;

else

n=r;

r=(m+n)/2;

}

returnr;

}

main()

{

doublem,n,result;

printf("Pleaseinputmn:

\n");

scanf("%lf%lf",&m,&n);

result=fun(m,n);

printf("result=%6.3f\n",result);

}

 

4、下列给定程序中,函数fun的功能是:

判断字符ch是否与s所指串中的某个字符相同,若相同,则什么也不做;若不同,则将其插在串的最后。

请修改程序中的错误,使它能得出正确的操作。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

#include<>

#include<>

/*******error*********/

voidfun(chars,charc)

{

while(*s&&*s!

=c)

s++;

/*******error*********/

if(*s=='c')

{

s[0]=c;

/*******error*********/

s[1]='0';

}

}

main()

{

charstr[81],ch;

printf("\nPleaseenterastring:

\n");

gets(str);

printf("\nPleaseenterthecharacter

tosearch:

");

ch=getchar();

fun(str,ch);

printf("\nTheresultis%s\n",str);

}

5、下列给定程序中函数fun的功能是:

求出在字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。

例如,当字符串中的内容为abcdabfabcdx,t中的内容为ab时,输出结果应是:

abcdx。

当字符串中的内容为abcdabfabcdx,t中的内容为abd时,则程序输出未找到信息"notfound!

"。

请修改程序中的错误,使程序能得出正确的结果。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

#include<>

#include<>

char*fun(char*str,char*t)

{

char*p,*r,*s;

/********error********/

s=NuLL;

while(*str)

{

p=str;

r=t;

while(*r)

/*******error*********/

if(r==p)

{

r++;

p++;

}

else

{

break;

}

if(*r=='\0')

s=str;

str++;

}

returns;

}

main()

{

charstr[100],t[100],*p;

printf("\npleaseenterstrings:

");

scanf("%s",str);

printf("\npleaseentersubstringt:

");

scanf("%s",t);

p=fun(str,t);

if(p)

printf("\ntheresultis:

%s\n",p);

else

printf("\nnotfound!

\n");

}

 

6、下列给定程序中,函数fun的功能是:

按以下递归公式求函数值。

        10     (n=1)

fun(n)= 

fun(n-1)+2 (n>1)

例如,当给n输入6时,函数值为20。

请修改程序中的错误,得出正确的结果。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

/********error********/

intfun(n)

{

intm;

/********error********/

if(n=1)

m=10;

else

m=fun(n-1)+2;

return(m);

}

main()

{

intn;

printf("Entern:

");

scanf("%d",&n);

printf("Theresult:

%d\n\n",fun(n));

}

 

7、下列给定程序中,计算如下公式的值:

函数fun的功能是:

根据整型形参m的值,计算上面公式。

例如,若m的值为10,则应输出:

请修改程序中的错误,得出正确的结果。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

#include<>

doublefun(intm)

{

doublec=;

intk;

/*******error*********/

for(k=2;k

/*******error*********/

c-=1/(k*k);

return(c);

}

main()

{

intpara=10;

printf("\nTheresultis%1f\n",fun(para));

}

 

8、下列给定程序中,函数fun的功能是:

根据以下公式求π值,并作为函数值返回。

例如,给指定精度的变量eps输入时,应当输出Pi=。

请修改程序中的错误,使程序能得出正确的结果。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

#include<>

#include<>

doublefun(doubleeps)

{

doubler,temp;

intm=1;

r=;

/*******error*********/

temp=0;

/********error********/

while(temp<=eps)

{

r+=temp;

temp=(temp*m)/(2*m+1);

m++;

}

return(r*2);

}

main()

{

doublex;

printf("\nPleaseenteraprecision:

");

scanf("%lf",&x);

printf("\neps=%lf,Pi=%lf\n\n",x,fun(x));

}

 

9、下列给定程序中函数fun的功能是:

计算正整数m的各位上的数字之积。

例如,若输入202,则输出应该是0。

请修改程序中的错误,得出正确的结果。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

#include<>

longfun(longn)

{

/****error******/

longr;

do

{

r*=n%10;

/****error******/

n\=10;

}while(n);

return(r);

}

main()

{

longm;

printf("\npleaseenteranumber:

");

scanf("%ld",&m);

printf("\n%ld\n",fun(m));

}

10、下列给定程序中,函数fun的功能是:

将字符串str中的小写字母都改为对应的大写字母,其他字符不变。

例如,若输入"asAS",则输出"ASAS"。

请修改程序中的错误,使它能统计出正确的结果。

注意:

不要改动main函数,不能增行或删行,也不能更改程序的结构。

#include<>

#include<>

#include<>

char*fun(charstr[])

{

inti;

/********error********/

for(i=0;str[i];i++)

if((str[i]>='a')||(str[i]<='z'))

/*******error*********/

str[i]+=32;

return(str);

}

main()

{

charstr[81];

printf("\nPleaseenterastring:

");

gets(str);

printf("\nTheresultstringis:

\n%s",fun(str));

}

三、程序设计题

考试做题要求:

1、按题目要求编写部分代码,不要改动已经有的代码。

2、在运行时如果遇到死循环,按Ctrl+Break键结束运行。

3、题目做完后必须要有运行结果,没有运行结果没有分。

1、数组point中存放着m个人的成绩,请编写函数fun,它的功能是:

返回高于平均分的人数,并将高于平均分的分数放在high所指的数组中。

例如,当point数组中的数据为50、60、65、70、75、80、88、90、95时,函数返回的人数应该是5,high中的数据应为75、80、88、90、95。

请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

注意:

部分源程序给出如下。

#include<>

#include<>

#include<>

intfun(intpoint[],intn,inthigh[])

{

}

main()

{

intj,m,high

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1