C基础作业2

1、设有说明:char w; int x; double y; 则表达式w*x-y 值的数据类型为( D )。 (智洋)

           A. float   B. char  C. int  D. double

       解析:有double参与运算的表达式,最终结果都转换为doubb

2、若有以下类型说明:( A ) (北京凝思软件) char w;     int x;     float y, z; 则表达式w*x+z-y的结果为__A__类型。

            A.float         B.char          C.int            D.double

       解析:在一个运算中是自动从低字节向高字节类型转变的,

3、假定下列 x 和 y 均为 int 型变量,则不正确的赋值为( BD );(晟安信息)

            A. x+=y++                            B. ++x=++y

            C. x=++y                              D. x++=y++

        解析:D选项中,x++和y++都是变量,电脑无法识别。

4、以下程序运行后输出的结果是___9___。(电工时代)

#include <stdio.h>

int main()

{

int k = 011;

printf("%d\n", k++);

return 0;

}

解析:011是一个八进制数字,转换成十进制为9

5、请正确填写输出结果。(恩易物联2)

int main()

{

int a = 15;

int b = 20;

int c;

a && b = ? (1)

a & b = ? (2)

a || b ? (3)

a | b = ? (4)

a >> 2 = ? (5)

}

(1)____1____(2)____4_____(3)____31____(4)____1____(5)___3_____

6、为了表示“a和b都不等于0”应使用( D )。(山东丁一)

         A. (a!=0) || (b!=0)              B. allb

         C. !((a==0)&&(b==0))        D. a&&b

解析:选项A为或,可以为0,选项B也为或,选项C为a,b都不为零,选项D可以为0。

7、设 a=3,b=4,c=4,则表达式 a+b>c&&b==c&&allb+c&&b==c 的值为( 1  )。(易购软件)

8、已知 a = 13, a << 2的十进制数值为 (63 )。(易购软件)

      解析:13二进制为0000 1101,左移两位为0011 0100,转为十进制为63

9、int x = 2, y = 3, z = 4; 则表达式 x + (y > !z)的值为(3 )。(易购软件)

       解析:!z为0,y>0为1,x+1为3

10、能正确表示a和b同时为正或同时为负的逻辑表达式是:( D ) (宇视科技,紫光云数,新华三,石峰)

                                 A. (a >= 0 ll b >= 0) && (a < 0 ll b < 0)

                                 B. (a>=0 && b>=0) && ( a < 0 && b < 0)

                                 C. (a + b > 0) && (a + b <= 0)

                                 D. a * b > 0

11、int a=1, b=2, c=3, d=4, m=2, n=2; 执行 (m=a>b) && (n=c>d) 后,n=____2____(杭州快越科技)

         解析:a>b为假,m=a>b为为假,后面的不参加运算,所以n=2。

12、语句 printf("%d \n", 12 & 012); 的输出结果是:( B ) (紫光云数,新华三,石峰)

                              A. 12         B. 8         C. 6           D. 012

          解析:12二进制为0000 1100,012二进制为00001010,12&012二进制为0000 1000,转为十进制为8

13、有如下代码char cTwoLength = 153;那么 print("\r\n %d", cTwoLength >> 4)打印的值为 ____-7____ (紫光云数)

提示:char是有符号字符型,取值范围[-128 , +127],153属于最大值越界,结果是-103,然后对-103进行右移4位的计算输出。右移规则:

- 对于无符号整数,左侧补0。

- 对于有符号整数,如果原数是正数,则在左侧补0;如果原数是负数,则在左侧补1。

提示到这里,你试试计算一下吧,一定要理解清楚原理啊

14、以下所列的C语言常量中,错误的是:(B) (华三外协,紫光云数,新华三,石峰)

                  A.0.1f                                                 B. 1.0e0.1

                  C. 'z'                                                   D. '\110'

         解析:0.1f表示float类型,'Z'表示char类型,1.0e0.1指数部分为小数错误。

15、sizeof(float)是(B )。(山东丁一)

                 A. 一个双精度型表法式                       B. 一个整型表达式

                 C. 一个函数调用                                  D. 一个不合法的表达式

         解析:sizeof 是看看计算机分配内存大小的运算符,是占用内存的字节数,为一整型值,                          float是单精度浮点数,sizeof不是函数。

16、一个32位的机器,一个 char 代表的范围是?一个 int 代表的范围是?(广域科技)

          解析:char代表范围:-128,127    int代表范围:-2^31,  2^31-1

17、下面的代码输出是什么,为什么? (信雅达)

void foo(void)

{

unsigned int a = 6;

int b = -20;

(a+b > 6) ? puts(">6") : puts("<=6");

}

   答:输出为>6

   解析:运算中既有有符号数又有无符号数,默认把有符号int转化为无符号数int,所以a+b>6。

18、按位或运算符(|) (深圳元征信息科技) 0x10 | 0x01 = ? 十六进制的结果是多少?

         答:0x10为0001 0000,0x01为0000 0001,0x10 | 0x01=0001 0001,16进制为0x11

19、按位与运算符(&) (深圳元征信息科技) 0x10 & 0x01 = ? 十六进制的结果是多少?

         答:0x10 & 0x01=0000 0000,16进制为0x00

20、关于条件的书写

判断year是不是闰年

if((year%4==0 && year%100!=0) || (year%400==0))

判断num是偶数

if( num%2==0)

判断num是一个三位数

if(num >= 100 && num <= 999 )

判断字符ch是大写字母

if(ch>='A'&&ch<='Z  )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值