1、字母,数字,下划线,且数字不能打头,亦不能为关键字。A中,-sub 不合法。B 中4d不合法。D 中void 为关键字。 3、 【分析】 4、C 【分析】转义字符中,第一个”输出“,第二输出,第三个b退格,把前一个去掉了,第四个输出,第五个t跳格,第六个”输出”,第七个n输出换行。5、C 【分析】本题将10进制17,分别按8、16进制输出。8的进制21=2*8+1*1=17(10, 16制11=1*16+1*1=17(10) 1.2.2 填空题 1、主 【分析】一个C源程序中至少包括一个主函数,其他函数没有限制。2、双引号。【分析】两种写法都是允许的,使用尖括号表示在包含文件目录中去查找(包含
2、目录是由用户在设置环境时设置的),而不在源文件目录去查找.使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。用户编程时可根据自己文件所在的目录来选择某一种命令形式。3、261,b1 【分析】将10进制的177,按8进制和16进制两种形式输出。4、a3 b7 x8.5 y71.82 c1=A c2=a 【分析】scanf函数中,格式说明符以外的原样输入。5、printf函数中,格式说明符以外的原样输出。%m.nf控制输出结果中共m位,小数3 占n位。1.2.3 编程题 1. #include stdio.hvoid main() float qianmi,yingli;
3、 /定义变量 scanf(qianmi=%f,&qianmi); /输入数据 printf(yingli=%f,qianmi*1.60934); /计算并输出数据 2. #include char x;请输出一个小写小母n);%cx);输出字母的大写型式为:,x+32);3、#includefloat c,f;请输入一个摄氏温度:) ;%fc);f=32*c+9.0/5*c;4 华氏温度为:%5.2fn,f);4. #includeb为0,所以左边的表达式为0,所以右边的+n将不被计算,所以n的值不变仍为2。10、B 【分析】241的二进制形式为11110001,15的二进制形式为000111
4、11,进行按位&运算后为00010001;a的二进制形式为01100001,z的二进制形式为01111010,进行按位|运算后为011111011。00010001与011111011都为非0元素,所以再进行&时结果一定为1。11、A 【分析】b2表示向右移动两位,相当于除以两个2结果为8/2=4;同理,b1相当于除一个2,结果为6,4/6为0。12、B 【分析】3的二进制数为00000011。10的二进制为00001010,a双目,算术运算关系运算逻辑运算。14、B 【分析】19的二制数为00010011,23的二进制数为00010100,两者进行按位与后结果为00010000十进制16,即
5、为16进制的13。15、C 【分析】0x39的二进制形式为00111001,0xf的二进制形式为00001111,两者进行异或运算,异或结算的规则,参加运算的两个二进制位同号,则结果为假,异号则为真。结果为:00110110即为16进制的36。16、A 6 【分析】进行按位或运算,要a的低8位为1,则要求b的低8位全为1,高8位要求不变,则要求高8位全为0,即b应该为:0000000011111111,即为8进制的0377。17、A 【分析】由题得12不成立,所以xy?+x:+y表达式的值为+y,则此时Y的值为3,而+x没有被执行,所以x的仍值为1,而Z的值与表达式的值相同所以选A。18、C
6、【分析】赋值运算符的作和是将一个表达式或一个变量,常量赋给另一个变量,赋值号的左边只能是变量,不能是常量,所以A、B、D不对。19、B 【分析】逗号运算符是级别最纸的运算符,逗号表达式也是值是所有表达式中最右边的值。即a+b的值,由题从左向右算起,b+后b为6,则a+b为8.20、D 【分析】在不同种数据类型进行计算时的转换规则是:数据类型低的全部转换成运算过程中级别最高的。在int、long、unsigned和char四个类型中,long的类型级别最高,所以结果的类型为long. 2.2.2 填空题 1. -17.5 【分析】“/”要求两操作数如果一个为实数结果都为实数,如果都为整数结果也为
7、整数,所以a/4.0=2.5,a/4=2.所以原式=2.5-2*10=-17.5。2. 5,32 【分析】x+表示将x的值拿来用,然后再+;而y*=x+等价于y=y*x,即y=8*4=32,此计算结束之后x 的值才增加1,变为5。3. -40 【分析】赋值运算符的结合方向是从右向左的,所以先计算a*a=25,所以a+=a-=a*a等价于a+=(a-=25),而此时a仍为5.接下来计算a-=25得a=2-25=-20;则a+=(a-=25)等价于a+=-20,所以a=a-20=-20-20=-40。4. 16 【分析】x+=-x%-y等价于x+=(-x)%(-y),-放在变量的前面时,要先对变量
8、进行变化,然后再用,所以原式即为x+=14%3,而14%3=2,即x+=2,而此时x=14,所以x=x+2=16。5. x1&x10 |x逻辑运算可知,要先算a+b=7,接下来计算7c即75成立为1,然后计算b=c,而4=5不成立,所以值为0,即最终表达式等价于1&0,所以结果为0.7. 0 【分析】略,同第6题。8. -17 【分析】条件运算符优先级别高于赋值运算符,所以先算(ab)?a:b的值,由于1325成立,所以(ab的值 为a 的值,并将a的值赋给y,此时,原式等价于(13-17)?y:c,而13-17不成立,所以表达式的值为C的值,即为-17。9. 18, 3,3 【分析】对逗号表
9、达式的值,即为从左向右最后一个表达式的值 ,本题中表达式的值即为6*a的值即18。10. 3.5 【分析】算术运算符中同一级别的运算符按从左向右的顺序进行,所以先算a%43=8,再计算8*(int)(x+y)=8*9=72,再计算72%3=0,再计算0/5=0.最后计算与X相加,所以最终结果为3.5。2.2.3 编程题 1. 编写一个程序,要求输入圆的半径r,计算并输出该圆的周长和面积。#define PI 3.14 #include float r, S=0, L=0;input r:n, &r);S= PI *r*r; /计算圆面积 L=2* PI *r; /计算圆周长 S=%f,L=%f
10、n, S,L);2. 假设美元与人民币的汇率是1美元兑换6.4742元人民币,欧元与人民币的汇率是1欧元兑换9.2338元人民币,编程实现输入人民币的钱数,输出能兑换的美元及欧元金额。# include float renminbi,meiyuan,ouyuan;8 input renminbi:renminbi);meiyuan = renminbi *6.4742; /计算美元金额 ouyuan = renminbi *9.2338; /计算欧元金额 meiyuan =%f ouyuan =%fn,meiyuan, ouyuan);3. 编写一个程序,从键盘上输入3个字符后,按各字符的AS
11、CII码从小到大顺序输出这些字符。/这道题关键是把输入3个字符后的回车过滤掉,不然回车就会成为下一组的第一个字符。有两种方法:/第一种:#include b) tmp=a;a=b;b=tmp; c) a=c;c=tmp;if(b tmp=b;b=c;%c %c %cnreturn 0;/第二种: char a,b,c,tmp;9 while(scanf(%c%c%c%*ca,&b,&c)!=EOF) /用%*c(空字符,不存储字符的字符)滤掉回车 if(ab) tmp=a,a=b,b=tmp; /逗号表达式,简洁 c) tmp=a,a=c,c=tmp;c) tmp=b,b=c,c=tmp;输入
12、数据有多组,每组占一行,有三个字符组成,之间无空格。例如输入 qwe asd zxc 输出 e q w a d s c x z 4. 编程实现输入一个无符号整数(unsigned类型),分别输出它的低四位和高四位。 (待查) main() unsigned u=0xffff;/举例 unsigned char l,h;/scanf(%uu);l=u&0xff; /得到低8位. h=u8; /得到高8位 u=%u,l=%u,h=%u,u,l,h);5. 根据当前银行的利率表,编程实现从键盘输入存款金额money,存期year和年利率rate,计算银行存款的本息sum(保留1位小数)。int ye
13、ar;float money,rate,sum;请输出金额,利率,存款时间n%f,%f,%dmoney,&rate,&year);sum=money*year*rate;存款的本息sum=%.1f n,sum);10 3.2 习题解答 3.2.1 选择题 1D 【分析】在此要注意,else总是于之前面最近的且没有用过的if进行配对,所以在本题中,else与第二个if 配对,且整体做为第一个if语句的语句体。又因,1020不成立,所以第一个if 根本不被执行,所以m的值没有任何变化。2. A 【分析】else总是于之前面最近的且没有用过的if进行配对,所以在本题中, if (ab) t=s+t;
14、else if (a=b) t=5;else t=2*s;相当于t=s+t;(ab) t=5 (a=b); t=2*s(ab);3. C 【分析】while(E)的含义是当E为真。为真即为不等于0,而A、B、D 都是表示非零。4. D 【分析】i=0,+i 后,i 为1,i%2=1,所以执行j+=i;即j=1,i=1小于5所以还执行+i,此时 i为2,则i%2等于0,跳出本次判断。同理当i 等于4 ,6时同样跳出判断,而当i为3,5时,都要执行j+=i。5. A 【分析】while (1)进行判断时,条件永远成立,所以执行循环体。输出一个“*”后,i+,i变为1,又13成立,所以结束循环。6. D 【分析】当i=1时,执行s+=i 后s=1;执行循环体中i+后,i为2,而后还要执行一次for结构中的i+,则i为3.3小于6成立,则再执行s+=i; i+;则s为4,
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2