C语言程序设计上机实验报告Word格式文档下载.docx

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

C语言程序设计上机实验报告Word格式文档下载.docx

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

C语言程序设计上机实验报告Word格式文档下载.docx

9

实验九指针

10

实验十结构体和共用体

11

实验十一位运算

12

实验十二文件

合计

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

实验一熟悉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));

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.输入以下程序,并编译、运行,分析运行结果:

{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)程序改为:

{inti,j;

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)程序改为:

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

m+=i++;

n-=--j;

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

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

(1)(实验结果:

1221210)

{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)

{inta=110,b=017;

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

(3)(实验结果:

0360)

{

inta=-1;

b=36,c;

c=(++a>

0)&

&

!

(b--<

=0);

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

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

(实验结果:

与输入相同)

{charc;

scanf(″%c″,&

c);

.......

printf(″%c″,c);

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

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

1.输入以下程序:

#include"

inti;

charj;

for(i=1;

i<

10;

i++)

scanf("

%c"

&

j);

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↙

(能。

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

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

└┘%c"

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

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

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

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

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

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

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

#include<

stdio.h>

voidmain()

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

putchar('

\n'

);

{Intc1,c2;

一、目的要求

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

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

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

二、实验内容

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

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

printf("

pleaseinputachar\n"

charx;

x=getchar();

if(x>

='

A'

x<

Z'

||x>

a'

z'

)printf("

thisisaletter\n"

else

if(x>

0'

9'

thisisanum\n"

else

printf("

error\n"

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

(1)求出它是几位数;

inta,i=0;

scanf("

%d"

a);

while(a>

0)

{

i=i+1;

a=a/10;

}

i);

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

inta,b,i,c=10000;

for(i=4;

i>

=0;

i=i--)

{b=a/c;

%d"

b);

a=a-b*c;

c=c/10;

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

inta,i,c=10000;

charb[5];

b[i]=a/c;

a=a-b[i]*c;

for(i=0;

=4;

printf("

b[i]);

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

#include<

conio.h>

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

inti,t,j;

a=getchar();

b=getchar();

c=getchar();

d=getchar();

e=getchar();

if((a<

'

||a>

a<

)||

(b<

||b>

b<

(c<

||c>

c<

(d<

||d>

d<

(e<

||e>

e<

))

pleaseretypethechar\n"

%d,%d,%d,%d,%d\n"

a,b,c,d,e);

按从小到达排列\n"

x[0]=a;

x[1]=b;

x[2]=c;

x[3]=d;

x[4]=e;

for(j=0;

j<

=3;

j++)

4-i;

if(x[i]>

x[i+1])

t=x[i];

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

x[i+1]=t;

for(i=0;

5;

x[i]);

getch();

4.有一函数,

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

floatx,y;

pleaseinputanum\n"

%f"

x);

if(x<

1)y=x*x;

=10)y=3*x-1;

y=2*x-1;

x=%f,y=%f\n"

x,y);

一、实验目的

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

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

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

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

inta,b,c,d,e;

printf("

pleaseinput2numbers:

\n"

scanf("

%d,%d"

a,&

b);

e=a*b;

if(a<

b)

{c=b;

b=a;

a=c;

};

while(b!

=0)

{d=a%b;

a=b;

b=d;

最小公约数是:

a);

最小公倍数是:

e/a);

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

charc;

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

请输入一段字符:

while(c!

{c=getchar();

if(c>

)L=L+1;

if(c>

)N=N+1;

else

if(c=='

'

)S=S+1;

else

O=0+1;

字母:

%d个,数字:

%d个,空格:

%d个,

其它:

%d个\n"

L,N,S,O);

3.输出九九表。

14

16

18

15

21

24

27

20

28

32

36

25

30

35

40

45

42

48

54

49

56

63

64

72

81

intx[9][9];

inta,b;

for(a=1;

=9;

a++)

for(b=1;

b++)

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

for(a=1;

x[a][b]);

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

{charx[10];

inti,n=0;

floatave,s=0;

请输入十个整数:

scanf("

x[i]);

{if(x[i]>

0)

{s=s+x[i];

n=n+1;

ave=s/n;

正整数为%d个\n"

n);

平均数为%f\n"

ave);

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

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

已抽签决定比赛名单。

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

(提示:

用循环和判断实现)

charA,B,C;

for(A='

X'

;

A<

A++)

for(B='

B<

B++)

if(A!

=B)

for(C='

C<

C++)

=C&

B!

=C)

C!

A-%c\,B-%c\,C-%c\n"

A,B,C);

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

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

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

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

string.h>

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

请输入字符串1:

"

%s"

str1);

请输入字符串2:

str2);

strcmp(str3,str2);

连接后字符串为:

%s%s\n"

str1,str2);

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

s2,输出1;

s1=s2,输出0;

s1<

s2,输出-1。

charstr1[20],str2[20];

if(strcmp(str1,str2)>

1\n"

if(strcmp(str1,str2)<

-1\n"

0\n"

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

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

请输入字符串:

strupr(str1);

strcpy(str2,str1);

转化后字符串为:

%s\n"

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

charstr[50];

inti=0;

str);

for(i=0;

=strlen(str);

if(str[i]>

str[i]<

str[i]='

删除后字符串为:

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

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

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

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

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

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

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

chara[100];

voidf(chara[100]);

请输入一串字符:

get

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

当前位置:首页 > 高等教育 > 文学

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

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