实验指导书.docx

上传人:b****8 文档编号:10283493 上传时间:2023-02-09 格式:DOCX 页数:26 大小:35.38KB
下载 相关 举报
实验指导书.docx_第1页
第1页 / 共26页
实验指导书.docx_第2页
第2页 / 共26页
实验指导书.docx_第3页
第3页 / 共26页
实验指导书.docx_第4页
第4页 / 共26页
实验指导书.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

实验指导书.docx

《实验指导书.docx》由会员分享,可在线阅读,更多相关《实验指导书.docx(26页珍藏版)》请在冰豆网上搜索。

实验指导书.docx

实验指导书

 

实验指导书

 

实验1TurboC环境认识与使用

一、实验目的

熟悉TurboC运行环境、创建c程序文件的过程。

二.实验内容

1.启在C编辑环境下,输入下列程序。

然后将其以p1.c为文件名保存到d盘的cc目录中。

(若d盘中没有cc子目录,则需要自己建立)

⑴启动C编辑环境

   开始→程序→MS-DOS方式,在MS-DOS方式下键入:

cd\tc\bin(Enter)

⑵在如下的提示符下,键入tc。

C:

\tc\bin>tc(Enter)

   则此时C语言编辑环境已启动。

⑶按Esc键后,光标落在编辑区中,键入下面程序。

⑷程序输入完成后,利用Alt+F将File菜单的子菜单显示在屏幕上,选择Save,此时显示一个对话框,在对话框中输入:

d:

\cc\p1.c(Enter)则程序被保存。

⑸利用Alt+X退出C语言编辑环境。

⑹再次启动C语言编辑环境,键入tc(回车)。

⑺打开上面保存的程序p1.c。

   同时按下Alt+F将File菜单的子菜单显示在屏幕上,选择Load,此时显示一个对话框,在对话框中输入:

d:

\cc\p1.c(回车),则此时p1.c程序被显示在程序的编辑窗口中。

⑻将上面的程序改名为pp1.c保存到d盘的cc目录中(d:

\cc)。

   同时按下Alt+F将File菜单的子菜单显示在屏幕上,选择Writeto,此时显示一个重命名对话框,在对话框中输入:

d:

\cc\pp1.c(Enter),则此时pp1.c程序被保存到d盘cc子目录中,此时编辑窗口右上方的文件名为:

pp1.c。

⑼编译pp1.c程序

同时按下Alt+C,则屏幕上显示编译子菜单,当光带落到第一个子菜单项CompiletoOBJ上时按回车键,则程序编译开始,编译完成后显示编译结果,如图4所示。

(10)运行pp1.c程序

浏览完编译结果后,若程序没有错误,按键盘中的任意一个键,则回到编辑窗口,此时同时按下Alt+R,则显示编译子菜单,当光带落到第一个子菜单项Run上时按回车键,则链接、运行开始。

运行完成后,利用Run子菜单中的Userscreen命令观察运行结果。

 

2.按上面“输入、调试、编译、链接、执行”程序的步骤,完成下面程序的输入、编译、执行。

分析上面程序的运行结果,写出运行结果___________;并给出运行结果的说明。

 

实验2顺序结构程序设计

一.实验目的

熟悉运算符、表达式,掌握标准输入输出函数的适用方法和顺序结构程序设计的一般方法。

二.实验内容

1.变量a、b中各存有一个整数,交换两数后输出。

【分析提示】

   设a=10,b=20,若要交换这两数,则需要借一中间变量,首先将a中的数值存入变量t中进行保存,然后将b中的数值存入a中,再将t中的数值存入b中。

写出程序代码

  2.鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只?

 设a=10,b=20,若要交换这两数,则需要借一中间变量,首先将a中的数值存入变量t中进行保存,然后将b中的数值存入a中,再将t中的数值存入b中。

写出程序代码

  2.鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只?

【分析提示】

