




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C语言程序设计》实验报告实验序号:7实验项目:指针学号姓名专业、班级实验地点指导教师实验时间一、实验目的及要求1、通过实验掌握指针的定义和使用指针变量;2、掌握使用指针对数组和字符串进行操作;3、掌握函数中指针类型参数的使用;4、要求采用指针方法完成。二、实验设备(环境)及要求使用VS2010或VisualC++6.0或DEVC++;windows系列操作系统的环境。三、实验内容与步骤1.输入运行下面这个程序,观察并分析结果:#include"stdio.h"voidmain(){ inta[]={2,3,4,5,6}; int*p1;char*p2="computer\n"; p1=a; printf("%d\n",p1+2); printf("%d\n",*(p1+2)); p1=a+2; printf("%d\n",p1+2); printf("%d\n",*(p1+2)); printf(p2+2); printf("%s",p2+2);}运行结果截图:分析:第一行:p1+2就是数组元素a[2]的地址,指向数组a的第3个元素第二行:*(p1+2)就是p1+2所指向的数组元素a[2]第三行:因为p1=a+2,所以p1+2=a+4,就是数组元素a[4]的地址,指向数组a的第5个元素第四行:指向数组元素a[4]第五行:输出包括p2+2之后的字符串第六行:%s
表示输出一个字符串,给出字符指针变量名p2,系统先输出p2+2所指向的一个字符数据,即m,然后自动使p2+2加1,使之指向下一个字符...直到遇到字符串结束标识符‘\0’2.以下程序调用invert函数按逆序重新放置a数组中的值,a数组中的值在main函数中读入,请填空。#include"stdio.h"voidinvert(int*s,inti,intj){intt;if(i<j){t=*(s+i);//s[i]*(s+i)=__*(s+j)__;*(s+j)=t;//s[j]invert(s,__i+1___,j-1);}}voidmain(){inta[10],i;for(i=0;i<10;i++)scanf("%d",_&a[i]_____);invert(a,0,10-1);for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}运行结果截图:3.以下程序段的功能是轮流输出a、b中的字符串(先输出a中的字符串,且各输出5次),请填空。voidmain(){chara[80],b[80],*p;inti;gets(a);gets(b);for(i=0;i<10;i++){if(i%2==0)____p=a___;else___p=b_____;puts(p);}}运行结果截图:4.定义一个可以保存10个整型数的一维数组,用数组初始化的方法将10个数据(3,7,9,8,5,4,3,1,0,2)赋值到数组,用指针操作数组依次输出这十个数,再以逆序输出这十个数。运行结果截图:5.从键盘输入的字符串有若干个数字字符,编写程序,用移动指针的方法将其中的数字字符取出(按自左向右的顺序)并组成一个整数,例如输入的字符串为12ab345c,则组成的整数为12345。运行结果截图:6.写一个函数,实现两个字符串的比较。即写一个自己的strcmp1函数,函数的原型为:intstrcmp1(char*p1,char*p2)设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;若s1不等于s2,返回它们二者第一个不同字符的ASCⅡ码差值(如”BOY”与”BAD”,第二个字母不同,”O”与”A”之差为79-65=14)。如果s1>s2,则输出正值,如果s1<s2,则输出负值。)运行结果截图:7.[附加题]完成课本第232页章节习题4(编程题)。P232(1)输入3个字符串,按由小到大顺序输出。(2)输入2个字符串,要求输出最长的公共子串。(3)输入1个字符串,统计字符串中每个字符出现的次数。(4)输入一个字符串,把该字符串的前3个字母移到最后,输出变换后的字符串。例如输入“abcdef”,输出为“defabc”运行结果截图:(1)(2)(3)(4)四、分析与讨论难。五、教师评语签名:日期:成绩附源程序清单:4.#include<stdio.h>intmain(){ inta[]={3,7,9,8,5,4,3,1,0,2}; int*p=a,i; for(i=0;i<=9;i++) { printf("%d",p[i]); } printf("\n"); for(i=9;i>=0;i--) { printf("%d",p[i]); } return0;}5.#include<stdio.h>intmain(){ longa=0,*p=&a; charb[50],*q=b; inti;printf("请输入一个字符串:\n");scanf("%s",b);for(i=0;q[i];i++){ if((int)(q[i]>='0')&&((int)q[i]<='9')) { (*p)=(*p)*10+(int)b[i]-48; } } printf("组成的整数为:\n%ld",*p); return0;}6.(1)#include<stdio.h>#include<string.h>voidpx(char*p,char*q){ chart[50]; if(strcmp(p,q)>0) { strcpy(t,p); strcpy(p,q); strcpy(q,t); }}intmain(){ chara[50],b[50],c[50]; char*p=a,*q=b,*r=c; printf("请输入第一个字符串:"); gets(p); printf("请输入第二个字符串:"); gets(q); printf("请输入第三个字符串:"); gets(r); px(p,q); px(p,r); px(q,r); printf("由小到大的顺序如下:\n%s\t%s\t%s\t",p,q,r); return0;}(2)(3)#include<stdio.h>#include<string.h>//升序char*sort(char*src){chartem,len=strlen(src);for(inti=0;src[i];i++){for(intj=0;j<len-i-1;j++)if(src[j]>src[j+1]){tem=src[j];src[j]=src[j+1];src[j+1]=tem;}}returnsrc;}intmain(){charstr[1000],ch;inti=0,cnt;printf("请输入一个字符串:");gets(str);sort(str);ch=str[0];cnt=1;for(i=1;str[i];i++){if(str[i]!=ch){if(cnt)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 区块链技术在电子政务领域的应用指南
- 精准农业技术智能种植管理系统的开发与应用
- 鄂尔多斯2025年内蒙古鄂尔多斯市行政审批政务服务与数据管理局所属事业单位引进高层次人才笔试历年参考题库附带答案详解
- 贵州2025年贵州省能源局所属事业单位招聘1人笔试历年参考题库附带答案详解
- 2025年初级银行从业资格考试《风险管理》模拟卷一
- 2023年全国硕士研究生招生考试《数学三》真题及解析
- 2022年一级建造师考试《建设工程经济》真题及答案
- 高风险项目安保协议书(2篇)
- 膝关节韧带损伤的护理常规
- 网络安全班会
- 电子商务概论(第四版)课件 张润彤 第1-6章 电子商务概述、电子商务带来的变革及其发展趋势-电子商务环境下的物流与供应链管理
- 医院感染暴发及处理课件
- 浙江省普通高中2025年高三化学试题第一次统测试卷含解析
- 国有企业关联交易管理办法及实施细则
- 小学五年级体育教案全册(人教版)
- 安全员岗位竞聘课件
- 护士职业暴露后处理
- 2024中智集团总部及下属企业公开招聘4人高频考题难、易错点模拟试题(共500题)附带答案详解
- 广东省珠海市香洲区2023-2024学年七年级下学期期末历史试题(原卷版)
- 送温暖活动困难职工帮扶申请表
- 中国竹编艺术智慧树知到答案2024年浙江广厦建设职业技术大学
评论
0/150
提交评论