ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:30.13KB ,
资源ID:9285260      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9285260.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(武汉大学计算机学院C语言部分年份试题.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

武汉大学计算机学院C语言部分年份试题.docx

1、武汉大学计算机学院C语言部分年份试题武汉大学计算机学院2004-2005学年度第2学期2004级高级语言程序设计期末考试试卷A卷答案及评分标准一 单项选择题:(选择最合适的答案填空,每小题2分,共20分)( )1不正确的常量是_B_ 。A. tB. 084C. 1.2e4D. 0x8fL( )2表达式-8%3+13/2的结果为_D 。A. 4.5B. 8C. 8.5D. 4( )3设变量 int a=1,b=2; 则执行表达式a+=3,b-2,+b,a*=b后变量a和b 的 值为_C 。A. 2和2B. 3和3C. 12和3D. 12和2( )4表达式0xad86|0xff的值为_A_ 。A.

2、 0xadffB. 0x86C. 0xad86D. 0xff( )5设有如下宏定义 #define price(x) 5+x 则执行赋值语句 v=price(4)*price(15);/*v为int型变量*/后,v的值为 C 。A. 180B. 85C. 40D. 60( )6在定义指针变量时,void *类型表明指针_ A 。A. 指向对象类型未知B. 不指向任何对象C. 指向整型的对象D. 指向char类型对象( )7设int a34,*p3; 则以下_C_赋值语句是正确的。A. p=a0;B. p1=a;C. p1=a2;D. p=a;( )8创建一个新的文本文件,可对该文件进行读写操作

3、,则_A_打开方式是正确的。A. “w+”B. “wb”C. “r+”D. “rb+”( )9表达式4&5结果为_B 。A. 0B. 1C. 4D. 5( )10 正确的标识符是_A 。A. _a123B. 3zC. “next”D. A二 文字填空(共15分)1 一个合理的算法应该具有“有穷性”,“有穷性”指的是_经过有限个步骤的处理以后,算法应该结束_。2 %作为运算符表示_取余数 _。3 在C语言中,_全局变量_变量和_静态(局部静态)_变量在程序一开始执行就被分配内存空间,直到整个程序执行结束其内存空间才被释放。4 设x、y为int类型变量,请写出以下命题: (1) x和y都为偶数 _

4、(x%2=0)&(y%2=0) 或者 (!(x%2)&!(y%2)_ (2) x和y中至少一个能被3整除 _(x%3=0)|(y%3=0) 或者 _(!(x%3)|!(y%3)_5 编译预处理命令#include的作用是_文件包含_。6 设有如下定义int (*ptr)5; 则表示定义的ptr是_指向一维数组的指针_或者 数组_变量。7 完成字符串连接的库函数是_strcat()_。8 typedef int A12; 的作用是_定义类型名A,表示类型int 12_。三 程序填空(请在空白处填写合适内容以完成整个程序,共10分)1 以下程序实现从键盘输入一个整数,然后以相反的顺序输出每位数字。

5、 例如:输入1234,则输出4321。#include void main() int number,right; printf(“enter your number:n”); scanf(“%d”, &number ); do right= number%10 ;printf(“%d”,right);number= number/10 ; while( number!=0 ); printf(“n”);a) 下面程序将若干字符串按照字典顺序排列并输出 #include #include void sort( char *s ,int n) int i,j; char *t; for(i= 0

6、 ;i n-1 ;i+) for(j= i+1 ;j0 ) t=si; si=sj; sj=t; void main()char *s5=“Pascal,”C language”,”Prolog”,”fortran”,”Visual C+”;int i;sort(s,5);for(i=0;i5;i+) puts(si); 四 程序阅读与分析(共10分)1. 分析以下程序执行流程,并写出下列程序的运行结果。#include void main() int j; for(j=1;j=5;+j) switch(j%2) case 0: j+;printf(“#”);break; case 1:j+=

7、2;printf(“*”);default: printf(“n”); 解答:运行结果为:*#(注意:评分时如果试卷中给出结果不正确或者没有给出运行结果,但分析程序执行流程基本正确给分不超过2分。)2. 阅读以下递归函数,分析进行k=fib(7)调用时程序运行过程;调用完成后变量k的值为多少? #include long fib(int g) switch(g) case 0:return 0; case 1:case 2:return 1; return(fib(g-1)+fib(g-2);解答:调用完成后k的值为13 (注意:评分时如果试卷中给出k的值不正确或者没有给出k的值,但分析程序执

8、行流程基本正确给分不超过3分。)五 子程序设计(每小题15分,共30分)本题说明:完成函数设计时,请自行说明所有的形式参数的类型1. 设计一个函数strcpy(s1,s2),将字符串s1复制到字符串s2中,且函数strcpy()返回值为实际复制到s2中字符个数。例如:函数调用strcpy(“asdfgh”,s2)完成后,字符串s2中内容为”asdfgh”,函数返回值为6。解答:int strcpy(char *s1,char *s2) /*函数原型3分*/ int n=0; /*2分*/while(*s1=*s2)!=0) /*3分*/ s1+; /*1分*/ s2+; /*1分*/ n+;

