c语言实验作业在dev蜗居的思路,C语言程序设计实验(共5篇)

int search_min(int a,int b,int c) { if(a

运行结果:

⑸ 编写一个程序,先定义一个将字符大写、小写和数字进行分类的带参数宏,然后对从键盘输入的一系列字符进行分类计数,并输出计数的结果,程序遇到字符‘*’结束。

程序文件名为7_24.c,源程序清单如下:

#include#define INUP(c) c>='A'&&c<='Z' #define INLO(c) c>='a'&&c<='z' #define INNU(c) c>='0'&&c<='9' #define ADD(a) a++ #define DV(c,x,y,z) if(INUP(c)) ADD(x);if(INLO(c)) ADD(y);if(INNU(c)) ADD(z); main() { int count_low=0,count_up=0,count_num=0; char ch; printf("Input a string(end sign is '*'): \n"); ch=getchar(); while(ch!='*') { DV(ch,count_up,count_low,count_num); ch=getchar(); } printf("count_low=%d\n",count_low); printf("count_up=%d\n",count_up); printf("count_num=%d\n",count_num); }_

运行结果:

⑹ 求解汉渃塔(tower of Hanoi)问题。在一块平板上立有3根立柱,从左到右分别标记为A,B,C。最初在A柱上放有6个大小不等的圆盘,并且大盘在下面,小盘在上面。要求将这些盘从A移到C(可以借助B柱)。条件是:每次只能移动一个盘,并且不允许把大盘放在小盘的上面。(提示:利用函数的递归调用)

程序文件名为testf4.c,源程序清单如下:

void move(char x,char y) { printf("%c------%c> ",x,y); } void hanoi(int n,char one,char two,char three) { if(n==1) move(one,three); else { hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); } } main() { int m; printf("Input the number of diskes: "); scanf("%d",&m); printf("The step to moving %3d diskes: \n",m); hanoi(m,'A','B','C'); }_

运行结果:

九、总结及心得体会:

十、对本实验过程及方法、手段的改进建议:

报告评分:

指导教师签字: 电子科技大学 计算机 学院

标 准 实 验 报 告

(实验)课程名称 C语言程序设计

电子科技大学教务处制表

电 子 科 技 大 学

学生姓名:

学 号:

指导教师:王瑞锦

实验地点:

实验日期:

一、实验室名称:

软件实验室

二、实验项目名称:指针

三、实验学时:2

四、实验原理:

使用Turbo C软件(简称TC),在微型计算机上,对其程序进行编辑、编译、连接与运行。Turbo C是一个集成环境,它具有方便、直观、易用的界面和丰富的库函数。通过上机练习掌握在TC环境下编辑、编译、连接、和运行C程序的方法和过程。

指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的变量或函数的值。 *和&两个地方要注意:

在程序声明变量的时候的*,只是表明“它是一个整数,这个整数指向某个内存地址,一次访问sizeof(type)长度”。这点不要和(*)操作符混淆;

在C++程序声明变量的时候的&,只是表明“它是一个引用,这个引用声明时不开辟新空间,它在内存分配表加入新的一行,该行内存地址等于和调用时传入的对应参数内存地址”。

这点不要和(*)声明符,(&)操作符混淆。 双重指针(指向指针的指针)

指针数组:就是一个整数数组,那个数组的各个元素都是整数,指向某个内存地址。

数组指针:数组名本身就是一个指针,指向数组的首地址。注意这是一个常数。

指向函数的指针:从二进制角度考虑,数组名是该数组数据段首地址,函数名就是该代码段的首地址,可以用“int *fun()”。在二进制层面,代码段和数据段什么区别?

五、实验目的

1. 掌握指针数组; 2. 掌握数组指针; 3. 掌握指向函数的指针;

六、实验内容

编程实验,完成以下上机内容,调试运行程序并完成报告

1、 输入三个整数或者三个字符,按由大到小的顺序输出;

2、* 输入10个整数,将其中最小的数和第一个数对换,把最大的数与最后一个数对换。 编写三个程序,

1、输入十个数,2.进行处理,3输出十个数*/

3、*有n个人围城一圈。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那个人

*/ 4/*输入一行文字,找出其中大写字母,小写字母,空格,数字以其他的字符各有多少?*/ 5/*将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从坐到右,从上到下顺序依次从小到大存放),编写一个函数实现之,用main函数调用 */

6、/*在主函数中输入10个等长的字符串。用另一个函数对他们排序。然后在主函数输出这个10个已排好序的字符串 */

7、/*有一个班的4个学生,有5门课程。

1、求第一门课的平均分;

2、找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均分

3、找出平均分在90分以上或全部课程成绩在85分以上的学生。分别编写三个函数来实现以上三个要求*/

七、实验器材(设备、元器件):

pc硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。

软件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。

八、实验步骤: 实验编程与运行结果

题1 输入三个整数或者三个字符,按由大到小的顺序输出

#include void main() { void swap(int *p1,int *p2); int n1,n2,n3; int *p1,*p2,*p3; printf("input three interger n1,n2,n3"); scanf("%d,%d,%d",&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if (n1>n2) swap(p1,p2);

if (n1>n3) swap(p1,p3);

if (n2>n3) swap(p2,p3);

printf("Now ,the order is:%d,%d,%d\n",n1,n2,n3); }

void swap(int *p1,int *p2)

{

int temp; temp=*p1;*p1=*p2;*p2=temp;

#include#includevoid main() { void swap(char *,char *); char str1[20],str2[20],str3[20]; printf("input three line:\n"); gets(str1); gets(str2); gets(str3); if (strcmp(str1,str2)>0)

swap(str1,str2); if (strcmp(str1,str3)>0)

swap(str1,str3); if (strcmp(str2,str3)>0)

swap(str2,str3); printf("Now,the order is:\n"); printf("%s\n%s\n%s\n",str1,str2,str3); } void swap(char *p1,char *p2) {

char p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); }

题2./* 输入10个整数,将其中最小的数和第一个数对换,把最大的数与最后一个数对换。 编写三个程序,

1、输入十个数,2.进行处理,3输出十个数*/ #include void main() { void input(int *); void max_min_value(int *); void output(int *); int number[10];

input(number); max_min_value(number); output(number); }

void input(int *number)

{

int i;

printf("input 10 numbers:");

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

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

}

void max_min_value(int *number)

{

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值