文档视界 最新最全的文档下载
当前位置:文档视界 › C语言实验

C语言实验

C语言实验
C语言实验

C语言上机指导指导教师:李辉李晓丽

东北电力大学

电气工程学院

2006年3月

实验2数据类型、运算符和表达式

1.实验目的

掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。

掌握不同的类型数据之间赋值的规律。

学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

进一步熟悉C程序的编辑、编译、连接和运行的过程。

2.实验内容和步骤

(2).在此基础上增加一个语句:

printf(“%d%d\n”,c1,c2);

再运行,并分析结果。

(3).再将第2行改为:

int c1,c2;

再使之运行,并观察结果。

(4).再将第3、4行改为:

c1 = a; /* 不用单撇号*/

c2 = b;

再使之运行,分析其运行结果。

(5).再将第3、4行改为:

c1 = ”a”; /* 用双撇号*/

c2 = ”b”;

再使之运行,分析其运行结果。

(6).再将第3、4行改为:

c1 = 300; /* 用大于255的整数*/

c2 = 400;

再使之运行,分析其运行结果。

输入并运行教材第3章习题3.6给出的程序

(1).将一个负整数赋给一个无符号的变量,会得到什麽结果。画出它们在内存中的表示形式。

(2).将一个大于32765的长整数赋给整形变量,会得到什麽结果。画出它们在内存中的表示形式。

(3).将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。画出它们在内存中的表示形式。

同学们可以改变程序中各变量的值,以便比较。例如:a = 65580, b = -40000,

e = 65535,

f = 65580。

输入习题3.10

(2).将第4、5行改为:

m = i++;

n = ++j;

再运行。

printf(“%d,%d”, ++i, ++j);

(5).再将printf 语句改为:

printf(“%d,%d,%d,%d”, i, j, i++, j++);

该题的要求是:

要将”China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。因此,”China”应译为”Glmre”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5 五个变量的值分别为?C?、?h?、?i?、?n?、?a?,经过运算,使c1、c2、c3、c4、c5分别变为?G?、?l?、?m?、?r?、?e?、,并输出。

①输入事先已编好的程序,并运行该程序。分析是否符合要求。

②改变c1、c2、c3、c4、c5、的初值为:?T?、?o?、?d?、?a?、?y?,对译码规律作如下补充:?W?用?A? 代替,?X?用?B?代替,?Y?用?C?代替,?Z?用?D?代替。修

改程序并运行。

③将译码规律修改为:将字母用它前面的第4个字母代替,例如:?E?用?A? 代替,?Z?用?U?代替,?D?用?Z?代替,?C?用?Y?代替,?B?用?X?代替,?A?用?V?代替。修改程序并运行。

实验 3 最简单的C 程序设计

1.实验目的

掌握C语言中使用最多的一种语句——赋值语句的使用方法。

掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

2.实验内容和步骤

掌握各种格式转换符的正确使用方法

(3).在此基础上,修改程序的第8-13行:

a = 61;

b = 62;

c1 = ?a?; c2 = ?b?;

f = 3157.890121;

g = 0.123456789;

d = f;

e = g;

p = a = m = 50000; q = b = n = -60000;

运行程序,分析结果。

(4).改用scanf 函数输入数据而不用赋值语句,scanf 函数如下:

scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2, &d,&e,&f,&g,&m,&n,&p,&q);

输入的数据如下:

61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000↙

(说明:lf 和ld 格式符分别用于输入double 型和long 型数据)分析运行结果。

(5). 在(4) 的基础上将printf 语句改为:

printf(“a=%d, b=%d \nc1=%c, c2=%c\nd=%15.6f, e=%15.12f\n”, a, b, c1, c2, d, e);

printf(“f=%f, g=%f \nm=%d, n=%d\np=%d, q=%d\n”, f, g, m, n, p, q); 运行程序。

(6). 将p 、q 改用%o 格式符输出。

