精华内容
下载资源
问答
  • 满意答案hkjb63932015.10.01采纳率:51%等级:9已帮助:1267人第一题、单项选择题(每题1分,5道题共5分)1、设x和y均为int型变量,则以下语句...的结果是:A、1003、以下合法的赋值语句是:A、x=y=100;4、已说明in...

    满意答案

    00e27ab806e4881f8254fe7ae8741834.png

    hkjb6393

    2015.10.01

    00e27ab806e4881f8254fe7ae8741834.png

    采纳率:51%    等级:9

    已帮助:1267人

    第一题、单项选择题(每题1分,5道题共5分)

    1、设x和y均为int型变量,则以下语句:x=x+y; y=x-y; x=x-y; 的功能是:

    D、交换x和y中的值

    2、已说明int a=256,执行语句printf(”%x” ,a);的结果是:

    A、100

    3、以下合法的赋值语句是:

    A、x=y=100;

    4、已说明int a=256,执行语句printf(”%x” ,a);的结果是()

    A、100

    5、函数putchar可以向终端输出一个( )。

    D、字符

    第二题、多项选择题(每题2分,5道题共10分)

    1、以下合法的表达式是:

    A、x=y=200

    B、5+(x=10)

    D、y+x==10

    2、x、y、z被定义为int 型常量,若从键盘给 x、y、z输入数据,不正确的输入语句是:

    A、input x、y、z;

    C、scanf(” %d%d%d”,x, y, z);

    D、read (” %d%d%d”,&x,&y,&z);

    3、不能正确表示条件x≥y≥z的C语言表达式是:

    A、(x>=y)&(y>=z)

    C、(x>=y).AND.(y>=z)

    D、(x>=y>=z)

    4、已知“int a, b; scanf ( "%d%d", &a, &b );”。若为a和b输入值,可以作为输入分隔符的是( )。

    B、空格

    C、回车

    D、Tab键

    5、下列属于C语言标准库函数的为()。

    A、sin()

    B、sqrt()

    C、log10()

    E、pow()

    F、isalpha()

    第三题、判断题(每题1分,5道题共5分)

    1、表达式18/4*sqrt(4.0)/8值的数据类型为double。

    正确

    2、逻辑关系“a≥10或a≤0”正确表示的C语言表达式是:a>=10 or a<=0 。

    错误

    3、a=b=58是合法的C语言赋值表达式。

    正确

    4、C语言表达式值的类型可以根据环境来确定。

    错误

    5、若有int x=5;,则(float)x就把x转换为float类型了。

    错误

    00分享举报

    展开全文
  • C语言运算表达式整理

    2018-12-29 18:25:16
    短路规则:在整个逻辑表达式中,同级运算符从左到右运算,当前一个分表达式的运算结果确定整个表达式的值时,再向右的表达式统统免于运算,而以当前这个分表达式的值作为整个表达式的值。 ...

    C语言的运算规则是按照运算符的优先级进行的,所以我们首先看一下C的运算优先级别
    在这里插入图片描述

    总结 最简单的优先级就是

    1. 算数运算符>关系运算符>逻辑运算符>赋值运算符

    然后我们还要了解一个短路规则(特性)

    短路规则:在整个逻辑表达式中,同级运算符从左到右运算,当前一个分表达式的运算结果能确定整个表达式的值时,再向右的表达式统统免于运算,而以当前这个分表达式的值作为整个表达式的值。

    1. (表达式1)&&(表达式2) 如果表达式1为假,则表达式2不会进行运算,即表达式2“被短路”
      (表达式1)||(表达式2)如果表达式1为真,则表达式2不会进行运算,即表达式2“被短路”

    1.i++和++i的区别;

    i++相当于i=i+1;i++的意思是先将i进行赋值,然后在自行加1;
    ++i也是相当于i=i+1;而++i的意思是先i自加1在进行赋值;
    参考代码
    int a=1,b,c,z=1;
    b=a++; //a先将1赋值给b,b=1,;然后a在自增1;此行运行结束a=2
    c=++z; //z先自增1为2然后在赋值给c,c=2;
    printf(“表达式的值为:%d\n%d\n”,b,c); //输出结果为1和2;
    i–和--i同理;

    2.逻辑运算表达式

    在C语言中true为1,false为0,翻译过来就是真为1,假为0;
    &&两真为真,一假为假; ||一真为真,一假一真也为真;
    (表达式1)&&(表达式2) 如果表达式1为假, 则整个表达式为false=0,如果两个都为真返回1;
    (表达式1)||(表达式2) 如果表达式1为真,则表达式2不会进行运算直接返回1,如果两个都为假返回0。 //此处有用到短路特性
    例:
    a=3>2 || 6 //3>2成立直接返回1; 3>2也是返回1的,用不到6
    a=3>2 && 0 //3>2 就返回1了这时候1与0一真一假返回0;
    a=!n; //n等于任何数a都等于0;

    3.复合运算表达式

    a+=3等价于a=a+3;这种就是最简单的复合运算表达式;()
    复杂一些的有a=1;a=a+=a*=5 等价于 a=a=(a+(a=a*5))最后等于10;它的计算规则是从右往左进行的。不管有多少层的计算都是相同。

    4.逗号表达式

    逗号表达式:表达式1,表达式2
    逗号表达式的求解过程是从左到右依次进行的,但是逗号表达式会将最后一个表达式的值作为整个表达式的答案。
    例:
    b=(a=35,45,a+2) //a=15 ,表达式b=17;求解中先计算第一个表达式a=3*5=15,然后计算第二个,在计算第三个15+2为17。括号很重要如果没有括号b会为15;

    5.条件运算表达式

    条件运算符: ? : 它是唯一的一个三目运算符
    表达式1?表达式2:表达式3 它的意思是当表达式1成立就执行表达式2,如果不成立就执行表达式3;
    例如:
    3>2 ? a:b //返回a
    3>5 ? a:b //返回b

    6.左移与右移计算

    左移相当于十进制2,右移相当于/2;
    让二进制左移N位,高位丢弃,低位补0,得到的 新值 = 原值
    2^N,
    作用:实现二倍乘除运算(右移几位相当于除于二的几次方。左移几位,相当于乘上二的几次方。)
    问题:int是有符号类型,左移可能会把符号左移出去,发生溢出

    展开全文
  • 学习目标 ...程序运行时,输入合法的算术表达式,便可输出相应的计算结果表达式求值 输入表达式,将操作符分为三类 确定相邻操作运算符的优先次序。其中3+4+5 运算符θ1和θ2都为加号,则θ1=θ2

    学习目标

    1. 掌握栈的定义及实现
    2. 掌握利用栈求解算术表达式的方法

    实验内容

    利用栈来实现算术表达式求值的算法,算法中调用几个函数要给出其实现过程:

    1. 函数IN(c)判断c是否为运算符
    2. 函数Precede(t1,t2)判断运算符t1 t2优先级
    3. 函数Operate(a, theta, b)对a和b进行二元运算:theta
      程序运行时,输入合法的算术表达式,便可输出相应的计算结果。

    表达式求值

    输入表达式,将操作符分为三类
    在这里插入图片描述

    确定相邻操作运算符的优先次序。其中3+4+5 运算符θ1和θ2都为加号,则θ1=θ2,优先级相同。
    在这里插入图片描述

    算法步骤

    设定两个栈:
    OPND----操作数或运算结果
    OPTR-----运算符

    1. 初始化OPTR栈和OPND栈,将表达式起始符"#"压入OPTR栈
    2. 扫描表达式,读入第一个字符ch,如果表达式没有扫描完毕至"#“或OPTR的栈顶元素不为”#“时,则循环执行以下操作
      若是小于,则ch压入OPTR栈,读入下一个字符ch;
      若是大于,则弹出OPTR栈顶的运算符,从OPND栈弹出两个数,进行相应运算,结果压入OPND栈;
      若是等于,则OPTR的栈顶元素是”(",ch是")",这时弹出OPTR栈顶的"(",相当于括号匹配成功,然后读入下一个字符ch。
    3. OPND栈顶元素即为表达式求值结果,返回此元素。
      在这里插入图片描述

    在这里插入图片描述

    实验提示

    1. 将栈的定义和实现单独保存再头文件"stack.h"中,然后再表达式求值的源程序sy2.cpp中包含此头文件
    展开全文
  • &和||的计算方式先算左边运算对象如果可确定结果右边运算对象将不计算 逻辑表达式计算结果都是整型的 0 或 1 否定的优先级同其他一元运算符& 优先级高于||低于关系运算符 例 x != 0.0 & y/x > 1.0 求值时不会出现除0...
  • 后缀表达式的求值(c语言

    万次阅读 2018-06-29 19:50:59
    后缀表达式的处理过程如下:扫描后缀表达式,凡遇操作数则将之压进堆栈,遇运算符则从堆栈中弹出两个操作数进行该运算,将运算结果压栈,然后继续扫描,直到后缀表达式被扫描完毕为止,此时栈底元素即为该后缀表...

    题目描述

    为了便于处理表达式,常常将普通表达式(称为中缀表示)转换为后缀{运算符在后,如X/Y写为XY/表达式。在这样的表示中可以不用括号即可确定求值的顺序,如:(P+Q)*(RS) → PQ+RS*。后缀表达式的处理过程如下:扫描后缀表达式,凡遇操作数则将之压进堆栈,遇运算符则从堆栈中弹出两个操作数进行该运算,将运算结果压栈,然后继续扫描,直到后缀表达式被扫描完毕为止,此时栈底元素即为该后缀表达式的值。

    输入

    输入一行表示后缀表达式,数与数之间一定有空格隔开(可能不只一个空格),最后输入@表示输入结束。

    数据保证每一步的计算结果均为不超过100000的整数。

    输出

    输出一个整数,表示该表达式的值.

    样例输入

    14  3 20 5 / *8 - + @

    样例输出

    18


    #include<stdio.h>

    typedef struct STRACK                                              //定义结构体
    {
        double a[100];
        int top;
    } STRACK;

    int main()
    {
        double totle=0,e=0;
        char s[100];
        int i;

        STRACK L;
        L.top=-1;
        gets(s);
        for(i=0; s[i]!='@'; i++)
        {
            if(s[i]<='9'&&s[i]>='0')
            {
                L.top++;
                int temp=s[i]-'0';
                int k=i+1;
                while(s[k]!='@')                                          //利用while循环得到由多位由字符组成的数值
                {
                    if(s[k]<='9'&&s[k]>='0')
                    {
                        temp=10*temp+(s[k]-'0');
                        i++;
                        k++;
                    }
                    else break;
                }
                L.a[L.top]=temp;
            }
            else  if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/')        //遇到运算符进行计算
            {
                switch(s[i])
                {
                case '+':
                    e=L.a[L.top-1]+L.a[L.top];
                    break;
                case '-':
                    e=L.a[L.top-1]-L.a[L.top];
                    break;
                case '*':
                    e=L.a[L.top-1]*L.a[L.top];
                    break;
                case '/':
                    e=L.a[L.top-1]/L.a[L.top];
                    break;
                }
                L.a[L.top-1]=e;                                          //往前一位存储
                L.a[L.top]=0;
                L.top--;
            }
        }
        printf("%.0lf",L.a[L.top]);                                    //输出最后结果
        return 0;
    }

    展开全文
  • 1.&&和||中的短路原则。...当左边的表达式已经确定了整个表达式结果,那个右边的表达式不会被执行,即如下程序片段输出及执行结果为: int a=0,b=1; if(1||a++); if(0&&b++); printf("a=%d\nb=%d\n",a,b);
  • C语言总结

    2016-10-20 11:03:17
    C语言总结自增运算符a++(表达式的值不变,a自身加+1)记忆技巧: int b = a++(b最近的直接结合)逗号表达式(a+1,b+2,a+b)前面表达式的参与运算,但是结果为最后一个表达式结果.短路问题1||y++||z++ ->直接前面确定这个...
  • C语言运算符的优先级

    2018-08-28 18:18:33
    运算符的优先级确定表达式中运算符的执行顺序。运算符包括逻辑运算符,比较运算符和算术运算符。表达式中有多个运算符时,如何确定哪个运算符先执行?优先级顺序对表达式结果有很大影响。 ...
  • 首先确定数据类型,作为计算器来讲的话data1和data2自然就要设置为双精度的double型,然后运算符op设置为字符型,然后运算结果的话设置为浮点型或整型输出的话在遇到其他数据时容易结果显示很复杂,所以设置为了实数的...
  • C语言的各类运算概述

    2021-06-17 19:40:08
    C语言的各类运算概述 C语言的一个很有用的特性就是支持按位布尔运算。...如果对第一个参数求值就能确定表达式结果,那么逻辑运算符就不会对第二个参数求值。 移位运算:x<<k,x向左移动左位,丢弃..
  • 0.4.0.2表达式的求值 将表达式根据运算符的优先级和结合性用括号...c语言没有明确规定子表达式求值的顺序(除了含有逻辑与、逻辑或、条件、逗号运算符的子表达式中)。请看下例: (a+b)*(c-d); 我们无法确定这两...
  • C语言循环、数组和函数

    千次阅读 2019-05-11 00:14:17
    C语言循环、数组和函数 循环 while循环 #include <stdio.h> int main() { int i=10;...while类似for循环的精简版本,for负责循环次数明确的情况,while循环负责只循环条件而不确定... 表达式结果为真执行循环...
  • 四则运算——c语言

    千次阅读 2020-05-10 13:37:04
    有个文件大小不确定,每行内容都是一个四则运算表达式,还没有算出结果,写一个程序,自动算出其结果后修改文件。 生成 设置随机数种,生成随机数。练习使用fputc函数。 #include<stdio.h> #include<...
  • 1 2 选择结构语句是指程序在运行中能依据运行时某些变量或表达式的值确定哪些程序段被执行以及哪些程序段不被执行 3 5.1 关系运算符和关系表达式 4 例如 c>a+b 等效于 c(a+b) a>b!=c 等效于 (a>b!=c a==b等效于 a==...
  • C语言中i++和++i的区别

    2019-12-13 16:00:25
    C语言中i++和++i的区别 (1)前缀++(++i): 变量类型可以是基本类型也可以是指=指针类型。++i使变量i的值增加"1",并以i的新值作为表达式"++i"运算的结果...在确定表达式结果以后,i的值再增加1 例如: i,j为整...
  • C语言编程要点

    2017-09-18 00:10:37
    7.11. 用指针作if语句的条件表达式意味著什么? 116 7.12. 两个指针可以相加吗?为什么? 117 7.13. 怎样使用指向函数的指针? 117 7.14. 怎样用指向函数的指针作函数的参数? 117 7.15. 数组的大小可以在程序运行时定义...
  • C语言期末测试题及其答案 一选择题7分每小题0.5分 1.C语言源程序的基本单位是 A过程B 函数C 子程序D 标识符 2.下列程序的输出结果是 main( ) { int a=7,b=5; printf%d\n,b=b/a; } A 5 B 1 C 0 D不确定值 3.假设变量a...
  • 6套C语言试卷

    2012-11-13 15:47:13
    A、D B、68 C、不确定的值 D、C 7.设在说明:char w;int x;float y;double z;,则表达式w*x+z-y值的数据类型为( )。 A、float B、char C、int D、double 8.设以下变量均为int类型,则值不等于7的表达式...
  • c语言逻辑运算与位运算区别

    千次阅读 2013-12-09 09:28:08
    &&与||和&与|重要的区别是,如果第一个参数求值能确定表达式结果,那么逻辑运算符就不会对第二个参数求值。 深入理解计算机系统第二章P36页,c语言中的逻辑运算答案 #include int main() {  in
  • 第三章: C语言程序设计初步 C语言程序设计 本课介绍C语言程序设计的基本方法和基本的程序语句。 从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构。 这三种基本结构可以组成...
  • C语言--整形升级&...  由运算符、变量和常量组成的具有一个确定结果(值)的一个式子。   -->算术表达式:如 x + 5 * y   -->关系表达式:如 x >= 5, x == 8   -->逻辑...
  • C语言知识点记录

    2019-02-24 16:54:00
    3,详细设计的任务是为软件结构图的每一个模块确定实现算法和局部数据结构。 4,数据操纵语言:负责数据的操纵,包括查询及增,删,改查。 5,运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致。 ...
  • C语言考试题及答案(一)

    千次阅读 2020-09-30 22:58:15
    2.下列程序的输出结果是( c)。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是(b )。 A 7 B 8 C 9 D 2 4.设
  • 因为整个关系表达式结果已经能够确定为假(0); 2. || 运算时左边的表达式如果为真(非0),那么右边的表达式也就不再运行。因为整个关系表达式结果已经确定为真(1); 1.3 条件分支
  • 参考资料: 说说C语言运算符的“优先级”与...(2)后自增(后自减)从语义效果上可以理解为在做完自增(自减)之后,返回自增(自减)之前的值作为整个表达式结果值; (3)准确来讲,优先级和结合性确定了表达
  • 什么是未定义行为 简单地说,未定义行为是指...(简单而言, “多个不确定副作用” 是指在同一个表达式中使用导致同一对象修改两次或修改以后又被引用的自增, 自减和赋值操作符的任何组合。这是一个粗略的定义) ...
  • C语言制作多功能简易计算器

    千次阅读 2020-07-02 11:58:04
    (1)能识别用户输入的运算(加+、减-、乘*、除/)表达式并计算,如:用户输入189+219,按回车确定后可计算该加法运算的结果并打印输出,其它运算以此类推; (2)能检测表达式中的错误或不符合运算法则的情况并提示。如,在...
  • C语言的期末考试题

    千次阅读 2008-12-06 12:27:00
    2003C语言试题2 一 选择题(7分,每小题0.5分)1.C语言源程序的基本单位是( )。A 过程 B 函数 C 子程序 D 标识符2.下列程序的输出结果是( )。main( ){ int a=7,b=5; printf("%d/n",b=b/a);}A 5 B 1 C 0 D...
  • C语言期末考试题及答案(二)

    千次阅读 2020-10-01 23:31:58
    2.下列程序的输出结果是( )。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是( )。 A 7 B 8 C 9 D 2 4.设a为

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 126
精华内容 50
关键字:

c语言表达式确定结果

c语言 订阅