考试题目,大家来捧场啊

xmm1984 2004-11-12 08:40:16
填空:

1.
输入m,n都>0 输出最大公约数
#include<stdio.h>
void main()
{ int m,n,k;
while(scanf("%d,%d",&m,&n),____1____);
for(____2____;n%k!=0||m%k!=0;k--);
printf("%d\n",k);
}

2.
函数f将数组循环左移k个元素,将数组x[7]调用函数f后输出结果为:
4 5 6 7 1 2 3
#include<stdio.h>
void f(int *a,int n, int k)
{int i ,j,t;
for(i=0;i<k;i++){
___1____;
for(_____2_____)a[j-1]=a[j];
a[n-1]=t;
}
}
void main()
{int i,x[7]={1,2,3,4,5,6,7};
f(x,7,3);
for(i=0;i<7;i++)
printf("%5d",x[i]);
printf("/n");
}


3.
...全文
232 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyk7069 2004-11-13
  • 打赏
  • 举报
回复
第5题第一空没有填,是因为函数应返回指针,如果不返回指针,主函数内调用函数时不能改变其值。函数原型也有些问题。

还是那句话,哪个变态出的题目!打!
zyk7069 2004-11-13
  • 打赏
  • 举报
回复
第5题:源程序有点问题,应该修改为如下:
int f(float a,float b,float c,float *x1,float *x2)
{
if(b*b-4*a*c<0) return 1;
*x1=(-b+sqrt(b*b-4*a*c))/2/a;
*x2=(-b-sqrt(b*b-4*a*c))/2/a;
_____1_______;
}

void main()
{
float a,b,c,*u1,*u2;
scanf("%.2f,%.2f,%.2f",&a,&b,&c);
if(____2_____)printf("实数范围内无解")//空内可填写f(a,b,c,u1,u2)
else printf("%.2f %.2f" , u1, u2);
}
主函数内问题仍旧很多,几乎无法修改,哪个变态的出的题目?拉出去打暴牙再说。
zyk7069 2004-11-12
  • 打赏
  • 举报
回复
第四题:
1:scanf("%d",&n),n>0;
2:{t*=2;请不要忘了“{”,因为源程序中没有{,根据配对原则,必须加上{。
jess1030 2004-11-12
  • 打赏
  • 举报
回复
(1)
1. m<=0||n<=0
2. k=m<n?m:n
(2)
1. t=*a
2. j=1;j<n;j++
(3)
1. char *x[3],int m,int n
2. a[i]
(4)
1. scanf("%d",&n),n<=0
2. t*=2;
zyk7069 2004-11-12
  • 打赏
  • 举报
回复
第3题:
1:**x,int m,int n或a[][],int m,int n
2:f(a,3,4)
zyk7069 2004-11-12
  • 打赏
  • 举报
回复
第2题:
1:t=a[0];
2:j=1;j<n;j++
Dxa1229 2004-11-12
  • 打赏
  • 举报
回复
3:

1, float **x, int m, int n

2, a[i]
Dxa1229 2004-11-12
  • 打赏
  • 举报
回复
第3题:

b[i]=___2____; // float *b[3];
wolfkain 2004-11-12
  • 打赏
  • 举报
回复
呵呵
第五题有少了}
应该是 return *;}//‘*’只要不是1就可以,要看主函数怎么写
yycec 2004-11-12
  • 打赏
  • 举报
回复
wolfkain 真是细心人,不小心又被蒙了。高明!
yycec 2004-11-12
  • 打赏
  • 举报
回复
while(!(t<=n&&t*2>=n))
t *= 2;
不需要{ ... },因为while循环体中只有一句。
wolfkain 2004-11-12
  • 打赏
  • 举报
回复
1.scanf("%d",&n) && n<=0
2.{ t*=2
4.这个题有点变态,大家有没注意“{”
xmm1984 2004-11-12
  • 打赏
  • 举报
回复
大虾QQ多少啊???
多多指教!!!
yycec 2004-11-12
  • 打赏
  • 举报
回复
返回的实根的个数。
yycec 2004-11-12
  • 打赏
  • 举报
回复
数组在内存中都是使用的连续存储空间,一般按从第一个元素到最后一元素的顺序排列。数组名就代表了第一个元素的地址,在编译时也是如此的(所有的标识符到最后都是地址)。所以你可以使用指针变量从数组名开始,指针加一,所指向的元素也就向后改变一个。
xmm1984 2004-11-12
  • 打赏
  • 举报
回复
return 2
是什么意思!!!!
yycec 2004-11-12
  • 打赏
  • 举报
回复
多维也是一样的道理。
yycec 2004-11-12
  • 打赏
  • 举报
回复
5.(1)return 2;
(2)!f(a, b, c, &u1, &u2)或f(a, b, c, &u1, &u2) == 0

请注意,5题没有给全,可以是
int f(float a,float b,float c,float *x1,float *x2)

if(b*b-4*a*c<0) return 1;
*x1=(-b+sqrt(b*b-4*a*c))/2/a;
*x2=(-b-sqrt(b*b-4*a*c))/2/a;
_____1_______;//return 2;

void main()
{
float a, b, c;
scanf("%d, %d, %d", &a, &b, &c);
if(____2_____)printf("实数范围内无解")
else printf("%.2f %.2f" , u1, u2);
}
wolfkain 2004-11-12
  • 打赏
  • 举报
回复
二维数组用的少,呵呵,以为和一维一样!~~
xmm1984 2004-11-12
  • 打赏
  • 举报
回复
谢谢大虾指教!
加载更多回复(20)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