C上机实验指导(实验一~实验六)

C上机实验指导(实验一~实验六)
C上机实验指导(实验一~实验六)

C语言程序设计上机实验指导

实验 1 C语言程序初步

一、实验目的

(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。

(3)通过运行简单的C程序,初步了解C程序的特点。

二、实验内容

1. 运行第一个C程序

将下列程序输入visual c++ ,编译、连接和运行该程序。

#include"stdio.h"

int main()

{

printf("The first C Program\n");

return 0;

}

[具体操作步骤]

(1)在编辑窗口中输入程序。

(2)保存程序,取名为a1.c。

(3)按照第一章中介绍的方法,编译、连接和运行程序。

2. 编程实现计算a+b功能的程序。

由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下,

#include "stdio.h"

int main()

{ int a, b;

scanf("%d%d", &a, &b);

printf("%d", a + b);

return 0;

}

(1)在程序编辑窗口中输入程序。

(2)保存程序,取名为a2.c。

(3)按照第一章中介绍的方法,编译、连接和运行程序。

(4)在程序运行过程中,输入

15 30↙

(↙表示输入回车符)

(5)如果看到如下输出结果,则表明15+30 的结果正确,如果得不到如下结果,则需检查并更正程序。

45

三、课后练习

1. 输入并运行第一章的例题程序,熟悉调试C程序的方法与步骤。

2. C语言源程序文件、目标文件和可执行文件的扩展名是什么。

3. 熟悉C语言程序的一般构成。

4. 参照本章例题,编写一个程序,输出以下信息:

******************************

*** How do you do! *******

******************************

5.编写一个C程序,输出下列图案。

* * * * *

* * * *

* * *

* *

*

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

一、实验目的

(1)掌握C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。

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

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

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

二、实验内容

1. 变量的定义

下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。

#include "stdio.h"

int main()

{

/*定义整型变量a和b*/

/*定义实型变量i和j*/

a=5;

b=6;

i=3.14;

j=i*a*b;

printf("a=%d,b=%d,i=%f,j=%f\n", a, b, i, j);

return 0;

}

[具体操作步骤]

(1)将代码补充完整;

(2)在VC++上运行通过;

要求编写一个程序,在显示屏上显示如下内容(全为半角字符,且不包括空格):C:\ABC.TXT

[提示]注意转义字符在程序中的使用。

参考程序:

#include "stdio.h"

int main()

{

printf("C:\\ABC.TXT\n");

return 0;

}

2. 赋值表达式与赋值语句

阅读下面程序,写出运行结果:

#include "stdio.h"

int main()

{ float a;

int b, c;

char d, e;

a=3.5;

b=a;

c=330;

d=c;

e='\141’;

printf("%f,%d,%d,%c,%c\n", a,b,c,d,e);

return 0;

}

运行结果为:

3.500000,3,330,J,a

[提示]赋值语句具有类型转换的功能,但可能会改变数据。

3. 基本运算

阅读下面程序,写出运行结果:

#include "stdio.h"

int main()

{ int a, b, c;

float d=15, e, f;

a=35%7;

b=15/10;

c=b++;

e=15/10;

f=d/10;

printf("%d,%d,%d,%f,%f,%f\n", a,b,c,d,e,f);

return 0;

}

运行结果为:

0,2,1,15.000000,1.000000,1.500000

[提示]除法分整除与普通除法之分。

三、课后练习

1. 输入并运行第二章的例题程序,进一步熟悉调试C程序的方法与步骤。

2.假设圆的半径为radius=5,请按下面给定的步骤编程计算圆的周长和面积。

1)定义变量radius、girth和area,分别用来表示圆的半径、周长和面积。

2)给变量radius赋值。

3)计算圆的周长和面积,分别保存在变量girth和area中。

4)输出该圆的半径,周长和面积的值。

实验 3 基本输入与输出

一、实验目的

(1)熟练掌握putchar、getchar、printf、scanf函数的使用方法。

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

二、实验内容

编程实现由键盘输入一个字符后,在屏幕上输出该字符。

[第一组自测数据]

[键盘输入]

a↙

[正确输出]

a

[第二组自测数据]

[键盘输入]

+↙

[正确输出]

+

参考程序:

#include "stdio.h"

int main()

{ char ch;

ch = getchar();

putchar(ch);

return 0;

}

[题目1127:计算加法]

编程实现由键盘输入一个加法式,输出正确的结果。(两个加数均为整数)[第一组自测数据]

[键盘输入]

10+20↙

[正确输出]

30

[第二组自测数据]

[键盘输入]

-15+60↙

[正确输出]

45

参考程序:

#include "stdio.h"

int main()

{ int a, b;

scanf("%d,%d", &a,&b);

printf("%d\n", a+b);

return 0;

}

[题目:求圆面积]

由键盘输入圆半径r,请计算该圆的面积。(注:π取3.14159,结果保留两位小数位;另外,程序只要能对r在0 到10000 范围的情况输出正确答案即可)

[第一组自测数据] [键盘输入] 2

65.2↙

[正确输出]

13355.02

[第二组自测数据]

[键盘输入]

11.2↙

[正确输出]

394.08

[提示]结果保留两位小数可采用printf函数的格式控制字符来实现。

参考程序:

#include "stdio.h"

int main()

{ float area,r;

scanf("%f",&r);

area=3.14159*r*r;

printf("%0.2f\n",area);

return 0;

}

