2道C语言填空题

2道C语言填空题,第1张

第一题:

#include<stdio.h>

int s1,s2,s3

int vs(int a,int b,int c)

{

int v

v=a*b*c//*******************************1

s1=a*b

s2=b*c//*******************************2

s3=a*c

return v

}

int main()

{

int v,l,w,h

printf("\ninput length,width and height:")

scanf("%d%d%d",&l,&w,&h)//*******************************3

v=vs(l,w,h)//*******************************4

printf("v=%ds1=%ds2=%ds3=%d\n",v,s1,s2,s3)

}

第二题:

#include <stdio.h>

int main()

{

int age,y0,y1,m0,m1,d0,d1

printf("输入生日日期(年,月,日)\n")

scanf("%d,%d,%d",&y0,&m0,&d0)//******************1

printf("输入当前日期(年,月,日)\n")

scanf("%d,%d,%d",&y1,&m1,&d1)

age=y1-y0

if(m0 >m1)age-- //****************************2

if((m0 == m1)&&(d0>d1))age-- //****************3

printf("age=%3d",age)

return 0

}

后面的选择题:

1.C

2.B

3.D

4.D

5.D

全部都用程序测试通过。

楼主参考。

祝你好运。

最简单的方法

调用STL的Algorithm的max_element方法。

template <class ForwardIterator>

ForwardIterator max_element ( ForwardIterator first, ForwardIterator last )

template <class ForwardIterator, class Compare>

ForwardIterator max_element ( ForwardIterator first, ForwardIterator last,

Compare comp )

实现方法:

template <class ForwardIterator>

ForwardIterator max_element ( ForwardIterator first, ForwardIterator last )

{

ForwardIterator largest = first

if (first==last) return last

while (++first!=last)

if (*largest<*first)// or: if (comp(*largest,*lowest)) for the comp version

largest=first

return largest

}

你只要实例化模板就可以了。

int *findmax(int *array,int size,int *index) {

if (size <= 0) return NULL

int max = array[0]

*index = 0

for (int i = 1i <sizei++) {

if (array[i] >max) { // 如果大小相同的返回第一个则这么写,若返回最后一个则用>=

*index = i

max = array[i]

}

}

return &array[*index]

}

这个函数不应该这样定义,应该用返回值返回下标,不用返回指针,根据下标就能得到数组的元素了。既返回指针又返回下标相当于返回了多余的东西。函数设计的要紧凑不要做无谓的事情。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8093020.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存