第7次实验内容(数组与指针)
- 格式:ppt
- 大小:194.50 KB
- 文档页数:16


实验七指针与字符串(2课时)一、实验目的1、掌握指针的概念,会定义和使用指针变量的使用方法。
2、能正确使用数组的指针和指向数组的指针变量3、学习字符串数据的组织和处理。
二、实验要求1、在本word文档中做以下工作:(1)在各小题右边(或下面)写出答案(用蓝色字体,有错的地方用红色的下划线标识);(2)用不少于150个字写出本次实验的体会。
2、以学号(如35.doc,)作为文件名存盘,并保存在本班文件夹的“实验七”文件夹中(如09信息/实验七)。
注意:学号是你的学号后两位数字。
3、实验作业要求在本周内上交到实验目录中。
三、实验内容1、改错题(1)输出数组元素的值。
#include “iostream.h”#include"stdio.h"void main( ){ int i;char c[5] = {'C', 'h', 'i', 'n', 'a',’\n’}; c[7]char b[ ] = “China”;for (i = 0; c[i] !='\n'; i++)cout<< c[i];cout<<c;puts(b); //或 cout<<b;for (i = 0; b[i] !='\n'; i++)cout<< b[i];cout<<endl<<b;}(2)用指针方法,输出数组元素的值。
#include <iostream.h>void main(){ int a[]={1,2,3,4,5,6,7,8,9},i;int *p;//p是指针变量p=&a;删除for(p=a,i=0;i<9;i++)cout<<*(p+i)<<”“;}2、程序填空题:将字符串str1复制为字符串str2.#include <iostream.h>void main(){ char str1[]="I love CHINA!",str2[20],*p1,*p2;p1=str1;p2=str2;for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';p1=str1;p2=str2;cout<<"str1 is: "<<p1<<endl;cout<<"str2 is: "<<p2<<endl;}3、编程题(1)将一串字符逆序存放后输出。
实验七数组(二)(验证性实验 2学时)(一)、实验目的1.掌握字符数组的定义、赋值和引用2.字符串函数的使用。
(二)、预习内容1.预习数组的定义、赋值及输入输出方法,以及典型的算法。
2.熟练循环语句与数组处理语句结合的方法。
(三)、实验内容1.写出下列程序的运行结果(1)#include <stdio.h>void main(){char a[10]= "abcdefg",b[ ]="abcdefg";a[3]=’\0’;b[3]=0;printf("%d,%d",sizeof(a),strlen(a));printf("%d,%d",sizeof(b),strlen(b));}运行结果及分析:运行结果为:sizeof(),输出变量占存储空间大小,a为10;b为8;程序中两个赋值语句将a,b的第四位都变为了空字符,故字符串长度都为3。
(2)#include <stdio.h>void main(){char ch[2][5]={"6937","8254"};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("%d\n",s);}运行结果及分析:运行结果为:S的值变化:6,63,638,6385.(3)下列程序的输出结果是:#include <stdio.h>void main( ){char p1[20]="abcd",p2[20]="ABCD",str[50]="xyz";strcpy(str+2,strcat(p1+2,p2+1));}运行结果及分析:运行结果为对数组名算术运算其实是对内存地址的计算,中间函数的意思是,把p1数组开始后移两个位置的字符和p2向后移1个位置的字符串连起来,再和str字符串向后移两个位置的字符串连接起来。
《C语言程序设计》实验报告----------------------------------------------------------------------------------------------实验7 数组(二)一、实验目的(1)掌握字符数组和字符串的概念(2)掌握字符串函数的使用二、实验内容和步骤1.填空题(1)输入下面的程序中缺少的部分并运行,观察程序的运行结果。
#include"stdio.h" 正确的运行结果:int main(){ char a[11]={"I love you"};printf("%s\n",a); 如果把11改成10:return 0;}(2)以下给定程序的功能是从键盘上输入一个数字组成的字符串,将该字符串转换成一个十进制数。
#include<stdio.h>int main(){ char s[10];int i;int n=0;scanf("%s",s);for(i=0;s[i]!='\0';i++)n=n*10+s[i]-'0';printf("n=%ld\n",n);return 0;}(3)用strlen函数分别测量字符串str1和str2的长度,用strcmp函数比较两个字符串的大小,最后用strcat函数将字符串2连接到字符串1的后面并输出。
#include<stdio.h>#include<string.h>int main(){ char str1[80]="This Is a",str2[80]="c Program";printf("String1 is:%s\n",str1);printf("String2 is:%s\n",str2);printf("Length of string1 is:%d\n",strlen(str1));printf("length of string2 is:%d\n",strlen(str2));if(strcmp(str1,str2)>0)printf("The max is:%s\n",str1);elseprintf("The max is:%s\n",str2);strcat(str1,str2);printf("Result is:%s\n",str1);return 0;}反思与总结:1.定义字符串数组的大小时,应多加上1(末尾的’\0’);2.写字符串数组时,花括号{}可省略,’’’’不可省;3.用scanf()输入字符串数组时,a前面的&不带,因为数组名代表了数组的存储首地址,等价于&a[0];4. n=n*10+s[i]-'0'很欣赏的一个式子!2.改错题(1)将一个字符串中所有的大写字母转换为小写字母并输出。