9、/*1分*/return n; /*2分*/*语法2分*/2. 设计一个函数delarr(a, m, n),a为一个已经按照从小到大排列的一维整数数组(数组元素的个数为m),从数组a中删除所有等于n的元素,且函数返回值为删除n以后数组a余下的元素个数。例如:int a5=1,2,2,3,4;则,delarr(a,5,2)调用完成后,数组a的内容为1,3,4,0,0,函数返回值为3。解答:int delarr(int *a,int m,int n) /*函数原型3分*/ int i,j,k=m; /*1分*/for(i=0;im;i+)/*2分*/ if(ai=n) /*1分*/ for(j=i

10、+1;j=0)|(n+ttd.labC. (*p).ttd.labD. p.ttd.lab( )10 表达式(int)(6.8+7/2)的结果是_B_ 。A. 10B.9C.11D.8二 文字填空(共15分)1. break语句出现在循环语句中的作用是_终止整个循环的执行_。2. 如果int类型数据在内存中占据2个字节,则int类型数据取值范围为从_-32768_到_32767_。3. 在C语言中,全局变量定义时在数据类型前面增加前缀static,则表示该变量仅在_本文件内或者定义它的文件中或者整个程序_ 内有效。4. 设x、y为char类型变量,请写出以下命题: (1) x和y都为大写字母

11、_(x=A&x=A&y=0&x=0&y=9)_评分要点:少写“=”给1分5. 假设a=3,b=7,c=5,则表达式abc的结果等于_1_。6. 设有如下定义int a10;long *p,*q;p=(long *)a;q=(long *)(a+8), 则表达式q-p的结果等于_4_答16个字节也算正确_ _。7. 库函数malloc(sizeof(long)的作用是_ 动态申请存放一个long类型数据内存 _。评分要点:写明动态申请内存即算正确8. 表达式10&12的结果等于_ _8_。三 程序填空(请在空白处填写合适内容以正确完成整个程序,共10分)1 以下程序的功能是:统计100到1000

12、之间各位数字之和为8的数据个数。 #include void main() int i,s,k,count=0; for(i=100;i0或者k=1 ) s=s+k%10;k= k/10 ; if (s!=8) break ; count+; printf(%d,count); 2. 下面程序的功能是:从一个字符串中删除指定字符,例如,从字符串”Prolog”中删除字符o,则结果为”Prlg”。#include void deletechar( char *s或者char s , char c) int i=0,j; while( si!=0或者si!=0或者si 或者si0 ) if(si=

13、c) j= i ; while( sj!=0或者sj!=0或者sj或者sj0 ) sj=sj+1; j+; else i+或者+i或者i=i+1或者i+=1 ;void main(void) char s20,c; gets(s); getchar(c); deletechar(s,c); puts(s); 填si+!=0或者si+!=0或者si+ 或者si+0填continue 算正确四 程序阅读与分析(共10分)1. 分析以下程序执行流程,并写出下列程序的运行结果。#include int x=0;int fat(int n) static int f=0;x+=2; f=f+n; ret

14、urn (f);void main(void) int i,j; for(i=3;i=5;+i) printf(“%dt”,fat(i); printf(“%dn”,x); 答案: 3 2 7 4 12 6评分要点:给出上述6个正确结果,给满分5分结果完全不对,但是给出程序执行流程分析基本正确,最多给3分2. 阅读以下递归函数,假设有如下定义:int a6=6,1,4,7,4,0;分析进行printn(a)调用时程序运行过程;并写出该调用产生的运行结果。 #include void printn(int *x) if(*x!=0) printn(x+1); if(*x%2) printf(“%

15、d,”,*x*2); else printf(“%d,”,*x);答案: 0,4,14,4,2,6评分要点:给出答案6,2,4,14,4,0给4分,如果结果完全不对,但是给出程序执行流程分析基本正确,最多给3分五 子程序设计(每小题15分,共30分)本题说明:完成函数设计时,请自行说明所有的形式参数的类型1. 设计一个函数getnum(s,&n),字符串s是十六进制字符串,函数getnum统计s的字符个数并作为函数值返回,另外n返回s对应的十进制整数数据值。例如,有如下定义, char s=”12a”;int n,m;则有函数调用m=getnum(s,&n)后,m的值为3,n的值为298即等于

16、1162+216+10=298。参考答案#include int getnum(char s,int *m) int n,sum=0; n=0; while(sn!=0) switch(sn) case 0:case 1:case 2:case 3:case 4: case 5:case 6:case 7:case 8:case 9: sum=s*16+sn-0;break; case a:case b:case c:case d:case e:case f: sum=sum*16+si-a+10;break; case A:case B:case D:case C:case E:case F

17、: sum=sum*16+si-A+10;break; n+;*m=sum;return n;评分要点:1 计算s的长度并正确返回2 将字符串s的内容转换为十进制整数的求解算法正确注意语法错误最多扣2分,重点在于程序的思路正确2. 设计一个函数rightarr(a, m, n),a为一维整数数组(数组元素的个数为m),该函数实现数组a的循环左移n位。例如:有如下定义,int a5=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(xn)

18、t=a0;for(y=0;ym-1;y+)ay=ay+1;am-1=t;x+;评分要点:1 移位方向为左移2 循环移位算法正确,重点注意a0移动正确注意语法错误最多扣2分,重点在于程序的思路正确六 算法设计(选做一题15分)说明: 仅需任意选做一题。多选者,以卷面先列出的为判分依据; 分析思路、重要数据类型的定义、模块的功能、形式参数、函数返回值说明; 用伪代码或其它方法描述子程序; 不必完整写出函数程序的代码,完整代码将不作为判分依据。1. 函数link(h,n), 其中h 是一个由整数组成的从小到大排列的有序单链表,n为整数。函数link实现把n按照顺序插入到链表h中,函数返回值为完成插入

19、n之后的有序链表中结点个数。具体要求如下:A)说明链表结点类型的C语言定义形式;B)给出函数link(h,n)的原型。C)描述函数的算法。参考答案:评分要点:以算法可行,基本正确为主要评分指标(1) 链表结点类型为结构类型(2) 函数link(h,n)中参数h为二级指针,n为整型(3) 插入算法:首先查找插入位置,然后完成插入操作(注意插入在链表头部和非头部的区别。2. 任意输入一个年、月、日,编程实现判断该日期是星期几。具体要求如下:D)说明如何表示一个日期数据,以及星期一到星期天;E)说明程序中划分多少模块?并给出每个模块的原型;F)描述每个模块的算法。参考答案:评分要点:以算法可行,基本

20、正确为主要评分指标(1) 日期可为结构类型或者整型,星期一到星期天可为枚举、字符串或者整数等(2) 算 法中主要功能:判断某年是否为闰年;给出一个基准日期的星期数据为计算的初始数据;计算该天为多年第几天;计算星期几。武汉大学计算机学院2005-2006学年度第2学期2005级高级语言程序设计期末考试试卷B卷姓名: 学号: 专业: 说明:未经主考教师同意,考试试卷、答题纸、草稿纸均不得带离,否则视为违规。答案请全部写在答题纸上,写在试卷上无效。一、 单项选择题:(选择最合适的答案填空,每小题2分,共20分)( )1 下面四个选项中 D 是合法的标识符。E. tF. A#12G. sum.5H. eve( )2 下面四个选项中,不正确的浮点型常量为_B_ 。E. -234.F. .23E1.2G. .84e+2H. .174( )3 若有以下类型说明语句: char a; int b; float c; double d; 则 表达式a*b+d-c的运算结果的类型为_C_ 。E. charF. floatG. doubleH. int

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1