当前位置:文档之家› C语言上机实验[1]

C语言上机实验[1]

实验四循环结构程序设计(4学时)一、实验方式:一人一机二、实验目的:1、熟练掌握while语句、do-while语句和for语句。

2、练习并掌握循环结构的嵌套形式。

3、掌握循环结构的程序设计方法。

三、实验内容:说明:前四题为必做题目,后两题为选做题目。

1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

(实验指导书P41)2、求所有的水仙花数。

水仙花数是一个3位数的自然数,该数各位数的立方和等于该数本身。

(实验指导书P42)3、判断输入的某个数是否为素数。

若是,输出YES,否则输出NO。

(实验指导书P167)4、计算π的近似值。

公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小于10-6为止。

(实验指导书P169)5、计算1!+2!+……+n! 的值,n值由键盘输入。

(实验指导书P176)6、输入10个整数,统计并输出其中正数、负数和零的个数。

四、实验答案:(代码+运行结果截屏)实验五综合实验1:结构化程序设计(2学时)一、实验方式:一人一机二、实验目的:1、进一步掌握选择结构、循环结构的编程特点。

2、掌握C语言的结构化程序设计思想。

3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。

三、实验内容:说明:前两题为必做题目,后两题为选做题目。

1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。

设:90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。

(实验指导书P162)2、百马百担问题。

(实验指导书P45)3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

4、输出如下图案: *************************四、实验答案:(代码+运行结果截屏)实验六函数程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言中函数的三要素:函数定义、函数调用和函数说明。

2、掌握通过参数在函数间传递数据的方法。

3、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。

三、实验内容:说明:前四题为必做题目,后两题为选做题目。

1、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果。

(实验指导书P54)2、输入整数n,输出高度为n的等边三角形。

当n=5时的等边三角形如下:(实验指导书P58)*************************3、输入并运行以下程序,分析运行结果。

#include <stdio.h>int a=5;int b=7;void main( ){ int a=4,b=5,c;c=plus(a,b);printf(“a+b=%d\n”,c);}plus(int x,int y){ int z;z=x+y;return (z);}4、求500以内的所有亲密数对。

若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数对。

(实验指导书P59)5、输入并运行以下程序,分析运行结果。

#include <stdio.h>int d=1;f(int p){ static int d=5;d+=p;printf(“%d ”,d);return (d);}void main( ){ int a=3;printf(“%d ”,f(a+f(d)));}6、设计一个函数,输出整数n的所有素数因子。

(实验指导书P181)四、实验答案:(代码+运行结果截屏)实验七数组程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握数组的定义、赋值和输入输出的方法。

2、学习用数组实现相关的算法(特别是排序算法)。

3、掌握C语言中字符数组和字符串处理函数的使用。

三、实验内容:说明:前四题为必做题目,后两题为选做题目。

1、下列程序的功能是:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。

程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。

#include <stdio.h>void main( ){ int i,n,a[10],avg;for(i=0;i<n;i++)scanf(“%d”,a[i]);for(i=0;i<n;i++){ if(i%3==0) printf(“\n”);printf(“%d ”,a[i]);}for(i=0;i<n;i++)avg+=a[i];printf(“\navg=%f\n”,avg);}2、写一个函数,对输入的10个整数按从小到大的顺序排序(升序,用冒泡排序实现)。

(实验指导书P72)3、编写程序,判断某一字符串是不是“回文数”,回文数是从左至右或从右至左读起来都是一样的字符串。

(实验指导书P77)4、输入一个3行3列矩阵的所有元素,然后求出主对角线元素之和。

5、给定某年某月某日,将其转换成这一年的第几天并输出。

(实验指导书P76)6、编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。

(实验指导书P189)四、实验答案:(代码+运行结果截屏)实验八指针程序设计(2学时)一、实验方式:一人一机二、实验目的:1、通过实验进一步掌握指针的概念,会定义和使用指针变量。

2、能正确使用指向数组和字符串的指针变量。

3、熟悉指针作为函数参数的编程特点。

三、实验内容:说明:前两题为必做题目,后一题为选做题目。

要求用指针方法实现。

1、输入3个整数,按从小到大的次序输出。

(实验指导书P201)2、数据交换。

实验要求:1)定义两个函数,分别为void swap1(int a,int b)和voidswap2(int *a,int *b),用于交换a,b的值。

2)从主函数中分别输入两个整型变量a、b。

3)从主函数中分别调用上述两个交换函数,并打印输出交换后a、b的结果。

(实验指导书P90)3、编写一个程序计算字符串长度的函数,模拟C的<string.h>函数库内的计算字符串长度的函数strlen( )。

四、实验答案:(代码+运行结果截屏)实验九综合实验2:函数、数组、指针的综合应用(2学时)一、实验方式:一人一机二、实验目的:1、进一步掌握通过指针引用数组元素的方法。

2、综合运用函数、数组、指针的知识,实现复杂程序的编程。

3、掌握调试复杂程序的技巧。

三、实验内容:说明:前两题为必做题目,后两题为选做题目。

要求用指针方法实现。

1、数组元素奇偶排列。

实验要求:1)定义一个整型一维数组,任意输入数组的元素,其中包含奇数和偶数。

2)定义一个函数,实现将数组元素奇数排列在左,偶数排列在右的排列。

3)在上述定义的函数中,不允许再增加新的数组。

4)从主函数中分别调用上述函数,打印输出结果。

(实验指导书P93)2、编写函数lower( )模拟标准函数strlwr( ),调用形式为lower(char *st),其作用是将字符串st中的大写字母转换成小写。

(实验指导书P193)3、编写函数,比较两个字符串是否相等(用指针完成)。

(实验指导书P204)4、编写函数reverse( )模拟标准函数strrev( ),调用形式为reverse(char *st),其作用是颠倒字符串st的顺序,即按与原来相反的顺序排列。

(实验指导书P194)四、实验答案:(代码+运行结果截屏)实验十综合实验3:结构体、文件程序设计(6学时)一、实验方式:一人一机二、实验目的:1、掌握结构体类型变量的定义和使用。

2、掌握结构体类型数组的概念和使用。

3、学会使用文件打开、关闭、读、写等文件操作的函数。

三、实验内容:说明:前三题为必做题目,后一题为选做题目。

1、在选举中进行投票,包含候选人姓名、得票数,假设有多位候选人,用结构体数组统计各候选人的得票数。

(实验指导书P100)2、编写一个学生信息排序程序。

要求:1) 程序运行时可输入n个学生的信息和成绩(n预先定义)。

2) 学生信息包括:学号、姓名;学生成绩包括:高等数学、物理、计算机。

3) 给出一个排序选择列表,能够按照上述所列信息(学号、姓名、高等数学、物理、计算机)中的至少一个字段进行排序,并显示其结果。

4) 使用函数方法定义各个模块。

3、将磁盘上一个文本文件的内容复制到另一个文件中。

(实验指导书P118)4、从键盘输入一行字符串,将其中的小写字母全部转换成大写字母,输出到一个磁盘文件“test.dat”中保存,然后读出并输出在屏幕上。

(实验指导书P123)四、实验答案:(代码+运行结果截屏)。

相关主题