资源描述:
《上机报告7 指针2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言上机报告7指针2一、上机内容。1)main函数的参数1.在编译软件中输入以下程序。在D(或E盘)新建一个文件夹,取名为c_temp。将源程序保存在c_temp目录下,,取名为main,并在编译器中运行,观察输出结果?2.按键盘快捷键“WIN”+R(或开始-运行),出现运行窗口,输入cmd命令。3.输入盘符d:(回车),再输入cdc_temp(回车),进行c_temp目录。4.输入dir(回车)命令,观察该目录下有几个文件,分析各文件的类型。5.输入main/help观察结果?6.输入main/scmpgdutsina观
2、察结果?7.输入main/scmpgdutgdut观察结果?8.将程序补充完整。9.输入main/scmp123435观察结果?#include"stdio.h"#include"stdlib.h"#include"string.h"intmain(intargc,char*argv[]){voidshow_msg();voidadd(char*p1,char*p2);voidscmp(char*p1,char*p2);intflag=0;while(argc-->1){if(!strcmp(*(argv+1),"/help
3、")){flag=1;break;}if(!strcmp(*(argv+1),"/add")){flag=2;break;}if(!strcmp(*(argv+1),"/scmp")){flag=3;break;}}switch(flag){case1:show_msg();break;case2:add(*(argv+2),*(argv+3));break;case3:scmp(*(argv+2),*(argv+3));default:printf(}return1;}voidshow_msg(){printf("函数的功
4、能参数:");printf("/help--显示帮助文件");printf("/add--计算后面两个数字的和");printf("/scmp--比较后两个字符串的大小");}voidadd(char*p1,char*p2){intstod(char*p1);printf("%s+%s=%d",p1,p2,stod(p1)+stod(p2));}//上机练习:编写一个stod函数,将字符串转化为十进制数intstod(char*p){inta,b=0;while(*p!=' '){a=*p-'0';p++;
5、b=10*b+a;}returnb;}voidscmp(char*p1,char*p2){if(!strcmp(p1,p2))printf("字符串%s,%s相等",p1,p2);elseif(strcmp(p1,p2)>0)printf("字符串%s大于%s",p1,p2);elseprintf("字符串%s大于%s",p2,p1);}2)动态内存练习,将以下程序补充完整。1.在内存中开辟一段长度为10内存空间,用malloc定义一个数组a,赋值为www.2.在内存中开辟一段长度为15内存空间,用calloc定义一个数组b
6、,赋值为gdut.edu.cn3.gdut.edu.cn连接到数组a(用realloc重新分配长度为25的内存空间a=(char*)malloc(10);b=calloc(15,1);realloc(a,25);strcat(a,b);3)分析并补充程序,学习如何动态定义一个数组pArr=(int*)malloc(len*sizeof(int));scanf("%d",pArr+i);printf("%d",*pArr+i);课后作业请独立完成,写完后以附件*.Doc形式发邮件至1400311870@qq.com([请在12
7、月9号前提交),文件名规则如下:学号-\姓名-上机报告8一、上机作业一、选择题 (1)设有定义:intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是A)*p=*q; B)p=q; C)*p=&n1; D)p=*q; (2)若有定义:intx=0,*p=&x;,则语句printf("%d",*p);的输出结果是 A)随机值 B)0 C)x的地址D)p的地址 (3)以下定义语句中正确的是A)chara='A'b='B';B)floata=b=10.0; C)in
8、ta=10,*b=&a;D)float*a,b=&a; (4)有以下程序 main() {inta=7,b=8,*p,*q,*r; p=&a;q=&b; r=p;p=q;q=r; printf("%d,%d,%d,%d",*p,*q,a,b); } 程序运行后的输出结