C语言程序实验报告_指针

时间:2024.5.8

实验 指针

一、实验目的及要求

(1) 掌握C语言环境下指针的声明、定义和使用方法;

(2) 掌握指针和变量以及指针和数组的关系;

(3) 掌握指针、数组之间的关系;

(4) 掌握指针、函数之间的关系。

二、实验内容

1.熟悉指针的基本使用方法。

(1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。

1) 程序段一:

int main()

{

int i=3,j=6,k=9;

printf(“i=%d j=%d k=%d\n”,*(&i),j,k);

return 0;

}

2) 程序段二:(键盘输入:2,2.0)

int main(void)

{

int nA,*p;

float fB,*q;

p=&nA;

q=&fB;

scanf(“%d,%f”, p, q);

*p=nA*(*q);

printf(“nA is %d, p is %d and *p is %d\n”, nA, p,*p);

printf(“fB is %f, q is %d and *q is %d\n”, nA, q,*q);

printf(“p+1=%d q+1=%d\n”,p+1,q+1);

return 0;

}

3) 程序段三:

int main(void)

{

int nA,*p,**q,***r;

p=&nA;q=&p;r=&q;

printf(“Please input nA::\n”);

scanf(“%d”,**r);

printf(The results are :”);

printf(“nA’ value is %d,%d,%d,%d\n”,nA,*p,**q,***r);

printf(“nA,p,q,r’s value is %d,%d,%d,%d\n”,nA,p,q,r);

return 0;

}

2. 想使指针变量pt1指向变量nA和nB中的大者,pt2指向其小者,以下程序能否实现此目的?为什么?如果不行,请给出实现的方法。

void swap(int *p1,int *p2)

{

int *p;

p=p1;p1=p2;p2=p;

}

int main(void)

{

int nA,nB;

int *pt1,*pt2;

scanf(“%d,%d”,&nA,&nB);

pt1=&nA;pt2=&nB;

if (nA<nB) swap(pt1,pt2);

printf(“%d,%d\n”,*pt1,*pt2);

return 0;

}

3.完成教材P248_1,2,3,P250_1,2和P251_2。


第二篇:C语言程序实验报告最简单的C语言程序设计


                 数学与软件科学学院  实验报告

学期:­­­­20102011学期              20##年 9 月 19 日

课程名称:C语言设计                          专业:信息与计算科学            

班级 20105班                          实验编号: 实验三  

实验项目:最简单的C语言程序设计              指导教师    

姓名:     学号:        实验成绩:       

实验目的:

(1) 掌握顺序结构的程序设计概念、方法及各种赋值语句的使用方法;

(2) 掌握基本的C语言程序设计中的输入、输出语句的使用方法。

实验内容:

1. 熟悉表3-1~3-5中给出的格式化输入、输出格式控制符及其使用方法,并上机测试教材表例3-1~3-10,并观察C语言中的数据格式化输入、输出规律和方法;P72 3-13

2.输入并编辑以下程序代码:

int main(void)

