77范文网 - 专业文章范例文档资料分享平台

C语言期末复习资料2011北理工版(2)

来源:网络收集 时间:2019-03-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

期末复习资料 第6页-总26页

略,由初始值的个数来确定其值。但若没有给出初始值,则不能省略中括号内的值。例如:int a[]={1,2,3}; int b[]={3};都对。int a[]; 不对。 ? 二维数组的第2维列数任何情况下都不能缺省,第1维中的数值若在给出初始值的按情况下可以缺省。例如int a[2][]={{1,2}{3,4}}不对。 int a[][2]={1,2,3,4,5};正确。

(4) 只有在数组定义时可以给数组整体赋值,不能单独用赋值运算“=”给数组整

体赋值,特别是字符串数组。例如int a[3]; a={1,2,3}; char b[10]; b=”china”; char c[2][10]; c[0]=”chian”;c[1]=”japan”都不对, 只能是int a[3]={1,2,3};char b[10]=”china”; char c[2][10]={“china”,”japan”};

(5) 函数体内定义的数组名是地址常量,而由数组名表示的一些表达式也是常

量表达式。如int a[3]={1,2,3}; a,a+i都是常量。int b[3][3]={..}; b,b[0],b+i,*(b+i)也都是常量形式。常量形式意味着该式只能出现在等号的右边,而不能作为左值。

例如以下题目:

t-11: 以下正确的数组定义形式是: A)int n; scanf(“%d”,&n) ; int a[n] ;

B)#define N 10 int a[N]; C)int b[3][4]; D)char b[ ][4];

t-12: 以下不正确的数组定义和初始化形式是:

A)int a[]={1,2,3}; B) int a[]={0}; C) int a[][3]={1,2,3,4}; D)int a[2][2]={{1,1},{2,2},{3,3}} E) char a[10]={“hello”}; F) char a[]=”hello”;

G)int a[2][]={{1,1},{2,2}}; H) char a[10]; a=”hello” ;

I)char a[2][10]; a[0]=”hello ” ;a[1]=”tom” ; J) char a[2][10]={“hello”,

6

期末复习资料 第7页-总26页

“tom”};

t-15: 若有数组int a[2][2]={1,2,3,4},则能引用数组元素4的形式为:

A) a[1][2] B) *(a+1) C) *(*(a+1)+1) D) *(a+3) E) a[1][1] F) *(a[1]+1)

t-16: 若有数组int a[3]={1,2,3};则能引用数组元素2的形式为:

A) a[1] B) *(a+1) C) &a[1] D) a+1t-11: 以下正确的数组定义形式是: A)int n; scanf(“%d”,&n) ; int a[n] ; B)#define N 10 int a[N]; C)int b[3][4]; D)char b[ ][4];

t-17: 若有如下程序段,则对于“TOM”串中首字符T的正确引用形式为: struct A{ int age; char name[10]; };

Struct A t[2]={1,”TOM”,2,”MIKE”},*p=t;

A)(*p).name B) t[2].name C)t[1].name[0] D)p->name[0] 第二部分:数据的输入输出

讨论完C中的数据我们再讨论各种数据的输入与输出。如果数据输入不当再完美的程序也不可能显示出预期的结果。这部分作业的输入出现的问题较多,我们要熟记输入规则但不能死记硬背。下面的这三对函数都包含在文件“stdio.h“中,因他们的输入输出终端是标准设备-键盘和显示器,因此称为标准的IO函数,标准IO函数的使用与缓冲区有密切的联系。学习本部分时最重要的是要理解输入缓冲区中数据流和输入函数格式匹配的输入机制(参见本章手册中的参考资料)

7

期末复习资料 第8页-总26页

C中的输入输出是调用系统库函数来实现的,常见有三对库函数:

(1) scanf()/printf(): 可输入输出任何类型的数据。一次函数调用可以实现多

个数据的IO。

(2) gets()/puts(): 只对字符串数据进行输入输出操作。一次函数调用只可实

现一个串的IO。

(3) getchar()/putchar():只对字符数据进行输入和输出操作。一次函数调用只

可实现一个字符的IO。 对于这几对函数的使用主要考察:

