版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言编程题目if(max<c)
max=c;
1.025编写一个C程序,用函数printf(char*s)returnmax;}
输出intmax_c(inla,intc)
以下3行信息:{intmax=c;
********************if(max<a)
VeryGood!*max=a;
if(max<b)
注意:max=b;
(1)要求精确到每个字符、空格、字母及returnmax;}
其大小写。voidmain()
(2)可多次调用printf(char*s),每次仅一{inta,b,c,max;
个字符串参数。scanf("%d,%d,%d”,&a,&b,&c);
//max=a>b?a:b;
voidprint1()//max=max>c?max:c;
//max二a;
printf("****************«***\n'');//if(max<b)max=b;
//if(max<c)max=c;
voidprint2()printf("max(%d,%d,%d)=%d\n',,a,b,c,maK_a(a
{,b,c));
printf("*VeryGood!*\n");printf("max(%d,%d,%d)=%d\n,,,a,b,c,maK_b(
)a,b,c));
voidmain()printf("max(%d,%d,%d)=%d\n",a,b,c,max_c(a
{print1();,b,c));
pnnt2();)
print1();6.022n是系统给定的外部变量,编写程序求
)I到n间的
1.055编写一个程序,输入a、b、c三个值,自然数之和。请定义局部变量s存放求和的
输出其中最大值。结果,并用
要求不改变下列给定的程序框架内容,填入下列语句输出结果
合适语句,使其成printf("1+2+...+n=%d\nn,s);
为满足题目要求的正确程序。**********/
**********/voidmain()
inimax_a(in(a,inib,inlc){ints;
{intmax=a;/*请添加相关说明和语句*/
if(max<b)inti;
max=b:for(i=l;i<=n;i++)
if(max<c)s+=i;
max=c;printf(,,14-2+...+n=%d\n',,s);/*注意:不要修
returnmax;}改此输巳语句*/
intmax_b(inta,in(c))
{intmax=b;6.026n和s是系统给定的外部整型变量(不
if(max<a)需要自行定义),
max=a;编写程序求1到n之间的奇数之和,并将结
果存放到s。
**********/s+=1.0/i++*flag;
voidmain()flag*=-l;
{inti;)
for(i=l;i<=n;i++)printf("s=%f\n",s);
if(i%2!=0))
s+=i;intmin(intx,inty,intz)
)/*返回3个整数x,y和z中最小的数*/
6.040m,n和s是系统定义的外部整型变量(
(不需要自行定义),intt;
编写程序,根据m的值求满足i+2+...+n>=ml=x<y?x:y;
的最小n,并将return(t<z?t:z);
l+2+...+n的结果存放到S©例如,若m=50,)
则n=10,s=55o/*8.020编写函数,求用1元、5元和10元
**********/三种纸币支付n元钱
voidmain()共有多少种支付方法?
{inti;例如,16元可有6种支付方法:
fbr(i=l;s<m;i++)方法123456
{s+=i;10元000011
n=i;5元012301
)1元16116161
I*/
/**********intchange(intn)
6.051n和s是系统给定的外部整型变量(不{inti,j,k;
需要自行定义),intsum=0;
编写程序求l-l/2+l/3-l/4+...l/n,并将结果prir.tf("\tl元\t5元V10元\n");
存放到Sofbr(i=O;i<=n;i++)
******木***/for(j=0;j<=n/5;j++)
voidmain()for(k=0;k<=n/10;k++)
if(n==(i+5*j+10*k))
//intsign=l;{sum=sum+l;
//floatdeno=2.0,tenn;printf("%-d",sum);
//s=1.0;printf("\t%-d\t%-d\t%-d\n",i,j,k);
//\vhile(deno<=n))
〃{printf("\n");
//sign=-sign;return(sum);
//term=sign/deno;}
//s=s+term;/*8.030先编写一个判断素数的函数。再编
//deno=deno+1;写一个函数将一个
//)偶数表示为两个素数之和,并返回其中较
//printf("%f\n",s);小的素数。
inti=l,flag=l;注:素数指只能被1和自身整除的正整数。
s=0.0;规定。,1不是素数。
while(i<=n)*/
intprimc(intn)78974I
/*判断素数,如果是素数返回1,不是素数*/
则返回0*/voidinvcrt(chara[N][N])
{intt;{inti,j,b[20][20];
if(n==1)for(i=0;i<N;i++)
return0;for(j=0;j<N;j++)
for(t=2;t<=(n/2);t++)b[i][j]=a[N-l-j][N-l.i];
if(n%t==0)for(i=0;i<N;i++)
return0;for(j=0;j<N;j++)
return1;a[i]U]=b[i]U];
}reium;
intf(inti)}
/*将偶数i表示为两个素数之和,返回其中/*8.064编写函数将一个NxN的二维数组
较小的素数*/“水平”翻转。
{intn;例如:翻转前的数组翻转后的数组
for(n=3;n<=i;n++)123789
if(primc(i-n)&&primc(r))456-->456
returnn;789123
)*/
/*8.050编写函数,将字符串中ASCH码最voidinvertH(chara[N][N])
小的字符放在第一{inti,j;
个字符位置,其余字符依次往后移。chark;
*/for(i=0;i*2<N;i++)
voidfunc(char*str)for(j=O;j<N;j++)
/*将字符串str中ASCII码最小的字符放在{
第一个*/k=a[i]|j];
产字符位置,其余字符依次往后移。a[inj]=a[N-i-l][j];
*/a[N-i-l](j]=k;
{inti,j,min;
for(min=0,i=1;str[i]!='\0*;i++)
(/*8.067编写函数将一个NxN的二维数组
if(str(minl>str[il)的周边元素"顺时针''轮转1位。
min=i;例如:轮转前的数组轮转后的数组
)123412
j=str[min];456-->753
fbr(i=min-1;i>=0;i")789896
str[i+l]=str[i];*/
str[O]=j;voidturningClockwise(chara[N][N])
}{inti,j,row=0,column=0;
/*8.060编写函数将一个nxn的二维数组按int
“次对角线”翻转。intflag=l;
例如:翻转前的数组翻转后的数组printf("原来的数组:\n");
I23963for(i=0;i<N;i++){
456—>852for(j=0;j<N;j++)
printf("%5d",ali]|j]);的元素按行向右轮转1位。
printf("\n");例如:轮转前的数组轮转后的数组
)123312
(mp=a[01(01;456-->645
a[O][O]=a[l][O];789978
column=1;*/
while(!(row==0&&column==0)){voidtumingRight(chara[N][N])
t=a[rowj[column];{introw,col=N-3,tmp;
a[row][columnl=Imp:printf("原来的数组:\n");
tmp=t;for(row=0;ro\v<N;row++)
if(flag==l){{fcr(col=0;col<N;col++)
if(column!=N-l)pr:ntf("%5d",a[row][col]);
column++;printf("\nu);
else{)
flag++;for(ro\v=0;row<N;row++)
row++;{tmp=a[row][N-l];
)for(col=N-l;col;col")
}clscif(Oag==2){(
if(row!=N-l)a[row][col]=a[row][col-I];
row++;)
else{a[row][col]=tmp;
flag++;)
column--;printf("右移一位后的的数组:\n");
)fnr(row=0;ro\v<N;row++)
}elseif(flag==3){{fcr(col=0;coI<N;col++)
if(column!=0)printf("%5d'\a[row][col]);
columnprintf('\n");
else{)
,
flag++;;prir1tf("\n');
row";}
1voidfunc(chars[],chart[],intn)
}elseif(flag==4){/*数组s的前n个元素存放给定的字符序
if(row!=0)列,
row—;数组(的前n个元素存放s的逆序列。
I注意:数组的下标从0开始。
)*/
printf(”\n顺时针旋转后的数组:W);{inti;
for(i=0;i<N;i++){for(i=0;i<n;i++)
for(j=0;j<N;j++)t[i]=s[n-i-l];
printf("%5d",a[i]|j]);t[i]='\0r;
printf("\n");)
Ivoidfunc(char*s,char*t)
)/*s是给定字符串的起始地址,
/*8.072编写函数将一个NxN的二维数组at是求得s的逆串的起始地址
*/
{inti.n=strlen(s);intmonth_day(intyear,intyearday,int
for(i=0;i<n;i++)*pmonth,int*pday)
*(t+i)=*(s+n-i-l);/*year是年,
Iycarday是天数,
voidfunc(char*sl,char*s2,inin)若year和yearday合理,
{intij;则*pmonth和*pday是计算得出的月和
chart;日,函数返回I;
fbr(i=O;i<*n;i++)否则,函数返回0。
*(s2+i)=*(s1+i);*/
for(j=l;j<n-2;j++){int
fbr(i=1;i<=n-2-j;i++)i,z=0,d1(12]={31,28,31,30,31,30,31,31,30,31,
{if(*(s2+i)<*(s2+i+l))30,31},d2[12]=[31,29,31,30,31,30,31,31,30,3
{t=*(s2+i);130,31);
*(s2+i)=*(s2+i+1);*pinonth=I;
*(s2+i+l)=t;if(year%4==0&&year%100!=0||year%400==0)
{if(l<=ycar&&1<=ycarday&&ycarday<=366
)
{z=l;
对字符串除首尾字符外,将其余字符按if((yearday-31)>0)
ASCII码将序排列{yearday二yearday-31;
voidfunc(char*sl,char*s2)for(i=I;i<=l1;i++)
{intij,n;if(yearday/d2[i]==0)
chart;(
n=strlen(sl);*pmon(h=*pmonth+1;
for(i=0;i<n;i++)break;
*(s2+i)="(sl+i);)
forQ=l;j<n-2;j++)else
fbr(i=I;i<=n-2-j;i++){*pmonth=*pmonth+1;
{if(*(s2+i)<*(s2+i+l))if(yearday-d2[il>0)
{t=*(s2+i);ycarday=ycarday-d2[ij;
*(s2+i)=*(s2+i+1);else
*(s2+i+1)=t;break;
)
)
*pday=yearday;
char*match(char*s,charc)}
/*返回字符在串s中首次出现的位置指针)
*/else
{while(*s!='\0'){if(l<=ycar&&1<=ycarday&&yearday<=
if(*s==c)365)
return(s);{z=l;
elses++;if((yearday-31)>0)
return(NULL);{yearday=yearday-31;
for(i=l;i<=ll;i++)注意:要求在函数中采用指针(而不是
下标)灭处理数组元素。
if(ycarday/d1[i]==O&&ycaiday!=O)*/
({inii,max;
*pmonth=*pmonth+l;max=*s;
break;for(i=0;i<n;i++)
)if(*(s+i)>max)
elsemax=*(s+i);
(returnmax;
*pnionth=*pmonth+1;)
if'(yearday-dl[il!=O)intmin3adj(inl*s,intn)
yearday=yearday-dl[i];/*数组s含n(>=3)个整数,
else返回在s中相邻三个数的和中的最小值。
break;*/
){inti,j;
)intsum[20]={0};intmin=0;
*pday=ycarday;for(i=0;i<n-2;i++)
{
for(j=0;j<3;j++)
return(z);(
}sum[i]+=s[i+j];
longfunc(char*s))
/*s是一个数字字符串的地址,函数返回值)
为由S含有的数字字符转或得到的数(包含sum[i+l]-\0';
正负数情况)min=sum[0|;
*/for(i=0;i<n-2;i++)
{inti,j,k=O,a=l;
longn=0;if(suir.[i]<min)
for。=0;*(s+j)!=10';j++)(
{)min=sum[i];
fbr(i=j-1;i>=0;i—)I
{I
if(*(s+i)>=,0,&&*(s+i)<=*9,)returnmin;
()
n=n+(*(s+i)-,0')*a;/*11.023数组s存储了n个人的信息。写一
a=a*10;函数,求这n个人中年龄最大(即出生日期
}最小)者的姓名。
1*/
if(*s=='j)char*oldest(students[],intn)
n=n*(-l);{inti;
returnn;structstudent*p;
Ip=&s[0];
intHndmax(ints[],intn)for(i=l;i<n;i++)
/*返回s中n(>0)个整数的最大值。{if(s[i].birth.year<(*p).birth.year)
{p=&s[i];continue;]
if(s[i].birth.year==(*p).biith.year){if((*head).birth.year==(*head1).birth.year)
{if(s[i].birth.month<(*p).birth.month)(
{p=&s[il;continue;}if((*head).birth.month<(*hea(ll).birlh.mcnlh)
if(s[i].birth.month==(*p).birth.month){head->next=headl->next;
{if(s[i].birth.day<(*p).birth.day)p=(*head).name;
P=&s[i];I
)else
){
Iif((*hcad).birth.month==(*hcadl).birth.month
retum(p->name);)
}(
/*11.033链表L存储了多个人的信息。写if((*head).birth.day<(*headl).birth.day)
一函数,求这些人中年龄最大{head->next=head1->next;
(即出生日期最小)者的名字。p=(*head).name;
结构体类型定义如下:I
structdatc{intyear;intmonth;intday;};else
〃日期结构体类型{hcad=hcad1;
structstudcntNodc〃链表结点的结p=(*hcad).name;
构体类型)
{charname[10];〃人名}
structdatebirlh;//出生日期else
structstudentNode*next{head二head1;
};p=(*hcad).namc;}
*/}
char*oldcst(structstudcntNodc*L))
/*若L是空表,则返回空指针nullelse
否则返回表中年龄最大者的名字{head=head1;
*/p=(*head).name;|
{intj;)
char*p;if(hcad1->ncxt==0)break;
structstudentNode*headl,*head;)
hcad=L;1
p=(*head).name;else
if(hcad->next!=0){p=(*head).name;}
{return(p);
for(j=l;u++)}
(/*11.063结构体类型定义如下:
headl=head->next;structcourse
if((*hcad).birth.ycar<(*head1).birth.ycar){intcID;〃课程号,取值0〜99
{head->next=head1->next;charnameflO];〃课程名
p=(*head).name;floatcredit;〃学分,取值0~5
)intsemester;//学期,取值1~8
else);
结构体数组c存储了n1课程的信息。写structstudent〃结构体类型
一函数,求学期s的总学分。{charname[10];〃人名
*/structdatebirth;〃出生日期
floatcre(litSum(structcoursec[],intn,ints));
{inti;结构体数组s存储了n个人的名字和出生
floatsum=0;日期。写一函数,由数组s中n个人
for(i=0;i<n;i++)的信息及其顺序构造相应的链表。链表的
if(c[i].semester==s)结点的结构体类型定义如下:
sum=sum+c[il.credit;structstudentNode〃结构体类型
returnsum;{charname!10];〃人名
}structdatebirlh;〃出生日期
/*11.073课程链表结点的结构体类型定义structstudentNode*next
如下:);
structcourseNode,/课程链表结点的*/
结构体类型structstudentNode*CreateLinkList(,$truct
(intcID;//课程号,取值0〜99students[],intn)
charnamellOJ;〃课程名{inti,j=0;
floatcredit;〃学分,取值0~5structstudentNode*hcad;
intsemester;〃学期,取值1~8structstudentNode水pl,水p2;
structcourseNode*next;if(n==0)returnNULL;
};while(j<n)
结构体链表Lc存储了各学期多门课程的{pl=(structstudentNode
信息。写一函数,*)malloc(sizeof(structstudentNode));
求学期s的总学分。if(j=O)hcad=p1;
*/else(*p2).next=pl;
floatcrcditSum(structcourseNode*Lc,ints)p2二pl;
/李若Lc是空表,则返回0;for(i=0;i<IO;i++)
否则返回学期s的总学分(*pl).name[i]=s[j].name[i];
*/(*pI).birth.year=s[jJ.birth.year;
{floatsum=0;(*pl).birth.month=s[j].birth.month:
if(Lc==NULL)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基因芯片在肿瘤个体化治疗中的生物标志物筛选
- 外墙真石漆施工方案及工艺流程
- 基础混凝土施工环境保护方案
- 危大工程专项施工方案必要内容概述
- 防静电地坪漆施工要点方案
- 鱼塘清淤工程实施指导方案
- GB/Z 158-2025增材制造设计功能梯度增材制造
- 基于系膜细胞增殖标志物的个体化干细胞治疗策略
- 基于智能输液的术中液体负平衡策略
- 基于家庭动力学的干预策略调整研究
- 团体团建跳舞活动方案
- 食品加工企业主要管理人员及工程技术人员的配备计划
- 儿童语言发育迟缓课件
- 2022浙DT9 民用建筑常用水泵和风机控制电路图
- 2025至2030年中国汽车用碳纤维行业竞争格局分析及市场需求前景报告
- T/CHEC 007-2021自动平移门安装验收技术规范
- 2025年部编版道德与法治六年级上册全册教案设计(共4个单元含有教学计划)
- 招标代理公司制度与流程汇编
- 课题申报书:“职教出海”战略下中国职业教育国际化路径与策略研究
- 课程设计说明书
- 2025年广东省粤科金融集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论