C语言基础二
C——顺序程序设计
-
赋值语句
赋值语句和赋值表达式的区别:if((a = b) > 0) t = 0;
-
字符数据的输入输出
- putchar函数
该函数为字符输出函数,其作用是向终端数出一个字符:putchar(c); - getchar函数
字符出入函数,从终端输入一个字符。:getchar();
该函数只能接收一个字符。 - printf函数
格式输出函数,向终端设备输出数据。
格式:printf("格式控制", 输出表列); - 格式字符
格式 | 含义 | 注意 |
---|---|---|
d% | 输出十进制整数 | %*d:表示忽略当前输出 |
o% | 输出八进制数 | 不会输出负的 |
x% | 十六进制 | 不会输出负的 |
u% | 输出无符号十进制整数 | - |
c% | 输出一个字符 | - |
f% | 小数形式 | 有6位小数 |
- 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循环来分别控制行和列,即分别控制输出空字符和输出“*”字符。