教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

中国海洋大学上机考试题2016春季学期 答案2333(2)

来源:网络收集 时间:2026-08-17
导读: char a,b; for(i=0;*(s+i)!=\0;i++); n=i; for(i=0;*(s+i)!=\0;i++) { a=*(s+i);b=*(s+i+1); if(((a=z)(a=a)||(a=Z)(a=A))((b=z)(b=a)||(b=A)(b=Z))) { for(j=0;j=n-i;j++) { k=n; *(s+k-j+1)=*(s+k-j); } *(s+i+1)

char a,b;

for(i=0;*(s+i)!='\0';i++);

n=i;

for(i=0;*(s+i)!='\0';i++)

{ a=*(s+i);b=*(s+i+1);

if(((a<='z')&&(a>='a')||(a<='Z')&&(a>='A'))&&((b<='z')&&(b>='a')||(b>='A')&&(b<='Z'))) { for(j=0;j<=n-i;j++)

{ k=n;

*(s+k-j+1)=*(s+k-j); }

*(s+i+1)='*';

n++;

}

}

}

int main()

{char x[80];

7

gets(x);

fun(x);

puts(x);

return 0;

}

#include<stdio.h>

void fun(char *a,char *b)

{

int i,j;

for(i=0,j=0;a[i];)

{

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

if(!(i%3))

b[j++] = '#';

}

b[j] = '\0';

}

void main()

{

char x[80],y[120];

gets(x);

fun(x,y);

puts(y);

}

12. 编写函数int fun(int k),功能:从5个红球, 6个白球,7个黑球中任意取出k(2≤k≤18)个

球作为一组进行组合。在每组中,可以没有红球和白球,但必须要有黑球。不同组合的数目作为函数值返回。例如,若k为8时,正确的组合数是31;若k为2时,正确的组合数是3;或k为3时,正确的组合数是6 。

#include<stdio.h>

int fun(int k)

{int i,j,l,n=0;

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

{ for(j=0;j<=6;j++)

{ for(l=0;l<=5;l++)

if(k==i+j+l) n++;

}

}

return(n);

}

int main()

{int x,n;

scanf("%d",&x);

n=fun(x);

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

return 0;

8

}

13.编写函数void fun(char *str),功能:对形参str所指字符串中的字符按ASCII码升序排序。例

如,下面程序运行时输入:The C Programming Language<回车>

输出: CLPTaaaeegggghimmnnorru

#include<stdio.h>

#include<string.h>

void fun(char *str)

{ char m;

int i,j,p,q,x;

x=strlen(str);

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

{ for(j=1;j<x-i;j=j+2)

{if(str[j]>str[j+2])

{ m=str[j];

str[j]=str[j+2];

str[j+2]=m;}

}

}

}

int main()

{char s[100];

gets(s);

fun(s);

puts(s);

return 0;

}

14. 请编写函数void fun(int *a, int n, int y),它的功能是:把y值插入到有n个数的a数组中,

a数组中的数已按由大到小的次序排好,y的值从键盘读入。插入后,数组中的数仍然有序。对照下面三种情况运行程序:

1) 插在最前2) 插在最后 3) 插在中间

若输入数11,输出 20 18 16 14 12 11 10 8 6 4 2

输入数1,输出 20 18 16 14 12 10 8 6 4 2 1

输入数33,输出 33 20 18 16 14 12 10 8 6 4 2

#include <stdio.h>

void fun(int *a,int n,int y)

{int i,j;

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

{

if(y>=a[i])

{

for(j=9;j>=i;j--)

{

a[j+1]=a[j];

}

a[i]=y;

break;

}

9

a[10]=y;

}

}

int main()

{int i,a[11]={20,18,16,14,12,10,8,6,4,2},x;

void fun(int *,int n,int y);

scanf("%d",&x);

fun(a,10,x);

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

printf("%d ",*(a+i));

return 0;

}

15. 编写函数int fun(char *s1,char *s2),在字符串s1中统计字符串s2出现的次数并返回。若s2

在s1中未出现,则返回0。例如:

若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:ab ,则程序输出:n=4

若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:abd,则程序输出:No find

#include<string.h>

#include<stdio.h>

int fun(char *s1,char *s2)

{

}

int main()

{ char a[80],b[80];

int n;

printf("Please input the first string:");

gets(a);

printf("Please input the second string:");

gets(b);

n=fun(a,b);

if(n==0)

printf("No find\n");

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

return 0;

}

#include<string.h>

#include<stdio.h>

int fun(char *str,char ch)

{

int i,j,m=0,p=0;

p=strlen(str);

m=strlen(str);

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

{

10

while(str[i]==ch)

{

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

{

str[j]=str[j+1];

str[j+1]='\0';

}

m=strlen(str);

}

}

if(m==p)

{

m=-1;

}

return m;

}

void main()

{

char a[80]={0},b;

int n;

printf("Please input a string:");

gets(a);

printf("Please input a delete character:");

b=getchar();

n=fun(a,b);

if(n==-1)

printf("No find %c\n",b);

else printf("%s,n=%d\n",a,n);

}

16. 编写函数int fun(char *str),功能是:统计字符串str中不同字符的个数并做为函数值返回。

例如,下面程序运行时若输入:One world,One dream! 输出:n=13

#include<stdio.h>

int fun(char *str)

{ int i,j,m=1,p,x,q;

p=strlen(str);

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

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

{ x=str[i];

q=str[j];

if(x==q)

{break;}

if(j+1>=i)

{ m++;}

11

}

}

return m;

}

int main()

{char s[80];

int n;

gets(s);

n=fun(s);

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

return 0;

}

17. 编写函数int fun(int m,int n,int *p),要求将范围[m,n]之间所有的fibonacci数写入p所指

的一维数组中,fibonacci数的个数通过函数返回值带回。例如,[0,30]之间的fibonacci数有7个,它们是:1 2 3 5 8 13 21 ;[1000,32767]之间有7个,它们是:1597 2584 6765 10946 17711 28657 。

#include<stdio.h>

int fun(int m,int n,int *p)

{int i=0,num=0;

int f1=1,f2=1;

while(f1<=n)

{

if((f1>=m && f1<=n) )

{

p[i++] = f1;

num++;

}

if((f2>=m && f2<=n) && f2 != p[i-1] )

{

p[i++] = f2;

num++;

}

f1=f1+f2;

f2=f2+f1;

}

return num;

}

int main()

{int …… 此处隐藏:3111字,全部文档内容请下载后查看。喜欢就下载吧 ……

中国海洋大学上机考试题2016春季学期 答案2333(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/267906.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)