版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、厦门大学c语言程序设计课程试卷信息科学与技术学院 系 2014 年级 专业主考教师: 黄绍辉 试卷类型:(a卷)一、 写出下列程序段的运行结果(40分)81.(4分)char a= 'f'-'e',b= '12',c=12,d;c = a<b<c;d =-a&& b+;printf("%d,%d,%d,%d",a,b,c,d);2.(4分)int a=2, b=5;printf("a=%d,b=d,");b/=a;a+=a-b;printf("%d,%d",a
2、,b);3.(4分)char a=256;printf("%d,",a+); a=(int)(13/5+1.4);printf("%d",a);4.(4分)int p8=11,12,13,14,15,16,17;int i=0,j=0;while (i+<7) (第一次循环i=1) if (pi%2) j+=pi;printf("%dn",j);5.(4分)int a=3,b=5;void exchange(int a, int b)int t;t=a; a=b; b=t;printf("%d,%dn", a
3、, b);int main()exchange(a,b);printf("%d,%dn",a,b);return 0;6.(4分)void f(char ch)if (ch>'a')f(ch-1);putchar(ch);int main()f('d');return 0;7.(4分)char str10="123456789"int i;for (i=9; i>0; i/=2)stri=0;printf("%sn",str);8.(4分)struct int x; int y; int z
4、;a3=1,2,3,4,5,6,7,8,9;printf("%d,%dn", a1.x+a2.y, a1.y+a2.z);9.(4分)int a8=1,2,3,4,5,6,7,8;int i=1, *p = a;while (p<a+8)printf("%d ",*p);p = p+i;i*=2;10.(4分)file *fp; int d=20150111; char c1,c2; char str4;fp=fopen("a.tmp","w");fprintf(fp,"%d", d);f
5、close(fp);fp=fopen("a.tmp","r");c1=fgetc(fp);fgets(str, 4, fp);c2=fgetc(fp);fscanf(fp, "%d", &d);printf("%c,%s,%c,%d",c1,str,c2,d);二、 改错题(20分)以下程序实现:从键盘输入20个学生的成绩数据,将这些数据存到磁盘文件“stu.dat”上,并求这些学生的最差成绩。程序中共有11个错误,20行之前存在5个错误,指出所有错误所在位置并改正。 #include <stdio.
6、h> /*第 1行*/#define size 20 /*第 2行*/struct stu /*第 3行*/ /*第 4行*/ char name10; /*第 5行*/ double score; /*第 6行*/ /*第 7行*/void save(struct stu studsize) /*第 8行*/ /*第 9行*/file fp; /*第10行*/int i; /*第11行*/if(fp=fopen("stu.dat","rb")=null) /*第12行*/ /*第13行*/printf("cannot open file
7、n"); /*第14行*/return; /*第15行*/ /*第16行*/for(i=0;i<size;i+) /*第17行*/ if(fwrite(studi,sizeof(struct stu),1,fp)!=1) /*第18行*/printf("file write errorn"); /*第19行*/ /*第20行*/int main() /*第21行*/ /*第22行*/struct stu studsize; /*第23行*/double minscore; /*第24行*/for(i=0;i<size;i+) /*第25行*/ /*第2
8、6行*/ scanf("%s%lf",&,&studi.score);/*第27行*/ /*第28行*/save(struct stu); /*第29行*/minscore = min(studsize); /*第30行*/printf("minscore is :%8.2lfn", minscore); /*第31行*/ return 0; /*第32行*/ /*第33行*/double min(struct stu studsize) /*第34行*/ /*第35行*/double temp,t; /*第36行*/
9、int i; /*第37行*/for(i=0;i<size;i+) /*第38行*/ if(temp> studi.score) /*第39行*/ t=temp; /*第40行*/temp= studi.score; /*第41行*/studi.score = t; /*第42行*/ /*第43行*/return temp; /*第44行*/ /*第45行*/三、编程题(40分)注意:程序中请添加必要的注释1、请编写函数rgcd,原型如下:int rgcd(int, int);功能是:实现将给定参数(假设均为正整数)按十进制形式各数码逆序分别生成新整数,并返回两个新整数的最大公约数
10、。例如:如果有如下函数调用:int i = rgcd(12, 72);则i的值将是3(因为21和27的最大公约数为3)。请注意,你可以根据需要编写其他函数并供rgcd调用。(12分)2、在一个学生信息管理系统中,每个学生的基本信息主要由学号、姓名、身份证号码三个部分组成。其中,身份证号码共18位,第1-17位均由数字组成,第18位为校验位,除0-9外还可能为x;第7-14位为出生年月日,例如19960101代表1996年1月1日;第17位(即倒数第二位)单数为男性,偶数为女性。(1)定义一个用于存储学生基本信息的结构体类型;(2)编写一个函数,统计出一组学生中在起止日期范围内出生的男女生数,要
11、求仅通过参数来传递数据,即学生信息通过结构体数组、起始日期和截至日期分别通过形如“yyyymmdd”的字符数组传递给该函数,统计出来的男生数和女生数也通过形参来返回。(14分)3、用链表存储一个集合。例如集合a=1,2,3可存储如下(表示链表尾):a123函数union(a,b)的参数a和b分别指向两条链表(表示两个集合),函数返回链表c,表示ab后所得的集合。例如,再有集合b如下:b1342则执行c=union(a,b)后,由于1,2,31,3,4,1=1,2,3,4。最后结果如下: c1234要求:(1)给出链表结点定义(2分);(2)编写union函数,实现题目要求的功能(12分)。参考
12、答案:第一题:评分标准:每小题4分,如有n个输出,每个占4/n分。题号参考答案10,10,1,02a=%d,b=d,2,230,344555,33,56abcd71234567891234121812,1491 2 4 8102,015,0,111第二题:评分标准:找到一个错得1分,改对得1分。共11个错,做对10个或者11个都得满分。即允许一个错误未发现,降低难度。答案:1.第7行,加;2.第10行,file 前加*3.第12行,rb改为wb4.第18行,studi前加&5.第19行后增加fclose(fp)6.第24行定义变量 int i;7.第27行,&studi.nam
13、e前去掉&8.第29行,去掉 struct stu 改为stud9.第30行,去掉size10.第36行,temp初始化为 stud0.score11.函数min增加声明或者将该函数调到main之前第三题:1评分标准:整体思路:4分;整数逆转:4分;最大公约数:4分(不采用辗转相除法的解法也可以)int gcd(int x, int y)int t;if(x > y) t = x;x = y;y = t;while(y % x != 0) t = y % x;y = x;x = t;return x;int rev(int x)int y = 0;while (x) y *= 1
14、0;y = y + x % 10;x /= 10;return y;int rgcd(int x, int y)return gcd(rev(x), rev(y);2评分标准: 3评分标准:#include<stdio.h>#include<stdlib.h>#define len sizeof(struct num)struct num int x; struct num*next;struct num* creat() int a100,i,n; struct num *head=null,*p; scanf("%d",&n);/确定数组
15、大小 for(i=0; i<n; i+) scanf("%d",&ai); for(i=0; i<n; i+) p=(struct num*)malloc(len); p->x=ai; p->next=head; head=p; return head;int main() int n,m,i,j; struct num *head1,*head2,*p1,*p2,*p3,*p4; p1=head1=creat(); p2=head2=creat(); scanf("%d%d",&n,&m); for(i=0; i<n; i+) p2=head2; for(j=0; j<m; j+) if(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毕业自我评价15篇
- 个人保证书集锦15篇
- 战友聚会致辞(15篇)
- 学生毕业晚会策划书12篇
- 四年级下册语文说课稿锦集六篇
- 客服辞职报告15篇
- 秋季幼儿园中班工作计划
- 出纳的实习报告范文锦集10篇
- 晶状体病-教学课件
- 健康检测设备代理销售合同(2篇)
- GB/T 42449-2023系统与软件工程功能规模测量IFPUG方法
- 酒店装修工程预算表EXCEL模板(推荐)
- NY 5052-2001无公害食品海水养殖用水水质
- 【讲座】2020年福建省高职分类考试招生指导讲座
- 性格决定命运课件
- 学习会计基础工作规范课件
- 双面埋弧焊螺旋钢管公称外公壁厚和每米理论重量
- 富士施乐VC2265打印机使用说明SPO
- 服务态度决定客户满意度试题含答案
- 教科版四年级科学上册全册复习教学设计及知识点整理
- 重庆万科渠道制度管理办法2022
评论
0/150
提交评论