C程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1 C 程序运行环境、数据类型、运算符和表达式
一、实验目的
1.掌握Turbo C集成环境的进入与退出、Turbo C集成环境各种窗口的切换,了解Turbo C集成环境的设置。
2.掌握 C 语言源程序的建立、编辑、修改、保存及编译和运行等操作。
3.学会使用C语言的基本运算符(主要是算术运算符、赋值运算符)及其表达式。
4.掌握C语言源程序的结构特点与书写规范。
二、实验要求
1.根据题目要求,进行各种程序测试与验证,并记录结果。
2.上机调试程序。
按各个程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据这些信息找到程序中的错误所在,然后修改程序,直至正确。
3.详细记录数据的输入、输出信息,按要求写出实验报告。
三、实验内容
1.开机;进入Turbo C集成工作环境,了解Turbo C集成工作环境及其菜单的使用,输入如下C语言源程序,并以ex1.C 存盘。
/*ex1 .c* /
#include <stdio.h>
main()
{
printf("Hello!\n");
printf("This is C program!\n");
}
试编译、连接、运行该程序,并按Alt+F5 查看运行结果。
运行结果是:
2.输入并调试运行以下程序,查看运行结果( 由此结果可以了解到在实验用的微型机上,几种数据类型所占的字节数)。
main()
{
printf("char\t%d bytes\n",sizeof(char));
printf("short\t%d bytes\n",sizeof(short));
printf("int\t%d bytes\n",sizeof(int));
printf("long\t%d bytes\n",sizeof(long));
printf("float\t%d bytes\n",sizeof(float));
printf("double\t%d bytes\n",sizeof(double));
}
运行结果是:
3. 输入并调试运行以下程序。
main()
{int i,j,m,n;
i=8;j=10; m=++i;n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
} 作以下改动后再运行,观察并比较运行结
果:① 将第 4 行改为:m=i++;n=++j;
② 若将程序改为:main() {int i,j;
i=8;j=10; printf("%d,%d",i++,j++);
}
4. 试分析下面程序的运行结果:
#include<stdio.h> main()
{int i=3,k;
printf("%d,%d\n",(i++)+(i++)+(i++),i);
i=3; printf("%d,%d\n",i,++i+(++i)+(++i)); i=3; k=(i++)+(i++)+(i++);
printf("%d,%d\n",k,i);
} 运行结果是:
运行结果是:
运行结果是:运行结果是:
5.编程,求365勻的商和余数的程序。
实验2最简单的C程序设计
、实验目的
1.掌握C语言中赋值表达式和赋值语句的使用。
2.正确理解、选择输入格式字符所控制的数据对象、数据输入(输出)形式和方法。
3.掌握输出函数printf() 和putchar()的用法,能正确使用各种输出格式。
4.掌握输入函数scanf()和getchar()的用法,能正确使用各种输入格式。
二、实验要求
1.根据题目要求,进行各种程序测试与验证,并记录结果。
2.4、5两题按照题目的要求编写出程序。
3.上机调试程序。
按各个程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据这些信息找到程序中的错误所在,然后修改程序,直至正确。
4.详细记录数据的输入、输出信息,按要求写出实验报告。
三、实验内容
1.输入并运行以下程序。
#in clude<stdio.h>
mai n()
{int a;
float b,c;
scan f("%2d%3f%4f",&a,&b, &c);
prin tf("\na=%d,b=%f,c=%f\n",a,b,c);
}
若运行时从键盘上输入1234567890 /
则程序运行结果是:
2.输入并运行以下程序。
#include <stdio.h>
mai n()
{int c;
chard;
c=67;d='C:
putchar(c);putchar(d); putchar('B');putchar(66);
}
程序运行结果是:
4.编程,要求从键盘输入数据,使整型变量a=10,b=8;字符型变量c1='A',c2='a';实型变量
x=3.1,y=64.54。
5.编程,求方程2的根。
0332
实验3选择结构程序设计
、实验目的
1. 掌握C 语言表示逻辑量的方法(以0代表“假”,非0代表“真”)。
2. 学会正确使用关系运算符、逻辑运算符及关系表达式、逻辑表达式。
3. 熟练掌握各种if 语句和switch 语句的语法结构和语句功能。
4. 结合程序,掌握选择结构程序设计的一般方法,能够用多种方法编写同一程序。
二、实验要求
1. 根据题目要求,进行各种程序测试与验证,并记录结果。
2. 对每个程序认真进行语法检查与逻辑检查。
3. 上机调试程序。
将各程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据 这些信息找到程序中的错误所在,然后修改程序,直至正确。
4. 详细记录数据的输入、输出信息,按要求写出实验报告。
三、实验内容
1. 输入并调试以下程序:
#in clude<stdio.h>
main ()
{int a,b;
printf("Enter an integer:");
sca nf("%d",&a);
b=1;
if(++a<0) b=-1;
else if (a==0) b=0;
prin tf("a=%d,b=%d\n",a,b); }
运行时,若从键盘上输入-1 / 则程序运行结果是:
2. 给出一个百分制成绩,要求输出成绩等级 A 、B 、C 、D 、E 。
90分以上为A , 80~89分为B , 70~79分为
C , 60~69分为
D , 60分以下为
E 。
要求:用键盘输入百分制成绩,并判断输入数据的合理性,对于不合 理的数据给出错误信息。
用 switch 语句编写该程序。
3. 编程,计算下列分段函数值:
广 2
2x —e
c 2 c y = 3x -2
5.
给出一个小于1000正整数,编程求该数是几位数,并按逆序打印出各位上的数字。
例如原数为
321,则
输出123。
思考题:
(x>0) (x<0)
(x=0)
对于第2题,若用if语句,应该如何编写程序?
实验4循环结构程序设计
一、实验目的
1. 理解循环的概念,熟悉和掌握 while 语句,do-while 语句和for 语句实现循环的方法。
2. 掌握穷举算法、迭代算法、递推算法等一些常用算法的程序设计方法。
3. 理解并掌握break 语句和continue 语句的语句功能。
4. 能正确使用这些语句进行简单程序设计。
二、实验要求
1. 根据题目要求,进行各种程序测试与验证,注意总结各题的编程思路,并记录结果。
2. 上机调试程序。
将各程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据 这些信息找到程序中的错误所在,然后修改程序,直至正确。
3. 详细记录数据的输入、输出信息,按要求写出实验报告。
、实验内容
3. 输入一行字符,编程统计并输出其中的大写英文字母和数字的个数。
4. 编程,输出100~300之间所有素数,并将它们的和打印出来。
思考题:编程,输出以下图形:
*
*****
*******
*********
*******
*****
1. 输入并调试以下程序:
(1) #include<stdio.h> main
()
{ int i=0; while(i++<3)
prin tf("%d\n",i);
}
(2) #include <stdio.h> main
()
{ int i;
for(i=1;i<5;i++)
{ if(i%2)
printf("*"); else
continue; prin
tf("%");
}
prin tf("@");
}
2. 编程,用公式 n /4 ~1
运行结果是: 运行结果是
1+ 1- +…求n 的近似值,当某项绝对值小于 3 5 7 10 £时计算结束。
一、实验目的
1.理解数组的概念,掌握一维数组和二维数组的定义、存储结构、赋值和输入输出的方法。
2.理解字符串的概念,掌握字符数组和字符串函数的使用。
3.掌握常用的与数组有关的算法,如排序、查找、求极值等。
4.能够用数组的方法,编写一些简单程序。
二、实验要求
1.根据题目要求,进行各种程序测试与验证,并记录结果。
2.按照题目的要求编写出程序,注意总结各题的编程思路。
3.上机调试程序。
将各程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据这些信息找到程序中的错误所在,然后修改程序,直至正确。
4.详细记录数据的输入、输出信息,按要求写出实验报告。
三、实验内容
1.输入并调试以下程序:
(1)#include<stdio.h>
main()
{ int a[3],i,j;
for(i=0;i<=2;i++) a[i]=0;
for(i=0;i<=2;i++)
for(j=0;j<2;j++)
a[j]=a[i]+1;
printf("%d,%d,%d\n",a[0],a[1],a[2]);
} 运行结果是:
(2)#include <stdio.h>
main()
{ int i,j,h,l,m;
static int x[3][3]={{3,7,1},{5,7,2},{4,9,1}};
m=x[0][0];h=0;l=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(x[i][j]<m)
{ m=x[i][j];h=i;l=j; }
printf( " %d,%d%d' ,m,h,l);
} 运行结果是:
2•将某班N (N为符号常量)个同学的成绩(整型)放入数组s中,编程求该班的平均成绩(实型),并统
计各分数段上的学生人数。
分数段为:100分,90~99 分,80~89 分,70~79分,60~69 分,60分以下。
3.从键盘输入10 个整数,编程将这些数按从大到小排序并输出。
4.从键盘上输入20个字符,编程统计并输出其中英文字母(不区分大小写)、数字字符(0〜9)和空格的个
数及所占的百分比。
思考题:编程,将两个字符串连接起来( 不用strcat 函数)。
一、实验目的
1.理解函数的概念,掌握C语言定义函数的方法。
2.掌握函数实参与形参的对应关系,以及数据的“传递”方式。
3.掌握函数的嵌套调用和递归调用的方法。
4.掌握全局变量和局部变量、动态变量和静态变量的概念及使用方法,能够用函数的方法编写一些简单程序。
二、实验要求
1.根据题目要求,进行各种程序测试与验证,并记录结果。
2.按照题目的要求编写出程序,注意总结各题的编程思路。
3.上机调试程序。
将各程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据这些信息找到程序中的错误所在,然后修改程序,直至正确。
4.详细记录数据的输入、输出信息,按要求写出实验报告。
三、实验内容
1.输入并调试以下程序:
(1)#include<stdio.h>
func(int a,int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=3,y=6,z;
z=func((--x,y++,x+y),y);
printf("x=%d,y=%d,z=%d\n",x,y,z);
} 运行结果是:
(2)#include <stdio.h>
main()
{ int a[]={2,4,6,8},i;
int x=0;
for (i=0;i<4;i++)
printf("%d\n",sub(a,x));
}
sub(p,x)
int *p,x;
{static int t=3;
x=p[t];t--;return(x);
} 运行结果是:
2.编写一个判断素数的函数ifp。
在主函数中调用该函数,求整型数组a[10]中有多少个素数。
3.编程求两个整数的最大公约数和最小公倍数。
要求:用一个函数(func1) 求最大公约数,用另一函数
(func2) 根据求出的最大公约数求最小公倍数。
两个整数在主函数中输入,并传送给函数func1 ,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数func2 ,求出最小公倍数,再返回到主
函数输出最大公约数和最小公倍数。
思考题:编写一递归函数fac用来求阶乘t!。
主函数调用该函数,求20!。
一、实验目的
1.通过实验,进一步理解指针的概念,会定义和使用指针变量、指针数组。
2.学会使用数组的指针和指向数组的指针变量。
3.学会使用字符串的指针和指向字符串的指针变量。
4.掌握结构体类型变量的定义和使用。
5.掌握结构体类型数组的概念和应用。
6.理解链表的概念,学会对链表进行简单操作。
7.掌握联合的概念与使用。
二、实验要求
1.根据题目要求,进行各种程序测试与验证,并记录结果。
2.按照题目的要求编写出程序,注意总结各题的编程思路。
3.上机调试程序。
将各程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据这些信息找到程序中的错误所在,然后修改程序,直至正确。
4.详细记录数据的输入、输出信息,按要求写出实验报告。
三、实验内容
1.输入并调试以下程序:
(1) #include <stdio.h>
main()
{char str[]="123456789abc",*p;
p=&str[5];
puts(p);
} 运行结果是:
(2) #include<stdio.h>
main()
{ struct date
{ int year,month,day;
}today;
printf("%d,%d\n",sizeof(struct date), sizeof(today));
} 运行结果是:
(3)main()
{ enum team{my,your=3,his, her=his+5}; printf("%3d%3d%3d%d\n",my,your,his,her);
} 运行结果是:
2.有5个学生,包括学生学号(字符型) 、姓名(字符型)和3门课成绩(整型) ,编程完成下面的要求:
(1) 计算每个学生的总成绩、平均分,并输出。
(2) 将学生成绩按总分从高到低排序并输出,输出项有学生学号、姓名、 3 门课成绩及总分。
思考题:用指针的方法编写程序,完成如下函数的功能:
int strcmp1(char*str1,char*str2) ------- 比较两个字符串strl、str2。
若str1>str2,返回正数1; str1=str2,返回0; str1<str2,返回负数-1。
、实验目的
1. 掌握宏定义的方法及宏替换的实质,注意区分宏定义与函数的不同之处。
2.掌握文件包含处理方法、条件编译的方法。
3.掌握按位运算的概念和方法,学会使用位运算符,能够通过位运算实现对某些位的操作。
二、实验要求
1. 根据题目要求,进行各种程序测试与验证,并记录结果。
2.按照题目的要求编写出程序,注意总结各题的编程思路。
3.上机调试程序。
将各程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据这些信息找到程序中的错误所在,然后修改程序,直至正确。
4.详细记录数据的输入、输出信息,按要求写出实验报告。
三、实验内容
1. 输入并调试以下程序:
(1) #include<stdio.h>
#define MIN(x,y) (x)<(y)?(x):(y)
main()
{ int i,j,k;
i=1; j=5;
k=2*MIN(i+3,j-2);
printf("%d\n",k);
} 运行结果是:
(2) #define PR(x) printf ("%3d",x)
main()
{ int j,a[ ]={1,3,4,6,8,9,10},i=5;
for(j=6;j>2;j--)
{ switch(j)
{ case 3:
case 4: PR(a[i++]);break;
case 5: PR(a[--i]);
default:i--; }
}
} 运行结果是:
(3)#include <stdio.h>
main()
{ unsigned a=0123,b,c,d;
b=a>>2;printf("b=%o\n",b);
c=(a<<3);printf("c=%o\n",c);
d=b&c;printf("d=%o\n",d);
} 运行结果是:
2. 定义一个带参数的宏,使两个参数的值互换。
在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。
说明:在程序主函数中使用宏时只能用两个实参,如SWAP(a,b),不能用三个实参。
3.编程,通过使用带参数的宏定义从 3 个数中找出最大数。
主函数完成数据输入、宏调用及数据输出。
编写的程序以ex8.C 存盘。
思考题:键盘输入两个无符号数a、b,并由a,b两数生成一个新数c,要求:将a中的低字节作为c的高
字节,将 b 的高字节作为 c 的低字节。
用八进制、十进制和十六进制三种格式输出a,b,c 的值。
壹鸽鬼言墟希蔚阮山介政敦钟椭凑敦颅台纶痰竹定昧膘峰配隆夫第雁澈粮遣擒糜劲谦楔楔蹿镍磕鄙邓振震。