活动设计题下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成0。例如a数组中的值为:则返回主程序后a数组中的值应为:注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineN5voidfun(inta[][N]){}voidmain(){inta[N][N],i,j;system('CLS');printf('****Thearray****\n');for(i=0;i<N;i++)/*产生一个随机的5*5矩阵%/{for(j=0;j<N;j++){a[i][j]=rand()%10;printf('%4d',a[i][j]);}printf('\n');}fun(a);printf('THERESULT\n');for(i=0;i<N;i++){for(j=0;j<N;j++)printf('%4d',a[i][j]);printf('\n');}}
活动设计题
请编写函数fun,函数的功能是将大于形参m且紧靠m的k个素数存入xx所指的数组中。函数prime判断一个数是否为素数,是返回1,否则返回0。例如,若输入17,5,则应输出:19,23,29,31,37。函数fun中给出的语句仅供参考。
注意:部分源程序存放在文件PROG1.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下:
#include stdio.h
int prime(int n)
{
int m;
for(m=2;mn;m++)
if (n % m == 0)
return 0;
return 1;
}
void fun(int m, int k, int xx[])
{
/* 以下代码仅供参考 */
int j=0, t=m+1;
while(jk)
{
/* 按题目要求完成以下代码 */
}
}
main()
{
int m, n, zz[1000] ;void NONO ();
printf( '\nPlease enter two integers:') ;
scanf('%d%d', m, n ) ;
fun( m, n, zz) ;
for( m = 0 ; m n ; m++ )
printf('%d ', zz[m]) ;
printf('\n') ;
NONO( ) ;
}
void NONO ()
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int m, n, zz[1000], i ;
FILE *rf, *wf ;
rf = fopen('..\\in.dat','r') ;
wf = fopen('..\\out.dat','w') ;
for(i = 0 ; i 10 ; i++) {
fscanf(rf, '%d %d', m, n) ;
fun(m, n, zz) ;
for( m = 0 ; m n ; m++ ) fprintf(wf, '%d ', zz[m]) ;
fprintf(wf, '\n') ;
}
fclose(rf) ;
fclose(wf) ;
}
活动设计题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
例如,字符串中的内容为:****A*BC*DEF*G******,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。提示:建议从字符串尾统计*的个数。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include <stdio.h>
void fun(char*a,int n)
{
}
main()
{ char s[81]; int n;
printf('Enter a string:\n');gets(s);
printf('Enter n:');scanf('%d',n);
fun(s,n);
printf('The string after deleted:\n');puts(s);
}
活动设计题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。
注意:部分源程序在文件PROG1. C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio. h>
#define N 16
typedef struct
{ char num[10];
int s;
}STREC;
int fun(STREC *a, STREC *b)
{
}
main( )
{STREC s[N]={{'GA05', 85), {'GA03', 76},
{'GA02', 69}, {'GA04', 85), {'GA01', 91},
{'GA07', 72}, {'GA08', 64}, {'GA06', 87},
{'GA015', 85}, {'GA013', 91}, {'GA012', 64},
{'GA014', 91}, {'GA011', 91}, {'GA017', 64},
{'GA018', 64), {'GA016', 72}};
STREC h[N];
int i, n; FILE *out;
n=fun(s, h);
printf('The %d lowest score:\n', n);
for(i=0; i<n; i++)
printf('%s %4d\n', h[i]. num, h[i]. s);
printf('\n');
out=fopen('out. dat', 'w');
fprintf(out, '%d\n', n);
for(i=0; i<n; i++)
fprintf(out, '%4d\n', h[i]. s);
fclose(out);
}
活动设计题
请编写函数fun,函数的功能是:移动一维数组中的内容:若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。
例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10:p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#inolude<stdio.h>
#define N 80
void fun(int *w, int p, int n)
{
}
main()
{int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
int i, p, n=15; void NONO();
printf('The original data:\n');
for(i=0; i<n; i++)printf('%3d', a[i]);
printf('\n\nEnter p:'); scanf('%d', p);
fun(a, p, n);
printf('\nThe data after moving:\n');
for(i=0; i<n; i++)printf('%3d', a[i]);
printf('\n\n');
NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
FILE *rf, *wf; int a[N], i, j, p, n;
rf=fopen('in.dat', 'r');
wf=fopen('out.dat', 'w');
for(i=0; i<5; i++) {
fscanf(rf, '%d %d', n, p);
for(j=0; j<n; j++)fscanf(rf, '%d', a[j]);
fun(a, p, n);
for(j=0; j<n; j++)fprintf(wf, '%3d', a[j]); fprintf(wf, '\n');
}
fclose(rf); fclose(wf);
}
活动设计题
请编一个函数fun(char*s),函数的功能是把s所指字符串中的内容逆置。
例如:字符串中原有的字符串为:abcdefg,则调用该函数后,串中的内容为:gfedcba。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<string.h>
#include<stdio.h>
#define N 81
fun(char *s)
{
}
NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
int i;
char a[N];
FILE *rf, *wf;
rf=fopen('in.dat', 'r');
wf=fopen('out.dat', 'w');
for(i=0; i<10; i++) {
fscanf(rf, '%s', a);
fun(a);
fprintf(wf, '%s\n', a);
}
fclose(rf);
fclose(wf);
}
main()
{char a[N];
printf('Enter a string:'); gets(a);
printf('The original string is:'); puts(a);
fun(a);
printf('\n');
printf('The string after modified:');
puts(a);
NONO();
}
活动设计题 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入'abc4Efg',则应输出'aBc4EFg'。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void fun(char *ss)
{
}
void main()
{
FILE * wf;
char tt[81],s[81]='abc4Efg';
system('CLS');
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);
/*****************/
wf=fopen('out.dat','w');
fun(s);
fprintf(wf,'% s',s);
fclose(wf);
/*****************/
}
活动设计题 函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:“135”。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
void fun(char *s, char t[])
{
}
main()
{
char s[100], t[100];
printf('\nPlease enter string S:');
scanf('%s', s);
fun(s, t);
printf('\nThe result is: %s\n', t);
}
活动设计题 函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12。调用该函数后,c=5241。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(int a, int b, long *c)
{
}
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);
}
活动设计题 请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。
例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;p的值为3。移动后,一维数组中的内容应为:5、6、7、8、9、10、1、2、3、4。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#define N 80
void fun(int *w,int p,int n)
{
}
main()
{int a[N]={1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15};
int i,p,n=15;
printf('The original data:\n');
for(i=0;i<n;i++)
printf('%3d',a[i]);
printf('\n\nEnter p:');
scanf('%d',p);
fun(a,p,n);
printf('\nThe data after moving:\n');
for(i:0;i=n;i++)
printf('%3d',a[i]);
printf('\n\n');
}
活动设计题 请编写函数proc(),其功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。
xn+1=cos(xn)
迭代步骤如下:
(1)取x1的初始值为0.0;
(2)x0=x1,把x1的值赋给x0;
(3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,将其作为函数值返回。
程序将输出结果root=0.739085。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<math.h>
#include<stdio.h>
float proc()
{
float x1=0.0,x0;
do
{
x0=x1;
x1=cos(x0);
}
while(fabs(x0-x1)>=1e-6);
return x1;
}
void main()
{
float f=proc();
printf('root=%f\n',f);
}
活动设计题编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include<stdio.h>#include<math.h>doublefun(doublex,intn){}main(){pfintf('%f\n',fun(0.3,10));}
活动设计题 已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define N 10
typedef struct ss /*定义结构体*/
{char num[10];
int s;
}STU;
fun(STU a[], STU*s)
{
}
void main()
{
STU a[N]={{'A01', 81}, {'A02', 89}, {'A03', 66}, {'A04', 87}, {'A05', 77}, {'A06', 90}, {'A07', 79}, {'A08', 61}, {'A09', 80}, {'A10', 71}}, m;
int i;
system('CLS');
printf('****The original data****');
for(i=0; i<N; i++)
printf('No=%s Mark=%d\n', a[i].num, a[i].s);
fun(a, m);
printf('****THE RESULT****\n');
printf('The top:%s, %d\n', m.num, m.s);
}
活动设计题 编写一个函数,从传入的M个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
注意:部分源程序给出如下:
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char*proc(char(*a)[81], int num)
{
}
void main()
{
char ss[10][81], *max;
int n, i=0;
printf('输入若干个字符串:');
gets(ss[i]);
puts(ss[i]);
while(! stremp(ss[i], '****')==0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
max=proc(ss, n);
printf('\nmax=%s\n', max);
}
活动设计题
请编写函数fun,它的功能是计算并返回n(包括n)以内能被5或9整除的所有自然数的倒数之和。
例如,在主函数中从键盘给n输入20后,输出为s=0.583333。
注意:要求n的值不大于1000部分源程序存放在文件PROG1.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下:
#include stdio.h
double fun(int n)
{
}
main()
{ int n; double s;
void NONO( );
printf('\nInput n: '); scanf('%d',n);
s=fun(n);
printf('\n\ns=%f\n',s);
NONO();
}
void NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ; double s ;
rf = fopen('..\\in.dat','r') ;
wf = fopen('..\\out.dat','w') ;
for(i = 0 ; i 10 ; i++) {
fscanf(rf, '%d', n) ;
s = fun(n) ;
fprintf(wf, '%lf\n', s) ;
}
fclose(rf) ; fclose(wf) ;
}
活动设计题 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“****ABCDEFG”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<string.h>
#include<stdio.h>
#include<conio.h>
void fun(char *a)
{
}
main()
{
char s[81];
printf( ' Enter astring: \n');
gets(s);
fun(s);
printf('The string after deleted:kn');
puts(s);
}
活动设计题 N名学生的成绩已在主函数中放入一个带有头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:找出学生的最高分,并由函数值返回。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdio.h>
#include <stdlib.h>
#define N 8
struct slist
{
double s;
struct slist *next;
};
typedef struct slist STREC;
double fun(STREC *h)
{
}
STREC*creat(double *s)
{
STREC*h,*p,*q;
int i=0;
h=p=(STREC*)malloc(sizeof(STREC));
p->s=0;
while(i<N)
/*产生8个结点的链表,各分数存入链表中*/
{
q=(STREC*)malloc(sizeof(STREC));
p->s=s[i];i++;p->next=q;
p=q;
}
p->next=NULL;
return h;/*返回链表的首地址*/
}
outlist(STREC*h)
{
STREC *p;
p=h;
printf('head');
do
{
printf('->%2.0f',p->s);
p=p->next;
}/*输出各分数*/
while(p->next!=NULL);
printf('\n\n');
}
void main()
{
double s[N]={85,76,69,85,91,72,64,87}, max;
STREC *h;
h=creat(s);
outlist(h);
max=fun(h);
printf('max=%6.1f\n ',max);
}
活动设计题 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入“abc4EFg”,则应输出“aBc4EFg”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void fun(char*ss)
{
}
void main()
{
char tt[81];
system('CLS');
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);
}
活动设计题 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做处理。字符串中间和尾部的*号不删除。
例如,字符串中的内容为“*******A*BC*DEF*G****”,若n的值为4,删除后,字符串中的内容应当是“****A*BC*DEF*G****”;若n的值为8,则字符串中的内容仍为“*******A*BC*DEF*G****”。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
void fun (char *a,int n)
{
}
void main()
{
char s[81]; int n;
printf('Enter a string:\n');
gets(s);
printf('Enter n:');
scanf('%d',n);
fun(s,n);
printf('The string after deleted:\n');
puts(s);
}
活动设计题 已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#define N 10
typedef struct ss
{char num[10];
int s;
}STU;
fun(STU a[],STU *s)
{
}
void main()
{
FILE *wf;
STU a[N]={{'A01',81},{'A02',89},{'A03',66},{'A04',87},{'A05',77},{'A06',90},{'A07',79},{'A08',61},{'A09',80},{'A10',71}),m;
int i;
system('CLS');
printf('*****The originaldata*****\n');
for(i=0;i<N;i++)
printf('No=%s Mark=%d\n',a[i].num,a[i].s);
fun(a,m);
printf('****THE RESULT****\n');
printf('The lowest :%s, %d\n',m.num,m.s);
/******************/
wf=fopen('out.dat','w');
fprintf(wf,'%s,%d',m.num,m.s);
fclose(wf);
/******************/}
