C语言程序设计试验八
更新时间:2023-10-06 04:56:01 阅读量: 综合文库 文档下载
实验八 指针
(验证性实验、综合性实验 2学时)
(一)、实验目的
1.掌握指针的概念、会定义和使用指针变量
2.掌握指针与一维数组、二维数组、字符数组的关系
(二)、实验内容
1.写出下列程序的运行结果 (1)#include
void fun(int * a,int * b) {
int k;
k=*a;*a=*b;*b=k; }
void main( ) {
int a=3,b=6; fun(&a,&b);
printf(“%d,%d”,a,b); } 运行结果及分析:运行结果为:函数将两数互换。
(2)#include
void fun(int * a,int * b) {
int *k;
k=a;a=b;b=k; }
void main( ) {
int a=3,b=6,*x=&a,*y=&b; fun(x,y);
printf(“%d,%d”,a,b); }
运行结果及分析:运行结果为:
程序将两个内存位置交换了,a,b,变量的值没有改变。 (3)#include
void main( ) {
int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; p=a;
printf(“\\n%d”,*p+9);
}
运行结果及分析:运行结果为:
输出了数组第一项1+9的值,即10. (4)#include
fun(int *s,int n1,int n2) {
int i,j,t;
i=n1;j=n2; while(i t=*(s+i);*(s+i)=*(s+j);*(s+j)=t; i++;j--; } } void main() { int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a; fun(p,0,3);fun(p,4,9);fun(p,0,9); for(i=0;i<10;i++) printf(\} 运行结果及分析:运行结果为: 交换N次后的结果。 2.程序填空 (1)下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,填空。 #include int add(int x,int y,_②_____z); void main() { int a=3,b=4,c; add(_____①_________); printf(“%d\\n”,c); } int add(int x,int y,_②_____z) { _③_____=x+y; } 填空①:int *z 填空②:a,b,&c 填空③:*z 程序分析: (2)下面的程序通过函数average计算数组中各元素的平均值,请填空。 #include float average(int *pa,int n) { int i; float avg=0.0; for(i=0;i avg=avg+_¢ù______; avg=__¢ú_____; return avg; } void main() { int i,a[5]={2,4,6,8,10}; float m; m=average(a,5); printf(\} 填空①:*(pa + i) 填空②:avg/n 程序分析: 3.程序改错 写出有错误语句的行号,及改正后的语句全行。(每行语句前的序号只标注行号,非程序本身的内容) (1)将两个整数值进行交换。 ① #include { ③ int *t,a; ④ t=&a; ⑤ *t = *p; ⑥ *p = *q; ⑦ *q = *t; } ⑧ void main() { ⑨ int a =10,b=20; ⑩ swap(&a,&b); ⑾ printf(“%d%d\\n”,a,b); } 错误语句的行号:② 改正后的语句全行:②swap(int *p,int *q) ⑾printf(\错误分析: (2)写出程序运行结果:2010 ① #include ″stdio.h″ ② main() { ③ int a[]={1,2,3,4,5,6,7,8,9,10,11,12}; ④ int *p=a+5; ⑤ int *q=null; ⑥ q=p+5; ⑦ printf(“%d %d”,*p,*q); } 错误语句的行号:①⑤⑦ 改正后的语句全行:①#include \ ⑤int *q=NULL; ⑦printf(\ 错误分析: 4、编程题(选做题) 利用函数把字符数组b,连接到字符数组a的后面,并返回字符数组a中新的长度。 程序清单: #include int strcon(char *ptr1,char *ptr2); main() { char a[20],b[10]; char *p1 = a,*p2 = b; int length; printf(\ gets(p1); printf(\ gets(p2); length = strcon(p1,p2); printf(\} int strcon(char *ptr1, char *ptr2) { char *n; n = ptr1; while(*n != '\\0') n++; puts(ptr1); while(*ptr2 != '\\0') *n++ = *ptr2++; *n='\\0'; return (n - ptr1); }编程注意事项: 实验七 数组(二) (验证性实验 2学时) (一)、实验目的 1.掌握字符数组的定义、赋值和引用 2.字符串函数的使用。 (二)、预习内容 1.预习数组的定义、赋值及输入输出方法,以及典型的算法。 2.熟练循环语句与数组处理语句结合的方法。 (三)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { char a[10]= \a[3]=’\\0’; b[3]=0; printf(\printf(\} 运行结果及分析:运行结果为: sizeof(),输出变量占存储空间大小,a为10;b为8;程序中两个赋值语句将a,b的第四位都变为了空字符,故字符串长度都为3。 (2)#include void main() { char ch[2][5]={\int i,j,s=0; for(i=0;i<2;i++) for(j=0;ch[i][j]>'\\0'&&ch[i][j]<='9';j+=2) s=10*s+ch[i][j]-'0'; printf(\} 运行结果及分析:运行结果为: S的值变化:6,63,638,6385. (3)下列程序的输出结果是: #include char p1[20]=\strcpy(str+2,strcat(p1+2,p2+1));
正在阅读:
C语言程序设计试验八10-06
生命体征的评估习题及答案11-16
无机化学实验补充讲义(工科)03-29
无微不至的爱作文500字07-04
2012年感动重庆十大人物颁奖词及事迹之一Word 文档08-11
奇门遁甲八卦意向01-25
分析化学习题十01-24
银行保险的跨国比较与分析07-20
白色污染社会实践报告11-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 试验
- 语言
- 采煤工作面采煤工艺课程设计方案
- 机电一体化课程设计-中国地质大学 - 图文
- 采煤方法与工艺报告
- 国防
- 10以内的混合运算教学设计
- 养猪药物手册
- Unit2 Summary Of Individuals and Masses
- 广东省五校2018届高三1月联考理综试卷(Word版,含答案)
- 一个完整的网络工程项目(很难得找到的 - 相当详细完整)
- 浅谈数据库营销在理发行业的应用
- 人教版七上《陈太丘与友期行》阅读精练4篇(含答案)
- 欧也妮葛朗台阅读题
- 综合机械化采煤工艺 - 一
- 小学三年级奥数试题集锦五(含答案)
- 武汉大学数字图像处理课程综合实习实习报告要点
- SQL使用指南(案例集合) - 图文
- 数据库考试知识点大汇总
- 材料力学第九章习题选及其解答
- 上海市园林绿化养护综合配套定额
- 《土木工程CAD》