C语言错题集1:运算符和表达式

Posted 歌咏^0^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言错题集1:运算符和表达式相关的知识,希望对你有一定的参考价值。

一、单项选择题

1、下列表达式中,正确的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

答案:A,B错误,赋值号左边不能有明确值;D是逗号表达式

2、以下程序语句运行结果为_____;

     int a;

     printf("a = %d\\n",a);

A、编译错误  B、1024  C、NULL  D、不正确值

答案:D

二、填空题

1、C语言中的逻辑值“真”是用____表示的,逻辑值“假”是用_____表示的。

答案:非零,零

2、C语言中有符号数据类型(signed)和无符号数据类型(unsigned)的本质区别为____;

答案:signed:最高位为符号位

           unsigned:都是数据位

3、设float x=2.5,y=4.7;int a =7;  ,  表达式x+a%3*(int)(x+y)%2/4的值为_____;

答案:表达式==2.5+7%3*(int)(2.5+4.7)%2/4==2.5+1*7%2/4==2.5+0==2.5,,强制转换符的优先级大于算数运算符

===========================================

4、在C语言中,如下程序输出结果为

char a=250;

unsigned char d;

char f;

d = c + 249;

f = c + 249;

printf("d = %d\\n",d);____________

printf("d = %u\\n",d);____________

printf("f = %d\\n",f);_____________

printf("f = %u\\n",f);_____________

答案:c:2^8 - 250 = 6 ---> c == -6

           无符号d== -6 + 249 == 243

           有符号f=243 ----> 2^8 - 243 ==3 ----> f = -13

=============================================

5、以下程序输出结果为______

#include

int main()

{

       int a;

       a = (int)(double)(3/2)+0.5+(int)1.99*2;

       printf("%d\\n",a);

}

答案:表达式==1+0.5+1*2==3.5,printf要求整形输出,打印出来的结果为3,,强制转换符的优先级大于算数运算符

===============================================

6、有以下程序(说明:字符0的ASCII码值为48)

#include <stdio.h>

int main()

{

     char c1,c2;

     scanf("%d",&c1);

     c2=c1+9;

     printf("%c%c\\n",c1,c2);

}

    若程序运行时从键盘输入48<回车>,责输出结果为_____

答案:printf()函数在屏幕中打印出来的结果为:0 9,屏幕上字符不显示引号 

以上是关于C语言错题集1:运算符和表达式的主要内容,如果未能解决你的问题,请参考以下文章

C语言错题集2:分支与循环

BETA阶段冲刺DAY4

C语言关于表达式求值

C语言逗号表达式

C语言运算符和表达式题目练习

C语言运算符和表达式题目练习