C语言实验 程序结构和函数
- 格式:doc
- 大小:38.50 KB
- 文档页数:4
青岛科技大学信息科学技术学院C语言程序设计实验指导书目录实验1 C语言入门及选择结构 0实验1.1 Visual C++6。
0开发环境 0实验1.2 C程序快速入门 (7)实验1.3算术运算与赋值运算 (11)实验1。
4逻辑运算及if语句 (17)实验1.5 switch选择结构 (23)实验2循环结构及数组(共8学时) (27)实验2.1 循环结构(2学时) (27)循环结构程序设计补充 (32)实验2.2数组一:一维数组 (36)实验2。
3数组二:二维数组 (43)实验2.4数组三:字符数组 (45)实验3:函数与自定义数据类型 (49)实验3。
1函数一:函数的定义、调用和声明 (49)实验3。
2函数二:函数的参数传递2 (55)实验3。
3函数三:函数的嵌套和递归2 (57)实验3.4 自定义数据类型(2学时) (59)实验4:指针(共6学时) (61)实验4。
1指针一:指针的定义及运算 (61)实验4。
2指针二:指向数组的指针 (67)实验4.3指针三:用指针操作字符串2 (71)实验1 C 语言入门及选择结构实验1.1 Visual C++6.0开发环境一、实验目的1。
熟悉C 语言的系统环境,掌握在集成环境中编辑、编译、连接和运行C 语言程序的方法。
2. 掌握C 语言源程序的结构特点与书写规范. 二、实验学时数2学时三、实验步骤及任务(一) VC++6。
0集成环境(1)运行VC++6。
0a.双击桌面上的VC++6。
0快捷方式,运行VC++6。
0。
b 。
双击"C :\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV 。
EXE",运行VC++6.0. (2)认识VC++6。
0标题栏的左侧显示当前的文件名,右侧有最小化,最大化和关闭三个按钮。
菜单栏包含了开发环境中几乎所有的命令,其中一些常用的命令还被排列在工具栏中。
工具栏上的按钮提出和一些菜单命令相对应,提供了经常使用的命令的一种快捷方式。
c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
C语言程序设计实训教程C语言程序设计是计算机科学中非常重要的一门课程,也是许多计算机专业学生的必修课。
通过实训教程的方式学习C语言程序设计,可以帮助学生更好地理解和掌握该编程语言的基本概念、语法、及其在实际应用中的技巧和方法。
本文将介绍一份C语言程序设计实训教程,供初学者参考。
第一部分:C语言基础知识1.程序结构:C语言程序的基本结构,包括头文件引用、全局变量声明、函数定义等等。
2.变量和数据类型:C语言的基本数据类型,包括整型、浮点型、字符型以及数组等,以及变量的命名规则和参数传递方式。
3.运算符和表达式:C语言中的运算符种类及其优先级,包括算术运算符、关系运算符、逻辑运算符等等。
4. 控制语句:C语言中的if语句、switch语句、for循环、while 循环等等,用于控制程序的流程和执行条件。
第二部分:C语言实用技巧1.函数的定义与调用:学习如何定义函数、传递参数和返回值,并在主函数中调用函数实现特定功能。
2.数组和指针:了解C语言中数组的定义和使用,以及指针的概念和操作,包括指针的声明、初始化、指针运算等。
3.字符串处理:学习如何使用C语言中的字符串处理函数,如字符串复制、字符串连接、字符串比较等。
4.文件操作:学习如何使用C语言中的文件操作函数,对文件进行读写和管理,如打开文件、读取文件内容、写入文件等等。
第三部分:C语言实战练习为了检验学生对C语言程序设计的掌握程度,实训教程应该包含一些实战练习,并提供详细的题目和解答思路。
这些练习可以涵盖以下方面:1.基本算法:编写求解斐波那契数列、阶乘、素数判断等算法的程序。
2.数据结构:实现链表、栈、队列等数据结构,并实现相应的操作函数。
3.排序和查找:使用不同的排序算法(如冒泡排序、快速排序)对数组进行排序,实现线性和二分查找。
4.综合应用:编写一个简单的学生成绩管理系统、图书馆管理系统等。
第四部分:调试与优化技巧1.使用调试器:介绍如何使用常见的C语言调试器(如GDB)进行断点调试、变量监测等操作。
《高级语言程序设计》实验指导学院:信息科学与技术学院专业:信息管理与信息系统学期:2010~2011学年第二学期教师:目录实验1 熟悉C语言程序开发环境 (1)1.1 实验目的 (1)1.2 实验预习 (1)1.3 实验任务 (1)实验2 数据描述 (6)2.1 实验目的 (6)2.2 实验预习 (6)2.3 实验任务 (6)实验3 顺序结构程序设计 (10)3.1 实验目的 (10)3.2 实验预习 (10)3.3 实验任务 (10)实验4 选择结构程序设计 (13)4.1 实验目的 (13)4.2 实验预习 (13)4.3 实验任务 (13)实验5 循环结构程序设计 (16)5.1 实验目的 (16)5.2 实验预习 (16)5.3 实验任务 (16)实验6 函数与编译预处理 (22)6.1 实验目的 (22)6.2 实验预习 (22)6.3 实验任务 (22)实验7 数组 (28)7.1 实验目的 (28)7.2 实验预习 (28)7.3 实验任务 (28)实验8综合实验 (33)8.1 实验目的 (33)8.2 实验预习 (33)8.3 实验任务 (33)实验9 指针 (36)9.1 实验目的 (36)9.2 实验预习 (36)9.3 实验任务 (36)实验10 结构体数据类型与链表 (40)10.1 实验目的 (40)10.2 实验预习 (40)10.3 实验任务 (40)实验11 共用体数据类型 (43)11.1 实验目的 (43)11.2 实验预习 (43)11.3 实验任务 (43)实验12 文件 (45)12.1 实验目的 (45)12.2 实验预习 (45)12.3 实验任务 (45)实验13 综合实验 (48)13.1 实验目的 (48)13.2 实验预习 (48)13.3 实验任务 (48)实验1 熟悉C语言程序开发环境院(系):信息科学与技术学院课程名称:高级语言程序设计教师签名:1.1 实验目的1.了解和掌握C语言的主要特点。
c语言顺序结构实验报告篇一:实验三顺序结构程序设计实验报告实验三顺序结构程序设计实验报告一、实验目的1. 掌握掌握赋值语句的使用方法。
2. 各种类型数据的输入输出的方法,能正确使用各种格式转换符。
3. 进一步掌握编写程序和调试程序的方法。
二、实验内容(源代码)1. sy3-(1) ①#includeint main() { int a,b;//基本整型float d,e; //单精度浮点型 char c1,c2;//字符型 double f,g;//双精度浮点型long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型a=61,b=62; c1='a';c2='b';//'a''b'的"'"不能掉了d=3.56;e=-6.87; //d,e之间用";"隔开f=3157.890121;g=0.9; m=50000;n=-60000; p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a,b,c1,c2,d,e);//"""与"a"之间的","不能掉了,"\"不能写成"/" printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g}③#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开 f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a,b,c1,c2,d,e);//"""与"a"之间的","不能掉了,"\"不能写成"/"printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g④#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%d,c2=%d\nd=%d,e=%d\n",sizeof (a),sizeof(b),sizeof(c1),sizeof(c2),sizeof(d),sizeo f(e));printf("f=%d,g=%d\nm=%d,n=%d\np=%d,q=%d\n",sizeof(f ),sizeof(g),sizeof(m),sizeof(n),sizeof(p),sizeof(q) );}2. sy3-(2)#include int main() {float h,r,c,s1,s2,v1,v2; //定义float pi=3.1415926; //赋值printf("圆半径r=,圆柱高h=:");//提示scanf("%f,%f",&r,&h); //输入c=2*pi*r; //计算s1=pi*r*r;//"*"不可省略s2=4*s1;v1=4.0/3.0*s1*r; v2=s1*h;printf("圆周长:c=%6.2f\n",c); //输出 printf("圆面积:s1=%6.2f\n",s1);printf("圆球表面积:s2=%6.2f\n",s2); printf("圆球体积:v1=%6.2f\n",v1); printf("圆柱体积:v2=%6.2f\n",v2); return 0;}3. sy3-(3)#include#include //不要忘了数学函数 int main() {float p,r5,r3,r2,r1,r0,p1,p2,p3,p4,p5; //定义p=1000;//赋值printf("r5=,r3=,r2=,r1=,r0=:");//提示 scanf("%f,%f,%f,%f,%f",&r5,&r3,&r2,&r1,&r0); //输入 p1=p*r5*5; //计算}p2=p*(1+2*r2)*(1+3*r3)-p; p3=p*(1+3*r3)*(1+2*r2)-p; p4=p*pow(1+r1,5)-p; p5=p*pow(1+r0/4,20)-p;printf("方案1的利息:p1=%f\n",p1); //输出printf("方案2的利息:p2=%f\n",p2); printf("方案3的利息:p3=%f\n",p3); printf("方案4的利息:p4=%f\n",p4); printf("方案5的利息:p5=%f\n",p5); return 0;4. sy3-(4)① #include int main() {char c1='C',c2='h',c3='i',c4='n',c5='a';//定义与赋值 c1=c1+4;//计算 c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}② #include int main(){ }char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-22;//计算 c2=c2-22; c3=c3-22; c4=c4-22; c5=c5-22;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;③ #include int main(){char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-4;//计算 c2=c2-4; c3=c3-4; c4=c4-4; c5=c5-4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}篇二:C语言实验二程序、总结顺序结构与输入、输出方法实验二顺序结构与输入/输出方法1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算符的使用。
⼤⼀C语⾔上机实验实验报告《C语⾔程序设计》实验报告指导教师纪良浩学院通信与信息⼯程专业通信类班级0101022 学号2010210722 姓名曾⼩兵实验室S319实验题⽬:实验⼀:⽤选择法对10个整数进⾏由⼤到⼩的排序实验⼆:判断闰年实验三:求1到100的和实验四:求π的近似值实验要求:1.掌握⽤C语⾔解决实际问题的步骤;2.掌握C语⾔的语法规则及算法的表⽰;3.通过上机实验,加深对《计算机程序设计基础》课程中基本概念的理解;4.提⾼对计算机程序的编写和应⽤能⼒;实验内容及步骤:1.问题的提出与分析;2.建⽴计算模型;3.算法的确定与表⽰;4.编写程序代码;5.调试程序;6.整理结果(实验结果及分析)。
具体实验步骤实验⼀:实验步骤1.问题的提出与分析⽤选择法对10个整数进⾏由⼤到⼩的排序。
2.确定数学模型a>b>c>d>e>f>j>h>i>k4.程序编码#includevoid main(){void sort(int x[ ],int n);int*p,i,a[10];p=a;for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++){printf("%d",* p);p++;} }void sort(int x[],int n){int i,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(x[j]>x[k]) k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}5.调试程序Enter dataa[1]=10↙a[2]=25↙a[3]=45↙a[4]=66↙a[5]=88↙a[6]=110↙a[7]=119↙a[8]=114↙a[9]=86↙a[10]=88610 25 45 66 88 110 119 114 86 886The sorted numbers:886 119 114 110 88 86 66 45 25 10 6.整理结果通过验算结果正确。
实验3 逻辑结构程序设计一、实验目的1、了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。
2、学会正确使用逻辑运算符和逻辑表达式。
3、熟练掌握if 语句和switch 语句。
4、结合程序掌握一些简单的算法。
5、学习调试程序。
二、实验内容和步骤本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
1、改错题。
给定程序MODI1.C 的功能是:对于如下函数:用scanf 函数输入x 的值,求y 值。
/* MODI1.C */#include <stdio.h>void main(){int x, y;/***********found***********/scanf ("%d", &x);if ( x < 1 )y = x;/***********found***********/else if ( 1 <=x&& x < 10 )y = 2*x -1 ;elsey = 3*x -11; printf("y = %d\n", y ); }程序中有两处错误,错误都在提示行: /***********found***********/的下面一行。
请改正程序中的错误,使它能得出正确的结果。
注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!修改程序后,运行程序,输入x 的值(分别为x<1、1≤x<10、x ≥10三种情况,如0.5、8、15),检查输出的y 值是否正确。
⎪⎩⎪⎨⎧≥-<≤-<=)10(113)101(12)1(x x x x x xy2、从键盘输入某学生的考试成绩,要求输出成绩等级A、B、C、D、E。
学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。
要求在输入负数时,给出错误提示。
实验项目6 程序结构和函数
实验目的
1. 掌握C程序中函数的定义和调用方式。理解函数声明的概念,掌握函数声明的方法。
2. 理解函数类型、函数参数和返回值的概念以及它们之间的关系。
3. 掌握C程序中地址值参数传递和数组作函数参数传递的调用方法。
4. 掌握C程序中函数嵌套调用的方法。
5. 掌握程序中递归调用函数的特征和递归调用函数执行的过程。
实验内容
1. 程序填空
(1)下面程序的功能是:求出从键盘输入的三个数的最小公倍数。请填空完成程序。
#include
int main()
{
int max(int x,int y,int z);
int x0,x1,x2,x3,i=1,j;
printf("Input 3 numbers:");
scanf("%d,%d,%d",&x1,&x2,&x3);
x0=max ;
while(1)
{
j=x0*i;
if(j%x1==0&&j%x2==0&&j%x3==0)
break;
;
}
printf("%d,%d,%d,%d\n",x1,x2,x3,j);
return 0;
}
int max(int x,int y,int z)
{
if(x>y&&x>z)
return x;
else if( )
return y;
else
return z;
}
(2)下面程序的功能是:采用冒泡法对一维数组中的数据按升序进行排序。请填空完成程
序。
#include
int main( )
{
void sort( );
int i,arr[]={12,60,21,45,13,55,19,28,71,32};
sort( );
for(i=0;i<10;i++)
printf("%4d",arr[i]);
printf("\n");
return 0;
}
void sort(int a[],int n )
{
int i,j,temp;
for(i=0;i
for(j=0;j
temp=a[j],a[j]=a[j+1],a[j+1]=temp;
}
}
2. 程序改错
(1)下面程序的功能是:用随机数填充长度为N的整型数组,输入想查找的关键字key,
调用函数search进行查找,并根据查找结果给出相应的提示信息。程序中标有星号行存在
错误,请改正这些错误。
#include
#include
#include
#define N 20
int search(int v[],int n,int k);
int main()
{
int a[N],i,key,pos;
srand(time(NULL));
for(i=0;i
printf("请输入查找关键字key: ");
scanf("%d",&key);
pos=search(); //*****
if(pos!=-1)
printf("查找成功,找到的是元素a[%d]\n",pos);
else
printf("数组中没有被查找的关键字存在!\n");
return 0;
}
int search(int v[],n,k) //*****
{
int i;
for(i=0;i
return i;
return 0; //*****
}
(2)下面程序的功能是:找出从键盘上输入的3个实型数据中的最大值。程序中存在若干
错误,请改正这些错误。
#include
int main()
{
void maxnumber(double,double,double);
double a,b,c,r;
printf("?a,b,c:");
scanf("%lf%lf%lf",&a,&b,&c);
r=maxnumber();
printf("最大值是:%lf\n",r);
return 0;
}
void maxnumber(double a,double b,double c)
{
double max;
max=a>b?a:b;
max=c>max?c:max;
return a,b,c;
}
3. 程序设计
(1)已有C源程序文件reversenum.c,文件中存放有设计好的reversenum函数,其功能
是将一个正整数颠倒。编写程序,利用已有的reversenum.c源文件,求出所有的两位的“绝
对素数”。所谓“绝对素数”是指一个素数,当它的数字位置对换后仍然是素数。
//erversenum.c源程序文件
int reversenum(int n)
{
int revn=0;
while(n)
{
revn=revn*10+n%10;
n/=10;
}
return revn;
}
(2)已有C源程序文件makestring.c(存放makestring函数)和totalchar.c(存放
totalchar函数),两个文件中函数的代码如下所示:
#include
#include
void makestring(char v[],int n)
{
int i,d;
srand(time(NULL));
for(i=0;i
d=rand()%10;
if(d%2)
v[i]='A'+rand()%26;
else
v[i]='a'+rand()%26;
}
}
void total(char s[],int n,int upc[],int lowc[])
{
int i;
for(i=0;i
if(s[i]>='A'&&s[i]<='Z')
upc[s[i]-'A']++;
else
lowc[s[i]-'a']++;
}
}
请仔细阅读函数代码,理解函数实现的功能,并利用两个函数实现功能:随机产生大小
写混合的、长度为50的字符数组,统计其中每一个英文字母出现的次数。