设有x只鸡,有y只兔,则有:

  求出x和y的公式:

 设h=16,f=40,写出程序代码

3.从键盘输入一个字符,输出这字符的ASCII码的值。

【分析提示】

一个整数,只要它的值在0—255之间,也可以用字符形式输出,在输出前,系统会将该整数转换为相应的ASCII码的字符;一个字符也可以用一个整数输出,输出的整数即为这字符的ASCII码值。

根据上面的分析,自已写出程序代码。

运行时:

从键盘上输入字符:

a

输出结果为_______,此结果代表着什么含义?

 

  4.已知直角三角形的两直角边长为a,b,求斜边长

的值,保留一位小数。

【分析提示】

   在这个题中计算

,要用到一个数学函数sqrt(x),这个函数在math.h头文件中。

写出程序代码。

 

实验3分支结构程序设计

一.实验目的

掌握if语句的格式与应用,if语句的嵌套格式与应用,条件运算符的作用,Switch语句的格式与应用,Break、continue语句的格式与应用。

二.实给内容

1.完成下面的程序,在空白处填入a,b,c,取a,b,c中最大者赋给max。

A.if(a>b&&a>c)               B. if(a>b)

    max=________                   if(a>c)

  else                                max=______p; max=______ 

实验4循环结构程序设计一

一.实验目的

 掌握循环结构的三种形式:

当型循环结构(while)、直到型循环结构(do_while)、次数型结构(for),以及三种形式的相互转换,掌握break语句、continue语句的格式、功能、作用。

二.实验内容与步骤

读程序,求结果

1.   下面程序段输出结果是(   )

Intx=3;

Do{printf(“%d\n”,x-=2);}

While(!

(--x));     

2.   x和y均为int型变量,执行循环语句后,y值为(  )

For(y=1;x=1;y<=50;y++)

{if(x>=10)break;

if(x%2==1) {x+=5;continue;}

x-=3;}   

编写下列程序,上机调试、验证。

1.  键盘上输入10个数,求其平均值。

2. 输出1—100之间,其数的平方在150—200之间的第一个数,如找到,退出循环,输出该数的平方。

反之,继续查找。

3. 输入一正整数,按从低到高的顺序依次输出其各位数字的值,例如:

输入8546输出8 5 4 6

【程序分析提示】关键是确定整数的各位数字是什么

4.从键盘上输入若干正整数,求其中最大数和最小数。

输入的数以0为中止标志。

【程序分析提示】

(1)      设第一个读取德数是当前最大数和最小数;

(2)      若当前读取的整数不为0,则继续循环;

(3)      若当前读取的数比最大数大,则记录;比最小数小,则记录;

(4)      读取下一个整数。

 

if(b>c)                           else

 max=________                    max=______max=______

else                            else

 max=________                   if(b>c)

                                    max=________

                                     else

                                         max=_________

2.输入a,b,c三个整数,要求将绝对值最大者打印输出。

【分析提示】

     此题的关键是绝对值如何表示,x的绝对值也以表示成:

abs(x)。

可以用伪代码写出程序的算法。

If abs(a)>abs(b)  则x=a否则x=b(这时说明x中存放着a、b中绝对值较大的一个数);如果if abs(x)>abs(c) 则绝对值较大的一个是x,否则绝对值较大的一个是c。

 

  3.输入一个整数,判断该数的奇偶性。

(输出相应的标志even-偶数odd-奇数,请记住这两个单词)

【分析提示】

   一个数除2若余数为0,则这个数一定是偶数,否则是奇数。

C语言中的求余运算符为“%”,若输入的数为偶数则输出“even”,若输入的数为奇数则输出“odd”。

自已写出程序代码。

 

 4.给定一个正整数,判断它是否能同时被3、5、7整除。

 

实验5循环结构程序设计二

一.实验目的

 掌握三种循环结构相互嵌套,多重循环结构的应用。

