5132程序设计.docx

上传人:b****4 文档编号:5649352 上传时间:2023-05-08 格式:DOCX 页数:20 大小:17.93KB
下载 相关 举报
5132程序设计.docx_第1页
第1页 / 共20页
5132程序设计.docx_第2页
第2页 / 共20页
5132程序设计.docx_第3页
第3页 / 共20页
5132程序设计.docx_第4页
第4页 / 共20页
5132程序设计.docx_第5页
第5页 / 共20页
5132程序设计.docx_第6页
第6页 / 共20页
5132程序设计.docx_第7页
第7页 / 共20页
5132程序设计.docx_第8页
第8页 / 共20页
5132程序设计.docx_第9页
第9页 / 共20页
5132程序设计.docx_第10页
第10页 / 共20页
5132程序设计.docx_第11页
第11页 / 共20页
5132程序设计.docx_第12页
第12页 / 共20页
5132程序设计.docx_第13页
第13页 / 共20页
5132程序设计.docx_第14页
第14页 / 共20页
5132程序设计.docx_第15页
第15页 / 共20页
5132程序设计.docx_第16页
第16页 / 共20页
5132程序设计.docx_第17页
第17页 / 共20页
5132程序设计.docx_第18页
第18页 / 共20页
5132程序设计.docx_第19页
第19页 / 共20页
5132程序设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

5132程序设计.docx

《5132程序设计.docx》由会员分享,可在线阅读,更多相关《5132程序设计.docx(20页珍藏版)》请在冰点文库上搜索。

5132程序设计.docx

5132程序设计

输入一行以空格分隔的数,把它们存入数组,用逗号分隔的方式输出,并统计数的个数。

输入

输入一行以空格分隔的数。

已知至少输入一个数,至多输入二十个数,且最后一个数后紧跟回车输入。

输出

输出两行。

第一行输出这些数,相邻两数之间用一个逗号隔开。

第二行输出数的个数。

输入示例

20435

输出示例

20,,43,5,

5

数据范围

输入输出均为float范围的浮点数

#include<>

#include<>

#defineN400

voidmain()

{

chara[N];um);

if(strcmp(stu[i].num,"##")==0)ame,stu[i].sex,&stu[i].age);

n++;um,stu[i].name,stu[i].sex,stu[i].age);

}

return0;

}

输入一行以制表符分隔的整数,把它们存入数组。

统计数的个数,并用逗号分隔的方式输出。

输入

输入一行以制表符分隔的整数。

已知至少输入一个数,至多输入二十个数,且最后一个数后紧跟回车输入。

输出

输出两行。

第一行输出整数个数。

第二行输出这些整数,相邻两数之间用一个逗号隔开。

输入示例

2【Tab】3【Tab】4【Tab】5【Tab】6【回车】

输出示例

5

2,3,4,5,6

数据范围

输入为int范围的整数

#include<>

#include<>

#defineN400

intmain()