(7). 将scanf 函数中的%lf 和%ld 改为%f 和%d ,运行程序并观察分析结果。

按习题4.8要求编写程序 题目为:

设圆半径r =1.5,圆柱高h =3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输入计算结果。输出时要有文字说明,取小数点后两位数字。

编程序,用getchar 函数读入两个字符给c1、c2,然后分别用putchar 函数和printf 函数输出这两个字符。

上机运行程序,比较用printf 和putchar 函数输出字符的特点。

实验4 逻辑结构程序设计

1. 实验目的

了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。

学会正确使用逻辑运算符和逻辑表达式。

熟练掌握if 语句和switch 语句。

结合程序掌握一些简单的算法。

学习调试程序。

2. 实验内容

本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。

(1). 有一函数:

??

?

??≥-<≤-<=)10(113)

101(12)1(x x x x x x

y 用scanf 函数输入x 的值,求y 值。(习题5.5)

运行程序,输入x 的值(分别为x<1、1≤x<10、x≥10三种情况),检查输出的y 值是否正确。

(2). 给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81-89分为B ,70-79分为C ,60-69分为D ,60分以

下为E。(习题5.6)。

①事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。

②再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。

(3).给一个不多于5位的正整数,要求:①求出它是几位数;②分别

打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输

出123。(习题5.7)

应准备以下测试数据:

●要处理的数为1位正整数;

●要处理的数为2位正整数;

●要处理的数为3位正整数;

●要处理的数为4位正整数;

●要处理的数为5位正整数。

除此之外,程序还应当对不合法的输入作必要的处理。例如:

●输入负数;

输入的数超过5位(如123 456)。

(4).输入4个整数,要求按由小到大顺序输出。

得到正确结果后,修改程序使之按由大到小顺序输出。(习题5.9)

(5).计算DNA分子中A、G、C、T四种碱基的分子量。

(6).根据输入的三角形的三边判断是否能组成三角形,若可以则输出

它的面积和三角形的类型。

(7).现有十二个小球,其中一个球的重量与其它十一个的重量不相同,

但不知道是轻还是重。试用天平称三次,把这个非标准球找出来,并指

出它比标准球是轻还是重。

要求:

(1).用嵌套的选择结构编写程序;

(2).调试程序时,必须把十二个球或轻或重共24种可能性都找出来。

实验5 循环控制

1.实验目的

熟悉掌握用while语句,do-while语句和for语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。进一步学习调试程序。

2.实验内容

编程序并上机调试运行。

(1).输入两个正整数m和n,求它们的最大公约数和最小公倍数。

(习题6.1)

在运行时,输入的值m>n,观察结果是否正确。

再输入时,使m

修改程序,不论m和n为何值(包括负整数),都能得到正确结果。

(2).输入一行字符,分别统计出其中的英文字母、空格、数字和

其它字符的个数。(习题6.2)

在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其它字符的个数。

(3).用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。(习

题6.12)

在得到正确结果后,请修改程序使所设的x初值由1.5改变为100、1000、10000,再运行,观察结果,分析不同的x初值对结果有没有影响,为什么?

修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的x初始值对迭代的次数有无影响。

(4).猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,

还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多

吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早

上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。(习题6.10)在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。请修改程序,并运行,检查结果是否正确。

实验6 数组

1.实验目的

掌握一维数组和二维数组的定义、赋值和输入输出的方法;

掌握字符数组和字符串函数的使用;

掌握与数组有关的算法(特别是排序算法)。

2.实验内容

编程序并上机调试运行。

(1).用选择法对10个整数排序。10个整数用scanf函数输入。(习

题7.2)

(2).有15个数存放在一个数组中,输入一个数,要求用折半查找法

找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无

此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函

数输入。(习题7.9)

(3).将两个字符串连接起来,不要用strcat函数。

(4).找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,

在该列上最小。也可能没有鞍点。(习题7.8)

应当至少准备两组测试数据:

①二维数组有鞍点

9 80 205 40

90 -60 96 1

210 -3 101 89

②二维数组没有鞍点

9 80 205 40

90 -60 196 1

210 -3 101 89

45 54 156 7

用scanf函数从键盘输入数组各元素的值,检查结果是否正确。题目并未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。因此,从理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量太大,一般来说不需要这样做,只需准备典型的数据即可。

如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。请同学们修改程序以实现之。

实验7 函数

1.实验目的

掌握定义函数的方法;

掌握函数实参与形参的对应关系以及“值传递”的方式;

掌握函数的嵌套调用和递归调用的方法;

掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。

学习对多文件程序的编译和运行。

2.实验内容

编程序并上机调试运行。

(1).写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。(习题8.3)

本程序应当准备以下测试数据:17、34、2,1、0。分别输入数据,运行程序并检查结果是否正确。

(2).用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数.(习题8.10)

把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。

把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。

(3).用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。(习题8.17)

(4).求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。(习题8.1)

①不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输人,并传送给函数l,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。

②用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。

(5).写一函数,输入一个十六进制数,输出相应的十进制数。(习题8.16)

实验8 编译预处理

1.实验目的

掌握宏定义的方法;

掌握文件包含处理方法;

掌握条件编译的方法。

2.实验内容

编程序并上机调试运行。

(1).定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。(习题9.1)

(2).设计输出实数的格式,包括:①一行输出一个实数;②一行内输出两个实数;③一行内输出三个实数。实数用“% 6.2f”格式输出。(习题9.6)用一个文件Print-format.h包含以上用#define命令定义的格式。在自己的文件(自己命名)中用#include命令将print-format.h文件包含进来。在程序中用scanf函数读入三个实数给f1、f2、f3。然后用上面定义的三种格式分别输出:

①f1;②f1、f2;③f1、f2、f3。

(3).用条件编译方法实现以下功能:

输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如'a'变成'b'……'z'变成'a'。其他字符不变)。用#define命令来控制是否要译成密码。例如:

若#define CHANGE 1则输出密码。若#define CHANGE 0则不译成密码,按原码输出。(习题9.10)

编写程序,用条件编译方法来实现题目要求。

首先在程序中用“#define CHANGE 1”,运行程序,应得到密码。

将“#define CHANGEl”改为“#define CHANGE 0”,再运行程序,应得到原文。

实验9 指针

1.实验目的

通过实验进一步掌握指针的概念,会定义和使用指针变量;

能正确使用数组的指针和指向数组的指针变量;

能正确使用字符串的指针和指向字符串的指针变量;

能正确使用指向函数的指针变量;

了解指向指针的指针的概念及其使用方法。

2.实验内容

编程序并上机调试运行程序(都要求用指针处理)。

(1).输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。(习题l0.1、10.2)

(2).将一个3X3的矩阵转置,用一函数实现之。(习题10.9)

在主函数中用scanf函数输入以下矩阵元素:

l 3 5

7 9 11

13 15 19

将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。

(3).有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),

凡报到3的人退出圈子,问最后留下的是原来第几号的那位。(习题10.5)

(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

两个字符串s1、s2由main 函数输入,strcmp 函数的返回值也由main 函数输出。

(5). 写一个用矩形法求定积分的通用函数,分别求:

,,cos ,sin 2

11

10

???-dx e xdx xdx x

说明:sin 、cos 、exp 已在系统的数学函数库中,程序开头要用#include。(习题10.13)

(6). 用指向指针的指针的方法对n 个整数排序并输出。要求将排序单独写成一个函数。n 和各整数在主函数中输入,最后在主函数中输出。(习题10.21)

实验10 结构体和共用体

1. 实验目的

掌握结构体类型变量的定义和使用;

掌握结构体类型数组的概念和使用;

掌握链表的概念,初步学会对链表进行操作;

掌握共用体的概念与使用。

2. 实验内容

编程序,然后上机调试运行。

(1). 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。(习题11.5)

要求用input 函数输入10个学生数据;用average 函数求总平均分;用max 函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。

(2). 13个人围成一圈,从第1个人开始顺序报号1、2、3。凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。(习题11.9)本题要求用链表实现。

(3). 建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。(习题11.11)

(4). 输入和运行以下程序 union data {int i[2]; float a; long b; char c[4]; }u;

main ( )

{scanf("%d,%d",&u.i[0],&u.i[1]);

printf(i[0]=%d,i[1]=%da=%fb=%1dc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%c, u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);

}

输入两个整数10000、20000给u.i[0]和u.i[l],分析运行结果。

然后将scanf语句改为:

scanf("%ld",&u.b);

输入60000给b,分析运行结果。

实验11 位运算

1.实验目的

掌握按位运算的概念和方法,学会使用位运算符;

学会通过位运算实现对某些位的操作。

2.实验内容

编写程序,上机调试并运行。

(1).编写一程序,检查所用的计算机系统的C编译在执行右移时是按照逻辑右移的原则,还是按照算术右移的原则进行操作。如果是逻辑右移,请编一个函数实现算术右移;如果是算术右移,请编一个函数实现逻辑右移。(习题12.3)

(2).编一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原值,其余位为0)。函数调用形式为:

