问答题下列给定程序中,函数fun的功能是:按以下递归公式求函数的值。例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>/*********found*********/fun(n){intc;/*********found*********/if(n=1)c=10;elsec=fun(n一1)+2;return(c);}main(){intn;printf("Entern:");scanf("%d",&n);printf("Theresult:%d\n\n",fun(n));}
问答题请编写函数fun(),该函数的功能是:移动字符串中的内容,移动的规则是把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。 例如,字符串中原有的内容为ABCDEFGHIJK,m的值为 3,移动后,字符串中的内容应该是DEFGHIJKABC。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio. h> #include <string.h> #define N 80 void fun (char *w, int m) main ( ) char a[N]= "ABCDEFGHIJK"; int m; printf ("The origina string : /n"); puts (a); printf("/n/nEnter m: "); scanf ("%d", fun (a, m); printf (" /nThe string after moving : /n"); puts (a); printf ("/n/n");
问答题给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。
例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9
计算结果为
7 4 1
8 5 2
9 6 3
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 4
void fun(int (*t) [N])
{ int j,r[N];
for(j=0;j<N;j++) r[j]=t[0][j];
for(j:0;j<N;j++)
/**********found**********/
t[0][N-j-1]=t[j][______];
for(j=0;j<N;j++)
t[j][0]=t[N-1][j];
/**********found**********/
for(j=N-1;j>=0;______)
t[N-1][N-1-j]=t[j][N-1];
for(j=N-1;j>=0;j--)
/**********found**********/
t[j][N-1]=r[______];
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;
printf("/nThe original 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");
}
}
问答题下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
#define M 10
typedef struct ss
{
char num[10];
int s;
}
STU;
STU*proc(STU a[], int m)
{
STU b[M], *t;
int i, j, k;
//****found****
*t=calloc(m, sizeof(STU));
for(i=0; i<M; i++)
b[i]=a[i];
for(k=0; k<m; k++)
{
//****found****
for(i=j=0; i<M; j++)
if(b[i].s<b[i].s)
j=i;
//****found****
t[k].s=b[j].s;
b[j].s=100;
}
return t;
}
void outresult(STU a[], FILE *pf)
{
int i;
for(i=0; i<M; i++)
fprintf(pf, "No=%s Mark=%d/n", a[i].num, a[i].s);
fprintf(pf, "/n/n");
}
void main()
{
STU stu[M]={{"A01", 77}, {"A02", 85}, {"A03", 96}, {"A04", 65}, {"A05", 75},{"A06", 96}, {"A07", 76}, {"A08", 63},{"A09", 69}, {"A10", 78}};
STU*pOrder;
int i, m;
system("CLS");
printf("****THE RESULT****/n");
outresult(stu, stdout);
printf("/nGive the number of the studentswho have lower score:");
scanf("%d",
while(m>10)
{
printf("/nGive the number of the students who have lower score:");
scanf("%d",
}
pOrder=proc(stu, m);
printf("****THE RESULT****/n");
printf("The low:/n");
for(i=0; i<m; i++)
printf("%s%d/n", pOrder[i].num, pOrder[i].s);
free(pOrder);
}
问答题程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N],intn),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为:则返回主程序后a数组中的值应为:注意:部分源程序给出如下。清勿改动函数ma5n和其他函数令的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没有找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 文件PROG1.C内容如下: #include<stdio.h> #include<string.h> #define N 16 typedef struet char num[10]; int s ; STREC ; STREC fun( STREC * a, char * b ) void main( ) t STREC s[N] = " GA005" ,85, " GA003" ,76 , " GA002" ,69 ," GA004" ,85, "GA001" ,91, "GA007" ,72, "GA008" ,64, "GA006" ,87 , "GA015",85, "GA013" ,91, "GA012" ,64, "GA014" ,91 , "GA011" ,77, "GA017" ,64, "GA018" ,64, " GA016" ,72 ; STREC h ; char m[10]; int i ; printf( "The original data: /n") ; for(i=0; i<N; i++) if(i%4==0) printf("/n"); printf("%s %3d ",s[i].num,s[i].s); printf( " /n/nEnter the number: " ) ; gets ( m ) ; h=fun( s,m ); prinff( " The data : " ) ; prinff("/n%s %4d/n",h. num,h.s);
问答题请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。
注意:部分源程序存在PROG1. C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <stdio. h>
#include <stdlib. h>
#define M 14
void NONO( );
void fun(char(*t) [M], int *a, int *c)
{
}
void get(char(*s)[M])
{int i, j;
for(i=0; i<M; i++)
{for(j=0; j<M; j++)
{s[i][j]=65+rand( )%12;
printf("%c", s[i][j]);}
printf("/n");
}
}
main( )
{ char a[M][M];
int x, y;
get(a);
fun(a,
printf("A=%d C=%d/n", x, y);
NONO( );
}
void NONO( )
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf;
int i, j, x, y;
char a [M][M];
fp=fopen
("C://WEXAM//24990001//in. dat", "r");
wf=fopen
("C://WEXAM//24990001//out. dat", "w");
for(i=0; i<M; i++)
{for(j=0; j<M; j++)
{fscanf(fp, "%c", )
}
Fun (a,
fprintf(wf, "A=%d/n", x);
fprintf(wf, "c=%d/n", y);
fclose(fp);
fclose(wf);
}
问答题给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7。输出结果为:4。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
void fun(char *s, int *t)
{ int i, n;
n=0;
/********** found**********/
for(i=0; 【1】 !=0; i++)
/********** found**********/
if (s[i]>='0'
/********** found**********/
【3】 ;
}
main ()
{ char s[80]="abcdef35adgh3kjsdf7";
int t;
printf("/nThe original string
is: %s/n",s);
fun(s,
printf ("/nThe result is : %d/n",t); }
问答题
请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。
注意:要求n的值不大于100。
部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
double fun(int n)
{
}
NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
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",
s=fun(n);
fprintf(wf, "%lf/n", s);
}
fclose(rf); fclose(wf);
}
main()
{int n; double s;
printf("/nInput n: "); scanf("%d",
s=fun(n);
printf("/n/ns=%f/n", s);
NONO();
}
问答题
给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。
例如,若输入“I am a student to take the examination.”,则应输出“I aM A studenT tO takE thE examination.”。
请修改程序中的错误之处,使它能得出正确的结果。
注意:不要改动main函数,不得删行,也不得更改程序的结构!
#include<ctype.h>
#include<stdio.h>
#include<string.h>
void fun(char*p)
{
int k=0;
for(; *p; p++)
if(k)
{
/**********found**********/
if(p==" ")
{
k=0;
/**********found**********/
*(p)=toupper(*(p-1))
}
}
else
k=1;
}
main()
{
char chrstr[64];
int d;
printf("/nPlease enter an English sentence within 63 letters:");
gets(chrstr);
d=strlen(chrstr);
chrstr[d]=" ";
chrstr[d+1]=0;
printf("/n/nBefore changing:/n %s", chrstr);
fun(chrstr);
printf("/nAfter changing:/n %s", chrstr);
}
问答题下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回一1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>#include<string.h>#define N 5#define M 8int fun(char(*ss)[M],char*t){ int i;/******found******/ for(i=0;i<____1____;i++) if(stremp(ss[i],t)==0)/****found****/ return____2____; return一1;}main(){ char ch[N][M]={.if“,”while”,”switch”,”int“,”for”},t[M]; int n,i; printf(“\nThe original string\n\n”); for(i=0;i<N;i++) puts(ch[i]); printf(“\n”); prinff(“\nEnter a string for search:”); gets(t); n=fun(ch,t);/******found******/ if(n==____3____) prinff(“\nDon’t found!\n”); else printf(“\nThe position is%d.\n”,n);
问答题请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,主函数中输出"YES",否则返回0,主函数中输出"NO"。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#define N 80int fun(char*str){}main(){ char s[N]; FILE*out; char*test[]={"1234321","123421","123321","abcdCBA"}; int i; printf("Enter a string:"); gets(s), printf("\n\n"); puts(s); if(fun(S)) printf("YES\n"); else printf("NO\n"); /******************/ out=fopen("out.dat","w"); for(i=0;i<4;i++) if(fun(test[i])) fprintf(out,"YES\n"); else fprintf(out,"NO\n"); fclose(out); /******************/ }
问答题请编写函数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(包括n)以内所有能被5或9整除的自然数的倒数之和。
例如,若主函数中从键盘给n输入20后,则输出为S=0.583333。
注意:n的值要求不大于100。部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
double fun(int n)
{
}
main()
{
int n;
double s;
printf("/nInput n:");
scanf("%d",
s=fun(n);
printf("/n/n S=%f/n",s);
}
问答题下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为7654321时,t中的数为642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include<stdio.h> #include <conio.h> /*************found**************/ void fun(long s,long t) long s1=10; s/=10; *t=s%10; /*************found**************/ while(s<0) s=s/100; *t=s%10*s1+*t; s1=s1*10; main() long s, t; clrscr(); printf("/nPlease enter s: "); scanf ("%ld", fun(s, printf("The result is: %ld/n ",t);
问答题下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。 例如,若numl和num2分别为49和2l,则输出的最大公约数为7;若numl和hum2分别为27和81,则输出的最大公约数为27。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdio.h >int fun(int a,int b){ int r,t; if(a < b){/*********found*********/ t=a;b=a;a=t; } r=a%b; while(r!=0) {a=b;b=r; r=a%b;}/*********found*********/ return(a);}void main(){ int hum1,hum2,a; printf ( " Inputhuml num2:"); scani("%d%d”,&nurn1,&num2); printf("hum1=%d num2=%d/n/n",num1,hum2); a=fun(num1,hum2); printf("The maximun commondivisor is%d/n/n",a);}
问答题int y=1, x, *p, a[ ]={2,4,6,8,10};
p=
for(x=0;x<3;x++)
y + = * (p + x);
printf("%d\n",y);
程序的输出结果y的值是__________ 。
问答题函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12。调用该函数后,c=5241。
注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun(int a, int b, long *c)
{
}
main()
{ int a,b; long c;
printf("Input a, b:");
scanf("%d%d",
fun(a, b,
printf("The result is: %ld/n", c);
NONO();
}
问答题编写程序,实现矩阵(3行3列)的转置f即行列互换)。
例如,输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
100 400 700
200 500 800
300 600 900
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(int array[3][3])
{
}
main()
{
int i, j;
int array[3][3]={{100, 200, 300},
{400, 500, 600},
{700, 800, 900}};
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("%7d", array[i][j]);
printf("/n");
}
fun(array);
printf("Converted array:/n");
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("%7d", array[i][j]);
printf("/n");
}
}
问答题
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正函数fun中指定部位的错误,伎它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<stdlib.h>
typedef struct aa
{ int data;
struct aa *next;
} NODE;
int 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;
int i;
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/nHEAD");
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);
}
