c语言练习1.doc_第1页
c语言练习1.doc_第2页
c语言练习1.doc_第3页
c语言练习1.doc_第4页
c语言练习1.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

练习1一、选择题1、一个C程序是由( B )。A一个主程序和若干子程序组成 B一个或多个函数组成C若干过程组成 D若干子程序组成2、一个C程序的执行是从( A )。Amain函数开始,直到main函数结束 B第一个函数开始,直到最后一个函数结束C第一个语句开始,直到最后一个语句结束 Dmain函数开始,直到最后一个函数结束3、C语言语句的结束符是( B )。A回车符 B分号 C句号 D逗号4、下面标识符中( D )不是C语言的关键字。Achar Bgoto Ccase Dinclude5、以下说法正确的是( A )AC程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。BC程序的注释只能是一行。CC程序的注释不能是中文文字信息。 DC程序的注释中存在的错误会被编译器检查出来。6、以下说法正确的是( D )AC程序中的所有标识符都必须小写 BC程序中关键字必须小写,其他标识符不区分大小写CC程序中所有标识符都不区分大小写 DC程序中关键字必须小写,其他标识符区分大小写。7、设x、y均为float型变量,则以下不合法的赋值语句是( B )A+x; By=(x%2)/10; Cx*=y+8; Dx=y=0; 解析:运算符%要求两端的操作数必须为整型,而在答案B中%号两端的操作数为x和2,x为实型,所以是错误的。8、下列不正确的转义字符是( C )A B C 19 D 0 解析:转义字符是由单引号括起来的带反斜线的字符,这些字符具有特殊的含义,反斜线后可以是数字来代表某个字符,而这些数字只包括两种:八进制(1-3位)和十六进制(1-2位)。十六进制前面要加x(或X),这里的C答案反斜线后是数字,但不是x开头,所以应该是八进制数,但是数值里有9,和八进制数不符,所以是错误的。9、下列不是C语言常量的是( A )Ae-2 B074 Ca D 0 解析:C语言的常量分为整型、实型、字符型和字符串。整型常量的书写形式分为十进制、八进制和十六进制,十进制是09的数值表示;八进制是以0开头,07的数值表示,十六进制是以0x(或0X)开头,09与af(或AF)表示。实型常量的书写分为小数形式和指数形式,小数形式指只包含小数点的形式,如:0.056或300.57;指数形式只指用包含e(或E)的书写形式,要求e(或E)的前面必须有数值,后面必须是整数的书写规则。字符型常量指单引号引起来的单个字符或转义字符。字符串常量是指双引号引起的多个字符。这里答案A是实型的指数书写形式,但是这种书写形式要求e前面必须有数值,后面必须是整数,而这里所以是错误的。10、设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( B )A0255 B065535 C-3276832767 D-256255 11、若定义了int x; 则将x强制转化成双精度类型应该写成( A )A(double)x B x(double) C double(x) D(x)double 12、在C语言中,要求参加运算的数必须是整数的运算符是( C ) 。A/ B* C% D =13、为了计算s=10!(即10的阶乘),则s变量应定义为( D ) 。Aint Bunsigned Clong D以上三种类型均可解析:在TC下,此题答案是C,在VC6.0下此题答案是D,因为两个编译器对int类型数据的空间分配的大小不一样,在TC下是2字节,在VC6.0下是4字节,所以取值范围也就不一样。14、putchar ( )函数可以向终端输出一个( D ) 。A、整型变量表达式值 B、实型变量值C、字符串 D、字符或字符型变量值15、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( D ) (V代表空格,代表Enter)int a1,a2; char c1,c2;scanf(%d %c%d %c,&a1,&c1,&a2,&c2);A、10VA20B B、10A20VB C、10VA20VB D、10A20B解析:空格是有效字符,所以会被scanf函数正常读取。A答案会将10送给a1,空格送给c1,而A字符不属于a2的读取范围,scanf函数非正常结束,a2与后面的c2都没有正常获取数值;B答案会将10送给a1,A送给c1,20送给a2,空格送给c2,然后scanf函数读取正常结束,后面的B字符将会留给下一输入函数读取;C答案与A答案类似;只有D答案正确地将将10送给a1,A送给c1,20送给a2,B送给c2,然后scanf函数读取正常结束。16、执行下列程序片段时输出结果是( C )。int x=13,y=5;printf(%d,x%=(y/=2);A、3 B、2 C、1 D、0解析:这是一个表达式的运算,x%=()是一个赋值表达式,赋值表达式的运算方向是从右向左进行。即先运算表达式y/=2,其运算结果是y=2,再将表达式转换为x%=2,运算此表达式得到最后结果为1 。17、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的输入方式是( D )。(V代表空格,代表Enter)int a1,a2; char c1,c2;scanf(%d%d,&a1,&a2);scanf(%c%c,&c1,&c2);A、1020AB B、10V20 C、10V20AVB D、10V20ABAB解析:此题与15题类似,这里的回车符也属于有效字符,所以会被scanf函数正常读取。A答案中的1020后面是字符A,不属于数值,第一个scanf函数读取时将1020看成一个整体送给a1,而后面的A不属于a2获取类型,这个scanf函数非正常结束,a2没有获取到数值;第二个scanf执行,c1获取到字符A,c2获取到字符B。B答案中的10后面是空格,所以第一个scanf函数现将10送给a1,再将空格后的20送给a2,第一个scanf函数正常结束,第二个函数是读取字符型,这时的缓冲区中首先是回车符,当数字型读取时可以忽略此字符,但是字符型读取却不能忽略,所以scanf函数将回车符送给了c1,将A送给c2,scanf函数正常结束。C答案中10后面是空格,所以第一个scanf函数现将10送给a1,20后面是字符A,所以将20送给a2,第一个scanf函数正常结束;第二个函数是读取字符型,这时的缓冲区中首先是A,scanf函数将A送给c1,A后面的空格送给c2,第二个scanf函数正常结束。D答案中10后面是空格,所以第一个scanf函数现将10送给a1,20后面是字符A,所以将20送给a2,第一个scanf函数正常结束;第二个函数是读取字符型,这时的缓冲区中首先是A,scanf函数将A送给c1,A后面的B送给c2,第二个scanf函数正常结束。所以D答案是正确的。18、若运行时输入:12345678,则下列程序运行结果为( A )。#includevoid main ( )int a,b;scanf(%2d%2d%3d,&a,&b);printf(%dn,a+b);A、46 B、579 C、5690 D、出错解析:scanf中的2是指读取数值的位数,所以scanf函数读取前两个数字12送给a,接着读取后面两个数字34送给b,最后读取567三个字符,但是后面没有对应的参数所以不送给任何变量,scanf函数执行结束,所以a+b=12+34=46,所以输出为46。19、已知i,j,k为int型变量,若从键盘输入:1,2,3,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是( C )。(V代表空格,代表Enter)A、scanf(%2d%2d%2d,&i,&j,&k); B、scanf(%dV%dV%d,&i,&j,&k);C、scanf(%d,%d,%d,&i,&j,&k); D、scanf(i=%d,j=%d,k=%d,&i,&j,&k);解析:根据键盘输入时数据只是用逗号进行分隔的,所以scanf函数中格式符之间的分隔符也必须要用分号,故答案选C。20、有输入语句:scanf(a=%d,b=%d,c=%d,&a,&b,&c);为使变量 a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( D )。(V代表空格,代表Enter)A、132 B、1,3,2 C、a=1Vb=3Vc=2 D、a=1,b=3,c=2解析:scanf函数要求非格式字符必须原样键入,所以根据scanf语句,答案应该是D。二、填空题1、C语言源程序文件的后缀是_.c_,经过编译后生成目标文件的扩展名是_.obj_,经过连接后生成可执行文件的扩展名是_.exe_。2、C程序注释是由_/*_和_*/_所界定的文字信息组成的。3、源程序的执行要经过_编辑 、 编译 _、_连接_和_运行_四个步骤。4、在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为 1 ,其数值范围为 -128+127 ;一个int数据在内存中所占字节数为 2 ,其数值范围为 -32768+32767 ;一个long数据在内存中所占字节数为 4 ,其数值范围为 -2147483648+2147483647;一个float数据在内存中所占字节数为 4 ,其数值范围为 04294967295 。5、C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为 大小写字母或下划线。6、字符常量使用一对 单引号 界定单个字符,而字符串常量使用一对 双引号 来界定若干个字符的序列。7、 在C语言中,不同运算符之间运算次序存在 优先级 的区别,同一运算符之间运算次序存在 结合性 的规则。8、字符串thev034Willn的长度是_12_。 9、已知有如下定义,写出下列表达式的值。 int a=17,b=5 a/b a%b a&b a&b ab_ 3_ _2_ _1_ _1_ _20_ !a a2 a|b a|b a2_ 0_ _4_ _1_ _21_ _-72_ 10、printf函数和scanf函数的格式说明都使用 % 字符开始。11、scanf处理输入数据时,遇到下列情况时该数据认为结束:(1) 空格 ,(2) 回车 ,(3) TAB 。12、已有int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是 scanf(%d %d %f ,&i,&j,&x); 。13、C语言本身不提供输入输出语句,其输入输出操作是由 函数 来实现的。14、一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:#include。三、程序阅读,写出程序运行结果。1、 #includevoid main ( ) char c1=a,c2=b,c3=c,c4=101,c5=116;printf(a%c b%ctc%ctabcn,c1,c2,c3); printf(tb%c %c,c4,c5);运行结果:aa bb cc abcA N2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,问在键盘上如何输入?#includevoid main ( ) int a,b; float x,y; char c1,c2; scanf(a=%d b=%d,&a,&b); scanf(%f %e,&x,&y);scanf(%c%c,&c1,&c2);输入数据:(V代表空格,代表Enter)a=3Vb=78.5V7.182e1Aa3、#includevoidmain ( ) int y=3,x=3,z=1;printf(%d %dn,(+x,y+),z+2); 运行结果:3 34、#includevoidmain ( ) int a=12345;float b=-198.345, c=6.5;printf(a=%4d,b=%-10.2e,c=%6.2fn,a,b,c); 运行结果:a=12345,b=-1.98e+002,c= 6.505、 #includevoidmain ( ) int x=-2345;float y=-12.3;printf(%6d,%6.2f,x,y); 运行结果:-2345,-12.306、 #includevoid main ( ) int a=12; double b=3.1415926;printf(%6d#,%-6d#n,a,a);printf(a=%o a=%xn,a,a);printf(%14.10lfn,b);运行结果: 12#,12 #a=14 a=c 3.1415926000四、编程题1、已知int x=10,y=12;写出将x和y的值互相交换的表达式。表达式:x=x+y, y=x-y, x=x-y2、若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。a=3 b=4 c=5x=1.200000,y=2.400000,z=-3.600000x+y=3.60 y+z=-1.20 z+x=-2.40u=51274 n=128765c1=a or 97(ASCII)c2=b or 98(ASCII)编程:#includevoid main ( ) int a=3,b=4,c=5; double x=1.2,y=2.4,z=-3.6; unsigned int u=51274,n=128765; char c1=a,c2=b; printf(a=%d b=%d c=%dn,a,b,c); printf(x=%lf,y=%lf,z=%lfn,x,y,z); printf(x+y=%.2lf y+z=%.2lf z+x=%.2lfn,x+y,y+z,z+x); printf(u=%u n=%un,u,n); printf(c1=%c or %d(ASCII)n,c1,c1); printf(c2=%c or %d(ASCII)n,c2,c2);3、设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。用scanf输入数据,输出计算结果;输出时要求有文字说明,取小数点后2位数字,请编写程序。分析:圆周长公式:2r 圆面积公式:r2 圆球表面积公式:4r2 圆球体积公式: r3 圆柱体积公式:r2h编程: #include void main() float h,r,l,s,sq,vq,vz; float pi=3.141526; printf(请输入圆半径r,圆柱高h:); scanf(%f,%f,&r,&h); l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=(3.0/4.0)*pi*r*r*r; vz=pi*r*r*h; printf(圆周长为: l=%.2fn,l); printf(圆面积为: s=%.2fn,s); printf(圆球表面积为: sq=%.2fn,sq); printf(圆球体积为: v=%.2fn,vq); printf(圆柱体积为: v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论