C语言程序设计上机实验报告Word格式文档下载.docx
- 文档编号:17347900
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:61
- 大小:694.22KB
C语言程序设计上机实验报告Word格式文档下载.docx
《C语言程序设计上机实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计上机实验报告Word格式文档下载.docx(61页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 上机 实验 报告