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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

春季答案.docx

1、春季答案哈工大2005年春季学期C语言 考试题题号一二三四五六七八九十总分附加题分数说明:考试成绩分为两部分:实验占10%,卷面笔试占90%,满分为100分。本试卷为卷面笔试部分,卷面满分为90分。注意行为规范,遵守考试纪律!参考答案一、填空题(10分,第1小题4分,其余每空1分)1设有下列登记表,请采用最佳方式定义一种数据类型来表示这些数据的集合。其中,配偶姓名用spouseName表示,子女人数用children表示。参考答案:struct person char name20; char sex; char profession20; union int singleAge; struc

2、t char spouseName20; int children; married; struct int year; int month; int date;divorcedDay; marital; int marryFlag; 2C语言中构造数据类型包括 数组 、 结构体、 共用体 。3C语言中用_0_表示逻辑值“假”,用_非0_表示逻辑值“真”。4char *p10;这条语句的含义是 含有10个元素的指针数组p,它的每一个元素都是一个字符指针,可以指向一个字符串 。二、判断下列问题描述正确与否,正确的打“”,错误的打“”。(4分 ,每题1分)1如果在程序中定义静态变量和全局变量时,未

3、明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为0值。( ) 2在C语言中,可以用typedef定义一种新的数据类型。( ) 3在C语言中,实参与其对应的形参各占独立的存储单元。( )4. 在C语言中,函数的定义可以嵌套。( )三、选择题:(10分,每题2分)1若用数组名作为函数调用时的实参,则实际上传递给形参的是( A )。 A数组的首地址 B. 数组的第一个元素值C数组中全部元素的值 D. 数组元素的个数2判断两个字符串s1和s2相等,应当使用( C )。A. if (s1 = s2) B. if (s1 = s2) C. if (!strcmp(s1,s2) D. if (st

4、rcmp(s1,s2)3在while(x)语句中的x与下面条件表达式等价的是: A 。A. x!=0 B. x=1 C. x!=1 D. x=04二维数组a有m行n列,则在aij之前的元素个数为( B )。A. j*n+i B. i*n+j C. i*n+j-1 D. i*n+j+15设有声明语句:int a=1,b=0;则执行以下语句后输出为: B 。switch (a) case 1: switch (b) case 0: printf(*0*);break; case 1: printf(*1*);break; case 2: printf(*2*);break;A)*0* B) *0*

5、2* C)*0*1*2* D) 有语法错误四、写出下列程序的运行结果。(6分,每题3分)1#includevoid Fun(int *y) printf(*y = %dn, *y);*y = 20; printf(*y = %dn, *y);main()int x = 10;printf(x = %dn, x);Fun(&x);printf(x = %dn, x);运行结果是:x = 10*y = 10*y = 20x = 202#include int Fun(int x) static int y = 0;y += x;return y; main() int x = 10, y = 0,

6、 k;for(k=0; k2; k+) y = Fun(x);printf(y = %dn, y); 运行结果是: y = 10 y = 203#includemain ( ) char a = programming , b = language ; char *p1, *p2 ; int i; p1 = a; p2 = b; for (i=0; i7; i+) if (*(p1+i) = *(p2+i) printf(%c ,*(p1+i) ; printf(n);运行结果是:ga五、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(10分,每空2分)1.

7、下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,不显示。读入5个数据后,程序结束运行。#include main() int i, n; for (i=1; i=5; i+) printf(Please enter n:); scanf(%d, &n); if (n = 0) _continue_; printf(n = %dn, n); printf(Program is over!n);2. 韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的

8、数为4;最后再按从1至11报数,最末一个士兵报的数为10。下面程序的主要功能是计算韩信至少有多少兵。#include main() int x = 1; int find = 0; for (x=1; _!flag_; x+) if (x%5=1 & x%6=5 & x%7=4 & x%11=10) printf( x = %dn, x); _flag = 1_; 3. 下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能。unsigned int MyStrlen(char str) unsigned int len = 0, i; for (i=0; stri

9、!= 0 ; i+) len + ; return len;注意行为规范,遵守考试纪律!六、在下面这个程序中,要求其实现的功能是对用户输入的任意整数计算其阶乘,输入小于等于-1的数时退出程序。下面给出的是一个有错误的程序,请找出其中的错误,并改正之。(10分)#include #define END -1; /错误,改成:#define END -1 /(1分)long Factorial(int x);main() int x; while (1); /错误,改成:while (1) /(1分) printf(input x:); /错误,改成:printf(input x:); /(1分)

10、 scanf(%d, x); /错误,改成:scanf(%d, &x); /(1分) if (x = END) break /错误,改成:break; /(1分) else printf(%d! = %dn, x, Factorial(x); /错误,改成:printf(%d! = %ldn, x, Factorial(x); /(1分) long Factorial(int x) int i;int result; /错误,改成:long result = 1; /(2分) for (i=1, i=x, i+)/错误,改成:for (i=1; i=x; i+) /(1分) result *=

11、 i; /错误,改成:return result; /(1分)七、编程(40分,第1和2小题各10分,第3小题20分)1.编程计算1!+2!+3!+10!的值。参考答案1:#include main() long term = 1,sum = 0; int i; for (i = 1; i = 10; i+) term = term * i; sum = sum + term; printf(1!+2!+.+10! = %ld n, sum);参考答案2:#include main() long term ,sum = 0; int i, j; for (i = 1; i = 10; i+)

12、term = 1; for (j = 1; j = i; j+) term = term * j; sum = sum + term; printf(1!+2!+10! = %ld n, sum);2. 从键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这10个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!”。参考答案:#include main() int i, a10,flag = 0; for (i=0; i10; i+) scanf(%d,&ai); printf(input x:);scanf(%d, &x);for (i=0; i10;

13、i+) if (ai = x) flag = 1; if (flag)printf(Found!); elseprintf(Not found!);3.从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。参考答案1:#include main() int i, score20,max,count; for (i=0; i20; i+) scanf(%d,&scorei); max = score0; for (i=0; i max)max = scorei; printf(max = %dn,max); count = 0; for (i=0; i20; i+) if (scorei 60)count +; printf(count = %dn,count);参考答案2:#include main() int i, score20,max,count; for (i=0; i20; i+) scanf(%d,&scorei); max = score0;count = 0; for (i=0; i max)max = scorei; if (scorei 60)count +; printf(max = %dn,max); printf(count = %dn,count);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2