ImageVerifierCode 换一换
格式:DOCX , 页数:57 ,大小:316.55KB ,
资源ID:16434619      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-16434619.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C上机实验.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C上机实验.docx

1、C上机实验实验一 顺序结构程序设计一、目的与要求1掌握Visual C+(简称VC)的基本操作,学会如何在VC环境下编辑、编译、链接和运行程序。2通过上机练习,掌握C语言的数据类型,熟悉如何定义基本类型char、int、float、double的变量,如何赋值等操作。3学会在程序中使用C语言各类运算符和表达式。4掌握scanf函数与printf函数的使用方法。二、实验内容1VC的使用 启动VC,进入VC屏幕编辑状态 C程序的编辑、编译、链接和运行 VC常用功能键的使用:Ctrl+F7、Ctrl+F5等注:VC的使用请参阅本资料后的附:如何在Visual C+下调试运行C程序2格式输入输出函数s

2、canf和printf的使用。给出源程序如下,请按程序后给出的步骤逐一修改源程序,并随时运行修改后的程序,查看运行结果,加深对相关内容的熟悉和理解。步骤一:输入以下源程序#include main() char c1, c2; int i1, i2; long l1; float f1, f2; double d1, d2; c1 = A; c2 = a; i1 = -1; i2 = 32768; l1 = 65539; f1 = 925.31567; f2 = 15.628396; d1 = 925.31567; d2 = 15.628396; printf(“c1 = %c, c2 = %

3、cn”, c1, c2); printf(“i1 = %d, i2 = %dn”, i1 ,i2); printf(“l1 = %ld, l1 = %lxn”,l1, l1); printf(“f1 = %f, f2 = %en”, f1 ,f2); printf(“d1 = %f, d2 = %en”, d1, d2);步骤二:使用功能键Ctrl+F9执行程序,用功能键Alt+F5查看结果。步骤三: 将最后五行printf函数调用语句改写成以下形式,熟悉指定宽度与小数位数的用法。 printf(“c1 = %3c, c2 = %3cn”, c1, c2); printf(“i1 = %5d,

4、 i2 = %5dn”, i1 ,i2); printf(“l1 = %8ld, l1 = %8lxn”,l1, l1); printf(“f1 = %10.3f, f2 = %10.5en”, f1 ,f2); printf(“d1 = %10.3f, d2 = %10.5en”, d1, d2);步骤四: 将前三个printf函数调用语句改写成以下形式,熟悉当一变量值以不同的格式符说明时,输出结果的变化(注意:记录输出结果,并说明其原因)。 printf(“c1 = %c,%d, c2 = %c, %dn”, c1, c1, c2, c2); printf(“i1 = %d, %o, %x

5、, %u, i2 = %d, %o, %x, %un”, i1, i1, i1, i1 , i2, i2, i2, i2); printf(“l1 = %ld, %lo, %lx, %lun”,l1, l1, l1, l1); 步骤五:将以上程序压缩如下,用紧凑格式(格式符之间无任何字符)的scanf函数调用语句代替赋值语句:#include main() char c1, c2; int i1, i2; printf(“Input i1, c1, i2, c2 : ”); scanf(“%d%c%d%c”, &i1, &c1, &i2, &c2); printf(“c1 = %c, c2 =

6、 %cn”, c1, c2); printf(“i1 = %d, i2 = %dn”, i1 ,i2);执行程序,在屏幕提示“Input i1, c1, i2, c2 :”的后面按格式10A20B输入,查看结果;将输入格式改成10A 20a和10 A 20a,查看结果并阐述你对这一结果的看法。步骤六:再将步骤五中用紧凑格式的scanf函数调用语句改写成以下形式: scanf(“%d,%c,%d,%c”, &i1, &c1, &i2, &c2);再按步骤五的形式输入,查看结果并解释这一现象。思考:在步骤六,要想得到输出结果i1 = 10,i2 = 20,c1 = A,c2 = a(注意:赋值号左

7、右有空格),正确的输入格式是什么?输出函数printf应如何书写?3编写程序,输入华氏温度(F),按下列公式计算并输出对应的摄氏温度(C)。 C = 5/9(F 32)4编写程序,从键盘输入一个三角形的三条边长a、b、c(要求任何两条边的边长之和均大于第三条边的边长),求该三角形的面积。求三角形的面积公式是: 其中: 在输入函数调用语句中,格式控制字符串中的格式字符分别用空格、逗号和分号分隔,用同一组数据但不同的分隔符分别执行程序,观察程序运行结果。5编写程序,将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上, b数的十位和个位数

