C课内实验参考模板Word文档下载推荐.docx
- 文档编号:17947062
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:31
- 大小:42.88KB
C课内实验参考模板Word文档下载推荐.docx
《C课内实验参考模板Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C课内实验参考模板Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
程序1代码:
程序2代码:
程序3代码:
(3)"
学号姓名实验1"
的文件包含有以上三个C源程序。
当编辑完成程序1后,对其进行、连接和运行,分析其结果是否符合题目要求,符合后则对C语言源程序加上注释。
编辑程序2交对其进行编译连接和运行。
编辑程序3并对其进行编译连接和运行。
5、实验报告
(1)实验过程的基本步骤。
(2)实验过程中使用到的变量的数据类型、使用的相关格式符的含义。
(3)实验结论数据的分析。
(4)实验过程遇到的问题的解决方法。
C语言课内实验报告2
专业学号姓名指导教师
实验名称数据类型、运算符、表达式成绩
(1)掌握C语言的数据类型、熟悉如何定义基本的数据类型以及对它们赋值的方法。
(2)掌握C语言的有关运算符,以及使用这些运算符的表达式。
(3)进一步熟悉C语言源程序的建立,编辑,修改,保存,编译和运行的基本步骤
2、实验预备
(1)变量定义
(2)运行符的使用及优先级
(1)分析程序下面程序的运行结果.
#include<
stdio.h>
intmain()
{intx,y;
x=20;
y=(x=x-5.0/5);
printf("
y=%d\n"
y);
return0;
}
根据编译、链接和运行回答下面问题:
①编译时,警告错误主要体现在实型数据赋给左边的变量
答:
②5.0和5是双精度和整型数据之分
(2)分析下面程序,写出运行结果
{inti,j,m,n;
i=5;
j=15;
m=i++;
n=++j;
printf(“i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n);
①编写程序运行的结果
②分析表达式m=i++和n=++j的执行过程及有所区别?
(3)下面的程序是输入一个字符,判断它是否为大写字母,如果是将它转换成小写字母,如果不是不进行转换,最后输出这个字符.
main()
{charch;
scanf("
%c"
&
ch);
ch=(ch>
='
A'
&
&
ch<
Z'
)?
(ch+32):
ch;
%c\n"
ch);
根据编译、连接和运行,回答下列问题:
①本程序运行的是格式输入输出,若修改为getchar()和putchar(),则程序如何?
②分析表达式ch=(ch>
(ch+32):
ch的执行过程?
若用户输入B,则输出什么?
若用户输入b,则输出什么?
(4)上机运行程序:
#definePRICE35
{intx=10;
PRICE=PRICE*x;
%d;
%d\n"
x,PRICE);
根据编译连接运行回答下列问题:
①编译时是否有错误信息提示,请分析提示信息的含义?
并修改后重新编译,直到没有错误为止
②#definePRICE35的含义?
若x表明购买商品的件数,PRICE表明是该商品的价格,则该程序实现什么功能?
4.实验报告
(1)将上述C程序文件放在一个“学号姓名实验2”的文件名下,并以该文件名的电子档提交老师。
(2)按实验要求报告的格式完成每题后的要求。
C语言课内实验报告3
专业学号姓名指导教师
实验名称顺序结构程序设计成绩
(1)掌握C语言的数据类型、掌握变量定义,进一步理解变量先定义后使用,先赋值后引用的含义
(2)掌握C语言各种类型变量
(3)掌握不同数据类型之间赋值的规律。
(4)掌握C的有关算术运行符,以及包含这些运算符的表达式的求值规则
(5)熟悉顺序结构,掌握printf()和sacnf()函数
(1).visualc++6.0集成开发环境界面划分成四个主要区域:
同学们启动visualc++6.0开发环境后加以对照认识。
(2).预习教材的在visualc++6.0环境下建立和运行C程序步骤。
【程序1】分析下列程序,并上机运行
#include"
stdio.h"
{longx,y;
inta,b,c,d;
x=5;
y=6;
a=7;
b=8;
c=x+a;
d=y+b;
c=x+a=%d,d=y+b=%d\n"
c,d);
根据编译、连接和运行回答下列问题:
①printf("
语句中:
c=x+a=是普通字符,原样输出;
d=y+b也是普通字符,原样输出;
%d是格式说明,按十进制格式输出数据;
c,d是两个需要输出的整型变量。
②x,y和a,b,c,d的数据类型是否相同?
它们是怎样进行数据类型转换和运算的?
③将%d改为%ld后再编译、连接、运行,比较两个程序运行的结果是否一致,并说明它们两者间有无区别。
【程序2】分析下列程序,并上机运行。
{inta,b,c;
a=5;
b=6;
c=7;
abc\tdc\rf\n"
);
hijk\tL\bM\n"
根据编译、连接和运行,回答下列问题
①\t\r\f\b\n转义字符的作用是什么?
程序运行后输出的结果格式如何?
②整型变量a,b,c均有具体的值,在输出结果中却没有,是何原因?
若输出它们的值,如何修改程序?
【程序3】分析下列程序,并上机运行。
i=2;
j=5;
m=++i;
n=j++;
i=%d\tj=%d\tm=%d\tn=%d\n"
i,j,m,n);
根据编译、连接、运行回答下列问题:
①程序运行的结果:
②++i和j++语句有何区别?
它们的执行过程如何?
【程序4】分析下列程序,并上机运行
{charc1,c2;
c1='
a'
;
c2='
b'
c1=c1-32;
c2=c2-32;
%c%c\n"
c1,c2);
%d%d\n"
①该程序实现了什么功能?
程序输出结果是什么?
②c1-32和c2-32是怎样实现运算的?
%c,%d格式符的含义是什么?
【程序5】用下面scanf函数输入数据,使i=40,j=78,k=56.89,m=2.3,c1='
R'
c2='
T'
.请问在键盘上如何输入?
{inti,j;
floatk,m;
charc1,c2;
i=%d**j=%d"
i,&
j);
%f##%f"
k,&
m);
%c,%c"
c1,&
c2);
i=%d,j=%d,k=%f,m=%f,c1=%c,c2=%c\n"
i,j,k,m,c1,c2);
①若直接输入407856.892.3RT(各数据以空格间隔),程序运行的结果如何?
分析结果是否符合要求,为什么?
②写出3个输入语句在键盘输入时的数据格式。
C语言课内实验报告4
专业学号姓名指导教师
实验名称选择结构程序设计成绩
(1)理解C语言表达式逻辑量的方法。
以0代表假,非0代表真。
(2)正确使用逻辑运算符和逻辑表达式。
关系运算符和关系表达式并运用其表达条件。
(3)熟练掌握if语句和switch语句。
2、实验预备
(1)熟悉逻辑运算符和逻辑表达式、关系运算符和关系表达。
(2)熟悉if语句、if-else语句及其嵌套、switch语句和break语句。
(1)编写程序:
通过键盘输入3个数a,b,c,输出其中最大的数。
算法提示:
首先假设a是最大并存入max变量中,然后用max变量分别与b、c比较,若小,则将b或c的值赋给max,最后max就是3个整数中的最大数。
(2)分别用if-else语句、switch编写程序完成下列函数的输入x,并输出y的值。
(3)下列程序是输入x的值,计算y1和y2的值。
y1=2/x,y2=3/x当x<
0时
y1=0,y2=0当x>
y1=2x,y2=3x当x>
代码设计:
#include"
{inta,b,c;
intmax;
printf("
\ninputtherrnumber:
"
scanf("
%d%d%d"
a,&
b,&
c);
max=a;
if(max<
b)
max=b;
c)
max=c;
max=%d\n"
max);
return0;
输入程序后,进行编译、链接和运行。
判断程序是否有错,若有是什么错误?
运行结果是否正确?
若不正确,请找出错误原因,修改后重新运行,直到结果正确为止。
错误原因是:
(4)求解任意一元二次方程ax2+bx+c=0的根,其中的a,b,c由键盘输入,要求考虑解的各种情况。
①a=0,不是二次方程。
②b2-4ac=0,有两个相等的实根。
③b2-4ac>
0,有两个不等的实根,求x1,x2.
④b2-4ac<
0,有两个共轭的实根
程序代码:
(5)输入任意四个整数,要求按由小到大的顺序输出。
采用if语句实现即if(a>
b)真由交换使a最小。
C语言课内实验报告5
专业学号姓名指导教师
实验名称循环结构程序设计成绩
(1)掌握while语句,do-while语句和for语句实现循环的语法,结构及程序的执行过程。
(2)掌握在程序设计过程中用循环结构实现的一般常规算法。
(3)进一步掌握程序的编写、调试及运算的基本方法。
2、实验内容及实验结论
(1)编写程序1:
输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
(2)编写程序2,编程输出如下图形。
1
123
12345
1234567
123456789
(3)编写程序3,求sn=a+aa+aaa+aaa…a,其中a是用户通过键盘输入的一个具体值,n代表a的位数。
(4)输入任意数量学生的单科成绩,求出其中最高分、最低分和平均分。
程序1代码
intmain()
{intn1=0,n2=0,n3=0,n4=0;
charc;
请输入一行字符\n"
while((c=getchar())!
='
\n'
)
{if((c>
c<
z'
)||(c>
))
n1++;
elseif(c=='
'
)n2++;
elseif(c>
0'
9'
)n3++;
elsen4++;
英文字母个数为:
%d\n空格个数为:
%d\n数字个数为:
%d\n其它字符个数为:
n1,n2,n3,n4);
根据编译、链接、运行程序回答下列问题:
①本题的循环进行条件是什么?
终止条件是什么?
循环体做什么?
②对循环体的语句加上注释。
③绘制程序的流程图或N-S图?
(2)编写程序,输出以下图形。
for(i=1;
i<
=5;
i++)
for(j=1;
j<
=9;
j++)
{if((j<
=5-i)||(j>
=5+i))printf("
"
elseprintf("
%d"
i-(5-j));
if(j==9)printf("
\n"
①本题是双重循环,用到循环变量i,j,其中,它们谁控制了行?
谁控制了列,是如何控制的?
②程序中的if-else语句在循环体中起什么作用?
③将程序中if(i==9)printf("
语句去掉,重新编译、链接、运行程序,观察程序结果并同源程序结果相比较有何不同,若不同请分析原因及说明该语句在程序中的作用。
方法1:
math.h"
{inti,j,a,n,s=0;
请输入an:
%d%d"
n);
=n;
for(i=0;
j;
{s=s+a*pow(10,i);
s=%d\n"
s);
方法2:
{inta,n,i=1;
请输入an的值:
n)
ints=a;
for(inti=2;
{a=a*10+a;
s+=a;
①比较方法1和方法2的算法区别。
答:
②方法1中表达式s+=a*pow(10,i)中pow()是什么函数?
调用此函数时去掉#include<
math.h>
头文件,再去编译、链接、运行程序观察出现什么情况?
③解决本题的核心算法是什么?
程序4代码:
{intn,score,max,min,aver;
aver=0;
n=0;
max=0;
min=100;
\n请输入sxore=?
while
(1)
{scanf("
score);
if(score<
0)break;
aver=aver+score;
n++;
if(score>
max)max=score;
min)min=score;
aver=aver/n;
\nn=%d\n"
n);
\nmax=%d\n"
\nmin=%d\n"
min);
\naver=%d\n"
aver);
根据编译、链接、运行程序程序回答下列问题:
①输入并运行程序。
输入数据如下:
928564785398-1
其中前6个是学科分数,最后输入的一个负数作结束标志。
分析结果是否正确,请找出错误的原因,修改后重新运行,直到结果正确为止。
②程序中if(score<
语句起何作用?
③程序中当循环个数不确定时是如何处理的?
程序中是如何求最高分、最低分的?
这种算法有何特别之处?
C语言课内实验报告6
专业学号姓名指导教师
实验名称数组的运用成绩
(1)掌握数组的定义及其元素的引用方法
(2)掌握字符数组和字符串函数的使用
(3)掌握数组作为数据结构时的程序设计方法
(4)掌握利用数组实现常用算法的基本技巧
2、预习内容
一维数组、二维数组和字符型数组的定义、引用、初始化及输入输出的基本方法。
(1)用循环移位法将数组num中的最后一个数移到最前面,其余数依次往后移一个位置。
某同学设计程序代码如下:
{inti,term,num[10]={0,1,2,3,4,5,6,7,8,9};
term=num[9];
=10;
num[i]=num[i-1];
num[0]=term;
10;
%d"
num[i]);
①上机编辑、编译、链接和运行程序,观察程序的运行结果是否符合要求。
②用动态跟踪法查找错误原因,并观察数组num值的变化情况,分析错误的原因。
③修改程序,直到符合题目要求为止。
(2)用选择法对10个数排序。
10个整数用scanf函数输入。
算法分析:
选择法的基本思想是:
设有10个元素a[1]-a[10],将a[1]与a[2]-a[10]比较,若a[1]比a[2]-a[10]都小,则不进行交换,即无任何操作,若a[2]-a[10]中有一个以上比a[1]小,则将其中最大的一个(假设为a[i]与a[1]交换),此时a[1]中存放了10个数中最小的数。
第二轮将a[2]与a[3]-a[10]比较,将剩下9个数中的最小者a[i]与a[2]对换,此时a[2]中存放的是10个中第2小的数。
依次类推,共进行9轮式比较,a[1]到a[10]就已按由小到大顺序存放。
程序的第一个for语句是完成输入操作,第二个for语句则是将这个数组输出。
第三个for语句则是进行排序。
{inti,j,term,num[11];
enterdata:
{printf("
a[%d]"
j);
a[j]);
Theoriginalnumbers:
\n);
a[i]);
{min=i;
for(j=i+1jj<
if(a[min]>
a[j])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
\nThesortednumbers:
①上机编辑、编译链接和运行程序,体会输入数据时的提示信息及语句格式设计。
②比较选择法与冒泡法的区别是什么?
请用动态跟踪法观测选择法排序算法的实现过程。
(3)以下是方阵转置的程序代码,方阵转置如下图
15913
261014
371115
481216
转置
行转换为列
1234
5678
9101112
13141516
转置是:
a[i][j]=a[j][i];
主对角线:
行下标i=列下标j;
上三角:
行下标i<
=列下标j;
下三角:
行下标i>
=列下标j。
因此要控制好行列下标,防止第1次转换了,而第2次又被转换过来的现象发生。
#includ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 参考 模板