问答题请编写函数fun,其功能是:移动字符串中的内容,移动的规则是把第1~m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。例如,字符串中原有的内容为"ABCDEFGHIJK",m的值为3,移动后,字符串中的内容应该是”DEFGHIJKABC”。注意:部分源程序在文件PROG1.C中。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<string.h>#define N 8 0 void fun(char*w,int m){}void main(){ FILE*wf; char a[N]="ABCDEFGHIJK",b[N]="ABCDEFGHIJK"; int m; printf("The origina string:\n"); puts(a); printf("\n\nEnter m:"); scanf("%d",&m); fun(a,m); printf("\nThe string after moving:\n"); puts(a); printf("\n\n");/*********found*********/ wf=fopen("out.dat","w"); fun(b,3); fprintf(wf,"%s",b); fclose(wf);/*********found*********/}
问答题请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入abc4Efg,则应输出aBc4EFg。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <conio.h> #include <stdio.h> #include <string.h> void fun(char *ss) main() char tt[81]; clrscr(); 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);
问答题请编写函数proc(),它的功能是:求出str所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串12341234123,输入字符4,则输出2。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容。 试题程序: #include<stdlib.h> #include<conio.h> #include<stdio.h> #define N 81 int proc(char * str, char c) void main() char a[N], ch; system("CLS"); printf("/nPlease enter a string: "); gets(a); printf("/nPlease enter a char: "); ch=getchar(); printf("/nThe number of the char is: %d /n", proc(a, ch));
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。
请勿改动主函数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("c://test//out.dat","w");
fprintf(out,"%d/n",n);
for(i=0;i<n;i++)
fprintf(out,"%4d/n",h[i].s);
fclose(out);
}
问答题下列给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为“det35adh3kjsdf7”,执行后结果为“det3*5*adh3*kjsdf7*”。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(char*s)
{
int i,j,n;
for(i=0 ; s[i]!='\0'; i++)
/*********found*********/
if(s[i]>='0'
【1】
s[i]<='9')
{
n=0;
/*********found*********
/
while(s[i+1+n]!=
【2】
)
n++;
for(j=i+n+1;j>i;j--)
/*********found*********/
s[j+1]=
【3】
;
s[j+1]='*';
i=i+1;
}
}
main()
{
char s[60]*"def35adh3kjsdf7";
printf("\nThe original string is:%s\n",s);
fun(s);
printf("\nThe result is:%s\n",s);
}
问答题给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是"幻方",若是,函数返回值为1; 不是,函数返回值为0。"幻方"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。
例如,以下3×3的矩阵就是一个"幻方":
4 9 2
3 5 7
8 1 6
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 3
int fun(int (*a)[N])
{ int i,j,m1,m2,row,colum;
m1=m2=0;
for(i=0; i
问答题给定函数MODI1.C中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 例如,若输入:77777,则输出将是:32767。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。1 #include<stdio.h>2 #include<string.h>3 #inolude<stdlib.h>4 int fun(char*p)5 { int n;6 /**********found**********/7 n=*p-'o';8 p++;9 while(*p!=0) {10 /**********found**********/11 n=n*8+*p-'0';12 p++;13 }14 return n;15 }16 main()17 { char s[6];int i;int n ;18 printf(''Enter a string (ocatal digits):'');gets(s);19 if(strlen(s)>5){printf(''Error:stririg too longer!\n\n''); exit(0);}20 for(2=0;s[i];i++)21 if{s[i]<'0'|| s[i]>'7'{22 { printf(''Error: %c not is ocatal digits!\n\n'',s[i]);exit(0);}23 printf(''The original string:'');puts(s);24 n=fun(s);25 printf(''\n%S is convered to integer number:%d\n\n'',s,n);26 }
问答题给定程序MODI1.C中fun()函数的功能是:将n个无序整数从小到大排序。 请改正程序中的错误,使它能得出正确的结果。 #include<stdio.h> #include<stdlib.h> fun(int n,int *a) int i,j,p,t; for(j=0;j<n-1;j++) p=j; /**********found**********/ for(i=j+1;i<n-1;i++) if(a[p]>a[i]) /**********found**********/ t=i; if(p!=j) t=a[j];a[j]=a[p];a[p]=t;) putarr(int n,int *z) int i; for(i=1;i<= n;i++,z++) printf("%4d",*z); if(!(i%10))printf("/n"); printf("/n"); main() int aa[20]=(9,3,0,4,1,2,5,6,8, 10,7,n=11; printf("/n/nBefore sorting %d numbers:/q",n);putarr(n,aa); fun(n,aa); printf("/nAfter sorting %d numbers:/n",n);putarr(n,aa);
问答题请编写函数fun,它的功能是: 求出 1 到 1000 之间能被 7 或11整除、但不能同时被 7 和 11 整除的所有整数并将它们放在a所指的数组中,通过 n 返回这些数的个数。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun (int *a, int *n)
{
}
main( )
{ int aa[1000], n, k ;
fun ( aa,
for ( k = 0 ; k < n ; k++ )
if((k + 1) % 10 == 0) printf("/n") ;
else printf("]", aa[k]) ;
NONO( );
}
问答题请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。注意:部分源程序存在PR0G1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。给定源程序:
问答题编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意: 主函数中用****作为结束输入的标志,函数fun中给出的语句仅供参考。)
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
fun(char(*a)[81],int num,char **max)
{
/* 以下代码仅供参考 */
int i,k=0,len, maxlen; /* k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长 */
maxlen=strlen(a[k]);
for(i=1;i
{
/* 以下完成查找最长串 */
}
*max=a[k];
}
main()
{
char ss[10][81],*ps;
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
fun(ss,n,
printf("/nmax=%s/n",ps);
NONO();
}
问答题请编写函数fun,其功能是:计算并输出3~n所有素数的平方根之和。
例如,若主函数从键盘给n输入100后,则输出为sum=148874270。
注意:n的值要大于2但不大于100。部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<math.h>
#include<stdio.h>
double fun(int n)
{
}
main()
{
int n;
double sum;
printf("/n/nInput n:");
scanf("%d",
sum=fun(n);
printf("/n/nsum=%f/n/n", sum);
}
问答题下列给定程序中,函数fun的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。
例如,当s所指字符串为“ABCD”时,t所指字符串中的内容应为“ABCDDCBA”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
/******************fnund******************/
void fun(char s,char t)
{
int i,d;
d=strlen(s);
for(i=0;i<d;i++)
t[i]=s[i];
for(i=0;i<d;i++)
t[d+i]=s[d-1-i];
/******************fnund******************/
t[2*d-1]="/0";
}
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,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
例如:二维数组中的值为
1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0
则函数值为61。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#define M 4
#define N 5
int fun(int a[M][N])
{
}
main()
{ int aa[M][N]={{1, 3, 5, 7, 9},
{2, 9, 9, 9, 4},
{6, 9, 9, 9, 8},
{1, 3, 5, 7, 0}};
int i, j, y;
printf("The original data is:/n");
for(i=0; i<M; i++)
{ for(j=0; j<N; j++)printf("%6d", aa[i][j]);
printf("/n");
}
y=fun(aa);
printf("baThe sum:%d/n", y);
printf("/n");
}
问答题函数fun的功能是:将a、b两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。 例如,当a=45,b=12,调用该函数后c=1425。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#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:%id/n",c);}
问答题下列给定程序中,函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串之后。例如,当s所指的字符串为“ABCDE”时,t所指的字符串应为“EDCBAABCDE”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>void fun(char*s,char*t){/*********found*********/ int i; s1=strlen(s); for(i=0;i<s1;i++)/*********found*********/ t[i]=s[s1一i]; for(i=0;i<=S1;i++) t[s1+i]=s[i]; t[2*s1]='\0';}void main(){ char s[100],t[100]; system("CLS"); printf("\n Please enter string s:"); scanf("%s",s); fun(s,t); printf("The result is:%s\n",t)7}
问答题给定程序MODI1.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。
例如:当s所指的字符串为:“ABCDE”时,则t所指的字符串应为:“EDCBAABCDE”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#include <string.h>
void fun (char *s,char *t)
{
/************found************/
int i;
i=0;
sl=strlen(s);
for(;i<sl;i++)
/************found************/
t[i]=s[sl-i];
for(i=0;i<sl;i++)
t[sl+i]=s[i];
t[2*sl]='/0';
}
main()
{ char s[100],t[100];
printf("/nPlease enter string s:");scanf("%s",s);
fun(s,t);
printf("The result is:%s/n",t);
}
问答题编程题
请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。
例如,当a=16,b=35,调用该函数后,c=5361。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
void fun(int a ,int b,long *c)
{
}
main()
{
int a,b;
long c;
clrscr();
printf("Input a,b;");
scanf("%d%d",
fun(a,b,
printf("The result is:%ld/n",c);
}
问答题已知学生的记录由学号和学习成绩构成,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},{"1A07",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,
printf("****THE RESULT****in");
printf("The top;%s,%d/n",in.num,m.s);
}
问答题给定函数MODI1.C中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。
例如,若输入:77777,则输出将是:32767。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#include
#include
int fun(char *p)
{ int n;
/********** found**********/
n= *p-'o';
P++;
while(*p!=0) {
/********** found**********/
n=n*8+*P-'o';
P++;
}
return n;
}
main ()
{ char s[6]; int i; int n;
printf("Enter a string
(Ocatal digits): "); gets(s);
if(strlen(s)>5){printf("Error:
String too longer!/n/n");
exit(0);}
for(i=0; s[i]; i++)
if (s[i]'7')
{ printf("Error: %c not is
ocatal
digits!/n/n",s[i]);exit(0); }
printf ("The original string: ") ;
puts (s);
n=fun (s);
printf("/n%s is convered to
integer number: %d/n/n",s,n);
}
