C语言程序设计上机实验报告.docx

上传人:b****6 文档编号:4422530 上传时间:2022-12-01 格式:DOCX 页数:61 大小:694.22KB
下载 相关 举报
C语言程序设计上机实验报告.docx_第1页
第1页 / 共61页
C语言程序设计上机实验报告.docx_第2页
第2页 / 共61页
C语言程序设计上机实验报告.docx_第3页
第3页 / 共61页
C语言程序设计上机实验报告.docx_第4页
第4页 / 共61页
C语言程序设计上机实验报告.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

C语言程序设计上机实验报告.docx

《C语言程序设计上机实验报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计上机实验报告.docx(61页珍藏版)》请在冰豆网上搜索。

C语言程序设计上机实验报告.docx

C语言程序设计上机实验报告

 

 

本科实习报告

 

实习名称:

C语言程序设计

实习性质:

08060101

实习时间:

2011.09—2012.01

实习地点:

学生姓名:

学号:

学院:

信息科学技术学院

学系:

数学系

专业:

信息与计算科学

指导教师:

教师单位:

数学系

2011年9月1日

C语言程序设计课程实验项目目录

学生姓名:

学号:

 

序号

实验项目名称

计划学时

计划每组人数

实验属性

开出要求

内容提要

1

实验一熟悉WinTC/VC的上机过程

2

1

验证

必选

2

实验二数据类型、运算符和表达式

2

1

设计

必选

3

实验三顺序程序设计

2

1

设计

必选

4

实验四逻辑运算和判断选取控制

2

1

设计

必选

5

实验五循环控制

2

1

设计

必选

6

实验六数组

4

1

设计

必选

7

实验七函数

4

1

设计

必选

8

实验八编译预处理

1

1

设计

必选

9

实验九指针

4

1

设计

必选

10

实验十结构体和共用体

4

1

设计

必选

11

实验十一位运算

1

1

设计

必选

12

实验十二文件

4

1

设计

必选

合计

暨南大学本科实验报告专用纸

实验一熟悉WinTC/VC的上机过程:

一、实验目的:

1.熟悉WinTC或者VC++6.0的软件环境,掌握使用其进行编辑、编译、连接和运行的方法。

2.通过运行简单的C程序,掌握C源程序的特点。

二、实验内容:

(由学生选择WinTC或者VC之一完成相关实验)

1.运行WinTC程序,进入C程序设计环境。

2.建立工程文件

3.编辑源文件

4.编译、连接

(1)单文件源程序的编译、连接

源程序先经过编译,生成目标文件(.obj文件),然后将目标文件进行连接,生成可执行文件(.exe)。

如果编译、连接中发生错误,在Message窗口中显示出错信息,修改错误后,可重新编译、连接。

(2)多文件源程序的编译、连接

可以用长的源程序分割成几个文件,分别编译然后生成可执行文件。

此时使用Project菜单。

步骤:

第一步:

有三个文件f1.c、f2.c、f3.c组成一个完整的C程序,分别建立三个文件,将f1.c、f2.c、f3.c三个文件保存到同一个文件夹中(如d:

\tc\project\)。

f1.c:

#include"stdio.h"

externa,b;

externmax(intx,inty);

main()

{

inte=1,f=2;

printf("%d\n",max(a,b));

printf("%d\n",max(e,f));

}

f2.c:

inta=3,b=4;

f3.c:

intmax(intx,inty)

{returnx>y?

x:

y;}

第二步:

构造Project文件,在编辑状态下,编辑一个扩展名为.prj的文件,文件的内容为:

f1

f2

f3

第三步:

构造EXE文件,按F9键即将三个文件编译、连接成一个EXE文件,文件名为wang.exe。

如果编译、连接出现错误,则必须进行修正,然后再编译。

5.运行程序

如果编译、连接完全正确,则可以用运行程序。

三、实验过程(依据上面示例,简要描述你使用WinTC或者其它编译器的过程)

暨南大学本科实验报告专用纸

实验二数据类型、运算符和表达式

一、实验目的:

1.掌握C语言数据类型,熟悉如何定义整型、字符型、实型变量,以及对它们赋值的方法,了解以上数据类型输出时所使用的格式转换符号。

2.学会使用C的有关运算符,以及包含这些运算符号的表达式,特别是自加(++)和自减(——)运算符的使用。

