C语言试验指导Word格式.docx

上传人:b****2 文档编号:170117 上传时间:2023-04-28 格式:DOCX 页数:20 大小:30.45KB
下载 相关 举报
C语言试验指导Word格式.docx_第1页
第1页 / 共20页
C语言试验指导Word格式.docx_第2页
第2页 / 共20页
C语言试验指导Word格式.docx_第3页
第3页 / 共20页
C语言试验指导Word格式.docx_第4页
第4页 / 共20页
C语言试验指导Word格式.docx_第5页
第5页 / 共20页
C语言试验指导Word格式.docx_第6页
第6页 / 共20页
C语言试验指导Word格式.docx_第7页
第7页 / 共20页
C语言试验指导Word格式.docx_第8页
第8页 / 共20页
C语言试验指导Word格式.docx_第9页
第9页 / 共20页
C语言试验指导Word格式.docx_第10页
第10页 / 共20页
C语言试验指导Word格式.docx_第11页
第11页 / 共20页
C语言试验指导Word格式.docx_第12页
第12页 / 共20页
C语言试验指导Word格式.docx_第13页
第13页 / 共20页
C语言试验指导Word格式.docx_第14页
第14页 / 共20页
C语言试验指导Word格式.docx_第15页
第15页 / 共20页
C语言试验指导Word格式.docx_第16页
第16页 / 共20页
C语言试验指导Word格式.docx_第17页
第17页 / 共20页
C语言试验指导Word格式.docx_第18页
第18页 / 共20页
C语言试验指导Word格式.docx_第19页
第19页 / 共20页
C语言试验指导Word格式.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言试验指导Word格式.docx

《C语言试验指导Word格式.docx》由会员分享,可在线阅读,更多相关《C语言试验指导Word格式.docx(20页珍藏版)》请在冰点文库上搜索。

C语言试验指导Word格式.docx

d=%d,e=%d,f=%d\n"

d,e,f);

return0;

(2)自加、自减运算

inta=5,b=8;

a++=%d\n"

a++);

a=%d\n"

a);

++b=%d\n"

++b);

b=%d\n"

b);

(3)关系运算和逻辑运算

inta=5,b=8,c=8;

%d,%d,%d,%d\n"

a==b&

&

a==c,a!

=b&

a!

=c,a>

a>

=c,a<

a<

=c);

%d,%d\n"

a<

=b||a>

=c,a==b||b==c);

!

(a==b),!

(a>

=b),!

=c),!

(a<

=b));

(1)在编辑状态下输入上述程序。

(2)编译并运行上述程序。

(1)整数相除有什么危险?

应如何避免这种危险?

(2)分析a++和++a的区别。

(3)条件表达式和逻辑表达式的意义是什么,它们取值如何?

(4)如何比较两个浮点数相等?

为什么?

实验三格式化输入输出函数的使用

(1)掌握格式字符使用的方法。

(2)掌握printf()进行格式化输出的方法。

(3)掌握scanf()进行格式化输入的方法。

(1)输入如下程序,观察运行结果

intx=1234;

floatf=123.456;

doublem=123.456;

charch='

a'

;

chara[]="

Hello,world!

"

inty=3,z=4;

%d%d\n"

y,z);

y=%d,z=%d\n"

%8d,%2d\n"

x,x);

%f,%8f,%8.1f,%.2f,%.2e\n"

f,f,f,f,f);

%lf\n"

m);

%3c\n"

ch);

%s\n%15s\n%10.5s\n%2.5s\n%.3s\n"

a,a,a,a,a);

(2)输入下面程序,观察调试信息

doublex,y;

charc1,c2,c3;

inta1,a2,a3;

scanf("

%d%d%d"

a1,a2,a3);

%d,%d,%d\n"

%c%c%c"

&

c1,&

c2,&

c3);

%c%c%c\n"

c1,c2,c3);

%f,%lf"

x,&

y);

%f,%lf\n"

x,y);

(1)在VC++6.0集成开发环境中输入上述程序,观察调试结果。

(2)如果有错误,请修改程序中的错误。

(1)分析程序错误及运行结果错误的原因。

(2)总结printf()中可使用的各种格式字符。

(3)总结转移字符的使用和功能。

实验四分支结构程序设计

(1)了解条件与程序流程的关系

(2)了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。

(3)掌握if语句和ifelse语句的用法

(4)掌握switch语句的用法

1.从键盘上输入三个数,让它们代表三条线段的长度,请写一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序。

请分别设计下列数据对自己的程序进行测试:

(1)找出各条语句中的错误。

(2)找出各分支中的错误。

(3) 

找出各条件中的错误。

(4) 

找出各种条件组合中的错误。

(5) 

找出各条路径中的错误。

2.用scanf函数输入一个百分制成绩(整型量),要求输出成绩等级A,B,C,D,E。

