C语言实习报告

C语言实习报告
C语言实习报告

设计报告

一,实验目的:

通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。在实习中通过

实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知

识点。

C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点,上

机实习可以帮助我们更好地理解这种结构式的

中级语言以及其各式各样的数据类型和高效率

的运算程序,为我们进一步学习C++打下坚实基

础。

同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而

且也让我们发现了一些自己的个人误区以及其

他人容易犯的错误,从而在今后的学习中更加谨

慎,达到事半功倍的效果;通过询问老师,也让

我们养成了不耻下问的好习惯,这将很有利于以

后的学习。

闲乐-一个人闲。不如大家一块儿乐https://www.360docs.net/doc/1013798024.html,

二,总体设计:

1,学生成绩排名

1,流程图:

<通过冒泡法对数组进行排序>

<测试时由于循环语句循环次数的错误导致部分数据没有排序,修改FOR语言中的条件即可调试成功>

2,程序:

#include

int main()

{

int a[11],i,j,t,b,c,temp1,temp2,temp3; //定义一个数组a[11],用以存放学生的成绩

printf("从键盘输入10个学生成绩:\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]); //输入10个学生成绩

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

if(a[j]

{t=a[j];a[j]=a[j+1];a[j+1]=t;} //采用冒泡法,将学生成绩按照从高到低进行排序

printf("10个学生成绩数组:\n");

for(i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

printf("再输入一个学生的成绩\n");

scanf("%d",&b); //再输入一个学生的成绩

c=a[9];

if(b

a[10]=b;

else

{for(i=0;i<10;i++)

{if(a[i]

{temp1=a[i];a[i]=b;

for(j=i+1;j<11;j++)

{temp2=a[j];a[j]=temp1;temp1=temp2;

}break;

}

}

}

printf("11个学生成绩数组:\n"); //输入11个学生成绩

for(i=0;i<11;i++)

printf("%5d",a[i]);

printf("\n");

for(i=0;i<5;i++) //排好序的成绩单进行反序存放{

temp3=a[i];

a[i]=a[10-i];

a[10-i]=temp3;

}

printf("排好序的成绩单进行反序存放为:\n");

for(i=0;i<11;i++) //输出反序存放后的学生成绩数组printf("%5d",a[i]);

printf("\n");

return 0;

}

3,运行结果:

2,根据条件进行学生成绩排名1

Sort1

Sort3

2,程序:

#include

void sort1(int a[10]) //定义函数 { int i,j,t; printf("输入10个学生成绩:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); //输入n 个学生成绩

for(i=0;i<10;i++) //冒泡法对n 个数字排序 for(j=0;j<9-i;j++) if(a[j]

printf("10个学生成绩从高到低排名是:\n");

for(i=0;i<10;i++) //输出结果 printf("%5d",a[i]); printf("\n"); }

void sort2(int a[],int n) //定义函数 { int i,j,t;

printf("请输入学生个数n:\n"); scanf("%d",&n); printf("输入n 个学生成绩:\n"); for(i=0;i

for(i=0;i

for(i=0;i

void sort3(int a[],int n, char style) { char c; getchar(c);

printf("请输入style 类型:a or d\n"); style=getchar(); printf("请输入学生个数n:\n"); scanf("%d",&n); printf("输入n 个学生成绩

:\n");

int i,j,t;

for(i=0;i

scanf("%d",&a[i]);

if(style==97)

{ printf("对n个数字升序排列为:\n");

for(i=0;i

for(j=0;j

if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

else if(style==100)

{ printf("对n个数字降序排列为:\n");

for(i=0;i

for(j=0;j

if(a[j]

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

printf("n个学生成绩排名是:\n");

for(i=0;i

printf("%5d",a[i]);

printf("\n");

}

int main() //主函数

{

{printf("sort1:\n"); //调用sort1函数

int a[10];

sort1(a);}

{printf("sort2:\n"); //调用sort2函数

int a[30000],n;

sort2(a,n);}

{printf("sort3:\n"); //调用sort3函数

int a[30000],n;

char style;

sort3(a,n,style);}

return 0;

}

<这个程序中输入字符时由于前面的程序的干扰,第一个输入字符语句会直接跳过,所以要另加一个空白的输入字符的语言,从而使程序中输入字符的语句能够正常运行>

<由于数组的长度必须要定义,而且不能用变量定义,鉴于要进行比较的数据量n是一个整

形的数,定义数组为一个较长数组即可> 3,运行结果:

3,用指针优化学生成绩排名1,流程图:

Sort copy

main

2,程序:

#include #include

void sort(int *p) //定义函数sort

{ //将成绩数组按照从高到低进行排序,要求用函数实现 int i,j,t; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(*(p+j)<*(p+j+1)) {t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;} }

void copy(char *a,char *b) //定义函数copy { for(;*a!='\0';a++,b++) // 复制该字符串,用函数实现 { *b=*a;}

*b='\0';

}

int main()

{

int i,j,t,stu[10],*p; // 定义一个数组stu[10]存放10个学生的成绩

p=stu;

printf("请输入10个数据:\n");

for(i=0;i<10;i++) //从键盘输入数据,用指针实现

scanf("%d",p+i);

printf("数组stu[10]的内容为:\n");

for(i=0;i<10;i++) //将数组stu[10]的内容输出到屏幕上,用指针实现

printf("%5d",*(p+i));

printf("\n");

for(i=0;i<9;i++) //将成绩数组按照从高到低进行排序,用指针实现

for(j=0;j<9-i;j++)

if(*(p+j)<*(p+j+1))

{t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}

printf("成绩数组按照从高到低进行排序为:\n");

p=stu;

for(i=0;i<10;i++)

printf("%5d",*(p+i));

printf("\n");

p=stu;

sort(p); //调用函数sort

printf("第三步内容放在函数中实现为:\n");

for(i=0;i<10;i++)

printf("%5d",*(p+i));

printf("\n");

printf("采用指针方法,输入字符串student score: \n");

char *a="student score";

char b[14];

copy(a,b); //调用函数copy

printf("%s\n",b);

return 0;

}

<指针的传递是双向的,在赋值中有多种方法,比如说对数组直接赋值,或者直接对指针变量进行赋值>

<复制该字符串,用函数实现时是用循环语句把一个字符串的每一个字符赋值给另一个字符串>

3,运行结果:

4,学生成绩单制作1,流程图:

Return 0

<结构体语言具有简洁,方便,模块化的特点,在初始化及输出过程中要注意输入输出方式>

<在输入字符串的时候,输入语句中不应有&>

2,程序:

#include

StructStudent

//定义结构体

{

char number[10];

char name[10];

int score[3

];

float average;

}student[10];

int main()

{

int i,j,t;

for(i=0;i<10;i++)

//初始化结构体

{printf("\n输入student%d成绩:\n",i+1);

printf("number:");

scanf("%s",student[i].number);

printf("name:");

//存放10个学生的学号,姓名,三门课的成绩

scanf("%s",student[i].name);

for(j=0;j<3;j++)

{printf("score %d:",j+1);

scanf("%d",&student[i].score[j]);

}

student[i].average=(student[i].score[0]+student[i].score[1]+student[i].score[2])/3.0;

printf("average:%f",student[i].average);

}

printf("\n");

printf("输出数学成绩最高的学生的学号、姓名、以及该门课程的成绩:\n"); //输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩

int max=0,max_math=0,max_chinese=0,max_english=0,max_average=0,max_i=0;

for(i=0;i<10;i++)

{

if(max_math

{ max_math=student[i].score[0];

max_i=i;}

}

printf("number=%s,name=%s,max_math=%d\n",student[max_i].number,student[max_i].name,stu dent[max_i].score[0]);

printf("输出中文成绩最高的学生的学号、姓名、以及该门课程的成绩:\n");

for(i=0;i<10;i++)

{

if(max_chinese

{ max_chinese=student[i].score[1];

max_i=i;}

}

printf("number=%s,name=%s,max_chinese=%d\n",student[max_i].number,student[max_i].name,s tudent[max_i].score[1]);

printf("输出中文成绩最高的学生的学号、姓名、以及该门课程的成绩:\n");

for(i=0;i<10;i++)

{

if(max_english

{ max_english=student[i].score[0];

max_i=i;}

}

printf("number=%s,name=%s,max_english=%d\n",student[max_i].number,student[max_i].name,s tudent[max_i].score[2]);

printf("输出三门课程的平均分数最高的学生的学号、姓名及其平均分:\n"); //输出三门课程的平均分数最高的学生的学号、姓名及其平均分

for(i=0;i<10;i++)

{

if(max_average

{ max_average=student[i].average;

max_i=i;}

}

printf("number=%s,name=%s,max_average=%f\n",student[max_i].number,student[max_i].name,s tudent[max_i].average);

for(i=0;i<9;i++)

//将10个学生按照平均分数从高到低进行排序

for(j=0;j<9-i;j++)

if(student[j].average

{t=student[j].average;student[j].average=student[j+1].average;student[j+1].average=t;}

printf(" number name math Chinese English average\n");

for(i=0;i<10;i++)

//输出排序后的结果

printf("%8s%8s%9d%9d%9d %6.2f\n",student[i].number,student[i].name,student[i].scor e[0],student[i].score[1],student[i].score[2],student[i].average);

return 0; 3,运行结果:

C语言常用函数

C语言的常用库函数 函数1。absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void *buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num 个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h 函数2。abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h 函数3。atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h 函数4。atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h 函数5。atol()将字符串转换成长整型数的函数 原形:long atol(const char *s)

计算机c语言二级考试复习资料

第一章C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。 第三章数据类型、运算符和表达式

C语言中常见的功能函数

C语言中常见的功能函数(应掌握的编程) 1、两个变量值的交换 void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z; z=*x; *x=*y; *y=z; } void main() {float a,b; scanf(“%f%f”,&a,&b); exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 2、判断一个整数的奇偶 int jou(int n) /*如果是奇数返回1,否则返回0*/ { if(n%2==0) return 0; return 1; } 3、小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。 char toupper1(char ch) {if(ch>=?a?&&ch<=?z?) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch; } 4、判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 int isalpha1(char ch) /*判断是否是字母*/ {if(ch>=?A?&&ch<=?Z?||ch>=?a?&&ch<=?z?) return 1; else return 0; } int isdigit1(char ch) /*判断是否是数字字符*/ {if(ch>=?0?&&ch<=?9?) return 1; else return 0; } 5、根据学生成绩,返回其等级 char fun(float cj) {char c; switch((int)cj/10) {case 10:

C语言考试重点(考前必看,吃透必过)

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe 文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。

C语言常用IO函数

一些比较常用的io函数,总结了一下,一块贴出来了 stdin标准输入流 stdout标准输出流 stderr标准错误流 字符IO函数 1.int getchar() 说明:从stdin读取1个字符 返回值:成功,返回该字符;出错,返回EOF; 2.int fgetc(FILE fp) 说明:功能同getchar,默认从文件fp读取; 返回值:成功,返回该字符;出错,返回EOF; 可以重定向 3.int getc(FILE fp) 说明:功能与fgetc相同,但getc既可以被用作 函数实现,也可以被用作宏实现,并且它的编码效率 可能会更高. 可以重定向 4.int putchar(int ch) 说明:向stdout输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 5.int fputc(int c,FILE fp) 说明:功能同putchar,默认向fp输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 6.int putc(int c,FILE fp) 说明:功能与fputc相同,但putc与getc一样既可能被用作 函数实现,也可能被用作宏实现,并且它的编码效率可能会更高;可以重定向 字符串IO函数 1.char gets(char str) 说明:从stdin读取字符串(不包括'n')写入到字符串str中; 返回值:成功,返回str首地址;错误,返回NULL; 2.char fgets(char str,int N,FILE fp) 说明:默认从文件fp中读取N个字符(包括'n')写入到字符串str中,

如果实际输入字符串小于N,fgets自动添加'n', 返回值:成功,返回字符串首地址;错误或遇到EOF,返回NULL;可以重定向 3.int puts(const char str) 说明:向stdout输出字符串str,然受输出一个'n', 返回值:成功,返回非负值;错误,EOF; 4.int fputs(const char str,FILE fp) 说明:功能同puts,默认向文件fp写入字符串str; 返回值:成功,返回非负值;错误,EOF; 可以重定向 格式化IO函数 1.int scanf(const char format,...) 说明:根据format从stdin格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 2.int fscanf(FILE fp,const char format,...) 说明:功能同scanf,默认从文件fp读取, 返回值:成功,返回读取的项数;出错或遇到文件尾,返回EOF 可以重定向 3.int sscanf(const char buf,const char format,...) 说明:根据format从buf格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 4.int printf(const char format,...) 说明:根据format格式化数据,并输出到stdout 返回值成功,返回输出字符数;错误,返回负数; 5.int fprintf(FILE fp,const char format,...) 说明:功能同printf,默认向文件fp写入; 可以重定向 6.int sprintf(char buf,const char format,...) 说明:根据format格式化数据,并输出到buf, 返回值:成功,返回输出字符数;错误,返回负数

最新C语言考试复习题

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

D.语句的书写对程序的运行不起作用,因此可以随便写都可以 7.以下各标识符中,合法的用户标识符组为。 A.PAd,P#d,b-b,abc,_0123,ssiped B.cin,a10,CPP,float,del_word,signed C.void,max,hiy,,list,*jer D.a,temp,_isw,INT,keep,wind 8.字符串“\”E OF= -\61\””的长度是。 A.8 B.9 C.12 D.非法字符串9.数学式x sin在C程序中对应的不正确的表达式为。 A.sqrt(sin(x)>0?sin(x):-sin(x)) B.sqrt(fabs(sinx)) C.sqrt(sqrt(sinx*sinx)) D.fabs(sqrt(sin(x))) 10.下列是C语言的有效标识符? A._No1 B.No.1 C.12345 D.int 11.C语言中,表示一条语句结束的标号是 A.# B.; C.// D.} 12.每个C程序中都必须有且仅有一个 A.类B.预处理命令C.主函数D.语句13.下列数据类型不是C语言基本数据类型的是。 A.字符型B.整型C.实型D.数组 14.下列字符列中,可作为C语言程序自定义标识符是。 A.switch B.file C.break D.do 15.运算符+、<=、=、% 中,优先级最低的运算符是。 A.+ B.<= C.= D.% 16.下列字符列中,可以作为“字符串常量”的是。 A.ABC B.″xyz″ C.′uvw′ D.′a′ 17.设变量m,n,a,b,c,d均为0,执行(m = a= =b)||(n=c= =d)后,m,n的值是。 A.0,0 B.0,1 C.1,0 D.1,1 18.字符串"vm\x43\\\np\102q"的长度是。 A.8 B.10 C.17 D.16

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

C语言复习

2. 下列可用于C语言用户标识符的一组是 A)void, define, WORD B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof 3. 若有说明语句:char c='\72';则变量c A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定 4. 有字符串如下,"\n\\as1xabc",则字符串的长度为 A)8 B)9 C)10 D)11 5. C语言中运算对象必须是整型的运算符是 A)%= B)/ C)= D)<= 6. 若变量已正确定义并赋值,以下符合C语言语法的表达式是 A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b 7. 若变量a,i已正确定义,且i已正确赋值,合法的语句是 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 8. 若有定义:int a=7; float x=2.5,y=4.7; , 则表达式x+a%3*(int)(x+y)%2/4的值是 A)2.500000 B)2.750000 C)3.500000 D)0.000000 9. 已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为 A)2 B)3 C)4 D)5 10. 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为 A)int B)float C)double D)不确定 11. 设有int x=11;则表达式(x++*1/3)的值是 A)3 B)4 C)11 D)12 12. 以下程序的输出结果是 void main() { int a=21,b=11; printf("%d\n",- -a+b,- -b+a); } A)30 B)31 C)32 D)33 13. 已知int a=6; 则执行a+=a-=a*a;语句后,a的值为 A)36 B)0 C)-24 D)-60 14. 在内存中,存储字符′x′要占用1个字节,存储字符串″X″要占用个字节

