C程序设计总复习
第一章复习要点
n C程序的结构
第三章复习要点
n 常量和符号常量
n 变量
n 整型变量
n 实型变量
n 字符型变量
n 各种数据类型所占的存储空间
n 各类数值型数据间的混合运算
n 算术运算符和算术表达式
n 强制类型转换运算符
n 自增、自减运算符
n 复合的赋值运算符
第四章复习要点
n 掌握赋值语句的使用
n 字符数据的输入输出
n 格式输入与输出:printf函数 scanf函数
第五章复习要点
n 关系运算符及其优先次序
n 逻辑运算符和逻辑表达式
n if语句
n 条件运算符
n switch 语句(多分支选择)
n 常用算法总结
(1)分段函数的计算。
第六章复习要点
n 掌握用while语句实现循环
n 掌握用do…while语句实现循环
n 掌握用for语句实现循环
n 掌握break语句与contiue语句
n 循环的嵌套
n 常用算法总结
(1)多项式累加和、累乘积;
1.实验五第2题
main()
{
long sum=0,t=1;
int i;
for (i=1;i<=5;i++)
{ t=t*i;
sum+=t;
}
printf("%ld",sum);
}
(2)求素数(判断素数);
判断一个数m是否是素数(1)函数实现
#include <math.h>
int prime(int m)
{
int i,k;
k=sqrt(m);
for (i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1) return 1;
else return 0;
}
main()
{
int m;
scanf(“%d”,&m);
if (prime(m)) printf(“yes”);
else printf(“no”);
}
(2)不用函数调用
#include<stdio.h>
main()
{ int i,k,m;
scanf(“%d”,&m);
k=sqrt(m);
for (i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1)
printf(“yes”);
else
printf(“no”);
}
(3)数的分解,如水仙花数,完数等;
水仙花数:一个3位数,其各位数字立方和等于该数本身。
#include<stdio.h>
main()
{ int i,j,k,n;
for(n=100;n<1000;n++)
{ i=n/100;
j=n/10%10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d/n",n);
}
}
完数:一个数如果恰好等于它的因子之和,如:6=1+2+3;则6是完数。
找出1000之内的所有完数。
main()
{
int n,i,s;
for(n=1;n<1000;n++)
{
s=0;
for(i=1;i<=n/2;i++)
if(n%i==0)
s=s+i;
if (s==n)
printf(“%d/n”,n);
}
}
(4)求最大公约数和最小公倍数。
main()//用定义来求。其它略。
{
int a,b,c,i,gys,gbs;
scanf(“%d%d”,&a,&b);
c=a>b?a:b;
for (i=c;i<=a*b;i++)
if(i%a==0 &&i%b==0) break;
gbs=i;
c=a<b?a:b;
for(i=c;i>=1;i--)
if(a%i==0 &&b%i= =0) break;
gys=i;
printf(“%d,%d”,gbs,gys);
}
第七章复习要点
n 掌握一维数组的应用
n 掌握二维数组的定义与引用
n 掌握字符数组的应用
n 常用算法总结
(1)数组运算,如找最大,最小值问题,累加和,求平均值;
main()
{
int a[10],i,max,min,sum=0;
float average;
for (i=0;i<10;i++)
scanf(“%d”,&a[i]);
max=a[0];
min=a[0];
for(i=0;i<10;i++)
{
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
sum=sum+a[i];
}
average=sum/10.0;
printf(“max=%d,min=%d,sum=%d,average=%f”,
max,min,sum,average);
}
(2)排序运算,如冒泡法,选择排序;
选择排序:
#include<stdio.h>
main()
{ int i,j,t,r,a[20];
for(i=0;i<20;i++) scanf("%d",&a[i]);
for(i=0;i<19;i++)
{ r=i;
for(j=i+1;j<20;j++)
{ if(a[j]<a[r]) r=j; }
if(r!=i)
{ t=a[r];
a[r]=a[i];
a[i]=t; } }
for(i=0;i<20;i++) printf("%d ",a[i]); }
冒泡排序:
#include <stdio.h>
main()
{ int a[20],i,j,temp;
for(i=0;i<20;i++) scanf("%d",&a[i]);
for(i=0;i<20-1;i++)
for(j=0;j<20-1-i;j++)
{ if(a[j]>a[j+1])
{ temp=a[j];
a[j]=a[j+1];
a[j+1]=temp; } }
printf("the array after sort:/n");
for(i=0;i<20;i++) printf("%5d",a[i]); }
(3)字符串操作:strcpy, strcat ,strlen 。
ctrcpy的功能,把s2赋值给s1;
#include<stdio.h>
main()
{ char s1[100],s2[50];
int i=0,j=0;
gets(s1);
gets(s2);
while(s2[j]!='/0')
{
s1[i]=s2[i];
i++;
}
s1[i]='/0';
puts(s1);
}
strcat的功能,把s2的内容连接到s1字符串
#include<stdio.h>
main()
{ char s1[100],s2[50];
int i=0,j=0;
gets(s1);
gets(s2);
while(s1[i]!='/0') i++;
while(s2[j]!='/0')
{ s1[i]=s2[j];
i++;
j++;
}
s1[i]='/0';
puts(s1);
}
strlen:求字符串s1的有效字符的个数。
#include<stdio.h>
main()
{ char s1[100];
int i=0;
gets(s1);
while(s1[i]!='/0') i++;
printf(“%d”,i);//i为字符串的长度。
}
第八章复习要点
n 掌握函数的定义
n 掌握函数的形参,实参和函数的返回值
n 掌握函数的调用、声明、嵌套
n 掌握数组作为函数参数:数组元素作函数参数、一维数组名作函数参数
n 掌握局部变量,全局变量和用static声明局部变量
n 常用算法总结
能以函数的形式完成第五章、第六章、第七章的常用算法。
第九章复习要点
n 宏定义
第十章复习要点
n 掌握指针的基本概念
(1)指针变量的定义
(2)指针变量的引用
(3)指针的初始化和赋值运算
(4)指针变量作为函数参数
n 掌握一维数组与指针的关系
n 掌握字符串与指针的关系
第十一章复习要点
n 掌握结构体类型变量的定义
n 掌握结构体变量的引用
n 掌握结构体变量的初始化
n 掌握结构体数组
n 掌握指向结构体类型数据的指针
第十三章复习要点
n 掌握文件的打开
n 掌握文件的关闭
n 掌握文件的读写:字符输入输出函数、格式化读写函数(fprintf()和fscanf())