二.实验内容与步骤

编写下列程序,上机调试、验证。

1. 输出100-999之间的全部素数。

 

2. 编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。

 

3.打印下面的图案

******

*        *

*        *

                ******

  【程序分析提示】

这是一个用双层循环实现打印图案的问题。

打印几行用外循环实现,每行打印多少个字符,用内循环实现。

具体每行哪个位置打印字符,由内循环体的if语句实现。

 

4.求出所有各位数字的立方和等于1099的三位整数。

【程序分析提示】

可用三层循环实现。

设最外层循环变量为i(表示百位);此外层循环变量设为j(表示十位);最内层循环变量为k(表示个位)。

输出ijk的条件:

所有个位数组的立方和等于1099,即:

i*i*i+j*j*j+k*k*k==1099; 

 

实验6数组程序设计一

一.实验目的

掌握一维数组和二位数组的定义、初始化、输入、输出方法

二.实验内容与步骤

1.填补空出的语句,以使程序完整,然后上机验证。

(1)下面程序的功能是输出数组s中最大元素的下标。

    main()

    {intk,p;

      ints[]={1,-9,7,2,-10,3};

      for(p=0,k=p;p<6;p++)

        if(s[p]>s[k])_____________;

      printf(“%d\n”,k);

    }

【程序分析提示】主要考虑最大元素下标k和循环变量p之间的关系。

 

(2)下面程序的功能为求主、次对角线元素之和。

   main()

   {staticinta[][3]={9,7,5,3,1,2,4,6,8};

    inti,j,s1=0,s2=0;

    for(i=0;i<3;i++)

       for(j=0;j<3;j++)

          {if(________)s1=s1+a[i][j];

           if(________)s2=s2+a[i][j];

          }

        printf(“%d\n%d\n”,s1,s2);

      }

【程序分析提示】主要考虑主对角线行、列之间有何关系?

次对角线行、列之间的关系?

 3.编写下列程序,上机调试、验证。

(1)求2个3×3矩阵对应元素之和,并存入矩阵C中,然后输出矩阵C。

设计步骤:

①定义3个3×3矩阵a,b,c;

②设计用双重循环给矩阵a、b赋值;

③用双重循环求矩阵a、b对应元素之和并赋给矩阵c;

④用双重循环输出矩阵c对应的元素。

  

(2)输入单精度型一维数组a[10],计算并输出a数组中所有元素的平均值。

设计步骤:

①  定义一个单精度型一维数组a[10];

② 用单重循环给一维数组a[10]赋值;

③  用单重循环求一维数组a[10]所有元素之和;

④  在循环外求平均值并输出。

 四.思考与练习

1.      设a[3][4][5]是一个三维数组,在内存中紧位于a[1][3][4]之后的数组元素是谁?

紧位于a[0][1][0]之前的数组元素是谁?

2.      设a是一个M*N*L的三维数组,给出a[i][j][k]的地址计算公式。

3.      设有数组定义inta[5][10]。

问一维数组a的每个元素占多少字节?

数组a[2]的每个元素占多少字节?

假设int型数句占2个字节。

4.      设有数组定义inta[3][4][5]。

a,a[0],a[0][0]都是数组的名字。

问它们的第一个元素的地址各是什么?

它们的第一个元素各占多少字节?

 

实验7数组程序设计二

一.实验目的

 掌握字符数组的定义、初始化,存放字符串的字符数组的定义、初始化、输入、输出方法,掌握常用字符串处理函数的格式、功能和使用方法;

二.实验内容与步骤

1.填补空出的语句,以使程序完整,然后上机验证。