C语言考试总结复习要点总结.doc

C语言考试复习要点 1.程序结构是三种:顺序结构, 循环结构 (三个循环结构 ), 选择结构 (if 2.读程序都要从main() 入口 , 然后从最上面顺序往下读(碰到循环做循环 3.计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是是位是指为0或者1。byte是指字节,一个字节=八个位. 5.一定要记住二进制如何划成十进制。和 switch) ,碰到选择做选择 他的地址 . )。 概念常考到的: 编译预处理不是 C 语言的一部分,不占运行时间,不要加分号。 C 语言编译的程序称为源程序,它以ASCII 数值存放在文本文件中。 每个 C 语言程序中main 函数是有且只有一个。 在函数中不可以再定义函数。 算法的是一定要有输出的,他可以没有输入。 break 可用于循环结构和switch 语句。 逗号运算符的级别最低。 第一章 1)合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。 main define scanf printf 都不是关键字。迷惑你的地方 If 是可以做为用户标识符。因为 If 中的第一个字母大写了,所以不是关键字。 2)实型数据的合法形式: 就是合法的,且数据是×10-1 。 考试口诀: e 前 e 后必有数, e 后必为整数 3)字符数据的合法形式:: '1' 是字符占一个字节,"1" 是字符串占两个字节(含有一个结束符号 )。 '0' 的 ASCII 数值表示为48, 'a' 的 ASCII 数值是 97, 'A' 的 ASCII 数值是 65。 一般考试表示单个字符错误的形式:'65'"1" 字符是可以进行算术运算的,记住:'0'-0=48 大写字母和小写字母转换的方法:'A'+32='a' 相互之间一般是相差32。 4)整型一般是两个字节, 字符型是一个字节,双精度一般是 4 个字节: 考试时候一般会说,在 16 位编译系统,或者是32 位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是 4 个字节就可以了。5)转义字符的考查: 在程序中 int a = 0x6d ,是把一个十六进制的数给变量 a 注意这里的0x 必须存在。 在程序中 int a = 06d, 是一个八进制的形式。 在转义字符中,’ x6d’才是合法的,0 不能写,并且x 是小写。 141’是合法的,0 是不能写的。 ‘108’是非法的,因为不可以出现8 。 6)算术运算符号的优先级别: 同级别的有的是从左到右,有的是从右到左。 7)强制类型转换: 一定是(int)a不是int (a),注意类型上一定有括号的。 注意( int )( a+b )和( int ) a+b的区别。前是把a+b转型,后是把 a 转型再加b。8)表达式的考查:

2020全国计算机等级考试二级C语言知识点全套复习提纲(精华版)

全国计算机等级考试二级C语言全套复习提纲(精华 版)

目录 第一部分公共 基础知识 第1 章算法与数据结构 (1) 考点1 算法 (1) 考点2 数据结构 (1) 考点3 线性表及其顺序存储结构 (1) 考点4 栈和队列 (1) 考点5 线性链表 (2) 考点6 树与二叉树 (2) 考点7 查找技术 (3) 考点8 排序技术 (3) 第2 章程序设计基础.4 考点1 程序设计方法 与风格 (4) 考点2 结构化程序设计 (5) 考点3 面向对象的程序设计 (5) 第3 章 . 软件工程基础 5 考点1 软件工程基本概念 (5) 考点2 软件分析方法6 考点3 结构化设计方法 (7) 考点4 软件测试 (8) 考点5 程序的调试 (9) 第4 章数据库设计基础

(9) 考点1 数据库系统的基本概念 (9) 考点2 数据库系统的基本概念 (10) 考点3 关系代数 (12) 考点4 数据库设计与管理 (12) 第二部分二级 C 语言 第1 章程序设计基本概念 (14) 考点1 程序设计 (14) 考点2 C 程序的结构和格式 (14) 考点3 常量和变量.14 考点4 算术表达式.15 考点5 赋值表达式 .16 考点6 自加、自减和逗号运算 (16) 第2 章顺序结构 (17) 考点1 字符型常量与变量 (17) 考点2 putchar 与getchar 函数 (17) 考点3 printf 函数 (17) 考点4 scanf 函数 (18) 考点5 位运算的含义和应用 (18) 第3 章选择结构 (19) 考点1 关系运算符和关系表达式 (19) 考点2 逻辑运算符和逻辑表达式 (19)