[题目:计算摄氏温度值]

从键盘输入一个华氏温度值,要求按格式输出其对应的摄氏温度值,精确到小数点后两位。

数学公式描述为:

C=5*(F-32)/9

[第一组自测数据]

[键盘输入]

100↙

[正确输出]

37.78

[第二组自测数据]

[键盘输入]

100↙

[正确输出]

37.78

[提示]注意公式中的除为普通除法。

参考程序:

#include "stdio.h"

int main()

{ float f,c;

scanf("%f",&f);

c=5.0/9*(f-32);

printf("%.2f\n",c);

return 0;

}

[题目:各个数字]

从键盘输入一个3位数的正整数,要求先后输出该数字的百位数字与个位数字,各占一行。

[第一组自测数据] [第一组自测数据]

[键盘输入] [键盘输入]

123 654

[正确输出] [正确输出]

1 6

3 4

[提示]合理使用整除与求模(即求余)运算。

参考程序:

#include "stdio.h"

int main()

{

int n,i,j;

scanf("%d",&n);

i=n/100;

j=n%10;

printf("%d\n%d\n",i,j);

return 0;

}

三、课后练习

1. 编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。

2. 编写程序,输入一个三位的正整数,编程将该数的各位数字逆序输出。例如,输入258,则输出852。

3.输入一个小写字母,编程将其转换为大写字母并输出。

实验 4 选择结构程序设计

一、实验目的

(1)了解C语言表示逻辑的方法(以0代表“假”,以非0 代表“真”)。(2)学会正确使用逻辑运算符和逻辑表达式。

(3)熟练掌握if语句和switch语句。

二、实验内容

[题目:数的排序]

由键盘输入三个整数a、b、c,按从小到大的顺序输出这三个数。

[第一组自测数据]

[键盘输入]

65,45,90↙

[正确输出]

45,65,90

[第二组自测数据]

[键盘输入]

9,6,3↙

[正确输出]

3,6,9

参考程序:

#include "stdio.h"

int main()

{ int a,b,c,t;

scanf("%d,%d,%d",&a,&b,&c);

if(a>b) {t=a;a=b;b=t;}

if(a>c) {t=a;a=c;c=t;}

if(b>c) {t=b;b=c;c=t;}

printf("%d,%d,%d\n",a,b,c);

return 0;

}

[题目:字符变换]

由键盘输入5个字符,将其中的大写字母变成小写,其它类型的字符不变,并按输入顺序逐个输出。

[第一组自测数据]

[键盘输入]

ApPLe↙

[正确输出]

apple

[第二组自测数据]

[键盘输入]

a+B=5↙

[正确输出]

a+b=5

[提示]下面代码实现由键盘读入一个字符,并按题意处理后输出

char a;

a=getchar();

if(a>='A' && a<='Z') a=a+32;

putchar(a);

现在,题目要求处理5个字符,怎么做呢?请自己思考……

参考程序:

#include "stdio.h"

int main()

{ char a,b,c,d,e;

scanf("%c%c%c%c%c",&a,&b,&c,&d,&e);

if(a<='Z'&&a>='A') a=a+32;

if(b<='Z'&&b>='A') b=b+32;

if(c<='Z'&&c>='A') c=c+32;

if(d<='Z'&&d>='A') d=d+32;

if(e<='Z'&&e>='A') e=e+32;

printf("%c%c%c%c%c\n",a,b,c,d,e);

return 0;

}

[题目:数的整除]

由键盘输入 5 个整数,逐个判断它们能否被27 整除,能的输出“YES”,不能的输出“NO”(注意,输出时,一个判断结果占一行,5个数的判断共占5行)。[第一组自测数据]

[键盘输入]

8 27 17577 325 54↙

[正确输出]

NO

YES

YES

NO

YES

[第二组自测数据]

[键盘输入]

8 127 128 77577 62↙

[正确输出]

NO

NO

NO

NO

NO

[提示]整除即除得余数为0

参考程序:

#include "stdio.h"

int main()

{ int a,b,c,d,e;

scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);

if(a%27==0) printf("YES\n");else printf("NO\n");

if(b%27==0) printf("YES\n");else printf("NO\n");

if(c%27==0) printf("YES\n");else printf("NO\n");

if(d%27==0) printf("YES\n");else printf("NO\n");

if(e%27==0) printf("YES\n");else printf("NO\n");

return 0;

}

[题目:正负奇偶判断]

由键盘输入非零整数x,判断该数正负,正数输出positive,负数输出negative,接着判断该数的奇偶性,奇数输出odd,偶数输出even。

[第一组自测数据]

[键盘输入]

-43↙

[正确输出]

negative

odd

[第二组自测数据]

[键盘输入] 7

98↙

[正确输出]

positive

even

参考程序:

#include "stdio.h"

int main()

{ int n;

scanf("%d",&n);

if(n<0) printf("negative\n");

else printf("positive\n");

if(n%2==0) printf("even\n");

else printf("odd\n");

return 0;

}

[题目:判断整数是否为平方数]

由键盘输入一个正整数,判断该数是否为平方数,是输出Y,否输出N。[ 第一组自测数据] [ 第二组自测数据]

[键盘输入] [键盘输入]

36 18

[正确输出] [正确输出]

Y N

参考程序:

#include"stdio.h"

#include "math.h"

int main()