下面程序的功能是将一个字符串str的内容颠倒过来。

  #include“string.h”

  main()

  {inti,j,k;

   charstr[]={“1234567”};

   for(i=0,j=strlen(str)_______;i

      {k=str(i);str[i]=str[j];str[j]=k;}

  }

【程序分析提示】i和j对应字符数组的下标,通过循环实现i由前往后移动,j由后向前移动。

分析字符数组最后元素的下标值和字符串长度之间的关系。

 2.编写下列程序,上机调试、验证。

(1) 输入一个字符串,将其中所有大写字母改为小写字母,而所有小写字母全部改为大写字母,然后输出。

设计步骤

①用gets输入字符串;

②用循环判断字符串中的每个字符是大写还是小写,若是大写要转换成小写,是小写要转换成大写:

大写与小写字母的转换关系是“小写字母=大写字母+32”

③用puts输出该字符串。

参考程序部分清单:

(2) 设某班50名学生的三科成绩表如下

   课程一     课程二     课程三

   …     …     …

编一个程序,输入这50个学生的三科成绩,计算并输出每科成绩的平均分。

设计步骤:

① 可先按3个学生3门课成绩设计,通过后再改成50个学生;

② 先将3个学生3门课的成绩通过scanf函数送入字符数组score;

③ 求出3个学生每门课程的总成绩,放入s一维数组中;

④  求出每门课程的平均成绩并输出。

 四.思考与练习

1. 读如下程序,找出其中的所有错误。

1)   main()

2)   {inta,x[10];

3)   chars[100];

4)   doubleA,B,a,b;

5)   for(i=0;i<10;i++)scanf(“%c”,x[i]);

6)   scanf(“%d%d”,&A,&B);

7)  for(i=0;i<50;i++)scanf(“%c”,s[i]);

8)   ifA>Bthena=b=1elsea=b=2;

9)   printf(“%d,%d\n”,x[0]=A+x[10],B+x[10]);

10)  printf(“s=%s\n”,s);

 2.   函数调用“strcat(strcpy(str1,str2),str3)”的功能是什么?

语句“printf(“%d\n”strlen(“ats\no12\1\\”));”的输出结果是什么?

实验8函数程序设计一

一.实验目的

掌握自定义函数的概念、定义格式、调用方法;掌握函数的形式参数、实际参数和函数的返回值;掌握函数程序设计的一般方法和应用。

二.实验内容与步骤

1.阅读下列程序,分析程序完成的功能,然后上机验证结果。

(1)main()

{   voidf();

    floatx,y;

    scanf(“%f,%f”,&x,&y);

    f(x,y);

}

voidf(float a,float b)

{  floatc;

if(a>b)

     c=a+b;

else

c=a-b;

   printf(“%f”,c);

}

【程序分析提示】该程序通过函数f,对形式参数为a,b进行相应运算。

通过该题目验证自定义函数的定义、调用、参数传递、返回值之间的关系。

【思考】如果将该函数定义为代返回值的类型,该程序应该如何改变?

2.编写下列程序(或程序段)。

(1)编写自定义函数,实现求两个实数最小值的功能。

(2)计算10名学生1门课成绩的平均分。

