1. c语言中逻辑表达式和关系表达式的值为真时,到底是用非0的任何数表示还是只能用1来表示
在C语言中,逻辑值“真”用数字1表示,逻辑值“假”是用数字0表示。在c语言中,任何非0数字都能够被系统解释为“逻辑真”。
逻辑运算的值也是有两种分别为真和假,C语言中用整型的1和0来表示。其求值规则如下:
1、与运算 &&
参与运算的两个变量都为真时,结果才为真,否则为假。
例如:5>=5 && 7>5 ,运算结果为真;
2、或运算 ||
参与运算的两个变量只要有一个为真,结果就为真。两个量都为假时,结果为假。
例如:5>=5||5>8,运算结果为真;
3、非运算!
参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。
例如:!(5>8),运算结果为真。
(1)否则取值1用C语言怎么表示扩展阅读
源代码如下:
#include <stdio.h>
int main()
{
//定义小编兜里的钱
double money =12.0
//定义打车回家的费用
double cost =11.5
printf("小编能不能打车回家呢:");
//输出y小编就打车回家了,输出n小编就不能打车回家
printf("%c
",money>=cost?'y':'n' );
return 0;
}
2. c语言中同或、异或怎么表示
1、概念:参加运算的两个对象,按二进制位进行“与”运算,负数按补码形式参加按位与运算。
2、运算规则:0&0=0; 0&1=0;1&0=0;1&1=1;即:两位同时为“1”,结果才为“1”,否则为0【有0则0】
例如:3&5=1,即0000 0011 & 0000 0101 = 0000 0001
3、“与运算”特殊用途:
(1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。
(2)取一个数中指定位。找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。
例:设X=10101110,取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;还可用来取X的2、4、6位。
二、按位或(|)
1、概念:参加运算的两个对象按二进制位进行“或”运算,负数按补码形式参加按位与运算。
2、运算规则:0|0=0;0|1=1;1|0=1;1|1=1;即 :参加运算的两个对象只要有一个为1,其值为1【有1则1】
例如:3|5=7,即 0000 0011 | 0000 0101 = 0000 0111
3、“或运算”特殊作用:
(1)常用来对一个数据的某些位置1。找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。
例:将X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。
三、异或运算(^)
1、概念:参加运算的两个数据,按二进制位进行“异或”运算
2、运算规则:0^0=0;0^1=1;1^0=1;1^1=0;即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0【同0异1】
例如:3^5=6,即0000 0011^0000 0101 = 0000 0110
3、“异或运算”特殊作用:
(1)使特定位翻转 找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。
(2)与0相异或,保留原值 ,X ^ 0000 0000 = 1010 1110。
例:X=10101110,使X低4位翻转,用X ^ 0000 1111 = 1010 0001即可得到。
(3)基于异或运算,不引用新变量交换两个变量的值
a = a ^ b; b = a ^ b; a = a ^ b;
【同样基于加减法的话有:a = a + b; b = a - b; a = a -b;】
四、不同长度的数据进行位运算
如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。
以“与”运算为例说明如下:我们知道在C语言中long型占4个字节,int型占2个字节,如果一个long型数据与一个int型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足,
(1)如果整型数据为正数,左边补16个0。
(2)如果整型数据为负数,左边补16个1。
(3)如果整形数据为无符号数,左边也补16个0。
如:long a=123;int b=1;计算a & b。
如:long a=123;int b=-1;计算a & b。
如:long a=123;unsigned int b=1;计算a & b。
3. c语言中用1表示逻辑值什么,它有两种表示形式:十进制小数形式,什么
c语言1普遍为真值,对于十进制,十六进行,二进制都是标识1值。
4. c语言里 i不等于1或者2,怎么表示
表示形式为 expr1 != expr2。即当expr1和expr2值不相等时,结果为1(真),否则为0(假)。不等于是C语言中的逻辑运算符,其符号为!=, 由两个字符叹号和等于号组成,中间不能有空格。
5. 用C语言编程:编写一函数判别某一数是否为素数,若是,返回值为1;否则,返回值为0
#include<stdio.h>
void main()
{
int a,c;
int isSus(int n);/*函数声明*/
printf("请输入一整数a: ");
scanf("%d",&a);
c=isSus(a);/*函数调用*/
printf("%d",c);
printf(" ");
}
int isSus(int n)/*函数定义*/
{
int j,t;
for(j=2;j<n;j++)
if(n%j==0)
{
t=0;
break;
}
else
t=1;
return t;
}
(5)否则取值1用C语言怎么表示扩展阅读:
做c/c++编程的对#include指令都不会陌生,绝大多数人也都知道如何使用,但我相信仍有人对此是一知半解的,
C:
#include<stdio.h>
C++:
#include<iostream>
表示包含C/C++标准输入输出头文件。包含指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c、.hpp、.cpp、.hxx、.cxx等,甚至.txt、.abc等等都可以。
预处理器发现#include指令后,就会寻找指令后面<>中的文件名,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源代码文件中的#include指令,就像你把被包含文件中的全部内容键入到源文件中的这个位置一样。
include()语句包含并运行指定文件。
以下文档也适用于require()。这两种结构除了在如何处理失败之外完全一样。include()产生一个警告而require()则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用require()。
include()就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。注意在php 4.3.5之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。
寻找包含文件的顺序先是在当前工作目录的相对的include_path下寻找,然后是当前运行脚本所在目录相对的include_path下寻找。例如include_path是.,
当前工作目录是/www/,脚本中要include一个include/a.php并且在该文件中有一句include"b.php",则寻找b.php的顺序先是/www/,然后是/www/include/。如果文件名以../开始,则只在当前工作目录相对的include_path下寻找。
当一个文件被包含时,其中所包含的代码继承了include所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。
例子16-5.基本的include()例子
vars.php<?php$color='green';$fruit='apple';?>test.php<?
phpecho"A$color$fruit";//Ainclude'vars.php';echo"A$color$fruit";//A green apple?>
如果include出现于调用文件中的一个函数里,则被调用的文件中所包含的所有代码将表现得如同它们是在该函数内部定义的一样。所以它将遵循该函数的变量范围。
6. 用C语言编程:编写一函数判别某一数是否为素数,若是,返回值为1;否则,返回值为0
素数就是有1和本身两个因数的数,所以判断一个数n是否是素数,就可从2到n-1依次除n如果能整除则不是素数,否则就是素数。
参考代码:
#include <stdio.h>
int fun(int n){//判断n是否是素数
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
return 1;
}
int main()
{
int n;
scanf("%d",&n);
if(fun(n))
printf("%d是素数\n",n);
else
printf("%d不是素数\n",n);
return 0;
}
/*
运行结果:
9
9不是素数
*/
7. C语言中如何表示数值的范围
在c语言中用到数值范围一般有如下两种情况:
1
逻辑判断中确定某数在某个范围内。
比如判断数c在[a,b]区间内可以写作
(a<=c)
&&
(c
<=
b)
2
使计算结果处于某个范围内。
比如计算时间时,当前时间为n点,经过m小时后是几点,由于时间仅取值在0点到23点,所以对数值范围需要做约束。对于此可以用模除(%)来限定。
(n+m)%24
其它关于数值范围限定的问题,都可以从这两种情况中延伸获得。
比如下面两个例题就是两种情况的应用。
例一,输入起始天的星期数(1-7),及天数n,计算经过n天后是星期几。
分析,这个是第二种的典型应用,不过数据规模为1到7,与之前说的0起始情况略有不同,可以通过转换达到目的,代码如下:
#include
int
main()
{
int
s,n;
scanf("%d%d",&s,&n);
s
--;//将s-1;这样用0-6代表星期一到日
s
+=n;
s%=7;//通过模除限定结果
s++;//转换回1-7的表示方法
printf("%d\n",
s);//输出结果
return
0;
}
例二,依照下面的公式计算,直到结果小于0或者大于100为止,f(0)由外部输入。
如果f(n)为奇数,f(n+1)=2f(n)
否则f(n+1)
=
f(n)/2-10
输出计算结果。
题目很清晰,直接输入并循环计算,直到符合退出条件为止。
对于条件的判断就是第一种情况的简单应用了。
代码如下:
#include
int
main()
{
int
r;
scanf("%d",&r);
while(r
>=
0
&&
r
<=
100)//对结果进行范围判断
{
if(r
&
1)
r
*=
2;
//奇数的情况。
else
r=r/2-10;//偶数的情况。
}
printf("%d\n",
r);
return
0;
}