8、依次放在c数的个位和百位上。例如,当a45,b=12,运行结果为:c=5241。6编写程序,用若干条printf函数调用语句输出以下图形: 实验二 选择结构程序设计一、目的与要求1熟悉C语言的逻辑运算,了解逻辑值在C程序的表达形式。2掌握if语句的三种结构形式,学会使用这三种形式编写程序。3了解switch语句使用格式和特点,会使用switch语句进行程序设计。4了解嵌套的if形式与switch语句之间的差异,能有条件地将嵌套的if形式转换成switch语句形式。二、实验内容1编一程序,使用单分支的if语句形式,求a,b,c三个整数的中间值。例如:a、b、c的值分别为3、4、5,则输出4。2有

9、一函数 x (x1) y = 2x 1 (1x10)3x 11 (x10)用scanf函数输入x的值(分别取x1、110、10三种情况),求y值。3编写程序,输入一位学生的生日(年:y0、月:m0、日:d0)数据,再输入当前的日期(年:y1、月:m1、日:d1)数据,计算并输出该学生的实足年龄。4编写程序,定义四个字符变量c1,c2,c3和c4,分别用getchar()函数任意输入四个字母,分别输出其中的最大值和最小值。5设整型变量a的值为正数,请将以下C源程序中的if语句形式改写成switch语句形式。#include main() int a,m; printf(”a = ”); scan

10、f(”%d”, &a); if(a30) m = 1; else if(a 40) m = 2; else if(a 50) m = 3; else if(a 60) m = 4; else m = 6; printf(”m = %dn”, m); 思考:如果将a为正数的条件去掉,则如何修改程序才能保证程序功能不变?实验三 循环结构程序设计一、目的与要求1熟悉C语言的循环结构,学会用while语句、do-while语句和for语句编写循环程序的方法。2初步掌握在程序设计中使用循环的方法实现各种基本算法。3学会使用循环嵌套的形式编写程序。4初步掌握调试循环程序的方法和技巧。二、实验内容(一)必做

11、题1编写程序,计算并输出正整数n的所有因子(1和n除外)之和。2编写程序,利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。迭代步骤如下: ()取x1初值为0.0; ()x0=x1,把x1的值赋给x0; ()x1=cos(x0),求出一个新的x1; ()若x0-x1的绝对值小于0.000001,执行步骤(),否则执行步骤(); ()所求x1就是方程cos(x)-x=0的一个实根。3. 编写程序,输入一行字符,分别统计出其中的大写字母、小写字母、空格和数字的个数。提示:用以下循环格式处理输入的一行字符。 while(c = getchar()!=n) /* 若输入的c不是回车符时

12、继续 */ 循环体或者:c = getchar();while(c !=n) /* 若c不是回车符时继续 */ 循环体 c = getchar(); (二)选做题编写程序,计算直到10-6。若x=2.5,则程序最后输出为1.917915。编写程序,输出正整数m和n(不包括m、n)之间的所有素数,要求每行输出8个数。3求以下数列的前n项之和。 4一物体从100米的高空自由落下,每次落地后反弹回原高度的一半,再落下。求物体在第10次落地时,共经过多少米?第10次反弹多高?实验四 数组一、目的与要求1掌握一维数组和二维数组的定义、赋值和输入输出的方法。2掌握字符数组和字符串函数的使用。3掌握与数组有

13、关的算法,至少掌握一种排序算法。二、实验内容(一)必做题1编写程序,将3n之间的所有非素数存入数组array中,然后输出该数组元素。例如,若n=20,则输出4,6,8,9,10,12,14,15,16,18,19,20。2编写程序,将字符数组str中的字符串逆置后输出。例如,若str字符串为“This is a C programe.”,则输出为“.emargorp C a si sihT”。3从键盘输入10个整数,选择一种排序算法,将这些数按从大到小的顺序排列输出。4计算5 x 5矩阵的主对角线元素和次对角线元素之和。若有下列矩阵,则输出的值应该是130。 1 2 3 4 5 6 7 8 9

14、 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 (二)选做题输入m个长度不同的字符串,要求按长度由长到短进行排序。将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,s所指的字符串为:def35adh3kjsdf7,则执行结果为:defadhkjsdf3537。提示:设置三个字符数组s、t和w,将s串中的非数字字符存入t中,数字字符存入w中,构成两个新的字符串,最后将字符串t和w连接后输出。将整型数组中的n个数据元素一分为二,左边部分与右边部分对换。如果元素的个数为奇数,则中间元素不参加交换

