毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 报告 >> 正文

C语言程序设计上机实训报告

更新时间:2009-12-4:  来源:毕业论文
C语言程序设计上机实训报告
教学周数 : 第13~14周(2周)
地 点: 南门机房2楼
指导老师: 苏兴龙 李 莹
实训目的:
1、通过两周集中强化上机实训,使学生更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧。
2、通过本次实训,使学生应用C语言在程序设计方面得到系统锻炼,为将来用C、VC进行软件开发打下良好基础。
实训环境:
硬件:
软件:Windows XP Turbo C V2.0
实训要求:
1、对所编写的源程序的要求:
(1)每人独立完成6套题调试任务;
(2)明确填空题与改错题的算法思路;
(3)编源程序要有适当的注释,使程序容易阅读;
(4)要求独立完成任务,不得抄袭。
2、实训报告内容的要求:
(1)统一封面;
(2)C语言编程题源程序代码;
(3)实训总结。
实训内容(共6套):
第一套 上机训练试题
一.填空题
1.下列给定程序中,函数fun()的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Ab, c D”,则输出“ab,cd”。
试题程序:
#include <stdio.h>
#include <string.h>
#include <conio.h>
char *fun (char tt[ ])
{
int i;
for(i=0;tt;i++)
{
if((tt>=’A’)&&(tt<= ‘z’ )
/*tt的范围在26个英文字母的取值之间,因此该处填写‘z’,又因为小写字母的ASCII值大于大写字母的ASCII值。*/
tt+=32;
}
return(tt);
}
main()
{
char tt[81];
printf(“\nPlease enter a string :”);
gets(tt);
printf(“\nThe result string is:\n%s”,fun( tt ));
/*该处调用了被调用的fun函数,fun被调用的fun函数的函数名为tt*/
}
2.改错题
下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。
例如:a中的字符串为fshADfg, b中的字符串为sdAEdi,则c中的字符串应为fdAADf.
请改正程序中的错误,使它能得到正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序中的结构。
试题程序:
#include <stdio.h>
#include <string.h>
void fun(char p[],char q[],char c[])
{ int i=0,j=0,k=0;
while(p||q[j])
/*********found***********/
{ if(p<=q[j]) c[k]=p
else c[k]=q[j];
/*根据题目中要求比较两个字符串对应的的字符,把ASCII值小的存放到c数组中。
if(p)
i++;
if(q[j])
j++;
/************found*************/
k++;
}
}
main()
{ char a[10]=”fshADfg”,b[10]=”sdAEdi”,c[80]={‘\0’};
fun(a, b,c);
printf(“The string a:”); puts(a);
printf(“The string b:”); puts(b);
printf(“The result :”); puts(c);
}
3.编程题
请编写函数fun,其功能是将两个两位数的正数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。例如,当a=16,b=35,调用该函数后,c=5361。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
long fun(int a,int b)
{long c;
c=(b%10)*1000+(b/10)*100+(a%10)*10+(a/10);
/*题目中要求把a、b中的数字存放到c中组成一个四位数,a的十位做c的个位,a的个位做c的十位,b的个位做c的千位,b的十位做c的百位。因此给b、a各求得的余数做c的千位和十位,而他们求得的商做c的百位和个位。*/
}
main()
{int a,b;
long c;
clrscr();
printf(“Input a, b:”);
scanf(“%d, %d”,&a,&b);
c=fun(a,b );
printf(“The result is:%ld\n”,c);
}
第二套 上机训练试题
1. 填空题
下列给定程序中,函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
试题程序:
#include <stdio.h>
#define SIZE 20
fun(double s[ ],double w[ ])
{ int k, i; double sum;
for(k=2,i=0; i<SIZE; i++)
{s=k;k+=2;}
sum=0.0;
for(k=0,i=0;i<SIZE;i++)
{sum+=s;
if((i+1) % 5==0)
{w[k]=sum/5;sum=0;k++;}
}
return k;
/*根据条件求五个数的平均值,存放到w数组中,否则,返回k继续求。*/
}
main()
{ double a[SIZE],b[SIZE/5];
int i,k;
k=fun(a,b);
printf(“The original data:\n”);
for(i=0;i<SIZE;i++)
{
if(i%5==0) printf(“\n”);
printf(“%4.0f”,a);
}
printf(“\n\nThe result:\n”);
for(i=0;i<k;i++) printf(“%6.0f”, b );
printf(“\n\n”);
}
2.改错题
下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。
Y=
例如:m中的值为5,则应输出0.838611。
请改正程序中的错误,使它能得到正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<conio.h>
#include<stdio.h>
double fun(int m)
/*被调用函数是一个表达式而并非一条语句*/
{double y=1.0;
/***************found************/
int j=1;
int i;
for(i=2;i<m;i++)
{ j=-1*j;
/***************found************/
y+=1.0* j/(i*i);
}
return (y);
}
main()
{
int n=5;
clrscr();
printf(“\nThe result is %lf\n”,fun(n));
}
3.编程题
请编写一个函数void fun(int tt
[N],int pp[N]),tt指向一个M行N列的二维数组,求出数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号内填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#define M 3
#define N 4
void fun(int tt
[N],int pp[N])
{ int i,j,max;
for(j=0;j<N;j++)
{max=tt[0][j];
for(i=0;i<M;i++)
if(tt[j]>max)
max=tt[j];
pp[N]=max;}
/*定义被调用函数的初值及条件tt[j]值如果大于max则,把max给予tt,最后把max值赋予P[N的数组。*/
}
main()
{int t
[N]={{68,32,54,12},{14,24,88,58},
{42,22,44,56}};
int p[N],i,j,k;
clrscr();
printf(“The riginal data is:\n”);
for(i=0;i<M;i++)
{
for (j=0;j<N;j++)
printf(“%6d”,t[j]);
printf(“\n”);
}
fun(t,p);
printf(“\nThe result is:\n”);
for(k=0;k<N;k++)
printf(“%4d”,p[k]);
printf(“\n”);
}
第三套 上机训练试题
1.填空题
下列给定程序中,函数fun()的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为a),其他字符不变。
试题程序:
#include <stdio.h>
#include <ctype.h>
#include<conio.h>
void fun(char s[])
{int i=0;
while( s [] )
/*当数组s满足此条件是执行下面的if语句。*/
{ if(s>=’A’&&s<=’Z’||s>=’a’&&s<=’z’)
{if(s==’Z’) s=’A’;
else if(s==’z’) s=’a’;
else s+= 1 ;
i++; }
else break ;
/*当条件不满足时跳出循环。*/
}
}
main()
{char s[80];
printf(“\n Enter a string with length<80:\n\n”); gets(s);
printf(“\n The string:\n\n”); puts(s);
fun(s);
printf(“\n\n The Cords :\n\n”); puts(s);
}
2.改错题
下列给定程序中,函数fun的功能是按以下递归公式求函数值。Fun(n)=
例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。
请改正程序中的错误,使它能得到正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
/***************found************/
fun(int n)
{ int c;
/**************found***********/
if(n= =1) c=15;
else c=fun(n-1)*2;
return(c);
}
main()
{
int n;
printf(“Enter n:”);
scanf(“%d”,&n);
printf(“The result :%d\n\n”,fun(n));
}
3.编程题
请编写函数fun(),对长度为7个字符的字符串, 除首、尾字符外,将其余5个字符按ASCII值码升序排列。例如:原来的字符串为BdsihAd,则排序后输出为BAdhisd。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#include <ctype.h>
#include<conio.h>
int fun(char s[],int num)
{char t;
int i,j;
for(i=1;i<num-2;i++)
for(j=i+1;j<num-1;j++)
if(s>[j])
{t=s;
s=s[j];
s[j]=t;}
}
/*定义被调用函数的条件对字符串除首尾外,其余按ASCII值的大小排出。*/
main()
{ char s[10];
clrscr();
printf(“输入7个字符的字符串:”);
gets(s);
fun(s,7);
printf(“\n%s”,s);
}
第四套 上机训练试题
1.填空题
下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为87653142时,t中的数为7531。
试题程序:
#include <stdio.h>
#include <conio.h>
long fun(long s)
{ int d,t;
long s1=1;
t=0;
while(s>0)
{ d=s % 10;
/*求出该长整型数中的各个数*/
if(d%2!=0)
{t=d*s1+t;
s1*= 10 ;
}
s/= 10 ;
}
return t;}
main()
{long s,t;
clrscr();
printf(“\nPlease enter s: “); scanf(“%ld”,&s);
t=fun(s);
printf(“The result is:%ld\n”,t);
}
2.改错题
下列给定程序中函数fun()的功能是计算 1/n!的值。
例如:给n输入5,则输出0.008333。
请改正程序中的错误,使它能得到正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
/*************found**************/
double fun(int n)
{ double result =1.000000;
if(n==1)
return 1.000000;
/*因为其结果是实型的数,因此小数点后保留6位小数*/
while(n>1&&n<170)
/**************found************/
result *=n--;
result=1/result;
return result;
}
main()
{
int n;
printf(“Input n:”);
scanf(“%d”,&n);
printf(“\n%d!=%lf\n”,n,fun(n));
}
3.编程题
编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。
例如:n为1000时,函数值应为s=96.979379。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include < conio.h>
#include <math.h >
#include <stdio.h>
double fun(int n )
{int i,sum=0;
double s;
for(i=1;i<n;i++)
{while(i%5==0&&i%11==0)
sum+=i;
s=sqrt(sum);}
break i;
/*定义被调用函数的条件及初值*/
}
main()
{
clrscr();
printf(“s=%f\n”,fun(1000));
}
第五套 上机训练试题
1.填空题
下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:
I am a student to take the examination
则应输出:I aM A studenT tO takE thE examinatioN
试题程序:
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
void fun(char p[])
{
int i,k=0;
for (i=0; p!=’\0’ ;i++)
if(k)
{
if(p= =’ ‘)
{
k=0 ;
p[i-1] =toupper(p[i-1]);
/*toupperp[i-1]值赋给p[i-1]*/
}
}
else
k=1;
}
main()
{char chrstr[64];
int d;
printf(“\n please enter an English sentence within 63 letters:”);
gets(chrstr);
d=strlen(chrstr);
chrstr[d]=’ ‘;
chrstr[d+1]=0;
printf(“\n Bofore changing:\n %s”,chrstr);
fun(chrstr)- ;
/*被调用函数*/
printf(“\n After changing:\n %s”,chrstr);
}
2.改错题
下列给定程序中函数fun()的功能是计算正整数num的各位上的数字平方和。
例如:输入352,则输出38;若输入328,则输出应该是77。
请改正程序中的错误,使它能得到正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
long fun(long num)
{
/***********found*****************/
long k=1;
do{
k+=(num%10)*(num%10);
num/=10;
/**************found**************/
}while(num);
return(k-1);
/*条件不满足时返回*/
}
main()
{
long n;
clrscr ();
printf(“\please enter a number :”);
scanf(“%ld”,&n);
printf(“\n%ld\n”,fun(n));
}
3.编程题
请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为F(n)=
例如:t=1000时,函数值为987。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <math.h>
#include <stdio.h>
int fun(int t)
{int a=1,b=1,c=0,I;
do{c=a+b;
a=b;
b=c;
while(c<t);
c=a;
return c;
/*该被调用函数的需要的条件用来满足主函数。*/
}
main()
{
int n;
clrscr();
n=1000;
printf(“n=%d,f=%d\n”,n,fun(n));
}
第六套 上机训练试题
1.填空题
下列给定程序中,函数fun()的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。
试题程序:
# include <conio.h>
# include <string.h>
# include <stdio.h>
# define N 80
int fun(char s[],char t[])
{ int n;
int i, j, k;
n=0; i=0;
while(s!=’\0’)
{ k=i;
j=0;
while(t[j]!=’\0’)
if(s[k]= =t[j]) {j++; i++ ;}
else break;
if(t[j]= = s[i+1] )
n++;
s++ ;
/*s字符串中含有t所指字符串的数目条件不满足是s,i自加。*/
}
return n;
}
main()
{ char a[N],b[N];int m;
printf(“\nPlease enter string a :”);gets(a);
printf(“\nPlease enter substring b :”);gets(b);
m=fun(a,b);
printf(“\nThe result is :m=%d\n”,m);
}
2.改错题
下列给定程序中,函数fun()的功能是将字符串s中位于偶数位置的字符或ASCII码为奇数的字符放入字符串t中(规定第1个字符放在第0位中)。
例如:字符串中的数据为ADFESHDI,则输出应当是AFESDI.
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构
试题程序:
# include <conio.h>
# include <stdio.h>
# include <string.h>
# define N 80
/***********found*************/
void fun(char s[],char t[ ])
{
int i,j=0;
/*给j赋初值*/
for(i=0;i<=strlen(s);i++)
/*************found*************/
if(i%2= =0||s%2!=0)
t[j++]=s;
t[j]=’\0’;
}
main()
{ char s[N],t[N];
clrscr();
printf(“\nPlease enter string s:”);
gets(s);
fun(s,t);
printf(“\nThe result is:%s\n”,t);
}
3.编程题
请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与其自身)的平方和(规定n的值不大于100)。
例如:主函数从键盘给输入n的值为56,则输出为sum=1113。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
# include <stdio.h>
long fun(int n)
{int i;
long s=0;
for(i=2;i<n-1;i++)
if(n%I)==0
c+=i*I ;
return s;
/*定义被调用函数中需要用到条件和变量。用来实现主函数的功能*/
main()
{int n;
long sum;
printf(“Input n:”);
scanf(“%d”,&n);
sum=fun(n);
printf(“sum=%ld\n”,sum);
}
成绩考核:
1.成绩考核以实验报告为主要依据,主要考察填空题和改错题的正确性以及编程题所采用的算法和思路。
2.上交实验报告时,老师对报告内容进行提问,学生的答辩情况作为成绩评定的参考指标。
3.平时表现和考勤作为成绩评定的一项指标。
C语言程序设计上机实训报告下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。