知识点复习Word文件下载.docx

上传人:b****5 文档编号:17921921 上传时间:2022-12-12 格式:DOCX 页数:29 大小:32KB
下载 相关 举报
知识点复习Word文件下载.docx_第1页
第1页 / 共29页
知识点复习Word文件下载.docx_第2页
第2页 / 共29页
知识点复习Word文件下载.docx_第3页
第3页 / 共29页
知识点复习Word文件下载.docx_第4页
第4页 / 共29页
知识点复习Word文件下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

知识点复习Word文件下载.docx

《知识点复习Word文件下载.docx》由会员分享,可在线阅读,更多相关《知识点复习Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。

知识点复习Word文件下载.docx

}

●常见字符的ASCII码

‘A’650x41

‘a’970x61

‘0’480x30

chara=’b’-'

A'

+'

0'

;

a=’A’+32;

●合法的用户标识符

下列不能定义的用户标识符是()。

A)Main 

B)_0 

C)_int 

D)sizeof

●printf的使用

⏹字符串结尾应以’\0’结束,才能整体输出

●scanf的使用

◆scanf的输入分隔符的指定

●一般以空格、TAB或回车键作为分隔符

●其它字符做分隔符:

格式串中两个格式符间字符

⏹scanf读入字符注意点:

空格和转义字符作为有效字符输入

欲使得a1的值为12,a2的值为34,c1的值为字符a,

c2的值为字符b,scanf("

%d%c%d%c"

&

a1,&

c1,&

a2,&

c2);

输入形式应为:

12a34b

有下列程序:

main()

{intm,n,p;

scanf("

m=%dn=%dp=%d"

m,&

n,&

p);

printf("

%d%d%d\n"

m,n,p);

若想从键盘上输入数据,使变量m的值为123,n的值为456,p的值为789,则正确的输入是:

m=123n=456p=789 

例题3:

chara,b,c,d;

scanf(“%c%c”,&

a,&

b);

c=getchar();

d=getchar();

printf(“%c%c%c%c\n”,a,b,c,d);

输入:

ab

cd

输出为:

c

例题4:

#include<

stdio.h>

{inti=0,j=0,k=0;

%d%*d%d"

i,&

j,&

k);

//p28-31四张表格

%d%d%d\n"

i,j,k);

102030

10300

⏹以整数格式为字符变量输入

{charb;

%d"

&

b=b*2;

%c\n"

b);

输入:

33

输出为:

B

⏹用scanf读入字符串

◆字符串名或数组名本身就是地址,不需加&

有定义语句:

intb;

charc[10];

,则正确的输入语句是()。

A)scanf("

%d%s"

b,&

c);

B)scanf("

b,c);

C)scanf("

b,c);

D)scanf("

b,&

◆不能将一行带有空格的字符串读入

若准备将字符串“Thisisastring.”记录下来,

错误的输入语句为:

(A)scanf(“%20s”,s);

(B)for(k=0;

k<

17;

k++)

s[k]=getchar();

(C)while((c=getchar())!

=‘\n’)

s[k++]=c;

(D)gets(s);

第3章运算与表达式

1算术运算

基本算术运算符、优先级与结合性、数据类型转换、自增、自减运算

2关系运算

3逻辑运算

4位运算

按位逻辑运算移位运算

  位运算符的含义和使用。

  简单的位运算。

5指针运算

取地址运算、操作指针变量、移动指针、比较指针

6其它运算

sizeof运算、逗号运算、条件运算

7赋值运算

赋值运算符和赋值表达式、复合赋值运算

熟练运用各种运算符、掌握运算优先级和结合性。

P237附录B

不同类型数据间的转换与运算。

表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。

●基本运算、优先级

下列程序的输出结果是()。

{intm=12,n=34;

%d%d"

m++,++n);

%d%d\n"

n++,++m);

A)12353514 

B)12353513 

C)12343514 

D)12343513

{inta,b,d=25;

a=d/10%9;

b=a&

&

(-1);

%d,%d\n"

a,b);

}

A)6,1 

B)2,1 

C)6,0 

D)2,0

{chars[]="

159"

*p;

p=s;

%c"

*p++);

//先输出*p,再p++,即先去表达式值输出,再p++

15

inta=0,b=1;

if(a=b)

printf(“aequaltob”);

else

printf(“anotequaltob”);

注意区分“=”与“==”

●%操作的使用

⏹%操作只能针对整数(字符)

#include<

