计算机C语言上机题库.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机C语言上机题库

03 程序填空题: 给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域之和作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include stdio.h #include stdlib.h #define N 8 typedef struct list { int data; struct list *next; } SLIST; SLIST *creatlist(int *); void outlist(SLIST *); int fun( SLIST *h) { SLIST *p; int s=0; p=h-next; while(p) { /**********found**********/ s+= p-___1___; /**********found**********/ p=p-___2___; } return s; } main() { SLIST *head; int a[N]={12,87,45,32,91,16,20,48}; head=creatlist(a); outlist(head); /**********found**********/ printf(\nsum=%d\n, fun(___3___)); } SLIST *creatlist(int a[]) { SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; iN; i++) { q=(SLIST *)malloc(sizeof(SLIST)); q-data=a[i]; p-next=q; p=q; } p-next=0; return h; } void outlist(SLIST *h) { SLIST *p; p=h-next; if (p==NULL) printf(The list is NULL!\n); else { printf(\nHead ); do { printf(-%d, p-data); p=p-next; } while(p!=NULL); printf(-End\n); } } 本题考查的是链表。 在函数fun中,通过指针p遍历链表的各个结点,直到其为NULL,如果其不为NULL,则将其data域的值累加到s上去,并将p指向其后续结点,故第一空应为data,第二空为next;第三空的目的是调用函数fun,由于函数fun的形参为指向SLIST类型的指针,而head又是整个链表的头指针,故第三空应填head。 程序修改题: 给定程序modi.c中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中,若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。 例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 本题着重考察考生对C语言中一些简单算法的掌握情况。 #include stdio.h #define SIZE 20 fun(double *s,double *w) { int k,i; double sum; for (k=2,i=0;iSIZE;i++) { s[i]=k; k+=2; } /************found************/ sun=0.0; for(k=0,i=0;iSIZE;i++) { sum+=s[i]; /************found************/ if (i+1%5==0) { w[k]=sum/5;sum=0;k++;} } return k; } main() { double a[SIZE],b[SIZE/5]; int i,k; k=fun(a,b); printf(The origi

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档