{

int a,b;

scanf("%d",&a);

b=(int)sqrt(a);

if(b*b==a) printf("Y\n");

else printf("N\n");

return 0;

}

[题目:求数的位数]

由键盘输入一个不多于9位的正整数,要求输出它是几位数。

[第一组自测数据]

[键盘输入]

349213↙

[正确输出]

6

[第二组自测数据]

[键盘输入]

10000↙

[正确输出]

5

[提示]划定一位数、二位数、…、九位数的范围,然后用if …else if …else 语句实现判断。

参考程序:

#include

int main()

{ int n,place;

scanf("%ld",&n);

if(n>99999999) place=9;

else if(n>9999999) place=8;

else if(n>999999) place=7;

else if(n>99999) place=6;

else if(n>9999) place=5;

else if(n>999) place=4;

else if(n>99) place=3;

else if(n>9) place=2;

else place=1;

printf("%ld\n",place);

return 0;

}

三、课后练习

1. 编写程序实现一个简单的计算器。要求从键盘输入两个数和一个运算符,输出此运算符计算的结果。

2.输入4个整数,编程按由小到大的顺序输出。

3.输入1~12中的某个数字,编程输出对应的英文月份的名称。

4.计算个人工资所得税的纳税额。3500元以内不纳税,超过3500元的部分应为纳税部分。应纳税部分分段计税,各段计税方法如下:

1)应纳税部分<=500,税率为5%

2)500<应纳税部分<=2000,税率为10%

3)5000<应纳税部分<=20000,税率为20%

4)20000<应纳税部分,税率为25%

实验 5 循环结构程序设计(一)

一、实验目的

(1)熟悉掌握用while语句、do-while语句和for 语句实现循环的方法。(2)掌握在程序设计中用循环实现一些常用算法(如穷举、迭代、递归等)。

二、实验内容

[题目:计算阶乘]

输入正整数n,计算n!,结果用长整型数表示(注n!=1*2*3*...*n)

[第一组自测数据]

[键盘输入]

5↙

[正确输出]

120

[第二组自测数据]

[键盘输入]

8↙

[正确输出]

40320

参考程序:

#include"stdio.h"

int main()

{ long i,n=1,a;

scanf("%ld",&a);

for(i=1;i<=a;i++) n=n*i;

printf("%ld\n",n);

return 0;

}

[题目:计算数列和]

有数列1,3,5,7,9,11,……

现要求由键盘输入n,计算输出该数列的前n项和。

[第一组自测数据]

[键盘输入]

2↙

[正确输出]

4

[第二组自测数据]

[键盘输入]

5↙

[正确输出]

25 10

参考程序:

#include

int main()

{ long n,sum=0,i,t=1;

scanf("%ld",&n);

for(i=1;i<=n;i++)

{ sum=sum+t;

t=t+2;

}

printf("%ld\n",sum);

return 0;

}

[题目:累加一行字符中的数字]

由键盘输入一行字符(总字符个数从1个至80 个均有可能,以回车符表示结束),将其中每个数字

字符所代表的数值累加起来,输出结果。

[第一组自测数据]

[键盘输入]

abc123↙

[正确输出]

6

[第二组自测数据]

[键盘输入]

A6H7T+65↙

[正确输出]

24

[提示]

(1)可以使用下面程序段逐个读入键盘输入的一行字符

char ch;

while((ch=getchar())!='\n')

{……}

(2)数字字符转为对应的数值可用a=ch-'0'

参考程序:

#include"stdio.h"

int main()

{ char c;

int s=0,a;

while((c=getchar())!='\n')

{ if(c>='0'&&c<='9')

{ a=c-48;

s=s+a;

}

}

printf("s=%d\n",s);

return 0;

}

[题目:求最大公约数]

由键盘输入两个正整数m、n(m、n用长整数表示),计算它们的最大公约数。[第一组自测数据]

[键盘输入]

16,24↙

[正确输出]

8

[第二组自测数据]

[键盘输入]

17,25↙

[正确输出]

1

[提示]公约数是既能整除m又能整除n的数,题目要求满足这一条件的最大的一个。

参考程序:

#include"stdio.h"

int main()

{

long r,m,n,temp;

scanf("%ld,%ld",&m,&n);

while(m!=0)

{

r=n%m;

n=m;

m=r;

}

printf("%ld\n",n);

return 0;

}

#include"stdio.h"

int main()

{

long m,n,t,i,s;

scanf("%ld,%ld",&m,&n);

t=m>n?n:m;

for (i=t-1;i>=1;i--)

{

if (m%i==0&&n%i==0)

{

s=i; break; }

}

printf("%d\n",s);

return 0;

}

[题目:输出最小值]

从键盘输入十个整数,输出最小值

[自测数据]

[键盘输入]

12 45 76 87 5 87 43 55 99 21↙

[正确输出]

5 13

参考程序:

#include "stdio.h"

int main()

