其中,链表节点结构 node 已经定义。
--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何内容,仅在程序中介于 \ 和
\ 的部分填入所编写的若干语句。
------------------------------------------------*/
#include
struct node {
int data; node* next; };
/**********Program**********/
/********** End **********/
int main() {
node* p_head=NULL; read_in(p_head,\ sort(p_head);
write_out(p_head,\ return 0; }
答案:void read_in(node* & p_head, char* s_file) {
node * p_tail = p_head; ifstream inf(s_file,ios::in); int m;
}
while(inf>>m) { }
inf.close();
node * p_new = new node; p_new->data =m; p_new->next = NULL; if(!p_head || !p_tail) { } else { }
p_tail->next = p_new; p_tail=p_new;
p_tail = p_head = p_new;
void sort(node* p_head) { }
void write_out(node* p_head, char* s_file) { }
ofstream ouf(s_file,ios::out);
for(node * p_cur = p_head; p_cur; p_cur=p_cur->next) { }
ouf.close();
ouf< p_i;p_i=p_i->next) { } node* p_k= p_i; for(node* p_j=p_i;p_j;p_j=p_j->next) if(p_j->data < p_k->data) p_k=p_j; int x = p_i->data; p_i->data = p_k->data; p_k->data = x; 第22题 (10.0分) 题号:684 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:一个首项大于0且等差大于0的等差数列前四项和为 26,前四项积为880。请写一个函数返回该数列的第 20项的值。 提示:如果一个数列从第二项起,每一项与它的前一项的 差等于同一个常数,这个数列就叫做等差数列,这 个常数叫做等差数列的公差。如等差数列:1,3, 5,7,9,11。公差是2,该数列的第5项值是9。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在注释形式标识Program和 End之间填入所编写的若干语句。 --------------------------------------------------*/ #include /**********Program**********/ /********** End **********/ void wwff(); int main() { cout< //忽略阅读开始 wwff(); //忽略阅读结束 return 0; } //以下忽略阅读 void wwff() { ofstream wf(\ wf< 答案:int myfun() { } 第23题 (10.0分) 题号:631 /*------------------------------------------------------- 【程序设计】 --------------------------------------------------------- 题目:打鱼还是晒网 中国有句俗语叫\三天打鱼两天晒网\。某人从1990年1月1日起开始 \三天打鱼两天晒网\,问这个人在以后的某一天中是\打鱼\还是\晒网\。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 int a,b,c,d,flag; for(flag=1,a=0; flag && a<5;++a) for(d=1;flag && d<5;++d) { } b=a+(a+d)+(a+2*d)+(a+3*d); c=a*(a+d) *(a+2*d)*(a+3*d); if(b==26&&c==880) { } return a+19*d; return -1; 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 -------------------------------------------------------*/ #include void input(struct date &day); void output(int i); int days(struct date day); struct date{ int year; int month; int day; }; int main() { struct date today,term; int yearday,year,day; input(today); term.month=12; /*设置变量的初始值:月*/ term.day=31; /*设置变量的初始值:日*/ yearday=0; /**********Program**********/ /********** End **********/ day=yearday%5; /*求余数*/ if(day>0 && day<4) { cout<<\他在打鱼。\打印结果*/ output(1); } else { cout<<\他在晒网。\