c语言程序设计题目及答案_第1页
c语言程序设计题目及答案_第2页
c语言程序设计题目及答案_第3页
c语言程序设计题目及答案_第4页
c语言程序设计题目及答案_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

ttincludeO

一、程序设计共113题

#includo<>

第1题题号:319

ttdefineM3

ttinclude〃〃

#defineN4

voidwjt();

voidwwjt();

intfun(intm)

voidfun(ir.ttt[M][N],int

(

PP[N])

inti,k=l;

(

if(m<=l)k=0;

inti,j;

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

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

if(m%i==0)k=0;

{

returnk;

Pp[j]=tt[0][j];

)

for(i=l;i<M;i++)

第2题题号:351

if(tt[i]rjl>pprjl)

pp[j]=tt[i][j];

功能:请编一个函数voidfun(int

)

tt[M][N],intpp[N]),

第3题题号:375

tt指向一个M行N列的二维

功能:从键盘上输入任意实数,求出

数组,求出二维数组每列

其所对应的函数值。

中最大元素,并依次放入PP

z=e的x次基(x>10)

所指一维数组中。二维

z=log(x+3)(x>-3)

数组中的数已在主函数中赋

z=sin(x)/((cos(x)+4)

予。

ttinclude<>

SincludeOif(k==i)s=s*i;

voidwwjt();)

doubley(floatx)returns;

()

doublez;第5题题号:333

if(x>10)z=exp(x);功能:计算并输出给定整数的所有

elseif(x>-3)z=log(x+3);因子之积(包括自身)。

elsez=sin(x)/(cos(x)+4);规定这个整数的值不大于

return(z);50o

)ttinclude<>

第4题题号:334#include〃〃

功能:求给定正整数n以内的素数voidwwjt();

之积。(n<28)longintfun(intn)

