c语言必背代码大全(林志强)
对于刚学计算机编程的学生来说,编程的每一个知识都很重要。下面的小系列已经为大家编译好了C语言所需的背码,希望大家喜欢。
c语言必须记忆代码
1./*输出9*9公式。总共有9行9列,I控制行和j控制列。*/
#包括& quotstdio.h & quot
main()
{int i,j,result
for(I = 1;i<。10;i++)
{ for(j = 1;j<。10;j++)
{
结果= I * j;
printf(& quot;% d * % d = %-3d & quot;,I,j,结果);/*-3d表示左对齐,占3位数*/
}
printf(& quot;\\ n & quot);/*每行后换行*/
}
}
2./*经典问题:有一对兔子从出生后第三个月开始每月出生,小兔子长到第三个月以后每月出生一对兔子。如果兔子没死,每个月兔子总数是多少?
兔子定律是序列1,1,2,3,5,8,13,21...*/
main()
{
长f1、F2;
int I;
f1 = F2 = 1;
for(I = 1;i<。=20;i++)
{ printf(& quot;% 12ld % 12ld & quot,f1,F2);
if(I % 2 = = 0)printf(& quot;\\ n & quot);/*控制输出,每行四个*/
f1 = f1+F2;/*前两个月相加并分配到第三个月*/
F2 = f1+F2;/*前两个月相加并分配到第三个月*/
}
}
3./*判断101到200之间有多少个素数,输出所有素数和素数个数。
程序分析:判断素数的方法:用一个数除2到sqrt(这个数),如果能除尽,
表示这个数不是质数,而是质数。*/
#包括& quotmath.h & quot
main()
{
int m,I,k,h=0,leap = 1;
printf(& quot;\\ n & quot);
for(m = 101;m<。=200;m++)
{ k = sqrt(m+1);
for(I = 2;i<。= k;i++)
if(m%i==0)
{ leap = 0;打破;}
如果(leap) /*在内环结束后,leap仍然是1,那么M是素数*/
{ printf(& quot;%-4d & quot;,m);h++;
if(h%10==0)
printf(& quot;\\ n & quot);
}
leap = 1;
}
printf(& quot;\\ n总数为% d & quot,h);
}
4./*如果一个数恰好等于它的因子之和,这个数叫做“完全数”。比如6 = 1+2+3。设计
找出所有1000以内的完全数。*/
main()
{
static int k[10];
int i,j,n,s;
for(j = 2;j<。1000;j++)
{
n =-1;
s = j;
for(I = 1;i<。j .i++)
{ if((j % I)= 0)
{ n++;
s = s-I;
k[n]= I;
}
}
if(s==0)
{ printf(& quot;%d是万舒:,j);
for(I = 0;i<。n;i++)
printf(& quot;%d,quot,k[I]);
printf(& quot;% d \\ n & quot,k[n]);
}
}
}
5./*以下程序的功能是将4×4阵列逆时针旋转90度后输出。要求原数组的数据随机输入,新数组以4行4列输出。
请在空空白处改进程序。*/
main()
{ int a[4][4],b[4][4],I,j;/*a存储原始数组数据,B存储旋转后的数组数据*/
printf(& quot;输入16个数字:);
/*输入一组数据存储在数组A中,然后旋转存储在数组B中*/
for(I = 0;i<。4;i++)
for(j = 0;j<。4;j++)
{ scanf(& quot;% d & quot,& ampa[I][j]);
b[3-j][I]= a[I][j];
}
printf(& quot;数组b:\\ n & quot;);
for(I = 0;i<。4;i++)
{ for(j = 0;j<。4;j++)
printf(& quot;% 6d & quot,b[I][j]);
printf(& quot;\\ n & quot);
}
}
6./*编程打印直角杨辉三角形*/
main()
{int i,j,a[6][6];
for(I = 0;i<。=5;i++)
{ a[I][I]= 1;a[I][0]= 1;}
for(I = 2;i<。=5;i++)
for(j = 1;j<。= I-1;j++)
a[I][j]= a[I-1][j]+a[I-1][j-1];
for(I = 0;i<。=5;i++)
{ for(j = 0;j<。= I;j++)
printf(& quot;% 4d & quot,a[I][j]);
printf(& quot;\\ n & quot);}
}
7./*通过键盘输入4门课3个学生的分数。
求每个学生的平均分和每门课的平均分。
所有等级要求排列成4行5列的阵列。录入时,同一个人的数据要用空录入,不同的人要用Enter
最后一列和最后一行分别显示每个学生的平均成绩、每个课程的平均成绩和班级的总平均成绩。*/
#include <。stdio.h>。
#include <。stdlib.h>。
main()
{ float a[4][5],sum1,sum2
int i,j;
for(I = 0;i<。3;i++)
for(j = 0;j<。4;j++)
scanf(& quot;% f & quot,& ampa[I][j]);
for(I = 0;i<。3;i++)
{ sum 1 = 0;
for(j = 0;j<。4;j++)
sum 1+= a[I][j];
a[I][4]= sum 1/4;
}
for(j = 0;j<。5;j++)
{ sum 2 = 0;
for(I = 0;i<。3;i++)
sum 2+= a[I][j];
a[3][j]= sum 2/3;
}
for(I = 0;i<。4;i++)
{ for(j = 0;j<。5;j++)
printf(& quot;% 6.2f & quot,a[I][j]);
printf(& quot;\\ n & quot);
}
}
8./*改进程序,以逆序输出输入字符串。
例如输入窗口输出swodniw。*/
#include <。string.h>。
main()
{ char cfor(j = I+1;j<。n;j++),C1;
int i,j,k;
printf(& quot;请输入一个字符串:);
scanf(& quot;% s & quot,c);
k = strlen(c);
for (i=0,j = k-1;i<。k/2;i++,j -)
{ C1 = c[I];c[I]= c[j];c[j]= C1;}
printf(& quot;% s \\ n & quot,c);
}
指针方法:
无效反转(char *s)
{int i,j,k;
char t;
k = strlen(s);
for(i=0,j = k-1;i<。k/2;i++,j -)
{ t = *(s+I);*(s+I)= *(s+j);*(s+j)= t;}
}
main()
{ FILE * fp
char str[200],*p,I,j;
if((FP = fopen(& quot;p9 _ 2.out & quot,& quotw & quot))= =空)
{ printf(& quot;无法打开文件\\ n & quot);
退出(0);
}
printf(& quot;输入字符串:\\ n & quot);
get(str);
printf(& quot;\\ n % s & quot,str);
fprintf(FP ,& quot;% s & quot,str);
invert(str);
printf(& quot;\\ n % s & quot,str);
fprintf(FP ,& quot;\\ n % s & quot,str);
fc lose(FP);
}
9./*以下程序的功能是从字符数组s中删除存储在C中的字符. */
#include <。stdio.h>。
main()
{ char s[80],c;
int j,k;
printf(& quot;\\ n输入字符串:& quot);
获取(s);
printf(& quot;\\ n输入一个字符:& quot);
c = getchar();
for(j = k = 0;s[j]!= '[185]';j++)
if(s[j]!=c)
s[k++]= s[j];
s[k]= & # 39;[188]';
printf(& quot;\\ n % s & quot,s);
}
10./*写一个void sort(int *x,int n)实现x数组中n个数据由大到小
排序。在主函数中输入n和数组元素。结果显示在屏幕上,并输出到文件p9_1.out */
#include<。stdio.h>。
void sort(int *x,int n)
{
int i,j,k,t;
for(I = 0;i<。n-1;i++)
{
k = I;
[200]
if(x[j]>;x[k])k = j;
if(k!=i)
{
t = x[I];
x[I]= x[k];
x[k]= t;
}
}
}
void main()
{ FILE * fp
int *p,I,a[10];
FP = fopen(& quot;p9 _ 1.out & quot,& quotw & quot);
p = a;
printf(& quot;输入10个数字:& quot);
for(I = 0;i<。10;i++)
scanf(& quot;% d & quot,p++);
p = a;
sort(p,10);
for(;p<。a+10;p++)
{ printf(& quot;% d & quot,* p);
fprintf(FP ,& quot;% d & quot,* p);}
系统(& quot暂停& quot);
fc lose(FP);
}
大学C语言必须背基础知识
1、scanf(\"a=%d,b=%d \",& ampa & amp。b)考试超级专注!记得在终端以第一部分的格式输入数据。考试的核心是:一模一样。在黑屏上输入a=12和b=34,给a和b正确的12和34。一点都不不同。
2、scanf(\"%d,%d \",x,y);这个写法绝对不对,scanf的第二部分一定是地址!scanf(\"%d,%d \",& ampx,amp。y);注意这样写!
3.特别注意scanf中指针的考察,比如:int x = 2;int * p = & ampx;scanf(\"%d \",x);错误scanf (\"%d \",p);Scanf(\"%d \"正确(\" %d \",&:p);错误扫描(\" %d \",*p)错误
4.指定输入的长度(考试重点)。终端输入:1234567 scanf (\"-m% d \",&: x,& ampy,amp。z);x是12,y是3456,z是7。终端输入:1 234567因为在1和2之间有一个空空格,所以只给xscanf (\"-m% d \",& amp;x & amp;y,amp。z);x是1,y是2345,z是67
5.字符和整数是近亲:int x = 97printf(\"%d \",x);结果是97printf (\"%c \",x);结果是一个。