一个简单的c语言程序问题,求解

利用C语言小程序来解决大问题
00:00&&&&计算机世界日报
  我们知道的功能非常强大, 很适合编写系统软件。利用它我们可以很容易地解决经常遇到的一些棘手的问题,如拷贝隐含或系统属性的文件(特别是光盘中的隐含文件)、在任意DOS版本或在windows中更改子目录的名称、在任意DOS
版本中使用带空格的目录名等等。这些问题仅靠操作系统或常用的工具软件往往很难凑效。我们可以利用C语言的强大功能来编写一些小程序,能够很顺利地解决这些问题。
  一、拷贝隐含或系统属性的文件
  使用操作系统提供的拷贝命令不能拷贝隐含或系统属性的文件,因为在拷贝过程中系统会提示“File not found”。下面的小程序可以解决这个问题。
// copyfile.c
# include $#@60; stdio.h $#@62;
# include $#@60; stdlib.h $#@62;
main(int argc,char *argv[])
{ if(argc$#@60; 3)
printf("\n用法: COPYFILE
$#@60; 源文件名 $#@62; $#@60; 目标文件名 $#@62;\n");
copy(argv[1],argv[2]);
copy(char * file1,char * file2)
FILE * fp1,* fp2;
if((fp1=fopen(file1,"rb"))==NULL)
printf("\nCant open file %s",file1);
fclose(fp1);
if((fp2=fopen(file2,"wb"))==NULL)
printf("\nCant open file %s",file2);
fclose(fp1);
ch=fgetc(fp1);
while (!feof(fp1))
fputc(ch,fp2);
ch=fgetc(fp1);
fclose(fp1);
fclose(fp2);
  二、在任意DOS版本或windows中更改子目录的名称
  DOS 只是在 6. x 版本中提供了更改子录名的程序。 在windows中改目录名操作又很繁琐。 下面的小程序可以很简单地更改任何一级子目录的名称,而且也可以用来更改文件的名称。
# include "stdio.h"
main(int argc,char *argv[])
if(argc$#@60; 3)
printf("Required parameter missing\n");
n=rename(argv[1],argv[2]);
printf("Duplicate name or name not found\n");
  三、使用带空格的目录名
≈谒苤贒OS 中是不允许在文件名或子目录名中包含空格的。这是因为系统是用空格来区分输入的DOS 命令所带的参数,同样使用DOS的
MD、CD、RD等命令也无法使用含有空格的目录名。但是在用命令对磁盘进行检查时,对含有空格的子目录名并不给出错误信息。这说明在DOS
中含有空格的目录名是有存在的合法性的。因为DOS 中的命令无法使用含空格的目录名,所以可以起到一定的加密作用。下面的程序介绍如何利用C语言来建立、进入和删除含有空格的子目录。
  1、建立带空格的子目录
/* 文件名: mddir.c */
#include $#@60; dir.h $#@62;
main(int argc,char * argv[])
{ if (argc==2)
{if(mkdir(argv[1])) perror("Error");}
else printf("Usage : MDDIR + dirname\n");
return (0);
  在程序使用中注意要用双引号将目录名括起来,如果目录名中不含有空格可将双引号省略。例如: mddir "a test"
。以下程序使用方法相同
  2、进入带空格的子目录
/* 文件名: cddir.c */
#include $#@60; dir.h $#@62;
main(int argc,char * argv[])
{ if(argc==2)
{if(chdir(argv[1])) perror("Error");}
else printf("Usage : CDDIR + dirname\n");
  3、删除带空格的子目录
/* 文件名: rddir.c */
#include $#@60; dir.h $#@62;
main(int argc,char * argv[])
{ if (argc==2)
{if(rmdir(argv[1])) perror("Error");}
else printf("Usage : RDDIR + dirname\n");
  以上程序均用 Turbo c 2.0 调试通过,注意以上程序的文件名不要与DOS中的有关命令相同,以免发生冲突。
+1你赞过了
&2017 天极网旗下网站求解c语言的一个简单内存拷贝问题
[问题点数:20分,结帖人bai]
求解c语言的一个简单内存拷贝问题
[问题点数:20分,结帖人bai]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|C语言计算器问题解决,要实现简单的四则运算,输入一个式子,可以返回运算结果如:输入 4+3= 然后输出结果
#include#includevoid main(){while(1){float a=0,b=0,c=0,printf("输入简单的四则运算表达式:\n");scanf("%f%c%f",&a,&d,&b);switch(d){case'+':c=a+b;case'-':c=a-b;case'x':case'*':c=a*b...
这个函数是奇函数,这可以根据f(-x)=-bx/(ax^2+1)=-{bx/(ax^2+1)}=-f(x)可以得到.后面的题目应该错了,f(x)=1/2中的x应该是一个已知的,这样才可以联合后面的式子解出a和b的值.
化简cos2(π/4-α)-sin2(π/4-α)cos^2(π/4-α)-sin^2(π/4-α)
cos2(π/4-α)-sin2(π/4-α)=cos(π/2-2α)-sin(π/2-2α)=sin2α-cos2α=√2(√2/2sin2α-cos2α)=√2sin(2α-π/4)根据二倍角公式cos2α=cos?α-sin?α∴cos?(π/4-α)-sin?(π/4-α)=cos[2(π/4-α)]=cos(π/2-2α)=sin2α
分步积分得∫arcsin{[x/(1+x)]^(1/2)}dx=xarcsin{[x/(1+x)]^(1/2)}-∫x/2[1-x/(x+1)]^(1/2)*[(x+1)/x]^(1/2)*dx/(x+1)^2=xarcsin{[x/(x+1)]^(1/2)}-∫x^(1/2)/2(x+1) dx=xarcsin{[x/(x+1)]^(1/2)}-∫t/2(t^2+1)*2tdt 设x=t^2=xarcsin{[x/(x+1)]^(1/2)}-∫[1-1/(t^2+1)]dt=xarcsin{[x/(x+1)]^(1/2)}-t+arctant+Carctant=arcsin{[x/(x+1)]^(1/2)}=(x+1)arcsin{[x/(x+1)]^(1/2)}-x^(1/2)+C
那位高手帮下忙,能否从matlab图像里面提取x,y轴的数据?我的意思是我只有一张matlab的Figure文件(里面包含实验曲线和拟合曲线),其余什么都没有,而我想把拟合曲线的x,y轴数据提取出来,怎么弄,
%打开并拿到figure的handleh_fig=open('1.fig');%如果h_fig是figure会返回'figure'get(h_fig, 'Type') %拿到figure里axes的handleh_axes = get(h_fig, 'children');%如果h_axes是axes会返回'axes'get(h_axes, 'Type') %拿到axes里曲线line的handle,可能会多于一个h_line = get(h_axes, 'children');%如果h_axes是line会返回'line'get(h_axes, 'Type') %假设有两条线x1 = get(h_line(1), 'XData');y1 = get(h_line(1), 'YData');x2 = get(h_line(2), 'XData');y2 = get(h_line(2), 'YData');
已知函数y=f(x)是偶函数,其图象与x轴有四个交点,则方程f(x)=0 的所有实根之和是(  )A. 0B. 1C. 2D. 4
∵函数y=f(x)是偶函数∴其图象关于y轴对称∴其图象与x轴有四个交点也关于y轴对称∴方程f(x)=0 的所有实根之和为0故选A
其他相关问题扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
重金急求几个简单的C语言问题.1、 有一个数组{1,3,4,6,7,8},把数组当中每个元素都乘上3,即数组变成{3,9,12,18,21,24}。2、 有二个数组,分别是A{1,3,4,9,11},B{2,4,5,7,8},把A、B二个数组相加,结果保存在A数组当中。3、 编程实现数组的前后二部分交换。例如有数组A{1,3,4,5,6,7},交换之后为A{5,6,7,1,3,4}。(提示:要考虑数组当中元素的个数是奇数个还是偶数个)4、 给定一个二维数组,找出数组当中的最大元素,最小元素以及它们所在的行、列信息。
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
1.数组A,A[0]=A[0]*3;以此类推.....A[5]=A[5]*3;2.A[0]=A[0]+B[0];.......同上;3.if(sizeof(A)==奇数/偶数)怎样执行....
当是偶数:中间转换数组temp[A数组长度的一半],把A数组的前半部分给temp数组,即,temp[0]=A[0]......然后把后半部分的给前半部分,A[0]=A[这个下标是A数组长度的一半的那个元素].....以此类推...4.A[m][n],mn的值给定,数组初始化;利用循环,从第一个元素开始.把A[0][0]作为第一个参考对象,即判断后面的元素是否大于A[0][0],如果大于A[0][0],则换成以那个元素为参考对象,继续往下判断...直到末尾.....这个有点难说...这个是算法思想...给你点建议...C语言不是说把一段代码几下就行了,而是你要会"计算",懂得算法..直到给定一个题目或者问题,直到怎么把它抽象成C语言....这是学C的主要目的!!!望你采纳......
为您推荐:
扫描下载二维码

我要回帖

更多关于 c语言简单程序 的文章

 

随机推荐