2.11 运算符

1、选择题

1.1若有以下程序

main()

{   char  a='1',b='2';

    printf("%c,",b++);

    printf("%d\n",b-a);   }

程序运行后的输出结果是   C 

A)3,2     B)50,2

C)2,2     D)2,50

解析:b++是先赋值后自加,所以打印出来的是2,自加之后b=3,b-a的值是3-1=2,所以打印出2,所以结果是2,2

1.2有以下程序

main()

{

   int  a,b,d=25;

   a=d/10%9;  

   b=a&&(-1);  

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

}

程序运行后的输出结果是   B  

A)6,1    B)2,1

C)6,0    D)2,0

解析:首先,a=d/10%9=25/10%9=2%9=2,b=a&&(-1),为逻辑运算,只判断真假,a=2为真,-1为真,逻辑与运算之后的结果为真,所以b=1,所以打印的结果是2,1

1.3若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a<b?a:c<d?c:d的值   A  

   A)1  B)2  c)3  D)4

解析:三目运算符(条件表达式?表达式1:表达式2;)的条件表达式成立时执行表达式1,否则执行表达式2,a<b?a:c<d?c:d为一个三目运算符作为另一个三目运算符的表达式2,所以先看a<b?:1<4成立,所以执行表达式1:a,就是1。

1.4、若给定条件表达式(m)?(a++): (a--),则其中表达式m   C  

A. 和(m= =0)等价 B. 和(m= =1)等价  

C. 和(m!=0)等价  D. 和(m!=1)等价

解析:在(m)?(a++): (a--),三目运算里条件表达式(m)?是判断m是否为真,等价于m不为0,即m!=0

1.5、以下选项中,当x为大于1的奇数时,值为0的表达式  D  

A. x%2==1      B. x/2      C. x%2!=0       D. x%2==0

解析:奇数对2取余的值一定为1,所以x%2==1为真,即表达式的值为1,x/2一定>=1,不为0,所以x/2也为真,即表达式的值也是1,同理,x%2!=0也成立,为真,即表达式的值也是1,x%2==0为假,即表达式的值为0

1.6 有如下程序段,输出结果为  C  

int i = 1;

int j = i++;

if( (i>j++) || (i++ == j) i+=j;

printf(%d\n , i );

A.   2      B.  3      C. 4       D. 5

解析:j=i++,被赋值为i的当前值1,之后i自增1为2,接下来是一个if语句,其中包含两个条件,用逻辑或||连接。C 语言中的逻辑或运算符具有短路特性,即如果第一个条件为真,则不会检查第二个条件。第一个条件是(i>j++)。由于此时i的值是 2,j的值是 1,所以i>j为真。但是,这里还有一个j++操作,它会在比较之后执行,使j自增 1 变为 2。不过,由于第一个条件已经为真,if语句中的逻辑或操作不会检查第二个条件(i++ == j)。所以i=2,j=2,然后执行i+=j,i=i+j=2+2=4

1.7 int a=12; 表达式a+=a-=a*=a的值是  C  

 A 12      B 144      C 0      D 132

解析:从右往左执行:a*=a=a*a=12*12=144,即此时a=144,然后a-=144=a-144=144-144=0,此时a=0,然后a+=0=0+0=0,此时a=0

  1.8若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a>b?a:c<d?c:d的值   B   

A)1  B)2  c)3  D)4

解析:首先a>b?:1>4不成立,所以执行表达式2(c<d?c:d):c<d?:3<2不成立,执行这个里面的表达式2(d),即为2

1.9 有以下程序

main()

{    int  i=1,j=2,k=3;

     if(i++==1&&(++j==3||k++==3))

        printf("%d  %d  %d\n",i,j,k);

}

程序运行后的输出结果是   D  

A)1  2  3    B)2  3  4

C)2  2  3    D)2  3  3

解析:i++==1&&(++j==3||k++==3)先判断i++==1成立,之后i自加为2,(++j==3||k++==3)先判断++j==3成立,j=3所以后面的k++==3就不用判断了,所以k还是3,即输出2,3,3

2、填空题

2.1设a=12,n=5,则计算了表达式a%=(n%=2)后,a的值为  0  ,计算了表达式a+=a-=a*=a后,a的值为  0  