^include<>(

#include〃〃longs=l,i;

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

longfun(intn)if(n%i-0)s=s*i;

(returns;

longi,k;)

longs=l;第6题题号:50

for(i=2;i<=n;i++)功能:求出菲波那契数列的前一项

{for(k=2;k<i;k++)与后一项之比的极限的

if(i%k==0)break;近似值例如:当误差为时,

函数值为。#include<)

ttinclude<>voidwwjt();

ttincludeintamin(iEta[5][4])

voidwwjt();(

floatfun()inti,j,s;

s=a[0][0];

floatfl=l,f2=l,f3;for(i=0;i<5;i++)

floatrl=2,r2;for(j=0;j<4;j++)

doif(s>a[i][j])s=a[i][j];

{r2=rl;return(s);

rl=fl/f2;)

f3=fl+f2;第8题题号:337

fl=f2;功能:将两个两位数的正整数a、b

f2=f3:合并形成一个整数放在

}while(fabs(rl-r2)>le-4);c中。合并的方式是:将a

returnrl;数的十位和个位数依次放

)在c数的百位和个位上,b

第7题题号:394数的十位和个位数依次放

功能:产生20个[30,120]上的随机在c数的十位和千位上。

整数放入二维数组例如:当a=45,b=12o调用该函

a[5][4]中,求其中的最小数后,c=2415o

值。include<>

#include〃〃voidwwjt();

voidfun(inta,intb,long*c)出运算结果。请编写fun

(函数。

*c=a/10*100+a%10+b/10*10+b%10*例如:若n值为5,则结果为153。

1000;#include<>

)voidwjt();

第9题题号:388longintfun(intn)

功能:编写函数判断一个整数能否(

同时被3和5整除,若能inti;

则返回值为1,否则为0。调floatf-1,s=0;

用该函数求出15、300之for(i=l;i<=n;i++)

间能同时被3和5整除的数{f=f*i;

的个数。s=s+f;}

^include<>returns;

voidwwjtO:第11题题号:329

intsum(intn)功能:对某一正数的值保留2位小

(数,并对第三位进行四舍

if(n%3-0&&n%5~0)return(1);五入。

return(0);}ttinclude<>

第10题题号:16#include〃〃

功能:编写函数fun求voidwjt();

1!+2!+3!+……+n!的和,在maindoublefun(floath)

数中由键盘输入n值,并输inii;

i=(int)(h*1000)%10;功能:能计算从1开始到n的自然

if(i>=5)数的和,n由键盘输入,

return(int)(h*100+l)/;并在mainO函数中输出。

elsettinclude<>

return(int)(h*100)/;voidwwjt();

第12题题号:410intfun(intn)

功能:编写函数fun将一个数组中(

的值按逆序存放,并在intsum,i;

inainO函数中输出。sum=0;

例如:原来存顺序为8,6,5,4,1。for(i=l;i<=n;i++)

要求改为:1,4,5,6,8。{sum=sum+i;}

ttinclude<>return(sum);

#defineN5第14题题号:507

voidwwjtO:功能:编写函数fun求一个字符串

intfun(intarr[],intn)的长度,在main函数中

(输入字符串,并输出其长度。

inti,t;ttinclude<>

for(i=0;i<n/2;i++)voidwwjt();

{t=arr[i];intfun(char*pl)

arr[i]=arr;{

arr[n-l-i]=t;char*p;

}intn=0;

第13题题号:327P=pl;

while(*p++)立方和。

n++;ttinclude<>

returnn;void

第15题题号:44intfun(intn)

功能:求出二维数组周边元素之和,{

作为函数值返回。二intd,s=0;

维数组的值在主函数中赋whi1e(r.>0)

予。{d=n%10;

ttdefineM4s+=d*d*d;

#defineN5n/=10;

ttinclude<>)

voidwwjt();returns;

intfun(inta[M][N])第17题题号:339

(功能:判断整数x是否是同构数。

ints=0;若是同构数,函数返回1;

inti,j;否则返回0°x的值由主函数

for(i=0;i<M;i++)从键盘读入,要求不大

s=s+a[i][0]+a[i][NT];于100o

for(j=l;j<N-l;j++)说明:所谓“同构数”是指这样的

s=s+a[0][j]+a[M-l][j];数,这个数出现在它的

returns;平方数的右边。

第16题题号:364例如:输入整数5,5的平方数是

功能:求一个四位数的各位数字的25,5是25中右侧的数,所

以5是同构数。if(i%k==O)

ttinclude<>break;

voidwjt();if(k==i)

intfun(intx)return(i);

()

intk;第19题题号:317

k=x*x;功能:求出NXM整型数组的最大元

if((k%10=x)||(k%100==x))素及其所在的行坐标及

return1;列坐标(如果最大元素不唯

else一,选择位置在最前面

return0;的一个)。

第18题题号:331例如:输入的数组为:

功能:找出一个大于给定整数且紧123

随这个整数的素数,并4156

作为函数值返回。12189

Sinclude<>10112

#include〃〃求出的最大数为18,行坐标

voidwjt();为2,列坐标为1。

intfun(intn)^defineN4

(#defineM3

inti,k;ttinclude<>

for(i=n+l;;i++){voidwjt();

for(k=2;k<i;k++)intRow,Col;

intfun(intarray[N][M])intfun(intlist[],intsize)

intmax,i,j;inti,max=O;

max=array[0][0];for(i=l;i<size;i++)

Row=0;if(list[max]<list[i])

Col=0;max=i;

for(i=0;i<N;i++)returnmax;

{for(j=0;j<M;j++)第21题题号:355

if(max<array[i][j])功能:对长度为8个字符的字符串,

{max=array[i][j];将8个字符按降序排列。

Row=i;例如:原来的字符串为CEAedcab,

Col=j;}排序后输出为edcbaECA。

)#include<>

return(max);#include<>

第20题题号:360#include<>

【程序设计】voidwwjt();

功能:把20个随机数存入一个数voidfun(char*s,intnum)

组,然后输出该数组中的(

最大值。inti,j;

^include<>chart;

^defineVSIZE20for(i=0;i<num;i++)

voidwwjt();for(j=i+l;j<num;j++)

intvector[VSIZE];

功能:编写程序,实现矩阵(3行3

{t=s[i];s[i]=s[j];s[j]=t;}列)的转置(即行列互换)

第22题题号:405例如:输入下面的矩阵:

功能:编写函数fun计算下列分段100200300

函数的值:400500600

x、2+x+6x<0700800900

且xW-3程序输出:

f(x)=x2-5x+6100400700

0^x<10且xW2及x#3200500800

x^2-x-l其它300600900

ttinclude<>ttinclude<>

voidwjt();voidwwjt();

floatfun(floatx)intfun(intarray[3][3])

((

floaty;inti,j,t;

if(x<0&&x!=for(i=0;i<3;i++)

y=x*x+x+6;for(j=0;j<i;j++)

elseif(x>=0&&x<&&x!二&&{t=array[i][j];

x!=array[i][j]=array[j][i];

y=x*x-5*x+6;array[j][i]=t;}

elsey=x*x-x-l;第24题题号:392

returny;功能:求一批数中最大值和最小值

第23题题号:338的积。

[defineN30longintfun(intd,intn)

ttinclude〃〃(

ttinclude<>longints=0,t=0;

voidwjt();inti;

intmax_min(inta[],intn)for(i=l;i<=n;i++)

({t=t+c;

inti,max,min;s=s+t;

max=min=a[0];d=d*10;

for(i=l;i<n;i++)}

if(a[i]>max)max=a[i];returns;

elseif(a[i]<min)第26题题号:395

min=a[i];

return(max*min);

第25题题号:407功能:求n阶方阵主、副对角线上

功能:编写函数fun求的元素之积。

sum=d+dd+ddd+...+dd...d(n个

d),

其中d为1-9的数字。ttdefineN4

例如:3+33+333+3333+33333(此时ttinclude

d=3,n=5),d和n在主函ttinclude<>

数中输入。voidwwjt();

tfinclude<>floatmul(intarr[][N])

voidwwjt();

inti,j;则函数的值为。

floatt=l;ttinclude<>

for(i=0;i<N;i++)voidwjt();

for(j=0;j<N;j++)floatfun(inta[],intn)

if(i==j||i+j==N-l){

t=t*arr[i][j];inti;

return(t);floaty=0;

第27题题号:42for(i=0;i<n;i++)

功能:从字符串s中删除指定的字y+=a[i];

符Coy=y/n;

ttinclude<>returny;

voidwjt();第29题题号:348

fun(chars[],charc)功能:从低位开始取出长整型变量

(s中偶数位上的数,依次

inti,k=0;构成一个新数放在t中。

for(i=0;s[i]!='\0';i++)例如:当s中的数为:7654321时,

if(s[i]!=c)s[k++]=s[i];t中的数为:642o

s[k]=>\0>;ttinclude<>

第28题题号:311voidwjt();

功能:计算n门课程的平均值,计longfun(longs,longt)

算结果作为函数值返回。(

例如:若有5门课程的成绩是:92,longsi=10;

76,69,58,88,s/=10;

t=s%10;字符开始的连续n个字符

while(s>0)(注意:str[0]代表字符串

{s=s/100;的第一个字符)。

t=s%10*sl+t;ttinclude<>

si=si*10;voidwwjt();

fun(charstr[],inti,intn)

功能:编写函数求(

3!+6!+9!+12!+15+18!+21!owhile(str[i+n-1])

ttinclude<>(

voidwjt();str[i-l]=str[i+n-1];

floatsum(intn)i++;

(}

inti,j;str[i-l]=,\0,;

floatt,s=0:第32题题号:29

for(i=3;i<=n;i=i+3)功能:对任意输入的x,用下式计

{t=l;算并输出y的值。

for(j=l;j<=i;j++)5x<10

t=t*j;y=0x=10

s=s+t;}-5x>10

return(s);#include<>

第31题题号:397voidwjt();

功能:编写函数fun(str,i,n),从intfun(intn)

字符串str中删除第i个

答案:intm;

if(n<10)longy=0;

m=5;inti;

elsefor(i=l;i<=w;i++)

if(n==10)m=0;if(i%2==l)y+=i;

elsem=~5;returny;

returnm;第34题题号:312

或功能:调用函数fun判断一个三位

intm;数是否〃水仙花数〃。

if(n>=10)在main函数中从键盘输入

if(n>10)一个三位数,并输

m二-5;出判断结果。请编写fun函

elsem=0;数。

elsem=5;说明:所谓〃水仙花数〃是指一3位

returnm;数,其各位数字立方和

第33题题号:323等于该数本身。

功能:求1到w之间的奇数之和。例如:153是一个水仙花数,因为

(w是大于等于100小于等153=1+125+27。

于1000的整数)ttinclude<>

^include<>voidwjt();

#inc]ude〃〃intfun(intn)

voidwwjt();

longfun(intw)intbw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n第36题题号:504

%10;功能:编写程序打印如图1所示图

形。

if(n=bw*bw*bw+sw*sw*sw+gw*gw**

gw)return1;***

elsereturn0;*1*

第35题题号:378*1*****£*

功能:编写函数用冒泡排序法对数KL*

组中的数据进行从小到***

大的排序。*

ttinclude<>要求:要求使用abs()0

#include<>ttinclude<>

voidwwjt();#include〃〃

voidsort(intaFl,intn)voidwwjt():

{voidfun(irti)

inti,j,t;(

for(i=0;i<n-l;i++)答案:for(m=-i;m<=i;m++)

for(j=0;j<n-l-i;j++)(

if(a[j]>a[j+l])for(n=0;n<abs(m);n++)

{t=a[j];printf(〃〃);

a[j]=a[j+l];for(n=0;n<7-2*abs(m);n++)

a[j+l]=t;printf(〃*〃);

)printf(〃\n");

)intsum;

第37题题号:342inti,j;

功能:在键盘上输入一个3行3列sum=0;

矩阵的各个元素的值(值for(i=0;i<3;i+=2)

为整数),然后输出矩阵第for(j=0;j<3;j++)

一行与第三行元素之和,sum=sum+a[i][j];

并在fun()函数中输出。returnsum;

Sinclude<>第38题题号:382

voidwwjt();功能:给定n个数据,求最小值出

mainO现的位置(如果最小值

(出现多次,求出第一次出现

inti,j,s,a[3][3];的位置即可)。

for(i=0;i<3;i++)ttinclude<>

|voidwwjt():

for(j=0;j<3;j++)intstation(ints[],intn)

scanf(〃%d",&a[i][j]);(

)inti,k;

s=fun(a);k=0;

printf("Sum二%d\n〃,s);for(i=l;i<n;i++)

wjt();if(s[i]<s[k])k=i;

)return(k);

intfun(inta[3][3])第39题题号:62

功能;求5行5列矩阵的主、副对

角线上元素之和。注意,num用于保存数字个数

两条对角线相交的元素只加b用于保存空格个数、other用于保

一次。存其他字符字数*/

例如:主函数中给出的矩阵的两条inta=0,num=0,b=0,other=0;

对角线的和为45。voidcount(charc[])

tfinclude<>(

^defineM5答案:inti;

voidwwjt();for(i=0;c[i]!='\0';i++)

intfun(inta[M][M])

(if((c[i]>=,A*&&c[i]<=,Z*)||(c[

ints=0;i]>=,a'&&c[i]<=,z'))

inti,j;a=a+l;

for(i=0;i<M;i++)elseif

s=s+a[i][il+a[i]FM-l-i];='9')

s=s-a[(M-l)/2][(M-l)/2];num=num+l;

returns;elseif(c[i]==>,)

第40题题号:503b=b+l;

题目:分别统计字符串中字母、数else

字、空格和其他字符出现的other=other+l;

次数(字符长度小于80)。第41题题号:387

^include<>功能:求一批数中最大值和最小值

voidwwjt();的差。

/*-全局变量,a用于保存字母个数、ttdefineN30

^includeintfun(inilist[],intsize)

ttinclude<>

voidwjt();inti,min=0;

intmax_min(inta[],intn)for(i=l;i<size;i++)

(if(list[min]>list[i])

inti,max,min;min=i;

max=min=a[0];returnmin;

for(i=l;i<n;i++)第43题题号:365

if(a[i]>max)max=a[i];功能:求1到100之间的偶数之积。

elseif(a[i]<min)ttinclude<>

min=a[i];voidwwjt();

return(max-min);doublefun(intm)

)(

第42题题号:347doubley=l:

功能:把20个随机数存入一个数inti;

组,然后输出该数组中的for(i=l;i<=m;i++)

最小值。其中确定最小值的if(i%2=0)y*=i;

下标的操作在fun函数中returny;

实现,请给出该函数的定义。第44题题号:366

ttinclude<>功能:求一组数中大于平均值的数

^defineVSIZE20的个数。

voidwwjt();例如:给定的一组数为

intvector[VSIZE];1,3,6,9,4,23,35,67,12,88时,函

数值为3。^include<)

ttinclude<>voidwwjt();

voidwjt();intfun(intarray[3][3])

intfun(inta[],intn)(

(inti,j;

inti,k=0;for(i=0;i<3;i++)

floats=0,ave;for(j=0;j<3;j++)

for(i=0;i<n;i++)array[i][j]=array[i]

s+=a[i];第46题题号:373

ave=s/n;功能:用函数求fibonacci数列前

printf(〃%f",ave);n项的和。

for(i=0;i<n;i++)说明:fibor.acci数列为数列的第

if(a[i]>ave)k++;一项值为1,第二项值也

returnk;为1,从第三项开始,每一

第45题题号:361项均为其前面相邻两项

例如:输入下面的矩阵:的和。

100200300例如:当n=28时,运行结果:832039

400500600include<>

700800900voidwwjt();

程序输出:longsum(longfl,longf2)

200400600(

80010001200longf,k=fl+f2;

140016001800inti;

for(i=3;i<=28;i++)for(i=0;i<=strlen(str)-2;i++)

{f=fl+f2;

k=k+f;if((str[i]==substr[0])&&(str[i

fl=f2;+l]==substr[l]))

f2=f;n++;

}returnn;

return(k);第48题题号:322

第47题题号:340功能:判断一个整数w的各位数字

功能:编写一个函数,该函数可以平方之和能否被5整除,

统计一个长度为2的字符可以被5整除则返回1,否

串在另一个字符串中出现的则返回0o

次数。ttinclude<>

例如:假定输入的字符串为:#include”〃

asdasasdfgasdaszx67asdmklo,voidwwjt():

字符串为:as,则应输出6。intfun(irtw)

SincludeO(

WincludeOintk,s=0;

ttincludeOdo

voidwjt();{s=s+(w%10)*(w%10);

intfun(char*str,charw=w/10;

*substr)}while(w!=0);

if(s%5==0)k=l;

inti,n=0;elsek=0;

return(k);elsem=0;

第50题题号:411elsem=-l;

功能:对任意输入的x,用下式计returnm;

算并输出y的值。第51题题号:320

-1x<0功能:在键盘上输入一个3行3列

y=0x=0矩阵的各个元素的值(值

1x>0为整数),然后输出主对角

SincludeO线元素的积,并在fun()

voidwwjt();函数中输出。

intfun(intn)ttinclude<>

(voidwwjt();

答案:intm;main()

if(n<0)(

m=-l;inti,j,s,a⑶⑶;:

elsefor(i=0;i<3;i++)

if(n-0)m=0;(

elsem=l;for(j=0;j<3;j++)

returnm;scanf(〃%d〃,&a[i][j]);

或)

intm;s=fun(a);

if(n>=0)printf("Sum二%d\n〃,s);

if(n>0)wwjt();

m=l;)

intfun(inta[3][3]))

(if(*(ptr+i)<=,z'&&

intsum;*(ptr+i)>=a||*(ptr+i)<=7:

inti,j;&&*(ptr+i)>='A')

sum=1;{*(ptr+j)=*(ptr+i);

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

sum=sum*a[i][i];*(ptr+j)='\0';

returnsum;return(j);

第52题题号:318第53题题号:357

/功能:输入一个字符串,过滤此串,功能:根据整型形参明计算如下

只保留串中的字母字公式的值:

符,并统计新生成串中包含y=l/5+l/6+l/7+l/8+

的字母个数。1/9+1/10...+l/(m+5)

例如:输入的字符串为ab234$df4,例如:若m=9,则应输出:

新生成的串为abdf。#include<>

Sinclude<>voidwwjt();

ttinclude<>doublefun(intm)

#defineN80(

voidwwjt();doubley=0;

fun(char*ptr)inti;

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

inti,j;{y+=(i+5);}

for(i=0,j=0;*(ptr+i)!=\0*;i++return(y);

第54题题号:367*b二k;

功能:找出一批正整数中的最大的第56题题号:353

偶数。功能:对长度为7个字符的字符串,

ttinclude<>除首、尾字符外,将其

voidwwjt();余5个字符按降序排列。

intfun(inta[],intn)例如:原来的字符串为CEAedca,排

(序后输出为。edcEAa。

inti,amax=-l;ttincludeO

for(i=0;i<n;i++)#include<>

if(a[i]%2==0)ttincludeO

if(a[i]>amax)amax=a[i];voidwjt();

returnamax;voidfun(char*s,intnum)

第55题题号:374(

功能:编写函数实现两个数据的交inti,j;

换,在主函数中输入任chart;

意三个数据,调用函数对这for(i=l;i<num-l;i++)

三个数据从大到小排序。for(j=i+l;j<num-l;j++)

ttincludeOif(s[i]<s[j])

voidwjt();

voidswap(int*a,int*b){t=s[i];s[i]=s[j];s[j]=t;}

{intk;第57题题号:409

k二*a;题目:输入华氏温度求摄氏温度。

转换公式为c=5/9(f-32),

输出结果取两位小数。功能:求一个四位数的各位数字的

voidwwjt();立方和

doublefun(doublem)include<>

(voidwjt();

答案:floatn;intfun(intn)

n=*(m-32);(

returnn;intd,k,s=0;

第58题题号:324while(r.>0)

功能:能计算从1开始到n的自然{d=n%10;

数中偶数的平方的和,n由s+=d*d*d;

键盘输入,并在main。函数n/=10;

中输出。(n是偶数)

温馨提示

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

评论

0/150

提交评论