{

char*s="

ABC"

do

{

printf("

*s%10);

s++;

}while(*s);

运行结果:

567

⏹经常用于求解某个整数的尾数,将整数进行分离等。

●位运算举例

{intc=35;

%d\n"

c&

35

{charx=040;

x=x<

<

1);

注意:

040为八进制

64

{chara=3,b=6,c;

c=a^b<

2;

c);

27左移<

优先级高于按位异或^

第4章程序控制结构

顺序程序设计

基本语句

  1.控制语句、函数调用语句、表达式语句,空语句,复合语句。

选择结构程序设计

 1.用if语句实现选择结构。

2.条件运算表达式(a>

b)?

a:

b

 3.用switch语句实现多分支选择结构。

 4.选择结构的嵌套。

●x≤y≤z的c语言表达式:

(x<

=y&

y<

=z)

●C语言中没有逻辑类型

逻辑运算和关系运算的结果为1或0;

2&

0

a=10;

b=20;

c=(a%b<

1)||(a/b>

5>

2>

7>

8的值

(a==1)||(a!

=1)的值

0参与逻辑运算表示假;

非0参与运算表示真;

intb=5;

if(!

b)(等价于if(b==0)

b--;

●if(){多条语句}

{inta=3,b=4,c=5,t=99;

if(b<

a&

a<

c)

t=a;

a=c;

c=t;

if(a<

c&

b<

c)t=b,b=a,a=t;

a,b,c);

●else总是与最近的if配对

if(a==1)

if(b!

=2)

if(c==3)d=1;

elsed=2;

elseif()

●switch中的每个case,如不遇到break,则继续执行下一个case语句,直至遇到break

●switch后面的表达式的含义

inta=3,b=5;

switch(a==1)

  {case1:

a=b;

break;

  case0:

a++;

switch(a)

●短路特性:

逻辑表达式求解时,有时并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符

{inti=1,j=2,k=3;

if(i++==1&

(++j==3||k++==3))printf("

A)123 

B)234 

C)223 

D)233

●条件表达式的计算结合方向:

自右向左

如a<

b?

c<

d?

c:

da<

(c<

d)

若整型变量a、b、c、d中的值依次为:

1、4、3、2。

则条件表达式a<

a:

c:

d的值是()。

A)1 

B)2 

C)3 

D)4

循环控制

1.for循环结构。

2.while和do-while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

●循环用列表法分析,以确保不发生低级错误

{charc1,c2;

for(c1='

c2='

9'

c1<

c2;

c1++,c2--)

%c%c"

c1,c2);

输出:

0918273645

{inta=1,b;

for(b=1;

=10;

b++)

{if(a>

=8)break;

if(a%2==1)

{a+=5;

continue;

a=3;

4

{inti,j,m=1;

for(i=1;

i<

3;

i++)

{for(j=3;

j>

0;

j--)

{if((i*j)>

3)

break;

m=i*j;

}

m=%d\n"

m);

m=1

第5章数组

数组的定义和引用

1.一维数组和二维数组的定义、初始化和数组元素的引用。

2.字符串与字符数组。

●数组的长度必须是一个常数!

intN=90;

inta[N];

错误

下列叙述中错误的是()。

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)在程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越

界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

●数组元素的引用

例题1

{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<

7)

if(p[i]%2)j+=p[i];

j);

A)42 

B)45 

C)56 

D)60

++优先级高于<

例题2

{intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

for(i=0;

4;

i++)

{for(j=0;

j<

i;

j++)

%4c"

'

'

for(j=i;

%4d"

num[i][j]);

输出:

右上半三角。

8

1112

16

例题3

{inta[3][3],*p,i;

p=&

a[0][0];

9;

i++)p[i]=i;

i++)printf("

a[1][i]);

A)012 

B)123 

C)234 

D)345

例题4

inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;

for(i=0;

5;

s=s+a[b[i]];

s);

11

●数组/字符数组/字符串的初始化

能正确初始化的是:

A)char*s;

s="

Olympic"

//把"

的地址赋给s

B)chars[7];

//s是数组名,是数组地址,不是变量

C)char*s;

s={"

};

D)chars[7];

下列能正确定义一维数组的选项是()。

A)inta[5]={0,1,2,3,4,5};

 

B)chara[]={0,1,2,3,4,5};

C)chara={'

'

B'

C'

};

 

D)inta[5]="

0123"

●串长度/数组长度/串在内存中所占的字节数

chars1[10]="

abcd!

*s2="

\n123\\"

//将串的首地址赋给s2,见p56

%d%d%d%d%d\n"

strlen(s1),strlen(s2),sizeof(s1),sizeof(s2),sizeof("

));

551046

{chara[7]="

a0\0a0\0"

inti,j;

i=sizeof(a);

j=strlen(a);

%d%d\n"

i,j);

A)22 

B)76 

C)72 

D)62

已有定义:

chara[]="

xyz"

b[]={'

x'

y'

z'

,下列叙述中正确的是()。

A)数组a和b的长度相同 

