问答题请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数: 876 675 896 101 301 401 980 431 451 777 则输出结果为: 6,980 注意:部分源程序在文件PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 文件PROG1.C内容如下: #include<stdio.h> void fun(int *s,int t,int *k) void main( ) int a[10]=876,675,896,101,301,401,980,431,451,777,k; fun(a,10,&k); printf("The resuh:%d,%d/n",k,a[k]);
问答题下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
int fun(int m)
{
int i,k;
for(i=m+1;;i++)
{
for(k=2;k<i;k++)
/********found********/
if(i%k!=0)
break;
/********found********/
if(k<i)
return(i);
}
}
void main()
{
int n;
system("CLS");
printf("/nPlease enter n:");
scanf("%d",&n);
printf("%d/n",fun(n));
}
问答题函数fun的功能是:将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。 例如,若s所指字符串中的内容为“ABCDEFG123456”,其中字符A的ASCII码值为奇数,因此应当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“246”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> #include<string.h> void fun(char*s,char t[]) voidmain() char s[100],t[100]; system("CLS"); printf("/nPlease enter string S:"); scanf("%s",s); fun(s,t); printf("/nThe result is:%s/n",t);
问答题给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动mam函数,不得增行或删行,也不得更改程序的结构!
#include
#define M 5
int fun(int nr int xx[] [])
{ int i,j,sum=0;
printf("/nThe %d x %d matrix:/n",
printf ("/n") ;
}
sum += xx [i] [i]+xx [i] [n—i—l] ;
return (sum) ;
}
main ()
{ int aa[M] [M]={ {1,2,3,4,5},
{4,3,2,1,0 },{ 6,7,8,9,0},t 9,8,7,6,5},
printf ("/nThe sum of all elements
on 2 diagnals is %d.",fun (M, aa)) ;
}
问答题下列程序定义了N x N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成0。例如a数组中的值为:
1 9 7
2 3 8
4 5 6
则返回主程序后a数组中的值应为:
0 9 7
0 0 8
0 0 0
注意
:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define N 5
void fun (int a[][N])
{
}
void main()
{
int a[N][N],i,j;
system("CLS");
printf{"*****The array*****/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("THE RESULT/n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%4d",a[i][j]);
printf("/n");
}
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:A*BC*DEF*G。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(char*a,int n,int h,int e)
{
}
main()
{char s[81],*t,*f;int m=0,tn=0,fn=0;
printf("Enter a string:/n");gets(s);
t=f=s;
while(*t){t++;m++;}
t--;
while(*t=="*"){t--;tn++;}
while(*f=="*"){f++;fn++;}
fun(s,m,fn,tn);
printf("The string after deleted:/n");puts(s);
}
问答题请编写函数fun(),其功能是:计算并输出下列多项式的值。 S=1+4/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n) 例如,着主函数从键盘给n输入50后,则输出为 S=1.960784。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> double fun(int n) main () int n; double s; printf ("/nInput n: "); scanf ("%d", s=fun (n); printf ("/n/ns=%f/n/n", s);
问答题下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。例如,若输入5,则应输出一0.283333。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:1#include<stdlib.h>2#include<conio.h>3#include<stdio.h>4doublefun(intm)5{6doublet=1.0;7inti;8for(i=2;i<=m;i++)9/*********found*********/10t=1.0—1/i;11/*********found*********/12;13}14voidmain()15{intm;16system("CLS");17printf("\nPleaseenter1integetnumbers:\n");18scanf("%d",&m);19printf("\n\nTheresultis%1f\n",20fun(m));21}
问答题给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 6
typedef struct node {
int data;
struct node *next;
} NODE;
void fun (NODE *h)
{NODE *p,*q; int t;
while (p) {
q=____2____;
while (q) {
/*********found**********/
if (p—>data ____3____ q—>data)
{ t — p—>data; p—>data = q—>
data; q=>data = t; }
q = q—>next;
}
p= p—>next;
}
}
NODE *creatlist (int a [ ] )
{NODE *h,*p,*q; int i;
h= (NODE *) malloc (sizeof (NODE)) ;
h—>next = NULL;
{ q= (NODE *) malloc (sizeof (NODE)) ;
q—>data=a [i] ;
q—>next = NULL;
if (h—>next == NULL) h—>next =
p = q;
else {p—>next = q; p = q; }
}
return h;
}
void outlist (NODE *h)
{NODE *p;
p = h—>next;
if (p==NULL) printf("The list is
else
{ printf ("/nHead ") ;
do
{ printf("—>%d",p—>data) ; p=p
—>next; }
while (p ! =NULL) ;
printf ("—>End/n") ;
}
}
main ()
{NODE *head;
int a[N]= {0,10,4,2,8f 6 };
head=creatlist (a) ;
printf ("/nThe original list:/n") ;
outlist (head) ;
fun (head) ;
printf ("/nThe list after sorting:
outlist (head) ;
}
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、"ZhangQi"、93、85、87,修改后输出t中的数据应为:10004、"Lijie"、93、85、87。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
struct student {
long sno;
char name [10] ;
float score [3];
};
void fun (struct student *b)
{
/**********found**********/
b ____1____ =10004;
/**********found**********/
strcpy (b____2____, "Lijie") ;
main ()
{ struct student t={10002,
"ZhangQi",93,85,87} ;
int i;
printf ("/n/nThe original data:/nf') ;
printf("/nNo: %ld Name: %s/nScores:
",t.sno, t.name) ;
for (i=0; i<3; 1++) printf ( " %6 . 2 f printf ("/n") ;
/**********found**********/
fun (____3____ ) f
printf("/nThe data after modified:
printf("/nNo: oold Name: %s/nScores:
",t.sno, t.name) ;
for (i=0; i<3f i++) printf("%6.2f
printf ("/n") ;
}
问答题学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define M 12
typedef struct
{cbar num[10];
double s;
}
STREC;
douhle proc(STREC*a, STREC*b, int*n)
{
}
void main()
{
STREC stu[M]={{"GA05", 85}, {"GA03", 76}, {"GA02", 69}, {"GA04", 85}, {"GA01", 91},{"GA07", 72}, {"GA08", 64}, {"GA06", 87},{"GA09", 60}, {"GA11", 79}, {"GA12", 73},{"GA10", 90}};
STREC h[M];
int i, n;
double ave;
ave=proc(stu, h,
printf("The%d student data which ishigher than%7.3f:/n", n, ave);
for(i=0; i<n; i++)
printf("%s%4.1f/n", h[i].num, h[i].s);
printf("/n");
}
问答题给定程序modil.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include<stdio.h>typedef struct list{int data;struct list *next;}LTST;int fun(LIST *h){LTST *p;/**********found**********/ int t; p=h;/**********found**********/while(*p){/**********found**********/ t=t+p.data; p=(*p).next; } return t;}main()(LIST a,b,c,*h;a.data=34;b.data=51;c.clara=87;c.next='\0';h=&a;a.next=&b;b.next=&c;printf("总和=%d\n",fun(h));}
问答题下列给定程序中函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放人pt所指存储区中。例如:把3个串“abc”、“CD”、“EF”连接起来,结果是“abcCDEF”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
问答题给定程序MODII.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如,若输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为:4(平均分为:75.5625)。
请改正程序中的错误,使它能统计出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#define N 20
int fun (float *s, int n, float
*aver)
{ float ave, t = 0.0 ;
int count =0, k, i ;
for (k = 0 ; k < n ; k++)
/********** found**********/
t = s[k] ;
ave = t / n ;
for (i = 0 ; i < n ; i++)
if (s[i] < ave) count++ ;
/********** found**********/
*aver = Ave ;
return count ;
}
main()
{ float s[30], aver ;
int m, i ;
printf ("/nPlease enter m: ");
scanf ("%d",
printf ("/nPlease enter %d mark:
/n ", m);
for(i = 0 ; i < m ; i++)
scanf ("%f", s + i) ;
printf("/nThe number of
students:%d/n",fun (s, m, saver));
printf("Ave = %f/n", aver);
}
问答题请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入"abc4Efg",则应输出"aBc4EFg"。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数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 stringwithin 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所指字符串中的所有数字字符移到所有非数字字符之前,并保持数字字符串和非数字字符串原有的次序。
例如,s所指的字符串为“def35adh3kjsdf7”,执行后结果为“3537defadhkjsdf”。
请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!
#include
void fun(char*s) {int i,j=0,k=0;char t1[80],t2[80]; for(i=0;s[i]!='\0';i++) if(s[i]>='0'&&s[i]<='9') { /**********found**********/ t2[j]=s[i];【1】; } else t1[k++]=s[i]; t2[j]=0;t1[k]=0; /**********found**********/ for(i=0;i<k;i++)【2】; /**********found**********/ for(i=0;i<【3】;i++)s[k+i]=t2[i]; } void main() {char s[80]=''ba3a54j7sd567sdffs''; printf(''\nThe original string is:%s\n'',s); fun(s); printf(''\nThe result is:%s\n'',s); }
问答题给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
请修改程序中的错误,使它能得出正确的结果。
#include<stdio.h>
#defineN 20
void fun(int a[],int n)
{int i,j,t,p;
for(j=0;j<n-1;j++){
/**********found**********/
P=j
for(i=j;i<n;i++)
if(a[i]<a[p])
/**********found**********/
P=j;
t=a[p];a[p]=a[j];a[j]=t;
}
}
main()
{
int a[N]={9,6,8,3,-1},i,m=5;
printf("排序前的数据:");
for(i=0;i<m;i++)printf("%d",a[i]);printf("/n");
fun(a,m);
printf("排序后的数据:");
for(i=0;i<m;i++)printf("%d",a[i]);printf("/n");
}
问答题函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是“BDF12345”。
请勿改动主函数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的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。
例如,形参s所指的字符串为:abedefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#defiFte N 80
void fun(char*s,int n,char,*t)
{ intz len,i,j=0;
len=strlen(s);
/*********found*********/
if(n>=len)strcpy(
【1】
);
else {
/*********found*********/
for(i=len—n;i<=len-1;i++)
t[j++]=
【2】
;
/*********found*********/
t[j]=
【3】
;
}
}
main()
{char s[N],t[N];int n;
printf("Enter a string:");
gets(s);
printf("Enter n:");
scanf("%d",&n);
fun(s,n,t);
printf("The string t:");
puts(t);
}
问答题给定程序MODI1.C中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
int fun(int *x,int y)
{ int t ;
/********** found**********/
t = x ; x = y ;
/********** found* *********/
return(y);
}
main ()
{ int a = 3, b = 8 ;
printf("%d %d/n", a, b);
b = fun(
printf("%d %d\n",a,b);
}
