-3)z=log(x+3);elsez=sin(x)/(cos(x)+4);return(z);}第4题题号:334功能:求给定正整数n以内的 " />
1/80
一、程序设计共口3题
第1题题号:319
#include"stdio.h"
voidwwjt();
intfun(intm){inti,k=l;
if(m<=l)k=0;
for(i=2;i
if(m%i==0)k=0;
returnk;}第2题题号:351
功能:
i青编一个函数voidfun(int
tt[M][N]Jntpp[N]),
2/80
tt指向一个M行N列的二维数
组,求出二维数组每列
中最大元素,并依次放入pp所
指一维数组中。二维
数组中的数已在主函数中赋
予。
#include
#include
#defineM3
#defineN4
voidwwjt();
voidfun(inttt[M][N],intpp[N]){intij;
for(j=0;j
for(i=l;i
if(tt[i][j]>pp[j])
PP[j]=tt[i][j];}第3题题号:375
功能:
从键盘上输入任意实数,求出其
所对应的函数值。z=e的x次幕(x>10)z=log(x+3)(x>-
3/80
3)z=sin(x)/((cos(x)+4)#include
#include
voidwwjt();
doubley(floatx){doublez;
if(x>10)z=exp(x);
elif(x>-3)z=log(x+3);elz=sin(x)/(cos(x)+4);return(z);}第4题题号:334
功能:
求给定正整数n以内的素数之积。(*28)
#include
#include,,
longfun(intn){longi,k;
longs=l;
for(i=2;i<二n;i++)
{for(k=2;k
if(i%k==O)break;
if(k==i)s=s*i;}returns;}第5题题号:333
4/80
功能:
计算并输出给定整数的所有因子之积(包括自身)。
规定这个整数的值不大于50o
#include
#include"conio.h"
voidwwjt();
longintfun(intn)
{longs=l,i;
for(i=2;i<二n;i++)
if(n%i==0)s=s*i;
returns;}第6题题号:50
功能:
求出菲波那契数列的前一项与
后一项xx的极限的
近似值例如:
当误差为
0.0001
时,函数值为
0.618056。
5/80
#include
include"math.h"
voidwwjt();
floatfun(){floatfl=l,f2=l,f3;
floatrl=2,r2;
do
{r2=rl;
rl=fl/f2;
f3=fl+f2;
fl=f2;
f2=f3;
}while(fabs(rl-r2)>le-4);
returnrl;}第7题题号:394
功能:
产生20个[30,120]上的随机整
数放入二维数组
a⑸⑷中,求其中的最小值。
#include"stdlib.h"
#include
6/80
voidwwjt();
intamin(inta[5][4]){inti,j,s;
s=a[0][0];
for(i=0;i<5;i++)
for(j=0;j<4;j++)
if(s>a[i]U])s=a[i]D];
return(s);
}第8题题号:337
功能:
将两个两位数的正整数a、b合并形成一个整数放在
CXXo合并的方式是:
将a数的十位和个位数依次放
在c数的百位和个位上,b数的十位和个位数依次放
在c数的十位和千位上。
例如:
当a=45,b=12o调用该函数后,c=2415o
inelude
voidwwjt();
voidfun(inta,intb,long*c){
7/80
*c=a/10*100+a%10+b/10*10+b%10*1000;}第9题题号:388
功能:
编写函数判断一个整数能否同时被3和5整除,若能
则返回值为1,否则为0。调用该函数求出15^300之
间能同时被3和5整除的数的个数。
#include
voidwwjt();
intsumfintn){if(n%3==0&&n%5==0)return
(l);return
(0);}
第10题题号16
功能:
编写函数fun求l!+2!+3!+〃〃+n!的和,在main函
数中由键盘输入n值,并输出运算结果。请编写fun
函数。
例如:
若n值为5,则结果为153。
#include
voidwwjt();
8/80
longintfun(intn){inti;
floatf=l,s=O;
for(i=l;i<=n;i++)
s=s+f;}
returns;
第11题题号:329
功能:
对某一正数的值保留2位小数,intfun(intn){intsumj;
sum=0;
for(i=l;i<=n;i++)
{sum=sum+i;}
return(sum);
并对第三位进行四舍
五入。
#include
#include"conio.h"
voidwwjt();
doublefun(floath){inti;
9/80
i=(int)(h*1000)%10;
if(i>=5)
return(int)(h*100+l)/
100.0;
el
return(int)(h*100)/
100.0;
第12题题号:410
功能:
编写函数fun将一个数组中的
值按逆序存放,并在
main()函数中输出。
例如:
原来存顺序为86541。要求
改为:14568。
#include
#defineN5
voidwwjt();
intfun(intarr[],intn){inti,t;
10
for(i=0;i
{t=arr[i];
arr[i]=arr[n-l-i];
arr[n-l-i]=t;}B13题题号:327
功能:
能计算从1开始到n的自然数
的和,n由键盘输入,并在main()函数中输出。
#include
voidwwjt();第14题题号:507
功能:
编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其XX。
#include
voidwwjt();
intfun(char*pl){char*p;
intn=0;
P=P1;
while(*p++)
n++;
returnn;
11
第15题题号:44
功能:
求出二维数组周边元素之和,作为函数值返回。二
维数组的值在主函数中赋予。
#defineM4
#defineN5
#include
voidwwjt();
intfun(inta[M][N]){ints=0;
intij;
for(i=0;i
s=s+a[i][0]+a[i][N-l];for(j=l;j
第16题题号:364
功能:
求一个四位数的各位数字的立方和。
#inelude
intfun(intn){intd,s=O;
while(n>0)
{d=n%10;
s+=d*d*d;
n/=10;}returns;
12/80
第17题题号:339
功能:
判断整数x是否是同构数。若
是同构数,函数返回1;
否则返回0。x的值由主函数从
键盘读入,要求不大
于100o
说明:
所谓“同构数〃是指这样的数,
这个数岀现在它的
平方数的右边。
例如:
输入整数5,5的平方数是25,
5是25xx右侧的数,所
以5是同构数。
^include
voidwwjt();
intfun(intx){intk;
13/80
k=x*x;
if((k%10==x)||(k%100==x))
return1;
el
return0;
第18题题号:331
功能:
找出一个大于给定整数且紧随
这个整数的素数,并
作为函数值返回。
#include
#include"conio.h"
voidwwjt();
intfun(intn){inti,k;for(i=n+l;;i++){
for(k=2;k
if(i%k==O)
break;
if(k==i)
return(i);}第19题题号:317
14/80
功能:
求出NXM整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,
选择位置在最前面的一个)。
例如:
输入的数组为:
910112
求出的最大数为18,行坐标为2,列坐标为1。
#defineN4
#defineM3
#include
voidwwjt();
intRow,Col;
intfun(intarray[N][M]){
intmaxJJ;
max=array[0][0];
Row=0;
Col=0;
for(i=0;i
{for(j=0;j
15/80
if(max
{max=array[i][j];
Row=i;
Col=j;}}return(max);
第20题题号:360
【程序设计】功能:
把20个随机数存入一个数组,
然后输出该数组中的
最大值。
#include
#defineVSIZE20
voidwwjt();
intvector[VSIZE];
intfun(intlist[],intsize)voidwwjt();
floatfun(floatx){floaty;
if(x<0&&x!=・
3.0)
y=x*x+x+6;
elif(x>=0&&x<
16/80
10.0&&x!=
2.0&&x!二
3.0){inti,max=0;
for(i=l;i
if(list[max]
max=i;
returnmax;
第21题题号:355
功能:
对xx为8个字符的字符串,
将8个字符按降序排列。
例如:
原来的字符串为CEAedcab,排序
后输出为edcbaECAo
#include
#include
#include
voidwwjt();
voidfun(char*s,intnum){intij;
17/80
chart;
for(i=0;ivnum;i++)
for(j=i+l;j
if何i]
{t=s[i];s[i]=sD];s[j]=t;}
第22题题号:405
功能:
编写函数fun计算下列分段函
数的值:
xA2+x+6x<0且
x#-3
f(x)=xA2-5x+60
且xH2及xH3
xA2-x-l其它
#include
ely=x*x-x-l;
returny;
第23题题号:338
18/80
功能:
编写程序,实现矩阵(3行3列)的转置(即行列互换)
例如:
输入下面的矩阵:
100200300
400500600
700800900
程序输出:
100400700
200500800
300600900
#include
voidwwjt();
intfun(intarray⑶[3]){
intij,t;
for(i=0;i<3;i++)for(j=0;j
array[i][j]=array[j][i];array[j][i]=t;}
第24题题号:392
19/80
功能:
求一批数中最大值和最小值的积。
#defineN30
#include"stdlib.h"
#inelude
voidwwjt();
intmax_min(inta[],intn){inti,max,min;
max=min=a[0];
for(i=l;ivn;i++)
if(a[i]>max)max=a[i];
elif(a[i]
return(max*min);
第25题题号:407
功能:
编写函数fun求
sum二d+dd+ddd+〃〃+dd.・・d(n个d),if(i==j||i+j==N-l)t=t*arr[i][j];return(t);
第27题题号:42
20/80
功能:
从字符串sxx删除指定的字符Co
#inelude
voidwwjt();
fun(chars[],charc){其中d为1-9的数字。
例如:3+33+333+33+333(此时
d=3,n=5),d和n在主函
数中输入。
#include
voidwwjt();
longintfun(intd,intn){longints=O,t=O;
inti;
for(i=l;i<二n;i++)
{t=t+d;
s=s+t;
d=d*10;}returns;
第26题题号:395
21/80
功能:
求n阶方阵主、副对角线上的
元素之积。
-------------*/
#defineN4
#include"stdlib.h"
#include
voidwwjt();
floatmul(intarr[][N]){inti,j;
floatt=l;
for(i=0;i
for(j=0;j
for(i=0;s[i]!=,0';i++)if(s[i]!=c)s[k++]=s[i];s[k]=,0,;
第28题题号:311
功能:
计算n门课程的平均值,计算结果作为函数值返回。
例如:
若有5门课程的成绩是:92,76,69,58,88,
22/80
则函数的值为
76.6000。
#include
voidwwjt();
floatfun(inta[],intn){
inti;
floaty=0;
for(i=0;ivn;i++)
y+=a[i];
y=y/n;
returny;
第29题题号:348
功能:
从低位开始取出长整型变量s中偶数位上的数,依次
构成一个新数放在tXXo
例如:
当s中的数为:时,t中的数为:642o
#include
voidwwjt();
23/80
longfun(longs,longt){
longsl=10;
s/=10;
t=s%10;
while(s>0){s=s/100;
t=s%10*sl+1;
si=si*10;
功能:
编写函数求
3!+6!+9!+12!+15+18!+21!o
#include
voidwwjt();
floatsum(intn){intij;
floatt,s=0;
for(i=3;i<二n;i=i+3)
{t=l;
for(j=l;j<=i;j++)
24/80
s=s+t;}
return(s);
第31题题号:397
功能:
编写函数fun(str,i,n),从字
符串strxx删除第i个
字符开始的连续n个字符(注
意:
str[0]代表字符串
的第一个字符)。
#include
voidwwjt();
fun(charstr[],inti,intn){while(str[i+n-l]){str[i-l]=str[i+n-l];
i++;}str[i-l]=,Ol;
第32题题号29
功能:
对任意输入的x,用下式计算
并输出y的值。
5x<10
25/80
y=0x=10
-5x>10
#include
voidwwjt();intfun(intn){
答案:
intm;
if(n<10)
m=5;
el
if(n==10)m=0;
elm=-5;
returnm;或intm;
if(n>=10)
if(n>10)
m=-5;
elm=0;
elm=5;
returnm;
第33题题号:323
26/80
功能:
求1到w之间的奇数之和。(w是大于等于100小于等
于1000的整数)
#include
#include"conio.h"
voidwwjt();
longfun(intw){longy=0;
inti;
for(i=l;i<=w;i++)
if(i%2==l)y+=i;
returny;
第34题题号:312
功能:
调用函数fun判断一个三位数是否“水仙花数“。
在main函数中从键盘输入一个三位数,并输
出判断结果。请编写fun函数。
说明:
所谓”水仙花数”是指一3位数,其各位数字立方和等于该数本身。
例如:153是一个水仙花数,因为153二1+125+27。#include
27/80
voidwwjt();intfun(intn){intbw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%l
0;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw){
答案:
for(m=-i;m<=i;m++){
for(n=0;nvabs(m);n++)printf(“");
for(n=0;nv7・2*abs(m);n++)printf(”*”);
printf(”n“);
return1;
elreturn0;
第35题题号:378
功能:
编写函数用冒泡排序法对数组
中的数据进行从小到
大的排序。
#inelude
#include
voidwwjt();
voidsort(inta[],intn){inti,j,t;
for(i=0;i
for(j=0;j
28/80
if(aD]>aU+l])
{t=aU];
a[j]二a[j+l];
a[j+l]二t;}第36题题号:504
功能:
编写程序打印如图1所示图形。
****
*******
****要求:
要求使用abs()o
#inelude
include"math.h11
voidfun(inti)}
第37题题号:342
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出矩阵第一行与
第三行元素之和,并在fun()函数中输出。
#include
29/80
voidwwjt();
main(){inti,j,s,a[3][3];
for(i=0;i<3;i++){for(j=0;j<3;j++)
scanf(”%d”,&a[i][j]);}
s=fun(a);
printf(,,Sum=%dn,,,s);
wwjt();}intfunfinta[3][3]){intsum;
intij;
sum=0;
for(i=0;i<3;i+=2)
for(j=0;j<3;j++)
sum=sum+a[i][j];
returnsum;
第38题题号:382
功能:
给定n个数据,求最小值出现的位置(如果最小值出现多次,求出第一次出现的
位置即可)ofor(i=0;c[i]!='O';i++)#include
voidwwjt();
intstation(ints[],intn){inti,k;
k=0;
30/80
for(i=l;ivn;i++)
if(s[i]
return(k);
第39题题号:62
功能:
求5行5xx矩阵的主、副对角
线上元素之和。注意,
两条对角线相交的元素只加一
次。
例如:
主函数中给出的矩阵的两条对
角线的和为45。
#include
#defineM5
intfun(inta[M][M]){ints=0;
intij;
for(i=0;i
s=s+a[i][i]+a[i][M-l-i];
s=s-a[(M-l)/2][(M-l)/2];
returns;
31/80
第40题题号:503
题目:
分别统计字符串中字母、数字、
空格和其他字符出现的
次数(字符xx小于80)o
#include
voidwwjt();
/*•全局变量,a用于保存字母个数、
num用于保存数字个数
b用于保存空格个数、other用于保存
其他字符字数*/
inta=0,num=0,b=0,other=0;
voidcount(charc[]){
答案:
inti;if((c[i]>=lA,&&c[i]v=Z)11(叩]>=8&&玮]<=力)
a=a+l;
el讦
(c[i]>='0'&&c[i]<='9')
32/80
num二num+l;elif(c[i]=='')
b=b+l;el
other=other+l;第41题题号:387
功能:
求一批数中最大值和最小值的差。
#defineN30
#include"stdlib.h"
#include
voidwwjt();
intmax_min(inta[],intn){
inti,max,min;
max=min=a[0];
for(i=l;ivn;i++)
if(a[i]>max)max=a[i];elif(a[i]
号:347
33/80
功能:
把20个随机数存入一个数组,然后输出该数组中的
最小值。其中确定最小值的下标的操作在fun函数中
实现,请给出该函数的定义。
#include
#defineVSIZE20
voidwwjt();
intvector[VSIZE];intfun(intlist[],intsize){
inti’min=0;for(i=l;i
if(list[min]>list[i])
min=i;
returnmin;
第43题题号:365
功能:
求1到100之间的偶数之积。#include
voidwwjt();
intfun(intarray⑶[3]){
intij;
for(i=0;i<3;i++)#include
34/80
voidwwjt();
doublefun(intm){doubley=l;
inti;
for(i=l;i<=m;i++)
if(i%2==0)y*=i;
returny;
第44题题号:366
功能:
求一组数中大于平均值的数的
个数。
例如:
给定的一组数为
1,3,6,9,4,23,35,67,12,88时,函
数值为3。
#include
voidwwjt();
intfun(inta[],intn){inti,k=0;
floats=0,ave;
for(i=0;ivn;i++)
35/80
s+=a[i];
ave=s/n;
printf("%f舄ave);
for(i=0;ivn;i++)
if(a[i]>ave)k++;
returnk;
第45题题号:361
例如:
输入下面的矩阵:
100200300
400500600
700800900
程序输出:
200400600
8
14for(j=0;j<3;j++)array[i][j]=array[i][j]*2;第46题题号:373
36/80
功能:
用函数求fibonacci数列前n项的和。
说明:
fibonacci数列为数列的第一项值为1,第二项值也
为1,从第三项开始,每一项均为其前面相邻两项
的和。
例如:
当n=28时,运行结果:832039include
voidwwjt();
longsum(longfl,longf2){
Iongf,k=fl+f2;
inti;
for(i=3;i<=28;i++)
{f=fl+f2;
k=k+f;
fl=f2;
f2=f;}return(k);
第47题题号:340
37/80
功能:
编写一个函数,该函数可以统计一个长度为2的字符
串在另一个字符串中出现的次数。
例如:
假定输入的字符串为:
asdasdfgasdaszx67asdmklo,字符串为:
as,则应输出6o
#include
#include
#include
voidwwjt();
intfun(char*str,char*substr){
inti’n=0;
for(i=0;i<=strlen(strj・2;i++)
if((str[i]==substr[O])&&(str[i+l
]==substr[l]))
n++;
returnn;
第48题题号:322
38/80
功能:
判断一个整数w的各位数字平
xx和能否被5整除,
可以被5整除则返回1,否则返
回Oo
#include
#include"conio.h"
voidwwjt();
intfun(intw){intk,s=O;
do
{s=s+(w%10)*(w%10);
w=w/10;
}while(w!=0);
if(s%5==O)k=l;
elk=0;
return(k);
第50题题号:411
39/80
功能:
对任意输入的X,用下式计算并输出y的值。
-1x<0
y=ox=o
1x>0
#include
voidwwjt();
intfun(intn){
答案:
intm;
if(nvO)
m=-l;
el
if(n==O)m=0;
elm=l;
returnm;或
intm;
if(n>=0)
if(n>0)
m=l;
elm=0;
40/80
elm=-l;
returnm;
第51题题号:320
功能:
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()函数中输出。
#include
voidwwjt();
main(){inti,j,s,a[3]⑶;;
for(i=0;i<3;i++){for(j=0;j<3;j++)
scanf(”%cT,&a[i][j]);}
s=fun(a);
printf(,,Sum=%dn,,,s);
wwjt();}intfunfinta[3][3]){intsum;
intij;
sum=l;
for(i=0;i<3;i++)
sum=sum*a[i][i];
returnsum;
41/80
第52题题号:318
/功能:
输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字
母个数。
例如:
输入的字符串为ab234$df4,新
生成的串为abdfo
#include
#includevconio.h>
#defineN80
voidwwjt();
fun(char*ptr){intij;
for(i=0J=0;*(ptr+i)!='0';i++)
if(*(ptr+i)<=,z'&&
*(ptr+i)Xa'||*(ptr+i)v=Z&&
*(ptr+i)>='A,)
{*(ptr+j)=*(ptr+i);
j++;}
*(ptr+j)=,O,;
42/80
return(j);
第53题题号:357
功能:
根据整型形参m,计算如下公式
的值:
+++
+l/(m+5)
例如:
若m=9,则应输出:
1.168229
#include
voidwwjt();
doublefun(intm){doubley=0;
inti;
for(i=0;i<=m;i++)
{y+=
1.0/(i+5);}
return(y);
第54题题号:367
43/80
功能:
找出一批正整数中的最大的偶
数。
#include
(a[i]>amax)amax=a[i];returnamax;
第55题题号:374
功能:
编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数
据从大到小排序。#include
voidswap(int*a,int*b){intk;
k=*a;
*a=*b;
*b=k;
第56题题号:353
功能:
对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。
例如:
原来的字符串为CEAedca,排序后输出为CedcEAa。
#include
#include
#include
44/80
voidwwjt();
voidfun(char*s,intnum){
intij;
chart;
for(i=l;ivnum-l;i++)
for(j=i+l;j
{t=s[i];s[i]=s[j];s[j]=t;}第57题题号:409
题目:
输入华氏温度求摄氏温度。转换公式为(f・32),
输出结果取两位小数。
voidwwjt();
doublefunfdoublem){
答案:
floatn;returnn;
第58题题号:324
45/80
功能:
能计算从1开始到n的自然数
中偶数的平方的和,n由
键盘输入,并在main()函数中
输出。(n是偶数)
#include
voidwwjt();
intfun(intn){intsum,i;
sum=0;
for(i=2;i<=n;i二i+2){sum二sum+i*i;}return(sum);
第59题题号53
功能:
求一个四位数的各位数字的立
方和
inelude
voidwwjt();
intfun(intn){intd,k,s=O;
while(n>0)
{d=n%10;
s+=d*d*d;
46/80
n/=10;}returns;
第60题题号:389
功能:
编写函数求表达式的和(n的值
由主函数输入)。
例如:
当n=20时,表达式的值为
0.668771。
#include
voidwwjt();
doublesum(intn){floats=0;inti,k=l;
for(i=l;i<二n;i++)
{s=s+k*
1.0/i;
k=-k;}return(s);
第61题题号:350
/功能:
请编一个函数voidfun(inttt[M][N],intpp[N]),
47/80
tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所
指一维数组中。二维数组中的数已在主函数中赋予。
#include
#include
#defineM3
#defineN4
voidwwjt();
voidfun(inttt[M][N],intpp[N]){
intij;
for(j=0;j
for(i=l;i
if(tt[i][j]vpp[j])
PP[j]=tt[i][j];}第62题题号:356
功能:
求大于limdim小于100的整数)并且小于100的所有素数并放在aa数组中,该函
数返回所求出素数的个数。
#include
#include
#defineMAX100
voidwwjt();
48/80
intfun(intlim,intaa[MAX]){
intn=0;
intij;
for(i=lim;i<=100;i++)
{for(j=2;j
if(i%j==O)break;
if(j==i)aa[n++]=i;}returnn;
第63题题号:399
功能:
编写程序求无理数e的值并输
出。计算公式为:
当l/n!<
0.0001时
2.7182o
include
voidwwjt();
main(){floatfun();
printf("无理数e的值
49/80
是:
%fn",fun());
wwjt();}floatfun(){longintj;
inti,k;
doublee,jc;
i=l;
e=
0.0;
jc=
1.0;
while(jc>=
0.0001){e=e+jc;
j=l;
for(k=l;k<=i;k++)
jc=
1.0/j;
i++;
}returne;
50/80
第64题题号:346
功能:
将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格
隔开,用T结束输入。
#include
include"string.h,,
voidwwjt();
intfun(char*c,intstatus){
if(*c=='')return1;
el{if(status&&*c<='z,&&*c>='a')*c+='A'-'a';
return0;}第65题题号:359
功能:
实现两个整数的交换。
例如:
给a和b分别输入:60和65,输入为:
a=65b=60
#include
#include
voidwwjt();
voidfun(int*a,int*b){intt;
51/80
t=*a;*a=*b;*b=t;
第66题题号:386
功能:
用函数求N个[10,60]上的整数中能被5整除的最大
的数,如存在则返回这个最大值,如果不存在则返回0o
#defineN30
#include"stdlib.h"
#include
voidwwjt();
intfind(intarr[],intn){inti;
for(i=0;ivn;i++)
if(arr[i]%5==0&&arr[i]>m)
m=arr[i];
第67题题号:502
#include
题目:
用while语句求1〜100的累计
和。
voidwwjt();
intfun(intn){
52/80
答案:
inti=l,sum=0;
while(i<二n){sum=sum+i;
i++;}returnsum;
第68题题号:336
功能:
从字符串中删除指定的字符。
同一字母的大、小写
按不同字符处理。
例如:
若程序执行时输入字符串为:
turbocandborlandc++
从键盘上输入字符:
n,则输出
后变为:
turbocadbo
53/80
rladc++,如果输入的字符在字
符串中不存在,则字
符串照原样输出。
#include
voidwwjt();
intfun(chars[],intc){char*q=s;
for(;*q;q++)
if(*q!=c)*(s++)=*q;
*s=0;
第69题题号:376
功能:
从键盘上输入任意实数x,求出
其所对应的函数值。
z=(x-4)的二次幕(x>4)
z=x的八次幕(x>-4)
z=z=4/(x*(x+l))(x>-10)
z二|x|+20(其他)#include
#include
voidwwjt();
54/80
floaty(floatx){floatz;
if(x>4)z=sqrt(x-4);
elif(x>-4)z=pow(x,8);elif(x>-10)z=4/(x*(x+l));elz=fabs(x)+20;
return(z);
第70题题号:341
功能:
删除所有值为y的元素。数组元素中的值和y的值由
主函数通过键盘输入。
#include
#include
#include
#defineM20
voidwwjt();
voidfun(intbb[],int*n,inty){
intij;
for(i=0;i<*n;){if(bb[i]==y)
{for(j=i;j<*n;j++)bb[j]=bb[j+l];*n=*n-l;}el
i++;}第71题题号:56
55/80
功能:
找出一批正整数中的最大的偶数。
inelude
voidwwjt();
intfun(inta[],intn){
inti,amax=-l;
for(i=0;ivn;i++)
if(a[i]%2==0)if(a[i]>amax)amax=a[i];
returnamax;
第72题题号:379
功能:
给定n个数据,求最大值出现
的位置(如果最大值出
现多次,求出第一次出现的位置即可)。
#include
voidwwjt();
intstation(ints[],intn){inti,k;
k=0;
for(i=l;i<二n;i++)
56/80
if(s[i]>s[k])k=i;
return(k+l);
第73题题号:37
功能:
输入2个学生3门课的成绩,
计算学生成绩平均分,
课程平均分和最高分.
例如:
输入2名学生3门课的成绩分
别为92,87,68,56,
92,84则
学生1平均分:
82.33
学生2平均分:
77.33
课程1平均分:
74.00
课程2平均分:
89.50
57/80
课程3平均分:
76.00
最咼分为:92
#include
voidwwjt();
/*定义全局变量*/
/*学生成绩平均分*/
floatStuAgv[2];
/*课程平均分*/
floatCouAgv[3];
/*所有学生的所有课程最高分*/
floatMax=0;
广说明:
需要在下面函数中把题干要
求中的结果赋值到上面定义一变量中
*/
voidfun(floatscore⑵[3])
{
58/80
答案:
inti,j;
floatsum;
for(i=0;i<2;i++)/*计算第i个学生平均分*/{
sum=0;
for(j=0;j<3;j++)
sum=sum+score[i][j];StuAgv[i]=sum/3;}for(j=0;j<3;j++)/*计算第j门课的平均分*/{
sum=O;
for(i=0;i<2;i++)
sum=sum+score[i][j];CouAgv[j]=sum/2;}Max=score[0][0];
for(i=0;i<2;i++)
for(j=0;j<3;j++)if(Max<=score[i][j]){Max=score[i][j];}
return;
第74题题号:33
功能:
用do-while语句求1〜100的累计和。
#include
voidwwjt();
longintfun(intn){
59/80
答案:
inti=1,sum=0;do
{sum=sum+i;
i++;
}while(iv=n);
returnsum;
第75题题号:372
题目:
用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。
#include
#include
#defineN3
voidwwjt();
intsumfinta[][N]){inti,j,k=O;
for(i=0;i
for(j=N-l-i;j
k二k+a[i][j];
return(k);
第76题题号:326
60/80
功能:
求一个大于10的n位整数的后
ml位的数,并作为函
数值返回。
#include
#include"conio.h"
voidwwjt();
intfun(intw){intn=0;inti=l;
while(w>10)
{n=n+i*(w%10);
w/=10;
i*=10;}
returnn;
第77题题号:369
61/80
功能:
编写函数判断一个整数m的各
位数字之和能否被7整除,
可以被7整除则返回1,否则返
回0。调用该函数找出
100^200之间满足条件的所有数。
inelude
voidwwjt();
(intm){intk,s=O;
do
{s=s+m%10;
m=m/10;
}while(m!=0);
if(s%7==0)k=l;elk=0;
return(k);
第78题题号:332
功能:
根据整型参数n,计算如图公式的值。
#include
62/80
#include"conio.h"
voidwwjt();
tn){doublea=l;inti;
for(i=l;ivn;i++)
a=
1.0/(l+a);
returna;
第79题题号:349
功能:
从低位开始取出长整型变量s奇数位上的数,依次
构成一个新数放在t中。
例如:
当s中的数为:时,t中的数为:7531o
#include
voidwwjt();
longfun(longs」ongt){
longsl=10;
63/80
t=s%10;
while(s>0)
{s=s/100;
t=s%10*sl+1;
si=si*10;
第80题题号:401
若x、y为奇数,求x到y之间的奇数和;数,
则求x到y之间的偶数和。
#include
voidwwjt();
intfun(intx’inty){inti,s=0;
for(i=x;i<=y;i+=2)
s=s+i;
returns;
功能:
用辗转相除法求两个整数的最大公约数。
voidwwjt();
int(intn,intm){intr,t;
if(nvm){t=n;n=m;m=t;}
r=n%m;
while(r!=0)
若X、y为偶
#include
64/80
{n=m;m=r;r二n%m;}
return(m);
第83题题号:362
功能:
求给定正整数m以内的素数之和。
例如:
当m=20时,函数值为77。
#include
voidwwjt();
intfun(intm){inti,k,s=O;
for(i=2;i<=m;i++)
{for(k=2;k
if(i%k==O)break;
if(k==i)s=s+i;}returns;
第84题题号:398
功能:
编写函数fun求s=lAk+2Ak+3Ak
+……+NM的值,
65/80
(1的K次方到N的K次方的累
加和)。
#defineK4
#defineN5
#include
voidwwjt();
longfun(intn」ntk){longpower,sum=0;
intij;
for(i=l;i<=n;i++)
{power=i;
for(j=l;j
sum+=power;}returnsum;
第85题题号:391
功能:
将字符串中的小写字母转换为对应的大写字母,其它字符不变。
#inelude"
#include
voidwwjt();
voidchange(charstr[]){inti;
for(i=0;str[i]!='O';i++)if(str[i]>='a'&&str[i]<=,z,)
str[i]二str[i卜32;第86题题号:316
66/80
功能:
统计出若干个学生的平均成绩,最高分以及得最高
分的人数。
例如:
输入10名学生的成绩分别为92,87,68,56,92,
84,67,75,92,66,则输出平均成绩为
77.9,
最高分为92,得最高分的人数为3人。
#include
voidwwjt();
floatMax=0;
intJ=0;
floatfun(floatarray[],intn){
inti;floatsum=0,ave;
Max=array[0];
for(i=0;ivn;i++)
{if(Max
sum=sum+array[i];}ave=sum/n;
for(i=0;ivn;i++)if(array[i]==Max)J++;
67/80
return(ave);
第87题题号:381
功能:
求一批数中小于平均值的数的
个数。
#include
voidwwjt();
intaverage_num(inta[],intn){inti,sum=0,k=0;
doubleaverage;
for(i=0;ivn;i++)
sum=sum+a[i];
average=sum*
1.0/n;
for(i=0;ivn;i++)
if(average>a[i])k++;
return(k);
第88题题号:310
68/80
功能:
计算并输出给定整数n的所有
因子之和(不包括1与
自身)。
注意:
n的值不大于1000o
例如:
n的值为855时,应输出704。
#include
voidwwjt();
intfun(intn){ints=0,i;
for(i=2;ivn;i++)
if(n%i==0)s=s+i;
returns;
89题题号:501
#include
69/80
题目:
从键盘输入一个大写字母,要
求改用小写字母输出。
#include
voidwwjt();
charfun(charc){
答案:
c=c+32;
returnc;
第90题题号:400
功能:
编写main程序调用函数fact
求解从m个元素选n个元素的组合数的个数。计算公式是:
组合数=m!/(n!・(rrvn)!)。要求:
nn不能小于n,否则
应有容错处理。
说明:
函数fact(x)的功能是求xlo
#include
70/80
voidwwjt();
longfact(intx){longy;
inti;
y=i;
for(i=l;i<=x;i++)
y=y*i;
returny;}main(){intm,n;
longzhsgs;
printff"请输入m和n:
n");scanf("%d%d"/&m,&n);
while(m
nH);
scanf("%d%d"/&m,&n);}zhsgs=fact(m)/(fact(n)*fact(m-n));
printff"JA%d个元素选%01个元素的组合数的个数是:
%dn",m,n,zhsgs);wwjt();
第91题题号:54
功能:
求1到100之间的偶数之积。
#inelude
71/80
voidwwjt();
doublefun(intm){doubley=l;
inti;
for(i=l;i<=m;i++)
if(i%2==0)y*=i;
returny;
第92题题号:352
功能:
根据整型形参m,计算如下公式
的值:
++
I•■■IO
例如:
若m=9,则应输出:
1.414484
#inelude
voidwwjt();
doublefun(intm){doubley=0;
inti;
72/80
for(i=l;i<=m;i++)
{y+=
1.0/(2*i);}
return(y);
第93题题号:383
功能:
用函数实现字符串的复制,不
允许用strepyf)函数。
#include
voidwwjt();
voidcopy(charstrl[],charstr2[]){inti;
for(i=0;strl[i]!='0';i++)
str2[i]=strl[i];
str2[i]='O';
从键盘为一维整型数组输入10个整
数,调用fun函数
找出其中最小的数,并在main
函数中输出。
#include
73/80
voidwwjt();
intfun(intx[],intn){intmin);
min二刈0];
for(i=l;ivn;i++)
{if(x[i]
returnmin;
第95题题号:403
功能:
编写函数fun,求任一整数m的n次方。
inelude
voidwwjt();
longfun(intm’intn){longintx=l;
inti;
for(i=l;i<=n;i++)
x=x*m;
returnx;
第96题题号23
74/80
功能:
从键盘输入一个大于3的整数,调用函数fun判断
其是否素数,然后在main函数中输出相应的结论
信息。
例如:7是素数,8不是素数。请编写fun函数。素数是
仅能被1和自身整除的数include
voidwwjt();
intfun(intn){inti;
intj;
j=1;
for(i=2;ivn;i++)
{if(n%i==O)j=0;}returnj;
第97题题号:358
功能:
根据整型形参m,计算如下公式的值:
y=sin(m)*10o
例如:
若m=9,则应输出:
4.121185#include
75/80
#include"math.h"
voidwwjt();
doublefun(intm){doubley=0;
y=sin(m)*10;
return(y);
第98题题号:335
功能:
求一个n位自然数的各位数字
的积。(n是小于10的
自然数)
#include
#include"conio.h"
voidwwjt();
longfun(longn){longd,s=l;
while(n>0)
{d=n%10;
s*=d;
n/=10;}returns;
76/80
第99题题号:509
功能:
编写函数fun其功能是:
根据
整型形参m,计算如下
公式的值:
y=l+++
+„+l/(2m+l)
例如:
若m=9,则应输出:
2.133256
#include
voidwwjt();
doublefun(intm){doubley=l;
inti;
for(i=l;i<=m;i++)
{y+=
1.0/(2*i+l);}
return(y);
77/80
第100题题号:22
功能:
从键盘为一维整型数组输入10
个整数,调用fun
函数找出其中最小的数,并在
main函数中输出。
请编写fun函数。
#include,lstdio.h,'
voidwwjt();
intfun(intx[],intn)
{intmin,i;
min二刈0];
for(i=l;ivn;i++)
{if(x[i]
第101题题号:377
功能:
编写函数用选择排序法对数组中的数据进行从小到大的排序。
#include
78/80
#include
voidwwjt();
voidsort(inta[],intn){
int
for(i=0;i
{k=i;
for(j=i+l;jvn;j++)
if(a[k]>aU])k=j;
if(k!=i)
{t=a[i];
a[i]=a[k];
a[k]=t;}}
第102题题号:321
/功能:
编写函数fun其功能是:
根据整型形参m,计算如下
公式的值:
m是偶数)#include
79/80
voidwwjt();
doublefun(intm){
答案:
doubley=
0.0;
intij;
doubles=l;
for(i=2;i<=m;i+=2){for(j=i-l;j<=i;j++)
s=s*j;y=y+
1.0/s;}returny;
第103题题号:328
功能:
求k!(k(13),所求阶乘的值作为函数值返回。
(要求使用递归)
inelude
#include"conio.h"
voidwwjt();
longfunfintk){if(k>0)
return(k*fun(k-l));
80/80
elif(k==O)
returnIL;
第104题题号:354
功能:
求小于lim的所有素数并放在
aa数组中,该函数返回
所求出素数的个数。
#include
#include
#defineMAX100intfun(intlim,intaa[MAX]){intn=0;intij;
for(i=2;i<=lim;i++)
{for(j=2;j
if(i%j==O)break;
if(j==i)aa[n++]二i;}returnn;
第105题题号:325
81/80
功能:
在键盘上输入一个3行3列矩
阵的各个元素的值(值
为整数),然后输出主对角线元素的平方和,并在fun()函数中输出。
#include
voidwwjt();main(){inti,j,s,a[3][3];;
for(i=0;i<3;i++){for(j=0;j<3;j++)
scanf(”%cf,&a[i][j]);}
s=fun(a);
printf("Sum=%dn"/s);
wwjt();}intfunfinta[3][3]){intsum;
inti;
sum=O;
for(i=0;i<3;i++)
sum=sum+a[i][i]*a[i][i];returnsum;
第106题题号:390
功能:
编写函数求1YL00中奇数的平方和。结果为166650。
#include
voidwwjt();
82/80
floatsum(intn){floats=0;
inti;
for(i=l;i<二n;i=i+2)
••
s=s+ri;
return(s);
第107题题号:396
功能:
编写函数fun用比较法对主程序中用户输入的具有10个数据的数组a按由大到小排
序,并在主程序中输出排序结果。
#include
voidwwjt();
intfun(intarray[],intn){
intk,j,t;
for(k=0;k
for(j=k+l;j
if(array[k]
array[k]=array[j];
array[j]=t;}B108题题号:384
83/80
功能:
产生20个[30,120]上的随机整
数放入二维数组a[5][4]
中,求每行元素的和。
#include"stdlib.h"
#include
voidwwjt();
voidrow_sum(inta[5][4]」ntb[5]){intij;
for(i=0;i<5;i++)
{b[i]=0;
for(j=0;j<4;j++)
b[i]=b[i]+a[i][j];}B109题题号:368
84/80
功能:
求一分数序列,,,
的前n项之和。
说明:
每一分数的分母是前两项的分
母之和,每一分数的
分子是前两项的分子之和
例如:
求前20项之和的值为
32.660259。
#include
voidwwjt();
floatfun(intn){inti;
floatfl=l,f2=l,f3,s=0;
for(i=l;i<二n;i++)
{f3=fl+f2;
fl=f2;
f2=f3;s=s+f2/fl;}returns;
第110题题号:452
85/80
功能:
有一个一维数组score,内放10个学生的成绩,用一
个函数来求平均成绩。
个学生的成绩分别为92,87,68,56,92,84,
70,65,90,60则平均成绩为:
76.4000
#include
voidwwjt();
floataverage(floatarray[10]){
inti;
floataver,sum=array[0];for(i=l;i<10;i++)
sum=sum+array[i];aver=sum/10;
returnaver;
第111题题号:330
功能:
计算出k以内最大的10个能被13或17整除的自然数之
和。(k(3000)o
#include
#include"conio.h"
86/80
voidwwjt();
intfun(intk){inta=0,b=0;
while((k>=2)&&(b<10))
{if((k%13==0)11(k%17==0)){a=a+k;b++;}
k-;}returna;
第112题题号:363
功能:
求一个给定字符串中的字母的个数。
#include
voidwwjt();s[])return0;}{inti,k=0;
for(i=0;s[i]!='0';i++)
if(s[i]>='a,&&s[i]<=,z,||s[i]>=,
A*&&s[i]<='Z*)
k++;
returnk;
第113题题号:315
87/80
功能:
将主函数中输入的字符串反序
存放。
例如:
输入字符串〃abcdefg〃,则应
输出“gfedcba"。
#include
#ineludevconio.h>
#include
#defineN81
voidwwjt();
voidfun(char*str,intn){intij;
charc;
for(i=Ozj=n-l;i
/*或者
for(i=OJ=n-l;i
{c=*(str+i);
*(str+i)=*(str+j);
*(str+j)=c;}
88/80
第114题编写一程序,实现两个字符
串的连接(不用strcat()函数)。
#include
#inelude
main()
{intij;chara[10],b[10];gets
(a);gets(b);i=O,j=O;
while(a[i]!='O')i++;
while(b[j]!二、O')
a[i++]=b[j++];
a[i]二、O';
b[j]二、0】
printf(”%sn””a);}
本文发布于:2023-03-03 12:33:03,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1677817984120979.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:c语言题目.doc
本文 PDF 下载地址:c语言题目.pdf
留言与评论(共有 0 条评论) |