B)a数组长度小于b数组长度

C)a数组长度大于b数组长度 

D)上述说法都不对

●指针相关内容

1.地址与指针变量的概念,运算符*与&

2.一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、

结构体的指针变量的定义。

通过指针引用以上各类型数据。

3.用指针作函数参数。

4.返回地址值的函数。

5.指针数组,指向指针的指针。

●指针与数组

inta[]={1,2,3,4,5,6,7,8,9,0},*p;

for(p=a;

p<

a+10;

p++)

%d,"

*p);

●指针与字符串

main()

char*s="

12347"

s+=2;

%ld\n"

,s);

下列语句或语句组中,能正确进行字符串赋值的是()。

A)char*sp;

sp="

right!

B)chars[10];

s="

C)chars[10];

*s="

right"

D)char*sp="

char*sp;

有下列函数:

fun(char*a,char*b)//12341231

while((*a!

='

\0'

)&

(*b!

='

(*a==*b))

{a++;

b++;

return(*a-*b);

该函数的功能是()。

A)计算a和b所指字符串的长度之差

B)将b所指字符串复制到a所指字符串中

C)将b所指字符串连接到a所指字符串后面

D)比较a和b所指字符串的大小

●二维数组与指向数组的指针变量

main()//本题较难选做

{inta[3][2]={0},(*ptr)[2],i,j;

//注意,ptr是一个指针,并非数组,只不过指向的内容是一

//个长度为2的int数组

{ptr=a+i;

scanf("

ptr);

j++)

%2d"

a[i][j]);

输入11

输出

10

10

00

intfun(int(*s)[3],intn,intk)//本题较难选做

intm,i;

m=s[0][k];

i<

n;

i++)

if(s[i][k]>

m)

m=s[i][k];

returnm;

inta[3][3]={{1,2,3},{11,12,13},{2l,22,23}};

fun(a,2,0));

●当两个指针p,s指向数组元素时,p在s之后,p-s指的是两个指针相差的元素个数.

如s指向a[1],p指向a[3],p-s为2。

  {inta[8],*p,*s;

  for(p=a;

p-a<

8;

p++)scanf("

p);

  for(p=a,s=a;

p++)if(*p>

*s)s=p;

  printf(“index=%d\n”,s-a);

  }

●通过指针访问数组元素

设有定义doublea[10]={2,2,3,4},*s=a;

,以下能够代表数组元素a[3]的是。

  A)(*s)[3]//语法错误,*s为一个数

  B)*(s+3)

  C)*s[3]//s[3]即为a[3]

D)*s+3//数组首元素的值加3

intx[8],*p=x;

则对x数组元素的正确引用是。

A)*&

x[8]//越界

B)*(x+3)

C)*(p+8)/越界

D)p+3

●指针数组

char*a[]={“ef"

"

gh"

ijk"

inti;

*a[i]);

egi

第6章其它数据类型

1.用typedef说明一个新类型。

2.结构体和共用体类型数据的定义和成员的引用。

●struct结构体变量及分量的赋值方法

例1:

设有定义:

  structcomplex

  {intreal,unreal;

}data1={1,8},data2;

  

data2=data1;

  data2=(2,6);

data2.real=data1.real;

例2:

 有以下定义和语句

  structworkers

{intnum;

charname[20];

charc;

  struct

  {intday;

intmonth;

intyear;

}s;

  };

  structworkersw,*pw;

  pw=&

w;

能给w中year成员赋1980的语句是

*pw.year=1980;

w.year=1980;

pw->

year=1980;

w.s.year=1980;

例3:

structst

{intx,y;

}data[2]={1,10,2,20};

{structst*p=data;

p->

y);

(++p)->

x);

10,2

●union的定义和使用

例1

uniondt

{inta;

charb;

doublec;

}data;

A)data的每个成员起始地址都相同

B)变量data所占内存字节数与成员c所占字节数相等

C)程序段:

data.a=5;

%f\n"

data.c);

输出结果为5.000000

D)data可以作为函数的实参

●typedef的使用

例1:

设有如下说明:

typedefstructST

{longa;

intb;

charc[2];

}NEW;

则下列叙述中正确的是()。

A)以上的说明形式非法 

B)ST是一个结构体类型

C)NEW是一个结构体类型名 

D)NEW是一个结构体变量

例2:

下列对结构体类型变量td的定义中,错误的是()。

A)typedefstructaa 

B)structaa

{intn;

{intn;

floatm;

}AA;

}td;

AAtd;

structaatd;

C)struct 

D)struct

}aa;

}td;

structaatd;

第7章函数

1.库函数的正确调用。

2.函数的定义方法。

3.函数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

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

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