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;scanf(%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);