程序填空 main( ) {char a[20],*p=a; long x=0L; scanf("%s",a); while(*p!='\0') _____pr

大哥,请说下,程序填空 main( ) {char a[20],*p=a; long x=0L; scanf("%s",a); while(*p!='\0') _____printf("%1d\n",x)
最新回答
满载树色的飞车

2024-04-24 08:14:11

答案在里面:

下面程序的功能是多次输入x与y的值,并求x与y之积,请填空完善程序。
int mul(int a,int b)
{ int c ;
c=a+b;
return (c*c-a*a-b*b)/2; //如果题目是求和 改为return c; 你操错了吧
}
void main()
{ int x,y,z;
scanf("%d%d",&x,&y);
while(x!=0)
{ z=mul(x,y);
printf("%d*%d=%d",x,y,z);
scanf("%d%d",&x,&y);
}
}
以下程序打印如下图案,程序运行后,输入4给变量n,请填空。
*
* * *
* * * * *
* * * * * * *
#include<stdio.h>
#define S ' '
void main()
{ int n,i,j;
printf("Enter n:");scanf("%d",&n);
for(i=1;i<=n;i++)
{ for(j=1; j<=n ;j++)putchar(S);
for(j=1; j<=n*2 ;j++)putchar('*');
putchar('\n');
}
}
以下函数返回a所指数组中最小的值所在的下标值,请把程序补充完整。
fun(int a[] , int n)
{int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p])_ _ p=i___;
return(p);
}

7、以下程序段给数组所有的元素输入数据,输出所有元素之和。请将正确答案填入。
#include<stdio.h>
main()
{ int a[10],i=0,s=0;
while(i<10)
{ scanf("%d", &a[i] ;
s=s+a[i];
i =i+1 ;
}
printf("%d",s);
}
8、 下面程序用于计算1+(1+2)+(1+2+3)+……+(1+2+3+……+10),请填空完善函数。
#include<stdio.h>
void main()
{ int total,sum,m,n;
total=0 ;
for(m=1;m<=10;m++)
{ sum=0;
for(n=1;n<=m;n++)
sum=sum+n;
total= total+sum ;
}
printf("total=%d\n",total);
}
以下程序的功能是:键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成
绩,当输入负数时结束输入.请填空.
main()
{ float x,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while( x>=0 )
{ if(x>amax) amax=x;
if( x<ammin ) amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
12、下面程序将一个已知字符串第n个字符开始的剩余字符复制到另一个字符串中。请填空完善程序。
#include"string.h"
#include<stdio.h>
main()
{char a[80],b[80],*p,*q;
int n,k;
gets(a); scanf("%d",&n);
p=a; q=b;
p+=n-1;
while(*p!= '\0' )
{*q=*p;
q++;p++;
}
*q = '\0' ;
puts(b);
}

13、设以下程序段的输出结果为15,请将正确答案填入。
#include<stdio.h>
#define MIN(x,y) (x)<(y)? (x):(y)
main()
{ int i=15, k; float j=1.5;
k=10*(MIN( i, j ));
printf("%d\n",k);}
以下程序用来统计文件中字符个数。请填空:
#include"stdio.h"
main( )
{FILE *fp; long num=0L;
if((fp=fopen("fname.dat","r")==NULL)

while(_______!feof(fp)_________)

printf("num=%ld\n",num-1);
fclose(fp);
}
16、以下程序输入一行字符,判断其是否对称,是则输出Yes,否则输出No。
#include <stdio.h>
#include <string.h>
main()
{
char a[80]; int n, i;
gets( a );
n = strlen(a) ;
for ( i = 0; i < n/2; i++ )
if ( a[i] != a[n-1-i] )
break;
if ( i==n/2 )
printf( "No\n" );
else
printf( "Yes\n" );
}
花开汇成海

2024-04-24 04:47:48

p++,x++;
补充,原来是将字符串转为数值,我上面这个答案是求字符串长度。
╰未成年的花朵

2024-04-24 06:37:24

main( ) {
char a[20],*p=a;
long x=0L;
scanf("%s",a);
while(*p!='\0') {
x*=10;
x+=(*p-'0');
*p++;
}
printf("%1d\n",x);

}
追问
有祥细的解题步聚吗?
追答
就是把字符输入变成数值
x加上最高位,乘以10,再加上次高位,再乘以10,依次类推,就是结果
小格调

2024-04-24 09:30:45

x++;
追问
可是参考答案是x=*p++ -48+x*10;搞不明白
追答
额  忘了一点,0L是8进制数,最后要求打印十进制数,我的答案错了
追问
这结果怎么来的,x=*p++ -48+x*10;你能和我详细讲解下吗?多谢
追答
x=*p++ -48+x*10;
*p++ 指针自增;
-48 ascii表字符0
+x*10 这个应该是你的题目要求的内容吧
追问
唉,基础太差,我要如何才能提高这方面的水平
追答
多看,多写,多熟悉就好。我学数据库也是这样。
追问
你有QQ吗?以后有不懂的地方想及时请教你,多谢
追答
814850542