篇一:C语言基础编程实习报告
(2011~2012学年第 2学期)
实习名称:认识实习
分项名称: C语言基础编程
系 别: 计算机与通信工程系
专 业:测控(1)班
学 号:
姓 名:
实习地点: 学校机房3楼
实习时间: 8月23日~8 月26日
实习成绩:
指导教师:严光银翟勇涛
西南交通大学峨眉校区
2012年 8 月 26 日
一.实习目的和要求
实习目的:
1、巩固C语言编程基础知识
2、熟练C语言调试中的常见错误及处理办法
3、加强C语言综合编程能力训练
4、熟练掌握C语言程序上机调试过程
5、学会编写C语言程序解决简单计算题、字符串处理问题、日期和时间处理问题、高精度数处理等问题
6、提高外文资料阅读理解的能力。
要求:
1.电子文档
建立一个文件夹,名称为:学号姓名 C基础
如:学号为20106900,姓名为李四,
则,文件夹名称: 20106900李四 C基础
①C基础编程(10个C程序)
文件名格式:学号姓名简拼_题目编号A.c
如:题号为1001,则文件名为:20106900LS_1001A.c
②C强化编程(共10道,至少选做4道题)
文件名格式:学号姓名简拼_题目编号B.c
③实习报告电子文档:学号姓名 C基础.doc
④改正错误分析示例中的错误
2.实习报告(打印稿)
二.实习方式和安排
方式:上课与上机
安排:
三. 实习内容
(一)C基础编程(选做6题)
? 在杭电OJ成功提交的题目数:6
? 在杭电OJ未成功提交的题目编号:无
? 提交的电子文档中包含的C程序数:6
从6道基础编程题中任选2道比较满意的题目,写出详细解题报告如下:
***************************第1题 start*****************************
(1) 题目解析
题目编号 1108
问题描述
编写程序计算2个整数a、b的最小公倍数。
输入数据
输入数据输入2个整数a和b,中间用空格间隔。
输出要求
对于每次读入的一对整数,输出最小公倍数的结果。每个结果以回车结束。
输入样例
56 256
输出样例
1792
(2) 源程序
#include<stdio.h>
int big(int x,int y);
int main()
{
int a,b,max,n;
while(scanf("%d%d",&a,&b)!=EOF)
{
max=big(a,b);
n=a/max*b;
printf("%d\n",n);
}
return 0;
}
int big(int x,int y)
{
int p,t,s;
if(x==y)
s=x;
if(x<y)
{
p=y;y=x;x=p;
}
t=x-y;
while(t)
{
if(t>y)
x=t;
else
{
x=y;
y=t;
}
t=x-y;
s=y;
}
return(s);
}
(3) 本地计算机运行结果截图
(4) OJ提交结果截图
***************************第
***************************第1题 end******************************** 2题 start*****************************
(1) 题目解析
题目编号 1040
问题描述
这些天,我思考一个问题,我怎样才能得到一个问题一样容易a + B吗?这是相当困难做这样一件事。当然,我得到了它在许多清醒的夜晚。
给你一些整数,你的任务是将这些数字提升(升序)。
你应该知道如何容易的问题是现在!
祝你好运!
输入数据
输入包含多个测试用例。第一行的输入是一个整数T这是测试用例的数量。T测试用例遵循。每个测试用例包含一个整数N(1 < = N < = 1000的整数排序),然后N个整数在同一线路。遵循
这是保证所有的整数范围在32位整数
输出要求
对于每个案例中,打印排序结果,一行一个案例。
输入样例
56 256 输出样例
1792
(2) 源程序
#include <stdio.h>
void main()
{
int n,m,a[1000];
int i,j,c1,c2,k;
while (scanf("%d",&n)!=EOF)
for (c1=1;c1<=n;c1++)
{
scanf("%d",&m);
for (c2=0;c2<m;c2++)
scanf("%d",&a[c2]);
k=1;
for(i=1;i<m && k==1;i++)
{ k=0;
for(j=0;j<m-i;j++)
if (a[j]>a[j+1])
{a[j]=a[j]+a[j+1];
a[j+1]=a[j]-a[j+1];
a[j]=a[j]-a[j+1];
k=1;
}
}
for (i=0; i<m; i++)
if (i<m-1) printf("%d ",a[i]); else printf("%d\n",a[i]);
}
}
篇二:c语言实践报告
实 验 报 告
《高级语言程序设计》
2015~2016学年第 二 学期
综 合 实 验
一?实验目的
通过实验把C语言中的顺序结构、选择结构、循环结构、数组、函数等主要知识点进行综合应用,加深学生对编程算法思想的理解,进一步提高学生的编程能力。
二?实验学时数
2学时+课后4学时
三?实验步骤
(1)程序流程控制
分别求100以内奇数、偶数之和。
问题重述:
1到100的所有奇数相加,然后输出,
1到100的所有奇数相加,然后输出。
问题分析及算法步骤:
定义两个变量a1,a2表示奇数的和,偶数的和,赋予a1,a2初始值为 a1=0,a2=0 。 For循环结构从0开始到100,判断i能否被2整除,若不能,则a1=a1+i,若能,则a2=a2+i,最后输出a1,a2的值。
程序清单:
运行结果:
(2)数组的应用
有一个3×4的矩阵,求其中的最小元素的值及其行列下标。
问题重述:
已知的一个3乘4的矩阵中,找出这12个数中的最小一个,并记下它的行下标和列下标,然后在输出它的值及其行下标和列下标。
问题分析及算法步骤:
定义行为i,列为j,然后把a【0】【0】的值赋给min,min再与a【0】【1】进行比较,如果a【0】【1】比min小,则再把a【0】【1】赋给min,否则不变。依次重复上述处理,最后得出的min就是矩阵的最小值,同时把最小值时的i,j输出。
程序清单:
运行结果:
(3)函数的调用
将起泡排序法编写成函数,实现10个任意整数按从小排序。 问题重述:
编写一个函数,该函数能够在主函数中被调用,并且该函数能够让任意排序的十个数重新按照有小到大排序。
问题分析及算法步骤:
定义一个一维数组a【10】,输入任意排序的10个整数,赋值给该数组,比较a【0】和a【1】,若a【0】>a【1】,则交换,然后a【1】与a【2】比较,直到a【8】与a【9】,然后在对a【8】前的数进行第二趟起泡法排序,以此类推。经过9次起泡法排序后结束排序。最终在主函数中调用该函数,实现排序。
程序清单
运行结果:
(4)综合练习
可编写多个自定义函数,求每个学生的平均成绩,所有学生成绩的最大值、最小值并保存在数组中;在主函数中有正确输入和函数调用,学生的学号及各科成绩可以根据不同的情况采用不同的输入方法,学生人数和课程数量自定。 问题重述:
本题要求编写多个自定义的函数,这些多个自定义函数在被主函数调用后能够分别求出每个学生的平均成绩,所有学生成绩的最大值和最小值都保存在数组中。
问题分析及算法步骤:
假设有是2个学生,2门学科,定义平均数为aver,在aver中定义形参数组a【2】【2】,来保存实参的数据,并定义是aver【2】来保存2个学生的平均分,a【i】代表学生的学号,定义一个最大值max和最小值min,并把max的值赋给m,min的值赋给n,在主函数中分别调用各个函数,输出结果,程序结束。 程序清单:
运行结果:
篇三:c语言实训报告
《C程序设计》实训
报告书
课程名称 C程序设计实训 ,
任 务 书
实训(习)题目:
1.建立链表(链表的结点类型与成员个数等由学生自己定义)
2. 杨辉三角形
3. 数制转换
4. 抓交通肇事犯
5. 捕鱼和分鱼
6. 求100到1000之间有多少个其数字之和为5的整数。
7. 求素数
8. 百钱百鸡问题
9. 奇数平方的一个有趣性质
10. 回文数的形成
实训(习)目的及要求:
1. 通过本实训,培养上机动手能力,使学生巩固《C程序设计》课程学习的内容,掌握工程软件设计的基本方法,培养自己独立分析问题与解决问题的能力,强化上机动手能力,闯过编程关。
2. 为后续各门计算机课程的学习打下坚实基础。
3. 至少完成实训题目中5道题(自选)。
4. 实训报告中每个题目必须包括三部分内容:问题分析与算法设计、源程序代码和运行结果。
5. 实训(习)个人总结字数不少于400字。
实训(习)设备:
计算机
实训(习)内容及过程:
1. 杨辉三角形
在屏幕上显示杨辉三角形,行数由用户输入确定。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
解:程序如下:
#include <stdio.h>
main()
{ int i,j,n=0,a[17][17]={1};
while(n<1 || n>16)
{ printf("请输入杨辉三角形的行数:");
scanf("%d",&n);
}
for(i=1;i<n;i++)
{ a[i][0]=1; /*第一列全置为一*/
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j]; /*每个数是上面两数之和*/ }
for(i=0;i<n;i++) /*输出杨辉三角*/
{ for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
运行结果:
2. 数制转换
将任一整数转换为二进制形式。 输入:8
输出:1000
输入:235
输出:11101011
解:程序如下:
#include "stdlib.h" void main()
{
int n,x=0,a[100];
printf("请输入转换的数:\n");
《c语言程序员编程暑期实习生报告3000字以上》
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/show/93816.html
转载请保留,谢谢!
- 上一篇:c