getbits(value,n1,n2)

value为该16位数的值,nl为欲取出的起始位,n2为欲取出的结束位。如:getbits(0101675,5,8)

表示对八进制数101675,取出其从左面起的第5位到第8位。(习题12.1) 要求把这几位数用八进制数打印出来。注意,应当将这几位数右移到最右端,然后用八进制形式输出。

(3).设计一个函数,使给出一个数的原码,能得到该数的补码。(习题12.5)

要求用八进制形式输入和输出。

实验12 文件

1.实验目的

掌握文件以及缓冲文件系统、文件指针的概念;

学会使用文件打开、关闭、读、写等文件操作函数;

学会用缓冲文件系统对文件进行简单的操作。

2.实验内容

编写程序并上机调试运行。

(1).有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。(习题13.6)

设5名学生的学号、姓名和3门课成绩如下:

99101 Wang 89,98,67.5

99103 Li 60,80,90

99106 Fun 75.5,91.5,99

99110 Ling 100,50,62.5

99113 Yuan 58,68,7l

在向文件stud写入数据后,应检查验证stud文件中的内容是否正确。

(2).将上题stud文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件stu_sort中.(习题13.7)

在向文件stu_sort写入数据后,应检查验证stu_sort文件中的内容是否正确。

(3).对上题已排序的学生成绩文件进行插入处理,插入一个学生的3门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。(习题13.8)

要插入的学生数据为:

99108 Xin 90,95,60

在向新文件stu_new写入数据后,应检查验证stu_new文件中的内容是否正确。

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

c语言实验报告 ()

丽水学院计算机实验报告

丽水学院计算机实验报告 一、实验目的 1.熟悉Visual C++和C-Free等集成环境,掌握运行一个C程序的基本步骤,包括编辑、编译、连接和运行。 2.掌握算术表达式和赋值表达式的使用。 3.掌握基本输入、输出函数的使用。 4.能够编程实现简单的数据处理。 二、实验环境 硬件:Pentium以上的计算机。 软件:Windows XP操作系统、Visual C++和C-Free等集成环境。 三、实验内容和结果 1.编程题1 在屏幕上显示一个短句“What is a computer?” 思考: (1)如何在屏幕上显示你自己的学号,姓名和班级? (2)如何在屏幕上显示数字、英文字母和汉字等信息?例如:“你在机房吗?” 编程题1源程序: #include<> void main() { printf("What is a computer?\n");

} 程序运行结果: What is a computer? 思考题(1): #include<> void main() { printf(",小王,班级\n"); } 思考题(2): #include<> void main() { printf("英文字母abcdefgABCDEFG\n"); printf("汉字:哇哈哈啊哈和\n"); } 2.编程题2 在屏幕上显示下列图形。 * * * * * * * * * *

