27、键盘上输入一个3行3列矩阵的各个元素的值(为整数) | 82 编写函数fun其功能是:根据整型形参m,计算如下 |
然后输出主对角线元素的积,并在fun()函数中输出。 | 公式的值:y=1/2!+1/4!+...+1/m!(m是偶数) |
int sum; | int I,j; |
int i'j; | double s=1; |
sum=1; | for(i=2;i<=m;i+=2) |
for(i=0;i<3;i++) | {for(j=i-1;j<=I;j++) |
sum=sum*a[i][i]; return sum; | s=s*j; |
59、将从键盘上输入的每个单词的第一个字母转换为大写 | y=y+1.0/s; |
字母,输入时各单词必须用空格隔开,用’.’结束输入 | } return y ; |
if(*c==' ') return 1; | 10、编写函数判断一个整数m的各位数字之和能否被7整除, |
else | 可以被7整除则返回1,否则返回0。调用该函数出 |
{if(status&&*c<='z'&&*c>='a') | 100~200之间满足条件的所有数。 |
*c+='A'-'a'; | int k,s=0; |
return0; | do |
} | { s=s+m%10; |
32、从键盘为一维整型数组输入10个整数,调用fun | m=m/10; |
函数出其中最小的数,并在main函数中输出。 | } while(m!=0); |
请编写fun函数。 | if(s%7==0)k=1; |
int min,i; | else k=0; |
min=x[0]; | return(k); |
for(i=1;i<n;i++) | 51、编写函数实现两个数据的交换,在主函数中输入任 |
{if(x[i]<min)min=x[i];} | 意三个数据,调用函数对这三个数据从大到小排序。 |
return min; | int k;k=*a;*a=*b;*b=k; |
78、从键盘上输入任意实数,求出其所对应的函数值。 | |
z=e的x次幂(x>10) | 52、编写函数判断一个整数能否同时被3和5整除,若能 |
z=log(x+3) (x>-3) | 则返回值为1,否则为0。调用该函数求出15~300之 |
z=sin(x)/((cos(x)+4) | 间能同时被3和5整除的数的个数。 |
double z; | if(n%3==0&&n%5==0) return(1) |
If(x>10)z=log(x+3) | return(0) |
else if(x > -3)z=log(x+3); | 34、编写函数求1~100中奇数的平方和。结果为166650 |
else z=sin(x)/(cos(x)+4); | float s=0;int i,j; |
return(z); | for(i=1;i<=n;i=i+2) |
58、从键盘为一维整型数组输入10个整数,调用fun函数 | s=s+i*i; |
出其中最小的数,并在main函数中输出。 | return(s); |
int min i; min=x[0]; | |
for(i=1;i<n;i++) | 37、编写函数求表达式的和(n的值由主函数输入)。 |
{if(x[i]<min) | 1-1/2+1/3-1/4+......+1/m |
min=x[i];} | float s=0; |
return min; | int i,k=1; |
54、从键盘输入一个大于3的整数,调用函数fun判断 | for(i=1;i<=n;i++) |
其是否素数,然后在main函数中输出相应的结论 | {s=s+k*1.0/i; k=-k;} |
信息。例如:7是素数,8不是素数。请编写fun | return (s); |
函数。素数是仅能被1和自身整除的数 | 47、编写函数判断一个整数m的各位数字之和能否被7整除, |
int i; int j; j=1; | 可以被7整除则返回1,否则返回0。调用该函数出 |
for(i=2;i<n;j++) | 100~200之间满足条件的所有数。 |
{ | int k,s=0; |
if(a%i==0)j=0} | do{s=s+m%10; m=m/10;} |
return (j); | while (m!=0); |
5、从键盘上输入任意实数x,求出其所对应的函数值。 | if(s%7==0)k=1; |
z=(x-4)的二次幂(x>4) | else k=0; return (k); |
z=x的八次幂(x>-4) | |
z=z=4/(x*(x+1))(x>-10) | 57、编写函数用选择排序法对数组中的数据进行从小到 |
z=|x|+20(其他) | 大的排序。 |
float z; | int i,j,k,t; |
if(x>4)z=sqrt(x-4); | for(i=0;i<n-1;j++) |
else if(x>-4)z=pow(x,8); | {k=i; for(j=j+1;j<n;j++) |
else if(x>-10)z=4/(x*(x+1)); | sql server数据库教案if(a[k]>a[j] k=j; |
else z=fabs(x)+20; | if(k!=i) |
return(z); | {t=a[i]; |
76、删除所有值为y的元素。数组元素中的值和y的值 | a[i]=a[k]; a[k]=t; |
由主函数通过键盘输入int i,j; | } |
for(i=0;i<*n;) | } |
{if(bb[i]==y) | 71、编写函数用冒泡排序法对数组中的数据进行从小到 |
{ for(j=i;j<*n;j++); | 大的排序。 |
*n=*n-1; } | int i,j,t; |
else i++; | for(i=0;i<n-1;i++) |
} | for(j=0;j<n-1;j++) |
83 能计算从1开始到n的自然数中偶数的平方的和,n由 | if(a[j]>a[j+1]) |
键盘输入,并在main()函数中输出。(n是偶数) | { t=a[j]; a[j]=a[j+1];a[j+1]=t; |
int sum,I; | } |
sum=0; | 11、请编一个函数void fun(int tt[M][N],int pp[N]), |
for(i=2;i<=n;i=i+2) | tt指向一个M行N列的二维数组,求出二维数组每列 |
{ sum=sum+i*I;} | 中最大元素,并依次放入pp所指一维数组中。二维 |
return(sum) | 数组中的数已在主函数中赋予。 |
39、能计算从1开始到n的自然数的和,n由键盘输入, | int i,j; |
并在main()函数中输出。 | for(j=0;j<N;j++) |
int sum,i; | { pp[j]=tt[0][j]; |
sum=0; | for(i=1;i<m;i++) |
for(i=1;i<=n;i++) | if(tt[i][j]>pp[j]) |
{sum=sum+i;}return(sum);当N为偶第三行i=2.i=i+2 | pp[j]=tt[i][j]; |
第四行i*i | } |
40、计算出k以内最大的10个能被13或17整除的自然数之 | 13、编写main程序调用函数fact求解从m个元素选n个元 |
和。(k〈3000) | 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 |
int a=0,b=0,j; | 要求:m不能小于n,否则应有容错处理。 |
while(k>=2)&&(b<10)) | 说明:函数fact(x)的功能是求x!。 |
{if((k%13==0)||(k%17==0));k--;} | while(m<n) |
return a; | {printf("m和n输入错误!请重新输入:\n"); |
scanf("%d%d,&m,&n"); | |
21、判断整数x是否是同构数。若是同构数,函数返回1; | } |
否则返回0。x的值由主函数从键盘读入,要求不大 | |
于100。 | 30、编写程序,实现矩阵(3行3列)的转置(即行列互换) |
int k; | int i,j,t; |
k=x*x; | for(i=0;i<3;i++) |
if((k%10==x)|(k%100=x)) | for(j=0;j<i;j++) |
return 1; | {t=array[i][j]=array[j][i]; |
else return 0; | array[j][i]=t;} |
41、判断一个整数w的各位数字平方之和能否被5整除, | 66、编写程序, 求矩阵(3行3列)与2的乘积 |
可以被5整除则返回1,否则返回0。 | 例如:输入下面的矩阵: |
int k,s=0; | 100 200 300 |
do{s=s+(w%10)*(w%10);w=w/10;} | 400 500 600 |
while(w!=0); | 700 800 900 |
if(s%5==0)k=1; | 程序输出: |
else k=0; return(k); | 200 400 600 |
3、求一批数中最大值和最小值的积。 | 800 1000 1200 |
int i,max,min; | 1400 1600 1800 |
max=min=a[0]; | int i,j; |
for(i=1;i<n;i++)冒泡排序代码c语言 | for(i=0;i<3;i++) |
if(a[i]<max)max=a[i]; | for(j=0;j<3;j++) |
return(max*min); | array[i][j]=array[i][j]*2; |
6、求出N×M整型数组的最大元素及其所在的行坐标 | |
及列坐标(如果最大元素不唯一,选择位置在最前面 | 2、编写程序求无理数e的值并输出。计算公式为: |
的一个)。 | e=1+1/1!+1/2!+1/3!+......+1/n! |
例如:输入的数组为: | 当1/n!<0.000001时e=2.718282。 |
1 2 3 | long int j; |
4 15 6 | int i,k; |
12 18 9 | float e,jc; |
10 11 2 | i=1; |
e=0.0; | |
求出的最大数为18,行坐标为2,列坐标为1。 | jc=1.0; |
int max,i,j; | while(jc>=0.000001) |
max=array[0][0]; | { |
row=0; | e=e+jc; |
col=0; | j=1 |
for(i=0;i<n;i++) | for(k=1;k<=i;k++) |
{for(j=0;j<m;j++) | j=j*k; |
matlab画图美化 if(max<array[i][j]) | jc=1.0/j; |
{max=array[i][j]; row=i; | i++; |
col=j; | } |
} } | |
19、对任意输入的 x,用下式计算并输出 y 的值。 | |
5 x<10 | |
9、求一批数中小于平均值的数的个数。 | y= 0 x=10 |
int i,sum=0,k=0; | -5 x>10 |
float average; | int m; |
for(i=0;i<n;i++) | if(n>=10) |
sum=sum+a[i]; | if(n>10) |
average=sum*1.0/n; | m=-5; |
for(i=0;i<n;i++) | else m=0; |
if(average>a[i])k++; | else m=5; |
return(k); | return m; |
17、求一个四位数的各位数字的立方和。 | |
int d,k,s=0; | 25、对长度为8个字符的字符串,将8个字符按降序排列。 |
while(n>0) | 例如:原来的字符串为CEAedcab,排序后输出为edcbaECA |
{d=n%10; | int i,j; |
s+=d*d*d; | char t; |
n/=10; } | for(i=0;i<num;i++) |
return s; | for(j=j+1;j<num;j++) |
18、求一组数中大于平均值的数的个数。 | if(s[i]<s[j]) |
例如:给定的一组数为1,3,6,9,4,23,35,67,12 | {t=s[i];s[i]=s[j];s[j]=t;} |
,88时,函 数值为3。 | 73、对某一正数的值保留2位小数,并对第三位进行四舍 |
int i,k=o; | 五入。 |
float s=0,ave; | int i; |
for(i=0;i<n;i++) | i=(int)(h*1000)%10; |
s+=a[i]; | if(i>=5) |
ave=s/n; | return(int)(h*100+1)/100.0; |
printf("%f",ave); | else |
for(i=0;i<n;i++) | return(int)(h*100)/100.0; |
if(a[i]>ave)k++; | |
return k; | 61、根据整型形参m,计算如下公式的值:y=sin(m)*10。 |
例如:若m=9,则应输出:4.121185 | |
56、求一批数中小于平均值的数的个数 | double y=0; |
double y=1; | y=sin(n)*10; |
int i; | return(y); |
for(i=1;i<=m;i++) | |
if(i%2==0) y=y*i; | 26、根据整型参数n,计算如图公式的值。 |
return y; | float a=1;int i; |
7、求一个n位自然数的各位数字的积。(n 是小于10的 | for(i=1;i<n;i++) |
自然数) | a=1.0/(1+a); return a; |
long d,s=1; | |
while(n>0) | 84 根据整型形参m,计算如下公式的值: |
{ | y=1/5+1/6+1/7+1/8+1/9++1/(m+5) |
d=n%10; | 例如:若m=9,则应输出:1.168229 |
s*=d; | double y=0; |
n/=10; | int i; |
} return s; | for(i=0;i<=m;i++) |
35、计算并输出给定整数的所有因子之积(包括自身)。 | {y+=1.0/(i+5);} |
规定这个整数的值不大于50。 | Return(y); |
long s=1,i; | |
for(i=2;i<=n;i++) | 46、将两个两位数的正整数a、b合并形成一个整数放在c |
if(n%i==0)s=s*i; | 中。合并的方式是: 将a数的十位和个位数依次放在c数 |
return s; | 的个位和百位上, b数的十位和个位数依次放在c数的十位 |
8、计算n门课程的平均值,计算结果作为函数值返回。 | 和千位上。例如:当a=45,b=12,调用该函数后,c=2514。 |
例如:若有5门课程的成绩是:92,76,69,58,88, | 答案; |
则函数的值为76.599998。 | *c=a/10+a%10*100+b/10*10+b%10*100; |
int i; | 72、将两个两位数的正整数a、b合并形成一个整数放在c |
float y=0; | 中。合并的方式是:将a数的十位和个位数依次放在 |
for(i=0;i<n;i++) | c数的千位和十位上, b数的十位和个位数依次放在 |
y+=a[i]; | c数的个位和百位上。 |
y=y/n; | 例如:当a=45,b=12。调用该函数后,c=4251。 |
return y; | *c=a/10*1000+a%10*10+b/10+b%10*100; |
36、求1到100之间的偶数之积 | 16、将字符串中的小写字母转换为对应的大写字母, |
double y=1; | 其它字符不变。 |
int i; | int i; |
for(i=1;i<=m;i++) | for(i=0;str[i]!='\0';i++) |
if(i%2==0)y*=i; return y; | if(str[i]>='a'&& str[i]<='z') |
64、求给定正整数n以内的素数之积。(n<28) | str[i]=str[i]-32; |
long i,k; | |
long s=1; | 33、用do-while语句求1~100的累计和 |
for(i=2;i<=n;i++) | int i=1,sum=0; |
{for(k=2;k<i;k++) | do{sum=sum+i;i++;} |
if(i%k==0)break; | while(i<=n); |
if(k==i)s=s*i; | return sum; |
} return s; | |
63、求给定正整数m以内的素数之和。 | 55、用辗转相除法求两个整数的最大公约数 |
例如:当m=20时,函数值为77。 | int r,t; |
int i,ks=0; | if(n<m) {t=n;n=m;m=t;} |
for(i=2;i<=m;i++) | r=n%m; |
{ for(k=2;k<i;k++) | while(r!=0) |
if(i%k==0)break; | {n=m;m=r;r=n%m;} |
if(k==i)s=s+i; | return (m); |
} return s; | |
14、出一批正整数中的最大的偶数。 | |
48、判断m是否为素数 | int i,amax=-1; |
int i,k=1; | for(i=0;i<n;i++) |
if(m<=1)k=0; | if(a[i]%2==0) |
for(i=2;i<m;i++) | if(a[i]>amax=a[i]); |
if(m%i==0)k=0; | return amax; |
return k; | |
74、出一个大于给定整数且紧随这个整数的素数,并 | 15、实现两个整数的交换。 |
作为函数值返回。 | 例如:给a和b分别输入:60和65,输入为:a=65 b=60 |
int i,k; | int t; |
for(i=n+1;;i++) | t=*a,*a=*b,*b=t; |
{for(k=2;k<i;k++) | |
if(i%k==0) break; | 4、某一正数的值保留2位小数,对第三位进行四舍 |
if(k==i) return(i); | 五入。 |
} | int i; |
43、求大于lim(lim小于100的整数)并且小于100的所 | i=(int)(h*1000)%10; |
有素数并放在aa数组中,该函数返回所求出素数的 | if(i>=5) |
个数。 | return(int)(h*100+1)%100.0; |
int n=0; | else |
int i,j; | catch a grenade return (int)(h*100)%100.0; |
for(i=lim;i<=100;i++) | 29、统计出若干个学生的平均成绩,最高分以及得最高 |
{for(j=2;j<i;j++) | 分的人数。 |
if(i%j==0)break; | 例如:输入10名学生的成绩分别为92,87,68,56,92, |
if(j==i)aa[n++]=i;} return n; | 84,67,75,92,66,则输出平均成绩为77.9, |
最高分为92,得最高分的人数为3人。 | |
44、求一批数中最大值和最小值的差 | int i;float sum=0,ave; |
int i,max,min; | Max=array[0]; |
max=min=a[0]; | for(i=0;i<n;i++) |
for(i=1;i<n;i++) | {if(Max<array[i])Max=array[i]; |
if(a[i]>max)max=a[i]; | sum=sum+array[i];} |
else if(a[i]<min)min=a[i]; | ave=sum/n; |
return(max-min); | for(i=0;i<n;i++) |
如为积将-改* | if(array[i]==Max)j++; |
45、求出菲波那契数列的前一项与后一项之比的极限的 | return (ave); |
近似值。 | |
例如:当误差为0.0001时,函数值为0.618056。 | 38、产生20个[30,120]上的随机整数放入二维数组 |
int i,j; | a[5][4]中, 求其中的最小值。 |
float f1=1,f2=1,f3; | int i,j,s; |
float r1=2,r2; | s=a[0][0]; |
do{ r2=r1;r1=f1/f2;f3=f1+f2; | for(i=0;i<5;i++) |
f1=f2;f2=f3; } | for(j=0;j<4;j++) |
while(fabs(r1-r2)>1e-4);return r1; | if(s>a[i][j])s=a[i][j]; |
50、求出二维数组周边元素之和,作为函数值返回。二 | return(s); |
维数组的值在主函数中赋予。 | |
int s=0; int i,j; | 42、从低位开始取出长整型变量s奇数位上的数,依次 |
for(i=0;i<M;i++) | 构成一个新数放在t中。 |
s=s+a[i][0]+a[i][N-1]; | 例如:当s中的数为:7654321时,t中的数为:7531。 |
for(j=1;j<N-1;j++) | long s1=10; |
s=s+a[0][j]+a[M-1][j]; | t=s%10; |
return s; | while(s>0) |
62、求一个大于10的n位整数的后n-1位的数,并作为函 | { s=s/100; t=s%10*s1+t;s1=s1*10;} |
数值返回。 | 如果为642,在第二行前加,s/=10; |
int n=0;int i=1; | |
while(w>10){n=n+i*(w%10); | 1、给定n个数据, 求最小值出现的位置(如果最小值 |
w/=10; | 出现多次,求出第一次出现的位置即可)。 |
i*=10; } return n; | int i ,k; |
k=0; | |
65、求一个给定字符串中的字母的个数。 | for(i=1;i<n;i++) |
int i,k=0; | if(s[i]<s[k])k=i; |
for(i=0;s[i]!='\0';i++) | return(k); 最大值 第三行i<=n五行k+1 |
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='z') | 79 用函数求一个N阶方阵右下三角元素的和(包括副 |
k++; | 对角线上的元素)。 |
return k; | int I,j,k=0; |
77、求一分数序列2/1,3/2,5/3,8/5,13/8,21/13… | for(i=0;i<N;i++) |
的前n项之和。 | for(j=N-1-I;j<N;j++) |
说明:每一分数的分母是前两项的分母之和,每一分数的 | k=k+a[i][j]; |
分子是前两项的分子之和 | return(k); |
例如:求前20项之和的值为32.660259。 | 80 用函数实现字符串的复制, 不允许用strcpy()函数。 |
int i; | int i; |
float f1=1,f2=1,f3,s=0; | for(i=0;str1[i]!=’\0’;i++) |
for(i=1;i<=n;i++) | str2[i]=str1[i]; |
{f3=f1+f2; | str2[i]=’\0’ |
f1=f2; | |
f2=f3; | 23、编写函数fun求sum=d+dd+ddd+resumes……+dd...d(n个d), |
s=s=f2/f1;} | 其中d为1-9的数字。 |
return s; | 例如:3+33+333+3333+33333(此时d=3,n=5),d和n在主函 |
70、求一组数中大于平均值的数的个数。 | 数中输入。 |
例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 | long int s=0,t=0; |
数值为3。 | int i; |
int i,k=0; | for(i=1;i<n;i++) |
float s=0,ave; | {t=t+d; |
for(i=0;i<n;i++) | s=s+t; |
s+=a[i]; | d=d*10; |
ave=s/n; | } return s; |
printf("%f",ave); | 28、编写函数fun(str,i,n),从字符串str中删除第i个 |
for(i=0;i<n;i++) | 字符开始的连续n个字符(注意:str[0]代表字符串 |
if(a[i]>ave)k++; | 的第一个字符)。 |
return k; | while(str[i+n-1]) |
22、用函数求N个[10,60]上的整数中能被5整除的最大 | { str[i-1]=str[i+n-1];i++} |
的数,存在则返回这个最大值,如果不存在则返回0。 | str[i-1]='\0'; |
int i; | 12、编写函数fun用比较法对主程序中用户输入的具有10 |
for(i=0;i<n;i++) | 个数据的数组a按由大到小排序,并在主程序中输出 |
if(arr[i]%5==0&& arr[i]>m) | 排序结果。 |
m=arr[i]; | int k,j,t; |
31、用函数实现字符串的复制, 不允许用strcpy()函数。 | for(k=0;k<n-1;k++) |
int i; for(i=0;str[j]!='\0';i++) | for(j=k+1;j<n;j++) |
str2[i]='\0'; | if(array[k]<array[j]) |
69、用函数将第2个串连接到第1个串之后,不允许使用 | { t=array[k]; |
strcat函数。 | array[k]=array[j]; |
int i,j; | array[j]=t; |
for(i=0;c1[i]!='\0';i++); | } |
for(j=0;c2[j]!='\0';j++) | 24、编写函数fun将一个数组中的值按逆序存放,并在 |
c1[i+j]=c2[j]; | main()函数中输出。 |
c1[i+j]='\0'; | 例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。 |
75、用函数求fibonacci数列前n项的和。 | int i,t; |
说明:fibonacci数列为数列的第一项值为1,第二项值 | for(i=0;i<n/2;i++) |
也为1,从第三项开始,每一项均为其前面相邻两项和。 | {t=arr[i];arr[i]=arr[n-1-i]; |
例如:当n=28时,运行结果:832039 | arr[n-1-i]=t; |
long f,k=f1+f2; int i; | } |
for(i=3;i<=28;i++) | 53、编写函数fun,求任一整数m的n次方 |
{f=f1+f2; | long int x=1; int i; |
k=k+f; | for(i=1;i<=n;i++) |
f1=f2; | x=x*m; |
f2=f; | return x; |
} return(k); | |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论