C语言程序设计实验指导书newWord文档下载推荐.docx

上传人:b****5 文档编号:21338941 上传时间:2023-01-29 格式:DOCX 页数:36 大小:319.39KB
下载 相关 举报
C语言程序设计实验指导书newWord文档下载推荐.docx_第1页
第1页 / 共36页
C语言程序设计实验指导书newWord文档下载推荐.docx_第2页
第2页 / 共36页
C语言程序设计实验指导书newWord文档下载推荐.docx_第3页
第3页 / 共36页
C语言程序设计实验指导书newWord文档下载推荐.docx_第4页
第4页 / 共36页
C语言程序设计实验指导书newWord文档下载推荐.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

C语言程序设计实验指导书newWord文档下载推荐.docx

《C语言程序设计实验指导书newWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验指导书newWord文档下载推荐.docx(36页珍藏版)》请在冰豆网上搜索。

C语言程序设计实验指导书newWord文档下载推荐.docx

d、Warning错误--警告错的程序可以产生目标程序、可执行程序,还是修改吧,警告错一般也意味着程序有毛病,尽管这种程序可以强行编译连接为可执行程序,但结果可能会有问题。

四、源程序清单、测试数据、结果:

(1)最简单的C程序。

(要求文件名:

1_1.c)

#include<

stdio.h>

voidmain()

{printf(“Helloworld!

\n”);

}

(2)一个具有致命语法错的程序,请修改。

1_2.c)

{inti=9

printf(“i=%d\n”,i)

(3)一个具有警告语法错的程序。

1_3.c)

{

inti=9,j,s;

s=i+j;

printf("

s=%d\n"

s);

五、实验小结和思考

(1)C语言程序调试运行的过程?

答:

分为编辑、编译、连接、运行四个阶段。

首先,在VC开发环境中写程序代码,编辑完成后,进行编译连接,然后运行程序。

(2)C语言程序主要的错误类型?

C程序的错误类型分为语法错误和逻辑错误。

●语法错误:

编译系统可以协助查找出来的语法上的错误。

语法错误包括致命错误Error和警告错误Warning。

致命错误必须修改,警告错误可以不修改,但警告错误常常暗示程序存在某些问题。

逻辑错误:

可以运行,但运行结果与预期结果不符,与程序算法逻辑相关的错误。

实验二:

数据类型、运算符和表达式(2学时)

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

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

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

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

(1)进一步熟悉VisualC++6.0集成环境。

(2)输入并运行几个C程序,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。

(3)输入并运行几个C程序,掌握不同的类型数据之间赋值的规律。

(4)输入并运行一个C程序,熟悉自加和自减运算符的使用方法。

三、实验步骤、过程:

(1)启动VisualC++6.0集成开发环境。

(方法与实验1相同)

(2)完成或选做以下5个程序题。

(编辑、编译连接、运行程序,步骤与实验1相同)

(3)退出VisualC++6.0集成开发环境,关机。

四、源程序清单、测试数据、结果。

(1)调试下面程序,学习整型、字符型数据的定义输出方法,验证程序结果。

2_1.c)

{intx=010,y=10,z=0x10;

/*整型数据表示*/

charc1='

M'

c2='

\x4d'

c3='

\115'

c4=77,c;

/*字符型数据表示*/

/*以下是整型数据的输出*/

printf("

x=%o,y=%d,z=%x\n"

x,y,z);

/*请思考,输出结果为什么是x=10,y=10,z=10*/

x=%d,y=%d,z=%d\n"

/*请思考,输出结果为什么是x=8,y=10,z=16*/

/*以下是字符型数据的输出*/

c1=%c,c2=%x,c3=%o,c4=%d\n"

c1,c2,c3,c4);

/*请思考,输出结果为什么是c1=M,c2=4d,c3=115,c4=77*/

c1=%c,c2=%c,c3=%c,c4=%c\n"

/*请思考,输出结果为什么是c1=M,c2=M,c3=M,c4=M*/

c1=%d,c2=%d,c3=%d,c4=%d\n"

