c语言实验六
- 格式:doc
- 大小:155.50 KB
- 文档页数:7
集美大学高级语言程序设计课程实验报告
课程名称:函数与程序结构班级:实验成绩:
指导教师:吴晓晖姓名:
实验项目名称:实验六—函数学号:上机实践日期:
一、目的
熟悉VC编程环境;
编程初步——变量、常量、表达式及程序结构初步
二、实验内容
1.将字符串ct复制到字符串s。
2.将字符串ct链接在字符串S之后。
3.比较字符串cs和ct。
4.在串1中找串2出现的次数并找位置.
5.每行放一个数,程序每次放入一行数,并累加各行数据,输出累加和
6.思考题:(1)在定义点之后使用外部变量。
(2)在定义点之前使用外部变量(3)外部变量在另外一个文件(4)本程序有外部变量的同名变量
三、实验使用环境
VC++ 6.0控制台程序
四、实验关键代码与结果展示(部分截图)
1.将字符串ct复制到字符串s。
源代码:
#include <stdio.h>
void copy(char a[],char b[])
{
int i;
for(i=0;b[i]!='\0';i++)
{
a[i]=b[i];
}
a[i]='\0';
}
void main()
{
char s[80],t[80];
printf("please input a char:");
scanf("%s",&t);
copy(s,t);
printf("t[]=%s\n",t);
printf("s[]=%s\n",s);
}
部分截图:
2.将字符串ct链接在字符串S之后。
源代码:
#include <stdio.h>
int strlen(char s[])
{
int i;
for(i=0;s[i]!='\0';i++);
return i;
}
void main()
{
int i,j;
char s[80],t[80];
printf("input a char:");
scanf("%s",&s);
printf("s[]=%s\n",s);
printf("input another char:");
scanf("%s",&t);
printf("t[]=%s\n",t);
i=strlen(s);
for(j=0;t[j]!='\0';j++)
s[j+i]=t[j];
s[i+j]='\0';
printf("stacat=%s\n",s);
}
部分截图:
3.比较字符串cs和ct。
源代码:
#include <stdio.h>
int strcmpl(char s1[],char s2[])
{
int i,com=0;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]!=s2[i]) break;
return s1[i]-s2[i];
}
void main()
{
char s1[]="ab123",s2[]="abc";
int rel;
rel=strcmpl(s1,s2);
printf("rel=%d\n",rel);
}
部分截图:
4.在串1中找串2出现的次数并找位置.
源代码:
#include <stdio.h>
int strindex(char a[],char b[])
{
int i,j,k;
int num=0;
for(i=0;a[i]!='\0';i++)
{
for(j=i,k=0;b[k]!='\0'&&a[j]==b[k];j++,k++);
if(b[k]=='\0')
{
printf("出现的位置:%d\n",i+1);
num++;
}
}
printf("出现的次数:%d\n",num);
return i+1;
}
void main()
{
char s[]="ab12abc12",t[]="1ht";
int pos;
pos=strindex(s,t);
}
部分截图:
5.每行放一个数,程序每次放入一行数,并累加各行数据,输出累加和源代码:
#include<stdio.h>
#include<ctype.h>
#define MAXLINE 100
int getline(char s[],int lim)
{
char c;
int i=0;
c=getchar();
while(c!='\n'&&c!=EOF&&i<lim-1)
{
s[i]=c;
i++;
c=getchar();
}
if(c=='\0')
s[i++]=c;
s[i]='\0';
return i;
}
double atof(char s[])
{
double val,power;
int i,sign;
for(i=0;isspace(s[i]);i++);
sign=(s[i]=='-')?-1:1;
if(s[i]=='+'||s[i]=='-')
i++;
for(val=0.0;isdigit(s[i]);i++)
val=10.0*val+(s[i]-'0');
if(s[i]=='.')
i++;
for(power=1.0;isdigit(s[i]);i++)
{
val=10.0*val+(s[i]-'0');
power*=10.0;
}
return sign*val/power;
}
void main()
{
double sum,atof(char[]);
char line[MAXLINE];
int getline(char line[],int max);
sum=0;
while(getline(line,MAXLINE)>0)
printf("\t%g\n",sum+=atof(line));
}
部分截图:
6.思考题:(1)在定义点之后使用外部变量。
(2)在定义点之前使用外部变量(3)外部变量在另外一个文件(4)本程序有外部变量的同名变量
答;(1)外面变量对定义点之前的程序无效。
必须在前面加“extern 数据类型外部变量名”或者把外部变量移到定义点之前。
(2)外部变量对定义点之后的函数都起作用。
(3)外部变量在另外一个文件里时对程序不起作用,只有建立联系即把相关的源文件导入,并在定义点之前定义extern在会起作用。
(4)在
定义函数中的局部变量只对此定义函数起作用,外部变量将被屏蔽。
当在main()区域中外部变量会对此区域起作用。