版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 已经反复修改调试过了,应该没问题了。如果对答案有什么疑问可以直接私戳我qq553915228 李添锐一、 写出下列程序段的运行结果(40分)1.(4 分)int i=1, j=2, k=4; printf(%f, i-(float)(j/k); printf(%d, , j38) break; while(i=3); printf(%dn, j); 输出:4,9( 此处需要换行即 n) 4.(4 分)int p7=11,13,15,17,18,20,23, i=0,k=0; for (;pi%2;) switch(pi%5) case 1: k+=pi+; break; case 3: k
2、+=pi; default: i+; printf(%d,%d,i,k); 输出:4,24 5.(4 分)char s=1234, *p; for (p=s+3; ps; p-) printf(%s, p); 输出:4,34,234, 6.(4 分)int f() static int j=1; int k=1; return (+j)+(+k); int main() 厦门大学c 语言程序设计课程试卷信息科学与技术学院系2013 年级专业主考教师:试卷类型:(a 卷)精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 1 页,共 11 页 - - -
3、- - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 1 页,共 11 页 - - - - - - - - -2 int i; for (i=0; i3; i+) printf(%d, f(); return 0; 输出:4,5,6, 7.(4 分)void fun(int i) if (i) fun(i-3); printf(%d,i); int main() fun(9); return 0; 输出:3,6,9, 8.(4 分)union struct int a,b,c; s; int a3; u; int main() u.s
4、.a=0; u.s.b=1; u.s.c=2; *(u.a+1)=3; u.a2=4; printf(%d,%d, u.s.a, u.s.b); return 0; 输出 0,3 9.(4 分)int s33= 1,2,3,4,5,6,7,8,9; int sum; sum = *(s0) + *(s1+1) + *(s2+2); printf(%d, sum); return 0; 输出:15 10.(4 分)file *fp; int e; long len; char c; fp=fopen(pi.tmp,w); fputs(3.1415926, fp); fclose(fp); fp=
5、fopen(pi.tmp,r); fscanf(fp,%d%c,&e,&c); len=ftell(fp); fseek(fp, -1l, seek_end); len = ftell(fp)-len; printf(%ld,len); 输出:6 二、改错题( 20 分)已知数据文件“ c:data.dat”以二进制方式存有300个整数,函数 readdat( )把这些数存入数组a 中,函数 fun( )的功能是:依次从数组a 中取出一个数,若该数连续大于它之前的五个数且该数是偶数(若之前不满五个数, 则不统计),统计满足此条件的个数cnt,并把这些数按从大到小的顺序存入数组b
6、 中。程序中包含若干个错误, 请指出程序中的错误并更正。提示:程序 30 行之前存在精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 2 页,共 11 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 2 页,共 11 页 - - - - - - - - -3 8 个错误。#include /* 第 1 行*/#define max 300; /* 第 2 行*/ 去掉分号;int amax, bmax, cnt ; /* 第 3 行*/ void fun( ) /* 第
7、4 行*/ /* 第 5 行*/int i, j, flag; /* 第 6 行*/for(i=5;imax;i+) /* 第 7 行*/ 本行之前加上 cnt=0 /* 第 8 行*/for(j=i-5;jaj& ai%2=0) flag=1; /* 第 10 行*/ &应该双写else /* 第 11 行*/ /* 第 12 行*/flag=0; /* 第 13 行*/continue; /* 第 14 行*/ /* 第 15 行*/ if(flag=1) bcnt+=ai; /* 第 16 行*/ /* 第 17 行*/for(i=0;icnt-1;i+) /* 第 18
8、 行*/ i 改为 ifor(j=i+1;jbj) /* 第 20 行*/ 改成 /* 第 21 行*/bi=bj; /* 第 22 行*/ 将 22 行与 23 行对调flag=bi; /* 第 23 行*/bj=flag; /* 第 24 行*/ /* 第 25 行*/ /* 第 26 行*/int main() /* 第 27 行*/ /* 第 28 行*/int i ; /* 第 29 行*/ 加一个函数声明void readdat ();readdat( ); /* 第 30 行*/fun( ); /* 第 31 行*/printf(cnt=%dn, cnt); /* 第 32 行*
9、/for(i = 1 ; i cnt ; i+) /* 第 33 行*/ i=0printf(%dn, bi); /* 第 34 行*/精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 3 页,共 11 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 3 页,共 11 页 - - - - - - - - -4 printf(n); /* 第 35 行*/ return 0; /* 第 36 行*/ /* 第 37 行*/void readdat() /* 第 38 行*/
10、 /* 第 39 行*/int i ; /* 第 40 行*/file *fp ; /* 第 41 行*/if (fp=fopen(“c:data.dat” , “rb ” )=null) /*第42行*/c:data.dat 注意双写 /* 第 43 行*/printf(cant open file!n); /* 第 44 行*/exit(0); /* 第 45 行*/ /* 第 46 行*/for(i = 0 ; i max ; i+) /* 第 47 行*/fscanf(fp, %d, &ai); /* 第 48 行*/ 加上 fclose(fp) ; /* 第 49 行*/ 本
11、题 20 分 应该是有 10 处错三、编程题( 40 分)注意:程序中请添加必要的注释1、 某个公司采用公用电话传递数据,数据是四位的整数, 在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以 10 的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。例如:输入2468,输出 3197(12 分)解:本题较简单,按照题目所述编写代码即可#include int main() char a4; /因为是直接输入2468输出 3197 所以我们要用字符串int i; scanf(%s,a); for(i=0;i4;i+) 精品学习资料 可选择p d f - - - - -
12、 - - - - - - - - - 第 4 页,共 11 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 4 页,共 11 页 - - - - - - - - -5 ai-=48; /将字符转成相应的数字ai+=5; ai%=10; i=a0;a0=a3;a3=i; i=a1;a1=a2;a2=i; for(i=0;i4;i+) printf(%d,ai); return 0; 2、输入一个字符串,内有数字和非数字字符。请编写一个函数找出其中连续最长的数字串,返回找到的连续最长数字串及其长度。若连续最长数字串有
13、多个,则返回最后一个串。例如, 输入 “abcd12845ed12 5ss123?456789” , 返回 “456789”及6;又如,输入“ abcd12345 ss54321 ”返回“ 54321”和5。要求:所编写的函数中应采用指针法来引用输入字符串中的元素。(14分)解:本题难度适中, 需要用到字符串转成数字等知识,最后那个要求用指针简直就是坑爹#include #include int main() char a1000,b10100=0,*p,*q; int i,j,k=0,l=0,m,n,maxl=0,maxnum=0; 精品学习资料 可选择p d f - - - - - - -
14、 - - - - - - - 第 5 页,共 11 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 5 页,共 11 页 - - - - - - - - -6 gets(a); n=strlen(a); p=a; /以下的所有 *(p+x)指的都是 ax (坑爹的指针 = =) for(i=0;i=48&*(p+i)=48&*(p+j)=maxl) maxl=l; maxnum=k; k+; i=i+l; l=0; m=strlen(bmaxnum); 精品学习资料 可选择p d f - - -
15、- - - - - - - - - - - 第 6 页,共 11 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 6 页,共 11 页 - - - - - - - - -7 printf(%s ,bmaxnum); printf(%d,m); return 0; 3、用链表存储一个八进制数(类型为unsigned long) ,(520)8可存储为如下链表(表示链表尾):函数add(a,b) 的参数 a和b分别指向两条链表 (表示两个八进制数),函数返回链表c,表示a加上b后所得的八进制数。例如,再有b如下:则执
16、行 c=add(a,b)后,由于 (520)8 + (1314)8 = (2034)8,最后结果如下:要求: (1)给出链表结点定义(2分) ;(2)编写 add 函数,实现题目要求的功能(12分) 。解:本题考指针引用链表,较难,笔者用的方法是双向链表法#include #include #define len sizeof(struct p) struct p int a; struct p *next; c 2 0 3 4 a 5 2 0 b 1 3 1 4 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 7 页,共 11 页 - - - -
17、- - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 7 页,共 11 页 - - - - - - - - -8 struct p *before; ; struct p*creat() struct p *p1,*p2,*last=null; int n=0;char a10; p1=p2=(struct p*)malloc(len); scanf(%s,a); p1-a=an-48; p1-before=null; while(an!=0) n+; if(n1) p2-next=p1; p2=p1; p1=(struct p*)mal
18、loc(len); p1-a=an-48; p1-before=p2; p2-next=null; last=p2; return last; 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 8 页,共 11 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 8 页,共 11 页 - - - - - - - - -9 struct p *add(struct p *p,struct p *q) struct p *p1,*p2=null; int n=0; while(p
19、&q) n+; p1=(struct p*)malloc(len); p1-a=p-a+q-a; if(n=1) p2=p1;p2-next=null; else p2-before=p1;p1-next=p2; p2=p1; p=p-before;q=q-before; if(p=null) p2-before=q;q-next=p2; if(q=null) p2-before=p;p-next=p2; while(p2-next!=null) 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 9 页,共 11 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 9 页,共 11 页 - - - - - - - - -10 p2=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47957-2026安全与韧性防护安全为组织建立安全计划指南
- 2026中国象棋高水平运动员优势特徴培养基地训练竞赛大纲深度报告
- 2026生物柴油制备工艺应用领域市场前景经济效益环境保护政策支持发展规划报告汇编
- 2026人工智能算法治理与数据资产评估体系建设
- 2026中国新能源汽车技术革新与市场前景规划分析报告
- 2026中国智能交通行业系统建设与发展规划
- 2026煤炭开采绿色转型与生态恢复技术指南
- 2026中国细胞治疗CDMO平台建设标准与质量体系研究报告
- 2026中国医疗器械行业政策环境分析研究投资规划市场发展报告
- 2026瑞士医疗器械行业市场需求分析投资机遇规划分析研究报告
- 2026 年秋季开学初中军训感恩励志主题课件
- 入党考试题目及答案
- 2026 年消防文员笔试题库及答案
- 2026年黄冈中小学教师选调笔试真题(附答案)
- GB/T 6669-2026软质泡沫聚合材料压缩永久变形的测定
- 2026年义务教育数学(2026版)课程标准考试测试卷及参考答案
- 2026年秋新教材九年级历史上册新课标必背知识点
- 九年级化学《碳酸盐的性质》探究式教学设计
- 2025年广西区直事业单位面试真题(附答案)
- 第七讲:粒子世界
- 总结假期收获主题班会课件
评论
0/150
提交评论