/*请思考,输出结果为什么是c1=77,c2=77,c3=77,c4=77*/

/*字符型数据参与算术运算*/

c=c1+32;

c=%c,c=%d\n"

c,c);

/*请思考,输出结果为什么是c=m,c=109*/

参考结果:

x=10,y=10,z=10

x=8,y=10,z=16

c1=M,c2=4d,c3=115,c4=77

c1=M,c2=M,c3=M,c4=M

c1=77,c2=77,c3=77,c4=77

c=m,c=109

(2)整型数据的溢出错误。

2_2.c)

在VC中,整型(int型)的数据范围是-2147483648~2147483647,以下程序会出现什么结果?

为什么?

{inta,b;

a=2147483647;

b=a+1;

b=%d\n"

b);

a=-2147483648;

b=a-1;

b=-2147483648

b=2147483647

(3)实型数据的舍入误差。

2_3.c)

实型变量只能保证7位有效数字,后面的数字无意义。

{floata,b;

a=123456.789e5;

b=a+20;

a=%f,b=%f\n"

a,b);

a=%e,b=%e\n"

a=12345678848.000000,b=12345678848.000000

a=1.234568e+010,b=1.234568e+010

(4)已知:

a=2,b=3,x=3.9,y=2.3(a,b是整型,x,y是浮点型),计算算术表达式(float)(a+b)/2+(int)x%(int)y的值。

试编程上机验证。

2_4.c)

提示编程要点:

a、先判断结果值类型,可设置一个此类型的变量用于记录表达式结果,本例用r存放结果;

b、程序先给几个条件变量赋初值,然后将表达式赋值给变量r;

c、最后输出变量r的值就是表达式的值。

参考程序:

{inta=2,b=3;

floatx=3.9,y=2.3;

floatr;

r=(float)(a+b)/2+(int)x%(int)y;

%f\n"

r);

3.500000

思考:

为什么是这个结果?

(5)分析下面程序结果,并上机验证。

2_5.c)

{inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

i=%d,j=%d,m=%d,i=%d\n"

i,j,m,n);

i=9,j=11,m=9,i=10

实验三:

简单的程序设计及逻辑结构程序设计(2学时)

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

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

(3)了解C语言表示逻辑量的方法。

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

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

可选做以下题目:

(1)掌握各种数据类型的正确使用方法。

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

(3)编程序:

给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。

90分以上为A,81~89分为B,70~79分为C,60~69分为D,60分以下为E。

(4)编程序:

输入一个不多于5位的正整数,要求:

①求出它是几位数;

②分别打印出每一位数字;

③按逆序打印出各位数字。

(2)完成或选做上面4个程序题。

请调试下面两个程序,得到输出结果,并思考为什么是这个结果?

程序1:

{inta=5,b=7;

floatx=67.8564,y=-789.124;

charc='

A'

;

longn=1234567;

unsignedu=65535;

%d%d\n"

%3d%3d\n"

%f,%f\n"

x,y);

%-10f,%-10f\n"

%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n"

x,y,x,y,x,y);

%e,%10.2e\n"

%c,%d,%o,%x\n"

c,c,c,c);

%ld,%lo,%x\n"

n,n,n);

%u,%o,%x,%d\n"

u,u,u,u);

%s,%5.3s\n"

"

COMPUTER"

);

运行结果:

程序2如下,请问如何输入才能得到正确的输出结果:

{inta,b;

floatx,y;

charc1,c2;

scanf("

a=%db=%d"

&

a,&

b);

%f%e"

x,&

y);

%c%c"

c1,&

c2);

%d,%d,%.1f,%e,%c,%c\n"

a,b,x,y,c1,c2);

答案:

运行时输入:

3_2.c)

{charc1,c2;

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

\n%c,%c"

c1,c2);

输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。

注:

90分以上为A级,81~89分为B级,70~79分为C级,60~69分为D级,60分以下为E级。

3_3.c)

#include"

stdio.h"

{intscore,s;

chargrade;

pleaseinputscore:

"

%d"

score);

