C语言基础二

C——顺序程序设计

  • 赋值语句
    赋值语句和赋值表达式的区别:

      if((a = b) > 0) t = 0;
    
  • 字符数据的输入输出

  1. putchar函数
    该函数为字符输出函数,其作用是向终端数出一个字符:putchar(c);
  2. getchar函数
    字符出入函数,从终端输入一个字符。:getchar();
    该函数只能接收一个字符。
  3. printf函数
    格式输出函数,向终端设备输出数据。
    格式:printf("格式控制", 输出表列);
  4. 格式字符
格式 含义 注意
d% 输出十进制整数 %*d:表示忽略当前输出
o% 输出八进制数 不会输出负的
x% 十六进制 不会输出负的
u% 输出无符号十进制整数 -
c% 输出一个字符 -
f% 小数形式 有6位小数
  1. scanf函数
    格式输入函数:scanf(格式控制,地址表列);
  • 顺序结构的程序例子
    大小写转换

      # include<stdio.h>
      void main(){//主函数
          char c1, c2;
          c1 = getchar();
      	printf("%c,%d\n", c1, c1);
      	c2 = c1 + 32;
       rintf("%c,%d\n", c2, c2);
      }
    

	#define PAI 3.14
	#include<stdio.h>
	void (){//主函数
	    float r, h, l, s, sl, v, vl;
		scanf("%f,%f", &r,&h);
		l = 2* PAI * r;
		s = 2 * PAI * r * r;
	    //printf("%f",3.0/4);
		sl = 4 * PAI * r * r * r;
		v = 3.0/4 * PAI * r * r * r;
		vl = 1.0/3 * s * h;
		printf("圆的周长 = %.2f\n", l);
		printf("圆的面积 = %.2f\n", s);
		printf("圆求表面积 = %.2f\n", sl);
		printf("圆的求体积 = %.2f\n", v);
		printf("圆住体积 = %.2f\n", vl);
	} 

C——选择结构程序设计

  • 关系运算符与关系表达式
    (1) 关系运算符的优先级低于算术运算符;
    (2) 关系运算符的优先级高于赋运算符;

  • 逻辑运算符与逻辑表达式
    !(非)> 算术运算符 > 关系运算符> &&、|| > 赋值运算符:5>3&&8<4-!0 结果为0.

  • if语句例子:两个数比较大小

      #include<stdio.h>
      void main(){
          float a, b, t;
      	scanf("%f, %f", &a,&b);
      	if(a > b){
      	    t = a;
      		a = b;
      		b = t;
      	}
      	printf("%5.2f, %5.2f\n", a, b);
      }
    

三个数比较大小

	#include<stdio.h>
	void main(){
	    float a, b, c, t;
		scanf("%f, %f, %f", &a,&b,&c);
		if(a > b){
		    t = a;
			a = b;
			b = t;
		}
		if(a > c){
		    t = a;
			a = c;
			c = t;
		}
		if(b > c){
		    t = b;
			b = c;
			c = t;
		}
		printf("%5.2f, %5.2f, %5.2f\n", a, b, c);
	}
  • switch语句例子

      #include<stdio.h>
      void main(){
          char grade;
      	scanf("%c",&grade);
      	switch(grade){
      	    case'A': printf("85-100\n");break;
      		case'B': printf("70-84\n");break;
      		case'C': printf("60-69\n");break;
      		default: printf("error\n");
      	}
      }
    

输出等级

	#include<stdio.h>
	void main(){
	    int grade;
		scanf("%d",&grade);
		switch(grade/10){
		    case'10':
		    case'9': printf("A\n");break;
			case'8': printf("B\n");break;
			case'7': printf("C\n");break;
			default: printf("D\n");
		}
	}

注意:这里需将成绩范围巧妙的化成一个变量。
判断是否为闰年

	#include<stdio.h>
	void main(){
	    int year, leap;
		scanf("%d", &year);
		if(year/4 == 0 ){
	        if(year/100 == 0){
				if(year/400 == 0){
					leap = 1;
				}else{
				    leap = 0;
				}
			}else{
			    leap = 1;
			}
		}else{
			leap = 0;
		}
	
		if(leap){
		   printf("%d is a leap year\n",year);
		}else{
		   printf("%d is not a leap year\n", year); 
		}
	}

C——循环控制

  • while实现“当型”循环结构。线判断在执行;

  • 用do...whlie来实现“直到型”循环结构。先执行,在判断;

  • for语句来实现循环;

  • break语句和continue语句
    break语句可以使循环跳出switch结构;break语句不能用于循环语句和switch语句之外的任何其他语句中;
    continue:其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。continue不终止整个循环。
    例子:把100~200直接的不能被3整除的数输出

      #include<stdio.h>
      void main(){
          int n;
      	for(n = 100; n <= 200; n++){
      		if(n%3 == 0)
      		    continue;
      		printf("%d\n", n);
      	}
      		printf("\n");
      }
    

判断是否是素数

	#include<stdio.h>
	#include<math.h>
	void main(){
	    int m, i, k;
		scanf("%d",&m);
		k = sqrt(m);
		for(i=2; i<=k; i++)
	        if(m%i == 0) break;
		if(i > k) printf("%d is prime number", m);
	    else printf("%d is not prime number", m);
	}

求100~200之间的全部素数

	#include<stdio.h>
	#include<math.h>
	void main(){
	    int m, i, k, n = 0;
		for(m = 101; m <= 200 ; m = m  + 2){
			k = sqrt(m);
			for(i=2; i<=k; i++)
				if(m%i == 0) break;
				if(i >= k+1) {
					printf("%d ", m);
					n++;
				}
			    if(n%10 == 0) 
					printf("\n");
		}
	    printf("\n");
	}

输出水仙花数

	#include<stdio.h>
	#include<math.h>
	void main(){
	    int n, a, b, c;
		for(n = 100; n< 1000; n++){
		    a = n/100;
			b = (n%100)/10;
			c = ((n%100)%10)/1;
			if(a*a*a + b*b*b +c*c*c == n)
			printf("%d\n", n);	 
		}
	}

输出图案:上三角+倒三角

	#include<stdio.h>
	#include<math.h>
	void main(){
	   int i,j,k; 
	   for(i=0;i<=3;i++) 
	   { 
	       for(j=0;j<=3-i;j++) 
			  printf(" "); 
		   for(k=0;k<=2*i;k++) 
			  printf("*"); 
		   printf("\n"); 
	   } 
	   for(i=0;i<=2;i++) 
	   { 
	       for(j=0;j<=i+1;j++) 
			  printf(" "); 
		   for(k=0;k<=4-2*i;k++) 
			  printf("*"); 
		   printf("\n"); 
	   } 
	}

该规律为:上面四行一个规律,下面三行一个规律,然后用双重for循环来分别控制行和列,即分别控制输出空字符和输出“*”字符。

posted @ 2017-04-18 12:46  美美王子  阅读(209)  评论(0编辑  收藏  举报