


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、."C程序设计"实验教学大纲一、适用X围大纲适用信息管理专业本科教学使用。二、课程名称C程序设计三、学时数与学分总学时:90 总学分: 4实验学时:28 实验学分:1四、教学目的和根本要求目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规那么,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的根本方法和编程技巧。根本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,到达实验知识和理论知识的融会贯穿。上机实验前,学生必须事先根据题目的内容编好程
2、序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机完毕后,应整理出实验报告。五、实验工程与学时分配序号实验工程名称实验学时实验类型1C程序的运行环境和运行一个C程序的方法2验证性实验2数据类型、运算符和表达式3验证性实验3最简单的C程序设计3验证性实验4选择构造程序设计4设计性实验5循环控制4设计性实验6数组4设计性实验7函数4设计性实验8指针4设计性实验总计28注:带*的实验工程为选做实验工程六、教材、讲义及参考书"C程序设计题解与上机指导"谭浩强主编清华大学七、实验成绩评定方法实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。实验成绩以等级形式给出
3、,评定等级分优、良、中、及格、不及格五类。1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进展综合考核。2、实验报告:学生实验后应按时完成实验报告。八、实验教学大纲说明本大纲共安排28学时的实验,其中带*号实验工程为选做实验工程,实际课时为18学时。实验工程多为设计性实验工程,每个设计性实验工程中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。九、实验工程实验
4、一 C程序的运行环境和运行一个C程序的方法一、实验目的1.了解Visual C+6.0编译系统的根本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。二、实验内容1.用编辑程序,输入教材第一章例1.1程序,并进展编译和运行。应了解所用的系统是用什么命令进展编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的.2.编写一个C程序,输出以下信息:* very good!*3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。实验二 数据类型、运算符和表达式一、实验目的1.掌握C语言数
5、据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。二、实验内容1.输入并运行以下程序:main( ) char c1,c2; c1=97;c2=98; printf(“%c %cn,c1,c2);printf(“%d %dn,c1,c2);在此根底上将第三行、第四行改为:c1=321;c2=353;再使之运行,分析其运行结果。将第二行改为:int c1,c2;再使之运行,分析其运行结果。2.输入并运行以下程序: main( ) int
6、i=8,j=10,m,n;m=+i;n=j+;printf(“%d,%d,%d,%dn,i,j,m,n); 分别作以下改动并运行:程序改为:main( ) int i=8,j=10;printf(“%d,%dn,i+,j+); 在的根底上,将printf语句改为:printf(“%d,%dn,+i,+j);再将printf语句改为:printf(“%d,%d,%d,%dn,i,j, i+,j+);程序改为:main( ) int i=8,j=10,m=0,n=0;m+=i+;n-=-j;printf(“i=%d,j=%d,m=%d,n=%dn,i,j,m,n); 3. 请将以下给出的两个程序段
7、分别输入计算机后,分析其运行结果:main() int num; num=32767; printf(“num=%dn,+num); main() int a=-2; printf(“%d, %dn,a, a-); 实验三 最简单的C程序设计一、实验目的1.掌握C语言中使用最多的一种语句赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。二、实验内容1.上机输入以下程序:main( )int a,b;float c; scanf(“%d%d%f,&a,&b,&c); printf(“a=%-4d,b=%4d,c=%f,c=%.2fn,a,b,c,c)
8、;要使a=3,b=4,c=12.3456,在键盘上应如何输入.有几种方式.2.假设将输入函数改为scanf(“%d, %d ,%f,&a,&b,&c);应该如何输入数据.3.上机输入以下程序:main( )int a; float b; char c;scanf(“%4d%5f%3c,&a,&b,&c); printf(“a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%cn,a,a,a,b,b,c);要使a=77,b=4.56,c= A,在键盘上应如何输入.4.输入两面整型变量a、b的值,输出以下算式以及运算结果。a+b、a-
9、b、a*b、a/b、(float)a/b、a%b每个算式占一行。如a等于10,b等于6,a+b应输入为:10+6=165.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。上机运行程序,比拟用printf和putchar函数输出字符的特点。实验四 选择构造程序设计一、实验目的1.了解C语言表示逻辑量的方法(以0代表“假,以1代表“真);2.学会正确使用逻辑运算符和逻辑表达式;3.熟练掌握if语句和switch语句。二、实验内容先编程序,解以下问题,然后上机调试运行程序。1.有一个函数用scanf函数输入x的值(分别为x<1
10、、110、10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。要求分别用if语句和switch语句实现 3.输入一个三位数,假设此数是水仙花数输出“Y,否那么输出“N, 假设输入值不是三位数输出“data error。提示:水仙花数是一个三位数,组成这个三位数的三个数字的立方和与这个三位数相等。如:153=13+53+33。判断是否是水仙花数需把构成三位数的三个数字别离出来并存入变量。实验五 循环控制一、实验目的1.熟悉用while语句,do-while语句和for语句实现循环的方法
11、。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。二、实验内容编程序并上机调试运行。1.输入两个正整数,求其中最大公约数和最小公倍数。2.输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。3.打印出以以下图案: * * * * * * *4.编程求1!+2!+3!+20!。5.编写程序输出乘法表实验六 数组一、实验目的1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。二、实验内容 编程序并上机调试运行。1. 编写程序,用scanf函数输入10个整数的数列,先将整数按照从
12、大到小的顺序进展排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。2.有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,那么输出“无此数 ,并且可以实现连续查找。15个数用赋初值的方法在程序中给出,要找的数用scanf函数输入。3.将以下二维数组中数按列的顺序存放到一个一维数组中。二维数组的内容是11 22 33 4411 22 33 4411 22 33 44那么一维数组中的内容是11 11 11 22 22 22 33 33 33 44 44 44 4.将两个字符串连接起来,不要用strcat函数。5.从键盘输入5个字符
13、串,找出最长的字符串和最大的字符串。实验七 函数一、实验目的1.掌握定义函数的方法;2.掌握函数实参与形参的对应关系,以及“值传递的方式;3.掌握函数的嵌套调用和递归调用的方法;4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。二、实验内容编程序并上机调试运行之。1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公
14、倍数。3.二阶Fibonacci数列: 0 假设n=0Fib(n)= 1 假设n=1 Fib(n-1)+Fib(n-2) 其他情况定义递归函数求Fib(n)。4. 编写函数,求 实验八 指针一、实验目的1.掌握指针的概念,会定义和使用指针变量;2.学会使用数组的指针和指向数组的指针变量;3.学会使用字符串的指针和指向字符串的指针变量;4.学会使用指向函数的指针变量;5.了解指向指针的指针的概念及其使用方法。二、实验内容编程序并上机调试运行程序都要求用指针处理。1.定义函数void fun(int x ,int *max,int *min),找出数组x中的最大值和最小值,最大值和最小值通过形参指
15、针max和min传回。2.编写一个函数p(s1,s2)实现两个字符串的比拟。如果s1=s2,那么函数返回值为0;如果s1s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY与“BAD,第二个字母不同,“O与“A之差为79-65=14);如果s1>s2,那么输出正值;如s1<s2那么输出负值。两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。3.从键盘输入一个字符串与一个指定字符,调用函数,将字符串中出现的指定字符全部删除。4将一个×的矩阵转置,用一函数实现。在一主函数中用scanf函数输入以下矩阵元素:将数组名作为函数参数,在
16、执行函数的过程中实现矩阵转置,函数调用完毕后在主函数中输出转置后的矩阵。实验九 构造体和共用体一、实验目的1.掌握构造体类型变量的定义和使用;2.掌握构造体类型数组的概念和应用;3.掌握链表的概念,初步学会对链表进展操作;4.掌握共用体的概念与使用。二、实验内容编程序,然后上机调试运行。1.有3个学生,每个学生的数据包括学号、三门课的成绩,要求用input函数实现从键盘输入学生数据,用average函数求每个人的平均分,用output函数打印学生数据及平均成绩。2.建立一个带有头结点的单链表,每个结点包括:学号、年龄,并输出链表中所有结点的数据。在链表中查找年龄最大的结点,并将链表中等于此年龄
17、的结点删除年龄最大的结点可能不止一个。*3.将一个链表按逆序排列,即将链头当链尾,链尾当链头。4.上机输入如下程序:main( )union bt int k; char c2;a; a.k= -7; printf(“%o,%on,a.c0,a.c1);分析其运行结果。实验十 位运算一、实验目的1.掌握按位运算的概念和方法,学会使用位运算符;2.学会通过位运算实现对某些位的操作。二、实验内容编写程序,上机调试并运行。1.编一个函数getbits,从一个16位的单元中取出某几位(即该几位保存原值,其余位为0)。函数调用形式为:getbits(value,n1,n2)value为该16位数的值,n
18、1为欲取出的起始位,n2为欲取出的的完毕位。如:getbits(0101675,5,8)表示对八进制数101675,取出其从左面起的第5位到第8位。要求把这几位数用八进制数打印出来。注意,应当将这几位数右移到最右端,然后用八进制形式输出。2.利用位运算操作,实现交换两个变量的值。3.将一个十六进制整数的各位循环左移4位,然后用十六进制形式输出。实验十一 文件一、实验目的1.掌握文件以及缓冲文件系统、文件指针的概念;2.学会使用文件翻开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进展简单的操作。二、实验内容编写程序并上机调试运行。1.编程序求100以内的素数,分别将它输出到显示器屏
19、幕和x.txt文件中,要求每行5个数。2.从键盘输入几本书的数据,每本书的数据包括条形码、书名和价格,将每项数据分别写入文本文件s.txt和二进制文件s.dat。*3.从上题的文本文件s.txt或二进制文件s.dat中读入每本书的数据,计算所有书的平均价格。要求用input函数读入,average函数求平均价格。统计与信息学院"C程序设计"实验报告 一 学号:班级:成绩:实验名称:C程序的运行环境和运行一个C程序的方法指导教师:实验日期:实验地点:实验软件主要仪器设备:Visual C+6.0实验要求1.了解Visual C+6.0编译系统的根本操作方法,学会独立使用该系统
20、。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。实验过程与步骤实验:1、 翻开Visual C+6.0。2、 新建文件 C+ Source File,文件名.c并更改位置后确定。3、 编辑*include"stdio.h"int main()printf("This is a C program.n");return 0;4、 编译,无错误无警告后执行实验:*include"stdio.h"int main()printf("*n");printf(&qu
21、ot;Very good!n");printf("*n");return 0;实验:*include"stdio.h"int main()printf("This is a C program.n");return 0;实验总结统计与信息学院"C程序设计"实验报告 二 学号:班级:成绩:实验名称:数据类型、运算符和表达式指导教师:实验日期:实验地点:实验软件主要仪器设备:Visual C+6.0实验要求1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输
22、出时所用格式转换符。2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。实验过程与步骤实验1、 运行Visual C+6.0并新建工作区2、 输入*include<stdio.h>main()char c1,c2; c1=321;c2=353; printf("%c %cn",c1,c2); printf("%d %dn",c1,c2);3、 编译,无错误、无警告后运行,结果如下:4、 在步骤2的根底上将第三行、第四行改为:c1=321;c2=353;5、 编译,无错误、无警告后运行,结果提示
23、:aa.obj - 0 error(s), 2 warning(s)6、 在步骤2的根底上将第二行改为:int c1,c2;7、 编译,无错误、无警告后运行,结果如下:实验1、 输入*include<stdio.h>main()int i=8,j=10,m,n; m=+i;n=j+; printf("%d,%d,%d,%dn",i,j,m,n);实验1、输入*include<stdio.h>main()int num; num=32767; printf("num=%dn",+num);2、 编译,无错误、无警告后运行,结果如下:
24、2、编译,无错误、无警告后运行,结果如下:3、 将步骤2程序改为:*include<stdio.h>main()int i=8,j=10; printf("%d,%dn",i+,j+);4、 编译,无错误、无警告后运行,结果如下:5、 在步骤3的根底上,将printf语句改为:printf(“%d,%dn,+i,+j);6、 编译,无错误、无警告后运行,结果如下:7、 在步骤3的根底上,将printf语句改为:printf(“%d,%d,%d,%dn,i,j, i+,j+);8、 编译,无错误、无警告后运行,结果如下:9、 将步骤2程序改为:*include&l
25、t;stdio.h>main()int i=8,j=10,m=0,n=0;m+=i+,n-=-j;printf("i=%d,j=%d,m=%d,n=%dn",i,j,m,n);10、编译、运行,结果如下:3、 输入*include<stdio.h>main()int a=-2; printf("%d,%dn",a,a-);4、 编译,无错误、无警告后运行,结果如下:实验总结统计与信息学院"C程序设计"实验报告 三 学号:班级:成绩:实验名称:最简单的C程序设计指导教师:实验日期:实验地点:实验软件主要仪器设备:Vis
26、ual C+6.0实验要求1.掌握C语言中使用最多的一种语句赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。实验过程与步骤实验1、 运行Visual C+6.0并新建工作区2、 输入*include<stdio.h>main()int a,b;float c;scanf("%d%d%f",&a,&b,&c);printf("a=%-4d,b=%4d,c=%f,c=%.2fn",a,b,c,c);3、 编译,无错误、无警告后运行,结果如下: 有空格、tab、回车三种输入方式。4、 将步骤2中的sc
27、anf("%d%d%f",&a,&b,&c);改为scanf(“%d, %d ,%f,&a,&b,&c);5、 编译,无错误、无警告后运行,结果如下:实验1、 输入*include<stdio.h>main()int a;float b;char c;scanf("%4d%5f%3c",&a,&b,&c);printf("a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%cn",a,a,a,b,b,c);2、 编译,无错误、无警告后运
28、行,结果如下:实验(1) a+b1、 输入*include<stdio.h>main()int a,b,c; scanf("%d,%d",&a,&b); c=a+b; printf("%d+%d=%dn",a,b,c);2、 编译,无错误、无警告后运行,结果如下:(2) a-b1、 输入*include<stdio.h>main()int a,b,c; scanf("%d,%d",&a,&b); c=a-b; printf("%d-%d=%dn",a,b,c)
29、;2、 编译,无错误、无警告后运行,结果如下:(3) a*b1、 输入*include<stdio.h>main()int a,b,c;scanf("%d,%d",&a,&b);c=a*b;printf("%d*%d=%dn",a,b,c);2、 编译,无错误、无警告后运行,结果如下:实验1getchar输出1、输入*include<stdio.h>int main()char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);return 0;2、编译
30、,无错误、无警告后运行,结果如下:(4) a/b1、输入*include<stdio.h>main()int a,b,c; scanf("%d,%d",&a,&b); c=a/b; printf("%d/%d=%dn",a,b,c);2、编译,无错误、无警告后运行,结果如下:(5) (float)a/b1、输入*include<stdio.h>main()int a,b,c; scanf("%d,%d",&a,&b); c=(float)a/b; printf("%d/
31、%d=%dn",a,b,c);2、编译,无错误、无警告后运行,结果如下:(6) a%b1、输入*include<stdio.h>main()int a,b,c; scanf("%d,%d",&a,&b); c=a%b; printf("%d%d=%dn",a,b,c);2、编译,无错误、无警告后运行,结果如下:2printf输出1、输入*include<stdio.h>int main()char c1,c2;c1=getchar();c2=getchar();printf("%c%cn&quo
32、t;,c1,c2);return 0;2、编译,无错误、无警告后运行,结果如下:实验总结统计与信息学院"C程序设计"实验报告 四 学号:班级:成绩:实验名称:选择构造程序设计指导教师:X雄实验日期:实验地点:实验软件主要仪器设备:Visual C+6.0实验要求1.了解C语言表示逻辑量的方法(以0代表“假,以1代表“真);2.学会正确使用逻辑运算符和逻辑表达式;3.熟练掌握if语句和switch语句。实验过程与步骤实验1、 运行Visual C+6.0。2、 输入*include<stdio.h>int main()int x,y;scanf("%d&
33、quot;,&x);if(x<1)y=x;else if(x>=10)y=3*x-11;elsey=2*x-1;printf("x=%d,y=%dn",x,y);return 0;3、 编译,无错误、无警告后运行,结果如下:X<1时,1=<x<10时,x>=10时,2switch语句1、输入*include<stdio.h>main()float x;int y;char ch;printf("Your score:");scanf("%f",&x);y=x/10;swi
34、tch(y)case 10:case 9:ch='A'break;case 8:ch='B'break;case 7:ch='C'break;case 6:ch='D'break;default:ch='E'printf("%cn",ch);return 0;2、编译,无错误、无警告后运行,结果如下:实验1if语句1、输入*include<stdio.h>main()float x;char ch;scanf("%f",&x);if(x>=90) c
35、h="A"else if(x>=80) ch="B"else if(x>=70) ch="C"else if(x>=60) ch="D"else ch="E"printf("%cn",ch);2、编译,无错误、无警告后运行,结果如下:实验:水仙花数1、输入*include<stdio.h>int main()int m,a,b,c;scanf("%d",&m);if(m/100=0)printf("data
36、errorn");return 0;a=m%10;b=(m/10)%10;c=m/100;if(m=a*a*a+b*b*b+c*c*c)printf("Yn",m);return 0;else printf("Nn",m);return 0;2、编译,无错误、无警告后运行,结果如下:实验总结统计与信息学院"C程序设计"实验报告 五 学号:班级:成绩:实验名称:循环控制指导教师:实验日期:实验地点:实验软件主要仪器设备:Visual C+6.0实验要求1.熟悉用while语句,do-while语句和for语句实现循环的方法。2
37、.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。实验过程与步骤实验:输入两个正整数,求其中最大公约数和最小公倍数。1求最大公约数1、输入*include<stdio.h>main()int m,n,i,t;scanf("%d%d",&m,&n);if(n<m)t=n;n=m;m=t;i=m;while(1)if(m%i=0&&n%i=0) break;i-;printf("它们的最大公约数是:%dn",i);return 0;2、编译,无错误、无警告后执行,结果如下:2求最小公倍数1、
38、输入*include<stdio.h>main()int m,n,i,t;scanf("%d%d",&m,&n);if(n<m)t=n;n=m;m=t;实验:输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。1、输入*include<stdio.h>main()char c; int letter,space,number,other; letter=space=number=other=0; do c=getchar(); if(c>='a'&&c<='z&
39、#39;|c>='A'&&c<='Z') letter+; else if(c>='0'&&c<='9') number+; else if(c=' ') space+; else other+; while(c!='n'); printf("letter=%d,space=%d,number=%d,other=%dn",letter,space,number,other); return 0;2、编译,无错误、无警告后执行
40、,结果如下:实验:打印出以以下图案:7行7列菱形1、输入*include<stdio.h>*define n 3int main()int i,j;for(i=0;i<=n;i+) for(j=1;j<=n-i;j+)printf(" ");i=m;while(1)if(i%m=0&&i%n=0) break;i+;printf("它们的最小公倍数是:%dn",i);return 0;2、编译,无错误、无警告后执行,结果如下:实验:编写程序输出乘法表1、 输入*include<stdio.h>main(
41、)int i,j;for(i=1;i<=9;i+) for(j=1;j<=i;j+) printf("%d*%d=%-3d",j,i,i*j); printf("n"); system("pause");2、 编译,无错误、无警告后运行,结果如下: for(j=1;j<=2*i+1;j+) printf("*"); printf("n"); for(i=n-1;i>=0;i-) for(j=1;j<=n-i;j+) printf(" "); fo
42、r(j=1;j<=2*i+1;j+) printf("*"); printf("n"); 2、编译,无错误、无警告后运行,结果如下:实验:编程求1!+2!+3!+20!。1、输入*include<stdio.h>int main()int n,m=1,sum=0;for(n=1;n<=20;n+)m=n*m;sum=sum+m;printf("1+2!+3!.+20!=%dn",sum);2、编译,无错误、无警告后运行,结果如下:实验总结统计与信息学院"C程序设计"实验报告 六 学号:班级:
43、成绩:实验名称:数组指导教师:实验日期:实验地点:实验软件主要仪器设备:Visual C+6.0实验要求1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。实验过程与步骤实验:编写程序,用scanf函数输入10个整数的数列,先将整数按照从大到小的顺序进展排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。1、输入*include<stdio.h> main () void Rank(int N,int n); int i,j,k; int n11; for(i=0;i<10;i+)
44、scanf("%d",&ni); Rank(10,n);scanf("%d",&k); if(k>n9) n10=k; else for(i=0;ni<=k;i+); for(j=9;j>=i;j-) nj+1=nj; ni=k; for(i=0;i<=10;i+) printf("%-4d",ni); printf("n"); void Rank(int N,int n) int i,k,t; for(k=1;k<=N-1;k+) for(i=N-1;i>=k;
45、i-) if(ni-1>ni) 实验:有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,那么输出“无此数 ,并且可以实现连续查找。15个数用赋初值的方法在程序中给出,要找的数用scanf函数输入。1、输入*include<math.h>main()static int i,j,m,a15=2,10,13,24,35,59,68,78,98,102,234,526,649,758,893;scanf("%d",&m);for(j=0;j<15;j+)printf("%4d&qu
46、ot;,aj);printf("n");i=7;while(fabs(i-7)<8)if(m<a7)if(ai-m=0)printf("it is at (%d)n",i+1);break;i-;else if(m>a7)if(ai-m=0)printf("it is at (%d)n",i+1);break;i+;elseprintf("8n");if(fabs(i-7)-8=0) printf("无此数n");2、编译,无错误、2警告后运行,运行结果如下:实验:将以下二维数
47、组中数按列的顺序存放到一个一维数组中。二维数组的内容是11 22 33 4411 22 33 4411 22 33 44那么一维数组中的内容是11 11 11 22 22 22 33 33 33 44 44 441、输入*include <stdio.h>main()inta34=11,22,33,44,11,22,33,44,11,22,33,44;int b12,i,j,m;t=ni; ni=ni-1; ni-1=t; for(i=0;i<=N-1;i+) printf("%-4d",ni); printf("n"); 2、编译,无
48、错误、无警告后运行,运行结果如下:实验:将两个字符串连接起来,不要用strcat函数。1、输入*define M 50*define N 20main ()char aM,bN;int i,j;gets(a);gets(b);for(i=0;ai!='0'i+);for(j=0;bj!='0'j+) ai=bj;i+;ai='0'puts(a);2、编译,无错误、无警告后运行,运行结果如下:实验:从键盘输入5个字符串,找出最长的字符串和最大的字符串。1、输入*include "string.h"*define N 20main
49、()char a5N,maxN,m,n,max1;int b5;int i,j;for(i=0;i<=4;i+)gets(ai);for(i=0;i<=4;i+)bi=strlen(ai);max1=b0;m=0;for(i=1;i<=4;i+)if(bi>=max1) max1=bi;m=i;strcpy(max,a0);n=0;for(i=1;i<=4;i+)if(strcmp(ai,max)>=0)strcpy(max,ai);n=i;printf("n");puts(am);puts(an);2、编译,无错误、无警告后运行,运行结
50、果如下:m=0;for(j=0;j<=3;j+)for(i=0;i<=2;i+)bm=aij;m+;for(m=0;m<12;m+)printf("%d ",bm);printf("n");2、编译,无错误、无警告后运行,运行结果如下:实验总结统计与信息学院"C程序设计"实验报告 七 学号:班级:成绩:实验名称:函数指导教师:X雄实验日期:实验地点:实验软件主要仪器设备:Visual C+6.0实验要求1.掌握定义函数的方法;2.掌握函数实参与形参的对应关系,以及“值传递的方式;3.掌握函数的嵌套调用和递归调用的方法
51、;4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。实验过程与步骤实验:写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。1、输入*include <stdio.h>int is_prime(int m)int i;if(m=1)return 0;for(i=2;i<m;i+)if(m%i=0)return 0;return 1;void main()int n,c;scanf("%d",&n);c=is_prime(n);if(c=1)printf("它是素数n");elseprintf(&quo
52、t;它不是素数n");2、编译,无错误、无警告后运行,结果如下:实验:二阶Fibonacci数列: 0 假设n=0Fib(n)= 1 假设n=1 Fib(n-1)+Fib(n-2) 其他情况定义递归函数求Fib(n)。1、输入*include<stdio.h>int fib(int n)if(n=0 )return 0;else if(n=1)return 1;elsereturn fib(n-1)+fib(n-2);void main()int n; scanf("%d",&n); printf("fib(%d)=%dn"
53、,n,fib(n);2、编译,无错误、无警告后运行,结果如下:实验: 1、输入*include<stdio.h>void main() int gy(int,int); int gb(int,int); int m,n;restart: scanf("%d%d",&m,&n); printf("最大公约数是%dn",gy(m,n); printf("最小公倍数是%dn",gb(m,n); goto restart;int gy(int x,int y) int a,b,c,d; if(x>=y) a=x,b=y; else a=y,b=x; while(d!=0) c=a/b;d=a%b;a=b;b=d; return a;int gb(int x,int y) return(x*y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 礼仪用品行业产品线规划考核试卷
- 续签劳动合同案例分析
- 汽车配件客户服务礼仪培训考核试卷
- 电气设备在智能电网能源优化调度系统中的应用考核试卷
- 玻璃容器生产过程中的废料处理与回收考核试卷
- 水利工程中的雨水利用和洪水防治技术考核试卷
- 大班防拐骗安全教育教案
- 稀有金属加工质量改进方法创新与实施案例分析考核试卷
- 机场航站楼建筑节能技术与策略考核试卷
- 汽轮机在核能发电领域的优势分析考核试卷
- 高楼遮光补偿协议书范本
- 母乳喂养知识培训课件下载
- 西安市曲江第三中学行政人员及教师招聘笔试真题2024
- 2025-2030中国竹纤维行业市场发展现状及竞争策略与投资前景研究报告
- 委托外包催收合同协议
- 2025-2030中国涂装行业市场深度分析及发展预测与投资策略研究报告
- 乳腺癌诊治指南与规范(2025年版)解读
- 银行系统招聘考试(经济、金融、会计)模拟试卷14
- 心理韧性在咨询中的重要性试题及答案
- 外研版(三起)(2024)三年级下册英语Unit 2 单元测试卷(含答案)
- 2025年全国普通话水平测试训练题库及答案
评论
0/150
提交评论