问答题给定程序MODI1.C中函数fun的功能是: 求整数x的y次方的低3位值。例如,整数5的6次方为15625, 此值的低3位值为625。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
long fun(int x,int y,long *p )
{ int i;
long t=1;
/**************found**************/
for(i=1; i
t=t*x;
*p=t;
/**************found**************/
t=t/1000;
return t;
}
main()
{ long t,r; int x,y;
printf("/nInput x and y: "); scanf("%ld%ld",
t=fun(x,y,
printf("/n/nx=%d, y=%d, r=%ld, last=%ld/n/n",x, y,r,t );
}
问答题给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 例如,若输入“I am a student to take the examination.”,则应输出“I aM A studenT tO takE thE examination.”。 请修改程序中的错误之处,使它能得出正确的结果。 注意:不要改动main函数,不得删行,也不得更改程序的结构!1 #include<ctype.h>2 #include<stdio.h>3 #include<string.h>4 void fun(char *p)5 {6 int k=0;7 for(;*p;p++)8 if(k)9 {10 /**********found**********/11 if(p==' ')12 {13 k=0;14 /**********found**********/15 (p)=toupper(*(p-1))16 }17 }18 else19 k=1;20 }21 main()22 {23 char chrstr[64];24 int d;2526 printf(''\nPlease enter an English sentence within 63 letters:'');27 gets(chrstr);28 d=strlen(chrstr);29 chrstr[d]=' ';30 chrstr[d+1]=0 ;31 printf(''\n\nBefore changing:\n%s'',chrstr);32 fun(chrstr);33 printf(''\nAfter changing:\n%s'',chrstr);34 }
问答题给定程序中,函数fun的功能是:判断形参s所指字符串是否是"回文"(Palindrome),若是,函数返回值为1;不是,函数返回值为0。"回文"是正读和反读都一样的字符串(不区分大小写字母)。
例如,LEVEL和Level是"回文",而LEVLEV不是"回文"。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#include
int fun(char *s)
{ char *lp,*rp;
/**********found**********/
lp= __1__ ;
rp=s+strlen(s)-1;
while((toupper(*lp)==toupper(*rp)) rp __2__ ; }
/**********found**********/
if(lp
else return 1;
}
main()
{ char s[81];
printf("Enter a string: "); scanf("%s",s);
if(fun(s)) printf("/n/"%s/" is a Palindrome./n/n",s);
else printf("/n/"%s/" isn't a Palindrome./n/n",s);
}
问答题请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,若输入:17,则应输出: 4 6 8 9 10 12 14 15 16。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int m,int *k,int xx[])3 {45 }6 main()7 {8 int m,n,zz[100];9 void NONO();10 printf(''\nPlease enter an integer number between 10 and 100:'');11 scanf(''%d'',&n);12 fun(n,&m,zz);13 printf(''\n\nThere are%d non-prime numbers less than%d:'',m,n);14 for(n=0; n<m; n++)15 printf(''\n%4d'',zz[n]);16 NONO();17 }18 void NONO()19 {20 /*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/21 int m,n,zz[100];22 FILE *rf,*wf;23 rf=fopen(''in.dat'',''r'');24 wf=fopen(''out.dat'',''w'');25 fscanf(rf,''%d'',&n);26 fun(n,&m,zz);27 fprintf(wf,''%d\n%d\n'',m,n);28 for(n=0; n<m; n++)29 fprintf(wf,''%dkn'',zz[n]);30 fclose(rf);31 fclose(wf);32 }
问答题函数fun的功能是:在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。例如,主函数中给出了4名学生的数据,则程序运行的结果为:学号:N1002学号:N1006共有2位学生有不及格科目请在程序的下划线处填人正确的内容,并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!试题程序:
问答题请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。函数fun中给出的语句仅供参考。
例如,字符串数组中的M个字符串为
AAAA
BBBBBBB
CC
则合并后的字符串的内容应是:AAAABBBBBBBCC。
提示:strcat(a,b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#inclnde<stdio.h>
#include<string.h>
#define M 3
#define N 20
void fun(char a[M][N],char *b)
{
/*以下代码仅供参考*/
int i;*b=0;
}
main()
{char w[M][N]={"AAAA","BBBBBBB","CC"},a[100];
inti;
printf("The string:/n");
for(i=0;i<M;i++)puts(w[i]);
printf("/n");
fun(w,a);
printf("The A string:/n");
printf("%s",a);printf("/n/n");
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(char *a)
{
}
main()
{char s[81];
printf("Enter a slring:/n");gets(s);
fun(s);
printf("The string after deleted:/n");puts(s);
}
问答题下列给定程序中,函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如,若k=10,则应输出3628800。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conjo.h>#include<stdio.h>long fun(int k){/*********found*********/ if k>1 return(k*fun(k-1)); Eeturn 1;}main(){ int k=10; printf("%d!=%ld\n",k,fun(k));}
问答题编写函数fun,其功能是:将s所指字符串中除了下标为奇数,同时ASCII码值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若S所指字符串的内容为“ABCDEFG12345”,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依次类推。最后t所指数组中的内容应为“135”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#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);
}
问答题请编写函数proc(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,若字符串数组中的M个字符串为:
ABCD
BCDEFG
CDEFGHI
则合并后的字符串内容应该是:ABCDBCDEFGCDEFGHI。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#define M 3
#define N 20
void proc(char arr[M][N],char*b)
{
}
void main()
{
char str[M][N]={"ABCD","BCDEFG","CDEFGHI"},i;
char arr[100]={"##################"};
printf("The string:n");
for(i=0;i<M;i++)
puts(str[i]);
printf("/n");
proc(str,arr);
printf("The A string:n");
printf("%s",arr);
printf("/n/n");
}
问答题给定程序中,函数fun的功能是:
根据形参i的值返回某个函数的值。当调用正确时,程序输出:
x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.0000000
注意:部分源程序在文件BLANKl .C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio .h >
double f1 (double x)
{ return x * x; }
double f2 (double x, double y)
{ return x*y; }
/*********found*********/
【1】
fun (int i, double x, double y)
return
【2】
(x) ;
else
/*********found*********/
return
【3】
(x, y) ;
}
main ()
{ double x1=5, x2 =3, r:
r = fun (1, x1, x2);
r + = fun (2, x1, x2);
printf ("/nxl =% f, x2 =% f, x1 * x1+x1 *x2 =% f/n/n",xl, x2, r) ;
}
问答题下列给定程序中,函数fun的功能是:将N×N矩阵中元素的值按列向右移动1个位置,右边被移出矩阵的元素绕回左边第1列。
例如,N=3,有下列矩阵
1 2 3
4 5 6
7 8 9
计算结果为:
3 1 2
6 4 5
9 7 8
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 4
void fun(int(*t)[N])
{
int i,j,x;
for(i=0;i<
【1】
;i++)
{
X=t[i][
【2】
];
for(j=N一1;j>0;j--)
t[i][j]=t[i][j一1];
t[i][
【3】
]=x;
}
}
main()
{
int i,j,t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10};
printf("The orriginal array:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%2d",t[i][j]);
printf("\n");
}
fun(t);
printf("\nThe result is:\n“);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%2d",t[i][j]);
printf("\n");
}
}
问答题给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
typedef struct aa
{ int data;
struct aa *next;
} NODE;
int fun (NODE *h)
{ int max=-l;
NODE *p;
/*********** found**********/
p=h ;
while(p)
{ if (p->data>max)
max=p->data;
/*********** found**********/
p=h->next ;
}
return max;
}
outresult(int s, FILE *pf)
{fprintf(pf,"/nThe max in
link : %d/n",s);}
NODE *creatlink(int n, int m)
{NODE *h, *p, *s;
int i;
h=p=(NODE*)malloc(sizeof(NODE));
h->data=9999;
for(i=l; idata=rand()%m;
s->next=p-> next;
p->next=s; p=p->next;
}
p->next=NULL;
return h;
}
outlink(NODE *h, FILE *pf)
{NODE *p;
p=h->next;
fprintf (pf, "/nTHE LIST:/n/n HEAD ") ;
while(p)
{fprintf (pf,"->%d ",p->data) ;
p=p->next;
}
fprintf(pf,"/n");
}
main ()
{NODE *head; int m;
head=creatlink(12, 100);
outlink(head , stdout);
m=fun(head);
printf("/nTHE RESULT :/n");
outresult(m, stdout);
}
问答题请编写函数fun( ),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p~n-1(p<n-1)的数组元素平移到数组的前面。
例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,P的值为6。移动后,一维数组的内容应为7,8,9,10,1 1,12,13,14,15,1,2,3,4,5,6。
注意:
请勿改动主函数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",
fun(a,p,n);
printf("/nThe data after moving:/n");
for(i=0;i<n;i++)
printf("%3d",a[i]);
printf("/n/n");
}
问答题学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组S中。 请编写函数fun,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 例如,输入的分数是60、69,则应当把分数在60一69的学生数据输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >#define N 16typedef struct{ char num[10]; int s;}STREC;int fun(STREC*a,STREC*b,int 1,int h){}void main(){ STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",96},{"GA007",72),{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91},{"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}}; STREC h[N]; int i , n , low , heigh ,t; printf("Enter 2 integer number low&heigh:"); scanf("%d%d",&low,&heigh); if(heigh < low) {t=heigh;heigh=1ow;low=t;} n=fun(s,h,low,heigh); printf("The student's databetween%d一一%d:/n",low,heigh); for(i=0 ; i < n ;i++) printf("%s%4d/n",h[i].num,h[i].s); printf("/n");}
问答题给定程序MODI1.C中函数fun的功能是计算“n!”。
例如,n为5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
double fun(int n)
{ double result=1.0;
/************found************/
if n==0
return 1.0;
while(n>1
}
main()
{ int n;
printf("Input N:");
scanf("%d",
printf("/n/n%d!=%lf/n/n",n,fun(n));
}
问答题请编—个函数flat fun(double h),该函数的功能是:使变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。例如,若h值为1234.567,则函数返回1234.570000;若h值为1234.564,则函数返回1234.560000。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:1 #include<stdio.h>2 #include<conio.h>3 #include<stdlib.h>4 float fun(float h)5 {67 }8 void main()9 {10 FILE*wf;11 float a;12 system("CLS");13 printf("Enter a:");14 scanf("%f",&a);15 printf("The original data is:");16 printf("%f\n\n",a);17 printf("The result:%f\n",fun(a));18 /******************/19 wf=fopen("out.dat","W");20 fprintf(wf,"%f",fun(8.32533));21 fclose(wf);22 /******************/23 }
问答题下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正程序指定部位的错误,使它能得到正确结果。 [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。 [试题源程序] #include<stdio.h> #include<stdlib.h> typedef struct aa int data; struct aa *next; NODE; fun(NODE *h) int max=-1; NODE *p; /***********found************/ p=h; while(p) if(p->data>max) max=p->data; /************found************/ p=h->next; return max; outresult(int s, FILE *Pf) fprintf(pf, "/nThe max in link: %d/n", s); NODE *creatlink(int n, int m) NODE *h, *p, *s, *q; int i, x; h=p=(NODE *)malloc(sizeof(NODE)); h->data=9999; for(i=1; i<=n; i++) s=(NODE *)malloc(sizeof(NODE)); s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; p->next=NULL; return h; outlink(NODE *h, FILE *pf) NODE *p; p=h->next; fprintf(Pf, "/nTHE LIST:/n/n HEAD"); while(P) fprintf(pf, "->%d", P->datA); p=p->next; fprintf(pf, "/n"); main() NODE *head; int m; head=cteatlink(12,100); outlink(head, stdout); m=fun(head); printf("/nTHE RESULT"/n"); outresult(m, stdout);
问答题已知学生的记录由学号和学习成绩构成,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)
{
}
vofd 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***/n");
for(i=0; i<N; i++)
printf("No=%s Mark=%d/n",
a[i].num, a[i].s);
fun(a,
printf("****The result****/n");
printf("The lowest:%s, %d/n", m.num, m.s);
}