请根据以下各小题的要求设计C应用程序(包括界面和代码)。  请编写函数fun(),它的功能是:统计各年龄段的人数。N个年

题目
问答题
请根据以下各小题的要求设计C应用程序(包括界面和代码)。  请编写函数fun(),它的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依次类推,把100岁(含100岁)以上年龄的人数放在d[10]中。结果在主函数中输出。  注意:部分源程序给出如下。  请勿改动主函数main()和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。  试题程序如下:#include #define N 50#define M 11void fun(int *a, int *b){}double rnd(){ static int t=29,c=217,m=1024,r=0; r= (r*t+c)%m; return ((double) r/m);}main (){ int age[N],i,d[M]; for(i=0; i
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

单选题
以下关于编译预处理的叙述中错误的是(  )。
A

预处理命令行必须位于源程序的开始

B

源程序中凡是以#开始的控制行都是预处理命令行

C

一行上只能有一条有效的预处理命令

D

预处理命令是在程序正式编译之前被处理的


正确答案: B
解析:
通常,预处理命令位于源文件的开头,也可以写在函数与函数之间。答案选择A选项。

第2题:

问答题
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun()的功能是:将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。  请改正函数fun中的错误,使它能得出正确的结果。  注意:部分源程序在文件MODII.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!  试题程序:#include #include #include typedef struct aa{ int data; struct aa *next;}NODE;int fun(NODE *h){ int sum=0; NODE *p; p=h->next; /*********found*********/ while(p->next) {  if(p->data%2==0)   sum+=p->data;  /*********found*********/  p=h->next; } return sum;}NODE *creatlink(int n){ NODE *h,*p,*s; int i; h=p=(NODE *)malloc(sizeof(NODE)); for(i=1;idata=rand()%16;  s->next=p->next;  p->next=s;  p=p->next; } p->next=NULL; return h;}outlink(NODE *h){ NODE *p; p=h->next; printf("The LIST: HEAD"); while(p) {  printf("->%d",p->data);  p=p->next; } printf("");}main(){ NODE *head; int sum; system("CLS"); head=creatlink(10); outlink(head); sum=fun(head); printf("SUM=%d",sum);}

正确答案:

(1)错误:while(p->next)
正确:while(p)或while(p!=NULL)
(2)错误:p=h->next;
正确:p= p ->next;
解析:

  错误1:执行p=p->next后,p指针已经指向链表第一个包含数据域的结点。fun函数的while循环判断当前指针p指向的结点是否存在,若存在则对该结点数据域进行判断操作,而不是判断p指针的指针域是否为空。
  错误2:fun函数的while循环中判断结束后指针指向下一个结点,操作为p=p->next。

第3题:

单选题
下列叙述中正确的是(  )。
A

在switch语句中,不一定使用break语句

B

在switch语句中,必须使用default

C

break语句必须与switch语句中的case配对使用

D

break语句只能用于switch语句


正确答案: C
解析:
break语句功能是跳出正在执行的条件语句或循环语句,switch语句中可以根据需要选择是否使用break语句,A项正确;default语句在switch语句中可以省略,因此B项错误;switch语句中并非每个case后都需要使用break语句,因此C项错误;break语句还可以用于for等循环结构中,因此D项错误。答案选择A选项。

第4题:

单选题
有以下程序:#include main(){ int a=2,b; b=a<<2; printf(%d,b);}程序运行后的输出结果是(  )。
A

2

B

4

C

6

D

8


正确答案: D
解析:
a的初始值为2,程序中将a左移2位的结果赋值给b,即相当于十进制乘以4,结果为8。答案选择D选项。

第5题:

单选题
有以下程序:#includemain(){ int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=0;i<5;i++)s=s+a[b[i]]; printf(%d,s);}程序运行后的输出结果是(  )。
A

6

B

10

C

11

D

15


正确答案: A
解析:
当i=0时a[b[0]]=1;当i=1时a[b[1]]=3;当i=2时a[b[2]]=2;当i=3时a[b[3]]=4;当i=4时a[b[4]]=1。故s=1+3+2+4+1=11。答案选择C选项。

第6题:

单选题
计算机软件的构成是(  )。
A

源代码

B

程序和数据

C

程序和文档

D

程序、数据及相关文档


正确答案: B
解析:
计算机软件是程序、数据及相关文档的完整集合。答案选择D选项。

第7题:

填空题
在C语言中,()语句是一条限定转移语句,其功能是提前结束本次循环体的执行过程而直接进入下一次循环。

正确答案: continue
解析: 暂无解析

第8题:

单选题
有以下程序#include int fun(int n){ if(n==1)  return 1; else  return(n+fun(n-1));}main(){ int x; scanf(%d,&x); x=fun(x); printf(%d,x);}执行程序时,给变量x输入10,程序的输出结果是(  )。
A

55

B

54

C

65

D

45


正确答案: C
解析:
fun函数是一个递归函数,用于求整数1到n的和。因此,主函数中最后输出1到10之间的整数和,即55。答案选择A选项。

第9题:

单选题
以下针对全局变量的叙述错误的是(  )。
A

全局变量的作用域是从定义位置开始至源文件结束

B

全局变量是在函数外部任意位置上定义的变量

C

用extern说明符可以限制全局变量的作用域

D

全局变量的生存期贯穿于整个程序的运行期间


正确答案: A
解析:
在不同编译单位内用extern说明符来扩展全局变量的作用域,extern可以将全局变量作用域扩展到其他文件,而不是限制全局变量的作用域。答案选择C选项。

第10题:

单选题
有以下程序#include main(){ int x[3][2]={0},i; for(i=0;i printf("%3d%3d%3d",x[0][0],x[0][1],x[1][0]);}若运行时输入:2 4 6,则输出结果为(  )。
A

2 0 4

B

2 0 0

C

2 4 0

D

2 4 6


正确答案: A
解析:
在二维数组x中,x[0],x[1],x[2]其值依次为二维数组每行第一个元素的地址,其基类型就是数组元素的类型,即x[0]=&[0][0],x[1]=&x[1][0],x[2]=&x[2][0],完成输入后,数组x={{2,0},{4,0},{6,0}}。答案选择A选项。

更多相关问题