武汉大学计算机学院C语言历年试题1(5)
}
2. 下面程序的功能是:从一个字符串中删除指定字符,例如,从字符串”Prolog”中删除字符?o?,则结果为”Prlg”。
#include
void deletechar( ⑥ char *s或者char s[] , char c) { int i=0,j;
while( ⑦ s[i]!=’\\0’或者s[i]!=0或者s[i] 或者s[i]>0 ) if(s[i]==c) { j= ⑧ i ;
while( ⑨ s[j]!=’\\0’或者s[j]!=0或者s[j]或者s[j]>0 )
{ s[j]=s[j+1]; j++; } } else
⑩ i++或者++i或者i=i+1或者i+=1 ;
}
void main(void) { char s[20],c; gets(s); getchar(c);
deletechar(s,c); puts(s);
}
}
if (s!=8) ⑤break ; count++; }
printf(\
⑦填s[i++]!=’\\0’或者s[i++]!=0或者s[i++] 或者s[i++]>0 ⑩填continue 算正确
四. 程序阅读与分析(共10分)
1. 分析以下程序执行流程,并写出下列程序的运行结果。
#include
int fat(int n) { static int f=0;
x+=2; f=f+n; return (f); }
void main(void) { int i,j;
for(i=3;i<=5;++i)
{ printf(“%d\\t”,fat(i)); printf(“%d\\n”,x);
} }
答案: 3 2 7 4 12 6
评分要点:给出上述6个正确结果,给满分5分
结果完全不对,但是给出程序执行流程分析基本正确,最多给3分
2. 阅读以下递归函数,假设有如下定义:int a[6]={6,1,4,7,4,0};分析进行
printn(a)调用时程序运行过程;并写出该调用产生的运行结果。 #include
if(*x%2) printf(“%d,”,*x*2); else printf(“%d,”,*x); }
答案: 0,4,14,4,2,6
评分要点:给出答案6,2,4,,14,4,0给4分,如果结果完全不对,但是给出程序执行流程分析基本正确,最多给3分
五.
1.
子程序设计(每小题15分,共30分)
本题说明:完成函数设计时,请自行说明所有的形式参数的类型
设计一个函数getnum(s,&n),字符串s是十六进制字符串,函数getnum统计s的字符个数并作为函数值返回,另外n返回s对应的十进制整数数据值。
例如,有如下定义, char s[]=”12a”;int n,m;
则有函数调用m=getnum(s,&n)后,m的值为3,n的值为298即等于1×162+2×16+10=298。 参考答案
#include
int getnum(char s[],int *m) { int n,sum=0; n=0;
while(s[n]!=’\\0’) { switch(s[n]) { case ‘0’:case ’1’:case ’2’:case ‘3’:case ’4’: case ‘5’:case ’6’:case ’7’:case ‘8’:case ’9’: sum=s*16+s[n]-‘0’;break;
case ‘a’:case ’b’:case ’c’:case ‘d’:case ’e’:case ’f’: sum=sum*16+s[i]-‘a’+10;break;
case ‘A’:case ’B’:case ’D’:case ‘C’:case ’E’:case ’F’: sum=sum*16+s[i]-‘A’+10;break; } n++;
}
*m=sum; return n; }
2.
评分要点:
1 计算s的长度并正确返回
2 将字符串s的内容转换为十进制整数的求解算法正确 注意语法错误最多扣2分,重点在于程序的思路正确
设计一个函数rightarr(a, m, n),a为一维整数数组(数组元素的个数为m),该函数实现数组a的循环左移n位。 例如:有如下定义,int a[5]={1,2,3,4,5};
则,rightarr(a,5,2)调用完成后,数组a的内容为{3,4,5,1,2}。 参考答案:
void rightarr(int a[],int m,int n) {
int x=0,y,t; while(x t=a[0]; for(y=0;y 评分要点: 1 移位方向为左移 2 循环移位算法正确,重点注意a[0]移动正确 注意语法错误最多扣2分,重点在于程序的思路正确 六. 说明: ? ? ? ? 算法设计(选做一题15分) 仅需任意选做一题。多选者,以卷面先列出的为判分依据; 分析思路、重要数据类型的定义、模块的功能、形式参数、函数返回值说明; 用伪代码或其它方法描述子程序; 不必完整写出函数程序的代码,完整代码将不作为判分依据。 2. 函数link(h,n), 其中h 是一个由整数组成的从小到大排列的有序单链 表,n为整数。函数link实现把n按照顺序插入到链表h中,函数返回值为完成插入n之后的有序链表中结点个数。 具体要求如下: A)说明链表结点类型的C语言定义形式; B)给出函数link(h,n)的原型。 C)描述函数的算法。 参考答案: 评分要点:以算法可行,基本正确为主要评分指标 (1) 链表结点类型为结构类型 (2) 函数link(h,n)中参数h为二级指针,n为整型 (3) 插入算法:首先查找插入位置,然后完成插入操作(注意插入在链表 头部和非头部的区别。 3. 任意输入一个年、月、日,编程实现判断该日期是星期几。 具体要求如下: D)说明如何表示一个日期数据,以及星期一到星期天; E)说明程序中划分多少模块?并给出每个模块的原型; F)描述每个模块的算法。 参考答案: 评分要点:以算法可行,基本正确为主要评分指标 (1) 日期可为结构类型或者整型,星期一到星期天可为枚举、字符串或者 整数等 (2) 算 法中主要功能:判断某年是否为闰年;给出一个基准日期的星期数 据为计算的初始数据;计算该天为多年第几天;计算星期几。 武汉大学计算机学院 2005-2006学年度第2学期2005级 《高级语言程序设计》期末考试试卷B卷 姓名: 学号: 专业: 说明:未经主考教师同意,考试试卷、答题纸、草稿纸均不得带离,否则视为违规。 答案请全部写在答题纸上,写在试卷上无效。 一、 单项选择题:(选择最合适的答案填空,每小题2分,共20分) ( )1. 下面四个选项中 D 是合法的标识符。 F. ‘t’ ( )2. E. -234. ( )3. G. A#12 H. sum.5 I. eve 下面四个选项中,不正确的浮点型常量为____B__ 。 F. .23E1.2 G. .84e+2 H. .174 若有以下类型说明语句: char a; int b; float c; double d; 则 表达式a*b+d-c的运算结果的类型为_____C_ 。 E. char ( )4. F. float G. double H. int 设有变量定义:int m=0,n=0;则执行表达式 (m--<0)&&(n++<0)后,m,n 的值为___A___ 。 E. -1和0 F. -1和1 G. 0和0 H. 0和1 ( )5. 以下关于C语言中预处理的叙述中不正确的是 F. 预处理命令行必须位于源程序 始的控制行都是预处理命的开始部位。 令行。
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