3.进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容:

1.输入以下程序,并编译、运行,分析运行结果:

main()

{charc1,c2;

c1=97;c2=98;

printf(″%c%c″,c1,c2);

}

在此基础上:

(1)加一个printf语句,并运行之。

printf(″%d,%d″,c1,c2);

(2)再将第二行改为:

intc1,c2;

再运行程序。

 

(3)再将第三行改为:

c1=300;c2=400;

再运行,并分析结果。

2.输入并运行以下程序:

main()

{inti,j,m,n;

i=8;j=10;

m=++i;n=j++;

printf(″%d,%d,%d,%d\n″,i,j,m,n);

}

分别作以下改动并运行:

(1)将第四行改为:

m=i++;n=++j;

(2)程序改为:

main()

{inti,j;

i=8;j=10;

printf(″%d,%d″,i++,j++);

}

 

(3)在

(2)的基础上,将printf语句改为:

printf(″%d,%d″,++i,++j);

(4)再将printf语句改为:

printf(″%d,%d,%d,%d″,i,j,i++,j++);

(5)程序改为:

main()

{inti,j,m=0,n=0;

i=8;j=10;

m+=i++;n-=--j;

printf(″i=%d,j=%d,m=%d,n=%d″,i,j,m,n);

}

3.先判断以下程序的输出结果,在运行验证。

(1)(实验结果:

1221210)

main()

{inti=3,j=2,a,b,c,d;

d=(i*3,j=10);

a=(--i==j++)?

--i:

++j;

b=i++;

c=j;

printf(″%d,%d,%d,%d\n″,a,b,c,d);

}

(2)(实验结果:

6e16)

main()

{inta=110,b=017;

printf(″%x,%d\n″,a++,++b);

}

(3)(实验结果:

0360)

main()

{

inta=-1;b=36,c;

c=(++a>0)&&!

(b--<=0);

printf(″%d,%d,%d\n″,a,b,c);

}

4.补充完整以下程序,将从键盘输入的任意大写字母转换为小写字母,将小写字母转换为大写字母。

(实验结果:

与输入相同)

main()

{charc;

scanf(″%c″,&c);

.......

printf(″%c″,c);

}

暨南大学本科实验报告专用纸

实验三顺序程序设计

一、实验目的:

1.掌握赋值语句的使用。

2.掌握数据的输入输出方法,能正确使用各种格式转换符。

二、实验内容:

1.输入以下程序:

#include"stdio.h"

main()

{

inti;

charj;

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

{

scanf("%c",&j);

printf("%c",j);

}

}

(1)运行程序,输入a↙b↙c↙d↙e↙f↙g↙h↙i↙

观察程序的执行结果,是否能够输出字母a,b,c,d,e,f,g,h,i。

为什么?

(不能。

因为按回车会被当做一个换行字符被送到缓冲区)

(2)在scanf语句后面加上语句:

getchar();

运行程序,输入a↙b↙c↙d↙e↙f↙g↙h↙i↙

观察程序的执行结果,是否能够输出字母a,b,c,d,e,f,g,h,i。

为什么?

(能。

按回车键之后字符才被输送,所以没有读取回车这个字符)

(4)在源程序的基础上,将scanf语句的%c前面加一空格,即改为:

scanf("└┘%c",&j);

运行程序,输入└┘a↙└┘b↙└┘c↙└┘d↙└┘e↙└┘f↙└┘g↙└┘h↙└┘i↙

观察程序的执行结果,是否能够输出字母a,b,c,d,e,f,g,h,i。

为什么?

(能。

└┘%c在输出时没有输出└┘这个字符,所以当每次输入空格跟一个字母时,字母在空格的位置输出,而回车这个换行字符则在字母的位置输出)

运行程序,输入└┘a└┘b└┘c└┘d└┘e└┘f└┘g└┘h└┘i↙

观察程序的执行结果,是否能够输出字母a,b,c,d,e,f,g,h,i。

为什么?

(能。

└┘%c被当成是一个循环,所以└┘没有占据单独的一个循环,故能全部输出。

2.做教材上的习题3.6和3.7

3.编制一程序,用getchar函数输入字符,然后用putchar函数输出字符,同时要求输出字符的ASCII码。

分别考虑用int和char型变量来接收键盘输入的字符,两者是否等价?

#include

voidmain()

{charc1,c2;

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

putchar('\n');

}

#include

voidmain()

{Intc1,c2;

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

putchar('\n');

}

暨南大学本科实验报告专用纸

实验四逻辑运算和判断选取控制

一、目的要求

1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”);