15、。例如,数组中元素为1,2,3,4,5,6,7,8,9,则交换后的元素顺序为:6,7,8,9,5,1,2,3,4。编写程序,输入一个4 x 4的整数矩阵,将矩阵左边的前2列移到矩阵的右边,然后输出移动后的矩阵。例如,已有下列矩阵:21 12 13 2425 16 47 3829 11 32 5442 21 33 10则移动后的矩阵为:13 24 21 12 47 38 25 16 32 54 29 11 33 10 42 21 5编写程序,在屏幕上输出杨辉三角形。 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 实验五 函数一、目的与要求1掌握定义函数的方法。2掌

16、握函数实参与形参的对应关系,熟悉“值传递”的程序特点。3了解数组名作函数的实参的特点,掌握“地址传递”的程序设计方法。 4掌握全局变量与局部变量的概念,学会在程序中的使用全局变量。二、实验内容(一)必做题1编写一个判素数的函数int Isprime(int m)。在主函数中输入一个整数n,然后调用Isprime,如果n是素数,则输出: n is prime!否则输出:n isnt prime!(注:输出格式中用输入的具体值代替字母n)2编写两个函数,分别求两个整数的最小公倍数和最大公约数并返回给主函数,两个整数由主函数输入。源程序结构如下:#include int Lowest_common_

17、multiple(int x, int y) /*此处填充最小公倍数函数的函数体*/int Greatest_commom_divisor(int x, int y) /*此处填充最大公约数函数的函数体*/main() int m, n, s; printf(“Please input m, n: “); scanf(“%d%d”, &m, &n); /*此处填充函数调用及输出语句的程序段*/3编一个函数fun(char s),其功能是把字符串s中的小写字母转换成大写字母,其它字符则不变。4编一函数void convert(int a3),求3 X 3矩阵的转置矩阵。例如,原矩阵是: 则转置后

18、的矩阵是:1 2 3 1 4 74 5 6 2 5 87 8 9 3 6 9(二)选做题1编写函数int fun(int t),其功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数值返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2)例如,当t1000时,函数值为1597。2编一函数float averf(float x,int n),其功能是:计算形参x所指数组中n个数的平均值,并将平均值返回主函数。3编一函数void fun(int xxMN, int pp),其功能是:将二维数组xx中的数据元素按列依次存放到

19、一维数组pp中。(M和N是符号常量)例如,xx数组存放如下数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16则pp数组中的内容为:1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16。4编一函数void deletechar(char str, char ch),其功能是:从字符串str中删除所有的ch字符。例如,若字符串str的内容为:“This is a C program!”,ch = a,删除后str变成:“This is C progrm!”。实验六 指针一、实验目的1掌握指针的概念,学会定义和使用指针变量;2学会使用数组的指

20、针和指向数组的指针变量;3学会使用字符串的指针和指向字符串的指针变量;4了解指向函数的指针和返回指针的函数5了解指向指针的指针的概念和使用方法。二、实验内容(一)必做题1编写程序,将三个整数按从小到大的顺序输出。要求:所有的比较运算和赋值运算均使用指针变量。2编一函数,将一字符串中的所有字符逆置,主函数实现字符串的输入输出。3编写程序,从字符串s中删除指定位置n上的字符。删除操作用函数实现,函数首部为void delechar(char *s, int n)。4编一函数,用指针形式将两个字符串连接成一个字符串。(要求:不能使用库函数)5编写函数float averf(int x, int n,

21、 int *max, int *min),其功能是:在具有n个数据元素的整型数组x中,求其中的最大值,最小值和平均值。最大值与最小值由形参max和min返回主函数,平均值通过返回语句返回主函数。(二)选做题1判断字符串substr是否为字符串str的子串,如果是子串,则返回1,否则返回0。2请编写一个函数 void fun(int m, int k, int xx), 该函数的功能是:将大于整数 m 且紧靠 m 的 k 个素数存入数组 xx中。(提示:另外再编写一个求素数的函数)3请编写函数 void fun(char *s),其功能是:将字符串首部连续的*号全部删除,后面和中间的*号不删除。

