当前位置:文档之家› C语言程序设计课程实验题目.

C语言程序设计课程实验题目.

C语言程序设计课程实验题目(每组实验内容2学时)实验一C语言上机步骤实验目的:熟练掌握在Turbo C系统上编辑、编译、连接和运行C程序的方法。

实验内容:1.启动Turbo C系统。

①进入MS-DOS方式。

②CD\TC↙③TC↙2. 编辑修改源程序。

①按“F3”,然后输入:exam↙(默认文件名为“NONAME.C”)②输入下列源程序。

main(){ int a,b,sum;a=1;b=2;sum=a+b;printf("sum=%d\n",sum);}③源程序存盘。

方法一:按“F2”键,将以源文件名存盘。

方法二:选取菜单项“File/Write To”,将以新文件名存盘。

3.编译连接程序。

方法一:编译、连接分步执行。

按“Alt+F9”键,编译生成目标文件“exam.obj”;再按“F9”,连接生成可执行文件“exam.exe”方法二:编译、连接连续执行。

按“F9”键,首先编译生成目标文件“exam.obj”;接着自动连接生成可执行文件“exam.exe”4.运行程序。

方法一:编辑状态下,按“Ctrl+F9”键,此时是编译、连接、运行连续进行。

方法二:按“Alt+X”键,然后输入:exam↙(必须编译、连接成功)。

5.显示运行结果。

若按方法一运行程序,按“Alt+F5”键,查看运行结果,按任意键返回到Turbo C编辑状态。

若按方法二运行程序,直接显示结果。

6.退出。

按“Alt+x”键,退出Turbo C。

实验二运算符和表达式实验目的:掌握C语言运算符的优先级和结合方向。

实验内容:1.若有定义int x,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)验证程序:main(){ int x,a,b,c,*p=&x;x=a=b=10;printf("x=%d\n",x);x=25%(c=3);printf("x=%d\n",x);*p+=2+3;printf("x=%d\n",x);x/=(x+(*p%=2),(a&&5+3));printf("x=%d\n",x);x*=x+=x-=x;printf("x=%d\n",x);x=((a=4%3,a!=1),++*p>10);printf("x=%d\n",x);}2.若有定义int a=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验证程序:main(){ int a,b,c,*p=&a,*q=&b;a=2;b=-3;c=4;printf("a>b&&b>c=%d\n",a>b&&b>c);a=2;b=-3;c=4;printf("!(b>c)+(b!=*p)||(a+b)=%d\n",!(b>c)+(b!=*p)||(a+b));a=2;b=-3;c=4;printf("a++-c+*q=%d\n",a++-c+*q);a=2;b=-3;c=4;printf("++a-c+++b=%d\n",++a-c+++b);a=2;b=-3;c=4;printf("b%%=c+a-c/7=%d\n",b%=c+a-c/7);a=2;b=-3;c=4;printf("(float)(a+b)/2+*q=%f\n",(float)(a+b)/2+*q);a=2;b=-3;c=4;printf("!(a==b+c)&&(*p-a)=%d\n",!(a==b+c)&&(*p-a));a=2;b=-3;c=4;printf("!c+1+c&&b+c/2=%d\n",!c+1+c&&b+c/2);}实验三基本输入输出函数实验目的:熟练掌握数据的输入输出格式。

实验内容:1.写出下列程序的输出结果。

要求:先写出输出结果,然后利用程序验证。

#include "stdio.h"main(){ int a=65,b=67,c=67;float x=67.8564,y=-789.124;char C='A';long n=1234567;unsigned u=65535;putchar(C);putchar('\t');putchar(C+32);putchar(a);putchar('\n');printf("%d%d\n",a,b);printf("%c%c\n",a,b);printf("%3d%3d\n",a,b);printf("%f,%f\n",x,y);printf("%-10f,%-10f\n",x,y);printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y); printf("%e,%10.2e\n",x,y);printf("%c,%d,%o,%x\n",c,c,c,c);printf("%ld,%lo,%lx\n",n,n,n);printf("%u,%o,%x,%d\n",u,u,u,u);printf("%s,%5.3s\n","COMPUTER","COMPUTER"); }2.根据输入,写出下列程序的输出结果。

要求:先写出输出结果,然后利用程序验证。

#include "stdio.h"main(){ char a,*p1=&a;int b,*p2=&b;float c,*p3=&c;a=getchar();putchar(*p1);putchar('\t');putchar(a>='a'&&a<='z'?a-32:a); putchar('\n');getchar();scanf("%c%d%f",&a,&b,&c);printf("a=%c b=%d c=%.2f\n",a,b,c); getchar();scanf("a=%cb=%dc=%f",p1,p2,p3); printf("a=%d b=%c c=%.2f\n",a,b,c); }输入:a↙输出:输入:b□65□3.1234↙输出:输入:a=b□b=65□c=3.1234↙输出:实验四 分支语句实验目的:掌握使用if~else 语句和switch~case 语句实现分支结构的方法。

实验内容:1.求出下面分段函数的值 y=⎪⎩⎪⎨⎧>+≤<≤101210000x x x x x要求:(1)使用if~else 语句(2)x 的值从键盘输入2.运输公司对用户计算运费。

距离越远,每公里运费越低,标准如下: s<250km 无折扣250<=s<500 2%折扣500<=s<1000 5%折扣1000<=s<2000 8%折扣2000<=s<3000 10%折扣3000<=s 15%折扣设每公里每吨货物的基本运费为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.试分析以下宏替换后的形式,计算输出结果。

要求:先计算运行结果,然后利用程序验证。

#include "stdio.h"#define CX(y) 2.5+y#define PR(a) printf("%d",(int)(a))#define PR1(a) PR(a); putchar('\n')main(){ int x=2;PR1(CX(5)*x);}2.通过宏调用方式,求从n个数的最大值。

要求:数据从键盘输入。

实验七一维数组实验目的:掌握一维数组的定义、初始化,以及一维数组元素的下标法引用和指针法引用。

实验内容:1.数组a中存放10个非0整数,编写程序,将数组a中的所有正数存放在数组的前面,负数存放在数组的后面。

要求:(1)数组元素值从键盘输入。

(2)用下标法和指针法两种方法。

2.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的前位。

要求:(1)数组元素值在程序中初始化。

(2)m的值从键盘输入。

(3)用下标法和指针法两种方法。

相关主题