C语言第1--2章练习题.docx
C语言第1、2章练习题一、选择题1 .以下运算符中,(C)结合性从左到右。A.三目B.赋值C.比较D.单目2 .以下for循环的次数为(B):for(i=0,x=0;!x&&i<=5;i+)A.5B.6C.1D.无限3 .下述关于循环体的描述中,(C)是错误的。A.循环体中可以出现break语句和COntinUe语句;B.循环体中还可以出现循环语句;C.循环体中不能出现goto语句;D.循环体中可以出现开关语句。4 .以下变量名中,(八)是合法的。A.CHINA;B.student-num;C.doubleD.A+b5 .有以下程序段:intn=0,p;doscanf("%d",&p);n+;While(P!=12345&&n<3);此处do-while循环的完毕条件是(D)0A.P的值不等于12345并且n的值小于3B.P的值等于12345并且n的值大于等于3C.P的值不等于12345或者n的值小于3D.p的值等于12345或者n的值大于等于36 .假设有定义:inta=8,b=5,C;,执行语句C=ab+0.4;后,c的值为(B)A.1.4B.1C.2.0D.27 .以下程序中,While循环的循环次数是(D)main()inti=0;whilc(i<10)if(i<l)continue;if(i=5)break;i+;“A.1B.10C.6D.死循环,不能确定次数8 .以下WhiIe循环的执行次数是(八)while(i=0)i-;A.0B.1C.5D.死循环9 .以下说法中正确的选项是:CA.C语言程序总是从第一个的函数开场执行;B.在C语言程序中,要调用的函数必须在main()函数中定义;C.C语言程序总是从main。函数开场执行;D.C语言程序中的main()函数必须放在程序的开场局部。10 .以下程序的输出结果是:Dmain()intx=10,y=10;printf(',%d%dn',x-,-y);A.1010B.99C.910D.10911 .inta=l,b=3;,那么以下表达式的结果为“真”的是:DA.a>=2|!b&&b<4B.b-a&&!a|a-b&&a/l)C.a-!a%b&&!b-!b%bD.a+b&&a-b&&b-3&&a|b12.请选出合法的C语言赋值语句CAa=b=58B.i+;C.a=58,b=58D.k=int(a+b);13 .假设有以下定义和语句:Bcharcl=,b,c2=,e,;PriIItfr%d,%c,c2cl,c2W+A);那么输出结果是:A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定。14 .运行以下程序段后变量a的值是:Dinta=0,b=3;switch(a+b&&a+&&b-a&&a)(case0:a+;casel:b+;case2:a+=b;break;case3:a-=b;default:a;)(八)-3(B)1(C)5(D)615 .在以下一组运算符中,优先级最高的运算符是:C(八)<=(B)=(C)%(D)&&16 .设inta=12,那么执行完语句a+=a-=a*a后,a的值是D(八)552(B)264(C)144(D)-26417 .C语言中基本数据类型包括B(八)整型、实型、逻辑型(B)整型、实型、字符型(C)整型、字符型、逻辑型(D)整型、实型、逻辑型、字符型18 .执行下面程序片段的结果是Bintx=23;doprintf(,%2d',x-);while(!x);(八)打印出321(B)打印出23(C)不打印任何内容(D)陷入死循环19 .假设k是int型变量,且有下面的程序片段:Dk=-3;if(k<=O)PriIItf("#")elseprintf(”&&&&”);上面程序片段的输出结果是(八)#(B)&&&&(。#&&&&(D)有语法错误,无输出结果。20 .为表示关系xyz,应使用C语言表达式A(八)(x>=y)&&(y>=z)(B)(x>=y)AND(y>=z)(C)(x>=y>=z)(D)(x>=y)&(y>=z)21 .假设C为Char类型变量,能正确判断出C为小写字母的表达式是DA),a'<=c<=,zrB)(c>=,a,)(c<='z,)C)c>='a,c<=,z'D)c<=,z,&&c>='a'22 .下面程序执行后输出SUm的值是DA)15B)14C)0D)不确定main()inti,sum;for(i=0;i<6;i+)sum+=i;printf(,*%dn,sun);)23 .以下表达正确的选项是:DA)可以把include和if定义为用户标识符B)可以把include定义为用户标识符,但不能把if定义为用户标识符C)可以把if定义为用户标识符,但不能把include定义为用户标识符D)include和if都不能定义为用户标识符二、判断以下描述的正确性,对者划错者划X。1 .switch语句中必须有break语句,否那么无法退出switch语句。O2 .C中标识符内的大小写字母是没有区别的。O3 .隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。O4 .运算符的优先级和结合性可以确定表达式的计算顺序。15 .While循环语句的循环体至少执行一次。O6 .开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。O7 .C语言在编译时不检查语法;O8 .在C语言中,"A"是错误的Char类型的常数;19 .字符(Char)型数据在微机内存中的存储形式是ASCn码;110 .C语言的源程序不必通过编译就可以直接运行;0IL“hit"是合法的C语言关键字;0三、写出以下程序的运行结果。2.T3.4.VCidmrinC5.从键盘输入1325。voidmain()intnl,n2;scanf("%d",&n2);while(n2!=0)6.voidmain()inta=5,b=4,c=3,d;ri=fn>h>rV7.voidmain()ints,i;forf=i=1i<3i+q+=i):1.程序的功能是:分船之间奇物之和及偎I计算1到10数之和2.下面程序的功能是:输出100以内能被3幡除且个位数为6的所有翦教Cvoidmain3.以下程序的功能是判断输入的正整7或9整户循环。Im);!4.求某数的泰勒5.得到一个输入数字的反转数,然后一次输出这个整数。voidmain()intn,righjdigit,newnum=0;printf(,'Enterthenumber:");scanf(,'%d"n);printf(,'reverseorderis,);doright_digit=n%10;生成所输入数字的反转数newnum=newnum*10+righl_digit;n二while(n!=0);printf(,'%dn",newnum);)数#in(VC(Skfime是冷:Iudidnntncanf=sqor(if(-L6.输入学号,并输出其中能被的学号,当学号输入。值时完当voidmain()intnum;doscanf("%d”,&num);if(num7=0llnum9=0printf(u%d”,n)while(num!=0除)F和。X的泰勒I2,XXX1+-1!2!3oidmain()iti,n;floatx;mf("%f,%d”,我(i=l;i<n;i+)t*=(x/ils(7.键盘输入假设干个数,直至输入。为止,输出偶数及其个数。voidmain()intx;intcount=0;scanf(w%dr,&x);sum+=t;)printfC%,s7.设计具有以下功能的程序:从键盘上输入假设干个非负整数,统计并输出最大数和最小数,当输入负数时完毕输入。(自己完成,并上机验证)#include<stdio.h>voidmain()(inti,j,max=0,min=0;doscanf("%d,'i);if(max<i)if(min>i)min=i;)while(i>=0);printf(',%d%dn”,max,min);