- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2006 级 C 语言程序设计 A 卷答案
一、 基础知识题( 20 分,每题 5 分)
1. 什么是数据缓冲区?对于输入流来说,数据缓冲区是如何工作的?
开辟一块存储区 (称为“数据缓冲区”) ,作为文件和程序之间的中介, 作为数据的缓
冲。可以缓和存和外存之间的数据提供和使用之间速度上的差别。在程序与实际文件之间
的传输通道上设置了一个缓冲区。文件中的数据被以成块方式复制到缓冲区。当程序中需
要读入数据时:
1) 如果缓冲区有数据,它就直接由缓冲区读取,而不必到外存读数据。
2) 如果缓冲区里数据已经用完,系统会自动执行一个部操作,一次从文件里取得一批
数据,将缓冲区填满,程序又可以按照正常方式读入数据。
2. C 语言的预处理有哪几种?各有什么作用?
C 中的预处理命令有三种:
宏定义、文件包含和条件编译。
一个宏定义的作用是为宏名字定义一个替代,该替代由整个替代正文段构成。所谓“文件
包含”处理是指一个源程序文件可以将另外一个源程序文件的全部容包含进来。 即将另外
的文件包含到本文件之中。对其中一部分容只在满足一定条件下才进行编译,也就是对一
部分容指定编译的条件,这就是“条件编译”。
3. 对于数据类型和存储类别,你是如何理解的?
在 C 语言中每一个变量和函数有两个属性: 数据类型和数据存储类别。 数据类型决定着数
据的存储空间和数据的存储方式。存储类别是指数据在存中存储的方法和存储的位置。
4. 写出 switch 分支结构的语法结构,并写出其执行过程。
switch( 表达式 ){
case 整型常量表达式:语句序列
case 整型常量表达式:语句序列
...
default: 语句序列
}
它的执行过程:
首先求出 switch 后面“表达式”的值,
然后用这个值与写在各 case 标号中的“整型常量表达式” 的值依次做比较。
如果遇到相等的值,程序就从这里执行下去;
如果找不到,而这个开关语句有 default 部分,就从 “default : ”之后继续执行;
如果开关语句没有 default 部分,那么整个语句结束。
二、读程序写结果( 30 分,每题 5 分)
1 .
struct s {int n; int * m;} * p ;
int d[5]= {10,20,30,40,50};
struct s arr[]={ {100,d[0]},{200,d[1]}, {300,d[2]},
{400,d[3]},{500,d[4]}};
int main()
{
p = arr;
printf( “%d n”, ++p-n);
printf( “%d n”,(++p) -n);
printf( “%d n”,++(*p -m));
return 0 ;
}
101
200
21
2 .
int main ( )
{
static int x[ ]={0, 5, 6, 10, 12, 15, 18, 20} ;
int a, s=0, *p=x;
for(;px+7;p+=2)
{ s+=*p;
printf( “S=%d\n ”,s);
}
p=x;
for(s=1, a=7; a=0; a-=2)
{ s*=*(p+a);
printf ( “S=%d\n ”,s);
文档评论(0)