C语言程序设计实验报告.docx
《C语言程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验报告.docx(9页珍藏版)》请在冰豆网上搜索。
C语言程序设计实验报告
《C语言程序设计》实验报告
实验一C程序的运行环境和运行一个C程序的方法
◆实验目的
(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。
◆实验内容
(1)调用教材P4例1.1程序,并进行编译和运行。
(2)输入并运行教材P4例1.2程序。
(3)编写并运行教材P12习题1.5。
1.main()
{printf(“Thisisaprogram.\n”);}
运行结果:
Thisisaprogram.
2.main()
{inta,b,sum;
a=123;b=456;
sum=a+b;
printf(“sumis%d\n”,sum);}
运行结果:
sumis579
3.main()
{printf(“***********************\n”);
printf(“Verygood\n”);
printf(“***********************\n”);
}
运行结果:
***********************
Verygood
***********************
实验二数据类型、运算符和表达式
◆实验目的
(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及它们的赋值方法。
(2)学会使用C语言的算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使用。
◆实验内容
(1)输入并运行教材例3.6程序,并进行编译和运行。
(2)编写并运行教材习题3.10,并写出运行结果。
(3)编写并运行教材习题3.7,并写出运行结果。
实验三顺序结构程序设计
◆实验目的
(1)掌握C语言中使用最多的一种语句—赋值语句的使用。
(2)掌握数据的输入输出的方法,能正确使用各种格式的转换符。
◆实验内容
(1)编写并运行教材习题4.8(作业),并写出运行结果。
(2)编写并运行教材习题4.9,写出当F=100时的结果。
实验四选择结构程序设计
◆实验目的
(1)了解C语言表示逻辑量的方法。
(2)学会正确使用逻辑运算符和逻辑表达式。
(3)熟练掌握if语句和switch语句。
◆实验内容
(1)编写并运行教材习题5.5,并写出当输入-1、5、10时的运行结果。
(2)编写并运行教材习题5.6,并写出当输入100、90、80时的运行结果。
实验五循环控制
◆实验目的
(1)熟悉用while语句,do—while语句和for语句实现循环的方法。
(2)掌握在程序设计中用循环的方法实现各种算法。
◆实验内容
(1)输入两个正整数,求其中最大公约数和最小公倍数。
(2)输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。
(3)打印出所有的“水仙花数”。
实验六数组
◆实验目的
(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法。
(2)掌握字符数组和字符串的使用。
◆实验内容
(1)求一个3×3矩阵的主对角线元素之和。
(2)打印杨辉三角(打印10行)。
(3)将两个字符串连接起来,不要用strcat函数。
实验七函数
◆实验目的
(1)掌握定义函数的方法。
(2)掌握函数的嵌套调用和递归调用的方法。
◆实验内容
(1)编写并运行教材习题8.3。
(2)编写并运行教材习题8.4。
1.main()
{intnumber;
scanf(“%d”,&number);
if(prime(number))
printf(“\n%disaprimenumber.”,number);
else
printf(“\n%disnotaprimenumber.”,number);
}
intprime(intnumber)
{intflag=1,n;
for(n=2;nif(number%n==0)
flag=0;
return;
}
运行结果:
9
9isnotaprimenumber.
2.intarray[3][3];
voidconvert(intarray[3][3])
{inti,j,t;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
main()
{inti,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf(“%d”,&array[i][j]);
printf(“\nthearrayis:
\n”)
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf(“%5d”,array[i][j]);
printf(“\n”);
}
convert(array);
printf(“theconvertarrayis:
\n”);
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf(“%5d”,array[i][j]);
printf(“\n”);
}
}
运行结果:
1
2
3
4
5
6
7
8
9
thearrayis:
123
456
789
theconvertarrayis:
147
258
369
实验八编译预处理
◆实验目的
(1)掌握宏定义的方法。
(2)掌握文件包含的方法。
(3)掌握条件编译的方法。
◆实验内容
(1)定义一个带参的宏,使两个参数的值互换。
在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。
(2)输入两个整数,求它们相除的余数,用带参的宏来实现,并写出输入为80、29时的结果。
1.#defineSWAP(a,b)t=b;b=a;a=t
main()
{
inta,b,t;
printf(“pleaseinputtwonumbers:
”);
scanf(“%d,%d”,&a,&b);
SWAP(a,b);
print(“theresultis:
a=%d,b=%d\n”,a,b);}
运行结果:
pleaseinputtwonumbers:
3,4
theresultis:
a=4,b=3
2.#defineSURPLUS(a,b)((a)%(b))
main()
{inta,b;
printf(“pleaseinputtwonumbers:
”);
scanf(“%d,%d”,&a,&b);
printf(“a,b相除的余数为:
%d\n”,SURPLUS(a,b));
}
运行结果:
pleaseinputtwonumbers:
80,29
a,b相除的余数为:
22
实验九指针
◆实验目的
(1)掌握指针的概念,会定义和使用指针变量。
(2)学会使用数组的指针和指向数组的指针变量。
(3)学会使用字符串的指针和指向字符串的指针变量。
◆实验内容
(1)输入三个整数,按由小到大的顺序输出,要求用指针实现。
(2)编写并运行教材习题10.3。
1.main()
{inta,b,c;
int*pointer_1,*pointer_2,*pointer_3;
printf(“pleaseinputthreenumbers:
”);
scanf(“%d,%d,%d”,&a,&b,&c);
pointer_1=&a;
pointer_2=&b;
pointer_3=&c;
if(a>b)swap(pointer_1,pointer_2);
if(a>c)swap(pointer_1,pointer_3);
if(b>c)swap(pointer_2,pointer_3);
printf(“thesortednumbersare:
%d,%d,%d\n”,a,b,c);
}
Swap(int*p1,int*p2)
{intp;
P=*p1;*p1=*p2;*p2=p;
}
运行结果:
pleaseinputthreenumbers:
34,21,25
thesortednumbersare:
21,25,34
2.main()
{intnumber[10];
Input(number);/*调用输入10个数的函数*/
max_min_value(number);/*调用交换函数*/
output(number);/*调用输出函数*/
}
voidinput(intnumber[])
{for(i=0;i<10;i++)
scanf(“%d”,&number[i]);
}
voidmax_min_value(intarray[])
{int*max,*min;
int*p,*array_end;
array_end=array+10;
max=min=array;
for(p=array+1;pif(*p>*max)max=p;
elseif(*p<*min)min=p;
*p=array[0];array[0]=*min;*min=*p;
*p=array[9];array[9]=*max;*max=*p;
return;
}
voidoutput(intarray[])
{int*p;
printf(“10numbersafterexchanged:
”);
for(p=array;pprintf(“%d”,*p);
printf(“%d\n”,array[9]);
}
运行结果:
32,24,56,78,1,98,36,44,29,6
10numberafterexchanged:
1,24,56,78,32,6,36,44,29,98