(1) scanf、printf的使用规则(4.5,可参考本章教学目标) (2) getchar和putchar的使用格式(4.4) (3) gets与scanf的使用区别 例如以下题目:

t-18:若有程序段int a; float x; char c[10];scanf(“-%f%s”,&a,&x,c);

当程序执行时从键盘输入 23456.78abcd ,a=23 x=456.78、和 c=”abcd” t-19:若有定义int a ;float b ; 则scanf(“a=%d;b=%f”,&a,&b) ;的输入形式是 a=3 ;b=4.5

t-20:若有定义float x ;则语句scanf(“%5.2f”,&x)是否正确?不正确

t-21:若有定义char a,b ;对于scanf(“%c%c”,&a,&b );若输入A B,则a=A b=空格?

t-22:若用getchar()函数输入一个字符存储到字符变量ch中再将其输出,则以下正确的写法是:

A)getchar(ch) ; B) ch=getchar() ; C) ch=putchar(); D) putchar(ch); t-23: 若有语句scanf(“%s”,a); 程序运行时若输入hello tom!,则存储到a中的串是“hello”

8

期末复习资料 第9页-总26页

t-24: 若有int a=97; float x=34.56; char c=?B? ;则语句printf(“%c %d %d”,a,x,c )的输出是a 34 66 t-25: 若有程序段:

char a, b , s[10],t[10]; a=getchar();b=getchar(); gets(s);gets(t);

printf(\ 程序运行时若输入A B Hello TOM

程序输出是 a=A,b= ,s=B,t=HELLO t-26: 若有如下定义 ,写出每个变量对应的格式符。

int a ; %d long int b; %ld unsigned long c; %lu

float x; %f long double y; %lf char ch; %c

t-27: 若要分别输入两个串“hello”和“tom”至数组s 和t中,下面四个程序段运行结果是否一样?可以有什么样的推论?若运行后输入的两个串以回车为结束符

程序段1: 程序段2: 程序段3:

char s[10],t[10]; char s[10],t[10]; char s[10],t[10];

gets(s);gets(t); scanf(“%s”,s); gets(t); gets(s); scanf(“%s”,t);

9

期末复习资料 第10页-总26页

程序段4:

char s[10],t[10];

scanf(“%s”,s); scanf(“%s”,t);

程序段2结果不一样。Scanf和gets连用时对回车符的处理不同。Scanf将回车符留在缓冲区中,而gets的回车符带走。 t-28: 第4章实验一的强化练习。

第三部分:函数之间对任务数据的处理方法

在编写多模块程序也即存在函数调用这样的程序时,我们必须首先设计模块之间任务数据的交接方法,即主调函数如何让被调函数得到要访问的任务数据。部分初学者对此不解,不明白为什么在子函数中不能通过直接引用主调函数中的变量名来访问主调函数中的任务数据,例如这样的题目:在main函数中定义了变量x和变量y并赋予值,而子函数sum的任务就是对主函数中的这两个数据求和,部分初学者也许认为在sum函数中直接用表达式x+y就可以求出主调函数中这两个变量的和了。

要明白这个错误的原因我们还是要对程序的模块化设计思想做以分析。这个思想的设计起因很简单,正如我们可以理解为什么学校里要划分院系,而院系里再分班;也正如为什么公司里都划分各个职能部门一样。变量的作用域属性和存储属性也就是这个设计思想规则的体现。模块之间只能通过接口(实参/形参 返回值)来互通信息。

为了保证模块内部信息(数据)的隐藏性,规定模块内部定义的变量也只能在本块内被引用,这就是作用域规则下的局部变量。在某些时候可能几个模块需要共享一些数据,这些数据可以被多个模块访问,这就是作用域规则下的全局变量。例如在战争游戏中,指挥部和后勤部都会需要战士的人数,指挥部用这个数目来调兵遣将,后勤部用这个数目来供给口粮和装备。

不同的模块之间存在信息共享(全局变量),而同一个模块的多次调用之间也可以共享某些信息(静态局部变量)。

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言期末复习资料2011北理工版(2)在线全文阅读。

C语言期末复习资料2011北理工版(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/550128.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: