12章练习.docx

上传人:b****5 文档编号:3376889 上传时间:2022-11-22 格式:DOCX 页数:13 大小:26.03KB
下载 相关 举报
12章练习.docx_第1页
第1页 / 共13页
12章练习.docx_第2页
第2页 / 共13页
12章练习.docx_第3页
第3页 / 共13页
12章练习.docx_第4页
第4页 / 共13页
12章练习.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

12章练习.docx

《12章练习.docx》由会员分享,可在线阅读,更多相关《12章练习.docx(13页珍藏版)》请在冰豆网上搜索。

12章练习.docx

12章练习

第1,2章主要知识点:

1.知识点:

C程序基础

●C语言是一种结构化程序设计语言。

三种基本结构:

顺序、选择、循环。

例1:

(2010-09-11)以下关于结构化程序设计的叙述中正确的是()

A)一个结构化程序必须同时由顺序、分支、循环三种结构组成

B)结构化程序使用goto语句会很便捷

C)在C语言中,程序的模块化是利用函数实现的

D)由三种基本结构构成的程序只能解决小规模的问题

例2:

(2011-03-26)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是()

A)C语言程序仅可以编译执行

B)C语言程序仅可以解释执行

C)C语言程序既可以编译执行又可以解释执行

D)以上说法都不对

例3:

(2011-03-26)以下叙述中错误的是()

A)C语言的可执行程序是由一系列机器指令构成的

B)用C语言编写的源程序不能直接在计算机上运行

C)通过编译得到的二进制目标程序需要连接才可以运行

D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

2.知识点:

C语言程序的构成

●C程序是由函数构成的,一个C程序有且仅有一个main函数。

一个函数由两部分组成:

函数的首部和函数体。

函数体包括声明部分和执行部分。

一个C程序总是从main函数开始执行(即程序的入口),由main函数结束,(即程序的出口)。

例1:

(2010-03-12)以下叙述正确的是()

A)C语言程序是由过程和函数组成的

B)C语言函数可以嵌套调用,例如:

fun(fun(x))

C)C语言函数不可以单独编译

D)C语言中除了main函数,其他函数不可作为单独文件形式存在

例2:

(2011-09-11)以下叙述中错误的是()

A.C语言编写的函数源程序,其文件名后缀可以是C

B.C语言编写的函数都可以作为一个独立的源程序文件

C.C语言编写的每个函数都可以进行独立的编译并执行

D.一个C语言程序只能有一个主函数

3.知识点:

标识符

●命名规则:

标识符中只能包含字母(a-z,A-Z),数字(0-9),下划线(_)。

第一个字符必须是字母或下划线。

类型说明符:

int,float,double等

语句定义符:

if,for,while等

分类

都是小写

关键字(32个)

(有固定含义,不可改变)

库函数的名字:

printf,scanf等

编译预处理命令名:

include等

预定义标识符

(有特殊含义,可以改变)

用户自定义的标识符ⅰ格式合法,ⅱ不能使用关键字,ⅲ见名知意

例1:

(2010-03-13)以下C语言用户标识符中,不合法的是()

A)_1B)AaBcC)a_bD)a-b

4.知识点:

数据类型

例1:

(2010-03-16)以下关于C语言数据类型使用的叙述中错误的是()

A)若要准确无误差的表示自然数,应使用整数类型

B)若要保存带有多位小数的数据,应使用双精度类型

C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型

例2:

(2011-03-26)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()

A)-369B)369C)0.369D)整数集合{1,2,3,4,5}

5.知识点:

常量

●整型常量

十进制整常数:

没有前缀,其数码为0-9。

例如65535,-568

八进制整常数:

以0开头,其数码为0-7。

例如015

十六进制整常数:

以0X或0x开头,其数码为0-9,A-F或a-f。

例如0x2A

长整型数:

整型常数后缀为L或l。

例如358000L

无符号数:

整型常数后缀为U或u。

例如158u

●实型常量的形式

小数形式:

必须有小数点,小数点前后不能同时没有数字。

指数形式:

aEn(其中a表示十进制数,E阶码标志,n阶码)。

E前E后必须有数字,E后必为整数,可以带符号。

例如2.1E-3、5E8

例1:

