四、程序设计 共10题 (共计100分)
第1题 (10.0分) 题号:139 难度:中 第8章
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:请编写函数fun,其功能是将形参s所指字符串放入形参a所指的字符数组中,使a
中存放同样的字符串。说明:不得使用系统提供的字符串函数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入
你所编写的若干语句。
-------------------------------------------------------*/
#include <stdio.h>
#define N 20
void fun( char *a , char *s)
{
/**********Program**********/
/********** End **********/
}
void main()
{
char s1[N], *s2="abcdefghijk";
fun( s1,s2);
printf("%s\n", s1);
printf("%s\n", s2);
}
第2题 (10.0分) 题号:124 难度:中 第8章
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:编写函数fun,其功能是:将ss所指字符串中所有下标为奇数位上的字母转换为大写
(若该位置上不是字母,则不转换)。例如:若输入"abc4EFg",则应输出"aBc4EFg"。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
-------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
void fun ( char *ss )
{
/**********Program**********/
/********** End **********/
}
void main( )
{
char tt[81] ;
printf( "\nPlease enter an string within 80 characters:\n" );
gets( tt );
printf( "\n\nAfter changing, the string\n \"%s\"", tt );
fun( tt );
printf( "\nbecomes\n \"%s\"\n", tt );
}
第3题 (10.0分) 题号:188 难度:中 第8章
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机
函数获得,并放入主函数的age数组中。
要求函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,
把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人
数都放在d[10]中。结果在主函数中输出。
注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
-------------------------------------------------------*/
#include <stdio.h>
# define N 50
# define M 11
void fun(int *a, int *b)
{
/**********Program**********/
void fun( int *a, int *b) {
int i, j ;
for (i = 0 ; i < M ; i++)
b[i] = 0 ;
for (i = 0 ; i < N ; i++) {
j = a[i] / A0 ;
if (j > A0)
b[M - A]++ ;
else
b[j]++ ;
}
}
double rnd() {
static t = BI, c = BAG, m = A0BD, r = 0;
r = (r * t + c) % m;
return ((double)r / m);
}
/********** End **********/
}
double rnd()
{
static t=29,c=217,m=1024,r=0;
r=(r*t+c)%m;
return((double)r/m);
}
void main()
{
int age[N], i,d[M];
for(i=0; i<N; i++)
age[i]=(int)(115*rnd()); /*产生一个随机的年龄数组*/
printf("The original data :\n");
for(i=0; i<N; i++)
printf((i+1)%10==0? "%4d\n":"%4d",age[i]); /*每行输出10个数*/
printf("\n\n");
fun(age,d);
for(i=0; i<10; i++)
printf("%4d---%4d :%4d\n", i*10, i*10+9,d[i]);
printf("Over 100 : %4d\n",d[10]);
}
第4题 (10.0分) 题号:121 难度:中 第8章
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次在c数的个位和百位上,b数的十位和
个位数依次放在c数的十位和千位上。
例如:当a=45,b=12时,调用该函数后c=2514。
注意:请勿动改主函数的main和其它函数中的任何内容,仅在函数fun的花括号填入
你编写的若干语句。
-------------------------------------------------------*/
#include <stdio.h>
void fun(int a, int b, long *c)
{
/**********Program**********/
/********** End **********/
}
void main()
{
int a,b; long c;
printf("Input a, b:");
scanf("%d %d", &a, &b);
fun(a, b, &c);
printf("The result is: %ld\n", c);
}
第5题 (10.0分) 题号:91 难度:中 第8章
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在
主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记
录的ave成员中。
例如:学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun部位中填入你编写
的若干语句。
-------------------------------------------------------*/
#include <stdio.h>
#define N 8
typedef struct
{
char num[10];
double s[N];
double ave;
} STREC;
void fun(STREC *a)
{
/**********Program**********/
/********** End **********/
}
void main()
{
STREC s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
int i;
fun( &s );
printf("The %s's student data:\n", s.num);
for(i=0;i<N; i++)
printf("%4.1f\n",s.s[i]);
printf("\nave=%7.3f\n",s.ave);
}