1. c語言的格式特點是什麼
1、習慣用小寫字母,大小寫敏感
2、不適用行號符,無程序行概念
3、可使用空行和空格
4、常用鋸齒形書寫格式
2. c語言知識點有哪些
c語言知識點有:
1、C語言程序是由多個函數構成的。
2、每個C語言程序中有且只有一個main函數。
3、C語言不使用行號,無程序行的概念。
4、程序中可使用空行和空格。
5、C語言程序格式常用鋸齒形書寫格式。
6、C語言程序中可加任意多的注釋,注釋形式/*……*/,並且注釋形式不能嵌套,即不能注釋裡面又有另一個注釋。//行注釋是C++當中新增加的內容。
7、引用C語言標准庫函數,一般要用文件包含預處理命令將其頭文件包含進來。
8、用戶自定義的函數,必須先定義後使用。
9、變數必須先定義後使用。
10、變數名,函數名必須是合法的標識符,標識符習慣用小寫字母,C語言是字母大小寫敏感的語言。
11、不能用關鍵字來命名變數和函數。
12、C語言的語句都是以分號結尾的。
13、計算機中使用的進制數是二進制數,而不是十進制數,因為二進制只有兩個數碼,運算簡單便於硬體實現,同時二進制便於邏輯運算。
將十進制數轉換成二進制數應分為整數部分轉換和小數部分轉換,整數部分轉換可採用基數除法來實現,小數部分轉換可採用基數乘法來實現。八進制和十六進制也是C語言中經常表示數據的進制,因為它們與二進制之間的轉換非常方便,但要注意他們不是計算機中使用的進制。
14、機器數的表示形式有原碼、反碼和補碼幾種形式,計算機中通常使用補碼的形式來表示一個數,因為補碼運算可以連同符號位一起參與運算,這便於運算器的設計與實現。
3. 單片機c語言編程方波,鋸齒波,三角波程序怎麼寫
方波簡單,鋸齒波和三角波還要加DA和濾波器才能實現吧……
4. C語言知識總結
c語言概要
第一章、 概述
1、 c語言的基本知識
1.1、 c語言的執行步驟
編輯-程序代碼的錄入,生成源程序*.c
編譯-語法分析查錯,翻譯生成目標程序*.obj
(語法或邏輯錯誤,從第一個開始改,變數定義,語句格式,表達式格式等)
鏈接-與其他目標程序或庫鏈接裝配,生成可執行程序*.exe
執行
1.2、 main函數的基本知識
main()函數的位置
c程序總是從main( )函數開始執行
一個c程序可以包含一個主函數,即main()函數;也可以包含一個main()函數和若干其它函數
1.3、 c程序的結構
函數與主函數
程序由一個或多個函數組成
必須有一個且只能有一個主函數main()
程序執行從main開始,在main中結束,其他函數通過嵌套調用得以執行
程序語句
C程序由語句組成
用「;」作為語句終止符
注釋
//
或
/* */ 為注釋,不能嵌套
不產生編譯代碼
1.4、c 程序書寫的規則
習慣用小寫字母,大小寫敏感
不使用行號,無程序行概念:通常一個語句佔一行
可使用空行和空格
常用鋸齒形的書寫格式;同一層次結構的語句上下對齊。
第二章、基本數據類型與運算
2.1、c程序的數據類型
注意類型和變數含義的不同(類型是固定好的名字,變數是自己起的名字)
變數佔用的存儲空間
數據類型
基本類型:整型、字元型、浮點型(單精度型,雙精度型)
構造類型:數組類型、結構體類型
指針類型
空類型
注意基本類型賦初值的方式
基本數據類型的表示形式
整形數據
十進制:以非0數字開頭,如:123,-9,0
八進制;以0數字開頭,如:0123,067
十六進制:以0x開頭,如:0x123,0xff
實型數據
十進制:必須帶小數點,如:123.0,-9.0
指數形式;如:1.23E3,0.9e-2,5e2
字元型數據
普通字元:如:』a』,』2』,』H』,』#』
轉義字元:如:』\n』,』\167』,』\xlf,』\\』
(實現幾列的對齊:指定寬度。如%100\ 『\t』製表位)
(字元串長度。「abc\n\t\\」 strlen 6; sizeof 7)
基本數據類型的存儲長度
整型
Int 位元組數 2 位數 16 數的表示範圍 -32768—32767
Short 2 16 -32768—32767
Long 4 32 -2147483648—2147483647
實型
Float 4 32 3.4e-38---3.4e38
Double 8 64 1.7e-308---1.7e308
字元型
Char 1 8 -128----127
2.2、標識符命名規則
C語言標志符命名規則
標識符有數字,字母,下劃線組成
標識符的首字元必須為字母和下劃線
標識符不能為c語言的保留字(關鍵字)
如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed
算術運算符 + - * / %
關系運算符 > < == >= <= !=
邏輯運算符 ! && ||
位運算符 << >> ~ | ^ &
賦值運算符 = 及其擴展賦值運算符
條件運算符 ? :
逗號運算符 ,
指針運算符 * &
求位元組數運算符 sizeof
強制類型轉換運算符 (類型)
分量運算符 . ->
下標運算符 [ ]
其他 如函數調用運算符()
運算符的優先順序
由高到低:單目運算符,算數運算符,關系運算符,賦值運算符
說明:單目運算符:自增運算符,自減運算符,類型裝換運算符。結合方向:自右至左
如:++--I 先—i.。
算術運算 結合方向自左至右
2.3基本運算和表達式
關系表達式和邏輯表達式
(a>b)&&(x>y) (a==b)||(x==y) !=a||(a>b)
A&&b.a為0.不執行b
A||b a為1.不執行b
在 c 中邏輯運算結果:1代表「真」,0代表「假」;
判斷一個表達式是否真:0代表「假」,非0代表「真」
條件表達式 逗號表達式
如:k=5,k++
逗號值為5;k為6.
表達式1?表達式2 :表達式3
K=5>6 ? 1 : 0
2.4、混合運算的數據類型轉換
2/3+0.5 雙精度浮點型
第三章、順序結構程序設計
3.1、c語句的分類
簡單語句
表達式語句 表達式+分號
空語句 只有分號的語句
復合語句 用花括弧將若干語句括起來
流程式控制制語句
選擇語句 if ,switch
循環語句 while, do while , for
轉移語句 break ,continue ,return goto
3.2、格式輸入函數scanf
一般形式:scanf(「格式控制字元串「,地址列表);
使用scanf函數時,需要注意:
格式字元的個數必須與輸入項的個數相同,數據類型必須一一對應,非格式字元串(說明性的)要原封不動的輸入。
輸入實行數據時,可以不帶小數點,即按整型數據輸入
數值型數據與字元或字元串混合輸入時,需要注意輸入方式。
3.3、格式輸出函數printf
Printf(「格式控制字元串「,輸出列表);
指定輸出格式,由格式字元串和非格式字元串兩種組成,非格式字元串照原樣輸出。
%[標志][輸出最小寬度][.精度][長度]類型
標志:- 左對齊;+ 右對齊;
%f, %d, %c, %s
3.4、其他輸入輸出函數
Putchar getchar puts gets
第四章、選擇結構程序設計
If選擇結構
單分支
If(表達式)
語句
雙分支
If(表達式)
語句1
Else
語句2
多分支
If (表達式1)
語句1
Else if(表達式2)
語句2
。。。
Else if(表達式m)
語句m
Else
語句n
Switch(表達式)
{
Case 常量表達式1:語句1;break;
Case 常量表達式2:語句2;break;
。。。
Case 常量表達式m:語句m;break;
Default:語句n;break;
}
注意break的使用
第五章、循環結構程序設計
循環三要素
初始條件 ;終止條件 ;在初始條件和終止條件間反復做某件事情(循環體)
While(表達式)
語句
Do
語句
While(表達式);
For(循環體變數賦初值;循環條件;循環變數增量)
( for( ) ; // ; 進行時間延遲。在信息交換等時用。如for(i=0,i<100) ; 互相通訊的時間延遲。 Delay )
Break語句 :不能用於循環語句和switch語句之外的任何其他語句;跳出循環。
Continue語句 :跳過循環體中剩餘的語句而強行執行下一次循環;跳出本次循環。
第六章、函數與編譯預處理
6.1、函數的定義和調用
類型標識符 函數名 (形式參數列表)
{ 聲明部分
語句
}
例:
Int max (int x,int y)
{int z;<br>Z=x>y?x:y;<br>Return(z);}
6.2、局部變數和全局變數
注意函數中靜態變數的定義和使用
6.3、變數的存儲類型
局部變數的存儲類型
自動變數(auto) 動態存儲
局部靜態變數(static) 靜態存儲
寄存器變數(register) 靜態存儲
全局變數的存儲類型
自動變數(auto) 動態存儲
外部變數 (extern) 靜態存儲
全局靜態變數(static )靜態存儲
Extern 外部引用
Static 不能用extern 引用。
第七章、數組
7.1、一維數組的定義和使用
特別需要注意循環體的初值,終止條件
例:
Main()
{
Int I,a[10];
For(i=0;i<=9;i++)
A=I;
For(i=9;i>=0;i--)
Printf(「%d」,a);
}
注意下標問題
7.2、二維數組的定義和使用
二維數組的初始化
例如:
Int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
Int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={{1,2,3,4},{5},{9,10,11,12}};
例如:int a[3][3]={{1},{2},{3}};
是對每一行的第一列元素賦值,未賦值的元素取0
7.3、字元數組和 字元串
字元串用字元數組來處理,結束標志符 『\0』
如:char c[ ]={「I am happy」};
用字元串常量使字元數組初值化
Char c[ ]={『I』,』 『,』a』,』m』,』 『,』h』,』a』,』p』,』p』,』y』,』\0』};
第八章、指針
8.1、地址和指針的概念
Int I;
Int *i_point;
8.2、指針變數和變數的地址
操作符:* &
8.3、指針和一維數組
若有定義
Int a[10];
Int *p=a;
分析下面表達式的含義:
A, &a,
*(a+i), a+I,
*(p+i), p+i
A=*(a+i)=*(P+i)
&a=a+i=p+i
8.4、指針與字元串
Main()
{
Char string[ ]=」I love china!」;
Printf(「%s\n」,string);
}
Main()
{ char *string=」I love china!」;
Printf(「%s\n」,string);
}
8.5、指針變數作為函數參數
形參的定義方式;實參的形式;參數的傳遞方式。
第九章、結構體
9.1、結構體類型和變數的定義
Struct 結構體名
{成員列表};
Struct student
{char stuNO[8];<br>Char name[20];<br>Char sex;<br>Int age;<br>Float score;<br>Char addr[30];<br>};
Stuct student
{char stuNO[8];<br>Char name[20];<br>Char sex;<br>Int age;<br>Float score;<br>Char addr[30];<br>};
Struct student stu1, stu2;
9.2、結構體變數的引用
一般形式為:
結構體變數名.成員名
9.3、結構體數組
結構體數組 結構體數組元素.成員名
指向結構體的指針變數
(*p).成員名
p->成員名
其他
Strcpy(字元數組1,字元串2)
Strcat(字元數組1,字元數組2)
Strcmp(字元串1,字元串2)
Strlen(字元數組)
5. c語言 改成鋸齒形式 求幫忙。
鋸齒形式其實就是縮進對其
#include <stdio.h>
#define PRICE 12.5
mian ()
{
int num = 3;
float total;
total = num *PRICE ;
printf("total = %f\n",total);
}
在比如
main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf (「a=%d,b=%d\n」,a,b);
}
6. c語言鋸齒形書寫格式
其實就是縮進對齊,為了增強程序的可讀性。
7. 試用c語言編寫一個能輸出鋸齒波信號的單片機c51程序
程序加一個的LCD1602,你選擇使用
的#include <reg52.h>的/ /包含頭文件
?#包括<intrins.h>的
#定義UCHAR無符號的字元/ /宏定義
?#定義UINT無符號整數
?UCHAR I,J,N,Z,/ /定義全局變數
SBIT RS = P2 ^ 0; / /定義埠
?和SBIT RW = P2 ^ 1;
SBIT E = P2 ^ 2;
SBIT K = P2 ^ 7;
SBIT K1 = P2 ^ 6;
UCHAR代碼STR0 [] = {「正弦波」}; / /定義LCD1602顯示的字元數組
UCHAR代碼STR1 [] = {「三角波」};
UCHAR代碼字元串str2 [] = {「方波」};
?的UCHAR代碼表[3] [40] = / /定義的兩維陣列的波形
?{
??80H時,0x94的,0xa7,0xb9,0xca,0xd9,0xe7,0xf1,0XF8,是0xFD,
??是0xFD,0xff,則0XF8,0xf1,0xe7,0xd9,0xca,0xb9 0xa7,0x94的,
??80H時,0x6c,將0x55,0x46,0x35,$ 25,為0x18,0X0E,0X06,0X02,
??為0x00,0X02,0X06,0X0E,為0x18,$ 25,0x35,0x46,0x55??的,0x6c,
??80H時,0x8c,0x99,0xa6,0xb3,0XC0,含有0xCC,0xd9,0xe6,0xf2,
??為0xff,0xf2,0xe6,0xd9,含有0xCC,0XC0,0xb3,0xa6,0x99,0x8c,
??80H時,為0x73,0x66,0X5A,0x4d,0X40,地址0x33,0X26,0X1A,0X0D,
?為0x00,0X0D,0X1A,0X26,地址0x33,0X40,0x4d,為0x5A,0x66,為0x73,
??為0xff,0xff,則是0xFF,0xFF時,為0xff,0xff,則是0xFF,0xFF時,為0xff,0xff,則
??為0xff,0xff,則是0xFF,0xFF時,為0xff,0xff,則是0xFF,0xFF時,為0xff,0xff,則
??0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
??0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00
?};
?無效延遲(UINT Z)/ /延時程序
?{
????(Z,Z> 0,Z - )
???
??
??}
?}
?無效Write_command「(UCHAR CMD)/ / LCD1602寫命令程序
?{
??RS = 0; / /選擇指令寄存器
?RW = 0; / /寫操作
?E = 1 / /使能端
?P1 = CMD;
?延遲時間(1);
?E = 0;
LCD1602是不是很忙?延遲(10); / /延時
?}
?無效WRITE_DATA(UCHAR CMD)/ / LCD1602寫入數據的命令
?{
??RS = 1; / /選擇數據寄存器
?RW = 0; / /寫操作
?E = 1; / /結束
?P1 = CMD;
?延遲時間(1);
?E = 0;
LCD1602是不是很忙?延遲(10); / /延時
?}
?的無效Lcd_init()/ / LCD1602初始化程序
?{
????Write_command(0x38); / /設置16 * 5 * 7點陣8位數據介面
?Write_command(0X0C)/ / LCD1602打開顯示,不顯示游標
?Write_command(0X06)/ /讀或寫一個字元指針加1不動
?Write_command(0X80 +0 X00); / /設置數據地址指針
?}
?無效顯示器()/ / LCD1602顯示英語課程
?{
????Lcd_init();
?(我== 0)
???
?組(n = 0,N <13,N +)
???
???WRITE_DATA(STR0 [N]);
??}
????}
?否則,如果(我== 1)
?{
?組(n = 0,N <13,N +)
??
??WRITE_DATA(STR1 [N]);
?}
?}
?其他
?{
?組(n = 0,N <13,N +)
??
??WRITE_DATA(字元串str2 [N]);
?}
?}
?}
無效的主要()/ /主函數
?{
???顯示();
?而(1)
?{
??中for(j = 0; J <40; + +)
???
???P0 =表[I] [J];
???
??}
(k == 0)/ /切換程序??
???
????延遲時間(1);
???(k == 0);
????
????(K == 0)
?????
????+ +;
????如果(i == 3)= 0;
???顯示();
????}
????
???}
??????而(k == 0);
??}
?}
?}
8. C語言程序設計中,啥時候使用空格,啥時候使用換行,大小寫寫錯了行嗎
空格在C程中是無意義的,只是將變數、函數、符號等分開,並將程序按鋸齒形排列。
換行必須用分號;,而且是英文的,但是在「if...else...」等的連續變數語句中,前一個的換行不能使用分號,什麼符號都不能使用,而後一個的結束才可以且必須使用分號。
換行是在計算時、定義時……基本上就是當前者與後者無關聯時,就要換行。換行有好多情況,建議買本書看看。
大小寫錯了當然不行!少一個標點符號都會導致結果出不來,更何況大小寫?
不知道你用的是什麼軟體,用C-Free的話,會在屏幕下方給出錯誤提示,我覺得挺好用的。
9. c語言數組可以只指定行的長度密嗎
可以,你說的就是鋸齒數組,也就是指定行數,但每行列數不定,比如
int[][] a = new int[3][];
int[] a1 = new int[] {3,4,5,6,7};
int[] a2 = new int[] {1,2,3};
int[] a3 = new int[] {7,8,9,10};
a[0] = a1;
a[1] = a2;
a[2] = a3;
10. C語言鋸齒數組
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int **a,b,c,i;
printf("請輸入行數:");
scanf("%d",&b);
a=(int **)malloc(sizeof(int **)*b);
if (a==NULL) {
fprintf(stderr,"分配失敗");
exit(1);
}
for (i = 0; i<b; i++) {
printf("請輸入第%d行的元素個數:",i+1);
scanf("%d",&c);
a[i]=(int *)malloc(sizeof(int)*(c+1));/*為第i行分配c+1個int空間,多出來的一個位置用於保存這一行的長度*/
if (a[i]==NULL) {
fprintf(stderr,"分配失敗");
exit(1);
}
a[i][0]=c; /*將第i行的長度保存到第i行的第一個元素中*/
for (c=1; c<=a[i][0]; c++) {
a[i][c]=1;
}
}
for (i = 0; i<b; i++) {
for (c=1; c<=a[i][0]; c++) {
printf("%d",a[i][c]);
}
putchar('\n');
free(a[i]); /*釋放為第i行分配的空間*/
}
free(a); /*釋放為a分配的空間*/
return 0;
}
//---------------------------------------------------------------------------