资源描述
一、程序设计 共113题
第1题 题号:319
#include "stdio.h"
void wwjt();
int fun(int m)
{
int i,k=1;
if(m<=1) k=0;
for(i=2;i<m;i++)
if(m%i==0) k=0;
return k;
}
第2题 题号:351
-----------
功能:请编一个函数void fun(int tt[M][N],int pp[N]),
tt指向一个M行N列的二维数组,求出二维数组每列
中最大元素,并依次放入pp所指一维数组中。二维
数组中的数已在主函数中赋予。
#include<conio.h>
#include<stdio.h>
#define M 3
#define N 4
void wwjt();
void fun(int tt[M][N],int pp[N])
{
int i,j;
for(j=0;j<N;j++)
{
pp[j]=tt[0][j];
for(i=1;i<M;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)
z=sin(x)/((cos(x)+4)
#include <math.h>
#include<stdio.h>
void wwjt();
double y(float x)
{
double z;
if(x>10) z=exp(x);
else if(x>-3) z=log(x+3);
else z=sin(x)/(cos(x)+4);
return(z);
}
第4题 题号:334
功能:求给定正整数n以的素数之积。(n<28)
#include <stdio.h>
#include"conio.h"
void wwjt();
long fun(int n)
{
long i,k;
long s=1;
for(i=2;i<=n;i++)
{for(k=2;k<i;k++)
if(i%k==0)break;
if(k==i)s=s*i;
}
return s;
}
第5题 题号:333
功能:计算并输出给定整数的所有因子之积(包括自身)。
规定这个整数的值不大于50。
#include <stdio.h>
#include"conio.h"
void wwjt();
long int fun(int n)
{
long s=1,i;
for(i=2;i<=n;i++)
if(n%i==0)s=s*i;
return s;
}
第6题 题号:50
功能:求出菲波那契数列的前一项与后一项之比的极限的
近似值例如:当误差为0.0001时,函数值为0.618056。
#include <stdio.h>
#include "math.h"
void wwjt();
float fun()
{
float f1=1,f2=1,f3;
float r1=2,r2;
do
{r2=r1;
r1=f1/f2;
f3=f1+f2;
f1=f2;
f2=f3;
}while(fabs(r1-r2)>1e-4);
return r1;
}
第7题 题号:394
功能:产生20个[30,120]上的随机整数放入二维数组
a[5][4]中, 求其中的最小值。
#include "stdlib.h"
#include <stdio.h>
void wwjt();
int amin(int a[5][4])
{
int i,j,s;
s=a[0][0];
for(i=0;i<5;i++)
for(j=0;j<4;j++)
if(s>a[i][j])s=a[i][j];
return(s);
}
第8题 题号:337
功能:将两个两位数的正整数a、b合并形成一个整数放在
c中。合并的方式是:将a数的十位和个位数依次放
在c数的百位和个位上, b数的十位和个位数依次放
在c数的十位和千位上。
例如:当a=45,b=12。调用该函数后,c=2415。
include <stdio.h>
void wwjt();
void fun(int a, int b, long *c)
{
*c=a/10*100+a%10+b/10*10+b%10*1000;
}
第9题 题号:388
功能:编写函数判断一个整数能否同时被3和5整除,若能
则返回值为1,否则为0。调用该函数求出15~300之
间能同时被3和5整除的数的个数。
#include <stdio.h>
void wwjt();
int sum(int n)
{
if(n%3==0&&n%5==0) return(1);
return(0);}
第10题 题号:16
功能:编写函数fun求1!+2!+3!+ …… +n!的和,在main函
数中由键盘输入n值,并输出运算结果。请编写fun
函数。
例如:若n值为5,则结果为153。
#include<stdio.h>
void wwjt();
long int fun(int n)
{
int i;
float f=1,s=0;
for(i=1;i<=n;i++)
{f=f*i;
s=s+f;}
return s;
第11题 题号:329
功能:对某一正数的值保留2位小数,并对第三位进行四舍
五入。
#include <stdio.h>
#include"conio.h"
void wwjt();
double fun(float h)
{
int i;
i=(int)(h*1000)%10;
if(i>=5)
return(int)(h*100+1)/100.0;
else
return(int)(h*100)/100.0;
第12题 题号:410
功能:编写函数fun将一个数组中的值按逆序存放,并在
main()函数中输出。
例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。
#include <stdio.h>
#define N 5
void wwjt();
int fun(int arr[],int n)
{
int i,t;
for(i=0;i<n/2;i++)
{ t=arr[i];
arr[i]=arr[n-1-i];
arr[n-1-i]=t;
}
第13题 题号:327
功能:能计算从1开始到n的自然数的和,n由键盘输入,
并在main()函数中输出。
#include <stdio.h>
void wwjt();
int fun(int n)
{
int sum,i;
sum =0;
for(i=1;i<=n;i++)
{sum=sum+i;}
return(sum);
第14题 题号:507
功能:编写函数fun求一个字符串的长度,在main函数中
输入字符串,并输出其长度。
#include <stdio.h>
void wwjt();
int fun(char *p1)
{
char *p;
int n=0;
p=p1;
while(*p++)
n++;
return n;
第15题 题号:44
功能:求出二维数组周边元素之和,作为函数值返回。二
维数组的值在主函数中赋予。
#define M 4
#define N 5
#include <stdio.h>
void wwjt();
int fun(int a[M][N])
{
int s=0;
int i,j;
for(i=0;i<M;i++)
s=s+a[i][0]+a[i][N-1];
for(j=1;j<N-1;j++)
s=s+a[0][j]+a[M-1][j];
return s;
第16题 题号:364
功能:求一个四位数的各位数字的立方和。
#include <stdio.h>
void wwjt();
int fun(int n)
{
int d,s=0;
while (n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
return s;
第17题 题号:339
功能:判断整数x是否是同构数。若是同构数,函数返回1;
否则返回0。x的值由主函数从键盘读入,要求不大
于100。
说明:所谓“同构数”是指这样的数,这个数出现在它的
平方数的右边。
例如:输入整数5,5的平方数是25,5是25中右侧的数,所
以5是同构数。
#include <stdio.h>
void wwjt();
int fun(int x)
{
int k;
k=x*x;
if((k%10==x)||(k%100==x))
return 1;
else
return 0;
第18题 题号:331
功能:找出一个大于给定整数且紧随这个整数的素数,并
作为函数值返回。
#include <stdio.h>
#include"conio.h"
void wwjt();
int fun(int n)
{
int i,k;
for(i=n+1;;i++){
for(k=2;k<i;k++)
if(i%k==0)
break;
if(k==i)
return(i);
}
第19题 题号:317
功能:求出N×M整型数组的最大元素及其所在的行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
的一个)。
例如:输入的数组为:
1 2 3
4 15 6
12 18 9
10 11 2
求出的最大数为18,行坐标为2,列坐标为1。
#define N 4
#define M 3
#include <stdio.h>
void wwjt();
int Row,Col;
int fun(int array[N][M])
{
int max,i,j;
max=array [0][0];
Row=0;
Col=0;
for(i=0;i<N;i++)
{for(j=0;j<M;j++)
if(max<array [i][j])
{max=array [i][j];
Row=i;
Col=j;}
}
return(max);
第20题 题号:360
【程序设计】
功能:把20个随机数存入一个数组,然后输出该数组中的
最大值。
#include <stdio.h>
#define VSIZE 20
void wwjt();
int vector[VSIZE] ;
int fun(int list[],int size)
{
int i,max=0;
for(i=1; i <size; i++)
if(list[max]<list[i])
max=i;
return max;
第21题 题号:355
功能:对长度为8个字符的字符串,将8个字符按降序排列。
例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
void wwjt();
void fun(char *s,int num)
{
int i,j;
char t;
for(i=0;i<num;i++)
for(j=i+1;j<num;j++)
if(s[i]<s[j])
{ t=s[i];s[i]=s[j];s[j]=t;}
第22题 题号:405
功能:编写函数fun计算下列分段函数的值:
x^2+x+6 x<0且x≠-3
f(x)= x^2-5x+6 0≤x<10且x≠2及x≠3
x^2-x-1 其它
#include <stdio.h>
void wwjt();
float fun(float x)
{
float y;
if (x<0 && x!=-3.0)
y=x*x+x+6;
else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0)
y=x*x-5*x+6;
else y=x*x-x-1;
return y;
第23题 题号:338
功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)
例如:输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
100 400 700
200 500 800
300 600 900
#include <stdio.h>
void wwjt();
int fun(int array[3][3])
{
int i,j,t;
for(i=0; i < 3; i++)
for(j=0; j < i; j++)
{ t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t; }
第24题 题号:392
功能:求一批数中最大值和最小值的积。
#define N 30
#include "stdlib.h"
#include <stdio.h>
void wwjt();
int max_min(int a[],int n)
{
int i,max,min;
max=min=a[0];
for(i=1;i<n;i++)
if(a[i]>max) max=a[i];
else if(a[i]<min) min=a[i];
return(max*min);
第25题 题号:407
功能:编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),
其中d为1-9的数字。
例如:3+33+333+3333+33333(此时d=3,n=5),d和n在主函
数中输入。
#include <stdio.h>
void wwjt();
long int fun(int d,int n)
{
long int s=0,t=0;
int i;
for(i=1;i<=n;i++)
{ t=t+d;
s=s+t;
d=d*10;
}
return s;
第26题 题号:395
-----------------------------------------------
功能:求n阶方阵主、副对角线上的元素之积。
------------------------------------------------*/
#define N 4
#include "stdlib.h"
#include <stdio.h>
void wwjt();
float mul(int arr[][N])
{
int i,j;
float t=1;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(i==j||i+j==N-1)
t=t*arr[i][j];
return(t);
第27题 题号:42
功能:从字符串s中删除指定的字符c。
#include <stdio.h>
void wwjt();
fun(char s[],char c)
{
int i,k=0;
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,
则函数的值为76.600000。
#include <stdio.h>
void wwjt();
float fun(int a[],int n)
{
int i;
float y=0;
for(i=0;i<n;i++)
y+=a[i];
y=y/n;
return y;
第29题 题号:348
功能:从低位开始取出长整型变量s中偶数位上的数,依次
构成一个新数放在t中。
例如:当s中的数为:7654321时,t中的数为:642。
#include <stdio.h>
void wwjt();
long fun (long s,long t)
{
long sl=10;
s /= 10;
t = s % 10;
while(s > 0)
{ s = s/100;
t = s%10*sl + t;
sl = sl * 10;
----------------------
功能:编写函数求3!+6!+9!+12!+15+18!+21!。
#include <stdio.h>
void wwjt();
float sum(int n)
{
int i,j;
float t,s=0;
for(i=3;i<=n;i=i+3)
{t=1;
for(j=1;j<=i;j++)
t=t*j;
s=s+t;}
return(s);
第31题 题号:397
功能:编写函数fun(str,i,n),从字符串str中删除第i个
字符开始的连续n个字符(注意:str[0]代表字符串
的第一个字符)。
#include <stdio.h>
void wwjt();
fun(char str[],int i,int n)
{
while(str[i+n-1])
{
str[i-1]=str[i+n-1];
i++;
}
str[i-1]='\0';
第32题 题号:29
功能:对任意输入的 x,用下式计算并输出 y 的值。
5 x<10
y= 0 x=10
-5 x>10
#include<stdio.h>
void wwjt();
int fun(int n)
{
答案: int m;
if(n<10)
m=5;
else
if(n==10) m=0;
else m=-5;
return m;
或
int m;
if(n>=10)
if(n>10)
m=-5;
else m=0;
else m=5;
return m;
第33题 题号:323
功能:求1到w之间的奇数之和。(w是大于等于100小于等
于1000的整数)
#include <stdio.h>
#include"conio.h"
void wwjt();
long fun(int w)
{
long y=0;
int i;
for(i=1;i<=w;i++)
if(i%2==1)y+=i;
return y;
第34题 题号:312
功能:调用函数fun判断一个三位数是否"水仙花数"。
在main函数中从键盘输入一个三位数,并输
出判断结果。请编写fun函数。
说明:所谓"水仙花数"是指一3位数,其各位数字立方和
等于该数本身。
例如:153是一个水仙花数,因为153=1+125+27。
#include <stdio.h>
void wwjt();
int fun(int n)
{
int bw,sw,gw;
bw=n/100;sw=(n-bw*100)/10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1;
else return 0;
第35题 题号:378
功能:编写函数用冒泡排序法对数组中的数据进行从小到
大的排序。
#include <stdlib.h>
#include<stdio.h>
void wwjt();
void sort(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(a[j]>a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
第36题 题号:504
功能:编写程序打印如图1所示图形。
*
***
*****
*******
*****
***
*
要求:要求使用abs()。
#include <stdio.h>
#include "math.h"
void wwjt();
void fun(int i)
{
答案: for(m=-i;m<=i;m++)
{
for(n=0;n<abs(m);n++) printf(" ");
for(n=0;n<7-2*abs(m);n++) printf("*");
printf("\n");
}
第37题 题号:342
功能:在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出矩阵第一行与第三行元素之和,
并在fun()函数中输出。
#include <stdio.h>
void wwjt();
main()
{
int i,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=%d\n",s);
wwjt();
}
int fun(int a[3][3])
{
int sum;
int i,j;
sum=0;
for(i=0;i<3;i+=2)
for(j=0;j<3;j++)
sum=sum+a[i][j];
return sum;
第38题 题号:382
功能:给定n个数据, 求最小值出现的位置(如果最小值
出现多次,求出第一次出现的位置即可)。
#include <stdio.h>
void wwjt();
int station(int s[],int n)
{
int i,k;
k=0;
for(i=1;i<n;i++)
if(s[i]<s[k]) k=i;
return(k);
第39题 题号:62
功能:求5行5列矩阵的主、副对角线上元素之和。注意,
两条对角线相交的元素只加一次。
例如:主函数中给出的矩阵的两条对角线的和为45。
#include <stdio.h>
#define M 5
void wwjt();
int fun(int a[M][M])
{
int s=0;
int i,j;
for(i=0;i<M;i++)
s=s+a[i][i]+a[i][M-1-i];
s=s-a[(M-1)/2][(M-1)/2];
return s;
第40题 题号:503
题目:分别统计字符串中字母、数字、空格和其他字符出现的
次数(字符长度小于80)。
#include <stdio.h>
void wwjt();
/*-全局变量,a用于保存字母个数、num用于保存数字个数
b用于保存空格个数、other用于保存其他字符字数*/
int a=0,num=0,b=0,other=0;
void count(char c[])
{
答案: int i;
for(i=0;c[i]!='\0';i++)
if((c[i]>='A'&&c[i]<='Z')||(c[i]>='a'&&c[i]<='z'))
a=a+1;
else if (c[i]>='0'&&c[i]<='9')
num=num+1;
else if (c[i]==' ')
b=b+1;
else
other=other+1;
第41题 题号:387
功能:求一批数中最大值和最小值的差。
#define N 30
#include "stdlib.h"
#include <stdio.h>
void wwjt();
int max_min(int a[],int n)
{
int i,max,min;
max=min=a[0];
for(i=1;i<n;i++)
if(a[i]>max) max=a[i];
else if(a[i]<min) min=a[i];
return(max-min);
}
第42题 题号:347
功能:把20个随机数存入一个数组,然后输出该数组中的
最小值。其中确定最小值的下标的操作在fun函数中
实现,请给出该函数的定义。
#include <stdio.h>
#define VSIZE 20
void wwjt();
int vector[VSIZE] ;
int fun(int list[],int size)
{
int i,min=0;
for(i=1; i <size; i++)
if(list[min]>list[i])
min=i;
return min;
第43题 题号:365
功能:求1到100之间的偶数之积。
#include <stdio.h>
void wwjt();
double fun(int m)
{
double y=1;
int i;
for(i=1;i<=m;i++)
if(i%2==0)y*=i;
return y;
第44题 题号:366
功能:求一组数于平均值的数的个数。
例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函
数值为3。
#include <stdio.h>
void wwjt();
int fun(int a[],int n)
{
int i,k=0;
float s=0,ave;
for(i=0;i<n;i++)
s+=a[i];
ave=s/n;
printf("%f ",ave);
for(i=0;i<n;i++)
if(a[i]>ave)k++;
return k;
第45题 题号:361
例如:输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
200 400 600
800 1000 1200
1400 1600 1800
#include <stdio.h>
void wwjt();
int fun(int array[3][3])
{
int i,j;
for(i=0; i < 3; i++)
for(j=0; j < 3; j++)
array[i][j]=array[i][j]*2;
第46题 题号:373
功能:用函数求fibonacci数列前n项的和。
说明:fibonacci数列为数列的第一项值为1,第二项值也
为1,从第三项开始,每一项均为其前面相邻两项
的和。
例如:当n=28时,运行结果:832039
include <stdio.h>
void wwjt();
long sum(long f1,long f2)
{
long f,k=f1+f2;
int i;
for(i=3;i<=28;i++)
{f=f1+f2;
k=k+f;
f1=f2;
f2=f;
}
return(k);
第47题 题号:340
功能:编写一个函数,该函数可以统计一个长度为2的字符
串在另一个字符串中出现的次数。
例如:假定输入的字符串为:asdasasdfgasdaszx67asdmklo,
字符串为:as,则应输出6。
#include<stdio.h>
#include<string.h>
#include<conio.h>
void wwjt();
int fun(char *str,char *substr)
{
int i,n=0;
for(i=0;i<=strlen(str)-2;i++)
if((str[i]==substr[0])&&(str[i+1]==substr[1]))
n++;
return n;
第48题 题号:322
功能:判断一个整数w的各位数字平方之和能否被5整除,
可以被5整除则返回1,否则返回0。
#include <stdio.h>
#include"conio.h"
void wwjt();
int fun(int w)
{
int k,s=0;
do
{s=s+(w%10)*(w%10);
w=w/10;
}while(w!=0);
if(s%5==0)k=1;
else k=0;
return(k);
第50题 题号:411
功能:对任意输入的 x,用下式计算并输出 y 的值。
-1 x<0
y= 0 x=0
1 x>0
#include<stdio.h>
void wwjt();
int fun(int n)
{
答案: int m;
if(n<0)
m=-1;
else
if(n==0) m=0;
else m=1;
return m;
或
int m;
if(n>=0)
if(n>0)
m=1;
else m=0;
else m=-1;
return m;
第51题 题号:320
功能:在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的积,并在fun()
函数中输出。
#include <stdio.h>
void wwjt();
main()
{
int i,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=%d\n",s);
wwjt();
}
int fun(int a[3][3])
{
int sum;
int i,j;
sum=1;
for(i=0;i<3;i++)
sum=sum*a[i][i];
return sum;
第52题 题号:318
/功能:输入一个字符串,过滤此串,只保留串中的字母字
符,并统计
展开阅读全文