22、(规定输入的字符串中只包含字母和*号,且不得使用语言提供的字符串函数)例如,字符串中的内容为*A*BC*DEF*G*,删除后, 字符串中的内容应当A*BC*DEF*G*。4将二维字符数组中的字符按行合并成一个字符串。例如, 二维数组中的数据为: W W W W S S S S H H H H则字符串中的内容应是: WSHWSHWSH。实验七 结构体与共用体一、实验目的1掌握结构体类型说明的几种方法,掌握结构体变量的定义、使用和赋值等操作;2学会基本的结构体程序设计方法3掌握结构体类型数组、结构体指针的概念和应用,学会引用结构体数组元素中的成员项及通过结构体指针引用成员项的方法;4掌握链表的概念

23、,初步学会对链表的操作5能模仿现有例子编写插入、删除函数的算法6掌握共用体的基本概念与简单的使用。二、实验内容(一)必做题1 学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能是:把高于等于平均分的学生数据放在h所指的数组中, 高于等于平均分的学生人数通过形式参数传回,平均分通过函数值返回。#include #define N 12typedef struct char num10; double s; STREC;double fun( STREC *a, STREC *b, int *n ) /*在此处填充函数内容*/main()

24、STREC sN=GA05,85,GA03,76,GA02,69,GA04,85,GA01,91,GA07,72,GA08,64,GA06,87,GA09,60,GA11,79,GA12,73,GA10,90; STREC hN; FILE *out; int i,n; double ave; ave=fun( s,h,&n ); printf(The %d student data which is higher than %7.3fn,n,ave); for(i=0;in;i+)printf(%s %4.1fn,hi.num,hi.s);2. 学生的记录由学号和成绩组成,N 名学生的数据已

25、在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能是:把分数最高的学生数据放在h所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。部分程序参考第1题的内容,修改它,使其实现本题的功能。3N 名学生的成绩已在主函数中放入一外带有头结点的链表结构中,h 指向链表的头结点。请编写函数 fun,它的功能是:找出学生的最高分,由函数值返回。#include #include #define N 8struct slist double s; struct slist *next;typedef struct slist STREC;double fun( STRE

26、C *h ) /*在此处填充函数内容*/STREC * creat( double *s ) STREC *h,*p,*q; int i=0; h=p=(STREC*)malloc(sizeof(STREC);p-s=0; while( is=si;i+; p-next=q;p=q; p-next=0; return h;outlist( STREC *h) STREC *p; p=h-next; printf(head); do printf(-%2.0f,p-s);p=p-next; while(p!=0); printf(nn);main() double sN=85,76,69,85,

27、91,72,64,87,max; STREC *h; h=creat( s ); outlist( h ); max=fun(h); printf(max=%6.3fn,max);4N 名学生的成绩已在主函数中放入一外带有头结点的链表结构中,h 指向链表的头结点。请编写函数 fun,它的功能是:求出平均分,由函数值返回。部分程序参考第3题的内容,请修改此程序中的main函数,以实现其功能要求。(二)选做题1有10个产品的销售记录数据,每条记录由产品号cno,产品名 cname,单价dj,数量sl和金额je构成,其中金额数据由单价和数量计算得到。要求:从键盘输入这10条记录的数据,并计算出金额,

28、然后,在屏幕上按一定的格式输出这10条记录的数据。2在第1题的基础上,编写一个函数,功能是:将10条数据记录按金额从小到大排列输出。3已有两个结构相同的链表list1和list2,链表中的结点由学号和成绩组成。编程将两个链表交叉链接并输出。4用链表处理以下问题:13个人围成一圈,从第1个人开始顺序报数1、2、3,凡报到3者退出圈子,退出圈子的人按出圈顺序进入另一个结构相同的链表中,最后,输出出圈序列号。实验八 文件一、实验目的1掌握文件以及缓冲文件系统、文件指针的概念;2学会文件的打开、关闭、读写等基本操作;3掌握fgetc、fputc、fgets、fputs、feof函数的使用;了解frea

29、d、fwrite、fseek、rewind和ftell函数的功能及简单使用;4学会模仿教材中的例子,编写简单的文件处理程序。二、实验内容(一)必做题1将从键盘输入的5行字符数据存入名为“myfile1.txt”的文件中。2将第1题输入到myfile1.txt文件中的字符数据的第二行输出到屏幕上。3将“myfile1.txt”的文件复制到一个文件名为“myf1.txt”中。4从键盘输入5个实数,存入文件“myd1.dat”中,每个实数用逗号分隔;然后,再将这5 个数据输入到屏幕上。(二)选做题1从键盘输入一行英文句子存入“engline.txt”文件中,将其关闭,然后再打开,并从文件的尾部开始,将这一行英文句子倒序显示在屏幕上。实现倒序的方法是:将文件指

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2