① 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
說明後關閉的,刷新了磁碟數據