C语言中常用的库函数

字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin

反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。

C语言期末考试全部知识点复习

C语言知识点复习资料 考试就是难得得训练自己得机会,在特定得时间、特定得地点、特定得气氛下,您需要调动各方面得能力。而在每一次考试中,我都下意识地应用自己摸索出来得“目标控制法”,做到了每次考试有有收获与进步。每次考试前,我都会在一张白纸上写满通过本次考试要达到得目标:要注意克服哪些易犯得错误,尤其就是要克服前几次考试中暴露出来得共性得失误;要积累哪些经验,应用哪些技巧,比如选择题中得特征值法;要在多长得时间内完成卷面各部分,比如,争取35分钟内完成数学试卷中得选择题与填空题;要培养锻炼哪些考试应试得心理素质等。 也就就是说,我们要把考试瞧成就是一个完整得流程,包括考前准备、考场发挥与考后调整三个阶段。同学中存在得误区往往就是只注意考前得准备与考场得发挥两个阶段,对考后调整注意不够。事实上,高考之前得每一次模拟考试,最重要得就就是考试后得总结与反思,只有这样,才能认识到自己得薄弱环节,不断提高考试能力。所以,有心得同学一定要注意做好健全得考后调整,不断提高自己得实力。 总体上必须清楚得: 1.程序中基本得控制结构就是三种: 顺序结构、选择结构(分支结构)、循环结构。 2.读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3.计算机得数据在电脑中保存就是以二进制得形式、数据存放得位置就就是它得地址、 4.bit就是位就是指为0 或者1。 byte 就是指字节, 一个字节 = 八个位、5、编译预处理不就是C语言得一部分,不占运行时间,不要加分号。(常考!) #define PI 3、1415926; 这个写法就是错误得,一定不能出现分号。 6、每个C语言程序中main函数就是有且只有一个。 7、用C语言编写得程序称为源程序,扩展名就是、c。C程序必须经过编辑、 编译、链接、运行四个步骤才可得到运行结果。注意、c与、obj文件时无法运行得,只有、exe文件才可以运行。(常考!) 8、 C语言书写格式就是自由得,每行可以写多个语句,一条语句也可以写在多行。 9、一个C语言程序有且只有一个main函数,就是程序运行得起点。

