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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言程序设计B卷.docx

1、C语言程序设计B卷哈尔滨工业大学(威海)2010/2011学年秋季学期 C语言程序设计 笔试试题(B卷)题号一二三四五六笔试(70%)综合(30%)总分分数 号学名姓试卷说明:1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间120分钟。一、单项选择题。请把答案填入下面框中, 不允许出框线。(本题16分,每小题2分) 题号12345678答案注意行为规范 遵守考试纪律1.关于printf函数的使用,下列正确的是( )。A) printf(“hello

2、worldnn”); B) printf(“a=%d”,); C) printf(“s=%f,s”); D) printf(“%d=%d+%dn”,a=b+c); 2. 有以下程序main() short int a=-1; printf(%d,a);则程序输出( )。A) 0 B) -1C) 65535 D) 4294967295教研室主任签字:3. VC+中,int型变量取值范围是:( )。A) -231,231 B) -232,232-1 C) -231,231 D) -231,231-14. 有以下程序段main() int a=9&3; printf(%d,a);则最后的输出结果是:

3、( )。A) 1 B) 13C) 3 D) 05. 有以下程序:main( ) int x=-1; do x=x*x; while(!x-); printf(%xn,x);执行后的输出结果为( )。A) -1 B) 1 C) 0 D) ffff6. void main( ) double x=1; switch(x) case 0: printf(A); case 1: printf(B); default: printf(C); 程序输出结果是( )A)ABC B) BC C) B D) 编译有错7. printf(%x,0x13|017)输出的结果是( )。A) 13 B) 17 C) 1

4、f D) 238. 关于malloc()函数,下面叙述中错误的是( )。A) 这是一个分配内存的函数 B) 需要2个参数C) 返回一个指针 D) 该函数申请的内存不被free()会产生“内存泄露”二、填空题。请按序号把答案填入下面框中, 不允许出框线。(本题20分,每空1分) 题号答 案题号答 案11121231341451561671781891910201. 使用动态内存分配方式完成下列程序:#include 【1】 void main( ) int *p; 【2】 *p=20; printf(*p=%dn,*p);2. 有以下函数long P (int n,int k) long Pow

5、erVal=n; int i; for(i=1;i0) 【4】 【5】 i+; for(int k=i-1;k=0;k-) printf(%d, 【6】 ); 4. 下列程序段为链表结点类型定义,请填空。 【7】 point double x; double y; 【8】 next;5. 下面的函数将遍历输出一个链表的内容,请补全程序。注:VCT是一个结构体类型名称,指针域变量为next void link1_show(VCT *head) VCT *p; 【9】 while(p!=NULL) printf(%sn,p-s); 【10】 6. 下面的函数功能是取子字符串,例如puts( sub

6、string(ABCDEFG,1,4) );输出结果是BCD,请填空:char * substring(char *s,int a,int b) char *ans; ans=( 【11】 )malloc( 【12】 ); for(int i=a;ib;i+) ansi-a=si; ansi-a= 【13】 ; return ans;7. 下面程序的运行结果为 【14】 。main() enum weekday sun, mon, tue=6, wed, thu, fri, sat a,b,c; a=sun; b=tue; c=sat; printf(%d%d%d, a,b,c);8. 下列函

7、数用来计算某年某个月的天数,请填空:int month_day(int year,int month) int d12= 【15】 ,30,31,30,31,31,30,31,30,31; if(year%4=100 & year%100!=0 & year%100=0) 【16】 return dmonth-1;9. ft为结构体类型名,下面的函数将ft1写入文件,请补全程序:void write_ft(ft ft1,char *filename) /*write ft to file */ 【17】 fp=fopen(filename,w); if(fp!=NULL) fwrite( 【1

8、8】 ,sizeof(ft),1,fp); fclose(fp);10. 递归方式求阶乘,请填空:long fac (int n) long f; if(n0) printf(n0,data error!); else if( 【19】 ) f=1; else f= 【20】 return (f);三、请把下列程序运行结果填入答案框中,不允 许出框线,用“”表示回车。(本题24分,每小题3分) 题号12345678答案1. main( ) int y=2,a=1; while (y-!=-1) do a*=y ; a+ ; while (y-) ; printf(“%d,%dn”,a,y);2

9、. #include void swap(int *a, int *b) int t;t=*a;*a=*b;*b=t; void main() int x=3,y=5,*p=&x,*q=&y;swap(p,q);printf(%d,%dn,*p,*q);3. int M(int x, int y, int z) int p;p=x*y-z;return(p);void main() int a=1,b=2,c=3;printf(%dn, M(a+b,b+c,c+a); 4. #include main( ) int a = 1, 2, 3, 4, 5, 6, *p = a+2; *(p+3)

10、+= 3; printf ( %d,%d, *p, *(p+3);5. void main() char s80=abcd, t80=1234; strcpy(s,ABC); strcat(t,s); puts(t);6. void WriteStr(char *fn,char *str) FILE *fp; fp=fopen(fn,w);fputs(str,fp);fclose(fp); main() WriteStr(t1.dat,start); WriteStr(t1.dat,end); 程序运行后,文件t1.dat中的内容是 。7. #include void main() int n

11、=60,i; printf(%d=,n); for(i=2;in;i+) if(n%i=0) printf(%d*,i); n/=i; i-; printf(%d,n);8. #define SQ1(y) (y)*(y)#define SQ2(y) y*yvoid main() int n=3,nsq1,nsq2; nsq1=SQ1(n+1); nsq2=SQ2(n+1); printf(nsq1=%d nsq2=%d,nsq1,nsq2);四、根据功能描述改正程序中的错误。 不得增行或删行,不得更改程序结构。(本题10分)1. 要求以下程序的功能是计算100*99*81*80的值。(本小题4

12、分)#include void main() double n=100,i,ans; for(i=n;i=n-20;i-) ans*=n; printf(ans=%.0lfn,ans); 2. 下面函数link1_get的功能是返回链表第i个结点的字符串地址。(本小题6分)struct vector char *s; struct vector *next; typedef struct vector VCT; char * link1_get(VCT *p,int i) char *ans; int count=0; while(p-next!=NULL & countnext; i+; i

13、f(count=i) ans=p.s; return ans; else return NULL;五、请用标准程序流程图描述下列问题的算法 (本题10分,每小题5分) 六、编程题(本题20分) 1.使用下面的结构体,编写两个函数。(本小题10分)dis函数用来求两点距离;middle_point函数求两点中点#include #include struct point double x; double y;void main() struct point p1=0,0; struct point p2=3,4; struct point p_m; printf(%lfn,dis(p1,p2);/*求p1点和p2点的距离*/ p_m=mid_point(p1,p2);/*返回p1点和p2点的中点*/ printf(中点为(%lf,%lf)n,p_m.x,p_m.y);2. 计算一个数组(10个元素,数据从键盘接收)的最大值、最小值、平均值,并将计算结果在main函数中输出到屏幕,要求用函数实现。 (本小题10分)void data_ana(int *s, int *max, int *min, int *avg) main( )

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

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