c语言实验报告 (2)
c语言实验报告
c语言实验报告
(经典版)
编制人:__________________
审核人:__________________
审批人:__________________
编制单位:__________________
编制时间:____年____月____日
序言
下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!
并且,本店铺为大家提供各种类型的经典范文,如工作计划、总结报告、策划方案、规章制度、合同协议、条据文书、演讲致辞、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!
Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!
Moreover, our store provides various types of classic sample essays for everyone, such as work plans, summary reports, planning plans, rules and regulations, contract agreements, documents, speeches, teaching materials, complete essays, and other sample essays. If you want to learn about different sample formats and writing methods, please pay attention!
C语言实验二报告
北京电子科技学院(BESTI)实验报告
课程:程序设计基础班级:
姓
名:
学
号:
成绩:指导教师:张晓昆实验日期:
实验密级:预习程度:实验时间:15:30~18:30
仪器组次:必修/选
修:
必修实验序号: 2
实验名称:函数编程练习
实验目的与要求:
主函数通常只处理输入和输出;掌握定义函数的方法;掌握函数实参与形参的对应关系,以及“值传递”的方式;掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法,、了解函数的嵌套调用方法和递归调用方法。
观察堆栈窗口call stack,注意函数调用过程堆栈的动态变化。
有兴趣的同学可以将几个函数分别放到不同的.C文件中,分别编译,再利用Project建立工程文件,然后连接执行,观察结果。
实验内容
素数(Prime Number),又称为质数,它是不能被1和它本身以外的其他整数整除的正整数。按照这个定义,负数、0和1都不是素数,而17之所以是素数,是因为除了1和17以外,它不能被2~16之间的任何整数整除。
任务1:试商法是最简单的判断素数的方法。用i=2~m-1之间的整数去试商,若存在某个m能被1与m本身以外的整数i整除(即余数为0),则m不是素数,若上述范围内的所有整数都不能整除m,则m是素数。采用试商法,分别用goto语句、break语句和采用设置标志变量并加强循环测试等三种方法编写素数判断函数IsPrime(),从键盘任意输入一个整数m,判断m是否为素数,如果m是素数,则按"%d is a prime number\n"格式打印该数是素数,否则按"%d is not a prime number\n"格式打印该数不是素数。然后分析哪一种方法可读性更好。
C语言实验报告
C语言实验报告
C语言实验报告1
一周的C语言实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!
一、心得与感想
首先,在实训中的第一步是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们本学期学习的重点知识。在做题的过程中让我们把这些知识复习了一遍,强化了知识!
其次,这次作中所碰到的题目,在实训中已经接触过,所我们都比较深知这些题目的要求和算法,因次在编写小程序时比较快,而且算法也是比较简化,运算准确。鉴次我明白很多编程题要经过多次编写修改与调试,才会得到最简略的算法。
再次,平时我们学C语言视乎都是为了考试或者做一些比较常规的题目,而这次实训却给我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!
虽然我这次是编写一个菜单的程序,但是如果我么留心的话,我们身边有许多电子设备都是内置有程序的,我们也可以在此次专题实训过后,自行确定其他的专题进行编写程序,这样可以让我们的知识更加深化丰富!
这次实训似乎是对我巨大的考验,程序在不慌不忙的进行着,按照我自身的进度,提前完成是没有问题的,但是很多客观条件让我不得不在最后的时间里才
上交的作业。每当我把程序写完以后,却由于每一台电脑的识别格式不一样而导致我所写的文件一次次的被损坏,尽管这样,我仍然没有放弃,最后还赶在截止时间到来之前上交了我的作业!
这一次编写大作业的程序又让我感受到学程序可以锻炼缜密的思维了。因为平时练习的都是小程序,所以句段比较少,一些错误都很容易被检查出来,但是这次实训却是上百段的语句,难以检查,似乎也没有经验去怎么检查,那一刹那感觉到很急,但又不知如何是好,可是又不轻易的向老师询问,因为好像蛮简单,相信自己能够检查出来,所以我一般都是独立思考的完成的,只有少部分是在老师和与同学讨论下完成的。
计算机C语言实验报告含答案
高级语言程序设计(C语言)实验报告。………………………………………………………………………………………………
一、实验题目:语句与顺序结构控制
程序设计
1)编写程序,已知圆半径radius=1.25,求圆周长和面积。
源代码:运行结果:
#include <stdio.h> d=7.853981
#define PI 3.1415926 s=4.908735
void main()
{
float r=1.25,d,s;
d=2.0*PI*r;
s=PI*r*r;
printf("d=%f\n",d);
printf("s=%f\n",s);
}
2)编写程序完成大写字母的小写转换。
源代码:运行结果:
#include <stdio.h> 请输入一个大写字母:H void main() H h
{
char ch1,ch2;
printf("请输入一个大写字母:");
ch1=getchar();
ch2=ch1+32;
printf("%c %c\n",ch1,ch2);
}
3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。
源代码:运行结果:
#include <stdio.h> 请输入一个整数 :123 void main() b=1,s=2,g=3
{
int a,g,s,b;
printf("请输入一个整数:");
scanf("%d",&a);
b=a/100;
s=(a%100)/10;
g=a%10;
printf("b=%d,s=%d,g=%d\n",b,s,g);
c语言实验报告 (2)
C语言实验报告
说明
1,所有程序均用VC6。0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。
2,为了使截图清晰,手动将运行窗口由“黑底白字"改为了“白底黑字”.
实验2 数据类型、运算符和表达式
一、实验目的:
(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。
(2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。
(3)掌握C语言的输入和输出函数的使用
(4)进一步熟悉C程序的编辑、编译、连接和运行的过程.
三、程序调试与问题解决:
(1)输人并运行下面的程序
#include<stdio.h>
void main()
{
char c1,c2;
c1='a’;
c2=’b';
printf(”%c %c\n”,c1,c2);
}
错误!运行此程序.
错误!在上面printf语句的下面再增加一个printf语句。printf(”%d%d\n",c1,c2);
再运行,并分析结果。
输出结果如图,编译成功,无错误.
错误!将第3行改为
int c1,c2;
再运行,并分析结果。
错误!再将第4、5行改为
c1=a;
c2=b;
再运行,并分析结果。
a,b没有定义,编译报错。
错误!再将第4、5行改为
c1=‘’a‘’;
c2=‘’b‘’;
再运行,并分析结果。
○6再将第4、5行改为
c1=300;
c2=400;
再运行,并分析结果.
以字符型输出时,输出的将是300,400对应的字符.
(2)输人并运行教材第3章习题3. 6给出的程序
《c语言程序设计》实验报告(实验-2)
《c语⾔程序设计》实验报告(实验-2)《C语⾔程序设计》
实验报告
2013~2014学年第⼆学期
班级
姓名
学号
指导教师
实验⼀
实验项⽬名称:C程序的运⾏环境和运⾏C程序的⽅法
所使⽤的⼯具软件及环境:Visual C++ 6.0
⼀、实验⽬的:
1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运⾏⼀个C程序;
2.通过运⾏简单的C程序,初步了解C源程序的特点。
⼆、预习内容:
教材《C语⾔程序设计教程》第1章。
三、实验内容:
1. 在Visual C++ 6.0环境下输⼊并运⾏下⾯的程序:
#include
int main( )
{
printf("This is a C program.\n");
return 0;
}
2. 在Visual C++ 6.0环境下输⼊下⾯的程序(有语法错误),编译、连接、调
试该程序,直⾄程序⽆语法错误,然后运⾏程序,并观察分析运⾏结果。
#include
int main( )
{
int a,b,sum
a=3;
b=4;
sun=a+b;
print(“%d+%d=%d\n”,a,b,sum);
return 0;
}
四、实验结果:
1. 运⾏结果(或截图):
This is a C program.
Press any key to continue
2. (1) 改正后的源程序:
#include
int main( )
{
int a,b,sum;
a=3;
b=4;
sum=a+b;
printf("%d+%d=%d\n",a,b,sum);
return 0;
}
(2) 运⾏结果(或截图):
3+4=7
C语言实验报告函数
实验名:函数的定义及调用
一、实验目的
1、掌握C语言函数定义及调用的规则。
2、理解参数传递的过程。
二、实验内容
(一))题目1
1、题目内容描述
1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。
main()
{
int,y;
printf(“%d\n”,sum(x+y));
int sum(a,b)
{
int a,b;
return(a+b);
}
}
2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。
三、分析讨论
1、针对以上实验内容写出相应的参数传递过程并分析结果。
2、讨论参数的传递的几种形式。
2、输入和输出信息描述及数据类型确定;
、输入数据
(1)
序号输入数据描述数据类型
1 x,y int
2 a,b int
(2)输出数据
序号输出数据描述数据类型
1 x+y int
3、程序源代码(填写程序调试正确后的代码)
#include <stdio.h>
int main()
{
int sum(int a,int b); //对被调用函数sum 的声明
int x,y,z;
scanf("%d,%d",&x,&y);
z=sum(x,y); //调用sum 函数,将其值赋给z
printf("%d\n",z); //输出函数结果z
return 0;//返回值为0
}
int sum(int a,int b) //定义sum函数
{
return(a+b); //将a+b的值作为返回值返回到调用sum的位置}
4、程序调试
错误序号错误信息(列出出错语句以及出错
提示)
C语言_实验二、选择结构程序设计
实验二 选择结构程序设计
一、实验目的
1. 掌握关系表达式和逻辑表达式的使用。
2. 熟悉选择结构程序设计。
3. 熟练使用if 语句进行程序设计。
4. 使用switch 语句实现多分支选择结构。
二、实验内容
(1 计算a+|b| 2 判断一个整数是否可以被3和5整除)
1.[目的]掌握判断一个字符型数据是否数字字符的方法,以及数字字符转换为相应整数的方法。
[题目内容]从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。
[输入]一个字符型数据
[输出]整数或出错信息
[提示] 根据字符型数据的ASCII 码值是否在‘0’字符与‘9’字符之间进行判断。使用if …else …语句和复合语句。
2.[目的]掌握条件表达式的使用
[题目内容] 编写一个程序,其功能为:从键盘输入三个数x 、y 、z ,判断x+y=z 是否成立,若成立输出‚x+y=z ‛的信息,否则输出‚x+y!=z ‛的信息。
[输入] 三个数x 、y 、z
[输出] ‚x+y=z ‛或‚x+y!=z ‛
[提示] 条件判断表达式x+y==z
3.[目的]掌握求最大值最小值的方法。
[题目内容] 编写一个程序,其功能为:输入三个整数,输出最大数和最小数。
[输入] 三个整数
[输出] 最大值和最小值
[提示] 设置最大值变量max 和最小值变量min ;首先比较a,b 的大小,并把大数存入max , 小数存入min ;然后最大值变量max 和最小值变量min 再与c 比较,若c 大于max ,则max 取值c ,否则保持不变;如果c 小于min ,则min 取值c ,否则保持不变。最后输出max 和min 的值。使用if …else …语句、if 语句以及复合语句。
C实验报告答案
C程序设计初步
一、实验目的
(1) 熟悉C语言程序的运行环境(VC++ 。
(2) 掌握C语言程序的上机步骤,了解运行C程序的方法。
(3) 掌握C语言程序的书写格式和C语言程序的结构。
二、实验内容(均要求给出运行结果)
1.程序改错题
(1) 以下程序实现计算x×y的值并将结果输出。请改正程序中的错误。
#include ""
void main()
/**********FOUND**********/
{ int x=y=4;
z=x*y;
/**********FOUND**********/
printf("z=%d/n", Z);
}
答案:
=======(答案1)=======
int x=,4,y=4,z;
=======(答案2)=======
printf("z=%d\n", z);
(2) 以下程序实现输入圆的半径,求圆的周长。请改正程序中的错误。
#include ""
void main()
{ int r;
float l;
printf("Enter r:");
scanf("%d", &r);
/**********FOUND**********/
l=2πr
/**********FOUND**********/
printf("l=%d\n",l);
}
答案:
=======(答案1)=======
l=2**r;
=======(答案2)=======
printf("l=%f\n", l);
2.程序填空题
(1) 下面程序能对两个整型变量的值进行交换,请填空。
#include ""
void main()
{ int a=3,b=4,t;
C语言程序设计II实验指导书
第二部分实验内容
实验一:数组定义、初始化和引用运算
一、实验目的
1、掌握一维数组的定义和引用
2、掌握一维数组的初始化方法
3、了解与一维数组有关的应用编程方法
二、实验意义
在解决实际问题或实现某些算法时,数组是经常使用的构造数据类型,掌握数组的定义,元素引用特征和数组的编程特色,可加强学生解决实际问题的能力,同时可接触到更多的经典算法,这些算法很多都是通过数组类型存储数据并实现的,有了这些基础后,学生可以在今后的编程中应用这些知识。数组的实验能让学生进一步的提高程序设计编程和调试的能力,对于数组元素引用及循环控制的特点,也可以在实验中得以加深理解和巩固知识。
三、实验重点
1 一维数组的定义、元素的引用。
2 一维数组编程的循环控制特色。
3 排序等相关算法的实现。
四、实验难点
一维数组编程的循环控制特色,程序调试时的数组越界问题
排序算法的理解和记忆
五、实验方式
提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。
六、实验内容
1. 运行下面的程序。根据运行结果,可以说明什么?
main( )
{
int i,x[5]={1,2,3,4,5};
for (i=0;i<=5;i++)
printf("%4d",x[i]);
}
2、编程:输入一个长度为10的一维数组,然后将其向右循环移动一位后输
出。
如:输入的一维数组啊[10]为:0 1 2 3 4 5 6 7 8 9 10
则向右循环移动一位后,数组a[10]变为:10 0 1 2 3 4 5 6 7 8 9
C语言实验报告,实验一和实验二
实验一C语言的运行环境、运行过程和表达式的使用
一、目的与要求
1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。
2、了解在该系统上如何编辑、编译、连接和运行一个C程序。
3、通过运行简单的C程序,初步了解C源程序的特点。
4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
5、学会使用C的有关算术运算符,以及包含这些运算符的表达式
二、上机实验及运行结果
1、例题实验及运行结果
例一:
#include"stdio.h"
void main()
{
printf("Hello,World!\n");
printf("Wolcome to the C language world!\n");
printf("Everyone has been waiting for.\n");
}
运行结果为
Hello, world !
Welcome to the C language world!
Everyone has been waiting for.
在第一次输入源程序时,由于粗心在printf(“Hello,world!”)后面忘记输入“;”,在编译中检查出来,修改后编译成功。
例二:
#include"stdio.h"
void main()
{
int a,b,sum;
a=123;b=456;
sum=a+b;
printf("sum is %d\n",sum);
}
运行结果为:sum is 579。一次编译就成功了。
c语言实验报告_实验10,函数(2)(共9篇)
c语言实验报告_实验10,函数(2)(共9篇) c语言实验报告实验10
实验9 指针
1、实验目的、要求:
(1)掌握指针的概念,会定义和使用指针变量。
(2)能正确使用字符串的指针和指向字符串的指针变量。(3)正确使用数组的指针和指向数组的指针变量。
(4)正确使用字符串的指针和指向字符串的指针变量。(5)正确使用指向函数的指针变量;了解指向指针的指针的概念及其使用方法。
2、实验内容
(1)、输入程序并运行,观察实验结果并分析。
#include stdio.h
int main()
{int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf(%4d,%4d,%4d\n,a,b,c);
return(0);}
sub(int x,int y,int *z)
{*z=y-x;}
实验分析:
在该程序中,函数sub中含有三个参数,即整形变量x,y,和指针变量z,z所指向的数值为y与x的差;
第一次输入10和5,得到差为-5,此时指针变量z的值为a的地址,z指向a的值,即-5;第二次输入7和a,a的值为-5,故此时可得b的值为-12,z存储的值为b的地址值;第三次输入a 和b,a,b的值分别为-5和-12,得到差为-7,此时同理可得,c 的值为-7;故最后输出的a,b,c的值分别为-5,-12,-7;
运行该程序,没有错误,显示结果与预期相同,故程序正确。在此程序中,要时刻注意函数中形参与定义函数时的形参的一致性,并注意函数中参数值和变量类型的不断变化。
C语言数组实验报告
实验名:数组
一、实验目的
1、掌握数组定义的规则。
2、掌握C语言数组的基本用法。
二、实验内容
) 题目1
1、编写程序,测试下列数组的定义方式是否正确
(1) main()
{
int n;
scanf(“%d”,&n);
int a[n];
……
}
(2) main()
{
const int n=10;
int a[n];
}
(3) #include
#define M 10
main()
{
int a[M];
}
(4) main()
{
int a[2+2*4];
}
(5) #include
#define M 2
#define N 8
main()
{ int a[M+N];
}
通过这一实验,可以说明什么问题
2、输入和输出信息描述及数据类型确定;
、输入数据
序号输入数据描述数据类型
(1)n,a[n] int
(2)n
a[n] cons tint int
(3)a[M]或a[10] int (4)a[2+2*4] int (5)a[M+N] int 3、程序调试
错误序号错误信息(列出出错语句以及出
错提示)
是否
解决
解决方法
(1-1)main.c|5|error: expected
expression before '%' token|
scanf(“%d”,&n);是将%d两边的符号改为西文字符的引号scanf("%d",&n);
(1-2)main.c|6|warning: unused
variable 'a'
[-Wunused-variable]|
int a[n];
是将前面的n的输入去掉,把n改为具体数字
(5) main.c|6|warning: unused
C语言程序设计实验报告(二)
要求变量 x、y 是 float 型。 原程序图
运行结果图
4. 调试下列程序,使之能正确输出 3 个整数之和及 3 个整数之积。 main( ) {
int a,b,c; printf("Please enter 3 numbers:"); scanf("%d,%d,%d",&a,&b,&c); ab=a+b; ac=a*c; printf("a+b+c=%d\n",a+b+c); printf("a*b*c=%d\n",a+c*b); }
2
输入:40,50,60↙
5.运行下述程序,分析输出结果。 main( ) {
int a=10; long int b=10; float x=10.0; double y=10.0; printf("a=%d, b=%ld,x=%f, y= %lf\n",a,b,x,y); printf("a=%ld,b=%d, x=%lf,y=%f\n",a,b,x,y); printf("x=%f, x=%e, x=%g\n",x,x,x); } 从此题的输出结果认识各种数据类型在内存的存储方式。
C语言程序设计 实验报告
C 语言程序设计 实验报告
专业 班级 日期 11月26日 成绩 实验组别 第 2 次实验 指导教师 李开 学生姓名 学号 同组人姓名 实验名称 流程控制实验
一、实验目的
(1)熟悉和掌握函数的定义、声明;函数调用与参数传递方法;以及函数返回值类型的定义和返回值使用。
(2)熟悉和掌握不同存储类型变量的使用。
(3)熟悉多文件编译技术。
二、实验任务
实验内容及要求
1.源程序改错
下面是计算s=1!+2!+3!+…+n!的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。
#include<>
void main(void)
{
int k;
for(k=1;k<6;k++)
printf("k=%d\tthe sum is %ld\n",k,sum_fac(k));
}
long sum_fac(int n)
{
long s=0;
int i;
long fac;
for(i=1;i<=n;i++)
fac*=i;
s+=fac;
return s;
}
2.源程序修改替换
(1)修改第1题中sum_fac 函数,使其计算量最小。
(2)修改第1题中sum_fac 函数,计算
!1!31!211n s ++++=Λ。
3.跟踪调试
计算fabonacci 数列前n 项和的程序如下:
其中,long sum=0,*p=∑声明p 为长整型指针并用&sum 取出sum 的地址对p 初始化。*p 表示引用p 所指的变量(*p 即sum )。
void main(void)
{
int i,k;
C语言实验报告-实验2 顺序结构程序设计
实验2 顺序结构程序设计
一、实验目的
1. 学会使用自然语言或伪代码描述算法
2. 掌握变量、运算符、表达式的使用
3. 熟悉顺序结构程序中语句的执行过程
4. 掌握标准输入流对象cin及标准输出流对象
二、实验内容
编写程序在屏幕上显示如图2-1所示的菜单。
图2-1 学生选课管理系统主界面
实验步骤:
范例:
1)在VS2008中新建项目,在项目中新建C++源文件,输入下面程序,并且编译、连接。
//***************************************************************
//* 程序名:实训2_1.cp *
//* 主要功能: *
//* 显示主菜单,并获取用户输入的模块编号 *
//***************************************************************
#include // 包含输入输出接口文件
using namespace std; // 引用标准命名空间
void mainMenu();
int main() // 定义主函数
{ // 主函数开始
mainMenu();
return 0;
}
void mainMenu()
{
system("cls");
cout<<"\n\n\n\n\n";
cout<<"\t\t|---------------学生选课系统(学生版)------------|\n";
cout<<"\t\t|\t 0. 退出 |\n";
cout<<"\t\t|\t 1. 学生信息管理 |\n";
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
形式。 ③将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于 65535 以及小于 65535 的情况)。画出它们在内存中的表示形式。 ○1 得到的是原来正数取存的数 ○2 将一个大于 32767 的长整数斌给整型变 t,造成溢出,数据丢失。 ○3 可能会溢出,也可能正常。 (4)输人习题 3.?10 ?#include<stdio.h> ?void?main()? {? int?i,j,m,n;? i=8;? j=10;? m=++i;? n=j++;? printf("%d,%d,%d,%d\n",i,j,m,n);?} ①运行程序,注意 i,j,m,n 各变量的值。分别作以下改动并运行:? ②将第 6,7 行改为:? m=i++;?n=++j;? 再运行。 ③将程序改为:? #include<stdio.h>? void?main() ?{? int?i,j;
C 语言实验报告
说明
1,所有程序均用 VC6.0 编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不 是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。
实验 2 数据类型、运算符和表达式
一、实验目的:?
(1)掌握 C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值 的方法。? (2)学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和 自减(――)运算符பைடு நூலகம்使用。? (3)掌握 C 语言的输入和输出函数的使用? (4)进一步熟悉 C 程序的编辑、编译、连接和运行的过程。
出的最大公约数求最小公倍数。分别用下面的两种方法编程。? (1)不用全局变量,在主函数中输入两个数和输出结果。? (2)用全部变量的方法,数据的传递通过全部变量的方法。 5.写一个函数,输入一个十六进制数,输出相应的十进制数。
三、程序调试与问题解决:
1.写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。本程序应当准备 以下测试数据:17、34、2、1、0。分别运行并检查结果是否正确。 该例编译时出现错误,原因是误将 sushu(a)==1 写为 sushu(a)=1。 改正后编译无误。 2.用一个函数来实现将一行字符串中最长的单词输出。此行字符从主函数传递给该函数。 子函数中第二个 while 考虑到了多种标点符号的情况,但是该程序可能存在的问题是,如 果有两个单词的长度是相同的? 3.用递归法将一个整数 n 转换成字符串。例如输入 483.应输出字符串“483”。n 的位 数不确定,可以是任意的整数。 4.求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数用另一个函数根据求 出的最大公约数求最小公倍数。分别用下面的两种方法编程。?(1)不用全局变量,在主 函数中输入两个数和输出结果。?(2)用全部变量的方法,数据的传递通过全部变量的方 法。
使用了两个子函数,我认为应该还有更简单的算法?!
5.写一个函数,输入一个十六进制数,输出相应的十进制数。 程序运行时出现错误,后检查发现在 scanf 格式字符串的双引号是中文符号,改成英文双引 号后成功。
实验 9 指针
一、实验目的?:
○1 ?通过实验进一步掌握指针的概念,会定义和使用指针变量;?? ○2 能正确使用数组的指针和指向数组的指针变量;?? ○3 能正确使用字符串的指针和指向字符串的指针变量;??
?i=8;? j=10;? printf("%d,%d\n",i++,j++);? } ④在③的基础上,将 printf 语句改为: ?printf("%d,%d,%d,%d\n",i,j,++i,++j);? ⑤再将 printf 语句改为:? printf("%d,%d,%d,%d\n",i,j,i++,j++);? ⑥将程序改为:? #include<stdio.h>? void?main() ?{? int?i,j,m=0,n=0;? i=8;?j=10;? m+=i++;? n-=--j;? printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);?} ②将第 6,7 行改为:? m=i++;?n=++j;? 再运行。 以上程序结果的不同均是由于自增自减运算符引起的,考虑到一个判断技巧,看自增自减 运算符时,先将它们从原程序中拿出来,如果++或—在后,就先把值放回去,然后自增自减, 如果在前,先自增自减,再把结果放进去。 ?printf("%d,%d,%d,%d\n",i,j,++i,++j);? #include<stdio.h>? void?main()
三、程序调试与问题解决:
1.输入两个正整数,求其中最大公约数和最小公倍数。 编译无错误,运行如上图所示,使用了最简单的算法,清晰易理解,同时注意了编程
的格式,在以往编程序时,往往不注意上下对齐等问题,容易出现缺标点等现象,将大括 号一级一级对齐后,可以有效地避免出错。
发现一个技巧,打括号时一次打出一对括号,可以减少括号不配对的错误。 2. 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 编译无误,测试正确,写该程序时特意加了注释,以便阅读。 3.用牛顿迭代法求方程 2X3- 4X2+ 3X- 6=0 在 1.5 附近的根。 该程序缺少#include<stdio.h>;是截图原因,原程序中是存在的。 最开始不知道 fabs 函数的用法,通过百度查询。 4. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了一 个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一 天剩下的一半零一个。到第 10 天早上想再吃时,见只剩一个桃子了。求第一天共摘了 多少桃子。
printf("%d?%d\n",c1,c2);? 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3 将第 3 行改为 int?c1,c2;? 再运行,并分析结果。 ○4 再将第 4、5 行改为 c1=a;? c2=b;? 再运行,并分析结果。 a,b 没有定义,编译报错。 ○5 再将第 4、5 行改为 c1=‘’a‘’;? c2=‘’b‘’;? 再运行,并分析结果。 ○6 再将第 4、5 行改为 c1=300;? c2=400;? 再运行,并分析结果。 以字符型输出时,输出的将是 300,400 对应的字符。 (2)输人并运行教材第 3 章习题 3.?6 给出的程序 ?#include<stdio.h> ?main?()? {? char?c1='a',c2='b',c3='c',c4='\101',c5='\116';?
○4 能正确使用指向函数的指针变量;? ○5 了解指向指针的指针的概念及其使用方法。
二、?实验内容:
(1).???输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小 到大顺序输出。 (2).???将一个 3X3 的矩阵转置,用一函数实现之。 ?l????3?????5????? 7????9????11???? 13??15????19 将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输 出已转置的矩阵。 (3).有 n 个人围成一圈,顺序排号。从第 1 个人开始报数(从 1 到 3 报数),凡报到 3 的人退 出圈子,问最后留下的是原来第几号的那位。 (4).???用一个函数实现两个字符串的比较,即自己写一个 strcmp 函数,函数原型为: int?strcmp?(char?*?p1,?char?*?p2);? 设 p1 指向字符串 s1,p2 指向字符串 s2,要求当 s1=s2 时,函数返回值为?0,??如果 sl≠ s2,则返回它们二者第一个不相同字符的 ASCII 码差值(如“BOY”与“BAD”的第二个字母 不相同,“O”与“A”之差为 79—65=14);如果 sl>s2,则输出正值;如果 sl<s2 则输出负值。 两个字符串 s1、s2 由 main 函数输入,strcmp 函数的返回值也由 main 函数输出。 (5).用指向指针的指针的方法对 n 个整数排序并输出。要求将排序单独写成一个函数。n 和 各整数在主函数中输入,最后在主函数中输出。
三、程序调试与问题解决:
(1).???输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小 到大顺序输出。 (2).???将一个 3X3 的矩阵转置,用一函数实现之。 ?l????3?????5????? 7????9????11????
三、程序调试与问题解决:
(1)输人并运行下面的程序 ?#include<stdio.h>? void?main() ?{? char?c1,c2;? c1='a';? c2='b';? printf("%c??%c\n",c1,c2);? } ○1 运行此程序。 ○2 在上面 printf 语句的下面再增加一个 printf 语句。
实验 7 函数
一、实验目的:
(1)?掌握定义函数的方法。? (2)?掌握函数实参与形参的对应关系及值传递的方式。? (3)?掌握函数的嵌套调用和递归调用的方法。? (4)?掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。? (5)?学习对多文件程序的编译和运行。
二、实验内容:
1.写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。本程序应当准备 以下测试数据:17、34、2、1、0。分别运行并检查结果是否正确。 2.用一个函数来实现将一行字符串中最长的单词输出。此行字符从主函数传递给该函数。 (1)把两个函数放在同一个程序文件中。? (2)将两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。 3.用递归法将一个整数 n 转换成字符串。例如输入 483.应输出字符串“483”。n 的位 数不确定,可以是任意的整数。 4.求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数用另一个函数根据求
printf("a%c?b%c\tc%c\tabc\n",c1,c2,c3); ?printf("\t\b%c?%c\n",c4,c5);? } #include<stdio.h> ?void?main() ?{?? int?a,b;?? unsigned?c,d;? long?e,f; a=100;?? b=-100;?? e=50000;?? f=32767;?? c=a;?? d=b;?? printf("%d,%d\n",a,b);?? printf("%u,%u\n",a,b);?? printf("%u,%u\n",c,d);?? c=a=e;??d=b=f;?? printf("%d,%d\n",a,b);?? printf("%u,%u\n",c,d); ?} 请对照程序和运行结果分析:? ①将一个负整数斌给一个无符号的变 t,会得到什么结果。画出它们在内存中的表?示形式。 ②将一个大于 32767 的长整数斌给整型变 t,会得到什么结果。画出它们在内存中?的表示
二、实验内容:
1.输入两个正整数,求其中最大公约数和最小公倍数。 2. 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 3.用牛顿迭代法求方程 2X3- 4X2+ 3X- 6=0 在 1.5 附近的根。 4. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了一 个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一 天剩下的一半零一个。到第 10 天早上想再吃时,见只剩一个桃子了。求第一天共摘了 多少桃子。
?{? int?i,j,m=0,n=0;? i=8;?j=10;? m+=i++;? n-=--j;? printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);?}
实验 5 循环控制
一、实验目的:?
(1)熟练掌握 for?语句、while?语句、do-while?语句实现循环的方法;? (2)理解循环嵌套及其使用方法;? (3)掌握 break?语句与 continue?语句的使用;? (4)掌握用循环实现一些常用算法(如穷举、迭代、递推等)。