解析:a%=(n%=2):n初始值为 5,n%2 的结果是 1(5 除以 2 的余数是 1),因此n=1。即a%=1,=a%1=0任何数除以 1 的余数都是 0(除了 0 本身)

a+=a-=a*=a:从右往左执行:a*=a=a*a=12*12=144,即此时a=144,然后a-=144=a-144=144-144=0,此时a=0,然后a+=0=0+0=0,此时a=0

2.2 设x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4的值为  2.75 

解析:x+a%3*(int)(x+y)%2/4=x+1*(int)(x+y)%2/4=x+1*11%2/4=x+1/4=2.5+0.25=2.75

2.3 设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y的值为  3.5 

解析:(float)(a+b)/2+(int)x%(int)y=(2+3)/2+3%2=2+1=3.5

2.4以下程序运行后的输出结果是  10  20  0  

main()

{

   int  a,b,c

   a=10;b=20;c=(a%b<1)||(a/b>1);   

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

}

解析:c=(a%b<1)||(a/b>1):首先a%b=10%20=10>1,所以表达式a%b<1为假,a/b=10/20=0,所以a/b>1也为假,在逻辑运算或的规律是有真则真,全假才假,所以表达式(a%b<1)||(a/b>1)为假,所以c=0,即打印出来的是10 20 0

2.5以下程序运行时若从键盘输入:B33<回车>.输出结果是   

#include "stdio.h"

main()

{

   char a;

        int   b;

   a=getchar();   

 scanf("%d",&b);   

   a = a - 'A' + '0';

   b = b * 2;

   printf("%c  %c\n",a,b);

}

解析:getchar()函数读取第一个字符 'B',并将其赋值给a。scanf("%d",&b);读取接下来的整数 "33",并将其赋值给b。a的值从 'B' 转换为对应的数字。转换的逻辑是a = a - 'A' + '0';。因为 'B' 的 ASCII 值是 66,'A' 的 ASCII 值是 65,所以'B'-'A'的结果是 1。再加上 '0'(其 ASCII 值是 48),最终a的值变为 1 + 48 = 49,即字符 '1'。a的值从 33 乘以 2,得到 66。

2.6设a、b、c均为int型变量且a=7.5, b=2,c=3.6, 则表达式a>b  && c>a  || a<b  &&  !c>b的值是 0  

解析:a=7.5, b=2,c=3.6,a>b 是7>2,为真。c>a 是3>7,为假,a<b 是7<2,为假。!c>b是!3>2,首先!3是0,然后0>2是假。a>b  && c>a结果是假。a<b  &&  !c>b是 结果也是假,因此,表达式a>b  && c>a  || a<b  &&  !c>b的值是假。

2.7设a、b、c均为int型变量且a=6, b=4,c=2, 则表达式!(a-b)+c-1  && b+c/2的值是

解析:!(a-b)+c-1  && b+c/2=!(6-4)+2-1&&4+2/2=!2+2-1&&4+1=0+2-1&&5=1&&5=1

2.8设a、b均为int型变量且a=2, b=4, 则表达式!(x=a) || (y=b)  && 0的值是  0  

解析:!(x=a)|| (y=b)  && 0=!(x=2)||(y=4)&&0=0||1&&0=1&&0=0

2.9设a、b、c均为int型变量且a=1, b=4,c=3, 则表达式!(a<b)  || !c && 1的值是  0  

解析:!(a<b)  || !c && 1=!(1<4)||!3&&1=!1||!3&&1=0||0&&1=0&&1=0

2.10 若有条件“2<x<3或x<-10”,其对应的C语言表达式是

解析:2<x<3为x>2&&x<3,或x<-10是||x<-10,即表达式为:x>2&&x<3||x<-10

3、填空题

3.1、 编写程序,从标准输入读取字符,并把它们写到标准的输出中。除了大写字母变换成小写字母外,所有字符的输出形式与它们的输入形式相同。

代码:

#include <iostream>
using namespace std;
int main()
{char str;//定义一个字符串存储输入的数据while(cin >> str)//从终端获取输入的字符串{// 如果字符是大写字母,则转换为小写字母if (str>='A'&&str<='Z'){str=str-'A'+'a';}// 输出字符cout << str;}return 0;
}