{

int i,t,min;

scanf("%d", &min);

for(i=1;i<10;i++)

{

scanf("%d", &t);

if(t

}

printf("%d\n",min);

return 0;

}

[题目:字符变换]

由键盘输入一个句子(总字符个数从1个至80 个均有可能,以回车符表示结束),将其中的大写字符变成小写(其它类型的字符不变),最后输出变换后的句子。

[第一组自测数据]

[键盘输入]

How Are You?↙

[正确输出]

how are you?

[第二组自测数据]

[键盘输入]

ThiS IS My fIrSt C ProgrAm!↙

[正确输出]

this is my first c program! 12

参考程序:

#include "stdio.h"

int main()

{ char c;

while((c=getchar())!='\n')

{ if(c>='A'&&c<='Z')

c=c+32;

putchar(c);

}

printf(“\n”);

return 0;

}

*[题目:统计单词个数]

由键盘输入一个句子(总字符个数从 1 个至80个均有可能,以回车符表示结束),以空格分割单词,要求输出单词的个数。

[第一组自测数据]

[键盘输入]

How Are You?↙

[正确输出]

3

[第二组自测数据]

[键盘输入]

There are many students and many

trees!↙

[正确输出]

7

参考程序:

#include"stdio.h"

int main()

{ int i,num=0,word=0;

char c;

for(i=0;(c=getchar())!='\n';i++)

if(c==' ') word=0;

else if(word==0)

{ word=1;

num++;

}

printf("num:%d\n",num);

return 0;

}

三、课后练习

1. 我们国家现有人口13亿,如果按每年1.5%的增长速度,10年后将有多少人。

2.编写一个程序,计算出1~500之间满足除以3余1,除以5余2,除以7余3的整数。

3.编写一个程序,计算1~10之间所有整数的平方和,并输出结果。

4.编程输出所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方

和等于该数本身。例如:153就是一个水仙花数,因为153=13+53+33。

实验 6 循环结构程序设计(二)

一、实验目的

(1)进一步熟悉掌握用while语句、do-while语句和for 语句实现循环的方法。(2)掌握在程序设计中使用多重循环。

二、实验内容

[题目:打印菱形]

由键盘输入正数n,要求输出2*n+1行的菱形图案。要求菱形左边紧靠屏幕左边。

[第一组自测数据]

[键盘输入]

3↙

[正确输出]

[第二组自测数据]

[键盘输入]

6↙

[正确输出]

参考程序:

#include "stdio.h"

#include "math.h"

int main()

{ int n,i,j,k;

scanf("%d",&n);

for(i=1;i<=2*n+1;i++)

{ k=abs(n+1-i);

for(j=1;j<=k;j++) printf(" ");

for(j=1;j<=2*n+1-2*k;j++) printf("*");

printf("\n");

}

return 0;

}

[题目:找到满足要求的数字]

输出1到9999中能被7整除,而且至少有一个数字是5的所有数字。输出时一行一个数字,且按由小到大的排序输出。

[提示]判断一个数字中是否有数字5,首先要掌握拆数字的方法,一种算法如下:一个整数a,使用a%10,可以得到a的个位数,然后使用a=a/10,可以将a中的个位数字除去,上述过程重复则可以的到原数a中其他位上的数字。

参考程序:

#include "stdio.h"

int main()

{

int i, j;

for(i=7; i<=9999; i=i+7)

{

j=i;

while(j!=0)

{

if(j%10==5) break;

j=j/10;

}

if(j!=0)

printf("%d\n", i);

}

return 0;

}

[题目:打印图案]

由键盘输入正数n,要求输出中间数字为n的菱形图案。要求菱形左边紧靠屏幕左边。

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键盘¥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; 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);这条语句 改成:printf("%c %c %d\n",a,b,c);

《c语言》上机实验指导书

淮南师范学院 《C语言》 主编:井田

实验一、C 语言运行环境 (一)实验目的 1、了解C程序运行环境; 2、掌握运行环境的使用。 (二)实验设备 计算机;C编译环境 (三)实验要求 建立文件夹,采用你个人的学号+姓名来命名,例如:12111010101王明(四)实验内容 可以从以下题目中任意选做4——6题,也可自己命题,需注释说明功能 1、编程实现以下文字的输出。 I am a student. 2、编程实现交换两变量的值。(变量类型任意) 3、输入三个数,求三个数之和并输出。 4、输入三个数,求三个数中最大和最小的数并输出。 5、用sizeof测试并输出所用编译系统,int、long、short、char、float、double 等类型数据所占字节数。A=sizeof(int) 6、调用库函数,实现以下函数值的求取。 cos3.5678、log90、e2.567 #include #include void main() { printf("cos 3.5678 = %f\n", cos(3.5678)); printf("log 90 = %f\n", log(90)); printf("exp(2.567) = %f\n", exp(2.567)); }