(2011-09-13)以下选项中关于C语言常量的叙述错误的是:

()

A.所谓常量,是指在程序运行过程中,其值不能被改变的量

B.常量分为整型常量、实型常量、字符常量和字符串常量

C.常量可分为数值型常量和非数值型常量

D.经常被使用的变量可定义成常量

例1:

(2009-04-13)以下选项中,能用作数据常量的是()

A)o115B)0118C)1.5e1.5D)115L

例2:

(2010-03-26)以下选项中可用作C程序合法实数的是()

A).1e0B)3.0e0.2C)E9D)9.12E

●字符常量:

用单引号‘’括起来的一个字符。

包括普通字符常量和转义字符。

普通字符常量:

如‘a’、‘A’、‘1’。

转义字符:

由一对单引号引起来的以\开头的若干字符的组合。

如‘\n’表示回车换行、‘\\’表示反斜线符、‘\’’表示单引号符、‘\”’表示双引号、‘\ddd’表示八进制数、‘\xhh’表示十六进制数。

例3:

(2010-09-15)以下选项中能表示合法常量的是()

A)整数:

1,200B)实数:

1.5E2.0C)字符斜杠:

‘\\’D)字符串:

“\007”

例4:

(2010-03-26)以下选项中不能用作C程序合法常量的是()

  A)1,234B)'\123'C)123D)"\x7G"

6.知识点:

变量

●整型变量和实型变量

以考试标准Viusalc++6.0为例,说明各类型变量所占的位数。

类型

所占

位数

所占

字节数

类型

所占

位数

所占

字节数

short

16

2

unsignedint

32

4

int

32

4

unsignedlong

32

4

long

32

4

float

32

4

unsignedshort

16

2

double

64

8

例1:

(2010-09-38)有以下程序

#include

main(0)

{ints,t,A=100;doubleB=6;

s=sizeof(A);t=sizeof(B);

printf(“%d,%d\n”,s,t);

}

在VC6平台上编译运行,程序运行后的输出结果是()

A)2,4B)4,4C)4,8D)10,6

例1:

(2009-09-22)有以下定义语句,编译时会出现编译错误的是()

A)chara=’a’;B)chara=‘\n’;C)chara=‘aa’;D)chara=‘\x2d’;

7.知识点:

ASCII码

●‘0’的ASCII码值为48;‘A’的ASCII码值为65;‘a’的ASCII码值为97。

●大写字母与小写字母的ASCII码值相差32。

例1:

(2009-09-23)有以下程序

#include

main()

{charc1,c2;

c1=’A’+’8’-‘4’;

c2=’A’+’8’-‘5’;

printf(“%c,%d\n”,c1,c2);

}

已知字母A的ASCII码为65,程序运行后的输出结果是()

A)E,68B)D,69C)E,DD)输出无定值

8.知识点:

进制转换

●十进制转换成二进制、八进制、十六进制:

将十进制的数字除以2(8、16),得到的商数继续除以2,直到商为0,然后将各次相除所得的余数从后往前排列。

●二进制、八进制、十六进制转换成十进制:

将二(八、十六)进制数的每一位数从高位到低位乘以2的n-1次幂,n为该位所在的位数。

●二进制与八进制之间的转换:

每个八进制数字转换成3位二进制数字。

●二进制与十六进制之间的转换:

每个十六进制数字转换成4位二进制数字。

例1:

(2010-09)以下程序运行后的输出结果是。

#include

main()

{inta=200,b=010;

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

}

9.知识点:

运算符的优先级

级别由大到小:

(逻辑)非>算(术运算符)>关(系运算符)>(逻辑)与>(逻辑)或>条(件运算符)>赋(值运算符)

10.知识点:

强制类型转换运算符

●一般形式:

(类型说明符)(表达式)

●功能:

把表达式的运算结果强制转换成类型说明符所表示的类型

例1:

(2009-04-06)表达式(int)((double)(5/2)+2.5)的值是。

例2:

以下程序运行后的输出结果是()。

main()

{inta;

a=(int)((double)(3/2)+0.5+(int)1.99*2);

printf("%d\n",a);

}

11.知识点:

算术运算符:

+、—、*、/、%

%:

参与运算的量均为整型。

/:

