l例1:输入一行字符,统计其中空格的个数
#include<stdio.h>
int main( )
{
char ch;
int count=0;
while((ch=getchar())!='\n')
{
if(ch==' ')
{
count+=1;
}
}
printf("%d\n",count);
return 0;
}
例2
#include<stdio.h>
int main( )
{
double x,y;
scanf("%lf",&x);
if(x<-1)
y=x*x*x-1;
else if(x<=10)
y=3*exp(2*x-1)+5;
else
y=3*log10(3*x-1)-13;
printf("y=%lf\n",y);
return 0;
}
例3 从键盘输入若干整数,以0作为结束标志,找出最大数并输出
#include<stdio.h>
int main( )
{
int x,max;
scanf("%d",&x);
max=x;
while(scanf("%d",&x)&&x!=0)
{
if(max<x)
{
max=x;
}
}
printf("max=%d\n",max);
return 0;
}
例4
#include<stdio.h>
int main( )
{
int i,fact,sum;
sum=0;
fact=1;
for(i=1;i<=10;i++)
{
fact*=i;
sum+=fact;
}
printf("%d\n",sum);
return 0;
}
例5判断一个指定的数是否是素数
#include<stdio.h>
#include<math.h>
int main( )
{
int m,i,k;
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
{
break;
}
}
if(i<=k)
{
printf("no\n");
}
else
{
printf("is\n");
}
return 0;
}
例6 求2个数的最大公约数(用辗转相除法会更简单)
#include<stdio.h>
#include<math.h>
int main( )
{
int a,b;
int min;
scanf("%d%d",&a,&b);
min=a>b?b:a;
int x=0;
int i;
for(i=1;i<=min;i++)
{
if(a%i==0&&b%i==0)
{
x=i;
}
}
printf("%d\n",x);
return 0;
}
例7
#include<stdio.h>
#include<math.h>
int main( )
{
int n;
scanf("%d",&n);
int i;
double sum=0;
int flat=1;
for(i=1;i<=n;i++)
{
flat*=i;
sum+=1.0/flat;
}
printf("sum=%.2f\n",sum);
return 0;
}
例8函数 isPrime 的功能是判断参数 m 是否是素数,如果是素数,返回整数 1,不是素数则返回整数 0。请根据已经给出的代码完成该函数。
#include<stdio.h>
#include<math.h>
int isprime(int m)
{
int i;
for(i=2;i<m;i++)
{
if(m%i==0)
return 0;
}
return 1;
}
int main( )
{
int m;
scanf("%d",&m);
if(isprime(m)==1)
{
printf("is\n");
}
else
{
printf("no\n");
}
return 0;
}
1不添加sign和unsign,默认是有符号的
2实数就是带小数点的数
3编译:生成一段计算机可以读懂的程序,之后才能运行
4dev,*表明未保存
5变量的名字--标识符
6所有的变量在第一次被使用之前应该被赋一次值
7浮点数:带小数点的数
8表达式包括a运算符b算子/操作数/运算数
9
递增递减运算符的算子必须是一个变量,不能用于变量和表达式
10
double可以用来表示整数
11
计算机在外面表现(整数,字符类型,double类型),在计算机内部都是以二进制的形式存在的
12
switch—case,switch为关键字
default为默认入口
此时不用break语句
控制表达式只能是整数型的结果(常量可以是常数,也可以是常数计算的表达式)
13
做调试的手段
a模拟变量的程序运行,写出变量的变化
b在程序适当的地方插入printf,让它把一些变量的值打印给我们看
14
x%n的结果是【0,n-1】的一个整数
15
for(i=0;i<n;i++)循环结束以后,i的值是n
for(i=1;i<=n;i++)循环结束以后,i的值是n+1
16
%s读单词(读到 ,tab,回车为止)
17
scanf(“%7s”,word)告诉scanf最多只能读7个字符,超过7个字符不要
18
要让指针指向一个实际有效的地址
19
八进制整数,以0开头的数
20
main函数的参数表不是空的
21
putchar的输入为int类型
22
shell看到ctrl+D,会在缓冲区填一个-1
看到ctrl+C,会关闭电脑内部
23
printf(“%4.1f”,x);
4表示输出的总宽度为4位(包括小数点和小数部分)
.1表示小数部分保留一位数字
由printf的输出规则:若输出的总宽度>=4,则这个宽度不起限制作用,按数字的实际宽度输出
若输出的总宽度<4,则起限制作用
24
scanf(“%3d%2d”,&a,&b);%3d表示读取一个整数,并且最多读取3位数字
若输入的数字位数不足3位,,则读实际的
25
scanf(“%d%c%d%c”,&a,&b,&c,&d);输入ab之前不能有空格
26
.c是源程序,程序设计语言,不可以执行
.obj是目标程序,机器语言,不可以执行,二进制
.exe是可执行程序,机器语言,可以执行,二进制
27
编辑:程序代码的录入,生成源程序.c
编译:检查错误,翻译生成目标程序.o
连接:与其他目标程序或库连接装配,生成可执行程序.exe(.ob文件在连接阶段与其他.obj文件以及库文件一起组合成.exe)
28
标识符/变量/id号
29
函数是c语言的基本单位
30
8个比特为一个字节
31
字长是计算机一次能处理的二进制数据的位数
32
直接变量:在程序中直接书写的固定值,其值在程序运行中不能被改变,就始终保持这个特定值
33
signed的最高位为符号位
unsigned的最高位为有效位
34
&&>||
35
赋值运算符的优先级顺序最低
36
单目,赋值,条件具有右结合性
37
char shu[]={0};错误
38
0用来标志字符串的结束,但是它本身并不是这个字符串的一部分
计算字符串的长度的时候不包括0
39
由“”括起来的东西叫字符串的字面量/常量
40
char *s="hello";
"hello"位于程序的代码段,它是只读的,如果试图写s【0】,操作系统会有保护机制,让程序崩溃
41
字符可以表达为char*的形式,但char*不一定是字符串