运算符与表达式练习题附答案
- 格式:doc
- 大小:30.50 KB
- 文档页数:5
C语言运算符与表达式的练习题答案编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(C语言运算符与表达式的练习题答案)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为C语言运算符与表达式的练习题答案的全部内容。
C语言运算符与表达式的练习题单项选择题(1)以下选项中,正确的 C 语言整型常量是(D)。
A. 32L B。
510000 C。
-1。
00 D。
567(2)以下选项中,(D)是不正确的 C 语言字符型常量。
A。
’a' B. ’\x41' C。
'\101’ D. ”a"(3)字符串的结束标志是(C)。
A. 0B. '0' C。
’\0' D. "0”(4)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B )。
A。
算术运算、赋值运算、关系运算 B。
算术运算、关系运算、赋值运算C。
关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算(5)逻辑运算符中,运算优先级按从高到低依次为(D ).A。
&& ! || B. || &&! C。
&& || ! D. ! && ||(6)表达式!x||a==b 等效于(D )。
A. !((x||a)==b) B。
!(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b)(7)设整型变量 m,n,a,b,c,d 均为1,执行 (m=a〉b)&&(n=c〉d)后, m,n 的值是( A). A。
0,0 B. 0,1 C. 1,0 D。
第二章数据类型,运算符与表达式一.选择题1.不合法的字符常量是(B)。
A)‘\t’B) “A” C)‘a’D)’\x32’2、合法的字符常量是(D)。
A)‘\084’B) ‘\84’ C)‘ab’D)’\x43’2.(B)是C语言提供的合法的数据类型关键字。
A)Float B)signed C)integer D)Char3.在以下各组标识符中,合法的标识符是(4)。
(1)A)B01 B)table_1 C)0_t D)k%(2)A)Fast_ B)void C)pbl D)<book>(3)A)xy_ B)longdouble C)*p D)CHAR(4) A) sj B)Int C)_xy D)w_y234.属于合法的C语言长整型常量的是(B)。
A)5876273 B)0L C)2E10 D)(long)58762735.下面选项中,不是合法整型常量的是(B)。
A)160 B)-0xcdg C)-01 D)-0x48a6.判断int x = 0xaffbc;x的结果是(B)(turbo c 版本)。
A)赋值非法B)溢出C)为affb D)为ffbc7.下面选项中,均是合法浮点数的是(B)。
A)+1e+1 B)-.60 C)123e D)-e3A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4A)03e2 B)-8e5 C)+2e-1 D)5.e-08.在C语言中,要求参加运算的数必须是整数的运算符是(C)。
A)/ B)* C)% D) =9.在C语言中,字符型数据在内存中以(D)形式存放。
A)原码B)BCD码C)反码D)ASCII码10.下列语句中,符合语法的赋值语句是(C)。
A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=(7+b,b++,a+7);D)a=7+b,c=a+7;11.(B)是非法的C语言转义字符。
A)‘\b’B)‘\0xf’ C)‘\037’ D)‘\’’12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中(B),是正确的。
C语言运算符与表达式的练习题单项选择题(1)以下选项中,正确的 C 语言整型常量是(D )。
A. 32LB. 510000 C。
—1.00 D. 567(2)以下选项中,(D )是不正确的 C 语言字符型常量.A. 'a'B. ’\x41' C。
’\101' D. "a”(3)字符串的结束标志是(C).A. 0B. ’0' C。
'\0' D. "0”(4)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。
A。
算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算(5)逻辑运算符中,运算优先级按从高到低依次为(D).A. &&! ||B. || &&!C. && || ! D。
! &&|| (6)表达式!x||a==b 等效于(D)。
A。
!((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b)(7)设整型变量 m,n,a,b,c,d 均为1,执行 (m=a〉b)&&(n=c〉d)后, m,n 的值是(A). A。
0,0 B. 0,1 C. 1,0 D. 1,1*(8)设有语句 int a=3;,则执行了语句 a+=a—=a*=a;后,变量 a 的值是(B)。
A. 3B. 0C. 9 D。
—12(9)在以下一组运算符中,优先级最低的运算符是( D )。
A. *B. !=C. + D。
=(10)设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是( B,上机13).A。
6 B。
12 C. 15 D。
表达式出错(11)若已定义 x 和 y为double 类型,则表达式的值是( D).A. 1 B。
2 C。
2。
知识点一数据类型运算符及表达式模拟练习(答案版)模拟练习一(数据类型、运算符及表达式)基础知识及数据类型1.一个C语言程序是由()组成。
(☆基础知识☆)A.主程序B.子程序C.函数D.过程2.一个C程序总是从()开始执行。
(☆基础知识☆)A.程序的第一条执行语句B.主函数C.子程序D.主程序3.一个C语言程序()(☆基础知识☆)A.应当只包含一到多个主函数B.应当由两个主函数C.只能有一个主函数D.可以没有主函数4.C语言规定:在一个源程序中,main函数的位置()(☆基础知识☆)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后5.C语言程序中,main()函数的特征是()(☆基础知识☆)A.可独立运行的程序B.必不可少的函数C.最先执行的函数D.具有前述三特征的函数6.以下叙述中正确的是()(☆基础知识☆)A.C语言的源程序不必通过编译就可以直接运行B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C源程序经编译形成的二进制代码可以直接运行D.C语言中的函数不可以单独进行编辑7.下面4组常量,合法的一组C语言常量是()(◆常量◆)A.O0某102E+9‘a’‘’’B.1010LE1‘a’‘\\0’C.0.01“\\””“\\””‘t’‘\\t’D.0.13E+0“\\””‘tt’0128.下面不正确的字符串常量是()(◆常量◆)A.‘abc’B.“12’12”C.“w”D.““9.以下选项中不正确的实型常量是()(◆常量◆)A.2.6E-1B.0.8324eC.-78.8745D.456e-210.以下正确的实型常量是()(◆常量◆)A.2B.3.12e0.8C.e8D.5.6E-211.以下所列的C语言常量中,错误的是()(◆常量◆)A.0某FFB.1.2e0.5C.2LD.’\\72’12.下列字符序列中,可用作C语言用户标识符的是()(◆标识符◆)A.enumB._123C.%aD.#age13.对下列标识符或表达形式,正确的是()(◆标识符◆)A.M.johnB.charC.3.2e0.8D.e814.下面标识符中,不合法的用户标识符是()(◆标识符◆)A._charB.charC.abD.a_b15.下面标识符中,合法的用户标识符是()(◆标识符◆)A.P_aB.U-3C.2aD.tatic16.下面标识符中,合法的用户标识符为()(◆标识符◆)A.p#AdB.12aC.charD._int17.下列语句中正确的是()(◆数据类型◆)A.int_1[]=”012345”;B.char[3]={‘1’,’2’,’3’,’4’};C.c har某tring=”hello!”;D.ch=”howareyou”;18.设int类型的数据长度为2个字节,unignedint类型数据的取值范围是()(◆数据类型◆)A.-32768~32767B.0~255C.0~65535D.13019.在C语言中,int,char和hortint三种类型变量所占用的内存大小是()(◆数据类型◆)A.均为2个字节B.由用户自己定义C.由所用机器的字长决定D.是任意的20.若有以下类型说明语句:(◆数据类型◆)chara;intb;floatc;hortintd;则表达式(c某b+a)某d的结果类型是()A.charB.intC.doubleD.float21.若已定义某和y为float类型,则表达式:某=2,y=某+3/2的值是()(◆数据类型◆)A.4B.3C.3.0D.3.522.若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是()(◆数据类型◆)A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符’A’的ASCII值加上123.以下选择中不属于C语言的类型的是()(◆数据类型◆)A.ignedhortintB.unignedlongintC.unignedintD.longhort24.下列程序(◆转义字符◆)voidmain(){printf(“_ab_c\\t_de\\rf\\tg\\n”);printf(“h\\ti\\b\\bj_k\\n”);}执行后的结果是()A.fab_c___gdeB.fab_c___gdeC.fa__c___gdeD.fa__c___gdeh_______jikh_______ji_h_______jikh_______ji_25.下列字符中,不正确的转义字符是()(◆转义字符◆)A.’\\2’B.’\\r’C.’\\\\’D.’\\108’26.在C语言中,下列选项说法错误的是()(☆基础知识☆)A.main函数是程序的入口B.严格区分大小写C.可以进行位运算D.一个字符占两个字节27.以下不是C语言规定的保留字的是()(◆关键字(保留字)◆)A.typedefB.enumC.FloatD.tatic28.以下是C语言规定的保留字的是()(◆关键字(保留字)◆)A.typeefB.outC.cloeD.tatic29.下列选项中,不合法的C语言关键字是()(◆关键字(保留字)◆)A.voidB.charC.defaultD.Do30.对于C语言程序中的变量,()是正确的。
1. 复杂表达式计算题目:计算的结果。
答案:132. 复合运算符和优先级题目:计算的结果。
答案:73. 自增运算符在表达式中的使用题目:如果那么的值是多少?答案:124. 自减运算符在表达式中的使用题目:如果那么的值是多少?答案:25. 结合性运算题目:计算的结果。
答案:66. 复合赋值运算符和优先级题目:如果那么的值是多少?答案:-107. 类型转换的陷阱题目:如果那么和的值分别是多少?答案:a = 2, b = 2.08. 强制类型转换题目:如果那么的值是多少?答案:2.09. 浮点数计算题目:计算的结果。
答案:6.010. 复合赋值运算符题目:如果那么的值是多少?答案:2011. 递增和递减混合使用题目:如果那么的值是多少?答案:812. 复杂的混合类型运算题目:计算的结果。
答案:5.513. 运算符优先级和结合性题目:计算的结果。
答案:1014. 递增和复合赋值题目:如果那么的值是多少?答案:1115. 复合运算符和优先级题目:如果那么的值是多少?答案:416. 复杂的复合赋值运算题目:如果那么的值是多少?答案:1517. 运算符结合性题目:计算的结果。
答案:718. 自增运算和优先级题目:如果那么的值是多少?答案:719. 类型转换在复合表达式中的作用题目:计算的结果。
答案:20.020. 递增和递减与赋值题目:如果那么的值是多少?答案:5。
运算符和表达式
1、若有定主:int a=11; float x=2.8,y=5.7;则表在式x+a%3*(int)(x+y)%2/4的值是:
2、若有定义: int a=8,b=5,c; 执行语句:c=a/b+0.4;后,c的值是:
3、已有定义:int x=3; 则表达式:x=x+1.78的值是
4、已有定义:float f=13.8;,则表达式:(int)f/3的值是
5、已有定义:double x=3.5; 则表达式:x=(int)x+1的值是:
6、已有定义:int x=10, y=3,z; ,则表达式:z=(x%y, x/y)的值是
7、已有定义:int x=0,y=0;,则计算表达式:(x=x+2,y=x+3/2,y+5)后,表达式的值是,变量x的值是:
8、若x,i,j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后,x 的值为:
9、设变量a是int型,f是float型,i是double型,则表达式10+’a’+i*f 值的数据类型为:
1、若有语句:
Int x=12,y=8,z;
Z=0.8+x/y;则执行语句后,z的值为:
2、若“int a; float b=12.2;”,则执行“a=(int)b%3;”后,a的值是:
3、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是
4、若有定义句语:int s=6; 则表达式s%2+(s+1)%2的值为
6、设a,b均为double型,且a=5.5;b=25;则表达式(int)a+b/b的值是:
7、已有定义:int x=110, y=017; 则计算表达式:(x++,++y)后,表达
式的值是,变量k的值是,变量j的值是。
参考答案及解析一、选择题1. 答案:C【解析】C语言的标识符命名规则为:①只能由字母、数值和下划线3种字符组成;②第一个字符必须是字母或下划线;③不能与C语言中的关键字或保留字相同。
2. 答案:C【解析】标识符命名规则:标识符必须由字母(a~z或A~Z)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout 代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。
因此,本题正确答案为C)。
3. 答案:C【解析】C语言合法标识符的命名规则是:标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。
因为选项C)中的标识符的第一个字符为"&",所以选项C)为本题的正确答案。
4. 答案:A【解析】在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。
C语言的标识符可以分为关键字、预定义标识符和用户标识符。
选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字,故本题答案为A)。
5. 答案:B【解析】C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。
6. 答案:C【解析】C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。
选项C)中goto和int是关键字,b-a中"-"不是组成标识符的3种字符之一;选项D)中int是关键字,所以,均是不合法用户标识符的选项是C)。
7. 答案:B【解析】合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。
C语言运算符与表达式的练习题-答案C语言运算符与表达式的练习题单项选择题(1)以下选项中,正确的 C 语言整型常量是(D)。
A. 32LB. 510000C. -1.00D. 567(2)以下选项中,(D)是不正确的 C 语言字符型常量。
A. 'a'B. '\x41'C. '\101'D. "a"(3)字符串的结束标志是(C)。
A. 0B. '0'C. '\0'D. "0"(4)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。
A. 算术运算、赋值运算、关系运算B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算(5)逻辑运算符中,运算优先级按从高到低依次为(D)。
A. && ! ||B. || && !C. && || !D. ! && ||(6)表达式!x||a==b 等效于(D)。
A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b))D. (!x)||(a==b)(7)设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是(A)。
A. 0,0B. 0,1C. 1,0D. 1,1*(8)设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是(B)。
A. 3B. 0C. 9D. -12(9)在以下一组运算符中,优先级最低的运算符是(D)。
A. *B. !=C. +D. =(10)设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是(B,上机13)。
A. 6B. 12C. 15D. 表达式出错(11)若已定义 x 和 y为double 类型,则表达式的值是(D)。
1、写出下列各逻辑表达式的值。
设,a=3,b=4,c=5。
(1)a+b>c&&b==c 0(2)a||b+c&&b—c 1(3)!(a>b)&&!c||1 1(4)!(x=a)&&(y=b)&&0 0(5)!(a+b)+c-1&&b+c/2 12、阅读程序,写出运行结果:#include 〈stdio。
h>main(){int a=3,b=1,x=2, y=0;printf(”%d,%d \n",(a>b)&&(x>y), a〉b&&x〉y);printf("%d, %d \n”,(y||b)&&(y||a),y||b&&y||a);printf("%d\n",!a||a〉b);}1,11,114、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b〉a)||(m=a<b);printf(”%d,%d\n”,k,m);}程序运行后的输出结果是1,05、以下程序的输出结果是1main(){int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}6、以下程序的输出结果是2,1。
#include<stdio.h>main(){int a ,b,d=241;a=d/100%9;b=(-1)&&(—1);printf("%d,%d\n”,a,b);}7、为表示关系x≥y≥z,应使用C语言表达式是(y〈=z)&&(y〉=x)。
8、已知:char c;int a,b,d;c=’w’; a=1; b=2;d=-5; 求下列表达式的值:(1)‘x’+1〈c 1(2)‘Y’!=c-5 1(3)-a—5*b〉=d+1 0(4) 3〉d<—1 0(5)d!=b+2==4 19、有以下程序,阅读后写出程序的运行结果.main(){int m=3,n=4,x;x=—m++;x=x+8/++n;printf(”%d\n",x);} —210、有以下程序,阅读后写出程序的运行结果。
一、【必做题】1.下列哪些变量名是合法的?Ab?1, @abc , lname, _int, $25, private, ab*5, #abc Lname, _int, $25标识符的命名规则必须以字母、下划线(_)或美元符号($)开头余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限。
标识符中不能有空格。
不能使用Java中的关键字或者保留字做为标识符字母大小写敏感注意代码规范起名要有一定含义要让别人读懂2.写出以下表达式的值:(1)int a = 2, b = 3, c;c = a / b * 8;(2)float a = 3.0F, b;b = a / 0;(3)double a = 3.0, k;Int b = 3, c = 2;k = a / c + b / c;(4)int a = 3, b = 6, c;c = (a++) + (++b) + a * 2 + b * 4;(5)int a = 10, b=3, c;c = ((a % b) == 0) ? ++a * 2:++b * 2;(6)int a = 5,b ;b = 5 << 2;(7)int a = 0, b = 12345, c = 0xffffffff, d, e, f;d = a & b;e = a | b;f = b & c;1)0 (int 取整数部分2/3=0)2)Infinity(无穷大,float把0.0当成一个无限小的数据,在Java中对于0作为除数的情况,根据操作数的数据类型,做了不同的处理:对于整数的运算,它将会出现异常;对于浮点型数据的运算,它将得到一个无穷大值或者NaN)3) 2.5 (b/c=1若是两个整数相除,只保留整数部分);4)46(++变量名:变量在参与其他操作前先将自己加1;变量名++:先用原来的值参与其他操作后,再将自己加1)5)8(取余被模数为正数结果都为正,被模数为负数结果都为负)6)20(101 10100a<<b,将a的二进制数据左移b位,右边移空的部分补0a>>b,将a的二进制数据右移b位,如果最高位是0,则左边移空的部分补0,如果最高位是1,则左边移空的部分补1)7)0,12345,12345(&只有参加运算的两位都为1,&与运算的结果才为1,否则为0;|或只有参加运算的两位都为0,|运算的结果才为0,否则为1;)3.写出以下程序的运行结果:public class Test {public static void main (String args[]) {float a = 3.25F, b= -2.5F;int c , d;c = (int) (a * b);d = (byte) 386;System.out.println(“c=c” + c);System.out.println(“d=” +d);}}c=c-8d=-126(容量大的数据类型转换为容量小的数据类型时,需要使用强制类型转换,在强制类型转换过程中,源类型的值可能大于目标类型,因此可能造成精度降低或溢出,使用时需注意)4.编写一个程序,求圆的面积,圆的半径由命令行参数输入。
数据类型运算符与表达式练习题课堂答案运算符与表达式练习题一、单项选择题1.下列数据中属于“字符串常量”的是(A)。
A.”a”B.{ABC}C.abc\\0D.a2.下列数据中属于“字符串常量”的是(B)。
A.ABCB.“ABC”C.abcD.a3.在PC机中,\\n在内存占用的字节数是(A)。
A.1B.2C.3D.44.在PC机中,”a\\某ff”在内存占用的字节数是(C)。
A.5B.6C.3D.45.字符串”\\”ABCD\\””在内存占用的字节数是(C)。
A.4B.6C.7D.86.在C语言中,合法的长整型常数是(AB)。
A.0LB.49627C.0.054838743D.2.1869e107.在C语言中,合法的短整型常数是(D)。
A.OLB.0821C.40000D.0某2a8.下列数据中不属于“字符常量”的是(D)。
A.aB.\\nC.\\tD.“a”9.char型常量在内存中存放的是(A)。
A.ASCII代码值B.BCD代码值C.内码值D.十进制代码值10.inta=4,b=3,c=-2,d=2;逻辑表达式a>0&&b&&c<0&&d>0的值是(A)。
A.1B.0C.-1D.出错11.在以下一组运算符中,优先级最高的运算符是(C)。
A.<=B.=C.%D.&&12.设整型变量i的值为3,则计算表达式i--表达式的值为(B)。
A.0B.3C.2D.表达式出错13.设整型变量i,j=3;则计算表达式i=j++后i,j的值为(A)。
A.3,4B.6,6C.4,6D.6,415.设整型变量i,j值均为3,执行了“j=i++,j++,++i”后,i,j的值是(B)。
A.3,3B.5,4C.4,5D.6,616.izeof(double)的结果值是(A)。
A.8B.4C.2D.出错17.表达式“1(03:2):(101:0)”的值是(B)。
运算符和表达式测试一、选择题(每题2分,共44分)1、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是__________。
A) 6.500000 B) 6 C) 5.500000 D) 6.0000002、若int k=7,x=12;则能使值为3的表达式是___________。
A)x%=(k%=5) B)x%=(k-k%5)C)x%=k-k%5 D)(x%=k)-(k%=5)3、表达式5!=3的值是:_________A) T B) 非零值 C) 0 D) 14、以下程序段a、b的值是:__________main(){int a=12, b=12;--a,++b;}A) 10,10 B) 12,12 C) 11,10 D) 11,135、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值:________A) 0 B) 1 C) 12 D) 66、假定x和y为double型,则表达式x=2,y=x+3/2的值是_________。
A)3.500000 B)3 C)2.000000 D)3.0000007、设a为整型变量, 不能正确表达数学关系: 10<a<15 的C语言表达式是________。
A) 10<a<15 B) a==11 || a==12 || a==13 || a==14C) a>10 && a<15 D) !(a<=10) && !(a>=15)8 、下列运算符中,优先级最高的是________。
A) < B) + C) & D) !=9、为表示y在闭区间【x,z】内,应使用的C语言表达式是________。
A) (x<=y)&&(y<=z) B)(x<=y)OR(y<=z)C) x<=y<=z D)(x<=y)&(y<=z)10、设有以下语句:int x=10; x+=3+x%(-3); 则x的值是________。
精品文档第三章运算符与表达式练习题一、单项选择题1.下列数据中属于“字符串常量”的是()。
A.”a” B. {ABC} C. 'abc\0' D. 'a'2.下列数据中属于“字符串常量”的是()。
A.ABC B. “ABC” C. 'abc' D. 'a'3. 在PC机中,'\n'在内存占用的字节数是()。
A. 1B. 2C. 3D. 44. 在PC机中,”a\xff”在内存占用的字节数是()。
A. 5B. 6C. 3D. 45.字符串”\”ABCD\””在内存占用的字节数是()。
A. 4B. 6C. 7D. 86. 在C语言中,合法的长整型常数是()。
A. 0LB. 49627C. 0.054838743D. 2.1869e107.在C语言中,合法的短整型常数是()。
A. OLB. 0821C. 40000D. 0x2a8.下列数据中不属于“字符常量”的是()。
A. ‘\a'B. ‘\160'C. ‘070'D. 0709.char型常量在内存中存放的是()。
A. ASCII代码值B. BCD代码值C. 内码值D. 十进制代码值10. int a=4,b=3,c=-2,d=2; 逻辑表达式a>0&&b&&c<0&&d>0的值是()。
A. 1B. 0C. -1D. 出错11.在以下一组运算符中,优先级最高的运算符是()。
A. <=B. =C. %D. &&12.设整型变量i的值为3,则计算表达式i---i后表达式的值为()。
A. 0B. 1C. 2D. 表达式出错13.设整型变量i,j=3; 则计算表达式i=j+++j后i,j的值为()。
A. 4,4B. 6,6C. 4,6D. 6,414.设整型变量a,b,c均为2,表达式a+++b++c++的结果是()。
第二章运算符与表达式1.表达式:(int)((double)9/2)- 9%2 的值是A) 0 B) 3 C) 4 D) 5参考答案:B【解析】先将整型数据9强制转换成double型,然后除以2得到的结果与double型保持一致,即为4.5,然后将4.5强制转换成整型数据4,然后计算9%2的值为1,最后计算4-1的值为3,所以选择B选项。2.sizeof( double )是A) 一个整型表达式B) 一个双精度型表达式C) 一个不合法的表达式D) 一种函数调用参考答案:A【解析】sizeof是C语言中的一个操作符(operator),不是函数调用,简单的说其作用就是返回一个对象或者类型所占的内存字节数。所以选择A。3.若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) :(y++)中的条件表达式(x-y) 等价的是()。
A) (x-y<0||x-y>0)B) (x-y<0)C) (x-y>0)D) (x-y==0)参考答案:A【解析】条件表达式:x=表达式1?表达式2:表达式3 的含义是:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x。
若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给x。
在本题中与表达式1:(x-y)等价的是(x-y<0||x-y>0)。
4.若变量已正确定义,在if (W) printf("%d\n" ,k );中,以下不可替代W的是()。
A) a<>b+c B) ch=getchar()C) a==b+c D) a++参考答案:A【解析】选项A)是非法的表达式,C语言中没有<> 运算符。
5.以下选项中不属于C语言程序运算符的是A) sizeof B) <>C) ( )D) &&参考答案:B【解析】C语言中的不等于符号用"!="表示,没有符号"< >"。所以选择B。6.有以下程序:#include <stdio.h>main(){int s,t,A=10;double B=6;s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6.0平台上编译运行,程序运行后的输出结果是()。
1 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为A) int B) float C) double D) 不确定2 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为A) D B) 68 C) 不确定的值D) C3 若有以下定义,则能使值为3的表达式是int k=7,x=12;A) x%=(k%=5) B) x%=(k-k%5)C) x%=k-k%5 D) (x%=k)-(k%=5)4 设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为A) float B) char C) int D) double5 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为A) 0--255 B) 0--32767 C) 0--65535D) 0--21474836476 表达式18/4*sqrt(4.0)/8值的数据类型为A) int B) float C) double D) 不确定7若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是A) (exp==0) B) (exp!=0)C) (exp= =1) D) (exp!=1)8 在C语言中,char型数据在内存中的存储形式是A) 补码B) 反码C) 原码D) ASCII码9 若运行时给变量x输入12,则以下程序的运行结果是void main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A) 0 B) 22 C) 12 D) 1010 sizeof(float)是A) 一个双精度型表达式B) 一个整型表达式C) 一种函数调用D) 一个不合法的表达式11 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A) 2.500000 B) 2.750000 C) 3.500000 D) 0.00000012 若有说明语句:char c='\72';则变量cA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法,c的值不确定13 在C语言中,int、char和short三种类型数据在内存中所占用的字节数A) 由用户自己定义B) 均为2个字节C) 是任意的D) 由所用机器的机器字长决定14 若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum 的值为A) 7 B) 8C) 9 D) 1015 设int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1C) 2 D) -116 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A) n=(n*100+0.5)/100.0 B) m=n*100+0.5,n=m/100.0C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.017 能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10&&a<=0 D) a>=10‖a<=018 下列变量定义中合法的是A) short _a=1-.1e-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;19 下列程序执行后的输出结果是(小数点后只写一位)void main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);}A) 6 6 6.0 6.0B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.020 下列程序的输出结果是void main(){ double d=3.2; int x,y;x=1.2;y=(x+3.8)/5.0;printf("%d \n", d*y);}A) 3 B) 3.2 C) 0D) 3.0721 设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 1222 有如下程序段int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为A) true B) false C) 0 D) 123 设以下变量均为int类型,则值不等于7的表达式是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)24 设有说明语句:char a='\72';则变量aA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法25 以下符合C语言语法的赋值表达式是//没有答案A) d=9+e+f=d+9 B) d=9+e,f=d+9C) d=9+e,e++,d+9 D) d=9+e++=d+726 有如下程序void main(){ int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}运行该程序的输出结果是A) 3 4 B) 4 2 C) 4 3 D) 3 327 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0B) 0.5 C) 1 D) 228 若变量a、i已正确定义,且i已正确赋值,合法的语句是A) a= =1 B) ++i; C) a=a++=5; D) a=int(i);29 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1 B) 2 C) 2.0D) 2.530 若变量已正确定义并赋值,下面符合C语言语法的表达式是A) a:=b+1 B) a=b=c+2C) int 18.5%3 D) a=a+7=c+b31 下列叙述中正确的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型32 有如下函数调用语句//注:此题可以不做func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A) 3B) 4 C) 5 D) 有语法错33 有以下程序void main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出结果是A) 9,2 B) 10,2C) 9,1 D) 10,134 在C语言中,要求运算数必须是整型的运算符是A) / B) ++ C) != D) %35 下列四个选项中,均是C语言关键字的选项是A) auto enum include B) switch typedef continueC) signed union scanf D) if struct type36 下列四组选项中,均不是C语言关键字的选项是A) define IF type B) getc char printfC) include scanf case D) while go pow37 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是A) 7 B) 8C) 6 D) 238 若x,i,j和k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32);A) 4 B) 16 C) 32D) 5239 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字和下划线中任一字符40 有以下程序void main(){ char a,b,c,*d;a='\'; b='\xbc';c='\0xab'; d="\017";printf ("%c%c%c\n",a,b,c,*d);}编译时出现错误,以下叙述中正确的是A) 程序中只有a='\';语句不正确B) b='\xbc';语句不正确C) d="\0127";语句不正确D) a='\';和c='\0xab';语句都不正确41 下面四个选项中,均是合法整型常量的选项是A) 160 -0xffff 011B) -0xcdf 01a 0xe C) -01 986,012 0668 D) -0x48a 2e5 0x42 有以下程序void main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是A) 1,1,2 B) 2,2,1 C) 2,2,2D) 2,2,343 有以下程序段int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,044 若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A) 0X0 B) 0x0 C) 0D) 0XABC45 下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float型变量46 若有以下程序段(n所赋的是八进制数)int m=32767,n=032767;printf("%d,%o\n",m,n);执行后输出结果是A) 32767,32767B) 32767,032767C) 32767,77777 D) 32767,07777747 下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现在下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头48 在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为A) char<int<long int<=float<doubleB) char=int<long int<=float<doubleC) char<int<long int=float=doubleD) char=int=long int<=float<double49 下面四个选项中,均是不正确的八进制数或十六进制数的选项是A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -12350 以下正确的叙述是A) 在C程序中,每行中只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,无论是整数还是实数,都能被准确无误地表示D) 在C程序中,%是只能用于整数运算的运算符51 以下不正确的叙述是A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,APH和aph是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值52 已知各变量的类型如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是A) a+=a-=(b=4)*(a=3)B) a=a*3+2C) x%(-3) D) y=float(i)53 已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是A) x%(-3) B) w+=-2C) k=(a=2,b=3,a+b) D) a+=a-=(b=4)*(a=3)54 下面不正确的字符串常量是A) 'abc'B) "12'12" C) "0" D) " "55 下面四个选项中,均是不合法的用户标识符的选项是A) A P_0 do B) float la0 _AC) b-a goto int D) _123 temp int56 下面四个选项中,均是正确的八进制数或十六进制数的选项是A) -10 0x8f -011 B) 0abc -017 0xcC) 0010 -0x11 0xf1D) 0a12 -0x123 -0xa57 C语言中运算对象必须是整型的运算符是A) %=B) / C) = D) 〈=58 下面正确的字符常量是A) "c" B) '\\'' C) 'W' D) ''59 下面四个选项中,均是不合法的转义字符的选项是//注:此题无正确选项A) '\"' '\\' '\xf' B) '\1011' '\' '\a'C) '\011' '\f' '\}' D) '\abc' '\101' 'xlf'60 下面四个选项中,均是合法转义字符的选项是A) '\'' '\\' '\n'B) '\' '\017' '\"'C) '\018' '\f' 'xab' D) '\\0' '\101' 'xlf'61 下面四个选项中,均是合法的浮点数的选项是A) +1e+1 5e-9.4 03e2 B) -.60 12e-4 -8e5C) 123e 1.2e-.4 +2e-1 D) -e3 .8e-4 5.e-062 下面四个选项中,均是不合法的浮点数的选项是A) 160. 0.12 e3 B) 123 2e4.2 .e5C) -.18 123e4 0.0 D) -e3 .234 1e363 下面四个选项中,均是不合法的整型常量的选项是A) -0f1 -0xffff 0011 B) -0xcdf 017 12,456C) -018 999 5e2 D) -0x48eg -068 03f64 下面四个选项中,均是正确的数值常量或字符常量的选项是A) 0.0 0f 8.9e '&' B) "a" 3.9e-2.5 1e1 '\"'C) '3' 011 0xff00 0a D) +001 0xabcd 2e2 50.65 假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序运行后,m的值是A) 4 B) 3 C) 2 D) 166 以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define67 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=4000L*10L;68 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d);C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);69 以下选项中不属于C语言的类型的是A) signed short imt B) unsigned long intC) unsigned int D) long short70 以下程序段的输出结果是int a=1234;printf("%2d\n",a);A) 12 B) 34 C) 1234 D) 提示出错、无结果71 若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是A) a的值是字符C B) a的值是浮点型C) 不允许字符型和浮点型相加D) a的值是字符‘A’的ASCII值加上1。
1. 以下运算符中优先级最高的是()。
A.&&B.+ C.!= D.?:
2.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是()。
A.a>=10 or a<=0
B.a>=10| a<=0
C.a>=10 && a<=0
D.a>=10||a<=0
3. C语言中运算对象必需是整型的运算符是()。
(A)+ (B)/ (C)% (D)*
4. 已知int i;float f;正确的表达式是()。
A)(int f)%i B) int(f)%i
C) int(f % i) D) (int)f % i
5. 下列程序的输出结果是()。
void main( )
{ int a=7,b=5;
printf("%d\n",b=b%a);
}
(A)0 (B)1 (C)5 (D)不确定值6. 若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;
后,c的值为()。
(A)1.4 (B)1 (C)2.0 (D)2
7. 已知x=4.5,y=2.5,求表达式(x+y)/2+(int)y%(int)x的值()。
A) 3 B) 5 C)
3.5 D) 5.5
8. 已知各变量的类型如下
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是()。
(A)a+=a-=(b=4)*(a=3)(B)a=a*3+2
(C)x%(-3)(D)y=float(i)
9. 已知int a,b;执行语句a=(b=3*2,b*4),a+6;后变量a的值为()。
A) 6 B) 12 C)
24 D)30
10. 若有以下程序
main()
{
int k=2,i=2,m;
m=(k+=i*=k);
printf("%d,%d\n",m,i); }
执行后的输出结果是()。
(A)8,6 (B)8,3 (C)6,4 (D)7,4
11. 设 int i,j=5;执行语句i=(++j)+(++j);后i的值是()。
A) 10 B) 12 C)
13 D) 14
12. 设int x=10,y,z;执行y=z=x++;x=y==z后,变量x的值是()。
A) 0 B) 1 C)
10 D) 11
13. 以下程序段的输出是()。
main()
{ char x =‘A’ ;
x =(x>=‘A’&& x<=‘Z’)?(x+32): x;
printf(“%c”,x);
}
A)A B)a C)Z D)z
14.若x=3,y=2,z=1,求下列表达式的z值为()。
z+=(x<y?x++:y++)
(A)1 (B)2 (C)3 (D)4
15、若变量已正确定义,要将 a和b中的数进行交换,下面不正确的语句组是()。
(A) s=a;a=b;b=s; (B)a=a+b;b=a-b;a=a-b;(C) s=b;b=a;a=s; (D)a=s;s=b;b=a;
16. 以下程序的输出结果是()。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
(A)1 (B)0 (C)非0的数(D)-1
答案:
1、B
2、D
3、C
4、D
5、C
6、B
7、D
8、A
9、C 10、C 11、D 12、B 13、B 14、C 15、D 16、A。