当除号左右两边都是整数的时候,商也要是整数,如果不是整数则舍弃小数部分。

当参与运算量有一个为实型,则商为double型。

例1:

(2011-09-14)若有定义语句:

inta=10;doubleb=3.14;,则表达式‘A’+a+b值得类型是()

A.charB.intC.doubleD.float

例2:

(2011-09-15)如有定义语句:

intx=12,y=8,z;,在其后执行语句z=0.9+x/y,则z的值为()A.1.9B.1C.2D.2.4

例3:

(2010-09-14)有以下定义:

inta;longb;doublex,y;则以下选项中正确的表达式是(A)

A)a%(int)(x-y)B)a=x!

=y;C)(a*y)%bD)y=x+y=x

12.知识点:

逗号表达式

●一般形式:

表达式1,表达式2……表达式n

●求值过程:

自左向右依次求解,最后一个表达式的值为整个逗号表达式的值。

例1:

(2009-04-14)设有定义:

intx=2;以下表达式中,值不为6的是()

A)x*=x+1B)x++,2*xC)x*=(1+x)D)2*x,x+=2

13.知识点:

自增自减运算符

++ii自加1后再参与运算

i++i参与运算后再自加1

--ii自减1后再参与运算

i--i参与运算后再自减1

++和--的运算对象只能为变量,不能是常量或表达式。

例1:

(2009-09-06)若有定义语句:

inta=5;则表达式:

a++的值是。

●当++或—与printf语句结合时,若++/--x的形式,则先自增/自减,然后输出;若x++/--的形式,则先输出x原值,在进行自增/自减操作。

例2:

(2011-03-26)有以下程序

  #include

  main()

{intx=011;

  printf("%d\n",++x);

  }

  程序运行后的输出结果是()

  A)12B)11C)10D)9

14.知识点:

赋值表达式

●一般形式:

变量名=表达式

●赋值运算符左边必须是变量,而不是表达式。

例1:

(2010-03-14)若有定义:

doublea=22;inti=0,k=18;则不符合C语言规定的赋值语句是()

A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!

a;

例2:

(2011-03-26)若有定义语句:

inta=3,b=2,c=1;,以下选项中错误的赋值表达式是()

  A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);

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

+=、—=、*=、/=、%=、<<=、>>=、&=、^=、|=

例2:

(2010-09-16)表达式a+=a-=a=9的值是()

A)9B)-9C)18D)0

15.知识点:

位运算

●按位与运算&

规则:

0&0=00&1=01&0=01&1=1

●按位或运算|

规则:

0|0=00|1=11|0=11|1=1

●按位异或运算∧

规则:

0∧0=00∧1=11∧0=11∧1=0

●求反运算~

规则:

~0=1~1=0

●左移运算<<

规则:

把<<左边的运算数的各二进位全部左移若干位,高位丢弃,低位补0。

左移一位相当于该数乘以2。

左移n位相当于该数乘以2n。

例1:

(2010-09-40)有以下程序

#include

main()

{shortc=124;

c=c________;

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

}

若要使程序的运行结果为248,应在下划线处填入的是

A)>>2B)|248C)&0248D)<<1

例2:

(2009-04-39)有以下程序

#include

main()

{inta=5,b=1,t;

t=(a<<2)|b;

printf(“%d\n”,t);

}

程序运行后的输出结果是()

A)21B)11C)6D)1

●右移运算>>

把>>左边的运算数的各二进位全部右移若干位。

高位补0,低位丢弃。

右移一位相当于该数除以2。

右移n位相当于除以2n。

例3:

(2009-09-39)若有以下程序段

intr=8;

printf(“%d\n”,r>>1);

输出结果是()

A)16B)8C)4D)2

16.知识点:

关系运算符和表达式

例1:

(2010-09-08)在C语言中,当表达式值为0时表示逻辑值“假”,当表达式值为

时表示逻辑值“真”。

例2:

(2010-03-06)设x为int型变量,请写出一个关系表达式,用以判断x同时为3和7的倍数时,关系表达式的值为真。

17.知识点:

逻辑运算符和表达式

●逻辑运算符优先级从高到低:

、&&、||

●逻辑运算的真值表

a

b

a&&b

a||b

!

a

