九月二日.

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

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

 数据进行运算 数据类型由低字节转换成高字节  double类型字节最高

2.若有以下类型说明:char w;     int x;     float y, z;  则表达式w*x+z-y的结果为__A__类型。

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

 数据进行运算 数据类型由低字节转换成高字节  本题中float类型字节最高

 3.假定下列 x 和 y 均为 int 型变量,则不正确的赋值为(D );

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

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

 x++只能作为右值,++x既可以做左值也可以作为右值

4.以下程序运行后输出的结果是___9___。

#include <stdio.h>

int main()

{

int k = 011;

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

    return 0;

}

011是八进制数  8^1*1+8*0*1=9

5.请正确填写输出结果。

int main()

{

    int a = 15;      0000  1111

    int b = 20;      0001  0100

    int c;

    a && b = ? (1)

    a & b = ? (2)

    a || b ? (3)

    a | b = ? (4)

    a >> 2 = ? (5)

}

(1)___1___   (2)_0000  0100  (3)____1____  (4)  0001  1111  (5)_0000  0011__

6.为了表示“a和b都不等于0”应使用( D)。

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

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

 A表示a或b不等于0  B表示a或b  C表示非(a=0且b=0)

7.设 a=3,b=4,c=4,则表达式 a+b>c&&b==c&&allb+c&&b==c 的值为(  1  ) 

 7>4真   4==4真   a||b+c不符合  b==c真

8. 已知 a = 13, a << 2的十进制数值为 ( 52   )

13=0000  1101  左移两位  0011 0100=52

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)

a>=0或b>=0与a<0或b<0

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

a>=0与b>=0且a<0与b<0不可能同时出现

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

a+b>0 a+b<=0不能表示ab同时为正或负

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____

 2=1>2先算1>2 =0  2=0假  &&左侧为假 右侧不再进行计算  所以n仍=2

12.语句 printf("%d \n", 12 & 012); 的输出结果是:(B

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

十进制12=0000 1100

八进制012=10=0000 1010

按位与结果为 0000 1000=8

13.有如下代码char cTwoLength = 153;那么 print("\r\n %d", cTwoLength >> 4)打印的值为 _-7_______  

153越界 -103

-103=1110 0111

取反 1001 1000

补码 1001  1001

右移四位 补码 1111 1001  反码 1111 1000 原码 1000 0111=-7

14.以下所列的C语言常量中,错误的是:B
  1. 0.1f   B. 1.0e0.1

C. 'z' D. '\110'

e表示科学计数法后面数字必须为整数

 15.sizeof(float)是( B)。

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

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

16. 一个32位的机器,一个 char 代表的范围是?一个 int 代表的范围是?

 char  无符号 0-255

          有符号 -128-127

int     无符号   0-2^32

         有符号  -2^31-2^31-1

17.下面的代码输出是什么,为什么?     >6

void foo(void)

{

    unsigned int a = 6;

    int b = -20;

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

}

- 20=1001 0100 原码

1110 1011反码

1110 1100 补码=236

6+236>6为真所以输出>6

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

0x10=0001 0000   

0x01=0000 0001

0001 0001

0x01

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

0x10=0001 0000   

0x01=0000 0001

0000 0000 

0x00

20.关于条件的书写

判断year是不是闰年

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

判断num是偶数

if(num%2==0 )

判断num是一个三位数

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

判断字符ch是大写字母

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

判断字符ch是偶数数字字符

if( ch >= '0' && ch <= '9' && (ch - '0') % 2 == 0 )

 

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值