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;
}