思考:如何在屏幕上显示下列图形? A A A A 编程题2源程序: #include<> void main() { int i,j; for(j=1;j<5;j++) { for(i=5;i>j;i--) printf("*"); printf("\n"); } } 程序运行结果: * * * * * * * * * * 思考题:

c语言实验答案

c语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include void main() { printf(" X | X | X\n"); //注意转义字符\n的用法 printf("---+---+---\n "); printf(" | |\n"); printf("---+---+---\n "); printf(" 0 | 0 | 0\n"); } //1.2输出"Hello world!"语句 #include void main() { printf("Hello world!\n"); } //2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。 //注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 //多使用几组整数尝试一下,你发现了什么?//The program gets two integers,and

computes their sum,difference,produc t and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include void main() { int a,b; printf("The program gets two integers,and computes their sum,difference,produc t and quotient.\n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=% d\n",a,b,a+b); printf("%d-%d=% d\n",a,b,a-b); printf("%d*%d=% d\n",a,b,a*b); printf("%d+%d=% f\n",a,b,1.0*a/b); //做除法时要注意,除得的

C语言实验报告参考答案 原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

C语言实验

C语言上机指导指导教师:李辉李晓丽 东北电力大学 电气工程学院 2006年3月

实验2数据类型、运算符和表达式 1.实验目的 掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。 掌握不同的类型数据之间赋值的规律。 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 进一步熟悉C程序的编辑、编译、连接和运行的过程。 2.实验内容和步骤 (2).在此基础上增加一个语句: printf(“%d%d\n”,c1,c2); 再运行,并分析结果。 (3).再将第2行改为: int c1,c2; 再使之运行,并观察结果。 (4).再将第3、4行改为: c1 = a; /* 不用单撇号*/ c2 = b; 再使之运行,分析其运行结果。

(5).再将第3、4行改为: c1 = ”a”; /* 用双撇号*/ c2 = ”b”; 再使之运行,分析其运行结果。 (6).再将第3、4行改为: c1 = 300; /* 用大于255的整数*/ c2 = 400; 再使之运行,分析其运行结果。 输入并运行教材第3章习题3.6给出的程序 (1).将一个负整数赋给一个无符号的变量,会得到什麽结果。画出它们在内存中的表示形式。 (2).将一个大于32765的长整数赋给整形变量,会得到什麽结果。画出它们在内存中的表示形式。 (3).将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。画出它们在内存中的表示形式。 同学们可以改变程序中各变量的值,以便比较。例如:a = 65580, b = -40000, e = 65535, f = 65580。 输入习题3.10

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

C语言实验报告1

《程序设计基础》实验报告

{ float a, b; printf_s("please input cost price of TV:"); scanf_s("%f", &a); b = a*K; printf_s("the current price of TV:"); printf_s("%f", b); return 0; 2、 #include"stdafx、h" int main() { int a, b, c, d, e, f; printf_s("please input three figures:"); scanf_s("%d", &a); b = a / 100; c = a % 100; d = c / 10; e = c % 10; f = e * 100 + d * 10 + b; printf_s("the new three figures:"); printf_s("%d", f); return 0; } 3、 #include"stdafx、h" int main() { float a, b, c, d, e; printf_s("please input scores:\n");

scanf_s("%f%f%f", &a, &b, &c); d = a + b + c; e = (a + b + c) / 3; printf_s("the total scores:"); printf_s("%5、1f\n", d); printf_s("the average scores:"); printf_s("%4、1f\n", e); return 0; } 4、 #include"stdafx、h" int main() { float a, b; printf("please input a number:"); scanf_s("%f", &a); printf_s("the integer part is:"); printf_s("%d\n", (int)a); b = a - (int)a; printf_s("the decimal part is:"); printf_s("%2、1f", b); return 0; } 5、 #include"stdafx、h"

:C语言实验报告册-2016.3资料

学生实验报告册 (理工类) 课程名称:C语言程序设计实验专业班级: 16数字媒体技术学生学号: 1613031008 学生姓名:李翔 所属院部:计算机工程学院指导教师:吕艳林 20 16 ——20 17 学年第一学期 金陵科技学院教务处制

实验报告书写要求 实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验项目名称:初级程序设计实验学时: 6 实验地点: A107 实验日期: 2016年10月13,20,27 实验成绩: 批改教师:批改时间:

实验1 初级程序设计 一、实验目的和要求 (1)熟悉Visual C++集成环境,进行编辑、保存、编译、连接及运行,并能进行简单程序调试; (2)掌握C语言中各种运算符的使用; (3)掌握C语言中各种数据类型的区别与应用; (4)熟练掌握C语言中变量的定义、赋值和使用,表达式语句、输入/输出语句的使用; (5)掌握C语言中输入/输出函数的使用; (6)掌握C语言中控制语句的使用,含if-else、for、while、do-while语句的使用。 二、实验仪器和设备 奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。 三、实验内容与过程 1、程序调试 (1)#include main() { int s,t,p,sum; scanf(“%d%d%d”,&s,&t,&p); sum=s+t+p; printf(“sum=%d\n”,sum); } (2)#include main() { int k=3; if(k=3) printf(“***”); else printf(“###”); } (3)#include main() {int k=0; do { printf(“k=%d\n”,k); }while(k++>0); } 2、程序改错

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

C语言实验报告合集

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验一 熟悉VC++环境 二、实验目的 1. 熟悉C 程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C 程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C 程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h"int main(){int a,b,sum;a=2;b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum);return 0;} 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验二 顺序结构程序设计 二、实验目的 (1)掌握C 语言数据类型以及变量的声明。 (2)掌握C 语言的赋值运算符、赋值表达式、赋值语句。(3)掌握C 语言的整型和字符型的混合运算。(4)掌握C 语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f ,请编写程序把它转换为摄氏温度c 。已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3. 将字符串“China ”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2. 软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码:运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

c语言实验习题及答案详解

1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum);

} c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30;

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