(程序设计要求:

用自定义函数来实现,注意自定义函数的形式及参数之间的传递,用主函数来调用自定义函数实现功能。

(3)定义二个整数(x、y)最小公倍数的函数。

(4)利用自定义函数编写程序,实现将一个十进制数转换成二进制数。

(5)利用自定义函数编写程序,求下面的式子:

    Y=1+1/2+1/3……+1/n      (n的数值自定)

    Y=1×2×3+2×3×4+……+98×99×100

 

实验9函数程序设计二

一.实验目的

掌握函数与数组之间的关系和操作,熟悉数组作为参数传递应该注意的问题;函数的嵌套、递归调用方法和应用;局部变量、全局变量的定义和使用;常用系统函数的使用;

二.实验内容与步骤

(1)main()

{   voidf();

    floata[10];

int i;

    for(i=0;i<10;i++)

        scanf(“%d”,&a[i]);

    f(a);

}

voidf(intb[])

{  floatsum=0,aver;

int i;

   for(i=0;i<10;i++)

     sum+=b[i];

aver=sum/10.0;

   printf(“%d”,aver);

}

输入数据为:

23 43 12 46 90 65 44 76 78 86

输出结果为:

【思考】在主函数中的voidf();作用是什么?

可以改变其形式吗?

(2)main()

{  intx=5,y=0;

     printf(“x=%5d y=%5d \n”,x,y);

     func();

     printf(“x=%5d y=%5d \n”,x,y);

     func();

}

func()

{  staticintx=4;inty=10;

       x=x+2;

       y=y+x;

       printf(“x0=%5d y0=%5d \n”,x,y);

}

【思考】分析该程序的运行结果并给出简单解释。

(3)main()

{   inti=5;

 printf(“%d\n”sub(i));  }

sub(intn)

{  inta;

   if(n==1)

return1;

a=n+sub(n-1);

   return(a);                    }

【思考】写出该程序的运行结果并熟悉递归函数的实现过程。

完成下面的题目,然后上机验证。

(1)输入一个数组,利用自定义函数求数组的平均数(用数组做参数)。

(2)用自定义函数实现将两个字符串连接的程序。

(4)给出一个二维数组,求其主对角线元素之和。

(5)自定义函数countc的功能是统计array数组中大写字母的个数,并返回大写字母的数目。

(6)下列程序的功能是计算函数f(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。

(7)用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。

(8)以下函数p的功能是用递归方法计算xX的n阶勒让德多项式的值。

已有调用语句p(n,x);请编写p函数。

递归公式如下:

实验10指针结构程序设计一

一.实验目的

掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系;掌握指针变量的定义和初始化,指针变量的引用方式;掌握取地址运算符与指针运算符;掌握指向变量的指针变量的使用;掌握指向数组的指针变量的使用;

二.实验内容与步骤

 1.main()

{  inta,b,*pa=&a,*pb=&b,*p;

   scanf(“%d,%d”,pa,pb);

   if(*pa>*pb)

   { p=pa;pa=pb;pb=p;}

 printf(“%d<=%d\n”,*pa,*pb);

}

【程序分析提示】该程序用if语句比较pa和pb指向的数,使pa指向小数,pb指向大数,在实现该程序中,使用了指针方式。

 2.输入15个整数存入一维数组,再按逆序重新调整该数组中元素的顺序然后再输出。

下面给出部分程序的内容,请同学将程序补充完整,然后上机调试。

部分程序清单如下:

 main()

 {  inta[15],*p1,*p2,x;

     for(p1=a;p1

         scanf(“%d”,p1);

     for(p1=a,p2=a+14;p1

     {    x=*p1;

           *p1=*p2;

           *p2=x;              }

       ……

三.编写程序,然后上机调试结果

1.已知p,q指向两个int型变量,写两个复合语句,分别交换p,q的值和p,q所指变量的值,每个复合语句中只可以定义一个变量。

2.已知p,q指向数组的两个元素,写赋值语句,使r指向p和q的中点。

例如,若p,q分别指向a[0]和a[2],则r指向a[1]。

 

实验11指针结构程序设计二

一.实验目的

掌握指向二维数组和字符数组指针变量的使用方法;掌握指针数组的定义、指针数组元素的引用;掌握多级指针的定义和应用;

二.实验内容与步骤

 1.main()

{  ints[4][4],i,j;

   for(i=0;i<4;i++)

   for(j=0;j<4;j++)

       *(*(s+i)+j)=i-j;

      for(j=0;j<4;j++)

   {  for(i=0;i<4;i++)

          printf(“%4d”,*(*(s+j)+i));

       printf(“\n”);

   }

 }

   2.#include“string.h”

main( )

{   chara[5][80],*p[5],**q,**max;

    inti;

    for(i=0;i<5;i++)

        p[i]=a[i];

    for(i=0;i<5;i++)

          gets(p[i]);

    

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1