其中90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。

具体要求如下:

(1)用if语句实现分支或switch分支。

(2)在输入百分制成绩前要有提示。

(3)在输入百分制成绩后,要判断该成绩的合理性,对于不合理的成绩(即大于100分或小于0分)应输出出错信息。

(4)在输出结果中应包括百分制成绩与成绩等级,并要有文字说明。

(5)分别输入百分制成绩:

-90,100,90,85,70,60,45,101,运行该程序。

3.编程找出5个整数中的最大数和最小数,并输出找到的最大数和最小数。

(1)总结分支程序设计的方法。

(2)复合语句的使用。

(3)switch语句的注意事项。

实验五循环结构程序设计

(1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。

(2)了解条件型循环结构的基本测试方法。

(3)掌握如何正确地控制计数型循环结构的次数。

(4)了解对计数型循环结构进行测试的基本方法。

(5)了解在嵌套循环结构中,提高程序效率的方法。

(1)输入一个正整数,并将其颠倒过来。

如12345对应为54321。

(2)将一个长整型数s的每一位数位上的偶数依次取出来,构成一个新的数t中,高位仍在高位,低位仍在低位,例如:

s=87653142时,t中的数为:

8642。

(3)判断101~200之间有多少个素数。

(4)编写程序,输出杨辉三角。

(1)总结条件循环结构的一般方法。

(2)如何测试计数型循环结构的控制表达式中的错误?

(3)从实验中你得到了哪些提高嵌套循环程序效率的启示?

实验六函数

(1)掌握C语言函数定义及调用的规则。

(2)理解参数传递的过程。

(3)掌握函数返回值的大小和类型确定的方法。

(4)理解变量的作用范围

(1)上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。

int,y;

printf(“%d\n”,sum(x+y));

intsum(a,b)

inta,b;

return(a+b);

return0;

(2)编写一个程序,输入系数a、b、c,求一元二次方程

的根,包括主函数和如下函数。

①判断a是否为零。

②计算判别式

③计算根的情况。

④输出根。

(3)输入下面程序,分析运行结果

intfunc(int,int);

intmain()

{intk=4,m=1,p1,p2;

p1=func(k,m);

p2=func(k,m);

p1,p2);

intfunc(inta,intb)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

(1)针对以上实验内容写出相应的参数传递过程并分析结果。

(2)函数在定义时要注意什么?

(3)讨论静态局部变量的继承性?

实验七数组及其应用

(1)掌握数组定义的规则。

(2)掌握C语言数组的基本用法。

(3)掌握数组名作为函数参数传递的方法

(1)运行下面的C程序,根据运行结果,可以说明什么?

#include<

intmain()

{

intnum[5]={1,2,3,4,5};

intii;

for(i=0;

i<

=5;

i++)

printf(“%d”,num[i]);

(2)为一个冒泡排序程序设计测试用例,并测试之。

(3)操作符&

用以求一个变量的地址,这在函数scanf中已经使用过了。

现在要你设计一个程序,返回一个3×

5的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存储的。

(1)通过实验,分析定义与引用数组的区别。

(2)数组的作用是什么?

(3)数组名作为参数有什么特点?

实验八指针及其应用

(1)掌握变量的指针及其基本用法。

(2)掌握一维数组的指针及其基本用法。

(3)掌握指针变量作为函数的参数时,参数的传递过程及其用法。

(1)对以下程序进行运行,并从中了解变量的指针和指针变量的概念。

#include<

intmain()

{

inta=5,b=5,*p;

p=&

a;

printf(“%d,%ud\n”,a,p);

*p=8;

p=&

b;

printf(“%d,%ud\n”,a,p);

b=10;

(2)运行以下程序,观察&

a[0],&

a[i])和p的变化,然后回答以下问题:

程序的功能是什么?

在开始进入循环体之前,p指向谁?

循环每增加一次,p的值(地址)增加多少?

它指向谁?

退出循环后,p指向谁?

你是否初步掌握了通过指针变搔引用数组元素的方法?

#include<

inti,*p,s=0,a[5]={5,6,7,8,9};

p=a;

for(i=0;

5;

i++,p++)

s+=*p;

printf(“\ns=%d”,s);

(3)先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。

#include<

intmain()

inti,s1=0,s2=0,s3=0,s4=0,*p,a[5]={1,2,3,4,5};

i++)

s1+=p[i];

s2+=*(p+i);

for(p=a;

p<

a+5;

p++)

s3+=*p;

p=a;

for(i=0;

s4+=*p++;

printf(“\ns1=%d,s2=%d,s3=%d,s4=%d”s1,s2,s3,s4);

return0;

}

(4)编写函数,将n个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成:

输入10个数;

调用此函数进行重排;

输出重排后的结果。

(1)指针的定义方法,指针和变量的关系。

(2)数组和指针的关系。

实验九结构体及其应用

(1)掌握结构体类型变量与结构体数组的定义和使用。

(2)学会使用结构体指针变量和结构体指针数组。

(3)掌握链表的概念,初步学会对链表进行操作。

(1)输入出10个学生的学号、姓名和成绩,求出其中的高分者和低分者。

structstudent

intnum;

charname[20];

intscore;

};