C语言实验

实验一C上机环境初识与简单程序设计 一、实验目的 1.了解C编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 4.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法。 二、实验内容 1.编写一个C程序,输出以下信息: **************************** very good! **************************** 2. 编写一个程序,从键盘输入圆的半径r,圆柱的高h,分别计算出圆的周 长c1,圆的面积cs,圆柱的体积cv,输出结果是要求保留小数点后3位。 3.编写一个程序,输入一个4位数,分别输出这个数的个位,十位,百位和 千位, 例如:输入1234,则输出为: 1234的个位是:4,十位是:3,百位是:2,千位是:1 三、实验程序清单及结果(程序清单不要截图,拷贝到文档中,结果需要截图,再拷贝到相应的清单后面) #include int main() { printf("*************************\n"); printf("very good! \n"); printf("*************************\n"); return 0; }

2. #include int main() { float r,h; double cl,cs,cv; printf("输入半径r: "); scanf("%f",&r); printf("\n输入高度h: "); scanf("%f",&h); cl=3.14*2*r; cs=3.14*r*r; cv=cs*h; printf("圆的周长cl=%0.3lf",cl); printf("\n圆的面积cs=%0.3lf",cs); printf("\n圆柱的体积cvz=%0.3lf",cv); return 0; }

C语言实验报告参考源代码