实验报告包括:实验名称、实验目的、实验内容。其中实验内容包括程序和结果及结果分析。 实验二、常量的使用和变量与赋值 (一)实验目的 1、了解C 语言中常量的种类和作用; 2、了解基本类型常量在内存中的存储形式及变量的本质; 4、掌握赋值运算的意义和正确用法。 (二)实验设备 计算机;C编译环境 (三)实验要求 建立文件夹,采用你个人的学号+姓名来命名,例如:12111010101王明(四)实验内容 可以从以下题目中任意选做4——6题,也可自己命题,需注释说明功能 1、编程实现int、short、long、char、float、double等类型常量的输出。 2、编程实现int、short、long、char、float、double等类型变量的建立、赋值以及输出。 3、编程实现对int和float型数据进行格式化输入和输出。(要求使用格式修饰符) 4、编程实现对3个变量按照从大到小的排序。(变量类型任意) 5、编程实现不同类型数据进行赋值。 6、编程实现不同类型数据之间混合运算。(至少列举三种不同类型数据

C上机实验报告实验五

C上机实验报告实验五 This manuscript was revised by the office on December 22, 2012

实验五继承与派生 1.实验目的 1.学习定义和使用类的继承关系,定义派生类 2.熟悉不同继承方式下对基类成员的访问控制 3.学习利用虚基类解决二义性问题 2.实验要求 1.定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(intn)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程尝试。 2.定义一个基类BaseClass,有整型变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 3.定义一个车(vehicle)基类,具有Maxspeed、Weight等成员,Run、Stop 等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNun)等属性。从bicycle和motorcar派生出摩托车(motorbicycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程尝试。 3.实验内容及实验步骤 1.编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge(intn)中直接对age赋值时,会出现类似以下的错误提示: errorC2248:‘age’:cannotaccessprivatememberdeclaredinclass‘Animal’errorC2248:‘age’:cannotaccessprivatememberdeclaredinclass‘Animal’把age改为公有成员变量后重新编译就可以了。程序名:lab7_1.cpp。 2.编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名:lab7_2.cpp。 3.用debug功能跟踪程序lab7_2的执行过程,观察基类和派生类的构造函数和析构函数的执行情况。 4.编写程序定义一个车(vehicle)基类,由此派生出自行车(bicycle)类、汽车(motorcar)类,注意把vehicle派生为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名:lab7_3.cpp。 编译成功后,把vehicle设置为非虚基类,再编译一次,此时系统报错,无法编译成功。这是因为若不把vehicle设置为虚基类,会出现二义性错误,程序不能成功编译。 4.思考题 1.如何在已有的类的基础上设计新的类?

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语言上机实验

实验1目的1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 实验二 二、实验目的: 1、掌握C语言的数据类型。 2、学会使用C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。 1、输入r1、r2,求出圆形垫片面积。(实验指导书P84) 2、输入华氏温度h,输出摄氏温度c。(实验指导书P85) 3、从键盘输入一个3位整数,将输出该数的逆序数。(实验指导书P89) 4、输入并运行以下程序,分析运行结果。 #include void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i);

C语言上机实验[1]

实验四循环结构程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、熟练掌握while语句、do-while语句和for语句。 2、练习并掌握循环结构的嵌套形式。 3、掌握循环结构的程序设计方法。 三、实验内容:说明:前四题为必做题目,后两题为选做题目。 1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。(实验指导书P41) 2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数 本身。(实验指导书P42) 3、判断输入的某个数是否为素数。若是,输出YES,否则输出NO。(实验指导书P167) 4、计算π的近似值。公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小 于10-6为止。(实验指导书P169) 5、计算1!+2!+……+n! 的值,n值由键盘输入。(实验指导书P176) 6、输入10个整数,统计并输出其中正数、负数和零的个数。 四、实验答案:(代码+运行结果截屏) 实验五综合实验1:结构化程序设计(2学时) 一、实验方式:一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容:说明:前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(实验指导书P162) 2、百马百担问题。(实验指导书P45) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验答案:(代码+运行结果截屏)

C上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化所有数据成员;display()中使用cout显示

C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

C语言程序设计上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学

目录 上机实验 (1) 实验 1 C语言程序初步 (1) 一、实验目的 (1) 二、实验内容 (1) 实验2基本数据类型、运算和表达式 (3) 一、实验目的 (3) 二、实验内容 (3) 实验3基本输入与输出 (5) 一、实验目的 (5) 二、实验内容 (5) 实验4选择结构程序设计 (4) 一、实验目的 (4) 二、实验内容 (4) 实验5循环结构程序设计(一) (9) 一、实验目的 (9) 二、实验内容 (9) 实验6循环结构程序设计(二) (15) 一、实验目的 (15) 二、实验内容 (15) 实验7数组 (17) 一、实验目的 (17) 二、实验内容 (17) 实验8字符数组的应用 (22) 一、实验目的 (22) 二、实验内容 (22) 实验9函数的基本应用 (24) 一、实验目的 (24) 二、实验内容 (24) 实验10指针与结构体 (26) 一、实验目的 (26) 二、实验内容 (26) *实验11链表 (29) 一、实验目的 (29) 二、实验内容 (29) *实验12文件 (32) 一、实验目的 (32) 二、实验内容 (32)

上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用JudgeOnline实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目:The first C Program] 将下列程序输入 TC(或 VC++),编译、连接和运行该程序。 void main() { printf("The first C Program\n"); } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2.在JudgeOnline系统中提交实现了计算a+b功能的程序 [题目 1001:计算 a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, void main() { int a, b; scanf("%d%d", &a, &b); 1

C程序设计上机实验报告11

C程序设计实验报告 实验名称:指针与字符串学时安排:2课时 实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、实验目的 1. 掌握通过指针操作字符串的方法; 二、实验设备介绍 软件需求: Visual C++ 6.0或CFree3.5以上版本 硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU 处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。 三、实验内容 1.输入一个字符串t和一个正整数m,讲t中从第m个(m小于字符串长度)字符开始的全部字符复制的字符串s中,再输出字符串s。要求用字符指针定义并调用函数strmcpy(s, t, m),它的功能是将字符串t中从第m个字符开始的全部字符复制到字符串s中。示例如下:Input a string: happy new year! Input an integers: 7 Output is: new year! 2. 编写一个函数delchar(s, c),该函数将字符串s中出现的所有c字符删除。自己定义main 函数,并在其中调用delchar(s,c)函数。D此大锅饭 3. 改正程序error08_ 4.cpp中的错误。函数strc的作用是将字符串s连接到t的尾部。在

主函数中输入两个字符串s和t,调用strc完成字符串的连接。输入输出结果如下所示:World! Hello HelloWorld! 要求把正确的代码(按规范缩进)写入报告,并以注释的方式说明错误原因。 注释示例如下: int i; /*循环控制变量不能定义为double类型*/ 4. 编程判断输入的一串字符是否为“回文”,如果是输出“Yes”,否则输出“No”。所谓“回文”,是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 四、程序清单 第一题 #include void strmcpy(char str[],char t[],int m){ int i=0,n; char *s; s=str; for(s+=m-1;*s!=0;s++) { t[i]=*s; i++; } printf("Output is:"); for(n=0;n

c语言上机实验实验八

实验八 (2018-12-12~2018-12-17) 一、实验名称: 结构体 二、实验目的: (1)掌握结构体类型的定义和使用; (2)掌握结构体类型变量的概念和使用; (3)掌握链表的概念,初步学会对链表进行操作; (4)进一步熟悉Visual C++6.0开发环境下调试程序的基本步骤。 三、实验项目(必做题) 本次实验要求同学们事先在纸介质上编好解决下面问题的源程序,然后才允许进实验室上机调试。 (1)利用顺序表实现“先进后出”的堆栈 提示:定义结构体struct来定义堆栈;采用动态数组实现顺序表;定义函数实现堆栈中元素的压入和弹出,保证“先进后出”的实现 // 结构体Stack struct Stack{ int * List; // 用来存储元素的顺序表 int curNumber; // 用来存储当前元素的总个数 }; void iniStack(Stack * A); // 初始化堆栈 void clearStack(Stack * A); //清空堆栈 void push(Stack * A, ELEMENT obj); //将元素obj压入堆栈的栈顶 void pop(Stack * A); //将当前栈顶的元素弹出栈。要求:栈不为空 ELEMENT get_top(Stack * A); //返回当前栈顶的元素值。要求:栈不为空 int is_empty(Stack * A); //判断当前堆栈是否为空,空返回1,非空返回0 void display(Stack * A); //自顶向下显示堆栈中的元素 测试实例: 向堆栈中压入:1 2 3 4 弹出次序应为:4 3 2 1

C语言上机实验(第四版)参考答案

C语言上机实验(第四版)参考答案 C语言程序设计上机实验指导与习题 参考答案(第四版) (学生改编) 实验 1 C语言程序初步一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。(3)通过运行简 单的C程序,初步了解C程序的特点。(4)在教师的指导下,学会使用在线 评判系统。 二、实验内容 1. 运行第一个C程序 [题目:The first C Program] 将下列程序输入visual c++ ,编译、连接和运行该程序。 #include\main() { printf(\ } [具体操作步骤] (1)在编辑窗口中输入程序。 (2)保存程序,取名为 a1.c。 (3)按照第一章中介绍的方法,编译、连接和运行程序。 (4)按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”,则该题完成。 2. 在在线评判系统中提交实现了计算a+b功能的程序 [题目1001:计算a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, #include \main() { int a, b;

scanf(\ printf(\ } (1)在程序编辑窗口中输入程序。(2)保存程序,取名为 a2.c。 (3)按照前二章中介绍的方法,编译、连接和运行程序。(4)在程序运行 过程中,输入 15 30↙ (↙表示输入回车符) (5)如果看到如下输出结果,则表明15+30 的结果正确,如果得不到如下结 果,则需检查并更正程序。 45 (6)按照第三章中介绍的方法进入在线评判系统。 (7)显示题目列表,点击题号为1001,题名为“计算a+b”的题目。 (8)查看完题目要求后,点击页面下端的“sumbit”,参照第二章提交程序 的方法提交程序a2.c。 (9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检 查程序是否正确。 3 实验 2 基本数据类型、运算和表达式一、实验目的 (1)掌握C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它 们赋值的方法。(2)掌握不同的类型数据之间赋值的规律。 (3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是 自加(++)和自减(--)运算符的使用。 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。二、实验内容 1. 变量的定义 [题目 1117:变量定义,按要求完成程序] 下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整 缺少的语句。 #include \ main() { int a, b; /*定义整型变量 a和 b*/ int i, j; /*定义实型变量i和 j*/ a=5; b=6; i=3.14; j=i*a*b; printf(\ } [具体操作步骤]

C语言上机实验标准答案.doc

实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”);

scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

C语言上机实验指导

实验要求: 上机实验一般经历上机前的准备(编程)、上机调试运行和实验后的总结三个步骤。 1.上机前的准备 根据问题,进行分析,选择适当算法并编写程序。上机前一定要仔细检查程序(称为静态检查)直到找不到错误(包括语法和逻辑错误)。分析可能遇到的问题及解决的对策。准备几组测试程序的数据和预期的正确结果,以便发现程序中可能存在的错误。 上机前没有充分的准备,到上机时临时拼凑一个错误百出的程序,宝贵的上机时间白白浪费了;如果抄写或复制一个别人编写的程序,到头来自己一无所获。 2.上机输入和编辑程序,并调试运行程序 首先调用C语言集成开发环境,输入并编辑事先准备好的源程序;然后调用编译程序对源程序进行编译,查找语法错误,若存在语法错误,重新进入编辑环境,改正后再进行编译,直到通过编译,得到目标程序(扩展名为OBJ)。下一步是调用连接程序,产生可执行程序(扩展名为EXE)。使用预先准备的测试数据运行程序,观察是否得到预期的正确结果。若有问题,则仔细调试,排除各种错误,直到得到正确结果。在调试过程中,要充分利用C 语言集成开发环境提供的调试手段和工具,例如单步跟踪、设置断点、监视变量值的变化等。整个过程应自己独立完成。不要一点小问题就找老师,学会独立思考,勤于分析,通过自己实践得到的经验用起来更加得心应手。 3.整理上机实验结果,写出实验报告 实验结束后,要整理实验结果并认真分析和总结,根据教师要求写出实验报告。 实验报告一般包括如下内容: ⑴实验内容 实验题目与要求。 ⑵算法说明 用文字或流程图说明。 ⑶程序清单 ⑷运行结果 原始数据、相应的运行结果和必要的说明。 ⑸分析与思考 调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会;其他算法的存在与实践等。若最终未完成调试,要认真找出错误并分析原因等。 实验一C语言运行环境 一、实验目的 1.了解TC环境的组成。 2.学习TC环境的使用方法。 3.了解C语言程序从编辑、编译、连接到运行并得到运行结果的过程。 二、实验内容 1.了解TC环境的组成。 开机后进入WINDOWS系统的"资源管理器",找到TC环境所在的文件夹。查看在TC目录下的以字母TC开头的文件,是否包括了TC.EXE、TCC.EXE、TLINK.EXE、TCCONFIG.TC等文件;查看INCLUDE、LIB两个子目录下的文件。复习这些文件夹的作

c上机实验报告

实验五继承与派生 实验目的 1.学习定义和使用类的继承关系,定义派生类 2.熟悉不同继承方式下对基类成员的访问控制 3.学习利用虚基类解决二义性问题 实验要求 1?定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge (int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程尝试。 2?定义一个基类BaseClass有整型变量Number,构造其派生类 DerivedClass观察构造函数和析构函数的执行情况。 3.定义一个车(vehicle)基类,具有Maxspeed、Weight 等成员,Run、Stop 等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车 (bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数 (SeatNun)等属性。从bicycle和motorcar 派生出摩托车(motorbicycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程尝试。 实验内容及实验步骤 1?编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge (int n)中直接对age赋值时,会出现类似以下的错误提示: error C2248: ‘age':cannot access private member declared in class C2248: ‘ age' :cannot access privateer declared in class 把Agm改为公 有成员变量后重新编译就可以了。程序名:。 错误代码: #include using namespace std; class Animal

c语言上机操作题

实验一上机操作初步(2学时) 一、实验方式: 一人一机 二、实验目的: 1、了解C语言程序的特点与基本结构。 2、了解C语言程序的编译环境。 3、掌握使用C语言编写和调试程序的流程:编辑-保存-编译-构建(组件)-执行。 4、掌握C语言程序在Visual C++ 6.0环境下的调试过程。 5、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,第四题为选做题目。 1、编辑实验教材P2程序,掌握C语言程序在Visual C++6.0环境下的编译流程和调试过程。(实验教材P2) 2、在屏幕上实现下列图案的输出: **************************** hello,welcome to china! good bye! **************************** (实验教材P11) 3、计算两个数x和y的和。(教材P5【例1-2】) 4、求两个数的最大值。(教材P5【例1-3】) 四、实验步骤与过程: 1、#include "stdio.h" void main( ) { printf("Hello,World!"); printf("\n"); } 2、 五、实验调试记录: 1、 2、 实验二简单的C程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握C语言的数据类型。 2、掌握标识符、常量、变量的定义及使用。 3、掌握C语言的常用运算符及表达式。 三、实验内容:

说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。(实验教材P18) 2、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。(实验教材P27) 3、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。(实验教材P21) 4、输入并运行以下程序,分析运行结果。(实验教材P27) #include “stdio.h” void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i); i=8; j=10; printf(“%d,%d\n”,i++,i); } 5、从键盘上输入3个数a、b、c,求一元二次方程的解x1、x2,并分别把这两个解的绝对值作为圆柱的半径与高,计算圆柱的体积。(实验教材P20) 四、实验步骤与过程: 五、实验调试记录: 实验三选择结构程序设计(一)(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握单分支if语句的使用方法。 2、掌握双分支if-else语句的使用方法。 3、掌握多分支语句的一般形式和使用方法。 三、实验内容: 说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入一个3位整数,请输出该数的逆序数。(实验教材P27) 2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(实验教材P27) 3、判断箱子是正方体还是长方体。请根据注释将程序填写完整。(实验教材P33) 4、编写程序,通过输入x的值,计算阶跃函数y的值。(教材P70【例5-4】)

C语言上机综合实验一及答案

1、编制程序,输入n 个整数(n 从键盘输入,n>0),输出它们的偶数和。 2、 编程,输入n 后:输入n 个数,根据下式计算并输出y 值。 3、输入一行字符,统计并输出其中英文字母、数字字符和其他字符的个数。 4、编写程序,输入一个正整数n ,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+……+1/n ,函数返回值的类型是double 。 5、输入一个正整数n ,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n 的阶乘,函数返回值的类型是单精度浮点型。 答案: 程序1、 #include void main () { int n,i,x,sum=0; while(scanf("%d",&n),n<=0); printf ("请输入%d 个数:", n); for (i=1; i<=n ;i++) { scanf("%d",&x); if(x%2==0) sum+=x; } printf ("sum=%d", sum) ; } 程序2、 #include #include void main( ) { int i,n; float x,y; scanf(“%d”,&n); for(i=1;i<=n;i++){ scanf(“%f”,&x); if(x<-2) y=x*x-sin(x); else if(x<=2) y=pow(2,x)+x; else y=sqrt(x*x+x+1); printf(“%f \n”,y); } } 程序3、 # include void main( ) { int letter,digit,other; ?????>++≤≤-+-<-=2 12222sin 22x x x x x x x x y x 111111...23n k s k n ===++++∑

C上机实验报告

实验一 顺序结构程序设计 【实验日期】 年 月 日 【实验目的】 1. 熟悉VC++6.0调试环境,掌握运行一个C 程序的基本步骤。 2. 掌握基本输入、输出函数的使用。 3. 能够编写简单的顺序结构程序,实现简单的数据处理。 4. 掌握C 程序的查错方法。 【实验内容】 调试示例 改正下列程序中的错误,求华氏温度1000F 对应的摄氏温度。计算公式如下,其中:c 表示摄氏温度,f 表示华氏温度。 源程序(有错误的程序) #include “stdoi.h ” void main() { int c;f; f=100; c=5*(f-32)/9; printf(“f=d,c=%d\n ”,f,c); } 运行结果(改正后程序的运行结果) f=100,c=37 调试过程: (1) 输入源程序。 (2) 使用菜单或工具栏来完成编译、连接和运行操作。 (3) 单击编译(Compile )按钮,编译时出现的第一条错误信息是: Cannot open include file:’stdoi.h ’:no such file or directory 通过拖动信息窗口右侧的滚动块或将信息窗口拉大可查看错误信息。双击该错误信息,箭头指向源程序的第一行,因为“stdio.h ”被误写为“stdoi.h ”。改正为“stdio.h ”后,重新编译,新产生的第一9)32(5-?=f c

条错误信息是:‘f’:undeclared identifier 双击该错误信息,箭头指向源程序的第四行,错误信息指出“f”变量没有被定义。仔细观察后,发现“f”前的分号应该为逗号。将“f”前的分号改为逗号后,重新编译,编译正确。 (4) 单击连接(Build)按钮,连接正确。 (5) 单击运行(Build Execute)按钮,运行结果为:f=d,c=100。 结果不符合题目的要求,仔细检查源程序,发现函数printf中“f=d”的“d”应为“%d”。改正后,重新编译、连接和运行,运行结果与题目要求的结果一致。 ●改错题 改正下列程序中的错误,计算x的平方y,并分别以“y=x*x”和“x*x=y”的形式输出x和y的值。 源程序(有错误的程序) /********************found********************/ #include “stdoi.h” void main() { int y,x; printf(“Input x:”); scanf(“%d”,&x); y=x*x; /********************found**********************/ printf(“%d=%d*%d\n”,x); /********************found**********************/ printf(“%d*%d=%d\n”,y); } 运行结果1(改正后程序的运行结果)运行结果2 Input x:5 Input x:4 25=5*5 16=4*4 5*5=25 4*4=16 ●编程题 1、已知某位学生的数学、英语和计算机课程的成绩分别是82分、78分和91分,求该生3门课的平均成绩。 输出示例: Math=82,eng=78,comp=91,average=83

C程序设计上机实验报告完整版

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号: 实验时间:2017年3月6号 任课老师:张锐 C语言程序设计上机实验报告 实验一 一、实验名称: C程序的运行环境和运行C程序的方法 二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序 三、实验内容: (1). 输入并运行一个简单的C程序。 (2). 设计程序,对给定的两个数求和。 (3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: ??代码1: 运行结果1: ??程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for循环来进行整除过程的简写。 代码2: ? 运行结果2: ? 程序分析2: 简单的使用printf()和scanf()函数进行简单的数据运算。 代码3: 运行结果3: 程序分析3: 使用if语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算 术运算符及其表达式,逻辑运算符和逻辑表达式。

三、实验内容: (1). 编写程序,实现小写字母转大写。 (2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar和putchar输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: ??程序分析1: 所有的字符都有一个对应的数字与之对应,每一个小写字母对应的数与大写字母对应的数之间总是相差32,所以只需要对所输入的字符进行减法运算就可以转换为与之对应的大写字母。 代码2: ?运行结果2: ??程序分析2: 简单的数据运算和格式字符的输出。 代码3: 运行结果3: ??? ?程序分析3: 简单的数据运算实现相应的功能。 代码4: ??运行结果4: ?程序分析4: getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕. ?代码5: ??运行结果5: 程序分析5: 重要的是格式字符的使用,%d(输出十进制整型数)%o(以八进制格式输出整形数)%x(以十六进制格式输出整型数)%f(以带小数点的形式输出浮点数)%c(输出一个字符)%s(输出字符串,直到遇到\0) 五、实验总结 C语言程序设计上机实验报告 实验三 一、实验名称:选择结构程序设计 二、实验目的:正确使用逻辑运算符和逻辑表达式,熟练掌握if 语句和switch 语句, 学习调试程序。 三、实验内容: (1). 编写程序,用if 语句编程实现一分段函数的求解。 (2).用if 语句编写程序,求一元二次方程的根。

相关文档
最新文档