2.学会正确使用逻辑运算符和逻辑表达式;

3.熟练掌握if语句和switch语句

二、实验内容

先编程序,解决以下问题,然后上机调试运行程序。

1.编写一程序,从键盘输入字符,判别输入字符是数字、大写字母还是小写字母,输出判别结果。

#include"stdio.h"

voidmain()

{

printf("pleaseinputachar\n");

charx;

x=getchar();

if(x>='A'&&x<='Z'||x>='a'&&x<='z')printf("thisisaletter\n");

else

if(x>='0'&&x<='9')printf("thisisanum\n");

else

printf("error\n");

}

 

2.给出一个不多于5位的正整数,要求:

(1)求出它是几位数;

#include"stdio.h"

voidmain()

{

inta,i=0;

scanf("%d",&a);

while(a>0)

{

i=i+1;

a=a/10;

}

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

}

(2)分别打印出每一位数字;

#include"stdio.h"

voidmain()

{

inta,b,i,c=10000;

scanf("%d",&a);

for(i=4;i>=0;i=i--)

{b=a/c;

printf("%d",b);

a=a-b*c;

c=c/10;

}

}

(3)按逆序打印出各位数字。

#include"stdio.h"

voidmain()

{

inta,i,c=10000;

charb[5];

scanf("%d",&a);

for(i=4;i>=0;i=i--)

{

b[i]=a/c;

a=a-b[i]*c;

c=c/10;

}

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

printf("%d",b[i]);

}

3.任意输入5个字母,如果输入的不是字母,程序应能提示重新输入,然后按照字母的ASCII码值从小到大的顺序输出。

#include"stdio.h"

#include

main()

{

chara,b,c,d,e,x[5];

inti,t,j;

a=getchar();b=getchar();c=getchar();

d=getchar();e=getchar();

if((a<'A'||a>'z'||a>'Z'&&a<'a')||

(b<'A'||b>'z'||b>'Z'&&b<'a')||

(c<'A'||c>'z'||c>'Z'&&c<'a')||

(d<'A'||d>'z'||d>'Z'&&d<'a')||

(e<'A'||e>'z'||e>'Z'&&e<'a'))

printf("pleaseretypethechar\n");

else

printf("%d,%d,%d,%d,%d\n",a,b,c,d,e);

printf("按从小到达排列\n");

x[0]=a;x[1]=b;x[2]=c;x[3]=d;x[4]=e;

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

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

if(x[i]>x[i+1])

{

t=x[i];

x[i]=x[i+1];

x[i+1]=t;

}

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

printf("%d\n",x[i]);

getch();

}

 

4.有一函数,

,用scanf函数输入任意x的值,求y的值。

#include"stdio.h"

voidmain()

{

floatx,y;

printf("pleaseinputanum\n");

scanf("%f",&x);

if(x<1)y=x*x;

else

if(x>=10)y=3*x-1;

else

y=2*x-1;

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

}

暨南大学本科实验报告专用纸

实验五循环控制

一、实验目的

1.熟悉用while语句,do-while语句和for语句实现循环的方法。

2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

二、实验内容

编写程序并上机调试运行。

1.输入两个正整数,求其中最大公约数和最小共倍数。

#include

#include

voidmain()

