① c语言各种符号的意思
&: 在C语言中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。|: 是位运算符,表示“按位或”。
资料扩展
1、符号 & 和 | 这两个运算符都是二进制的按位操作符。
&: 二进制“与”(都为1时,结果是1,否则是0。),比如:1010 & 1011 = 1010,1010 & 1000 = 1000。
|: 二进制“或”(有1时,结果是1,都是0时,结果为0。),比如:1010 | 1011 = 1011,1010 | 1000 = 1010。
2、位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。
例如:
表达式10&15表示(1010 & 1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1。
表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。
3、C语言中的符号分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。
4、位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
② C语言中说的内存是指内存条么内存条中分为ram区和rom区么
内存通常指的就是内存条,C语言貌似没有说过内存这东西,再说很多运行环境是没有内存的,只有rom和ram。。。。。。内存值的就是内存条,是ram随机存储器,随机存储器指寻址到字节,掉电数据会丢失的存储器。。。读写速度通常高于rom,但掉电不保存的。。。 但手机上通常说的内存卡实际是指TF卡,他并不是ram,而是闪存属于ROM。。。。
计算机上,存非易失的数据用的是我们说的硬盘,光盘,磁盘,可以看成ROM但不能说是,因为不是半导体。。。,U盘是,他是闪存。。。。 ram为随机存储器,掉电数据消失,但读写速度快,随机存取(地址细分到字节),所以可以作为CPU运行时直接使用的存储器,CPU当前运行的所有数据和程序都在内存里进行。。。
③ C语言问题:C语言中没有逻辑量,在判断一个量是否为真时以( ) 代表“真”,以 ( )代表“假
C语言没有专门bool(布尔)类型数据,
在C语言中用0表示假,其余非0整型数据表示真。
例如 int i=7,j=0;
if(i) printf("%d",i);
if(j) prinftf("%d",j);
结果只会显示7。
④ 在C语言中,可以把整型数以二进制形势存放到文件中的函数是
C
因为只有C,D是把数据存放到文件中的函数
C是存int型
D是存char型
⑤ c语言while(!TF1) TF1=0 什么意思
这个语句没有实际的作用吧
while(!TF1)
//当TF1等于0的时候,!TF1为真,循环条件成立
TF1=0
//将TF1的值设置为0,上面看到当TF1等于0的时候,循环条件成立,所以这里再设置为0,没有意义
⑥ c语言scantf(f什么意思
简要说明:
⑦ C语言中说的内存是指内存条么内存条中分为ram区和rom区么
内存通常指的就是内存条,C语言貌似没有说过内存这东西,再说很多运行环境是没有内存的,只有rom和ram。。。。。。内存值的就是内存条,是ram随机存储器,随机存储器指寻址到字节,掉电数据会丢失的存储器。。。读写速度通常高于rom,但掉电不保存的。。。
但手机上通常说的内存卡实际是指TF卡,他并不是ram,而是闪存属于ROM。
⑧ 怎么使用C语言完成图片中要求的编程(尽量使用一维数组)
按照你的要求,都用一维数组。不过学生信息建议使用结构体来定义。
题目要求函数参数用到数组和指针,而数组传参本来就可用数组和指针两种方式。
下面是代码:
#include <stdio.h>
#define MJ 5//课程最大数量
#define MT 30//学生最大人数
#define FM 100//满分
#define PS 60//及格
int init(int ss[],int sid[],int *p_slen);//通过初始化数组。成功返回总分,失败返回0
int contFStudents(int ss[],int sid[],int slen);//统计不及格人数并打印名单,返回人数
int contAAvg(int ss[],int sid[],int slen,float avg);//avg表示平均分数,如未知传-1 返回人数
int contMax(int ss[],int slen,int *sid);//统计最高分及学号
int main()
{
int ss[MT],sid[MT],sum;
int slen=0;// 实际输入的学生人数
int fn,an;
sum=init(ss,sid,&slen);
fn=contFStudents(ss,sid,slen);
an=contAAvg(ss,sid,slen,(sum*1.0)/slen);
printf("不及格占比%.0f%% ",(fn*1.0)/slen*100);
printf("高于等于平均分占比%.0f%% ",(an*1.0)/slen*100);
contMax(ss,slen,sid);
return 0;
}
int init(int ss[],int sid[],int *p_slen)
{
int i=0,n,sum=0;
if(!p_slen) return 0;
*p_slen=0;
printf("该班级所有学生某课程成绩(人数不超过%d): ",MT);
for(i=0;i<MT;i++)sid[i]=1000+i;//学号没有特殊要求,直接用数字代替
i=0;
while(*p_slen<=MT)
{
printf("请输入学号%d的成绩:",sid[i]),scanf("%d",&n);
if(n>FM)
{
printf("%d输入无效,不能大于满分上限%d ",n,FM);
continue;
}
if(n<0) break;
ss[i++]=n;
sum+=n;
}
*p_slen=i;
return sum;
}
int contFStudents(int ss[],int sid[],int slen)
{
int i,cnt=0;
for(i=0;i<slen;i++)
if(ss[i]<PS)cnt++,printf("学号%d,分数:%d,不及格! ",sid[i],ss[i]);
printf("不及格人数共:%d人 ",cnt);
return cnt;
}
int contAAvg(int ss[],int sid[],int slen,float avg)
{
int i,cnt=0,sum=0;
if(avg==-1)
{
for(i=0;i<slen;i++) sum+=ss[i];
avg=(sum*1.0)/slen;
}
for(i=0,printf("平均分(%f)及平均分以上的学生有: ",avg);i<slen;i++)
if(ss[i]>=avg)cnt++,printf("学号%d,分数:%d ",sid[i],ss[i]);
printf("平均分及平均分以上人数共:%d人 ",cnt);
return cnt;
}
int contMax(int ss[],int slen,int *sid)
{
int i,max=ss[0];
if(!sid) return 0;
for(i=0;i<slen;i++)
if(ss[i]>max) max=ss[i];
for(i=0,printf("最高分(%d)的学生学号有: ",max);i<slen;i++)
if(ss[i]==max) printf("%d ",sid[i]);
return 1;
}
⑨ c语言fopen怎么用
fopen一般与buf搭配使用,通过与fgets函数配合使用,将文件中的字符串读到buf中,这样达到读出文件内容的目的代码如下:
FILE tf=NULL;//定义一个文件指着,用于判断fopen是否打开成功,并初始化为空;
char buf[1024]={0};//定义一个长度为1024的数组,用于存放文件的内容;
tf=fopen("c:example.txt","r");//打开c盘指定文件,并以只读的形式打开,避免破坏原文件,将fopen的返回值放在指针tf中,若打开成功,则返回成功的指针,打开不成功则返回空;
if(tf != NULL)//判断是否成功,不等于NULL则表示成功;
{
if(fgets(buf,1024,tf) != NULL)//将指向c盘文件的指针的内容赋给buf,长度为1024,并判断是否获取成功;
{
printf("buf=%s ",buf);//将成功获取的字符串显示在屏幕上;
}
}
fclose(tf);//将已打开的文件关闭;
(9)tffvm在c语言中是什么意思扩展阅读:
fopen的工作原理
FILE *fp;
fp=fopen("filename.txt","w");
首先检测filename.txt是否存在,如果不存在则在磁盘 创建该文件,然后在内存开辟区域(应该是缓冲区)准备写该文件
调用fclose时,将内存中的内容写入到磁盘中去
测试(filename.txt不存在):
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2;
fp1=fopen("filename.txt","w");
if(fp1==NULL)
{
printf("fp1 open failed!/n");
}
else
{
printf("fp1 open success!/n");
}
fp2=fopen("filename.txt","r");
if(fp2==NULL)
{
printf("fp2 open failed!/n");
}
else
{
printf("fp2 open success!/n");
}
fclose(fp1);
fclose(fp2);
return 0;
}
输出:
fp1 open success!
fp2 open success!
说明文件操作不是互斥的,而且以写方式打开文件,如果文件不存在,先在磁盘创建该文件
加入写入语句:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2;
fp1=fopen("filename.txt","w");
if(fp1==NULL)
{
printf("fp1 open failed!/n");
}
else
{
printf("fp1 open success!/n");
fputs("abcdef",fp1);
}
fp2=fopen("filename.txt","w");
if(fp2==NULL)
{
printf("fp2 open failed!/n");
}
else
{
printf("fp2 open success!/n");
fputs("ABC/n",fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
打开filename.txt文件:
ABC
f
说明后关闭的,刷新了磁盘数据