c语言实验报告(同名3848)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言实验报告(同名3848)
C语言程序设计实验报告
1实验目的
⑴掌握指针的概念,会定义和使用指针变量;
⑵能正确使用变量的指针和指向变量的指针变量;
⑶能正确使用数组的指针和指向数组的指针变量;
⑷能正确使用字符串的指针和指向字符串的指针变量。
2实验内容
编写函数upCopy(char *new,char *old),将old指针所指向字符串中的大写字母复制到new指针指向的字符串中,并在主函数中调用该函数。
要求:
①画出算法的流程图。
②在主函数中以直接初始化的方式输入一个字符串。
③在主函数中调用upCopy()函数,输出old指针和new指针指向的字符串。
3算法描述流程图
4源程序
#include
void upCopy(char *new,char *old);
void main()
{
char a[20]=("foiwheEIfjiEfj");
char b[20];
upCopy(b,a);
printf("复制之前的字符串为:"); puts(a);
printf("复制之后的字符串为:"); puts(b);
}
void upCopy(char *new,char *old) {
int i,j;
j=0;
for(i=0;i<20;i++)
{
if(*(old+i)>=65&&*(old+i)<=90)
{
*(new+j)=*(old+i);
j++;
}
}
*(new+j)='\0';
}
5测试数据
无测试数据。
6运行结果
7出现问题及解决方法
出现的问题是:
①在运用scanf()函数时,由于跟printf()混淆,变量地址的位置忘记输取地
址符“&”,解决办法就是加上取地址符“&”。
②在找到该插入的位置后,进行后面的数据向后一个数据为调换的时候,没
有注意到“++”运算和“--”运算全部都作用在q上面,都在改变存储的q
的值。解决方法就是用加1的运算来代替自增运算,这样就只有自减运算
在改变q的值,程序即可正常运行。
8实验心得
通过这个实验,掌握了如何定义数组的指针和指向数组的指针变量。同时在程序编写过程中学习到了如何用for循环来寻找数组中某个元素对应的下标。另外,在自己的错误中我还学到了要牢记C语言中各种函数的语法格式,这样才能避免一些不该犯的错误。同时在逻辑上要慎重的同时使用自增和自减运算符,这种逆运算会直接影响变量的存储值。
C语言程序设计实验报告
1实验目的
⑴掌握指针的概念,会定义和使用指针变量;
⑵能正确使用变量的指针和指向变量的指针变量;
⑶能正确使用数组的指针和指向数组的指针变量;
⑷能正确使用字符串的指针和指向字符串的指针变量。
2实验内容
输入三个整数,按由大到小顺序输出。
要求:
①画出算法的流程图。
②通过scanf()函数输入三个数据并存入三个变量中。
③利用指针实现从大到小的输出。
3算法描述流程图
4源程序
#include
void main()
{
int *a,*b,*c;
int d,e,f,g;
a=&e;
b=&f;
c=&g;
printf("请输入三个整数:\n");
scanf("%d",a);
scanf("%d",b);
scanf("%d",c);
if(*a<*b)
{
d=*a;
*a=*b;
*b=d;
}
if(*a<*c)
{
d=*a;
*a=*b;
*b=d;
}
if(*b<*c)
{
d=*b;
*b=*c;
*c=d;
}
printf("%4d%4d%4d\n",*a,*b,*c);
}
5测试数据
测试数据为1,9,6。
6运行结果
当输入1,9,6时
7出现问题及解决方法
出现的问题有:
在定义过程中直接定义指针变量,没有定义数据变量,然后直接把输入的值给了指针变量,结果程序无法正常运行。解决办法就是定义几个整型数据变量,将指针变量指向数据变量,之后再进行输入。
8实验心得
通过这个实验,掌握了如何定义数组指针和指向数组的指针变量。通过这次实验与上次实验的对比还能过学到通过指针实现一个问题和不用指针相比在很多地方更具有优越性。在自己的错误中学会了如何在定义指针变量并将指针变量指向数据变量,另外还更加深刻的理解了指针存储的只是地址。