大一c语言基础知识大全(大一c语言基础知识大全word)

http://www.itjxue.com  2023-02-04 15:13  来源:未知  点击次数: 

电脑的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等都是高级语言)

(责任编辑:IT教学网)

更多