大一c语言基础知识大全(大一c语言基础知识大全word)
电脑的C语言一些基础知识
我先写几个例子:
void main
( int x,y,temp;
printf("\nplease input two int number:");
scanf("%d%d",x,y);
printf("\nbefore changed x=3d% y=%3d",x,y);
temp=x;
x=y;
y=temp;
printf("\n after changed x=%3d y=%3d",x,y);
}
第一个问题:就是那个%3d是什么意思,可不可以省掉?
答:这个代表输出的内容占3位空间,省略的话会使表达式失去原本的意义。
第二个问题:就是最后的那个printf好象有好多种表达形式,比如printf("%f mile=%f km\n",mile ,km); printf("%5.2f",s)等等,到底用哪种形式表达比较简单易懂一点啊,
答:printf("%f mile=%f km\n",mile ,km); 这个的意思是:%f表示是float,也就是要求结果按照字符型输出,而mile=可以有也可以没有。结果不会影响但是显示的内容有一点不同。
如果有的话结果就是“mile=****”,如果没有的话结果就是“****”。
(****表示最后的内容)
printf("%5.2f",s)的意思是输出的结果为小数点前占5位,小数点后占2位,如果小数点后有3位的话则会自动四舍五入。
其实这些都是最后表现出来的形式,主要是您想要最后的结果怎么样体现。
自己去网上查啊,这样印象深
C语言的基本知识。
C语言的基本知识;if-else 结构的应用:
编写计算器程序,要求从键盘任意输入两个数值,然后输入一个四则运算符,自动完成后输出结果 2 switch 结构的应用:
从键盘输入一个百分制成绩,要求输出成绩等级'A''B'C''D''E'。90分以上为'A',80-89为'B',70-79为'C',60-69为'D',60分以下为'E'.
#includestdio.h
void main()
{float score; brchar grade; brprintf("请输入学生成绩:\n"); brscanf("%f",score); brswitch((int)(score/10)) br{case 10: brcase 9: grade='A';break; brcase 8: grade='B';break; brcase 7: grade='C';break; `brcase 6: grade='D';break; brcase 5: case 4: case 3: case 2: case 1: brcase 0: grade='E'; br}
printf("成绩是%5.1f,相应等级是%c。\n",score,grade);
}
3 do-while循环的应用:
利用下述公式求PI的近似值,要求满足计算精度为0.0001
PI/4≈1-1/3+1/5-1/7+1/9-...
#includestdio.h
#includemath.h
void main()
{int s; brfloat n,t,pi; brt=1;pi=0;n=1.0;s=1; brdo br{ brpi=pi+t; brn+=2; brs=-s; brt=s/n; br}
while(fabs(1/n)1e-4);
printf("pi=%10.6f",4*pi);
}
4 for循环的应用:
(1)求素数的累加和.从键盘任意输入20个整数,将所有素数累加后输出.
#includestdio.h
#includemath.h
prime(int x[],int n)
{int i,j,k,s=0; brfor(i=0;in;i++) br{k=sqrt(x[i]); brfor(j=2;j=k;j++) brif(x[i]%j==0) break; brif(jk) s+=x[i]; br}
return s;
}
main()
{int a[20],*p,s=0,i; brp=a; brfor(i=0;i20;i++) brscanf("%d",p++); brp=a; brs=prime(p,20); brprintf("%d",s); br}
(2)无重复数字的3位数问题.用1.2.3.4 组成无重复数字的3位数,将这些3位数据全部输出.
#includestdio.h
void main()
{
int i,j,k;
for(i=1;i=2;i++)
{
for(j=i+1;j=3;j++)
{
for(k=j+1;k=4;k++)
{
printf("%d\n",100*i+10*j+k);
printf("%d\n",100*i+10*k+j);
printf("%d\n",100*j+10*i+k);
printf("%d\n",100*j+10*k+i);
printf("%d\n",100*k+10*i+j);
printf("%d\n",100*k+10*j+i);
}
}
}
}
5 字符型数组应用:
设计程序.输入一篇不超过80个字符的短文(包括空格),保存到一维字符数组中,求字母a出现的次数并输出.
#includestdio.h
#includestring.h
void main()
{char s[80]; brint i,n,times=0; brgets(s); brn=strlen(s); brfor(i=0;in;i++) brif(s[i]=='a') brtimes+=1; brprintf("\n The result is:%d\n",times); br}
6 数值型数组应用:
设计程序 将Fibonacci数列前20项中的奇数找出来存放到一维数组中.
#includestdio.h
void main()
{int i,s=0,j=0; brint f[20]={1,1},a[20];
for(i=2;i20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i20;i++)
{if(i%5==0) brprintf("\n"); brprintf("%12d",f[i]); br}
printf("\n");
for(i=0;i20;i++)
if(f[i]%2!=0)
{a[j]=f[i];j+=1;}
for(i=0;ij;i++)
printf("%d ",a[i]);
}
7 函数调用(形参为变量的情况):
用函数调用的方式求 x!+y!+z!之值.
#includestdio.h
sum(int a)
{int n,t=1; brfor(n=1;n=a;n++) brt*=n; brreturn t; br}
main()
{int x,y,z,s=0; brscanf("%d %d %d",x,y,z); brs=sum(x)+sum(y)+sum(z); brprintf("%d!+%d!+%d!=%d\n",x,y,z,s); /pp br2008-6-19 20:22 回复 br brmuniezuo br1位粉丝 br 2楼/pp}
8 函数调用(形参为数组名的情况):
选择法排序函数的定义及使用.编写一个用选择法对一维数组升序排列的函数,并在主函数中调用该排序函数,实现对任意20个整数的排序.
#includestdio.h
sort(int x[],int n)
{int i,j,k,t; brfor(i=0;in-1;i++) br{k=i; brfor(j=i+1;jn;j++) brif(x[j]x[k]) k=j; brif(k!=i) br{t=x[i];x[i]=x[k];x[k]=t;}
}
}
main()
{int *p,i,a[20]; brp=a; brfor(i=0;i20;i++) brscanf("%d",p++); brp=a; brsort(p,20); brfor(p=a,i=0;i20;i++) br{printf("%d ",*p);p++;}
}
9 指针
(1)程序填空
下面程序中,函数fun的功能是:将s所指字符串中下标为偶数的字符删除,s中剩余的字符形成的新串放在t所指的数组中.例如,当s所指字符串中的内容为"ABCDEFGHIJK",在t 所指数组中的内容应是"BDFHJ"
#includeconio.h
#includestdio.h
#includestring.h
void fun(char *s,char t[])
{int i,j,n; brn=strlen(s); brfor(i=0,j=0;in;i++) brif(i!=2*j) br{t[j]=s[i];j++;}
t[j]='\0';
}
void main()
{char s[80],t[80]; brprintf("\n Please enter string s: "); brscanf("%s",s); brfun(s,t); brprintf("\n The result is:%s\n",t); br}
(2)程序改错
下面程序中的sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中.
#include"stdio.h"
#include"conio.h"
#include"string.h"
void sub(char *s,char *t)
{int i,d; brd=strlen(s); brfor(i=0;id;i++) brt[i]=s[d-1-i]; brfor(i=0;id;i++) brt[d+i]=s[i]; brt[2*d]='\0'; br}
main()
{char s[100],t[100]; brprintf("\n Please enter string s:"); brscanf("%s",s); brsub(s,t); brprintf("\n The result is : %s \n",t); br}
10 结构体:有10个学生,4门课成绩,设计程序,计算每个学生的总分和平均分,
并打印学生的成绩排名表.
要求:定义结构体类型,成员有学号,姓名,4科成绩
#includestdio.h
#define N 10 struct student
{
long num;
int score[4];
int add;
double aver;
}stu[N]; void main()
{
int i,j,sum;
char c[4][10]={"math","English","computer","physics"};
void paixu(struct student stu[]);
printf("请输入学生的成绩:\n");
for(i=0;iN;i++)
{sum=0; brprintf("输入第%d个学生的学号:",i+1); brscanf("%ld",stu[i].num); brfor(j=0;j4;j++) br{printf("输入%s成绩:",c[j]); brscanf("%d",stu[i].score[j]); brsum+=stu[i].score[j];}
stu[i].add=sum;
stu[i].aver=stu[i].add/4.0;
}
for(i=0;iN;i++)
a[i]=stu[i].add;
paixu(stu);
for(i=0;iN;i++)
printf("%d\t%ld\t%d\t%d\t%d\t%d\t%d\t%6.2f\n",i+1,stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].add,stu[i].aver);
}
void paixu(struct student stu[])
{
int i,j;
struct student t;
for(i=0;iN-1;i++)
for(j=i+1;jN;j++)
if(stu[j].addstu[i].add)
{t=stu[j];stu[j]=stu[i];stu[i]=t;}
}
11 文件:建立一个数据文件,将10题中的成绩排名表写入数据文件中,完成后,关闭该数据文件;打开数据文件并将内容显示在屏幕上,以便验证
#includestdio.h
#define N 10 struct student
{
long num;
int score[4];
int add;
double aver;
}stu[N]; void save()
{FILE *fp; brint i; brif((fp=fopen("stu_list","wb"))==NULL) br{printf("cannot open file\n"); brreturn; br}
for(i=0;iN;i++)
if(fwrite(stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
} void main()
{FILE *fp; brint i,j,sum; brchar c[4][10]={"math","English","computer","physics"};
void paixu(struct student stu[]);
printf("请输入学生的成绩:\n");
for(i=0;iN;i++)
{sum=0; brprintf("输入第%d个学生的学号:",i+1); brscanf("%ld",stu[i].num); brfor(j=0;j4;j++) br{printf("输入%s成绩:",c[j]); brscanf("%d",stu[i].score[j]); brsum+=stu[i].score[j];}
stu[i].add=sum;
stu[i].aver=stu[i].add/4.0;
}
paixu(stu);
save();
fp=fopen("stu_list","rb");
for(i=0;iN;i++)
{fread(stu[i],sizeof(struct student),1,fp); brprintf("%d\t%ld\t%d\t%d\t%d\t%d\t%d\t%6.2f\n",i+1,stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].add,stu[i].aver); br}
fclose(fp);
} void paixu(struct student stu[])
{
int i,j;
struct student t;
for(i=0;iN-1;i++)
for(j=i+1;jN;j++)
if(stu[j].addstu[i].add)
{t=stu[j];stu[j]=stu[i];stu[i]=t;}
}
c语言的基础知识
1、如果do_a_process() 的返回值不是等于 OKAY这个宏,那么进入if循环里面
2、可以使用c = (a b) ? a : b这个
C语言 基础知识
我弟弟今年也是初二,看到我用C语言编的程序,他就很想学习C语言;但是,因为不常用么,寒假给他讲过的东西,到暑假我回去再问他,什么都不记得了。
所以,现在你们还是好好学习初中的知识吧,到高中二年级数学课本中会有有关
"高级语言"编程的内容(B语言与算法初步,那个还是比较适合中学生学习的)。
(高级语言是指比较贴近人们用于习惯的计算机编程语言,B语言、C语言系列(C++,C#)、JAVA等都是高级语言)