二级C语言试题6_第1页
二级C语言试题6_第2页
二级C语言试题6_第3页
二级C语言试题6_第4页
二级C语言试题6_第5页
已阅读5页,还剩112页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、填空题

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

请勿改动主函数main与其他函数中的任何内容,仅在fun函数的

main()

横线上填写所需的若干表达式或语句。

{intj,mzhigh[9];

注意:部分源程序给出如下。intpoint[9]={50,60,65,70,75,80,

#include<stdio.h>88,90,95);

longfun(intm)FILE*out;

{if(一1一)m=fun(point,9,high);

return(m*fun(___2___));printf("\nHightheaveragepointare:");

return___3___;out=fopen("outfile.datn,nw");

)for(j=0;j<m;j++)

main(){printf("%dn,high[j]);

{printf("8!=%ld\nn,fun(8));}fprintf(out,"%d\n0”,high[j]);}

二、改错题fclose(out);}

下列给定程序的功能是:读入一个整数n(2WnW5000),打印一.(1)m>l(2)m-1(3)1

它的所有为素数的因子。例如,若输入整数1234,则应输出:2、617o二、(1)Prime(intm)(2)if(!(m%j))

三、intj,k=0average=0;

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

for(j=0;j<n;j++)

注意:不要改动main函数,不能增行或删行,也不能更改程序average+=point[j];//统计总分数

的结构。average/=n;//求平均分

#include<conio.h>for(j=0;j<n;j++)

#include<stdio.h>if(point[j]>average)

/*******error*********/{high[k]=point[j];

Prime(intm);k++;//统计大于平均分的人数}

{intj,p;returnk;

P=l;一、填空题

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

请补充fun函数,该函数的功能是:判断一个年份是否为闰年。

for(j=2;j<m;j++)

if!(m%j)例如,2007年不是闰年,2008是闰年。

{p=0;break;}请勿改动主函数main与其他函数中的任何内容,仅在fun函数的

return(p);横线上填写所需的若干表达式或语句。

)注意:部分源程序给出如下。

main()#include<stdio.h>

{inti,n;#include<conio.h>

printf(M\npleaseenteranintegernumberintfun(intn)

between2and5000:");{intflag=0;

scanf("%d",&n);if(n%4==0)

printf(f,\n\nTheprimefactor(s)of%dif(___1___)

is(are):",n);flag=l;

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

if((!(n%i))&&(Primed)))flag=l;

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

printf("\n");}}

三、编程题main()

数组poini中存放着m个人的成绩,请编写函数fun,它的功能是:(intyear;

nH

返回高于平均分的人数,并将高于平均分的分数放在high所指的数组printf(Inputtheyear:);

scanf("%dn,&year);

中。

if(fun(year))

例如,当point数组中的数据为5()、6()、65、7()、75、8()、88、printf(n%disaleapyear.\nM,year);

90、95时,函数返回的人数应该是5,high中的数据应为75、80、88、else

90、95。printf("%disnotaleapyear.\nn,year);)

请勿改动主函数main与其他函数中的任何内容,仅在函数fun的二、改错题

花括号中填入所编写的若干语句。下列给定程序中,fun函数的功能是:根据形参n,计算如下公式

注意:部分源程序给出如下。的值。

#include<conio.h>,1111

#include<stdio.h>234n

#include<string.h>例如,若输入5,则应输出2.28333。

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

请修改程序中的错误或在横线处填上适当的内容并把横线删一、填空题

除,使它能计算出正确的结果。函数fun的功能是:从三个形参x、y、z中找出中间的那个数,作

注意:不要改动main函数,不能增行或删行,也不能更改程序为函数值返回。

的结构。例如,当x=12Ly=456,z=333时,中间的数为333。

#include<conio.h>请勿改动主函数main与其他函数中的任何内容,仅在fun函数的

#include<stdio.h>横线上填写所需的若干表达式或语句。

doublefun(intn)

注意:部分源程序给出如下。

{doubles=l.0;

#include<stdio.h>

inti;

intfun(inta,intb,intc)

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

{inttemp;

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

temp=(a>b)?(b>c?b:(a>c?c:___1___)):

s+=l.0/k;

((a>c)?___2___:((b>c)?c:___3___));

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

returntemp;}

一填空一

main()

)

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

main()

mid=fun(x,y,z);

{intn;

printf("\nThemiddlenumberis:%d\nH,mid);}

printf(n\npleaseenter1integernumbers:\n");

二、改错题

scanf(n%d",&n);

printf(n\n\ntheresultis%lf\n",fun(n));}下列给定程序中,函数fun和quest的功能是:用二分法求方程

三、编程题2xL4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。例如,若给

请编写函数fun,它的功能是:求出1到500之内能被7或11整除,m输入-50,给n输入30,则函数求得的一个根值为2.000。

但不能同时被7和11整除的所有整数,并将它们放在b所指的数组中,请修改程序中的错误,得出正确的结果。

通过m返回这些数的个数。注意:不要改动main函数,不能增行或删行,也不能更改程序

请勿改动主函数main与其他函数中的任何内容,仅在函数fun的的结构。

花括号中填入所编写的若干语句。#include<stdio.h>

#include<math.h>

注意:部分源程序给出如下。

doublequest(doublex)

#include<conio.h>

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

#include<stdio.h>

doublefun(doublem,doublen)

voidfun(int*b,int*m)

{/********error********/

(

intr;

r=(m+n)/2;

)

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

main()

while(fabs(n-m)<0.001)

{inta[500],m,i;

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

FILE*out;

m=r;

fun(a,&m);

else

out=fopen("outfile.dat","w");

n=r;

for(i=0;i<m;i++)

r=(m+n)/2;

if((i+1)%10==0)

)

{printf(n%5d\nH,a[i]);

returnr;}

fprintf(out,nd\n",a[i]);}

main()

else

(doublemn,result;

{printf(n%5d,",a[i]);z

printf("Pleaseinputmn:\nn);

fprintf(outn%d"a[i]);}

zzzscanf(H%lf%lfn&m,&n);

fclose(out);}z

result=fun(m,n);

一、【答案及难度指数】★

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

(1)n%100!=0(2)n%400==0(3)flag三、编程题

二、【答案及难度指数】★★

请编写函数voidfun(inty,intb[]»它的功能是:求出能

(1)s+=l.0/i;(2)returns;

整除y且是奇数的各整数,并按从小到大的顺序放在b所指的数组中,

三、【答案及难度指数】★★★

这些除数的个数通过形参m返回。

intj,k=0;

例如,若中的值为则有个数符合要求,它们是、、、

for(j=2;j<500;j++)//循环条件y90,4135

if((j%7==0||j%ll==0)&&j%77!=0)9、15、45o

b[k++]=j;//将结果放入数组b请勿改动主函数main与其他函数中的任何内容,仅在函数ftin的

*m=k;//将累加器值赋值给m花括号中填入所编写的若干语句。

注意:部分源程序给出如下。printf("Theoriginalstringis:");

#include<conio.h>puts(b);

#include<stdio.h>fun(b);

printf("\nn);

voidfun(inty,intb[]rint*m)

{printf("Thereversalstring:");

puts(b);}

)二、改错题

main()下列给定程序中,函数fun的功能是:判断字符ch是否与s所指串

{intyza[500],m,j;中的某个字符相同,若相同,则什么也不做;若不同,则将其插在

FILE*out;

串的最后。

printf(n\nPleaseinputanintegernumber:\n");

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

scanf(n%d",&y);

fun(y,a,&m);注意:不要改动main函数,不能增行或删行,也不能更改程序

for(j=0;j<m;j++)的结构。

printf(n%dn,a[j]);#include<conio.h>

printf(n\nn);#include<stdio.h>

fun(730,a,&m);#include<string.h>

out=fopen("outfile.dat","w");

for(j=0;j<m;j++)voidfun(chars,charc)

fprintf(out,"%d\nH,a[j]);{while(*s&&*s!=c)

fclose(out);}s++;

【答案及难度指数】★

(1)a(2)a(3)bif(*s==*c*)

【答案及难度指数】★★{s[0]=c;

(1)doubler;(2)while(fabs(n-m)>0.001)

s[1]=,01;

【答案及难度指数】★★★

intj=l,i=0,k=0z*s=b;

for(j=0;j<=y;j++)

if(j%2!=0)main()

{s[i]=j;i++;}(charstr[81],ch;

for(j=0;j<i;j++)printf("\nPleaseenterastring:\nn);

if(y%s[j]==0)gets(str);

{b[k]=s[j];k++;}printf(n\nPleaseenterthecharacter

*m=k;tosearch:;

一、填空题ch=getchar();

请补充函数fun(char九),该函数的功能是把字符串中的内容逆fun(str,ch);

H

置。printf(\nTheresultis%s\n**,str);}

三、编程题

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

中的内容为EDCBA。请编写函数fun,函数的功能是求出二维数组周边元素之和,作

为函数值返回。二维数组中的值在主函数中赋予。

请勿改动主函数main与其他函数中的任何内容,仅在fun函数的

横线上填写所需的若干表达式或语句。例如,若二维数组中的值为:

注意:部分源程序给出如下。3579

#include〈string.h>9994

#include<conio.h>9998

#include<stdio.h>则函数值为72。

#defineM60请勿改动主函数main与其他函数中的任何内容,仅在函数fun的

voidfun(char*t)

花括号中填入所编写的若干语句。

{intj,m=strlen(t)-l;

注意:部分源程序给出如下。

chars;

#include<conio.h>

for(j=0;j<m;j++,___1___)

#include<stdio.h>

{s=t[j];

#defineM3

一2一;

#defineN4

一3一;)

intfun(intb[M][N])

)

main()

{charb[M];

printf(MInputastring:n);

main()

gets(b);

的结构。

inta[M][N]={{3,5,7,9},{9,9,9,4},#include<conio.h>

{9,9,9,8}};#include<stdio.h>

inti,j,sum;#include<string.h>

FILE*out;char*fun(char*str,char*t)

printf("Theoriginaldatais:\nf,);

(char*pz*rz*s;

for(i=0;i<M;i++)/********error********/

{for(j=0;j<N;j++)S=NuLL;

printf("%6d"za(i][j]);while(*str)

printf(n\nH;}{p=str;

sum=fun(a);r=t;

printf(n\nThesum:%d\nH,sum);while(*r)

printf(u\nH);/*******error*********/

out=fopen("outfile.dat","w");if(r==p)

fprintf(out,,sum);{r++;p++;}

fclose(out);}else

【答案及难度指数】★{break;}

(1)m―(2)t[j]=t[m](3)t[m]=sif(*r==»\0»)

【答案及难度指数】★★s=str;

(1)voidfun(char*s,charc)(2)if(*s==1\01)str++;}

(3)s[l]=,\0,;returns;}

【答案及难度指数】★★★main()

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

inti,j,s=0;

printf(n\npleaseenterstrings:");

for(j=0;j<N;j++)//统计行元素

scanf("%sH,str);

{s+=b[0][j];s+=b[M-l][j];}

printf("\npleaseentersubstringt:u);

for(i=l;i<=M-2;i++)//统计列元素

scanf(H%s",t);

{s+=b[i][0];s+=b[i][N-l];}p=fun(str,t);

returns;if(p)

一、填空题printf("\ntheresultis:%s\nH,p);

请补充main函数,该函数的功能是:从键盘输入•个长整数,else

Mn

如果这个数是负数,则取它的绝对值,并显示出来。例如,输入:-666,printf(\nnotfound!\n);}

结果为:666o三、编程题

仅在横线上填写所需的若干表达式或语句,请勿改动函数中的编写函数intfun(intmm,intb[MAX]),该函数的功能是求出小于

其他任何内容。或等于mm的所行索数,并放在b数组中,该函数返回所求出的素数

注意:部分源程序给出如下。的个数。

#include<stdio.h>请勿改动主函数main与其他函数中的任何内容,仅在函数fun的

#include<conio.h>花括号中填入所编写的若干语句。

main()注意:部分源程序给出如下。

{longinta;#include<stdio.h>

printf(MEnterthedata:\n");#include<conio.h>

scanf(___1___);#defineMAX100

printf("Theorigialdatais%ld\nn,a);intfun(intmm,intb[MAX])

if(a<0)

___2___;

printf("\n");

printf(___3___);}main()

二、改错题{intm,i,sum;

下列给定程序中函数fun的功能是:求出在字符串中最后•次出intb[MAX];

现的子字符串的地址,通过函数值返回,在主函数中输出从此地址FILE*OUt;

printf("inputadata:\nn);

开始的字符串;若未找到,则函数值为NULL。

scanf("%d",&m);

例如,当字符串中的内容为中的内容为时,

abcdabfabcdx,tabsum=fun(m,b);

输出结果应是:abcdxo当字符串中的内容为abcdabfabcdx,t中的for(i=0;i<sum;i++)

内容为abd时,则程序输出未找到信息〃notfound!"。{if(i%10==0&&i!=0)

请修改程序中的错误,使程序能得出正确的结果。printf(n\nH);

printf("%5d"b[i]);}

注意:不要改动main函数,不能增行或删行,也不能更改程序z

sum=fun(28,b);

out=fopen("outfile.dat","w");m=10;

for(i=0;i<sum;i++)else

fprintf(out,"%d\n"zb[i]);m=fun(n-1)+2;

fclose(out);}return(m);}

【答案及难度指数】★main()

(1)&a(2)a=-a(3)“莒Id”,a{intn;

n

【答案及难度指数】★★printf(*'Entern:);

11

(1)s=NULL;(2)if(*r==*p)scanf(%d",&n);

printf(°Theresult:%d\n\nn,fun(n));}

【答案及难度指数】★★★

三、编程题

intk=0,i,j;

for(i=mm;i>l;i-)请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,

{for(j=2;j<i;j++)将其余5个字符按ASCII码降序排列。

if(i%j==0)〃判断i是否是素数例如,原来的字符串为Justabc,则排序后输出为Julsbac。

break;//若i能被j整除,贝[i为非素数请勿改动主函数main与其他函数中的任何内容,仅在函数fun的

else

花括号中填入所编写的若干语句。

continue;//否则继续循环判断

if(j>=i)//若是素数,将其存入b注意:部分源程序给出如下。

{b[k]=i;#include<stdio.h>

#include<ctype.h>

k++;}}

returnk++;#include<conio.h>

一、填空题#include<string.h>

voidfun(char*str,intn)

请补充函数fun,它的功能是:计算并输出m(包括m)以内能被

2或5整除的所有自然数的倒数之和。

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

请勿改动主函数main与其他函数中的任何内容,仅在fun函数的main()

横线上填写所需的若干表达式或语句。{charstr[10];

FILE*out;

注意:部分源程序给出如下。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论