《C语言1-5章复习题及参考答案.doc》由会员分享,可在线阅读,更多相关《C语言1-5章复习题及参考答案.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。A .-3 B.9 C.-12 D.62、若有定义:inta=8,b=5,c;执行语句c=a/b+0.4;后,c的值为()。A .1.4 B.1 C.2.0 D.23、有如下程序:voidmain()inti,sum;for(i=1;i=3;sum+)sum+=i;printf(%dn,sum);该程序的执行结果是()。A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是()。A . 常量和变量都是表达式。 B. 运算符类型对应表达式的类型。C. 每一个表达式都有自己的值。 D. 表
2、达式必须以分号结尾。5、C语言中,合法的长整型常数是()。A . t B.” A” C.65 D.a6、若已定义x和y为double类型,则表达式x=1;y=(x+3)/2的值是()。A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是()。A . true B. 非零值 C.0 D.18、以下程序的输出结果是()。#includevoidmain()printf(%dn,NULL);A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。( )A . a=b=58 B.i+; C. a=58,b=58 D. k=int(a+b);10、假设i
3、ntb=2;表达式(b2)/(b1)的值是()。A .0 B.2 C.4 D.811、关于语句printf(“helloworldn”);,下列描述中错误的是()。A . printf()是格式化输出函数,用于输出信息。B. printf()括号中的内容为函数的参数。 C. printf()括号中的内容会全部输出到控制台上。 D. n表示换行操作。12、下列选项中,哪一项不是C语言中的位运算符()。A .& B.| C. D.13、以下程序的输出结果是()。voidmain()charc=z;printf(%c,c-25);A .a B.Z C.z-25 D.y14、若要求在if后一对圆括号中
4、表示a不等于0的关系,则能正确表示这一关系的表达式为()。A . a0 B. !a C. a=0 D. a15、以下循环体的执行次数是()。voidmain()inti,j;for(i=0,j=1;i=j+1;i+=2,j-)printf(%dn,i);A .3 B.2 C.1 D.016、下列运算符中优先级最高的是()。A .| B.& C.+ D.=17、若有以下定义和语句:charc1=b,c2=e;printf(%d,%cn,c2-c1,c2-a+A);那么输出结果是()。A .2,M B.3,E C.2,E D. 输出项与对应的格式控制不一致,输出结果不确定18、若有以下程序段:in
5、tc1=1,c2=2,c3;c3=1.0/c2*c1;那么执行后,c3中的值是()。A .0 B.0.5 C.1 D.219、若变量a是int类型,并执行了语句:a=A+1.6;则下列描述中,正确的是()。A . a的值是字符C B. a的值是浮点型C. 不允许字符型和浮点型相加 D. a的值是字符A的ASCII值加上120、若有定义:intx,i;则下列for循环语句:for(i=0,x=0;i5)printf(%d,x);elseprintf(%dn,x-);A . 7和5 B. 6和3 C. 7和4 D. 6和423、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值
6、是()。A . 1 B. 2 C. 2.0 D. 2.524、执行下面程序片段的结果是()。intx=23;doprintf(%2d,x-);while(!x);A . 打印出321 B. 打印出23 C. 不打印任何内容 D. 陷入死循环25、以下选项中合法的字符常量是()。A . B B. 010 C. 68 D. D26、将二进制数00001011进行位运算,将其结果转换为十进制是()。A . 101 B. 1 C. 11 D. 527、下列说法中正确的是()。A . 在switch语句中一定要使用break语句B. 在switch语句中不一定要使用break语句C. break语句是s
7、witch语句的一部分 D. break只能用于switch语句中28、假设有如下的变量定义:inti=8,k,a,b;unsignedlongw=5;doublex=1.42,y=5.2;则以下符合C语言语法的表达式是()。A . a+=a-=(b=4)*(a=3) B. x%(-3)C. a=a*3=2 D. y=float(i)29、若a为int型变量,则下列C语言表达中,不能表达数学关系式10a15的是()。A . 10a10&a15 D. !(a=15)30、表示关系x=y=z的C语言表达式为()。A . (X=Y)&(Y=Z)B. (X=Y)AND(Y=Z)C. (X=Y=Z) D
8、. (X=Y)&(Y=Z)二判断题1、C语言属于机器语言。( )2、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。( )3、在C语言中转义字符有特殊的含义,它以反斜杠开头,后面接特定的字符。( )4、机器语言是由二进制数0和1组成的一串指令。( )5、continue只能用于循环语句。( )6、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。( )7、将浮点型数据转换为整型数据时,小数点后的数会进行四舍五入。( )8、字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的双引号( )引起来。( )9、通常将不可改变的数值称为常量。( )10、变量虽有不同的数
9、据类型,但它们所占内存的大小是一样的。( )11、位运算符“”就是将操作数所有二进制位向左移动一位。运算时,右边的空位补0。左边移走的部分舍去。( )12、十进制数10转换为二进制为1010。( )13、计算机使用特定的整数编码来表示对应的字符,我们通常使用的英文字符编码是ASCII。( )14、逻辑运算符用于判断数据的真假,其结果为“真”或“假”。( )15、十进制转换成二进制可以采用除2取余的方式。( )16、变量的值保存在内存单元上,是可以被改变的。( )17、十进制和二进制只是针对数字的不同表示方式,无论采用哪种方式表示一个数,它的值都是一样的。( )18、位运算符是针对二进制数的每一
10、位进行运算的符号,是专门针对数字0和1进行操作的。( )19、sizeof运算符的功能是获取某一数据或数据类型在内存中所占的字节数。( )20、两个二进制数进行“|”运算,如果二进制位上只有一个值为1,则该位的运行结果为0。( )三填空题1、在C语言中根据运算符进行运算需根据变量的个数可以将运算符分为单目运算符、双目运算符和( 三目 )运算符。2、定义变量intx=1.20,则%d格式输出x的结果为( 1 )。3、运算符“|”表示或操作,当且仅当运算符两边的表达式结果都为假时,其结果为( 假 )。4、运算符“&”表示与操作,当且仅当运算符两边的表达式结果都为真时,其结果才为( 真 ),否则结果
11、为假。5、若有定义intx=7;则表达式x/=3;的值为( 2 )。6、计算机语言可分为三大类,即机器语言、汇编语言和( 高级语言 )。7、在进行取模运算时,运算结果的正负取决( 被模数 )的符号,与模数的符号无关。8、在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个( 整数 )。9、C语言中的数据类型可分为4种,分别是( 基本类型 )、构造类型、指针类型、空类型。10、注释有两种类型,分为( 单行注释 )和多行注释。11、整型变量是用来存储整型数据,( 实型 )变量用来存储小数类型。12、实型常量也称为浮点数常量,可以分为单精度浮点数和( 双精度 )两种类型。13、sizeof
12、运算符用于获取某一数据或( 数据类型 )在内存中所占的字节数。14、在C语言中,如果除法运算有浮点数参与运算,得到一个( 浮点 )型结果。15、C语言的比较运算中,“真”用数字“( 1 )”来表示,“假”用数字“( 0 )”来表示。16、在C语言中,常量包括( 整型常量 )、浮点数常量、字符常量等。17、在C语言中,运算符都有一定的结合性,则赋值运算符的结合性为( 左结合 )。18、赋值运算符的作用就是将常量、变量或( 表达式 )的值赋给某一个变量。19、已知a=10,b=20,则表达式!ab的值为( 1 )。20、在C语言中,( sizeof )运算符可以求算出数据字节数。21、关系运算符中
13、表示不等于的运算符是“( != )”。22、关系运算符的结果用逻辑值( 真 )和( 假 )来表示。23、在C语言的运算符中,( 关系 )运算符和逻辑运算符是用“真”和“假”来表达结果。24、C语言中的基本数据类型分别是整型变量、实型变量、( 字符型 )、枚举型变量。四阅读程序,填空。1、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:通过输入成绩,为成绩评等级,90100为A,8089为B,7079为C,6069为D,60以下为E。#includevoidmain()intscore;printf(Pleaseinputyourscore:);scanf(%d,&score);swi
14、tch(score/10)case10:case9:printf(YourlevelisA.n);break;case8:printf(YourlevelisB.n);break;case7:printf(YourlevelisC.n);break;case6:printf(YourlevelisD.n);break;( default )printf(YourlevelisE.n);2、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:从键盘上输入一行字符(不多于40个,以回车换行符作为输入结束标记),将其中的大写字母改为小写字母,其它字符不变,然后逆向输出。voidmain()ch
15、ara40;intn=0;doscanf(%c,&an);if( an=A&an=0)printf(%c,an-);3、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:求s=3+5+7+29之和。voidmain()inti,sum=0;for(i=3;i=29;_i=i+2 _)sum= sum+i _;printf(sum=%dn,sum);4、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:从键盘输入一个年份数据,判断此年份是否为闰年。(注:满足下面两个条件中的一个即为闰年:一、400的倍数;二、4的倍数但不是100的倍数)。voidmain()intx,i;scan
16、f(%d,&x);if(x%400=0)i=1;elseif(_x%100!=0&x%4=0 _)i=1;else_i=0_;if(i=1)printf(该年为闰年n);if(i=0)printf(该年为平年n);10 年该 )= )年( ) ;0_ ;)0 &=!%( 00%()& ( 数0是数的;的 0 (= 一闰!一中个下注(闰 份0此据年入键是的 该 的写处,的下阅”)!(“算于中符关数字数求符 中在) (为 达, ,知量变给的)达 或、是用算赋)左(性的值赋结一符,言等常、常浮 型括量中语示来) 用假表) (字用“较的果型 (一运参有法除,在数字所存 类 (数取用算 型型)度 和度精
17、以常点也型实型数小量 型(型存是型整释释) 单 为型有注型空型、造) 基是,为型数中) (一的,时为和当时法关号数与的 模决正的算算行进) 级 和汇言即类为言 为;/达; 有假果结 真(果其为果达边算且当与”&) 为果假果达的算当,或”“算) (结出格 变符算 目和目符目分运可个据需进运中 空 。结的位为个只进如算“进制两(节占存型类数某能符运 的行进数门专的行一每二是运 (是的,一方哪无方示的数只和十 的改,单内存的 式余用以制转十 。或真果假的判符运 。 符英使通符应表编整用机 (0 二转数十 去部移。位边时。动向制有作是”算运 。样大存所但据同虽(。称的可 来) 双格文一要常个个示量 入
18、四会的点时整换据点 示用假辑的表是“的中(语于只 指一 数进言 字特后头它含特符转 的0”辑逻 用“的言 言于语断 =&) )= ( =( &))式言 =系表 = &0 &0 = =|= )( 0学达,达言列量型 若 =. ( ) (+ )是表的 符以. = ; 定的如假句 于只 部的 是 语语 要不语 语 使中句 在)是的说 . )是制换其算位行 0数二 . )是量法项以循循. 内印打 印. 出)! ; ,%( ; )( 结段面行和和. . 和 )-% ; 一;)一 注)闰 )年 %键 (, . 循法是 .0位换) 说在中使 要语是的 只 假 符表)+ =若列达学( | & )&= )&断
19、言 辑的 特头字言 指 于中“的示整的入 个一格来 。虽据存样算”有。去十二0 整应英 运的假。十制 的内改只示无一( 每一数行 能类存制算个的。空运个运目目符 结 ”或达假为&与达其(结假/ 言即言 )算模与关时时的(中为 、型型单 整存型量数也常度 型算取类所数法参 的较(假 示量 浮等,结性)赋、达的量达 ) 符数符于(”的写( )是出, 别上果如面行执也体循 循是 多 次 多(是述中列,% + !&% .和 =,() 句 循 则); 定))是确 中下;. 句执并 量. 0 )的 行 / ; = 段程有确果出致控的与输 . ,)是结那) - ,% , :和定若. + & )高优算下. ; ( -) +是 别,(果 执 中述次 是体。(是的&环; , .优& 定 , 是). 的出果段 /行) 量并 .确)定 ,(达 设) (= = . + = 句赋 法. 不) 的 ( ) ; ) :下. -)(值 =式完则为且型 择 型为完 ( 下; =结) .的)表 达一。.尾语)” 义 则=+下
限制150内