结果:

4、分析题

4.1、  思考一下,有两个整形变量ab,如何在不使用第3个变量的情况下,实现ab变量值的交换

   方法一: 异或

#include <iostream>
using namespace std;
int main()
{int a=10,b=20;a=a^b;b=a^b;a=a^b;cout << a << " " << b << endl;return 0;
}

结果:

方法二:加减

#include <iostream>
using namespace std;
int main()
{int a=10,b=20;a=a+b;b=a-b;a=a-b;cout << a << " " << b << endl;return 0;
}

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/678462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学建模】【2024年】【第40届】【MCM/ICM】【C题 网球运动中的“动量”】【解题思路】

一、题目 &#xff08;一&#xff09; 赛题原文 2024 MCM Problem C: Momentum in Tennis In the 2023 Wimbledon Gentlemen’s final, 20-year-old Spanish rising star Carlos Alcaraz defeated 36-year-old Novak Djokovic. The loss was Djokovic’s first at Wimbledon…

Java多线程:生产者-消费者模型

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、阻塞队列1、标准库阻塞队列2、手动实现阻塞队列 二、生产者-消费者模型1、使用标准库实现2、手动阻塞队列实现 一、阻塞队列…

ARP欺骗攻击利用之抓取https协议的用户名与密码

1.首先安装sslstrip 命令执行&#xff1a;apt-get install sslstrip 2.启动arp欺骗 arpspoof -i ech0 -t 192.168.159.148 192.168.159.2 arpspoof -i ech0(网卡) -t 目标机ip 本地局域网关 3.命令行输入: vim /etc/ettercap/etter.conf进入配置文件 找到下红框的内容&a…

【Linux】学习-深入了解文件的读与写

深入了解语言级别(C语言)文件操作的"读"与"写" 在学习前&#xff0c;我们先要知道在Linux下的一个原则&#xff1a;一切皆是文件 如何理解呢&#xff1f;举个外设的例子&#xff0c;比如键盘和显示器&#xff0c;这两个外设也可以其实本质上也是文件&…

Qt Windows和Android使用MuPDF预览PDF文件

文章目录 1. Windows MuPDF编译2. Android MuPDF编译3. 引用 MuPDF 库4. 解析本地PDF文件 1. Windows MuPDF编译 使用如下命令将MuPDF的源码克隆到本地 git clone --recursive git://git.ghostscript.com/mupdf.git直接用VS&#xff0c;打开 mupdf/platform/win32/mupdf.sln …

docker 部署 mongodb 集群【建议收藏】

一、简洁搭建mognodb副本集 环境说明 我都是在云服务器上搭建的&#xff0c;CentOS7&#xff0c;Docker环境&#xff0c;版本忘记了。我就直接在同一台服务器上搭建三个mongodb即可。 1、基本信息如下 服务器地址 www.it307.top 副本集名称 rs 容器节点及端口映射 ​ m0…

数据结构——6.1 图的基本概念

第六章 图 6.1 图的基本概念 概念 图的概念&#xff1a;G由点集V和边集E构成&#xff0c;记为G(V,E)&#xff0c;边集可以为空&#xff0c;但是点集不能为空 注意&#xff1a;线性表可以是空表&#xff0c;树可以是空树&#xff0c;但图不可以是空&#xff0c;即V一定是非空集…

leetcode:63.不同路径二

dp数组含义&#xff1a;由初始位置到最终位置路径个数 递推公式&#xff1a;如果没有障碍再进行递推公式 初始化&#xff1a;1.若起始位置和终止位置有障碍路径个数为0 2.dp[i][0] 1和dp[0][j] 1的for循环条件都需要加上一个and dp[i][0] 0和and dp[0][j] 0. 3.遍历顺序…

案例:三台主机实现 级联复制

介绍&#xff1a;级联复制架构 级联复制架构 是一种特殊的主从结构&#xff0c;之前聊到的几种主从结构都只有两层&#xff0c;但级联复制架构中会有三层&#xff0c;关系如下&#xff1a; 也就是在级联复制架构中&#xff0c;存在两层从库&#xff0c;这实际上属于一主多从架…

