第一范文网 - 专业文章范例文档资料分享平台

C习题集 (6)

来源:用户分享 时间:2020-06-22 本文由凉情凉心 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

}

printf(\ }

8. 调用find函数求实参数组中最大值,再调用find函数求实参数组中最小值。 #include void main()

{ float s,a[7]={2,6,3,8,3,12,9},find(float*,int,int); s=find(a,7,1); ⑴ ⑵ printf(\ }

float find(float *p,int n,int flag) { int i; float t,fh;

if(flag>=0) fh=1; else fh=-1; ⑶ for(i=1;it*fh) t=*(p+i); ⑷ }

9. 对数组按值从大到小的顺序排序后输出。

#include void main()

{ float a[7]={2,6,3,8,3,12,9}; void sort(float*,int); ⑴

for(int i=0;i<7;i++) printf(\ printf(\ }

void sort( ⑵ ) { int i,j,k; float t; for(i=0;i

for(j=i+1;j

10. 下列程序读入时间数值,将其加1秒后输出,时间格式为:

hh: mm: ss,即时:分:秒,当小时等于24小时,置为0。 #include

struct { int hour, minute, second; } time; void main(void)

{ scanf(\⑴ ); time.second++; if( ⑵ ==60) {

20

⑶ time.second=0; if(time.minute==60) {

time.hour++; time.minute=0;

if( ⑷ ) time.hour=0; } }

printf (\ }

11. 将编号从⑴到⑾的同学围成一圈,按下列顺序贺卡:⑴、⑶、⑹、⑻、⑾、⑵、⑸ ⑺、⑽、⑴、⑷、……,计算至少发到第几张时,每位同学发到的贺卡数同样多。 #include void main()

{ int num=1,jg=2,ip=1,i,m[12]; for(i=1;i<12;i++) m[i]=0; while(1) {

m[ip]++; num++; ip+=jg; if(ip>11) ⑴

if(jg==3) jg=2; else ⑵

for(i=2;i<=11;i++) if( ⑶ ) break; if( ⑷ ) break; }

printf (\发到第%d张时每人手中贺卡数一样多\\n”, ⑸ ); }

12. 下列函数可以对一维数组按值从大到小或从小到大排序。 void sort(float *p,int n,int swich) { int fh,i,j,l; ⑴

if(swich==0) fh=-1; ⑵ ; for(i=0;i

for(j=i+1; ⑶ ;j++) if(*(p+j)*fh> ⑷ ) l=j; t=*(p+i); *(p+i)=*(p+l); *(p+l)=t; } }

13. 下列函数用矩形公式求f(x)在[a,b]的定积分: 先M等份积分区间求得积分近似值, 再2M等份求得积分近似值,再4M等份求得积分近似值,……,当两次积分近似 值之差的绝对值小于eps时返回计算结果。

float sum(float a,float b,int m,float eps) { float h,s1=0,s2,x; ⑴ while(flag) {

s2=0; x=a; h=(b-a)/m

21

for(i=1;i<=m;i++) {

s2+=(f(x)+f(x+h))*h/2; x=x+h; }

⑵ s1=s2; m=m*2; }

⑶ }

14. 下列函数输出一行字符:先输出kb个空格,再输出n个指定字符(由实参指定)。 #include

void print( ⑴ ) { int i;

for(i=1;i<=kb;i++) ⑵ for( ⑶ ) printf(“%c”,zf); ⑷ }

2n

15. 下列函数求任意阶多项式 a0+a1X+a2X+...+anX的值并返回多项式的值。 float sum( ⑴ ) { float y,t=1; ⑵ y=*a;

for(i=1;i<=n;i++){ ⑶ y+=*(a+i)*t; }

⑷ }

16. 下列函数在n个元素的一维数组中,找出最大值、最小值并传送到调用函数。 #include void find(p,max,min,n)

float ⑴ ; int n; { int k; ⑵ *max=*p; ⑶ for(k=1;k

if( ⑷ ) *max=t; if(t<*min) *min=t; } }

22

17. 下列函数用于将任意方阵(行数等于列数的二维数组)转置。

void mt( ⑴ ) 如数组 1 11 -3 -2 { int i,j; float t; 2 3 4 5 for(i=0;i

(a+i*n+j)=*(a+j*n+i); 1 2 7 4 ⑶ 11 3 -4 5 } -3 4 4 6 } -2 5 2 7

18. 下列程序读入六个字符串,排序后输出。 #include

void sort(char *a[],int n) { int i,j,l; char *temp; for(i=0;i

for(j=i+1;j

void main()

{ char *name[6],ch[6][30]; int k; for(k=0;k<6;k++) ⑵

for(k=0;k<6;k++) gets(name[k]); ⑶ for(k=0;k<6;k++) puts(name[k]); }

19. 下列函数用于将链表中某个节点删除,其中n为全程量,表示链表中的节点个数。 struct tabdata *del(struct tabdata *h, long num) { struct tabdata *p1,*p2; int if(h==NULL) {

printf(”\\nlist null!\\n”); ⑴ }

p1=h;

while(num!=p1->num&& ⑵ ) { p2=p1; p1=p1->next; }

if(num==p1->num) {

23

if(p1==h) h=p1->next;

else ⑶

n--; printf(”delete:%ld\\n”,num); }

else printf(”%ld not been found!\\n”,num); end: return h; }

20. 下列函数用于将链表中各节点的数据依次输出。

void print(struct student *head) { ⑴ p=head;

if(head!=NULL) do {

printf(”%ld\\n”,p->data); ⑵ } while ( ⑶ ); }

21. 已建立学生“英语”课程的成绩链表(成绩存于score域中),下列函数用于计算 平均成绩并输出。

void print(struct student *head)

{ struct student *p;float num; ⑴ ; ⑵ ; if(head!=NULL) {

for(num=0;p!=NULL; ⑶ ,i++) num+=p->score; num=num/i; printf(“%8.1f\\n”,num); } }

22. 已建立学生“英语”课程的成绩链表(成绩存于score域中,学号存于num域中), 下列函数用于输出待补考学生的学号和成绩,及补考学生人数。

void require(struct student *head) { struct student *p; ⑴ if( head!=NULL) { ⑵ while(p!=NULL) { if( ⑶ ) {

printf(”} %6.1f\\n”,p->num,p->score); x++; }

p=p->next; }

24

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育C习题集 (6)全文阅读和word下载服务。

C习题集 (6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1093775.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top