{

inti,j=1;

charnum[N];Math.Eng.Comp.Ave.”,输出要求每项占8位。

注意:

不要改变函数名称,注意大小写敏感;注意不允许使用全局变量。

输入

输入包含n+1行:

第一行是整数n,代表学生数量,8<=n<=20。

第二行到第n+1行,每行均依照“学号【空格】数学成绩【空格】英语成绩【空格】计算机成绩【回车】”的格式输入。

已知学号长度最大为7,成绩为0到100之间的整数。

输出

依题意输出平均成绩最高的学生的信息。

输出要求每项占8位,平均成绩要求小数点后必须保留2位有效数字(四舍五入),不足补零。

输入示例

8

S131313647273

S131315828486

S131316846171

S131314738268

S121209456050

S131317848180

S131318858883

S131319858881

输出示例

No.Math.Eng.Comp.Ave.

S131318858883

数据范围

输入int范围的整数和字符串

#include<>

#include<>

typedefstructstu

{

charstudentID[20];

intscoreMath;

intscoreEnglish;

intscoreComputer;

floataverage;

}STUDENT;

floatave(STUDENTstu[],intm);

intfind(STUDENTstu[],intn);

voidprint(STUDENTstu[],intk);

intmain()

{

STUDENTstu[20];

intn,m,k;

scanf("%d",&n);

for(m=0;m

{

scanf("%s",stu[m].studentID);

scanf("%d",&stu[m].scoreMath);

scanf("%d",&stu[m].scoreEnglish);

scanf("%d",&stu[m].scoreComputer);

stu[m].average=ave(stu,m);

}

k=find(stu,n);

print(stu,k);

return0;

}

floatave(STUDENTstu[],intm)

{

floatAveScore;

intsum;

sum=stu[m].scoreMath+stu[m].scoreEnglish+stu[m].scoreComputer;

AveScore=sum/;

returnAveScore;

}

intfind(STUDENTstu[],intn)

{

inti,j,h=0;

for(i=0;i

{

if(stu[i].average>h)

{

h=stu[i].average;

j=i;

}

}

returnj;

}

voidprint(STUDENTstu[],intk)

{

printf("No.Math.Eng.Comp.Ave.\n");

printf("%-8s%-8d%-8d%-8d%",stu[k].studentID,stu[k].scoreMath,stu[k].scoreEnglish,stu[k].scoreComputer,stu[k].average);

}

递归基础之斐波那契

试题描述

1)编写Fib递归函数完成斐波那契数列第i项的计算。

要求将数列数组和第i项作为函数参数。

2)在main函数中输入n,调用递归函数计算斐波那契序列的前n项,最后循环输出斐波那契序列前n项的值。

注意:

不要改变函数名称,注意大小写敏感;注意不允许使用全局变量。

输入

输入一个整数n。

2<=n<=30。

输出

输出数列前n项的值,相邻两项之间用一个空格隔开。

输入示例

5

输出示例

01123

数据范围

输入为int范围的整数,输出为long范围的整数

#include<>

#include<>

longFib(inti,longa[]);;he

输出示例

727

数据范围

输入为字符串

#include<>

#include<>

voidmain()

{

chara[100]={0};

charb[100]={0};

intn1,n2,i,j=0,k,m=0;

gets(a);

gets(b);

n1=strlen(a);

n2=strlen(b);

for(i=0;i

{

if(b[j]==a[i])

{

m=0;

k=i;

for(j=0;j

{

if(a[k]!

=b[j]||k>=n1)

{

m=1;

}

k++;

}

if(m==0)

{

printf("%d",i+1);

}

j=0;

}

}

}

#include<>

#include<>

#include<>

typedefstruct_foruse//定义单向循环链表结构体及指针

{

struct_foruse*next;

intnumber;

}foruse,*link;

linkcreate(intn)//构造create函数用以建立n阶链表并返回该链表的头指针

{

linkhead=(link)malloc(sizeof(foruse));//申请空间

foruse*tail;

inti;

head->next=head;//修改头指针指向

head->number=1;

tail=head;

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

{

foruse*p=(foruse*)malloc(sizeof(foruse));

p->number=i;

p->next=tail->next;

tail->next=p;

tail=p;

}

returnhead;

}

voidjoseph(linkhead,intk,intm)//构造joseph函数用以实现目标人员的出列

{

intj;

foruse*p;

foruse*q;

if(m==1&&k==1)

{

p=head;

while(p->next!

=head)

{

printf("%d",p->number);

q=p->next;

free(p);//释放指针的指向内存

p=q;

}

printf("%d\n",p->number);

}

elseif(m==1&&k!

=1)

{

p=head;

for(j=1;j

p=p->next;

while(head->next!

=head)

{

q=p->next;

p->next=q->next;

printf("%d",q->number);

if(q==head)

head=q->next;

free(q);

}

printf("%d\n",head->number);

}

else

{

p=head;

for(j=1;j

p=p->next;

while(head->next!

=head)

{

for(j=1;j

p=p->next;

q=p->next;

p->next=q->next;

printf("%d",q->number);

if(q==head)

head=q->next;

free(q);

p=p->next;

}

printf("%d\n",head->number);

}

}

intmain()

{

linkhead;

intm,n,k;

scanf("%d%d%d",&n,&m,&k);

head=create(n);//调用create函数创建链表并返回头指针

joseph(head,k,m);//调用joseph函数输出要出列人员的标号

return0;

}

#include<>

#defineN100

voidsort(intA[],intm);//(功能为排序的)函数声明

voidintersectionf(intA[],intB[],intC[],intm,intn);//(功能为输出集合交的)函数声明

voidunionf(intA[],intB[],intC[],intm,intn);//(功能为输出集合并的)函数声明

voidsubstractf(intA[],intB[],intC[],intm,intn);//(功能为输出集合差的)函数声明

voidsymdiff(intA[],intB[],intC[],intm,intn);//(功能为输出集合对称差的)函数声明

intmain()

{

intA[N],B[N],C[N],n,m,i;

scanf("%d%d",&n,&m);

for(i=0;i

{

scanf("%d",&A[i]);

}

for(i=0;i

{

scanf("%d",&B[i]);

}

intersectionf(A,B,C,m,n);//调用函数输出集合A、B的交

unionf(A,B,C,m,n);//调用函数输出集合A、B的并

substractf(A,B,C,m,n);//调用函数输出集合A、B的差

symdiff(A,B,C,m,n);//调用函数输出集合A、B的对称差

return0;

}

voidsort(intA[],intm)//(功能为排序的)函数解释

{

inti,j,temp;

for(i=0;i

{

for(j=0;j

{

if(A[j]>A[j+1])//前面的数大于后面的数时调换顺序

{

temp=A[j];

A[j]=A[j+1];

A[j+1]=temp;

}

}

}

}

voidintersectionf(intA[],intB[],intC[],intm,intn)//(功能为输出集合交的)函数解释

{

inti,j,g=0;

for(i=0;i

{

for(j=0;j

{

if(A[i]==B[j])

{

C[g]=A[i];

g++;

}

}

}

sort(C,g);//调用函数对集合C进行排序

for(i=0;i

{

printf("%d",C[i]);

}

printf("\n");

}

voidunionf(intA[],intB[],intC[],intm,intn)//(功能为输出集合并的)函数解释

{

inti,j,g=0,flag;

for(i=0;i

{

C[g]=A[i];

g++;

}

for(j=0;j

{

flag=0;

for(i=0;i

{

if(B[j]==A[i])//发现集合A中有与集合B中相同的数时做标记

{

flag=1;

}

}

if(flag==0)//向集合C中加入集合B中不与集合A重复的数

{

C[g]=B[j];

g++;

}

}

sort(C,g);

for(i=0;i

{

printf("%d",C[i]);

}

printf("\n");

}

voidsubstractf(intA[],intB[],intC[],intm,intn)//(功能为输出集合差的)函数声明

{

inti,j,g=0,flag;

for(i=0;i

{

flag=0;

for(j=0;j

{

if(A[i]==B[j])

{

flag=1;

}

}

if(flag==0)//向集合C中放入集合A中不与集合B重复的数

{

C[g]=A[i];

g++;

}

}

sort(C,g);

for(i=0;i

{

printf("%d",C[i]);

}

printf("\n");

}

voidsymdiff(intA[],intB[],intC[],intm,intn)//(功能为输出集合对称差的)函数声明

{

inti,j,g=0,flag;

for(i=0;i

{

flag=0;

for(j=0;j

{

if(A[i]==B[j])

{

flag=1;

}

}

if(flag==0)//向集合C中放入集合A中不与集合B重复的数

{

C[g]=A[i];

g++;

}

}

for(j=0;j

{

flag=0;

for(i=0;i

{

if(B[j]==A[i])

{

flag=1;

}

}

if(flag==0)

{

C[g]=B[j];//向集合C中加入集合B中不与集合A重复的数

g++;

}

}

sort(C,g);

for(i=0;i

{

printf("%d",C[i]);

}

printf("\n");

}

#include<>

#include<>

intmain()

{

FILE*fp;

charch;

intn=0;

if((fp=fopen("","r"))==NULL)//当文件无法正常打开时

{

printf("Failuretoopen!

\n");//提示用户文件打开错误

exit(0);

}

while((ch=fgetc(fp))!

=EOF)//当文件可以正常打开时

{

if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))//循环结构控制对英文字符(不计大小写)的计数

{

n++;

}

}

printf("%d",n);

fclose(fp);//关闭文件

return0;

}

#include<>

#include<>

intmain()

{

charch,ch1,ch2;

FILE*fp;

intn=1;

if((fp=fopen("","r"))==NULL)//当文件无法正常打开时

{

printf("Faliuretoopenthetext!

\n");//提示用户文件打开错误

exit(0);

}

scanf("%c%c",&ch1,&ch2);//输入指定字符c1和特定字符c2

while((ch=fgetc(fp))!

=EOF)

{

if(ch==ch1)//当字符为指定字符时

{

n++;//计算替换的次数

fputc(ch2,fp);

}//将指定字符替换为特定字符输出

else

fputc(ch,fp);//当字符不为指定字符时照常输出

}

fclose(fp);//关闭文件

printf("%d",n);

return0;

}

#include<>

#include<>

#include<>

intmain()

{

charch;

FILE*fp;

intn=0;

if((fp=fopen("","r"))==NULL)//当文件无法正常打开时

{

printf("Faliuretoopenthetext!

\n");//提示用户文件打开错误

exit(0);

}

while((ch=fgetc(fp))!

=EOF)//计算复制的字节数

{

if(ch!

='\0')

{

n++;

}

}

printf("%d",n);//输出复制的字节数

fclose(fp);//关闭文件

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2