{

inta,b,c,d,e;

printf("pleaseinput2numbers:

\n");

scanf("%d,%d",&a,&b);

e=a*b;

if(a

{c=b;b=a;a=c;};

while(b!

=0)

{d=a%b;a=b;b=d;};

printf("最小公约数是:

%d\n",a);

printf("最小公倍数是:

%d\n",e/a);

}

2.输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

#include

voidmain()

{

charc;

intL=0,N=0,S=0,O=0;

printf("请输入一段字符:

\n");

while(c!

='\n')

{c=getchar();

if(c>='a'&&c<='z'||c>='A'&&c<='Z')L=L+1;

else

if(c>='0'&&c<='9')N=N+1;

else

if(c=='')S=S+1;

else

O=0+1;

}

printf("字母:

%d个,数字:

%d个,空格:

%d个,

其它:

%d个\n",L,N,S,O);

}

3.输出九九表。

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

2

4

6

8

10

12

14

16

18

3

6

9

12

15

18

21

24

27

4

8

12

16

20

24

28

32

36

5

10

15

20

25

30

35

40

45

6

12

18

24

30

36

42

48

54

7

14

21

28

35

42

49

56

63

8

16

24

32

40

48

56

64

72

9

18

27

36

45

54

63

72

81

 

#include

voidmain()

{

intx[9][9];

inta,b;

for(a=1;a<=9;a++)

{

for(b=1;b<=9;b++)

{x[a][b]=a*b;}

}

for(a=1;a<=9;a++)

{

for(b=1;b<=9;b++)

printf("%d",x[a][b]);

printf("\n");

}

}

4.求输入的十个整数中正数的个数及其平均值。

#include

voidmain()

{charx[10];

inti,n=0;

floatave,s=0;

printf("请输入十个整数:

\n");

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

scanf("%d",&x[i]);

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

{if(x[i]>0)

{s=s+x[i];

printf("%d",x[i]);

n=n+1;}

}

ave=s/n;

printf("正整数为%d个\n",n);

printf("平均数为%f\n",ave);

}

5.两个乒乓球队进行比赛,各出三人。

甲队为A、B、C3人,乙队为X、Y、Z3人。

已抽签决定比赛名单。

有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编写找出3对赛手的名单。

(提示:

用循环和判断实现)

#include

voidmain()

{

charA,B,C;

for(A='X';A<='Z';A++)

for(B='X';B<='Z';B++)

if(A!

=B)

for(C='X';C<='Z';C++)

if(A!

=C&&B!

=C)

if(A!

='X'&&C!

='X'&&C!

='Z')

printf("A-%c\,B-%c\,C-%c\n",A,B,C);

}

暨南大学本科实验报告专用纸

实验六数组

一、目的要求

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;

2.掌握字符数组和字符串函数的使用;

3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容

编写程序并上机调试运行。

1.编写一程序,从键盘输入任意两个字符串,然后将两个字符串连接起来,不要使用strcat函数。

#include

#include

voidmain()

{

charstr1[50],str2[50],str3[50];

printf("请输入字符串1:

");

scanf("%s",str1);

printf("请输入字符串2:

");

scanf("%s",str2);

strcmp(str3,str2);

printf("连接后字符串为:

%s%s\n",str1,str2);

}

2.编写一程序,从键盘输入任意两个字符串s1和s2,然后比较字符串的大小(字符串比较是从左到右逐位比较),如果s1>s2,输出1;s1=s2,输出0;s1

#include

#include

voidmain()

{

charstr1[20],str2[20];

printf("请输入字符串1:

");

scanf("%s",str1);

printf("请输入字符串2:

");

scanf("%s",str2);

if(strcmp(str1,str2)>0)

printf("1\n");

else

if(strcmp(str1,str2)<0)

printf("-1\n");

else

printf("0\n");

}

3.编写一程序,输入一字符串到数组中,然后将该数组中小写字母转换为大写字母,并复制到另一字符数组中。

(复制时,‘\0’也要复制过去)

#include

#include

voidmain()

{

charstr1[20],str2[20];

printf("请输入字符串:

");

scanf("%s",str1);

strupr(str1);

strcpy(str2,str1);

printf("转化后字符串为:

%s\n",str2);

}

4.编写程序,把键盘输入的字符串中的数字字符删除,然后现实该字符串。

#include

#include

voidmain()

{

charstr[50];

inti=0;

printf("请输入字符串:

");

scanf("%s",str);

for(i=0;i<=strlen(str);i++)

{

if(str[i]>='0'&&str[i]<='9')

str[i]='';

}

printf("删除后字符串为:

%s\n",str);

}

 

暨南大学本科实验报告专用纸

实验七函数

一、目的要求

1.掌握定义函数的方法;

2.掌握函数实参与形参的对应关系,以及“值传递”的方式;

3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。

二、实验内容

编写程序,并上机运行之。

1.输入一行字符串,然后写一函数输出该行字符串中最长的单词。

例如Iamastudent中最长的单词为student。

#include

#include

voidmain()

{

chara[100];

voidf(chara[100]);

printf("请输入一串字符:

");

get

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

当前位置:首页 > 高中教育 > 初中教育

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

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