Deepin基本环境查看(九)【被封印的创世神】

文章目录 - 相关文章目录1、概述2、Deepin中的创世神和管理员1&#xff09;创世神root2&#xff09;root被封印原因3&#xff09;其他的神灵【管理员】 3、神殿管理【su与sudo】1&#xff09;su&#xff08;Switch User&#xff09;2&#xff09;sudo&#xff08;Superuser Do&…

Open CASCADE学习|环形弹簧建模

目录 Draw Test Harness&#xff1a; C&#xff1a; 环形弹簧&#xff0c;也称为弓簧&#xff0c;是由拉伸弹簧和连接弹簧构成的。在结构上&#xff0c;环形弹簧通常包括端环、外环和内环&#xff0c;其主要参数包括弹簧的内径、外径和自由高度。环形弹簧的一个显著特点是&am…

计算机毕业设计SSM基于的冷链食品物流信息管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; vue mybatis Maven mysql5.7或8.0等等组成&#xff0c;B…

网络原理(一)

&#x1f495;"Echo"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;网络原理(一) 一. 应用层 应用层是和程序员联系最密切的一层,对于应用层来说,程序员可以自定义应用层协议,应用层的协议一般要约定好以下两部分内容: 根据需求,明确要传输哪些信…

[算法学习]

矩阵乘法 只有当左矩阵列数等于右矩阵行数&#xff0c;才能相乘N*M的矩阵和M*K的矩阵做乘法后矩阵大小为N*k矩阵乘法规则&#xff1a;第一个矩阵A的第 i 行与第二个矩阵的第 j 列的各M个元素对应相乘再相加得到新矩阵C[i][j]的值 整除 同余 同余的性质 线性运算&#xff0c;…

Android:Cordova,JavaScript操作设备功能

Cordova学习 Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。 Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。 Cordova是PhoneGap贡献给Apache后的开源项目,是从…

最适合新手的SpringBoot+SSM项目《苍穹外卖》实战—(一)项目概述

黑马程序员最新Java项目实战《苍穹外卖》&#xff0c;最适合新手的SpringBootSSM的企业级Java项目实战。 项目简介 《苍穹外卖》项目的定位是一款为餐饮企业&#xff08;餐厅、饭店&#xff09;定制的软件产品。该项目是一个在线外卖订购系统&#xff0c;顾客可以通过网站或者…

Java安全 CC链1分析(Lazymap类)

Java安全 CC链1分析 前言CC链分析CC链1核心LazyMap类AnnotationInvocationHandler类 完整exp&#xff1a; 前言 在看这篇文章前&#xff0c;可以看下我的上一篇文章&#xff0c;了解下cc链1的核心与环境配置 Java安全 CC链1分析 前面我们已经讲过了CC链1的核心ChainedTransf…

TestNG基础教程

TestNG基础教程 一、常用断言二、执行顺序三、依赖测试四、参数化测试1、通过dataProvider实现2、通过xml配置&#xff08;这里是直接跑xml&#xff09; 五、testng.xml常用配置方式1、分组维度控制2、类维度配置3、包维度配置 六、TestNG并发测试1、通过注解来实现2、通过xml来…

Makefile编译原理 make 中的路径搜索_2

一.make中的路径搜索 VPATH变量和vpath关键字同时指定搜索路径。 实验1 VPATH 和 vpath 同时指定搜索路径 mhrubuntu:~/work/makefile1/18$ tree . ├── inc │ └── func.h ├── main.c ├── makefile ├── src1 │ └── func.c └── src2 └── func.c mak…

【正在更新】从零开始认识语音识别:DNN-HMM混合系统语音识别(ASR)原理

摘要 | Abstract TO-BE-FILLED 1.前言 | Introduction 近期想深入了解语音识别(ASR)中隐马尔可夫模型(HMM)和深度神经网络-隐马尔可夫(DNN-HMM)混合模型&#xff0c;但是尽管网络上有许多关于DNN-HMM的介绍&#xff0c;如李宏毅教授的《深度学习人类语言处理》[1]&#xff0c;…