编程题目及答案100题.docx

上传人:b****3 文档编号:11117024 上传时间:2023-05-29 格式:DOCX 页数:75 大小:31.65KB
下载 相关 举报
编程题目及答案100题.docx_第1页
第1页 / 共75页
编程题目及答案100题.docx_第2页
第2页 / 共75页
编程题目及答案100题.docx_第3页
第3页 / 共75页
编程题目及答案100题.docx_第4页
第4页 / 共75页
编程题目及答案100题.docx_第5页
第5页 / 共75页
编程题目及答案100题.docx_第6页
第6页 / 共75页
编程题目及答案100题.docx_第7页
第7页 / 共75页
编程题目及答案100题.docx_第8页
第8页 / 共75页
编程题目及答案100题.docx_第9页
第9页 / 共75页
编程题目及答案100题.docx_第10页
第10页 / 共75页
编程题目及答案100题.docx_第11页
第11页 / 共75页
编程题目及答案100题.docx_第12页
第12页 / 共75页
编程题目及答案100题.docx_第13页
第13页 / 共75页
编程题目及答案100题.docx_第14页
第14页 / 共75页
编程题目及答案100题.docx_第15页
第15页 / 共75页
编程题目及答案100题.docx_第16页
第16页 / 共75页
编程题目及答案100题.docx_第17页
第17页 / 共75页
编程题目及答案100题.docx_第18页
第18页 / 共75页
编程题目及答案100题.docx_第19页
第19页 / 共75页
编程题目及答案100题.docx_第20页
第20页 / 共75页
亲,该文档总共75页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

编程题目及答案100题.docx

《编程题目及答案100题.docx》由会员分享,可在线阅读,更多相关《编程题目及答案100题.docx(75页珍藏版)》请在冰点文库上搜索。

编程题目及答案100题.docx

编程题目及答案100题

1:

第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:

将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指定的数组中。

答案:

#include"stdio.h"

#definen10

intfun(intscore[],intbelow[],intm)

