问答题请编写一个函数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]=“ab04Efg”; system(“CLS”); printf(“\nPlease enter an string within 80characters:\n”); gets(tt); printf(“\nAfter chang,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的功能是:将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> #include<string.h> struct student{ long sno; char name[10]; float score[3]; }; void fun(struct student a[],int n) { /******found******/ 【1】t; int i,j; /******found******/ for(i=0;i<【2】;i++) for(j=i+1;j<n;j++) /******found******/ if(strcmp(【3】)>0) {t=a[i];a[i]=a[j];a[j]=t;) } main() { struct student s[4]={{10001,"ZhangSan”,95,80,88),{10002,"LiSi",85,70,78),{10003,"CaoKai",75,60,88},{10004,"FangFang",90,82,87}}; int i,j; printf("The original data:\n"); for(j=0;j<4;j++) { printf("\nNo:%ld Name:%一8sScores:",s[j].sno,s[j].name); for(i=0;i<3;i++) printf("%6.2f",s[j].score[i]); printf("\n"); } fun(s,4); printf("The data after sorting:\n"); for(j=0;j<4;j++) { printf("\nNo:%ld Name:%一8sScores:”,s[j].sno,s[j].name); for(i=0;i<3;i++) printf("%6.2f",s[j].score[i]); printf("\n"); } }
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 1 6
typedef struct
{ char num[10];
int s;
} STREC ;
STREC fun(STREC*a,char*b)
{
}
main()
{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;FTLE*out;;
printf("tThe original data:/n");
for(i=0; i
问答题编写程序, 实现矩阵(3行3列)的转置(即行列互换)
例如, 输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
100 400 700
200 500 800
300 600 900
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
int 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("}",array[i][j]);
printf("/n");
}
fun(array);
printf("Converted array:/n");
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
printf("}",array[i][j]);
printf("/n");
}
NONO();
}
问答题下列给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,开保持数字字符串和非数字字符串原有的次序。例如,s所指的字符串为“def35adh3kjsdf7”,执行后结果为“defadhajsdf3537”。请在程序的下划线处填人正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构! #include<stdio.h> void fun(char*s) { int i,j=0,k=0;char tl[80],t2[80]; for(i=0;s[i]!=‘\0’;i++) if(s[i]>=D‘&&s[i]<=9’) { /****************ound******************/ 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]; } 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项之和。和值通过函数值返回main函数。例如,n=10,则输出16.479905。/************found************/fun(intn){inta,b,c,k;doubles;s=0.0;a=2;b=1;for(k=1;k<=n;k++){/***********found************/s=s+(Double)a/b;}}main(){intn=10;clrscr();printf("/nThevalueoffunctionis:%lf/n",fun(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;m<n;m++)
if(n%m==0)
return 0;
return 1;
}
void fun(int m,int k,int xx[])
{
/*以下代码仅供参考*/
int j=0,t=m+1;
while(j<k)
{
/*按题目要求完成以下代码*/
}
}
main()
{
int m,n,zz[1000];
printf("/nPlease enter two integers:");
scanf("%d%d",
fun(m,n,zz);
for(m=0;m<n;m++)
fprintf("%d",zz[m]);
printf("/n");
}
问答题下列给定程序中,函数fun()的功能是:将形参n中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。
例如,输入一个整数27638496,函数返回值为64862。
请在标号处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构。
试题程序 #include
<stdio.h> unsigned long fun(unsigned long n) {
unsigned long x=0; int t; while(n) { t=n%
10; /* * * * *found* * * * * / if(t%
2==______) /* * * * *found* * * * * /
x=______+t; /* * * * *found* * * * * /
n=______; } return x;
} main() { unsigned long n=-1;
while(n>99999999||n<0) { printf("Please input
(0<n<100000000): "); scanf("% ld",
} printf("/nThe result is: % ld/n", fun(n)); }
问答题下列给定程序中,函数proc()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。
例如,输入opdye,则应输出deopy。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
int proc(char str[])
{
char c;
unsigned i, j;
for(i=0; i<strlen(str)-1; i++)
for(j=i+1; j<strlen(str); j++)
if(str[i]>str[j])
{
c=str[j];
//****found****
str[j]=str[i++];
str[i]=c;
}
}
void main()
{
char str[81];
system("CLS");
printf("/nPlease enter a character
string:");
gets(str);
printf("/n/nBefore sorting:/n%s", str);
proc(str);
printf("/nAfter sorting decendingly:n
%s", str);
}
问答题下列给定程序中函数fun的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdio.h >#include < conio.h >double fun(int n){ double result:1.0;/*********found*********/ if n==0 return 1.0; while(n >1&&n < 170)/*********found*********/ result=n一一; return result;}main(){ int n; printf("Input N:"); scanf("%d",&n); printf("/n/n%d!=%if/n/n",n,fun(n));}
问答题下列给定程序中,函数fun()的功能是:将s所指字符串中的字母转换为按字母序列后续字母(但Z转换为A,z转换为a),其他字符不变。 请改正程序指定部位的错误,使它能得到正确结果。 [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。 [试题源程序] #include<stdio.h> #include<ctype.h> void fun(char *s) /**********found**********/ while(*s!='@') if(*s>='A' && *s<='Z' || *s>='a' && 's<='z') if(*s=='Z') *s='A'; else if(*s=='z') *s='a'; else *s+=1; /**********found**********/ (*s)++; void main() char s[80]; printf("/n Enter a string with length<80. :/n/n "); gets(s); printf("/n The string:/n/n t"); puts(s); fun(s); printf ("/n/n The Cords: /n/n "); puts(s);
问答题请编写函数fun,函数的功能是:将3行4列矩阵x乘以4行3列矩阵y,结果放在 3行3列矩阵xy中。矩阵相乘的基本方法是:矩阵xy中行列下标分别为i、j的元素的值,是矩阵x中第i行上4个元素与矩阵y中第j列上4个元素对应相乘的和。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <conio.h>
#include <stdio.h>
void fun(int a[3][4],int b[4][3],int ab[3][3])
{
}
main()
{int x[3][4]={{1,0,1,1},{2,1,0,1},{1,2,0,3}};
int y[4][3]={{1,1,1},{0,0,0},{2,1,1},{1,1,3}};
int xy[3][3]={0},i,j;
clrscr();
fun(x,y,xy);
printf("a x b=ab:(3,3):");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%d",xy[i][j]);
printf("/n"):
}
NONO();/*本函数与考生答题无关,考生不得改动,否则后果自负。*/
}
问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[o]、a[1]、a[2]…中,把奇数从数组中删除,偶数的个数通过函数值返回。
例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后,a所指数组中的数据为:4、2、6、8,返回值为4。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#define N 9
int fun(int a[],int r1)
{ int i,j;
j=0;
for(i=0;i < n;i++)
/*********found*********/
if(
【1】
==0){
/*********found*********/
【2】
=a[i];j++;
}
/*********found*********/
return
【3】
;
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7},i,n;
printf("/nThe original da
ta:/n");
for(i=0;i < N;i++)
printf("%4 d",b[i]);
printf("/n");
n=fun(b,N);
printf("/nThe number of ever1:%d/n",n);
printf("/nThe ever1:/n");
for(i=0;i < n;i++)
printf("%4 d",b[i]);
printf("/n");
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(char*a)
{
/*以下代码仅供参考*/
int i=0,k;
while(a[i]=="*")i++;
k=i;
while(a[i]!="/0")/*以下程序段实现非*字符前移*/
{
}
a[k]="/0";
}
main()
{char s[81];
printf("Enter a string:/n");gets(s);
fun(s);
printf("The string after deleted:/n");puts(s);
}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。
例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun( char *a )
{
}
main()
{ char s[81];
printf("Enter a string:/n");gets(s);
fun( s );
printf("The string after deleted:/n");puts(s);
NONO();
}
问答题下列给定程序中,函数proc()的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y不相等,z和y不相等。例如,当x的值为10,y的值为20,z的值为30时,函数值为2.00。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
//****found****
#define FU(m, n)(m/n)
float proc(float x, float y, float z)
{
float value;
value=FU(x+y, x-y)+FU(z+y, z-y);
//****found****
return(Value);
}
void main()
{
float x, y, z, sum;
printf("Input x y z::");
scanf("%f%f%f",
printf("x=%f, y=%f, z=%f/n", x, y, z);
if(x==y||y==z)
{
printf("Data error!/n");
exit(0);
}
sum=proc(x, y, z);
printf("The result is: %5.2f/n", sum);
}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include<stdio.h> #defiDe 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);}
问答题
给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其他字符不变。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<ctype.h>
void fun(char *s)
{
/**********found**********/
while(*s!="@")
{ if(*s>="A"
else if(*s=="z") *s="a";
else *s+=1;
}
/**********found**********/
(*s)++;
}
}
main()
{char s[80];
printf("/n Enter a string with length<80. :/n/n"); gets(s);
printf("/n The string:/n/n"); puts(s);
fun(g);
printf("/n/n The Cords:/n/n"); puts(s);
}
问答题给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#include
void WriteText(FILE *);
void ReadText(FILE *);
main()
{ FILE *fp;
if((fp=fopen("myfile4.txt","w"))==NULL)
{ printf(" open fail!!/n"); exit(0); }
WriteText(fp);
fclose(fp);
if((fp=fopen("myfile4.txt","r"))==NULL)
{ printf(" open fail!!/n"); exit(0); }
ReadText(fp);
fclose(fp);
}
/**********found**********/
void WriteText(FILE ___1___)
{ char str[81];
printf("/nEnter string with -1 to end :/n");
gets(str);
while(strcmp(str,"-1")!=0) {
/**********found**********/
fputs(___2___,fw); fputs("/n",fw);
gets(str);
}
}
void ReadText(FILE *fr)
{ char str[81];
printf("/nRead file and output to screen :/n");
fgets(str,81,fr);
while( !feof(fr) ) {
/**********found**********/
printf("%s",___3___);
fgets(str,81,fr);
}
}
问答题fun()的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。 例如,若给hum1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。 #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); main() int num1,num2,a; printf("Input num1 num2:"); scanf("%d%d", printf("num1=%d num2=%d/n/n",num1,num2); a=fun(num1,num2); printf("The maximun common divisor is%d/n/n",a);
