① 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);