两道C语言的题,求解(高分)

作者&投稿:李和 (若有异议请与网页底部的电邮联系)
两道c语言基础题目求解!给高分!~

1
#include
#include
void main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("cannot open fiel
");
exit(0);
}
ch=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符
ch=getchar();//接收输入的第一个字符
while(ch!='!')
{
fputc(ch,fp);putchar(ch);
ch=getchar();
}
putchar(10);// 向屏幕输出一个换行符
fclose(fp);
}

2
#include
#include
#include
#define N 3
struct filename
{
char files[9];
}file[N]={"file2","file3","file4"};
void main()
{
FILE *in[N],*out;
char ch;
for(int i=0;i<N;i++)
{
if((in[i]=fopen(file[i].files,"r"))==NULL)
{
printf("cannot open file
");
exit(0);
}
}
if((out=fopen(file1,'w'))==NULL)
{
printf("cannot open file
");
exit(0);
}
int i=0;
while((!feof(in))&&(i>=3))
fputc(fgetc(in[i++]),out);
for(i=0;i<N;i++)
fclose(in[i]);
fclose(out);
}

没装程序,楼主运行看看。文件file得事先存好。

第一题:
int factor(int number)
{
int counter;
if(number==1)
return 0;
else
{
for(counter=2;counter<=number;counter++)
{ if(number%counter==0)
{ cout<<counter;}
number=number%counter;
if(number!=1)
{cout<<"x";
factor(number);
}


}
}
第一题不是很efficient,不过用可以

第二题
float compute(int a, int b, int c)
{
float s;
s=(a+b+c)/2;
return sqrt(s*(s-float(a))*(s-float(b))*(s-float(c)));
//must include cmath.h
}

第一题:
#include <stdio.h>
float he(float a,float b);
float cha(float a,float b);

void main()
{
float x,y,s,c;
printf("请输入两个浮点数: ");
scanf("%f%f",&x,&y);
s=he(x,y);
c=cha(x,y);
printf("两个浮点数的和值是%.2f\n",s);
printf("两个浮点数的差值是%.2f\n",c);
}
float he(float a,float b)
{
return a+b;
}
float cha(float a,float b)
{
if (a>=b)
return a-b;
else
return b-a;
}
第二题:
#include <stdio.h>
int max(int a,int b,int c);
int min(int a,int b,int c);
void main()
{
int x,y,z;
printf("请输入三个数:");
scanf("%d%d%d",&x,&y,&z);
printf("三个数选出最大数是%d\n",max(x,y,z));
printf("三个数选出最小数是%d\n",min(x,y,z));
}
int max(int a,int b,int c)
{
if (a>=b&&a>=c)
return a;
if (b>=a&&b>=c)
return b;
else
return c;
}
int min(int a,int b,int c)
{
if (a<=b&&a<=c)
return a;
if (b<=a&&b<=c)
return b;
else
return c;
}

#include <stdio.h>
void for_two_float(float a, float b, float* he, float* cha)
{
*he = a + b;
*cha = a - b;
}
void max_min(float a, float b, float c, float* max, float* min)
{
*max = *min = a;
if (*max < b)
{
*max = b;
}
else
{
*min = b;
}
if (*max < c)
{
*max = c;
}
else if (*min > c)
{
*min = c;
}
}
int main(int argc, char *argv[])
{
float a = 10.0;
float b = 2.8;
float c = 3.4;
float he, cha, max, min;
for_two_float(a, b, &he, &cha);
max_min(a, b, c, &max, &min);
printf("he = %f; cha = %f\n", he, cha);
printf("max = %f; min = %f\n", max, min);

return 0;
}
因为C语言中或者说我的VC2005不支持函数形参的引用调用(float& he),所以只有使用指针达到目的。

#include <stdio.h>
#include <stdlib.h>

void cal(double num1,double num2,double *sum,double *sub)
{
*sum=num1+num2;
*sub=num1-num2;
}
void maxmin(double num1,double num2,double num3,double *max,double *min)
{
*max=(num1>num2?num1:num2)>num3?(num1>num2?num1:num2):num3;
*min=(num1>num2?num2:num1)>num3?num3:(num1>num2?num2:num1);
}
int main(int argc, char *argv[])
{

double a=3,b=2,c=5,sum,sub,max,min;
cal(a,b,&sum,&sub);
maxmin(a,b,c,&max,&min);
printf("%lf\n%lf\n%lf\n%lf",sum,sub,max,min);
system("PAUSE");
return 0;
}

#include <stdio.h>

void func1(float a, float b, float *sum, float *diff)
{
*sum = a + b;
*diff = a - b;
}

void func2(int a, int b, int c, int *max, int *min)
{
*max = ((a > b) ? (a > c ? a : c) : (b > c ? b : c));
*min = ((a < b) ? (a < c ? a : c) : (b < c ? b : c));
}

void main()
{
float a = 3.5f, b = 4.2f;
float sum, diff;
func1(a, b, &sum, &diff);
printf("%f %f\n", sum, diff);
int max, min;
func2(87583, 87574, 87589, &max, &min);
printf("%d %d\n", max, min);

}

建议你先看看c程序设计


这道C语言的题怎么做 求解
程序在运行时读入了两个字符,先判断ch1!='B',满足条件,于是继续判断第二个条件,执行多分支选择语句,因为ch的值是'B',于是开始执行输出语句,因为后面没有紧跟break语句,所以输出是ABBB。

大一C语言题目求解
c=n[0][j]+n[1][j]-2*’0’;——把对应字符相加变成了数字相加,如第一次是'0'+'8'-2*'0'结果就是数字0+8==8。第二次得到'8'+'9'-2*'0'==17,相应地第三次是10,最后一次是17。后面n[0][j]=c%10+’0’;又相应地把第一次的得数8+了'0'变成了字符'8'并存储到n[...

C语言题目求解
for(a=1,b=1;b<=20;b++) 循环语句,初始 a=1,b=1;步长 b=b+1; b 达到 20 结束循环。第一次进入: a=1,b=1;满足 (a%2==1) 条件,a+=5; a得6;continue; 回到循环开始处。第二次进入:a=6 b=2; 不满足if(a>10),不满足 (a%2==1),执行 a-=3; a得3。

c语言基础问题,求大佬求解
第一图的程序 因为y==9时,y%3==0,执行打印语句,y先自减再打印,输出8,执行continue;跳过后面的语句.for循环执行y--,y==7,y%3不等于0,不执行if语句 for循环执行y--,y==6,y%3==0,执行打印语句,y先自减再打印,输出5,执行continue;跳过后面的语句.for循环执行y--,y==4,y%3不等于0,...

一道C语言编程题求解
这题也没有项顺序关系,每项都是减法,因此可以简化成求累减 每项用一个变量t来算,一开始初值为0,当前项就是t乘以10然后加a,于是第1项为a,第2项为a*10+a=aa,...,循环n次得到最大那个数 具体到程序,为简单起见,求累减,得到的是-aaa...aaa-...-aaa-aa-a,因此加上两次最大值得到aaa.....

c语言编程题目求解
题目2:c include<stdio.h> include<math.h> int is_prime(int num){ int i;for(i=2; i<=sqrt(num); i++){ if(num%i == 0){ return 0;} } return 1;} int main(){ int num;printf("请输入一个整数:\\n");scanf("%d", &num);if(is_prime(num)){ printf("%d是素数\\...

求解一道C语言基础编程题。
首先看一下程序的逻辑(虽然貌似题主应该不是在这一块有问题:关于ascii码的解释:首先得知道每个字符和数值的对应关系(图不清晰可看戳这里:ascii编码对应表 好了,现在看程序中的第一个if语句,在用大于、小于这些运算比较符比较char的时候,会自动转换为整数比较,也就是说‘0’会转换成48,‘1’...

求解C语言题,分析
1、%d表示以整数形式输出,对字符'a'来说,整数形式就是它的ASCII码也就是97;%c表示以字符形式输出,ch+2就是ASCII码为99的字符即'c'。答案:97,c 2、for循环分为3个语句,以两个分号间隔,其中语句1(i = 10)只执行一次,然后检查是否满足语句2(i > 0), 这是循环得以继续的条件,一旦...

c语言题目求解
这是考查学生对按位与“&”运算符和逻辑判断的理解。在C语言中,按位与“&”运算符的运算规则如下(二进制数):0&0=0;0&1=0;1&1=1;1&0=0;逻辑判断“!=”的结果有两种,即真或假;真时值为1;假时值为0。在代码中的语句:y=(x&4)!=0;执行时,先进行 x&4 的计算,所得的...

C语言函数基础题求解求帮忙~
f3(3)=1.0\/(1.0+f3(n-1))=1.0\/(1.0+f3(2))=1.0\/(1.0+1.0\/(1.0+f3(1)))=1.0\/(1.0+1.0\/(1.0+1))=1.0\/(1.0+1.0\/2)=1.0\/(1.5)=0.666666666 保留小数点1位 即0.7 \/***1***\/ 填上 long s=0; 就可以了 ...

北塘区19841958799: 两道C语言的题,求解(高分) -
衡贪增抗: 第一题:#include <stdio.h> float he(float a,float b); float cha(float a,float b); void main() { float x,y,s,c; printf("请输入两个浮点数: "); scanf("%f%f",&x,&y); s=he(x,y); c=cha(x,y); printf("两个浮点数的和值是%.2f\n",s); printf("两个浮...

北塘区19841958799: 入门C语言程序求解两道入门题目:1.假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比.计算公式为p=(1+r... -
衡贪增抗:[答案] 第一题答案 #include #include main() { double i,j,k; j=0.09; k=10; i=(1+j); printf("%lf arised to %lf is %lf",i,k,pow (i,k)); 第二题太简单,你自己做.

北塘区19841958799: C语言两道题,求高手解答... -
衡贪增抗: 1 #include <stdio.h> void main() { int a,n,i,j,t; scanf("%d %d",&a,&n); t=a; i=0; while(i<n) {for(j=2;j<=sqrt(t);j++) if(t%j==0)break; if(j>sqrt(t)){printf("%d ",t);i=i+1;if(i%8==0)printf("\n");} t=t+1; } system("PAUSE"); } 2 #include <stdio.h> void ...

北塘区19841958799: 求两道C语言题的答案1. 将一个数组中的值按逆序重新存放.例如,原来顺序为8,6,5,4,1.要求改为1,4,5,6,8. 2. 编一程序,将两个字符串连接起来,不要用... -
衡贪增抗:[答案] #include //1. 将一个数组中的值按逆序重新存放.例如,原来顺序为8,6,5,4,1.要求改为1,4,5,6,8. void Asc(int arr[],int len) { int i,j,tmp; for(i=0;i

北塘区19841958799: 两道C语言作业题,高手快进,高分给你 -
衡贪增抗: #include<stdio.h> #include<string.h> void main() { char s1[]="abcdef"; char s2[]="123456"; char s3[13]; strcpy(s3,s1); strcat(s3,s2); printf("%s\n",s3); } #include<stdio.h> void main() {float a[4][4];float b[4][4];float c[4][4];//a+b float d[4][4];//a-...

北塘区19841958799: C语言题目2道 求详解
衡贪增抗: (1)一共会输出四行 因为这个FOR循环只会执行四次,每次都会在屏幕上输出一数然后会回车换行 第一次是i=0,i<8成立, sum=sum+a[0] 这时sum=0,a[0]=1 所以运算结果就是1 算完后,就会进行i=i+2的记数.这时i已经变成了2 第二次是i=2,i<8还...

北塘区19841958799: C语言求解,两道题,求大神们帮忙 -
衡贪增抗: 1. #include int MaxP(int a,int b)//最大公约数 { int temp=a; while(temp!=0) { temp=b%a; b=a; a=temp; } return b; } int MinP(int a,int b)//最小公倍数 { int min; min=(a*b)/MaxP(a,b); return min; } void main() { int num1,num2; printf("输入两个整数:"...

北塘区19841958799: 两道C语言题求解
衡贪增抗: 1.请把一个包含十个元素的一维数组逆序存放. ************** #include "stdio.h" main() {int a[10],i,j,t; for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(j=0;j<10;j++) for(i=9;i>j;i--) { t=a[i-1]; a[i-1]=a[i]; a[i]=t; } for(i=0;i<10;i++) printf("%d ",a[i]); } ***********...

北塘区19841958799: 求两道C语言编程题!!高手进. -
衡贪增抗: /*最大公约数,最小公倍数*/#include int maxgys(int a,int b); main() { int a,b,min,max; printf("请输入两个数:"); scanf("%d%d",&a,&b); max=maxgys(a,b); min=a*b/max; printf("最大公约数为%d\n最小公倍数为:%d\n",max,min); } int ...

北塘区19841958799: 两道C语言程序题求解? -
衡贪增抗: 2)不采用函数就原始暴力地从头开始逐个遍历字符串.对原始数组个数从0索引到最后一个字符使用循环:当字符在'A'-'Z'或者在'a'-'z'中时将该字符存到另一个定义了空间大小的字符数组中并使该字符数组索引+1,直到最后给该新得到的数组添加结束符'\0'并输出即可3)一样从头开始遍历数组,当当前字符处于'a'-'z'时,将该字符值-32(大写字母比小写字母ASC值小32)即可,最后输出

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网