inti;

structstudentst,stmax,stmin;

stmax.score=0;

stmin.score=100;

\ninputdata"

);

10;

scanf("

%d%s%d"

st.num,st.name,&

st.score);

if(st.score>

stmax.score)

stmax=st;

if(st.score<

stmin.score)

stmin=st;

\nhight:

%5d%15s%5d"

stmax.num,stmax.name,stmax.score);

\nlow:

stmin.num,stmin.name,stmin.score);

分析程序,上机运行程序。

程序中,哪些是对结构体变量的成员引用,哪些是整体引用?

对于此例来说,用结构体变量作为数据结构有何优越性?

(2)有一学生情况如下表所示。

编制一个C程序,用冒泡法对该学生情况表按成绩(grade)从低到高进行排序。

学号

姓名

性别

年龄

成绩

101

Zhang

M

19

95.6

102

wang

F

18

92.2

103

zhao

85.7

104

li

20

96.3

105

Gao

90.2

106

Lin

91.2

107

Ma

98.7

108

Zhen

21

88.7

109

Xu

90.1

110

Mao

22

94.7

结构体类型为

intnum;

charname[8];

charsex;

intage;

doublegrade;

在程序中用一个结构体指针数组,其中每一个指针元素指向结构体类型的各元素。

在程序中,首先输出排序前的学生情况,然后输出排序后的结果,其格式如上表所示。

(3)链表基本操作,具体要求如下:

初始时链表为空,即链表的头指针为空。

对于上表所示的学生情况表,依次将每个学生的情况作为一个结点插入到单链表的链头(即当前插入的结点将成为第一个结点)。

所有学生情况都插入到链表中后,从链头开始,依次输出链表中的各结点值(即每个学生的情况)。

输出格式如同上表。

(1)结构体的作用,如何进行初始化?

(2)如何访问结构体中的成员。

(3)链表有什么优点?

实验十文件

(1)掌握文件与文件指针的概念。

(2)学会使用文件打开、文件关闭、读与写文件等基本的文件操作函数。

(3)运用文件操作函数进行程序设计。

(1)以文本方式建立初始数据文件,请输入10个学生的学号、姓名及考试成绩,形式如下:

1001LiLi80

1002HuWei90

1003LiMing75

读入file1.dat中的数据,找出最高分和最低度分的学生。

};

FILE*fp;

fp=fopen("

file1.dat"

"

r"

if(!

fp)return1;

fscanf(fp,"

fclose(fp);

hight:

分析程序,上机运行程序并分析运行结果。

如果事先不知道学生个数,则程序应该如何修改?

请将以上程序中的循环语句for(i=0;

i++)改为(while(!

feof(fp))再运行程序,看结果是否正确?

(2)读入file2.dat中的数据,然后按成绩从高到低度的顺序进行排序,并将排序结果分别以文本方式存入到文件file3.dat中,以二进制形式存入文件file4.dat中。

voidsort(structstudent*,int);

inti,n=10;

structstudentst[10];

FILE*fp,*fp1,*fp2;

file2.dat"

%4d%10s%3d"

st[i].num,st[i].name,&

st[i].score);

sort(st,n);

fp1=fopen("

file3.dat"

w"

n;

fprintf(fp1,”%4d%10s%3d"

st[i].num,st[i].name,st[i].score);

fclose(fp1);

fp2=fopen("

file4.dat"

wb"

fwrite(st,sizeof(structstudent),n,fp2);

fclose(fp2);

voidsort(structstudent*st,intn)

structstudent*i,*j,t;

for(i=st;

st+n-1;

for(j=i+1;

j<

st+n;

j++)

if(i->

score<

j->

score)

{

t=*i;

*i=*j;

*j=t;

}

请分析程序,上机运行程序,运行结果在哪里?

与上一例相比,此例中对读取文件的格式有何不同?

(3)某班的学生145人,每人的信息包括:

学号、姓名、性别、和成绩。

编制一个C程序,完成以下操作:

定义一个结构体类型数组。

打开可读写的新文件student.dat。

使用函数fwrite()将结构体数组内容写入文件student.dat中。

关闭文件student.dat。

打开可读写文件student.dat。

从文件中依次读出各学生情况并按学生成绩进行排序,输出排好序后的数据。

(1)文件有哪些优点?

(2)文件常用的读写操作函数有什么不同?

(3)调试有关文件的程序要注意什么?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2