s=score/10;

switch(s)

{case10:

case9:

grade='

break;

case8:

B'

case7:

C'

case6:

D'

case5:

case4:

case3:

case2:

case1:

case0:

grade='

E'

}

score=%d,grade=%c\n"

score,grade);

①求出它是几位数,并输出;

②分别输出每一位数字;

③按逆序输出各位数字。

3_4.c)

{longa,b,c,d,e,num;

%ld"

num);

if(num>

=0&

&

num<

=99999)

{a=num/10000;

b=num%10000/1000;

c=num%10000%1000/100;

d=num%10000%1000%100/10;

e=num%10000%1000%100%10;

if(a!

=0)

printf("

5=%ld,%ld,%ld,%ld,%ld\n"

a,b,c,d,e);

elseif(b!

4=%ld,%ld,%ld,%ld\n"

b,c,d,e);

elseif(c!

3=%ld,%ld,%ld\n"

c,d,e);

elseif(d!

2=%ld,%ld\n"

d,e);

elseif(e!

1=%ld\n"

e);

else

0=0\n"

实验四:

循环控制程序设计(2学时)

(1)结合程序掌握一些简单的循环语句的算法。

(2)熟悉掌握用while语句,do-while语句和for语句实现循环的方法。

(3)掌握在程序设计中用循环的方法实现一些常用算法。

(可选做以下题目)

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

(2)从键盘输入一个int类型的正整数,输出它的所有因子。

如输入6,输出1,2,3;

输入20,输出1,2,4,5,10。

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

(4)输出100到1000之间的所有水仙花数。

(5)猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

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

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

到第10天早上想再吃时,见只剩一个桃子了。

求第一天共摘了多少桃子。

(2)完成或选做上面5个程序题。

4_1.c)

voidmain()

{intx,y,i,m,max;

%d,%d"

if(x>

y)

m=x;

else

m=y;

for(i=1;

i<

=m;

i++)

{if((x%i==0)&

(y%i==0))

max=i;

%d\n"

max);

x*y/max);

4_2.c)

{intx,i;

x);

x;

{if(x%i==0)

i);

4_3.c)

string.h>

{charc;

intletter=0,digit=0,space=0,other=0;

pleaseinputstring:

while((c=getchar())!

='

\n'

{if(c>

a'

c<

z'

||c>

Z'

letter++;

elseif(c>

0'

9'

digit++;

elseif(c=='

'

space++;

elseother++;

%d,%d,%d,%d\n"

letter,digit,space,other);

(4)输出所有的“水仙花数”。

所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。

4_4.c)

{intge,shi,bai,number;

for(number=100;

number<

1000;

number++)

{bai=number/100;

shi=(number%100)/10;

ge=number%10;

if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge)

\nnumber=%d\n"

number);

}

编程序求第一天猴子共摘了多少桃子。

4_5.c)

{intday,qian,hou=1;

for(day=9;

day>

=1;

day--)

{qian=(hou+1)*2;

hou=qian;

qian);

实验五:

数组(2学时)

(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法。

(2)掌握字符数组和字符串的使用方法。

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

(1)用选择法(或冒泡法)对10个整数排序。

(2)有一个已排好序的数组,今输入一个数,要求按原来排序的规律将该数插入到数组中。

(3)将两个字符串连接起来。

(4)编程序找出一个5X4矩阵的鞍点。

鞍点即矩阵中的某个元素符合如下条件:

在其所在行最大,同时在其所在列是最小,当然一个矩阵可能也没有鞍点。

5_1.c)

(选择法)

{intr[9]={0,49,38,65,07,76,13,27,33};

inti,j,k,temp;

for(i=1;

9-1;

{k=i;

for(j=i+1;

j<

9;

j++)

if(r[j]<

r[k])

k=j;

temp=r[i];

r[i]=r[k];

r[k]=temp;

%d\t"

r[i]);

5_2.c)

{inta[10]={1,3,6,9,11,26,55,79,123},num,i,j;

for(i=8;

i>

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1