33,311
社区成员
发帖
与我相关
我的任务
分享
文件程序设计题:
请调用fputs函数,把10个字符串输出到文件中;再从此文件中读入这10个字符串放在一个字符串数组中;最后把字符串数组中的字符串输出到终端屏幕,以检验所有操作是否正确。
int main()
{
char arr[10][30]={"aaaaaaaaaaa",\
"bbbbbbbbbb",\
"cccccccccc",\
"dddddddddd",\
"eeeeeeeeee",\
"ffffffffff",\
"gggggggggg",\
"hhhhhhhhhh",\
"iiiiiiiiii",\
"jjjjjjjjjj"
};
FILE *fp;
int i;
if((fp=fopen("stu_list","wb"))==NULL)
{
printf("cant open the file");
exit(0);
}
for(i=0;i<10;i++)
{
fputs(arr[i],fp);
fputs("\n",fp);
}
fclose(fp);
if((fp=fopen("stu_list","r"))==NULL)
{
printf("cant open the file");
exit(0);
}
for(i=0;i<10;i++)
{
fgets(arr[i],sizeof(arr[i]),fp);
}
fclose(fp);
for(i=0;i<10;i++)
{
cout << arr[i] << endl;
}
return 0;
}
函数程序设计:
编写程序outch,程序读入一行字符,根据命令行中的参数进行不同的输出。若有以下命令行:out -2
程序对所读入的一行字符输出最后两个字符。若有以下命令行:
Out +6
程序对所读入的一行字符输出开头6个字符。若命令行中没有参数,则隐含规定输出最后10个字符。为简单起见,命令行的参数中只包含一位数字。
void outch(char *p,char *argv,int n)
{
int len = strlen(p);
if(n>0)
{
p=p+n;
}
else
{
char *pt = p+len-1;
p = pt+n;
}
cout << p << endl;
}
int main(int argc,char *argv[])
{
if(strcmp(argv[1],"out"))
{
return 1;
}
char p[100];
scanf("%s",p);
outch(p,argv[1],atoi(argv[2]));
return 0;
}
3.结构程序设计题:
设有以下结构类型说明:
Struct student
{ char no[5],name[10];
Int score[4];
double average;
};
请编写:
(1)函数readrec把5名学生的学号、姓名、四项成绩以及平均分放在一个结构体数组中,学生的学号、姓名和四项成绩由键盘输入,然后计算出平均分放在结构体对应的域中。
(2)函数writerec输出5名学生的记录。
(3)main函数调用readrec函数和writerec函数,实现全部程序功能(注:不允许使用全局变量,函数之间的数据全部使用参数传递)。
struct student
{
char no[5],name[10];
int score[4];
double average;
};
void readrec(struct student (*stu)[2])
{
int i;
for(i=0;i<5;i++)
{
scanf("%s %s %d %d %d %d",\
stu[0][i].no,\
stu[0][i].name,\
&stu[0][i].score[0],\
&stu[0][i].score[1],\
&stu[0][i].score[2],\
&stu[0][i].score[3]\
);
stu[0][i].average = (float)((stu[0][i].score[0] + stu[0][i].score[1] + stu[0][i].score[2] + stu[0][i].score[3])/4);
}
}
void writerec(struct student *stu)
{
int i;
for(i=1;i<5;i++)
{
cout << "no=" << stu[i].no << ",name=" << stu[i].name << endl;
cout << "score[0]=" << stu[i].score[0];
cout << ",score[1]=" << stu[i].score[1];
cout << ",score[2]=" << stu[i].score[2];
cout << ",score[3]=" << stu[i].score[3];
cout << ",average=" << stu[i].average;
cout << "=============================" << endl;
}
}
int main()
{
struct student stu[5];
readrec(&stu);
writerec(stu);
return 0;
}
//outch.c
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(int argc,char *argv[])
{
char s[100];
int i,len, rlen = 10;
if ( argc > 2 )
{
printf("输入的参数只能小于等于1个!\n");
return -1;
}
else if ( argc == 2 )
{
if ( (argv[1][0] != '+') && (argv[1][0] != '-') )
{
printf("请输入正确的参数!\n例如:outch.exe +6, outch.exe -6\n");
getch();
return -2;
}
}
printf("请输入一行数据:\n");
gets(s);
len = strlen (s);
if ( argc == 1 )
{
if( len <= rlen )
puts(s);
else
for(i=len-rlen; i<len; i++)
putchar(s[i]);
}
else if ( argc == 2 )
{
rlen = argv[1][1] - 48;
if( len <= rlen )
puts(s);
else
{
if(argv[1][0] == '-')
for(i=len-rlen; i<len; i++)
putchar(s[i]);
if(argv[1][0] == '+')
for(i=0; i<rlen; i++)
putchar(s[i]);
}
}
getch();
return 0;
}
#include <stdio.h>
void main()
{
FILE *fout,*fin;
char str1[] ="zuoye";
char getfromfile[10];
fout = fopen("out.txt","w");
if(fout==NULL){
printf("打不开文件");
}
fputs(str1,fout);
if( (fin = fopen("out.txt","r")) ==NULL)
printf("error");
fgets(getfromfile,10,fin);
puts(getfromfile);
}