●进行逻辑运算时,若&&左边的值为0,则不再对右边的运算对象进行运算,整个表达式的值为0。

例1:

(2011-09-17)若有定义语句:

intk1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为()

A.0和1B.0和20C.10和1D.10和20

例2:

inta=2;则表达式(!

a==1)&&(a++==2)的值为0,a的值为。

●若||左边的运算对象的值为1,则不再对右边的运算对象进行运算,整个表达式的值为1。

例2:

(2010-03-17)若a是数值类型,则逻辑表达式(a==1)||(a!

=1)的值是()

A)1B)0C)2D)不知道a的值,不能确定

18.知识点:

格式输入函数printf()

(1)一般形式:

printf(“格式控制字符串”,输出列表);

(2)遇到控制字符,按照控制字符的规定输出,遇到非格式字符串按原样输出。

例1:

(2009-04-07)若变量x,y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(“”,x/y);补充完整,使其输出的计算结果形式为:

x/y=11。

例2:

(2009-04-15)程序段:

intx=12;doubley=3.141593;printf(“%d%8.6f”,x,y);的输出结果是()

A)123.141593B)123.141593C)12,3.141593D)123.1415930

19.知识点:

格式输入函数scanf()

(1)一般形式:

scanf(“格式控制字符串”,地址列表);

(2)若格式控制字符串中有非格式字符串,则按原样输入。

若格式控制字符串中没有非格式字符作输入数据之间的间隔,则可用空格、Tab、回车作间隔。

例1:

(2011-09-16)若有定义:

inta,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给变量a,5付给变量b的输入数据是

A.35B.3,5C.3;5D.35

例2:

(2005-04-19)有以下程序

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,则正确的输入是()

A)m=123n=456p=789B)m=123n=456p=789

C)m=123,n=456,p=789D)123456789

例3:

(2011-03-26)有以下程序段

charname[20];

intnum;

scanf("name=%snum=%d",name;&num);

当执行上述程序,并从键盘输入:

name=Lilinum=1001<回车>后,name的值()

A)LiliB)name=Lili C)Lilinum= D)name=Lilinum=1001

(3)在输入字符数据时,若格式控制字符串中无非格式字符,则认为所有输入的字符均为有效字符。

空格会被当作字符赋值给变量。

例3:

(2009-04-23)有以下程序

#include

main()

{inta1,a2;charc1,c2;

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

printf(“%d,%c,%d,%c”,a1,c1,a2,c2);

}若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:

12,a,34,b则正确的输入格式是(以下_代表空格,代表回车)

A)12a34bB)12_a_34_bC)12,a,34,bD)12_a34_b

(4)格式字符串

●一般形式:

%[*][输入数据宽度][长度]类型

●*表示该输入项,读入后不赋予相应的变量。

●输入数据宽度:

用十进制数指定输入的字符数。

例4:

(2010-09-07)有以下程序

#include

main()

{intx,y;

scanf(“%2d%ld”,&x,&y);printf(“%d\n”x+y);

}程序运行时输入:

1234567程序的运行结果是。

例5:

(2009-04-16)若有定义语句:

doublex,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是()

A)scanf(“%f%f”,x,y);B)scanf(“%f%f”,&x,&y);

C)scanf(“%lf%le”,px,py);D)scanf(“%lf%lf”,x,y);

●当定义的变量类型和scanf中“格式符”类型不一致时(这里只限定在字符型和整型两种类型,其他数据类型不可以。

)整型和字符型之间通过ASCALL可以相互转化。

例6:

(2011-03-12)有以下程序(说明:

字符0的ASCII码值为48)

main()

{charc1,c2;

scanf("%d",&c1);

c2=c1+9;

printf("%c%c\n",c1,c2);

}若程序运行时从键盘输入48<回车>,则输出结果为。

20.知识点:

字符输出函数putchar()

一般形式:

putchar(‘a’);putchar(‘\101’);

21.知识点:

字符输入函数getchar()

一般形式:

getchar();或ch=getchar();

例1:

(2010-03-15)有以下程序

#include

main()

{chara,b,c,d;

scanf(“%c%c”,&a,&b);

c=getchar();d=getchar();

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

}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:

回车也是一个字符)

12

34

则输出结果是()

A)1234B)12C)12D)12

334

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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