C语言程序设计课程实验题目Word下载.docx
《C语言程序设计课程实验题目Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课程实验题目Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
行文件“exam.exe”
4.运行程序。
编辑状态下,按“Ctrl+F9”键,此时是编译、连接、运行连续进
行。
按“Alt+X”键,然后输入:
exam↙(必须编译、连接成功)。
5.显示运行结果。
若按方法一运行程序,按“Alt+F5”键,查看运行结果,按任意键返回到
TurboC编辑状态。
若按方法二运行程序,直接显示结果。
6.退出。
按“Alt+x”键,退出TurboC。
实验二运算符和表达式
掌握C语言运算符的优先级和结合方向。
1.若有定义intx,a,b,c,*p=&
x;
,写出顺序执行下列表达式后x的值,然
后通过程序验证。
要求:
先写出运算结果,然后利用程序验证。
①x=a=b=10
②x=25%(c=3)
③*p+=2+3
④x/=(x+(*p%=2),(a&
&
5+3))
⑤x*=x+=x-=x
⑥x=((a=4%3,a!
=1),++*p>
10)
验证程序:
{intx,a,b,c,*p=&
x=a=b=10;
printf("
x=%d\n"
x);
x=25%(c=3);
*p+=2+3;
x/=(x+(*p%=2),(a&
5+3));
x*=x+=x-=x;
x=((a=4%3,a!
10);
2.若有定义inta=2,b=-3,c=4,*p=&
a,*q=&
b;
,计算下列各表达式的值,
然后通过程序验证。
①a>
b&
b>
c
②!
(b>
c)+(b!
=*p)||(a+b)
③a++-c+*q
④++a-c+++b
⑤b%=c+a-c/7
⑥(float)(a+b)/2+*q
⑦!
(a==b+c)&
(*p-a)
⑧!
c+1+c&
b+c/2
{inta,b,c,*p=&
a=2;
b=-3;
c=4;
a>
c=%d\n"
a>
c);
!
=*p)||(a+b)=%d\n"
!
=*p)||(a+b));
a++-c+*q=%d\n"
a++-c+*q);
a=2;
++a-c+++b=%d\n"
++a-c+++b);
b%%=c+a-c/7=%d\n"
b%=c+a-c/7);
(float)(a+b)/2+*q=%f\n"
(float)(a+b)/2+*q);
(*p-a)=%d\n"
(*p-a));
b+c/2=%d\n"
b+c/2);
实验三基本输入输出函数
熟练掌握数据的输入输出格式。
1.写出下列程序的输出结果。
先写出输出结果,然后利用程序验证。
#include"
stdio.h"
{inta=65,b=67,c=67;
floatx=67.8564,y=-789.124;
charC='
A'
;
longn=1234567;
unsignedu=65535;
putchar(C);
putchar('
\t'
);
putchar(C+32);
putchar(a);
\n'
%d%d\n"
a,b);
%c%c\n"
%3d%3d\n"
%f,%f\n"
x,y);
%-10f,%-10f\n"
%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n"
x,y,x,y,x,y);
%e,%10.2e\n"
%c,%d,%o,%x\n"
c,c,c,c);
%ld,%lo,%lx\n"
n,n,n);
%u,%o,%x,%d\n"
u,u,u,u);
%s,%5.3s\n"
"
COMPUTER"
2.根据输入,写出下列程序的输出结果。
{chara,*p1=&
a;
intb,*p2=&
floatc,*p3=&
c;
a=getchar();
putchar(*p1);
putchar(a>
='
a'
a<
z'
?
a-32:
a);
getchar();
scanf("
%c%d%f"
&
a,&
b,&
a=%cb=%dc=%.2f\n"
a,b,c);
a=%cb=%dc=%f"
p1,p2,p3);
a=%db=%cc=%.2f\n"
输入:
a↙
输出:
b□65□3.1234↙
a=b□b=65□c=3.1234↙
实验四分支语句
掌握使用if~else语句和switch~case语句实现分支结构的方
法。
1.求出下面分段函数的值
0x0
y=x0x10
2x1x10
(1)使用if~else语句
(2)x的值从键盘输入
2.运输公司对用户计算运费。
距离越远,每公里运费越低,标准如下:
s<
250km
无折扣
250<
=s<
500
2%
折扣
500<
1000
5%
1000<
2000
8%
2000<
3000
10%
3000<
=s15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费计算公式为:
f=p*w*s*(1-d),编写程序计算运费。
(1)使用switch~case语句。
(2)p、w、s的值从键盘输入。
实验五循环语句
掌握使用三种循环语句实现循环结构的方法。
1.猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半另一个,以
后每天早晨都吃剩下的一半另一个,到第十天早晨再想吃时,就剩一个桃子。
问
第一天共摘了多少桃子。
分别用三种语句编写程序。
2.编写程序验证下列结论:
任何一个自然数n的立方都等于n个连续奇数
之和。
例如:
13=1;
23=3+5;
33=7+9+11。
程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为0时止。
实验六编译预处理
掌握宏定义、宏调用,以及宏展的处理过程,掌握文件包含的概念和使用。
1.试分析以下宏替换后的形式,计算输出结果。
先计算运行结果,然后利用程序验证。
#defineCX(y)2.5+y
#definePR(a)printf("
%d"
(int)(a))
#definePR1(a)PR(a);
putchar('
)
{intx=2;
PR1(CX(5)*x);
2.通过宏调用方式,求从n个数的最大值。
数据从键盘输入。
实验七一维数组
掌握一维数组的定义、初始化,以及一维数组元素的下标法引
用和指针法引用。
1.数组a中存放10个非0整数,编写程序,将数组a中的所有正数存放
在数组的前面,负数存放在数组的后面。
(1)数组元素值从键盘输入。
(2)用下标法和指针法两种方法。
2.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的前位。
(1)数组元素值在程序中初始化。
(2)m的值从键盘输入。
(3)用下标法和指针法两种方法。
实验八二维数组
掌握二维数组的定义、初始化,以及二维数组元素的下标法引用和指针法引用。
1.有5名学生,每名学生有语文、数学、物理和外语四门课的考试成绩,编程统计各学生的总分和平均分,以及所有学生各科的总计分和平均分。
(1)成绩在程序中初始化,结果以表格的形式输出。
(2)分别用下标法和指针法实现。
2.将4×
4阶矩阵的4个最小值按升序存放在主对角线上。
(1)矩阵元素从键盘输入。
实验九字符串
掌握使用下标法和指针法处理字符串。
1.编写程序,将字符串中相同字符的存放在一起,并按ASCII码升序存放。
2.编写程序,统计字符串str中含有子串substr的个数。
实验要求:
(1)字符串从键盘输入。
实验十函数的定义、调用与参数传递
掌握函数的定义、调用和参数的传递方式。
1.有两个数组a、b,各有10个元素,分别统计出两个数组对应元素大于
(a[i]>
b[i])、等于(a[i]=b[i])和小于(a[i]<
b[i])的次数。
通过函数调用方式,并分别使用数组元素、数组名和指针变量作函数的参数。
2.编写程序,将一个5×
5阶矩阵中最大元素放在中心,四个角分别放4个最小元素(顺序为从左到右,从上到下的顺序一次从小到大存放)。
通过函数调用方式,并分别使用数组名和指针变量作函数的参数。
实验十一
函数的嵌套调用和递归调用
掌握函数的嵌套调用和递归调用。
1.编写程序,计算下列函数值:
f(x,y)=
s(x)
s(y)
其中,s(n)=
n
p(i)=p
(1)+p
(2)+p(n),p(i)=i!
。
i1
(1)为函数p(i)、s(n)、f(x,y)均编写一个用户函数。
(2)x、y由键盘输入。
2.n个人按年龄从小到大站成一排,编号依次为
1到n,年龄都相差2岁,
且第一个人的年龄是
10岁,问第n个的年龄是多大?
(1)通过函数递归调用方式。
(2)n的值从键盘输入。
实验十二变量的作用域与存储类别
掌握全局变量和局部的定义及作用域。
掌握变量的四种存储类
别。
1.输出4×
4阶矩阵的最大值、最小值及其下标。
(1)通过函数调用方式。
(2)使用全局变量。
2.计算:
i1
i
1
106
i!
(精度要求为
n!
(2)使用静态局部变量。
实验十三内部函数和外部函数
掌握内部函数和外部函数的定义及使用方法。
1.已知a、b都为整型数,计算ab。
(1)a、b值从键盘输入。
(2)主函数和计算ab的函数在不同文件中存放,求ab的函数为内部函数,使用文件包含完成。
2.删除字符串中的指定字符。
(1)字符串和要删除字符都在主函数中输入,结果在主函数中输出。
(2)主函数和删除字符串指定字符的函数在不同文件中存放,删除字符串指定字符的函数为外部函数,使用工程文件完成。
实验十四结构体
掌握结构体类型、结构体类型变量、结构体类型数组和结构类
型指针的定义,掌握结构体类型变量和结构体类型变量成员的使用。
掌握链表的定义及操作。
1.有10名学生,每名学生有语文、数学、外语三门课程的成绩,计算每
名学生的总成绩,然后按总成绩由高到低排序,若总成绩相同,再按外语成绩由
高到低排序。
(1)利用结构体数组存放数据。
(2)通过函数调用方式。
2.已知链表L1和L2中分别存放一个升序序列,编写程序,将两个链表中的升序合并成一个升序序列存放到链表L1中。
(1)分别按带头结点和不带头结点处理。
(2)通过函数调用方式。
实验十五共用体和枚举
掌握共用体类型、共用体类型变量的定义,以及共用体类型变
量成员的使用。
掌握枚举类型、枚举类型变量的定义,以及枚举类型变量的使用。
1.设某公司对所有职工进行计算机能力考核,规定35岁以下的职工进行笔试,成绩记录为百分制,60分以下为不及格;
35岁(含35岁)以上的职工进行上级考核,成绩记录为a、b、c(规定为小写字母三种),c为不及格。
编写程序,输入10个职工的考核结果,输入及格编号、姓名和成绩。
用结构体和共用体类型数据来处理职工数据。
2.输入两个整型数,一次求出它们的和、差、积并输出。
用枚举类型数据来处理和、差、积的判断。
实验十六文件
掌握文件的打开、关闭和文件的读写操作。
1.有两个磁盘文件“A”和“B”,各存放一行字母(不多于80个),今要求把两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C”中去。
2.有十名学生的数据(包括学号、姓名、和三门课程的成绩)存放在文件
“score.txt”中,编写程序,把有不及格的学生数据存放到文件“bhg.txt”中,成绩都合格的学生数据存放到文件“hg.txt”中。
综合实验题目:
(8学时)
1.编写一个小型学生成绩管理系统。
系统操作通过菜单的形式完成。
包括:
数据的输入、数据输出、数据编辑、数据插入、数据删除、数据查找、数据排序等。
2.编写一个小型文件管理系统。
包括:
文件复制、文本文件显示、文件连接、文件目录显示、文件内容比较、文件删除、文本文件字节数统
计内容、文件更名等。
3.编写程序,实现对.DBF文件的访问和建立。