1、习题一一、选择题1C语言是一种( C )。A. 低级语言 B. 汇编语言 C. 高级语言 D. 机器语言2以下不是C语言的特点的是( D )。A. 语言简洁紧凑 B. 可以直接对硬件进行操作C. 数据类型丰富 D. 是面向对象的程序设计语言3一个C程序的执行是从( A )。A. 本程序的main函数开始,到main函数结束B. 本函数的第一个数开始,到本程序文件的最后一个函数结束C. 本程序的main函数开始,到本程序文件的最后一个函数结束D. 本函数的第一个数开始,到本程序main函数结束4以下叙述正确的是( C )。A. 在C程序中,main函数必须位于程序的最前面B. C程序的每行只能写
2、一条语句C. C语言的本身没有输入输出语句D. 在对一个C程序进行编译的过程中,可以发现注释中的拼写错误5以下叙述不正确的是( D )。A. 一个C源程序可由一个或多个函数组成B. 一个C源程序必须包括一个main函数C. C程序的基本组成单位是函数D. 在C程序中,注释说明只能位于一条语句的后面6C语言规定:在一个源程序中,main函数的位置( C )。A. 必须在最开始 B. 必须在系统调用的库函数的后面C. 可以任意 D. 必须在最后7一个C语言程序是由( B )。A. 一个主程序和若干子程序组成 B. 函数组成C. 若干过程组成 D. 若干子程序组成8以下叙述中正确的是( C )。A.
3、 C程序的基本组成单位是语句 B. C程序中的每一行只能写一条语句C. C语句必须以分号结束 D. C语言必须在一行写完9以下叙述中正确的是( C )。A. C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严格,要求一行只能写一个语句C. C程序书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中10以下叙述中正确的是( C )。 A. C语言程序将从源程序中第一个函数开始执行B. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C. C语言规定必须用main作为主函数名,程序从此开始执行,在此结束D. main可作为用户标识
4、符,用以命名任意一个函数作为主函数11下列叙述中正确的是( A )。A. 每个C程序文件中都必须要有一个main函数B. 在C程序中main()位置是固定的C. C程序中所有函数之间都可以相互调用,与函数所在位置无关D. 在C程序的函数中不能定义另一个函数12C语言源程序的基本单位是( B )。A. 过程 B. 函数 C. 子程序 D. 标识符13下列关于算法的特点描述中错误的是( D )。A. 有穷性 B. 确定性 C. 有零个或多个输入 D. 有零个或多个输出14以下选项中不属于算法特性的是( C )。A. 有穷性 B. 确定性 C. 简洁性 D. 有效性15用C语言编写的代码程序( B
5、)。A. 可立即执行 B. 是一个源程序C. 经过编译即可执行 D. 经过编译解释才能执行二、填空题1C语言的源程序必须通过 编译 和连接后,才能被计算机执行。2C语言源程序文件的后缀是.c;经过编译后,生成文件的后缀是. obj;经过连接后,生成文件的后缀是 .exe 。3C语言从源程序的书写到上机运行输出结果要经过编辑、 编译 、连接、执行四个步骤。4结构化程序由 顺序结构 、选择结构和循环结构三种基本结构组成。5C语言源程序的基本单位是 函数 。6一个C语言源程序是由若干函数组成,其中至少应含有一个 主函数(或main函数) 。7在一个C语言源程序中,注释部分两侧的分界符为 /* */
6、。8 算法 是程序设计的灵魂。9C语言程序只能从 main函数 开始执行。10自然语言、流程图和伪代码都可以用来表示算法,其中 流程图 是算法的图形化表示方法。三、编程/思考题1简述C语言的主要特点。1C语言的主要特点有:(1)C语言具有结构化的高级编程语言应有的所有高级指令,使程序员不需要知道硬件细节。同时,C也具有一些低级指令,允许程序员能够直接快速地访问硬件。(2)C语言是结构式语言。(3)C语言是一种高效的语言。(4)C语言简洁紧凑,使用方便灵活。(5)C语言运算符丰富。(6)C语言是一种可移植性语言。2要得到一个可以正常运行的C语言程序,一般经过哪几个过程?编辑C语言程序源代码,编译
7、源文件,连接程序,执行程序。3算法具有哪些特点?3算法具有以下特点:(1)有穷性;(2)确定性;(3)有零个或多个输入;(4)有一个或多个输出;(5)有效性。4用流程图表示求解12345的算法。5参照本章例题,编写一个C程序,输出以下信息:*This is a simple C program!答#includevoid main() printf(*n); printf(This is a simple C program!n);printf(*n);习题二一、选择题1下列几个选项中,属于C语言的基本数据类型的是( B )。A.整型、实型、结构体类型 B.整型、实型、字符型C.整型、逻辑型、
8、实型 D.整型、字符型、数组类型2.C语言规定,标识符的命名只能由字母、数字和下划线三种字符组成,且第一个字符( C )。A.必须是字母 B.必须是下划线 C.必须是字母或下划线 D.必须是数字3下列标识符中,合法的标识符为( B )。A.6adc B._max1 C.a*$bn D.123bc4下列标识符中,不合法的标识符为( A )。A. int B. _n5 C. i_5ab D. q5n5. 下列不合法的字符常量是( D )。A.a B.” C.n D.”a”6下列不合法的字符串常量是( A )。A.abc B.”abc” C.”dfb345” D.” ”7下列不合法的转义字符是( D
9、 )。A. B. t C. x6a D.898.下面四个选项中,均是不合法的转义字符的选项是( B )。A. t B. 1234 018 x3hC. n 16 ”D. x8a & 1019下列整型常量中,不合法的是( D )。A.89 B. -16 C. 0x4b D.066810.下面四个选项中,均是不合法的整型常量的选项是( A )。A. -0f1 018 2e5B. 25 0xf3 3.5C. 065 -54 -0a4D. 013 0xk5 -06911下列实型常量中,不合法的是( C )。A. 0.0 B. .123 C. 123 D. 2.3412下列实型常量中,合法的是( D )。
10、A. e3 B. 2e4.3 C. e4 D. 2e-413.下面四个选项中,均是不合法的实型常量的选项是( B )。A. 3e5.4 0.0 2e5B. e5 5e2.5 68C. 3.14 2e-4 123e-5D. 0.98 -e-3 123e14.在C语言中,int、char和short 三种类型数据在存中所占用的字节数( D )。A. 由用户自己定义 B. 均为2个字节C. 是任意的 D.由所使用的编译系统决定15. 若有说明语句:char c=72;则变量c( A )。A.包含1个字符 B.包含2个字符C.包含3个字符 D.说明不合法,c的值不确定16设变量a是整型,f是实型,i是
11、双精度型,则表达式10+a+i*f值的数据类型为( C )。A. int B. float C. double D.不确定17设有说明语句:char w; int x; float y; double z; 则表达式w*x+zy值的数据类型为(D)。A. float B. char C. int D. double18在C语言中,负整数在存中的存储形式是( A )。A. 补码 B. 反码 C. 原码 D. ASCII码19在C语言中,字符型数据在存中的存储形式是( D )。A. 补码 B. 反码 C. 原码 D. ASCII码20在C语言中,实型数据在存中的存储形式是( B )。A. 小数形式
12、 B. 指数形式 C. 十进制形式 D. ASCII码21. 在C语言中,设一个short型数据在存中占用2个字节存储,则unsigned short 型数据的取值围为( C )。A. 0255 B. 032767 C. 065535 D. 0214748364722在C语言中,设一个float型数据在存中占用4个字节来存储,则一个float型数据的有效数字位数为( B )。A. 5位 B. 67位 C.1516位 D. 1819位23已知小写字母a的ASCII码为十进制数97,则执行语句c=a+2后,变量c中的字符为( B )。A. A B. c C. C D. b24设有定义float x
13、=3.5;则执行(int)x之后,x的值为( A )。A. 3.500000 B. 3 C. 4 D. 3.025若想确定所使用的编译系统中,int型数据所占用的存储宽度,可使用( B )进行测试。A.(int) B.sizeof(int) C.(int)x D.(sizeof) int二、填空题1.C语言中的实型变量分为两种类型,它们是 float 和 double 。2.C语言中的常量分为 普通常量 和 符号常量 两种类型3. C语言中的标识符只能由种字符组成,他们是 字母、数字、下划线 、 和 。 4. 在语言中,有一类特殊字符以“”开头,称为转义字符。转义字符n的功能是 回车换行 ;转
14、义字符r的功能是 ,回车不换行 。5. 在语言中,用关键字 float 定义单精度实型变量,用关键字 DOUBLE 定义双精度实型变量,用关键字 char 定义字符型变量。6.要定义双精度实型变量a和b,并使它们的初值都为5.6,则定义语句为 doube a=5.6,b=5.6; 。7. 设C语言中一个short型数据占用2个字节存储,一个int型数据占用4个字节存储,则要将数值32768正确无误的存储在变量x中,应使用的定义语句为 int x=32768 。8.若有定义 char ch;则执行ch=A+32后,变量ch中的字符为 a 。9.以下程序运行后的输出结果是 9,90 。#inclu
15、de void main()int x=011,y=0x5a;printf(%d,%dn,x,y);10. 以下程序的输出结果是 BeijingChina 。# includevoid main( ) printf(BeijingnChinan,n);三、思考题1C语言规定对所有用到的变量必须“先定义,后使用”,这样做有什么好处?1解:C语言中,要求对所有用到的变量“先定义,后使用”,这样做的好处是:能够保证程序中变量名使用得正确;在编译时就能为变量分配相应的存储单元;便于在编译过程中检查对该变量进行的运算是否合法。2字符常量和字符串常量有什么区别?2解:字符常量是一个字符,在程序中是用单撇号
16、括起来的;字符串常量由0个或若干个字符组合而成,在程序中是用双撇号括起来的,在存储时,系统自动在字符串最后加上一个字符串结束符0。3若想要将一个大写字母转换为对应的小写字母,可以如何操作?3.解:在存中,字符型数据以ASCII码存储,ASCII码是一串二进制编码,每个字符的ASCII码对应一个整数值,大写字母与其对应小写字母的ASCII码对应整数值相差32。因此,要将一个大写字母转换为小写字母,只需将该变量的值加上32即可。4常量a与”a”在存中所占用的字节数是否相同?为什么?4.解:常量a与”a”在存中所占用的字节数不相同,因为a是字符常量,在存中占用一个字节存储,而”a”是字符串常量,在存
17、中存储时,系统自动在其后加上一个字符串结束符0,在存中占用2个字节存储。5若有定义int a;float f,则表达式c+a+f的结果为何种数据类型?为什么?5. 若有定义int a;float f,则表达式c+a+f的结果为double型。因为表达式中f为float型,在计算之前必须先转换为double型,根据数据类型的自动转换规则,表达式的结果为double型。6设C语言中,一个short型数据占用2个字节存储,若有定义 short x=-12,则变量x的值-12在存中存储的二进制代码是如何表示的?6.解:整数在存中以补码形式存储,负数的补码为反码+1,所以,当x=-12时,其在存中的存储
18、形式为:1111 1111 1111 0100。7设C语言中,一个short型数据占用2个字节存储,若有定义short x=32768,则用输出语句printf(”%dn”,x);输出x值为多?为什么?7.解:输出结果为-32768,因为一个short型数据在存中占用2个字节存储,所能表示的数值围为-3276832767,当x=32768时,超出了其能表示的围,发生了溢出,数值32768的二进制编码的16位正好对应数值-32768。8若有x为int型变量,则执行x=3.14后,变量x的值为多少?为什么?8.解:若有x为int型变量,则执行x=3.14后,变量x的值为3,因为x为int型变量,不
19、能存储实型数据,当把一个实型数据赋给x时,发生了数据类型转换,系统自动把实型数据的小数部分舍去。9 分析下面两个程序运行结果是否相同?为什么?程序A: #include 程序B: #include void main( ) void main( ) char c1,c2; int c1,c2; c1=a; c1=97; c2=b; c2=98; printf(“%c,%cn”,c1,c2); printf(“%c,%cn”,c1,c2); 9.解:两个程序的运行结果相同。因为字符型数据以ASCII码存储,ASCII码是一串二进制编码,每个字符的ASCII码对应一个整数值。因此,在一定围,整型数
20、据和字符型数据是可以通用的。字符a和b对应的ASCII编码值分别为97,98。10 分析下面程序的运行结果:#includevoid main()char c1=A,c2=B,c3=C,c4=101,c5=x42;printf(a%cb%ctc%ctabcn,c1,c2,c3);printf(%ct%c bBn,c4,c5);aAbBcCabcABB习题三一、选择题1若有代数式,则不正确的C语言表达式是( C )。A. a/b/c*e*3 B. 3*a*e/b/c C. 3*a*e/b*c D. a*e/c/b*32在C语言中,要求运算数必须是整型的运算符是( D )。A. / B. = C.
21、 + D. %3若有定义语句:int a=7;float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值(A )。A.2.500000 B. 2.750000 C.3.500000 D.0.0000004.若有定义int x=5,y=2,则表达式5/2的结果为( B )。A. 2.5 B. 2 C. 2.0 D. 35判断char型变量ch是否为大写字母的正确表达式是( C )。A. A=ch=A)&(ch=A)&(ch=A)and(ch=b=c B. (a=b)&(b=c)C. (a=b)&(b=c) D. (a=b)|(b=c)7逻辑运算符两侧运算对象的数据
22、类型( D )。A.只能是0或1 B.只能是0或非0正数C.只能是整型或字符型 D.可以是任何数据类型8下列运算符中,优先级最高的是( B )。A. B. + C. & D. =9设x、y、z是int型变量,且有x=3,y=4,z=5,则下面表达式中值为0的是(D )。 A. x&y B. x=yC. x|y+z&y-z D. !(x=y&chb)&(n=cd)后,n的值为( C )。A. 0 B. 1 C. 2 D. 3 13判断char型变量c是否为0到9的数字的正确表达式为( C )。 A. 0=c=9 B. 0=c=0&c=0&c=914设有int x=3,y=4,z=5,则执行表达式
23、!(x+y)+z-1&y+z/2的结果是( D )。A. 6 B. 0 C. 2 D. 115以下程序的运行结果是( B )。#include void main( )int a,b,d=241;a=d/100%9;b=(-1)&(-1);printf(“%d,%dn”,a,b);A. 6,1 B. 2,1 C. 6,0 D. 2,016执行以下语句后x的值为 ,y的值为 ( C )。 int x=5,y=6,t=1,a=2,b=3,z=4;(x=ta)&(y=bz)A. 5,6 B. 5,0 C. 0,6 D. 0,017以下表达式中,与表达式!a等价的是( D )。A. a=0 B. a=
24、1 C. !a=0 D. !a=118以下符合C语言语法的赋值表达式是( D )。 A. a=10+n+m=a+3 B. a=10+m,b=a+5C. b=b*8=2 D. a+=a-=(m=4)*(n=3)19若有int a=7,b=12,则以下表达式中,值为3的是( D )。A. b%=(a%=5) B. b%=(a-a%5)C. b%=a-a%5 D. (b%=a)-(a%=5)20已知各变量的类型说明如下。int a=2,b;double x=2.56;则以下不符合C语言语法的表达式是( A )。A. x%(-3) B. a+=2 C. a+=a-=(b=4) D. x/=(b=3)2
25、1设以下变量均为int类型,则值不等于7的表达式是( C )。A. (x=y=6,x+y,x+1) B. (x=y=6,x+y,y+1)C. (x=6,x+1,y=6,x+y) D. (y=6,y+1,x=y,x+1)22若x,i,j,k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后,x的值为( C )。A. 4 B. 16 C. 32 D. 5223执行下面程序段后,输出结果为( C )。int x=13,y=5;printf(“%d”,x%=(y/2);A. 3 B. 2 C. 1 D. 024设x,y均为float型变量,则以下不合法的赋值语句是( B )。A. x=
26、0.0 B. y=(x%2)/10; C. x*=y+8; D. x=y=0;25设int a=10,则执行语句a+=a*=a/5+10;后,a的值是( A )。A.240 B.120 C.30 D.6026设有定义语句int x=2;则以下表达式中,值不为6的是( D )。A. x*=x+1 B. x=2,3*x C. x*=(1+x) D. 2*x,x+=227已知变量x、y、z都为int型,则执行z=2+(y=1,y+=1,x=y,x+8)后,x和z的值分别为( A )。A.x=2,z=12 B. x=2,z=10 C. x=10,z=12 D. x=10,z=1028若w=1,x=2,
27、y=3,z=4,则条件表达式wx?w:yz?y:z的值是( D )。A. 4 B. 3 C. 2 D. 129若w、x、y、z、m均为int型变量,则执行下面语句后,m的值为( A )。 w=1;x=2,y=3;z=4m=(wx)?w:x;m=(my)?m:ym=(mz)?m:z;A. 1 B. 2 C. 3 D. 430若运行时给变量x输入12,则以下程序的运行结果是( A )。#includevoid main( )int x,y;scanf(“%d”,&x);y=x12?x+10:x-12;printf(“%dn”,y);A. 0 B. 22 C. 12 D. 1031若已知num、su
28、m均为int型变量,且num=sum=7;则计算表达式sum=num+,sum+后,sum的值为( B )。A. 7 B. 8 C. 9 D. 1032若有int x=11,则表达式(x+*1/3)的结果为( B )。A. 5 B. 3 C. 4 D. 633若有定义语句:int x=3;则以下表达式中,值为5的是( A )。A. +x,x+1 B. x+=2,-x C. x+=2,x+1 D. x+,x+34若已知m,n,x,y为int型变量,则执行以下语句后,变量y的值为( D )。m=10;n=5;x=(-m=n+)?-m:+n;y=n;A. 5 B. 10 C. 6 D. 735执行以
29、下程序段后,变量a,b,c的值分别为(B )。int x=10,y=9;int a,b,c;a=(-x=y+)?-x:+y;b=x+;c=y;A. a=9,b=9,c=9 B. a=8,b=8,c=10 C. a=9,b=10,c=9 D. a=1,b=11,c=1036以下程序的输出结果是( C )。#includevoid main( )int w=3,z=7,x=10;printf(“%dn”,x10?x+100:x-10);printf(“%dn”, w+|z+);printf(“%dn”,!wz);printf(“%dn”,w&z);A. 0 B. 1 C. 0 D. 01 1 1
30、11 1 0 01 1 1 037.以下关于运算符优先顺序的描述中正确的是( C )。 A. 关系运算符算术运算符赋值运算符逻辑与运算符B. 逻辑与运算符关系运算符算术运算符赋值运算符C. 赋值运算符逻辑与运算符关系运算符算术运算符D. 算术运算符关系运算符赋值运算符逻辑与运算符38下列运算符中,优先级最高的是( D )。A. B. % C. & D. +39设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( C )。A. x&y B. x=y=z C. y+z&y-z&(x+1)%2 D. !x|xbc的值为 0 。7.当a=5,b=4,c=2时,表达式ab&!
31、c的值为 0 。8.C语言提供的三种逻辑运算符是 & 、 | 、 ! 。9.若a=2,b=4,则表达式!(x=a)|(y=b)&0的值为 0 。10.若a=1,b=4,c=3,则表达式!(a=0&x=-1&x=0 。14.若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后,y的值为 -16 。15.若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后,a的值为 -60 。16. 若a是int型变量,则表达式(a=4*5,a*2),a+6的值为 26 。17.若x和n均为int型变量,且有x=n=5,则计算表达式x+=n+后,x的值为 10 ,n的值为 6 。18.若n、i均为int型变量,则表达式n=i=2,+i,i+的值为 3 。19.若有定义:int x=1,y=0;则表达式xy
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。