① c語言計算聲音的頻率和振幅
頻率可能用定時器的計數功能去做,振幅應該是用AD轉換去做,
不過對硬體要求較高
② 用C語言求分段函數值
#include<stdio.h>
intmain()
{
doublex,y;
scanf("%lf",&x);//輸入x的值
if(x<0)y=x*x-1;//如果x<0
elseif(x<1)y=x*x;//注意elseif已經包含x>=0,因此不需要再寫x>=0
elsey=x*x+1;//注意else已經包含x>=1,不需要再寫x>=1
printf("%lf",y);//輸出y的值
return0;
}
③ c語言求函數
樓上幾位的說法完全是站在編程的角度,其實這個題,考察的是數學和計算機編程的結合。
解這種幾何題,要先判斷曲線的開口,然後根據開口判斷頂點坐標或者是對稱軸。
你們看到這句提示了嗎:「提示:如果三個點分別是(1,-3)、(2,-3)、(3,-5),你會用數學方法解決這個問題嗎?把你的方法「教」給計算機。」
你們覺得可能正常解題像2、3樓那樣解?一道題算出來考試就打鈴了,動動腦子哦看清題目啊!
無奈我知道思路但是把高中數學(或者初中)那些題目解法記不清了。
LZ hi我,告訴我在試卷上的解題步驟,然後我編程序。
④ C語言:求函數值 急啊。
#include <stdio.h>
int G(int x)
{
if(x < 2 || x%2!=0)
return x;
return G(x/2)+1;
}
int F(int x)
{
if(x < 2)
return x;
if(x>= 2 && x%2==0)
return G(x/2)*2;
if(x>= 2 && x%2!=0)
return G( (x-1)/2 );
}
void main()
{
int x;
puts("Input:");
scanf("%d", &x);
printf("Output:\n%d\n", F(x));
}
⑤ 求C語言所有的簡單函數!
庫函數並不是C語言的一部分,它是由編譯程序根據一般用戶的需要編制並提供用戶使用的一組程序。每一種C編譯系統都提供了一批庫函數,不同的編譯系統所提供的庫函數的數目和函數名以及函數功能是不完全相同的。ANSIC標准提出了一批建議提供的標准庫函數。它包括了目前多數C編譯系統所提供的庫函數,但也有一些是某些C編譯系統未曾實現的。考慮到通用性,本書列出Turbo C 2.0版提供的部分常用庫函數。
由於Turbo C庫函數的種類和數目很多(例如:還有屏幕和圖形函數、時間日期函數、與本系統有關的函數等,每一類函數又包括各種功能的函數),限於篇幅,本附錄不能全部介紹,只從教學需要的角度列出最基本的。讀者在編制c程序時可能要用到更多的函數,請查閱有關的Turbo C庫函數手冊。
(1)數學函數
使用數學函數時,應該在源文件中使用命令:
#include″math.h″
函數名 函數與形參類型 功 能 返回值
acos double acos(x)
double x 計算cos-1(x)的值
-1<=x<=1 計算結果
asin double asin(x)
double x 計算sin-1(x)的值
-1<=x<=1 計算結果
atan double atan(x)
double x 計算tan-1(x)的值 計算結果
atan2 double atan2(x,y)
double x,y 計算tan-1(x/y)的值 計算結果
cos double cos(x)
double x 計算cos(x)的值
x的單位為弧度 計算結果
cosh double cosh(x)
double x 計算x的雙曲餘弦cosh(x)的值 計算結果
exp double exp(x)
double x 求ex的值 計算結果
fabs double fabs(x)
double x 求x的絕對值 計算結果
floor double floor(x)
double x 求出不大於x的最大整數 該整數的雙精度實數
fmod double fmod(x,y)
double x,y 求整除x/y的余數 返回余數的雙精度實數
frexp double frexp(val,eptr)
double val
int *eptr 把雙精度數val分解成數字部分(尾數)和以2為底的指數,即val=x*2n,n存放在eptr指向的變數中 數字部分x
0.5<=x<1
log double log(x)
double x 求logex即lnx 計算結果
log10 double log10(x)
double x 求log10x 計算結果
modf double modf(val,iptr)
double val
int *iptr 把雙精度數val分解成數字部分和小數部分,把整數部分存放在ptr指向的變數中 val的小數部分
pow double pow(x,y)
double x,y 求xy的值 計算結果
sin double sin(x)
double x 求sin(x)的值
x的單位為弧度 計算結果
sinh double sinh(x)
double x 計算x的雙曲正弦函數sinh(x)的值 計算結果
sqrt double sqrt (x)
double x 計算√x,x≧0 計算結果
tan double tan(x)
double x 計算tan(x)的值
x的單位為弧度 計算結果
tanh double tanh(x)
double x 計算x的雙曲正切函數tanh(x)的值 計算結果
------------------------------------------------------------------------------------------------------------------------------
(2)字元函數
在使用字元函數時,因該在源文件中使用命令:
#include「ctype.h」
函數名 函數和形參類型 功能 返回值
isalnum int isalnum(ch)
int ch 檢查ch是否字母或數字 是字母或數字返回1;否則返回0
isalpha int isalpha(ch)
int ch 檢查ch是否字母 是字母返回1;否則返回0
iscntrl int iscntrl(ch)
int ch 檢查ch是否控制字元(其ASCⅡ碼在0和0xlF之間) 是控制字元返回1;否則返回0
isdigit int isdigit(ch)
int ch 檢查ch是否數字 是數字返回1;否則返回0
isgraph int isgraph(ch)
int ch 檢查ch是否是可列印字元(其ASCⅡ碼在0x21和0x7e之間),不包括空格 是可列印字元返回1;否則返回0
islower int islower(ch)
int ch 檢查ch是否是小寫字母
(a~z) 是小字母返回1;否則返回0
isprint int isprint(ch)
int ch 檢查ch是否是可列印字元(其ASCⅡ碼在0x21和0x7e之間),不包括空格 是可列印字元返回1;否則返回0
ispunct int ispunct(ch)
int ch 檢查ch是否是標點字元(不包括空格)即除字母、數字和空格以外的所有可列印字元 是標點返回1;否則返回0
isspace int isspace(ch)
int ch 檢查ch是否空格、跳格符(製表符)或換行符 是,返回1;否則返回0
issupper int isalsupper(ch)
int ch 檢查ch是否大寫字母
(A~Z) 是大寫字母返回1;否則返回0
isxdigit int isxdigit(ch)
int ch 檢查ch是否一個16進制數字
(即0~9,或A到F,a~f) 是,返回1;否則返回0
tolower int tolower(ch)
int ch 將ch字元轉換為小寫字母 返回ch對應的小寫字母
toupper int toupper(ch)
int ch 將ch字元轉換為大寫字母 返回ch對應的大寫字母
-----------------------------------------------------------------------------------------------------------------------
(3)字元串函數
使用字元串中函數時,應該在源文件中使用命令:
#include「string.h」
函數名 函數和形參類型 功能 返回值
memchr void memchr(buf,ch,count)
void *buf;charch;
unsigned int count; 在buf的前count個字元里搜索字元ch首次出現的位置 返回指向buf中ch的第一次出現的位置指針;若沒有找到ch,返回NULL
memcmp int memcmp(buf1,buf2,count)
void *buf1,*buf2;
unsigned int count; 按字典順序比較由buf1和buf2指向的數組的前count個字元 buf1<buf2,為負數
buf1=buf2,返回0
buf1>buf2,為正數
memcpy void *memcpy(to,from,count)
void *to,*from;
unsigned int count; 將from指向的數組中的前count個字元拷貝到to指向的數組中。From和to指向的數組不允許重疊 返回指向to的指針
memove void *memove(to,from,count)
void *to,*from;
unsigned int count; 將from指向的數組中的前count個字元拷貝到to指向的數組中。From和to指向的數組不允許重疊 返回指向to的指針
memset void *memset(buf,ch,count)
void *buf;char ch;
unsigned int count; 將字元ch拷貝到buf指向的數組前count個字元中。 返回buf
strcat char *strcat(str1,str2)
char *str1,*str2; 把字元str2接到str1後面,取消原來str1最後面的串結束符`\0` 返回str1
strchr char *strchr(str1,ch)
char *str;
int ch; 找出str指向的字元串中第一次出現字元ch的位置 返回指向該位置的指針,如找不到,則應返回NULL
strcmp int *strcmp(str1,str2)
char *str1,*str2; 比較字元串str1和str2 str1<str2,為負數
str1=str2,返回0
str1>str2,為正數
strcpy char *strcpy(str1,str2)
char *str1,*str2; 把str2指向的字元串拷貝到str1中去 返回str1
strlen unsigned intstrlen(str)
char *str; 統計字元串str中字元的個數(不包括終止符`\0`) 返回字元個數
strncat char *strncat(str1,str2,count)
char *str1,*str2;
unsigned int count; 把字元串str2指向的字元串中最多count個字元連到串str1後面,並以null結尾 返回str1
strncmp int strncmp(str1,str2,count)
char *str1,*str2;
unsigned int count; 比較字元串str1和str2中至多前count個字元 str1<str2,為負數
str1=str2,返回0
str1>str2,為正數
strncpy char *strncpy(str1,str2,count)
char *str1,*str2;
unsigned int count; 把str2指向的字元串中最多前count個字元拷貝到串str1中去 返回str1
strnset void *setnset(buf,ch,count)
char *buf;char ch;
unsigned int count; 將字元ch拷貝到buf指向的數組前count個字元中。 返回buf
strset void *setnset(buf,ch)
void *buf;char ch; 將buf所指向的字元串中的全部字元都變為字元ch 返回buf
strstr char *strstr(str1,str2)
char *str1,*str2; 尋找str2指向的字元串在str1指向的字元串中首次出現的位置 返回str2指向的字元串首次出向的地址。否則返回NULL
-----------------------------------------------------------------------------------------------------------------------------
(4)輸入輸出函數
在使用輸入輸出函數時,應該在源文件中使用命令:
#include「stdio.h」
函數名 函數和形參類型 功能 返回值
clearerr void clearer(fp)
FILE *fp 清除文件指針錯誤指示器 無
close int close(fp)
int fp 關閉文件(非ANSI標准) 關閉成功返回0,不成功返回-1
creat int creat(filename,mode)
char *filename;
int mode 以mode所指定的方式建立文件。(非ANSI標准) 成功返回正數,
否則返回-1
eof int eof(fp)
int fp 判斷fp所指的文件是否結束 文件結束返回1,
否則返回0
fclose int fclose(fp)
FILE *fp 關閉fp所指的文件,釋放文件緩沖區 關閉成功返回0,不成功返回非0
feof int feof(fp)
FILE *fp 檢查文件是否結束 文件結束返回非0,否則返回0
ferror int ferror(fp)
FILE *fp 測試fp所指的文件是否有錯誤 無錯返回0;
否則返回非0
fflush int fflush(fp)
FILE *fp 將fp所指的文件的全部控制信息和數據存檔 存檔正確返回0;
否則返回非0
fgets char *fgets(buf,n,fp) char *buf;int n;
FILE *fp 從fp所指的文件讀取一個長度為(n-1)的字元串,存入起始地址為buf的空間 返回地址buf;若遇文件結束或出錯則返回EOF
fgetc int fgetc(fp)
FILE *fp 從fp所指的文件中取得下一個字元 返回所得到的字元;出錯返回EOF
fopen FILE *fopen(filename,mode)
char *filename,*mode 以mode指定的方式打開名為filename的文件 成功,則返回一個文件指針;否則返回0
fprintf int fprintf(fp,format,args,…)
FILE *fp;char *format 把args的值以format指定的格式輸出到fp所指的文件中 實際輸出的字元數
fputc int fputc(ch,fp)
char ch;FILE *fp 將字元ch輸出到fp所指的文件中 成功則返回該字元;出錯返回EOF
fputs int fputs(str,fp)
char str;FILE *fp 將str指定的字元串輸出到fp所指的文件中 成功則返回0;出錯返回EOF
fread int fread(pt,size,n,fp) char *pt;unsigned size,n;FILE *fp 從fp所指定文件中讀取長度為size的n個數據項,存到pt所指向的內存區 返回所讀的數據項個數,若文件結束或出錯返回0
fscanf int fscanf(fp,format,args,…)
FILE *fp;char *format 從fp指定的文件中按給定的format格式將讀入的數據送到args所指向的內存變數中(args是指針) 以輸入的數據個數
fseek int fseek(fp,offset,base)
FILE *fp;long offset;int base 將fp指定的文件的位置指針移到base所指出的位置為基準、以offset為位移量的位置 返回當前位置;否則,返回-1
siell FILE *fp;
long ftell(fp); 返回fp所指定的文件中的讀寫位置 返迴文件中的讀寫位置;否則,返回0
fwrite int fwrite(ptr,size,n,fp) char *ptr;unsigned size,n;FILE *fp 把ptr所指向的n*size個位元組輸出到fp所指向的文件中 寫到fp文件中的數據項的個數
getc int getc(fp)
FILE *fp; 從fp所指向的文件中的讀出下一個字元 返回讀出的字元;若文件出錯或結束返回EOF
getchar int getchat() 從標准輸入設備中讀取下一個字元 返回字元;若文件出錯或結束返回-1
gets char *gets(str)
char *str 從標准輸入設備中讀取字元串存入str指向的數組 成功返回str,否則返回NULL
open int open(filename,mode) char *filename;
int mode 以mode指定的方式打開已存在的名為filename的文件
(非ANSI標准) 返迴文件號(正數);如打開失敗返回-1
printf int printf(format,args,
…)
char *format 在format指定的字元串的控制下,將輸出列表args的指輸出到標准設備 輸出字元的個數;若出錯返回負數
prtc int prtc(ch,fp)
int ch;FILE *fp; 把一個字元ch輸出到fp所值的文件中 輸出字元ch;若出錯返回EOF
putchar int putchar(ch)
char ch; 把字元ch輸出到fp標准輸出設備 返回換行符;若失敗返回EOF
puts int puts(str)
char *str; 把str指向的字元串輸出到標准輸出設備;將`\0`轉換為回車行 返回換行符;若失敗返回EOF
putw int putw(w,fp)
int i;
FILE *fp; 將一個整數i(即一個字)寫到fp所指的文件中
(非ANSI標准) 返回讀出的字元;若文件出錯或結束返回EOF
read int read(fd,buf,count) int fd;char *buf;
unsigned int count; 從文件號fp所指定文件中讀count個位元組到由buf知識的緩沖區(非ANSI標准) 返回真正讀出的位元組個數,如文件結束返回0,出錯返回-1
remove int remove(fname)
char *fname; 刪除以fname為文件名的文件 成功返回0;出錯返回-1
rename int remove(oname,nname)
char *oname,*nname; 把oname所指的文件名改為由nname所指的文件名 成功返回0;出錯返回-1
rewind void rewind(fp)
FILE *fp; 將fp指定的文件指針置於文件頭,並清除文件結束標志和錯誤標志 無
scanf int scanf(format,args,
…)
char *format 從標准輸入設備按format指示的格式字元串規定的格式,輸入數據給args所指示的單元。args為指針 讀入並賦給args數據個數。如文件結束返回EOF;若出錯返回0
write int write(fd,buf,count) int fd;char *buf;
unsigned count; 叢buf指示的緩沖區輸出count個字元到fd所指的文件中(非ANSI標准) 返回實際寫入的位元組數,如出錯返回-1
------------------------------------------------------------------------------------------------------------------------------
(5)動態存儲分配函數
在使用動態存儲分配函數時,應該在源文件中使用命令:
#include「stdlib.h」
函數名 函數和形參類型 功能 返回值
callloc void *calloc(n,size)
unsigned n;
unsigned size; 分配n個數據項的內存連續空間,每個數據項的大小為size 分配內存單元的起始地址。如不成功,返回0
free void free(p)
void *p; 釋放p所指內存區 無
malloc void *malloc(size)
unsigned SIZE; 分配size位元組的內存區 所分配的內存區地址,如內存不夠,返回0
realloc void *reallod(p,size)
void *p;
unsigned size; 將p所指的以分配的內存區的大小改為size。Size可以比原來分配的空間大或小 返回指向該內存區的指針。若重新分配失敗,返回NULL
-------------------------------------------------------------------------------------------------------------------------------
(6)其他函數
「其他函數」是C語言的標准庫函數,由於不便歸入某一類,所以單獨列出。使用這寫函數時,應該在源文件中使用命令:
#include「stdlib.h」
函數名 函數和形參類型 功能 返回值
abs int abs(num)
int num 計算整數num的絕對值 返回計算結果
atof double atof(str)
char *str 將str指向的字元串轉換為一個double型的值 返回雙精度計算結果
atoi int atoi(str)
char *str 將str指向的字元串轉換為一個int型的值 返回轉換結果
atol long atol(str)
char *str 將str指向的字元串轉換為一個long型的值 返回轉換結果
exit void exit(status)
int status; 中止程序運行。將status的值返回調用的過程 無
itoa char *itoa(n,str,radix)
int n,radix;
char *str 將整數n的值按照radix進制轉換為等價的字元串,並將結果存入str指向的字元串中 返回一個指向str的指針
labs long labs(num)
long num 計算c整數num的絕對值 返回計算結果
ltoa char *ltoa(n,str,radix)
long int n;int radix;
char *str; 將長整數n的值按照radix進制轉換為等價的字元串,並將結果存入str指向的字元串 返回一個指向str的指針
rand int rand() 產生0到RAND_MAX之間的偽隨機數。RAND_MAX在頭文件中定義 返回一個偽隨機(整)數
random int random(num)
int num; 產生0到num之間的隨機數。 返回一個隨機(整)數
rand_omize void randomize() 初始化隨機函數,使用是包括頭文件time.h。
strtod double strtod(start,end)
char *start;
char **end 將start指向的數字字元串轉換成double,直到出現不能轉換為浮點的字元為止,剩餘的字元串符給指針end
*HUGE_VAL是turboC在頭文件math.H中定義的數學函數溢出標志值 返回轉換結果。若為轉換則返回0。若轉換出錯返回HUGE_VAL表示上溢,或返回-HUGE_VAL表示下溢
strtol Long int strtol(start,end,radix)
char *start;
char **end;
int radix; 將start指向的數字字元串轉換成long,直到出現不能轉換為長整形數的字元為止,剩餘的字元串符給指針end。
轉換時,數字的進制由radix
確定。
*LONG_MAX是turboC在頭文件limits.h中定義的long型可表示的最大值 返回轉換結果。若為轉換則返回0。若轉換出錯返回LONG_MAX表示上溢,或返回-LONG_MAX表示下溢
system int system(str)
char *str; 將str指向的字元串作為命令傳遞給DOS的命令處理器 返回所執行命令的退出狀態
⑥ 傅立葉C語言函數中有實部和虛部,他們是什麼,比如我采了一組正弦電壓信號。想要得到幅值要怎麼弄
實部和虛部的平方和開根號的2倍為半幅值,4倍為全幅值。
4*sqrt(ar[i]*ar[i]+ai[i]*ai[i]);ar是實部,ai是虛部。
⑦ 如何用C語言求函數值
f(x)=1/1+x*x是不是f(x)=x/(1+x)啊?
⑧ c語言 求平均數有什麼函數
1、首先我們打開我們的編譯器,新建工程,文件後,寫下我們的頭文件和主函數。
⑨ c語言求函數值
樓上2位的邏輯表達式有問題。
#include <stdio.h>
int main(void)
{
int x, y;
printf("請輸入x的值: \n");
scanf("%d", &x);
if(x<0 && x!=-3)
y = x*x + x - 6;
else if( x<10 && x!=2 && x!=3)
y = x*x - 5*x + 6;
else
y= x*x - x -1;
printf("函數的值為: %d\n", y);
return 0;
}
⑩ C語言計算基波幅值和功率因數,高人指點!
很高深啊