实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m=k) /*两位数是素数时*/ {p=i%10; /*p为个位数字*/ for(q=2;q=p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

C语言软件实验报告册

广州商学院 实验报告册(软件) 信息技术与工程学院院/系商业软件工程专业一年级 2 班 课程名称:C语言程序设计 姓名:蔡东燕 学号:201506110190

广州商学院 实验报告(第 1 次) 实验名称:选择控制语句的练习实验时间: 一.实验目的 熟悉if语句、if-else语句、switch-case语句、关系运算符和逻辑运算符,以及不同类型数据的输入输出方法。 二.实验内容 身高预测实验题 每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素包括遗传、饮食习惯与锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。 设faHeight为其父身高,moHeight为其母身高,身高预测公式为:男性成人时身高=(faHeight + moHeight)×0.54cm 女性成人时身高=(faHeight×0.923 + moHeight)/2cm 此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。 编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight 为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好),利用给定公式和身高预测方法对身高进行预测。 三.源程序及主要算法说明

三. 主要问题和解决方案 问题:关系运算符时常弄乱,等于和赋值总是分不清;输入回车时程序会出错或停止运行 解决方案:多记记关系运算符,弄清getchar()函数功能,利用getchar()函数去接收回车可防止错误 四.测试数据及结果 五.心得体会与自我评价 刚开始接触觉得好难,写个编程要好长时间而且还出错,一开始觉得快要疯了。后面多去写多看书多请教别人,慢慢会了,觉得挺有趣的。 现在的我是个初学者,很多都不懂,水平低下,但我觉得认真学,通过努力一定可以学好的。

C语言实验答案

一1 #include void main() { int iNum; float fNum=134.23; printf("a=%d\tf=%.2f\n",iNum,fNum); } 一2 #include void main() { int a,b,c,sum=0; scanf("a=%d,%d%d",&a,&b,&c); sum=a+b+c; printf("a=%d,b=%d,c=%d\n",a,b,c); printf("sum=%d\n",sum); } 一3

#include void main() { char a,b; scanf("%3c%4c",&a,&b); printf("c1=%c,c2=%c\n",a+1,b-1); } 一4 #include #include void main() { float a; printf("Enter a:"); scanf("%f",&a); printf("The original data is:%f\n\n",a); printf("h=%.2f\n",a); }

一5 #include void main() { int a,b,c,s,e; printf("Please input two numbers:\n"); scanf("%d%d",&a,&b); c=a+b; s=c*c; e=s+s; printf("%d,%d,%d\n",c,s,e); } 一6 #include void main() { float a,b; printf("input a:"); scanf("%f",&a); b=5*(a-32)/9; printf("%.0f(℉)=%.2f(℃)\n",a,b);

C语言实验

一、#include int prime(int x); void main( ) { int i,n=0; for(i=2;i<5000;i++) if(prime(i)) { printf("%5d",i); n++; if(n%10==0)printf("\n"); } } int prime(int x) { int i; for(i=2;i int prime(int x); void main( ) { int i,j,f,n=0; for(i=2;i<5000;i++) if(prime(i)) { j=i; f=1; while(j!=0) { n=j%10; if(!(n==2||n==3||n==5||n==7)) {f=0;break;} j=j/10; } if(f==1) { printf("%5d",i); n++; if(n%10==0)printf("\n"); } } } int prime(int x)

{ int i; for(i=2;i int prime(int x); void main( ) { int i,n=0,j,f; for(i=2;i<5000;i++) if(prime(i)==1) { j=i/10; f=1; while(j!=0) { if( !(prime(j))) {f=0;break;} j=j/10; } if(f==1) { printf("%5d",i); n++; if(n%10==0) printf("\n"); } } } int prime(int x) { int i; if(x==1)return 0; for(i=2;i int prime(int x); void main( ) { int i,n=0,j,f; for(i=2;i<5000;i++) if(prime(i)==1)

C语言实验报告范文

实验名称:指针及其应用日期:得分:指导老师: 专业:班次:姓名:学号: 实验目的 (1)掌握变量的指针及其基本用法。 (2)掌握一维数组的指针及其基本用法。 (3)掌握指针变量作为函数的参数时,参数的传递过程及其用法。一.实验内容( 1)运行以下程序,并从中了解变量的指针和指针变量的概念。 (2)运行以下程序,观察 &a[0] 、&a[i] 和 p 的变化,然后回答以下问题: 1.程序的功能是什么? 2.在开始进入循环体之前, p 指向谁? 3.循环每增加一次, p 的值(地址)增加多少?它指向谁? 4.退出循环后, p 指向谁? 5.你是否初步掌握了通过指针变量引用数组元素的方法?( 3)先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。 ( 4)编写函数,将 n 个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成: ①输入 10 个数; ②调用此函数进行重排; ③输出重排后的结果。 二.分析与讨论 ( 1)指针的定义方法,指针和变量的关系。 定义方法: 数据类型 * 指针变量名 ; 如定义一个指向 int 型变量的指针—— int *p; 则我们可以继续写如下代码—— int a = 4; p = &a; printf("%d", *p); 在这里,我们定义了一个变量a,我们把它理解为内存空间连续的 4个字节(int 型占用 4字节),则这 4个字节的空间保存着一个数 4。&是取地址符号,即把变量a的地址(即这4个字节的首地址)赋给指针p (记住指针p的类型和变量a的类型要保持一致,否则的话,要进行类型转换)。这样子,指针p就保 存着变量a的地址。我们如果把指针p当做内存空间里面另外一个连续的 4个字节,那么这4个字节保存的数就是变量a的地址。printf("%d",*p)和 printf("%d",a)的结果是一样的。这里的*是取变量符号(与&刚好作用相反,通过变量的地址找到变量),与定义时 int *p 的*号作用不同(定义时的 *表示该变量是个指针变量,而非是取它指向的变量)。 ( 2)数组和指针的关系。 指针与数组是 C 语言中很重要的两个概念,它们之间有着密切的关系,利用这种

C语言程序设计实验-答案

-前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。 本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。为回报度娘及众网友的帮助,本文档免费下载。 */ /*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/ /*努力吧,骚年以及学妹们!*/ /*整理ed by 口玉刀一of GUET.*/ ===================== 实验一C语言程序初步 ===================== 1.---------------------------- 已知a=5,b=4,c=6,求出s并换行 #include"stdio.h" main() { int a,b,c,s; a=5;b=4;c=6; s=(a+b+c)/3; printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s); } 2.------------------------------- 输入一个数字求他的平方 #include main() { int r,s; scanf("%d",&r); s=r*r; printf("s=%d\n",s); } 3.-------------------------------- (1) #include main() { printf(" *\n"); printf("***\n"); printf(" *\n"); } (2) #include

{ int v; int a,b,c; //a,b,c aer sides,v is volume of cube a=3;b=3;c=5; v=a*b*c; printf("v=%d\n",v); } ================================= 实验二数据类型、运算符和表达式 ================================= 1. (1)-------------------------------------------------- //总觉得打印结果怪怪的,DO YOU THINK SO? main() { char s1='3',s2='4',s3='5'; int c1=101,c2=102; printf("3%c\t4%c\t5%c\n",s1,s2,s3); //3%c为输出3和%c printf("s1=%d\ts2=%d\ts3=%d\n",s1,s2,s3);//注意哦,s1,s2,s3是char!而%d:输入输出为整形%ld 长整型%hd 短整型%hu无符号整形%u %lu%s:输入输出为字符串%c字符%f:输入输出为浮点型%lf双精度浮点型printf("c1=%d\t~%c\n",c1,c1); //换码符'\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置 printf("c2=%d\t~%c\n",c2,c2); //注意c1,c2的类型 } (2) //运行结果为8.300000 %是求余数先运算x-y,把结果转换为int型的有利于四则运算 main() { float x=8.3,y=4.2,s; int a=7; s=x+a%5*(int)(x-y)%2/3; printf("s=%f",s); }

相关文档