2008春二级C语言上机题(0).doc_第1页
2008春二级C语言上机题(0).doc_第2页
2008春二级C语言上机题(0).doc_第3页
2008春二级C语言上机题(0).doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二级C语言(C05)一、改错题(20分)程序功能 通信簿(结构数组list)中存有5个联系人的信息,每个联系人的信息由位置号、姓名和电话号码组成。下列程序的功能是:输入姓名,若通信簿中存在该联系人信息则删除,显示通信簿中剩余人员信息,若不存在则输出“Not found”。测试数据与运行结果若输入:liu输出: The information after deleting: 1 zhang 2301 2 zhao 2302 4 li 2304 5 sun 2305若输入:wang输出:Not found含有错误的源程序#include#include#includestruct address int no; char name10; char phone15; ;int delphone(char delname, struct address list) int i=0,j=0; for(i=0;iN; i+) if(=delname) break; if(iN) for(j=0; jN; j+) listj=listj+1;return N-1; return N; main() struct address listN=1,zhang,2301,2,zhao,2302,3,liu,2303,4,li,2304,5,sun,2305; int i=0,k; char delname10; printf(“Please input the name of deleting:”); gets(delname); k=delphone(delname,list); if(kN) printf(“The information after deleting:n”);for(i=0;ik;i+) printf(“%5d%15s%15s”,no,name,phone); else printf(“Not found”); getch();要求1、 将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行了修改。2、 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删除整条语句。3、 改正后的源程序(文件名myf1.c)保存在T:盘根目录中供阅卷使用,否则不予评分。二、编程题(20分)编程要求1、 编写函数int del_findgcd(int a,int n,int *f),对于a指向的数组中前n个元素,删除所有下标值为奇数的数组元素中保存的整数,求得数组中剩余的n/2(或n/2+1)个整数的最大公约数并将其保存到f指向的变量中,函数返回a数组中剩余数的个数。2、 编写main函数,声明一个一维数组并用测试数据初始化,调用del_findgcd()函数删除数组中的所有满足条件的整数并求出剩余整数的最大公约数,将数组中剩余的整数和这些整数的最大公约数输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。测试数据与运行结果 测试数据:6 8 9 11 12 13 15 16 18 19 (n=10) 输出结果:6 9 12 15 18,max common divisor=3要求 二级C语言(C06)一、改错题(20分)程序功能函数int insert_date(int y,int m,int d,char s,int n)的功能是:将参数y(年)、m(月)、d(日)代表的日期按照“年/月/日”格式转换为子串后插入到s字符串中第n个字符(下标为n-1)之前。当n大于s字符串的长度时,将子串追加到2字符串之后。测试数据与运行结果若插入日期前s字符串为“Today is ,Sunday.”且n=10,则插入日期“1997-5-20”后s字符串为“Today is 1997/5/20,Sunday.”若插入日期前s字符串为“Today is ,Sunday.”且n=20,则插入日期“2007-5-20”后s字符串为“Today is,Sunday. 2007/5/20”含有错误的源程序#include #include #include #include void insert_date(int y,int m,int d,char s,int n)int leap,i; char t11,w80; for(i=0;i9) ti+=m/10+0; ti+=m%10+0; ti+=/;if(d9) ti+=d/10+0; ti+=m%10+0;ti=0;if(int)strlen(s)n-1) strcpy(s,t);else strcpy(w,s+n-1); strcpy(s+n-1,t); strcat(s,w); main()int y,m,d,n; char str80=”Today is ,Sunday.”; printf(“Input year-month-day:n”); scanf(“%d-%d-%d”,&y,&m,&d); printf(“Input n:n”); scanf(“%d”,&n); insert_data(y,m,d,str); puts(str); getch();要求1、 将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行了修改。2、 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删除整条语句。3、 改正后的源程序(文件名myf1.c)保存在T:盘根目录中供阅卷使用,否则不予评分。二、编程题(20分)程序功能在数列中查找、移动超完全数。超完全数是指有以下特性的整数n: (N)=2N,其中(N)表示整数N的所有因子之和(因子包括N自身)。例如,16的所有因子之和为31(1+2+4+8+16=31),31的所有因子之和为32,而32=2*16,因此16是一个超完全数。1000以内的超完全数有2、4、16和64。编程要求1、 编写函数void sumfac(int x,int n),对于x指向的数组中存储的n个整数组成的数列完成以下变换操作:从后向遍历数列查找超完全数。每找到一个超完全数后,将其移动到数列第一个数之前。2、 编写main函数,将测试数据中给出的变换前数列保存到一个一维数组中,调用sumfac函数对一维数组中的数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论