收藏 分享(赏)

C语言程序设计第四次(2.8)实验报告.doc

上传人:精品资料 文档编号:10354269 上传时间:2019-11-03 格式:DOC 页数:15 大小:147.50KB
下载 相关 举报
C语言程序设计第四次(2.8)实验报告.doc_第1页
第1页 / 共15页
C语言程序设计第四次(2.8)实验报告.doc_第2页
第2页 / 共15页
C语言程序设计第四次(2.8)实验报告.doc_第3页
第3页 / 共15页
C语言程序设计第四次(2.8)实验报告.doc_第4页
第4页 / 共15页
C语言程序设计第四次(2.8)实验报告.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、 C语言程序设计 实验报告专业 班级 日期 11月26日 成绩 实验组别 第 3(2.7) 次实验 指导教师 李开 学生姓名 学号 同组人姓名 实验名称 实验8 指针实验 一、实验目的(1)熟练掌握指针的说明、赋值、使用。(2)掌握用指针引用数组的元素,熟悉指向数组的指针的使用。(3)熟练掌握字符数组与字符串的使用,掌握指针数组及字符指针数组的用法。(4)掌握指针函数与函数指针的用法。(5)掌握带有参数的main函数的用法。二、实验任务8.2 实验内容及要求1源程序改错2源程序完善、修改、替换3跟踪调试4程序设计5选做题8.3 指定main函数的参数三、实验步骤及结果(要求给出源程序和程序运行

2、结果。另外,根据实验内容,记录编辑、编译、链接、调试程序的操作过程和实验现象)8.2 实验内容及要求1源程序改错下面程序是否存在错误?如果存在,原因是什么?如果存在错误,要求在计算机上对这个例子程序进行调试修改,使之能够正确执行。#includevoid main(void)float *p;scanf(“%f“,p);printf(“%fn“,*p);存在,错误为指针一开始没有初始化,而sacnf传入的是float型指针指向的地址,我们并不知道系统能给我们分配什么地址,所以说我们输入的地址很有可能使程序崩溃。修改后代码:#includeint main(void)float *p;float

3、 a10;/这里可以换成其他数字p=scanf(“%f“,p);printf(“%fn“,*p);return 0;2源程序完善、修改、替换(1)下面的程序通过函数指针和菜单选择来调用字符串拷贝函数或字符串连接函数,请在下划线处填写合适的表达式、语句、或代码片段来完善该程序。#include#include void main(void)char*(*p)(char a,char b);char a80,b80,c160,*result=c;int choice,i;doprintf(“tt1 copy string.n“);printf(“tt2 connect string.n“);pri

4、ntf(“tt3 exit.n“);printf(“ttinput a number (1-3) please!n“);scanf(“%d“,while(choice5);switch(choice)case 1:p=strcpy;break;case 2:p=strcat;break;case 3:goto down;getchar();printf(“input the first string please!n“);i=0;gets(a);printf(“input the second string please!n“);i=0;gets(b); result= p(a,b);prin

5、tf(“the result is %sn“,result);down:;(2)请上机运行第(1)题程序,使之能按要求输出下面结果:(输入)表示该数据是键盘输入数据)1 copy string.2 connect string.3 exit.input a number (1-3) please!2 (输入)input the first string please!the more you learn, (输入)input the second string please!the more you get. (输入)the result is the more you learn,the m

6、ore you get.3跟踪调试#includechar *strcpy(char *,char *);void main(void)char a20,b60=“there is a boat on the lake.“;printf(“%sn“,strcpy(a,b);char *strcpy(char *s,char *t)while(*s+=*t+);return (s);(1)单步执行。进入strcpy时watch窗口中s为何值?返回main时, watch窗口中s为何值?进入strcpy时:返回main 时:(2)排除错误,使程序输出结果为: there is a boat on

7、the lake.#includevoid *strcpy(char *,char *);int main(void)char a30,b60=“there is a boat on the lake.“;strcpy(a,b); printf(“%sn“,a);return 0;void *strcpy(char *s,char *t)while(*t!=0)*s+=*t+;*s=0;/将函数类型设置为void型,然后不再返回直接打印a字符串即可4程序设计(1)一个长整型变量占4个字节,其中每个字节又分成高4位和低4位。试从该长整型变量的高字节开始,依次取出每个字节的高4位和低4位并以数字字

8、符的形式进行显示。#includeint main(void)int n,i;scanf(“%x“,char *p=(char *)int high_half,low_half;for(i=3; i=0; i-)low_half = pi if (low_half 4;if (high_half #define N 10void reducespace(char *p,int n);int main()int i;char *pN,arrN81;printf(“Input %d-line strings:n“,N);for (i = 0; i #include #include int mai

9、n(int argc,char *argv)void downsort(char* *p,int m);void upsort(char * *q,int k);int n=0;while(n*qj+1)t=*qj,*qj=*qj+1,*qj+1=t;for(i=0;i#define M 2/course#define N 2/studentsint main(void)char coursesM30,studentsN20;float tablesNM;int c,s;char *co=/courses2 co+2*30char *st=float *gr=for(c=0;c=90)cou+

10、;printf(“%dn“,cou);cou=0;return 0;5选做题(1)设有N位整数和M位小数(N=20,M=10)的数据a,b。编程计算a+b并输出结果。如:12345678912345678912.1234567891 + 98765432109876543210.0123456789#include “stdio.h“#include “ctype.h“#define N 100 /* N表示参与运算数据最长的长度 */void add_decimals(char *a,char *b,int *c,int n,char *d);void add_inte(char *a,ch

11、ar *b,int c,int n,char *d);int main(void)char a1N,b1N,c1N+1,a2N,b2N,c2N+1;char c;int q,w,e,r;/to countq=0;while(c=getchar()!=.)if(isdigit(c)*(a1+q)=c;q+;*(a1+q)=0;w=0;while(c=getchar()!=n)if(isdigit(c)*(b1+w)=c;w+;*(b1+w)=0;e=0;char d;while(d=getchar()!=.)if(isdigit(d)*(a2+e)=d;e+;*(a2+e)=0;r=0;whil

12、e(d=getchar()!=n)if(isdigit(d)*(b2+r)=d;r+;*(b2+r)=0;/inputint max,max_;if(wr)max=w;int t;for(t=r;te)max_=q;int y;for(y=0;y-1;o-)if(*(a+o)+*(b+o)-2*0+jin=10)*(d+o)=*(a+o)+*(b+o)+jin-1*0-10;jin=1;else*(d+o)=*(a+o)+*(b+o)-0;jin=0;*(d+n)=0;*c=jin;void add_inte(char *a,char *b,int c,int n,char *d)int o;

13、for(o=n-1;o0;o-)if(*(a+o)+*(b+o)-2*0+c=10)*(d+o+1)=*(a+o)+*(b+o)-1*0-10;c=1;else*(d+o+1)=*(a+o)+*(b+o)-1*0;c=0;if(*a+*b+c-2*0=10)*(d+1)=*a+*b+c-0-10;*d=1;else*(d+1)=*a+*b+c-0;*d= ;(2)编写使用复杂声明char *(*p2)(const char *,const char *);的程序。提示:p中元素可为strcmp、strstr等函数名。8.3 指定main函数的参数选择“project/ set programs arguments”菜单命令, 即可打开图 2.12所示的对话框,在 “Program arguments”文本框中输入main函数的参数。注意只输入命令行中文件名后的参数,文件名不输人。图2.12 输入main函数的参数四、实验体会好好写代码,不该跟老师吵,星期三的晚上应该按课程来讲只是写代码,不能干其他事情,对此我深刻检讨。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报