C语言常见基本词汇及词汇解释

C语言常用基本词汇及其他提示语运算符与表达式: 1.constant 常量 2. variable 变量 3. identify 标识符 4. keywords 关键字 5. sign 符号 6. operator 运算符 7. statement语句 8. syntax 语法 9. expression 表达式 10. initialition初始化 11. number format 数据格式 12 declaration 说明 13. type conversion 类型转换 14.define 、definition 定义 条件语句: 1.select 选择 2. expression 表达式 3. logical expression 逻辑表达式 4. Relational expression 关系表达式 5.priority优先

6. operation运算 7.structure 结构 循环语句: 1.circle 循环 2. condition 条件 3. variant 变量 4. process过程 5.priority优先 6. operation运算 数组: 1. array 数组 2. reference 引用 3. element 元素 4. address 地址 5. sort 排序 6. character 字符 7. string 字符串 8. application 应用函数: 1.call 调用 2.return value 返回值 3.function 函数

4. declare 声明 5. `parameter 参数 6.static 静态的 7.extern 外部的 指针: 1. pointer 指针 2. argument 参数 3. array 数组 4. declaration 声明 5. represent 表示 6. manipulate 处理 结构体、共用体、链表: 1 structure 结构 2 member成员 3 tag 标记 4 function 函数 5 enumerate 枚举 6 union 联合(共用体) 7 create 创建 8 insert 插入 9 delete 删除 10 modify 修改

C语言常用函数名及用法

字符函数和字符串函数 头文件:字符串函数头文件:#include 字符函数头文件:#include putchar:输出一个 putchar(a):输出字符变量a的值,(其中a可为字符变量,整形变量,字符常量,整形常量) getchar:输入一个字符 a=getchar(); putchar(a);结果为b printf(格式控制符,输出列表); scanf(格式控制符,地址列表); 输入形式与格式控制部分对应 1.当为两个连续输入时:scanf(“%d%d”,&a,&b); 输入量数据之间可为:一个或多个空格,也可以用enter,tab无逗号时输入时不能用逗号作分隔。 2.格式控制中两%d有两个空格,输入时两数据间应有两个空格或两个以上。 3.当为“:”时输入时应对应一样,当为:scanf(“a=%d,b=%d”,&a,&b);输入a=12,b=22。 4.当格式控制符为%c时,输入时空格与转义字符都作为有效字符记录在里面:scanf(“%c%c%c”,&a,&b,&c); 输入时:ab c↙空间不能插空格或其他符

5. Scanf(“%d%c%f”,&a,&b,&c); 输入时1234a123h26↙在输入遇到时空格回车 tab或其他非法输入就会认定输入完毕 Gets (字符数组):读入字符串函数 Gets(str)从键盘键入a b↙括号里为字符数组str的起始地址,Puts(字符数组):输出字符串函数 Strcat(字符数组1,字符数组2):字符串连接函数(2连接在1后面) Strcpy和strncpy:字符串复制函数 Strcpy(字符数组1,字符数组2):将2复制到1 数组1 要为数组名,字符串2可以为数组名或者字符串 Strncpy(str1,str2,2):将str2的前两个字符复制到str1,取代str1的前两个字符 Strcmp:字符串比较函数 Strcmp(str1,str2):相等则为0(对字符串自左向右逐个字母进行比较) Strlen(字符数组):测字符串的实际长度 Strlwr(字符串)将字符串转换为大写 Strupr(字符串)将字符串转换为小写

C语言考试常见知识点总结

C语言考试常见知识点总结 学习C语言的准备知识 3)计算机的数据在电脑中保存是以二进制的形式存入,数据存放的位置就是它的地址。 4)bit位是指为0或者1。 byte是指字节, 一个字节等于八个位。 5)一定要记住二进制如何划成十进制。 程序的结构 1)程序结构有三种: 顺序结构、循环结构(三个循环结构语句)、选择结构(if和switch语句) 2)程序都要从main()入口, 然后从第一条语句顺序往下执行。(碰到循环做循环,碰到选择 做选择,碰到函数调用去执行被调用的函数,调用完后回到调用的下一语句继续)。 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间。C语言编译的程序称为源程序,它以 ASCII数值存放在文本文件中。 2、每个C语言程序中main函数是有且只有一个。 3、在函数中不可以再定义函数。也就是说不能嵌套定义函数。 4、程序一定要有输出的,可以没有输入。 变量与常量 1、合法的用户标识符 合法的要求是由字母、数字、下划线组成。有其它字符就错了。并且第一个必须为字母或下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。main define scanf printf 都不是关键字,只是准关键字。If是可以做为用户标识符的,因为If中的第一个字母大写了,所以不是关键字。 2、常量的正确表示 1)整型数据 ①十进制整型常量 ②八进制整型常量,以0开头,基本数字范围为0~7。 ③十六进制整型常量,以0x开头,基本数字范围为0~9,A~F或a~f。 ④在整数常量后可以跟L或l来表示长整型量。 2)实型数据 2.333e-1 就是合法的,表示的数据是2.333×10-1。考试口诀:e前e后必有数,e 后必为整数。 3)字符数据 '1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号’\0’)。 '0' 的ASCII数值是48,'a' 的ASCII数值是97,'A'的ASCII数值是65。 4) 整型是两个字节, 字符型是一个字节,单精度是4个字节,双精度是8个字节。 考试时候一般会说,在16位编译系统,或者是32位系统。我们的考试一般是16位编译系统。 5)转义字符 在程序中 int a=0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。 在程序中 int a=06,是一个八进制的形式。 在转义字符中,'\x6d'才是合法的,0不能写,并且x是小写。 '\141'是合法的, 0是不能写的。 '\108'是非法的,因为不可以出现8。

C语言常用的库函数

库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并 提供给用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的 编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSI C标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供 的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本附录 列出ANSI C建议的常用库函数。 由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、 与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不 能全部介绍,只从教学需要的角度列出最基本的。读者在编写C程序时可根据 需要,查阅有关系统的函数使用手册。 1.数学函数 使用数学函数时,应该在源文件中使用预编译命令: #include或#include "math.h" 函数名函数原型功能返回值 acos double acos(double x);计算arccos x的值,其中-1<=x<=1计算结果 asin double asin(double x);计算arcsin x的值,其中-1<=x<=1计算结果 atan double atan(double x);计算arctan x的值计算结果 atan2double atan2(double x, double y);计算arctan x/y的值计算结果 cos double cos(double x);计算cos x的值,其中x的单位为弧度计算结果 cosh double cosh(double x);计算x的双曲余弦cosh x的值计算结果 exp double exp(double x);求e x的值计算结果

C语言考试考试复习题

精品文档 一、判断下列问题描述及语句正确与否,正确的打“√”。 1.C的关键字都是小写的。(√) 2、C语言规定:在一个源程序中,main函数的位置必须在最开始。( × ) 3.一个复合语句是作为一个语句处理的且在逻辑上相互关联的一组语句。 (√) 4、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是8。( √ ) 5、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为静态存储。( × ) 6.# define PI=3.14159 (×) 7、C语言中规定函数的返回值的类型是由return语句中的表达式类型所决定。( ×) 8.局部变量在进入代码块时生成,退出代码块时消失。(√) 9、在C语言中对文件操作必须先关闭当前文件,然后再打开一个新文件。( ×) 10.int a=123456;(×) 11、C语言程序的基本单位是语句。( ×) 12.函数可以嵌套定义,也可嵌套调用。(×) 13.switch与if不同,switch只能测试是否相等,而if中还能测试关系和逻辑表达式。(√) 14.break和continue语句都可用于选择结构和循环结构中。(×) 二、单项选择题: 1、假设已定义char a[10]和char *p=a, 下面的赋值语句中,正确的是:( C ) A) a[10]=”Turbo C”; B) a=”Turbo C”; C) *p=”Turbo C”; D) p=”Turbo C”; 2.C语言中基本数据类型包括( B)。 A. 整型、实型、逻辑型 B. 整型、实型、字符型 C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、实型 3、下面关于运算符优先顺序的描述中正确的是:( C ) A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B)逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 4.已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量a的值是(A)。 A. 6 B. 12 C. 30 D. 36 5、以下正确的描述是。( B ) A)continue语句的作用是结束整个循环的执行 B)只能在循环体内和switch语句体内使用break语句 C)在循环体内使用break语句或continue语句的作用相同 D)从多层循环嵌套中退出时, 只能使用goto语句 6.C语言中规定函数的返回值的类型是由(D)。 A.return语句中的表达式类型所决定 B.调用该函数时的主调用函数类型所决定 C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型所决定 7、用8位无符号二进制数能表示的最大十进制数为( C ) A) 127 B) 128 C) 255 D)256 8.不能进行++和--运算的数据类型是(B)。 A. 指针 B. double C. int D. long 9、下列叙述中正确的是:( D ) A)C语言中既有逻辑类型也有集合类型 B)C语言中没有逻辑类型但有集合类型 C)C语言中有逻辑类型但没有集合类型 D) C语言中既没有逻辑类型也没有集合类型 10.为了判断两个字符串s1和s2是否相等,应当使用( D)。 A. if(s1==s2) B. if(s1=s2) C. if(strcpy(s1,s2)) D if (strcmp(s1,s2)) 11、以下对C语言函数的有关描述中,正确的是:( A ) A)调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

相关文档
最新文档