{

   int nA,nB;

   float fC,fD;

   long lE,lF;

   unsigned int u,v;

   char ch1,ch2;

   scanf("%d,%d",nA,nB);

   scanf("%f,%f",fC,fD);

   scanf("%ld,%ld",lE,lF);

   scanf("%o,%o",u,v);

   scanf("%c,%c",ch1,ch2);

   printf("\n");

   printf("a=%7d,b=%7d\n",&nA,&nB

   printf("c=%10.2f,d=%10.2\n",&lF,&fD);

   printf("e=%17ld,f=%17ld\n",&lE,&lF);

   printf("u=%o,v=%o\n",&u,&v);

   printf("c1=%c,c2=%c\n",&ch1,&ch2);

   return 0;

}

输入格式时要注意,八进制数之后的字符类型输入格式如下:

1225a,b确定

请分析和观察代码有无错误,如果有,有哪些?指出错误原因,并修正之,使其可以按照预想的目的输入相应数据并输出结果;

4. getchar()函数读入两个字符ch1,ch2,然后分别用putchar()printf()函数输出这两个字符。试分析思考如下问题:(a)ch1ch2的数据类型用什么?(b) 要求输出ch1ch2ASCII码,应如何处理?是用printf ()还是用putchar()(c) 整型变量是否在任何情况下都可以相互代替?

5. 请编写和实现教材习题3-15(第一个图案)

实验准备:

(1) 复习相关内容,阅读并分析123中的相关程序代码;

(2) 45题进行程序代码编写。

实验步骤:

1.   打开TC,在file菜单下选择new。

2.   输入

    int main(void)

{

   int nA,nB;

   float fC,fD;

   long lE,lF;

   unsigned int u,v;

   char ch1,ch2;

   scanf("%d,%d",nA,nB);

   scanf("%f,%f",fC,fD);

   scanf("%ld,%ld",lE,lF);

   scanf("%o,%o",u,v);

   scanf("%c,%c",ch1,ch2);

   printf("\n");

   printf("a=%7d,b=%7d\n",&nA,&nB

   printf("c=%10.2f,d=%10.2\n",&lF,&fD);

   printf("e=%17ld,f=%17ld\n",&lE,&lF);

   printf("u=%o,v=%o\n",&u,&v);

   printf("c1=%c,c2=%c\n",&ch1,&ch2);

   return 0;

}

3.   按F9,根据报错提示对代码进行修改。

修改结果为:

   int main(void)

{

   int nA,nB;

   float fC,fD;

   long lE,lF;

   unsigned int u,v;

   char ch1,ch2;

   clrscr();

   scanf("%d,%d,%f,%f,%ld,%ld,%o,%o",&nA,&nB,%c,%c",&nA,&nB,,&fC,&fD,&lE,&lF,&u,&v,&ch1,&ch2);

   printf("\n");

   printf("a=|%7d|,b=|%7d|\n",nA,nB);

   printf("c=|%10.2f|,d=|%10.2|\n",lF,fD);

   printf("e=|%17ld|,f=|%17ld|\n",lE,lF);

   printf("u=|%o|,v=|%o|\n",u,v);

   printf("c1=|%c|,c2=|%c|\n",ch1,ch2);

   getch();

   return 0;

}

4.   按住ctrl+F9运行该程序,运行结果如图一(见实验结果)

5.   按F10进入菜单,在file菜单下选择new。

6.   输入

    int main(void)

{       printf("*********"); printf("   ***   \n");

 printf("*       *"); printf(" *     * \n");

 printf("*       *"); printf("*       *\n");

 printf("*       *"); printf("*       *\n");

 printf("*       *"); printf("*       *\n");

 printf("*       *"); printf(" *     * \n");

 printf("*********"); printf("   ***   \n");

 printf("   *    ");  printf("    *    \n");

 printf("  ***   ");  printf("  *   *  \n");

 printf(" *****  ");  printf(" *     * \n");

 printf("******* ");  printf("*       *\n");

 printf("   *    ");  printf(" *     * \n");

 printf("   *    ");  printf("  *   *  \n");

 printf("   *    ");  printf("    *    \n");

 getch();

 return 0;

}

7.   按住ctrl+F9运行该程序,运行结果如图二(见实验结果)

8.   按F10进入菜单,在file菜单下选择new。

9.   输入

#include<stdio.h>

int main(void)

{

 int i,j;

 float x,y;

 char ch;

 clrscr();

 scanf("%2d%f%3*d%f%c%*d%d",&i,&x,&y,&ch,&j);

 printf("i=%d j=%d\n",i,j);

 printf("x=%f y=%f\n",x,y);

 printf("ch=%c\n",ch);

 getch();

 return 0;

}

10. 按住ctrl+F9运行该程序,运行结果如图三(见实验结果)

11. 按F10进入菜单,在file菜单下选择new。

12. 输入

    int main(void)

{

 int n=0,S,C;

 clrscr();

 printf("n      S      C\n");

 S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 ++n; S=n*n;C=S*n;

 printf("%d  %5d  %5d\n",n,S,C);

 getch();

 return 0;

}

13. 按住ctrl+F9运行该程序,运行结果如图四(见实验结果)

14. 按F10进入菜单,在file菜单下选择new。

15. 输入

int main(void)

{

 char ch1,ch2;

 clrscr();

 printf("Please input 2 chars:\n");

 ch1=getchar();ch2=getchar();

 printf("%d,%d\n",ch1,ch2);

 putchar(ch1); putchar(ch2);

 getch();

 return 0;

}

16. 按住ctrl+F9运行该程序,运行结果如图五(见实验结果)

实验结果:

图一

图二

图三

图四

图五

更多相关推荐:
C语言指针实验报告

C语言程序设计实验报告1实验目的1掌握指针的概念会定义和使用指针变量2能正确使用变量的指针和指向变量的指针变量3能正确使用数组的指针和指向数组的指针变量4能正确使用字符串的指针和指向字符串的指针变量2实验内容将...

c语言指针实验报告

C语言实习报告题目指针及其应用系别专业姓名学号日期一实验名称指针及其应用二实验目的1掌握变量的指针及其基本用法2掌握一维数组的指针及其基本用法3掌握指针变量作为函数的参数时参数的传递过程及其用法三实验内容1运行...

C语言实验六实验报告——指针

一、实验项目名称指针二、实验目的1.掌握指针的基本概念和基本用法。包括:变量的地址和变量的值,指针变量的说明、指针变量的初始化、指针的内容与定义格式、指针的基本运算等;2.掌握数组与指针的关系并能够利用指针解决…

C语言实验报告指针

高级语言程序设计实验报告实验序号7实验项目名称指针附源程序清单二includeltstdiohgtmainchara80b80pintigetsagetsbfori0ilt10iifi20paelsepbput...

C语言与软件技术基础指针实验报告

C语言与软件技术基础实验报告课程名称指导老师班级实验名称实验时间姓名实验地点提交时间座号一实验目的和要求1掌握指针和间接访问的概念会定义和使用指针变量2能正确使用数组的指针和指向数组的指针变量3能正确使用字符串...

C语言程序设计实验报告 实验7 指针.doc

实验报告实验目的1掌握指针的定义和指针的运算2掌握用指针处理变量和数组二实验内容实验71编写函数用指针实现两个数的交换在主函数中实现调用1程序代码includeltstdiohgtvoideintmintnvo...

C语言实验6 实验报告(指针)

C语言程序设计实验报告实验六使用指针的程序设计1班级20xx153学号20xx15317姓名杜顺永一实验目的1掌握指针的概念会定义和使用指针变量2能正确使用数组的指针和指向数组的指针变量3熟悉指针做函数参数的使...

C语言-上机实验报告7- 函数

C语言程序设计实验报告实验题目实验七函数实验目的(1)掌握函数定义的方法;(2)掌握函数实参与形参的对应关系,以及值传递的方式。(3)掌握函数的嵌套调用和递归调用的方法;(4)掌握全局变量和局部变量、动态变量、…

C语言实验报告(五)

C语言实验报告五一实验目的1掌握使用C语言中数组的方法2掌握如何定义数组如何引用数组元素3掌握二维数组的元素在内存中的存放方式4掌握什么是字符串字符串结束符的作用5实现字符串的存储和操作包括字符串的输入和输出6...

《C语言》课内实验报告7

C语言实验报告一实验题目结构体的应用二实验目的1进一步掌握结构体变量数组的定义和使用方法掌握结构体与指针的应用2学习共用体的概念和使用3学习链表的概念和使用三实验内容1有6个学生每个学生的数据包括学号姓名性别4...

C语言贪吃蛇实验报告

C语言程序设计实训报告姓名专业班级指导教师二011年7月14日11112目录实训目的和要求1实训目的和任务1实训要求122122实训任务内容1游戏规则1流程设计23313233软件使用说明3编辑程序主要软件3编...

c语言三种基本控制结构实验报告

学生实验报告实验课名称C语言实验项目名称三种基本控制结构专业名称班学级号学生姓名教师姓名月日实验日期年月日实验室名称六实验中遇到的问题解决方法及体会在实验过程中写的很多程序显示错误的结果做起来不熟练体会到平时上...

c语言指针实验报告(33篇)