① c語言的數值型數據在機器中的存放格式有哪兩種表示方法
存放格式只有一種,
即二進制
可以表示為二進制
八進制
十進制和十六進制.
從編碼角度來說
,
存儲的都是補碼.
所以
不存在兩種表示方法
② 關於C語言數值的表示
*a = a[0] 的。這是因為 數組名 a表示數組的第一個地址。也就是 a[0] 的地址。前面加一個 * 表示取值。相當於取 a[0] 的值。a[0] = a[0] 的,所以 *a = a[0].
&a[0] 是取 a[0] 的地址。 所以 a = &a[0] 的。
a[8]={0,1,2,3,4,5,6,7}不能寫成a[8]="01234567"
(ps:a 若是char 型的在某些編譯器上也許等同。a為 int 型的就木有a[8]="01234567"這種寫法。)
你是用指針指向,但是指針也得有類型吧。不明白空間指什麼意思。
③ C語言中 char a[5]正確嗎如果正確那數組里的五個數是不存在還是0
char a[5] 這樣是錯誤的;沒有分號;char a[5]; 這樣是定義一個數組;類型是char類型, 有5個元素, 5個元素的值是隨機值;也就是原本在內存中的值; 如果要說是整型還是字元型的隨機值, 那麼這個取決於你怎麼去解析, 如果%c那麼就是字元型, 如果%f那麼就是浮點型, 如果%d那麼就是整型; 值還是那個值,不同的解析方式不同的值而已;
④ C語言中用結構體類型作為自定義函數的返回值時,如果用戶輸入的數據在結構體中不存在,則出現NULL,此時會
#include<stdio.h>
typedef struct{ int id; char name[20]; } stu;
stu info[100];
stu getStuByid(int id /*,stu info[]*/){
int inc=0;
static stu infoNULL = {-1,"Not Found"};//添加一個做為空的返回值
stu* p;
p = info;
for(inc=0;id!=info[inc].id && inc<sizeof(info);inc++);//for(inc=0;id!=info[inc].id;inc++);
if(inc==sizeof(info))//(p==NULL)
return infoNULL; //請問此處改怎麼返回?//改的可不止此處哦
else
return info[inc];
}
void main(){
//在使用info前應當有個賦值的過程吧
printf("id\\>");
scanf("%d",&id);
getStuByid(id /*,info*/);
printf("%d\t%s\n",getStuByid(id,info).id,getStuByid(id,info).name);
}
⑤ c語言數值常量表示方法問題
C語言中的數值常量可以簡單的分為如下兩種整型常量和浮點數常量:
一. 整型常量 如6,27,-299
在 C 語言中,整型常量分為十進制整型常量、八進制整型常量和十六進制整型常量三種表示形式。
(1)十進制整型常量
這種常量只能出現 0~9 的數字,且可帶正、負號。例如:
0 1 364 28 -34
第 2 章 基本數據類型 •29•
(2)八進制整型常量
這種常量是以數字 0 開頭的八進制數字串。其中數字為 0~7。例如:
0111(十進制 73) 011(十進制 9) 0123(十進制 83)
(3)十六進制整型常量
這種常量是以 0x或 0X開頭的十六進制數字串。其中每個數字可以是 0~9、a~f或 A~
F 中的數字或英文字母。例如:
0x11(十進制 17) 0Xa5(十進制 165) 0x5a(十進制 90)
二. 浮點型常量 如5.43,-2.3,5.67f
實型常量有兩種表示形式:一種是十進制小數形式,另一種是指數形式。
(1)十進制小數形式
十進制小數形式為包含一個小數點的十進制數字串。
此類實型常量小數點前或後可以沒有數字,但不能同時沒有數字。例如:
3.14159, .89, 56.0, 78., -3.0, 0.0
(2)指數形式
指數形式的格式由兩部分組成:十進制小數形式或十進制整型常量部分和指數部分。
其中指數部分是在 e 或 E(相當於數學中冪底數 10)後跟整數階碼(即可帶符號的整數指
數)。例如:
1e15 //表示數值 1×10
15
0.35e+1 //表示數值 0.35×10
1
78e-1 //表示數值 78×10
-1
下面是不正確的實型常量。
e15 //缺少十進制小數部分
0.35e //缺少階碼
78e-1.2 //不是整數階碼
⑥ c語言"判斷數值為空"的問題
C語言中不存在空值的情況,所謂的NULL是人為(或某些編譯器)定義的一個常量,常見的是 #define NULL (0)的情況,而這個0隻是賦給一個指針,即讓指針初始化為內存的0地址,我們稱其為空地址(或指針值為空),但實際上,C語言中所有的變數都是保存到內存中的,其值就是其所在內存單元中保存的一個數,而內存單元中只要上電,就一定會存在數據(隨機數,或特定的數據)。我們不能稱值為0的變數為空,因為0也是一個數據。
⑦ C語言如果文件如果不存在,則新建再寫入數據,存在則使用怎麼編
看看這個mode參數的詳細解釋,若不存在就新建的話,用"w"就行了
⑧ 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 <stdio.h>
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 <stdio.h>
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;
}
⑨ C語言 判斷一個數字是否在一個指定的區間范圍內求解答。。。。
#include<iostream>
#include<stdio.h>
usingnamespacestd;
intmain()
{
inta,b,c,d;
intn;
printf("請輸入第一個區間:");
scanf("%d%d",&a,&b);
printf("請輸入第二個區間:");
scanf("%d%d",&c,&d);
printf("請輸入需要判斷數字的個數:");
scanf("%d",&n);
intx[n];
for(inti=0;i<n;i++)
{
scanf("%d",&x[i]);
}
for(inti=0;i<n;i++)
{
if(b>=c)
{
//if((x[i]>=a&&x[i]<c)||(x[i]>b&&x[i]<=d))
//printf("只存在於1個區間 ");
if(x[i]>=a&&x[i]<c)printf("11 ");
elseif(x[i]>b&&x[i]<=d)printf("12 ");
elseif((x[i]>=c)&&(x[i]<=b))
printf("212 ");
else
printf("0");
}
else
{
if(x[i]>=a&&x[i]<=b)printf("11 ");
elseif(x[i]>=c&&x[i]<=d)printf("21");
else
printf("不存在於任何區間");
}
}
return0;
}
(9)c語言表示數值不存在擴展閱讀
JS判斷一個數字在某一個區間內
varrange=[350,450,550,650,850,1000,1100,1250,1500];
varreward=[30,40,50,100,200,240,300,400];
functionbinarySearch(arr,findVal,leftIndex,rightIndex){
if(leftIndex>rightIndex){
varfind=leftIndex-1
returnfind;
}
varmidIndex=Math.floor((leftIndex+rightIndex)/2);
varmidVal=arr[midIndex];
if(midVal>findVal){
returnbinarySearch(arr,findVal,leftIndex,midIndex-1);
}elseif(midVal<findVal){
returnbinarySearch(arr,findVal,midIndex+1,rightIndex);
}else{
varfind=midIndex+1;
returnfind;
}
}
functionward(a){
if(a<0){
return'no';
}
if(a>7){
a=7;
}
returnreward[a];
}
var$a=binarySearch(range,800,0,9);
var$ward=ward($a);