C語言入門很簡單,因為常用的語法結構就那麼幾個,下面列舉一些這些語法結構的簡單程序例子,可以對C語言進行快速復習。程序包含使用 bool 變量、字符、常量、數學函數、特殊字符、for循環和函數等等。
1. 使用 bool 變量
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
float input;
bool isTrue=(scanf("%f",&input)==1);
while(isTrue){
printf("you typed %.d\n",(int)input); //強制類型轉換
isTrue=(scanf("%f",&input)==1);
}
return 0;
}
2. 字符
#include <stdio.h>
#include <stdlib.h>
int main()
{
char beep; //與 int beep; 等效
while(scanf("%c",&beep)==1){
printf("you typed a %c \n", beep);
}
//scanf 會將回車符一起讀進變量,最後結果不能達到預期!可采用後面一種方法
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
char beep;
while(gets(&beep)){
printf("you typed a %c \n", beep);
}
return 0;
}
3. 常量
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>
#define PI 3.1416
#define TEXT "hello world"
#define HTML 'H'
int main()
{
//常量定義 以及C預處理器 系統預定義常量
const int china =345;
printf("%d ,%d ,%d ,%d\n", INT_MAX, china, FLT_MAX_10_EXP, CHAR_MIN);
}
4. 數學函數
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
void main(void)
{
//i 為第幾行,畫余弦曲線
int i, j, blankNUm;
float cosValue;
for(i=0;i<21;i++){
cosValue =1-i/10.0;
blankNUm =(int)(180/5/PI*acos(cosValue));
for(j=0;j<blankNUm;j++)
printf("");
printf("*");
for(j=0;j<(73-2-2*blankNUm);j++)
printf("");
i!=20?printf("*\n"):printf("");
}
return 0;
}
#include <stdio.h>
int main(void)
{
//計算 e ,前50項,其實根前10項結果一樣,只是為了演示,用double可以滿足精度要求
int i;
double factorial=1.0, e=0;
for(i=1;i<=50;i++){
factorial*=i;
e+=1.0/factorial;
}
printf("%f \n",e);
return 0;
}
5. 特殊字符
#include <stdio.h>
#include <stdlib.h>
int main()
{
float salary;
printf("\aplease enter you salary by month:"); // \a響齡,貌似
printf(" $______\b\b\b\b\b\b"); // \b退格
if(scanf("%f",&salary)==1){
printf("\t$%.2f per manth is $%.2f per year", salary, salary*12.0);
printf("\rgEE!wa h\n"); // \r使光標移到當前行的起始位置,這裡很微妙噢
}
return 0;
}
/* please enter you salary by month: $23.4__ */
/* gEE!wa h$23.40 per manth is $280.80 per year */
6. for循環
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int k;
for(k=1,printf("%d:hi \n",k);printf("k =%d \n",k),k*k<26;
k+=2,printf("now k =%d\n",k))
{
printf("k is %d in the loop \n",k);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
int word[8];
for(i=0;i<8;i++){
word[i] =pow(2,i);
}
i =0;
do{
printf("%d ",word[i]);
}while(++i<8);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
double arr1[8],arr2[8];
for(i=0;i<8;i++){
scanf("%lf",&arr1[i]);
}
arr2[0] =arr1[0];
for(i=1;i<8;i++){
arr2[i] =arr2[i-1] +arr1[i];
}
for(i=0;i<8;i++){
printf("%.2f\t",arr1[i]);
}
printf("\n");
for(i=0;i<8;i++){
printf("%.2f\t",arr2[i]);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i,max;
while(scanf("%d",&max)==1){
double sum1=0,sum2=0;
for(i=1;i<=max;i++){
sum1+=1.00/i;
i%2==0 ?(sum2-=1.0/i):(sum2+=1.0/i);
}
printf("sum1= %lf sum2= %lf\n",sum1,sum2);
}
return 0;
}
7. 函數
#include <stdio.h>
#include <stdlib.h>
int square(int s);
void echo(void);
int main()
{
int i;
for(i=0;i<10;i++)
{
printf("squire %d's value is%d\n",i,square(i));
}
printf("what\nNo/nBonzo?\n");
echo();
return 0;
}
int square(int s){
return s*s;
}
void echo(void){
printf("a function without input");
}
/* another */
#include <stdio.h>
#include <stdlib.h>
void one_three(void);
void two(void);
int main()
{
printf("start now:\n");
one_three();
printf("done!");
return 0;
}
void one_three(void){
printf("one\n");
two();
printf("three\n");
}
void two(void){
printf("two\n");
}