{inti,p=0,j=0;

for(i=0;i

p+=score[i];

p/=m;

for(i=0;i

if(score[i]

returnj;

}

main()

{inti,num,score[n]={10,20,30,40,50,60,70,80,90,100},below[n];

for(i=0;i

printf("%-6d",score[i]);

num=fun(score,below,n);

printf("\nnum=%d\n",num);

for(i=0;i

printf("%-5d",below[i]);

printf("\n\n\n");

}

2:

第2题请编写函数fun,它的功能是:

求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有整数,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案:

#include"stdio.h"

intfun(inta[])

{inti,j=0;

for(i=1;i<100;i++)

if((i%7==0&&i%11!

=0)||(i%7!

=0&&i%11==0))

a[j++]=i;

returnj;

}

main()

{inti,n,a[100];

n=fun(a);

printf("\n\n\nn=%d",n);

for(i=0;i

{if(i%5==0)printf("\n");

printf("%-5d",a[i]);

}

}_

3:

第3题请编写函数voidfun(intx,intpp[],int*n),它的功能是:

求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

答案:

#include"stdio.h"

voidfun(intx,intpp[],int*n)

{inti,j=0;

for(i=1;i<=x;i++)

if(x%i==0&&i%2)pp[j++]=i;

*n=j;

}

main()

{inti,x,pp[20],n;

printf("\n\nx=");

scanf("%d",&x);

fun(x,pp,&n);

printf("\nn=%d\n",n);

for(i=0;i

printf("%-5d",pp[i]);

}

4:

第4题请编写一个函数voidfun(char*tt,intpp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。

答案:

#include"stdio.h"

#include"string.h"

voidfun(char*tt,intpp[])

{inti,j=0;

for(i=0;i

if(tt[i]>='a'&&tt[i]<='z')pp[(tt[i]-'a')]++;

}

main()

{char*tt="abcdeasjfewjndsz";

inti,pp[26];

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

pp[i]=0;

puts(tt);

fun(tt,pp);

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

{if(i%5==0)printf("\n\n");

printf("%c:

%-6d",i+'a',pp[i]);

}

printf("\n\n");

}_}

5:

第5题请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:

将大于整数m且紧靠m的k个素数存入xx所指的数组中。

答案:

#include"stdio.h"

voidfun(intm,intk,intxx[])

{inti,j,n=0;

for(i=m+1;n<=k;i++)

{for(j=2;j

if(i%j==0)break;

if(j>=i)xx[n++]=i;

}

}

main()

{inti,xx[100],m=10,k=5;

fun(m,k,xx);

printf("\n\nm=%d,k=%d\n",m,k);

for(i=0;i

printf("%-5d",xx[i]);

}_

6:

第6题请编写一个函数voidfun(chara[],charb[],intn),其功能是:

删除以各字符串中指定下标的字符。

其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。

答案:

include"stdio.h"

#include"string.h"

voidfun(chara[],charb[],intn)

{inti,j=0;

for(i=0;i

if(i!

=n)b[j++]=a[i];

b[j]='\0';

}

main()

{char*a="abcdefg",b[20];

intn;

puts(a);

printf("\n\n\nn=");

scanf("%d",&n);

while(n<0||n>=strlen(a)){printf("NO,n=");scanf("%d",&n);}

fun(a,b,n);

puts(b);

}_

7:

第7题请编写一个函数intfun(int*s,intt,int*k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。

答案:

#include"stdio.h"

intfun(int*s,intt,int*k)

{inti,m=s[0];

*k=0;

for(i=0;i

if(m

}

main()

{ints[6]={87,34,90,43,454,45},i,k;

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

printf("%5d",s[i]);

fun(s,6,&k);

printf("\nk=%d\n\n",k);

}_

8:

第8题编写函数fun,功能是:

根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n)

答案:

#include

doublefun(intn)

{inti,t=0;

doublep,s=0.0;

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

{t+=i;

p=1.0/t;

s=s+p;

}

returns;

}

main()

{intn;

doubles;

printf("\nn=");

scanf("%d",&n);

s=fun(n);

printf("\ns=%lf\n\n",s);

}

_

9:

第9题编写一个函数fun,它的功能是:

根据以下公式求p的值,结果由函数值带回。

M与n为两个正整数,且要求m>n。

p=m!

/n!

(m-n)!

答案:

#include"stdio.h"

doublefun(intm,intn)

{doublei,j,k=1.0,d=1.0,p;

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

k*=i;

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

d*=j;

for(i=1;i<=m-n;i++)

d*=i;

returnk/d;

}

main()

{intm,n;

doublep;

printf("mandn");

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

p=fun(m,n);

printf("\n%lf\n\n",p);

}

10:

第10题编写函数fun,它的功能是:

利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。

迭代步骤如下:

(1)取x1初值为0.0;

(2)x0=x1,把x1的值赋各x0;

(3)x1=cos(x0),求出一个新的x1;

(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤

(2);

(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。

程序将输出root=0.739085。

答案:

#include"stdio.h"

#include"math.h"

floatfun()

{floatx1=0.0,x0;

do

{x0=x1;

x1=cos(x0);

}

while(fabs(x0-x1)>=1e-6);

returnx1;

}

main()

{printf("\n%f\n",fun());}

_

11:

第11题下列程序定义了n×n的二维数组,并在主函数中自动赋值。

请编写函数fun(inta[][n]),该函数的功能是:

使数组左下半三角元素中的值全部置成0。

答案:

#include"stdio.h"

#defineN4

voidfun(inta[][N])

{inti,j;

for(i=0;i

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

a[i][j]=0;

}

main()

{inti,j,a[N][N];

for(i=0;i

{for(j=0;j

printf("%-5d",a[i][j]=rand()%100);

printf("\n");

}

fun(a);

printf("\n");

for(i=0;i

{for(j=0;j

printf("%-5d",a[i][j]);

printf("\n");

}printf("\n\n");

}

12:

第12题下列程序定义了n×n的二维数组,并在主函数中赋值。

请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。

答案:

#include"stdio.h"

#defineN3

doublefun(inta[N][N])

{inti,j,k=0;

doubles=0.0;

for(i=0;i

{s+=a[0][i]+a[N-1][i];k+=2;}

for(j=1;j

{s+=a[j][0]+a[j][N-1];k+=2;}

returns/=k;

}

main()

{inti,j,a[N][N]={20,20,30,45,50,60,70,80,20};

doubles;

for(i=0;i

{for(j=0;j

printf("%-5d",a[i][j]);

printf("\n");

}

s=fun(a);

printf("\ns=%lf\n\n",s);

}

13:

第13题请编写一个函数voidfun(inttt[m][n],intpp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。

二维数组中的数已在主函数中赋予。

答案:

#include"stdio.h"

#defineM3

#defineN4

voidfun(inttt[M][N],intpp[N])

{inti,j,t,m=0;

for(i=0;i

{t=tt[0][i];

for(j=0;j

if(t>tt[j][i])t=tt[j][i];

pp[m++]=t;

}

}

main()

{inti,j,tt[M][N],pp[N];

for(i=0;i

{for(j=0;j

printf("%-5d",tt[i][j]=rand()%100);

printf("\n");

}

fun(tt,pp);

printf("\n");

for(i=0;i

printf("%-5d",pp[i]);

printf("\n\n");

}_

14:

第14题请别写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。

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

答案:

#include"stdio.h"

#defineM3

#defineN4

intfun(inta[M][N])

{inti,j,m=0;

for(j=0;j

{m+=a[0][j];m+=a[M-1][j];}

for(i=1;i<=M-2;i++)

{m+=a[i][0];m+=a[i][N-1];}

returnm;

}

main()

{inta[M][N]/*={1,2,3,4,5,6,7,8,9,10,11,12}*/,i,j,m;

for(i=0;i

{for(j=0;j

printf("%-5d",a[i][j]=rand()%10);

printf("\n");

}

m=fun(a);

printf("m=%d\n\n",m);

}_

15:

第15题请编写一个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w使n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。

答案:

#include"stdio.h"

#definen4

unsignedfun(unsignedw)

{unsignedt,s=0,m=1,p=0;

t=w;

while(t>10)

{if(t/10)

s+=t%10*m;

m=m*10;

t=t/10;

}

returns;

}

main()

{unsignedw;

printf("w=");

scanf("%u",&w);

printf("%u\n\n",fun(w));

}_

16:

第16题请编写一个函数floatfun(doubleh),函数的功能使对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。

答案:

#include"stdio.h"

floatfun(doubleh)

{longj;

floats;

h=h*1000;

j=(h+5)/10;

s=(float)(j/100.0);

returns;

}

main()

{floath;

printf("\nh=");

scanf("%f",&h);

printf("\n%.2f\n\n",fun(h));

}

17:

第17题请编写一个函数fun(char*s),该函数的功能使把字符串中的内容逆置。

答案:

#include"stdio.h"

#include"string.h"

voidfun(char*a)

{inti,m=strlen(a);

chart;

for(i=0;i

{t=a[i];a[i]=a[m-i-1];a[m-1-i]=t;}

}

main()

{char*a="abcdefghij";

puts(a);

fun(a);

puts(a);

printf("\n\n");

}

18:

第18题编写程序,实现矩阵(3行3列)的转置(即行列互换)。

答案:

#include"stdio.h"

#defineN3

voidfun(inta[N][N])

{intm,i,j;

for(i=0;i

for(j=i;j

{m=a[i][j];a[i][j]=a[j][i];a[j][i]=m;}

}

main()

{inta[N][N],i,j;

for(i=0;i

{for(j=0;j

printf("%-5d",a[i][j]=rand()%100);

printf("\n");

}printf("\n\n\n");

fun(a);

for(i=0;i

{for(j=0;j

printf("%-5d",a[i][j]);

printf("\n");

}printf("\n\n");

}_

19:

第19题编写函数fun,该函数的功能是:

从字符中删除指定的字符,同一字母的大、小写按不同字符处理。

答案:

#include"stdio.h"

#include"string.h"

voidfun(char*a,charm)

{inti,j=0;

for(i=0;i

if(m!

=a[i])a[j++]=a[i];

a[j]='\0';

}

main()

{char*a="abcdefadsf",b;

puts(a);

printf("b:

");

scanf("%c",&b);

fun(a,b);

puts(a);

}_

20:

第20题编写函数intfun(intlim,intaa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。

答案:

#include"stdio.h"

#defineMAX100

intfun(intlim,intaa[MAX])

{inti,j,m=0;

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

{for(j=2;j

if(i%j==0)break;

if(j>=i)aa[m++]=i;

}

returnm;

}

main()

{inti,m,lim,aa[MAX];

printf("\n\nlim=");

scanf("%d",&lim);

m=fun(lim,aa);

for(i=0;i

printf("%5d",aa[i]);

printf("\nm=%d\n\n",m);

}_

21:

第21题请编写函数fun,对长度为7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

答案:

include"stdio.h"

voidfun(char*a,intn)

{inti,j,t;

for(i=1;i

for(j=i;j

if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{char*a="gfedcba";

puts(a);

fun(a,strlen(a));

puts(a);

printf("\n\n");

}

22:

第22题n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,它的功能是:

找出学生的最高分,由函数值返回。

答案:

#include"stdio.h"

#defineN5

structstr

{intfen;

structstr*next;

};

typedefstructstrS;

intfun(S*h)

{intm;

m=h->fen;

while(h!

=NULL)

{if(mfen)

m=h->fen;h=h->next;

}

returnm;

}

main()

{Ss[N],a,b,c,d,*h;

intzfen;

a.fen=98;b.fen=89;c.fen=100;d.fen=92;

a.next=&b;b.next=&c;c.next=&d;d.next=NULL;

h=&a;

zfen=fun(h);

printf("\nzfen=%d\n",zfen);

}_

23:

第23题请编写函数fun,该函数的功能是:

判断字符串是否为回文?

若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。

回文是指顺读和倒读都是一样的字符串。

答案:

#include"stdio.h"

intfun(char*a)

{inti,j,m=strlen(a);

for(i=0;i

if(a[i]==a[m-i-1]);

else{j=0;break;}

returnj;

}

main()

{char*a="aabccbaa";

puts(a);

if(fun(a)==0)printf("NO");

elseprintf("YES");

printf("\n\n");

}_

24:

第24题请编写一个函数fun,它的功能是:

将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。

答案:

#include"stdio.h"

#include"string.h"

longfun(char*a)

{inti,j,n=0;

longs=0;

if(a[0]=='-')

{for(i=1;i

{j=a[i]-'0';

s*=10;

s+=j;

}

returns=s*-1;

}

else

{for(i=0;i

{j=a[i]-'0';

s*=10;

s+=j;

}

returns;

}

}

main()

{char*a="54343";

longm;

puts(a);

m=fun(a);

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

}_

25:

第25题请编

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2