问答题请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值1234。函数fun中给出的语句仅供参考。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入需要编写的若干语句。
给定源程序:
#include <stdio.h>
#include <string.h>
long fun(char *p)
{
/*以下代码仅供参考*/
int i,len;/*len为串长*/
long x=0;
len=strlen(p);
/*以下完成数字字符串转换为一个数字。注意:字符'0'不是数字0*/
return x;
}
main() /*主函数*/
{ char s[6];
long n;
printf("Enter a string:/n");
gets(s);
n=fun(s);
printf("%ld/n",n);
}
问答题请编写函数fun(),其功能是计算并输出下列多项式的值:
F=1+1/1!+1/2!+1/3!+1/4!+…+1/m!
例如,若主函数从键盘给m输入5,则输出为F=2.716667。
注意:m的值要求大于1但不大于100。部分源程序给出如下。
请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
double fun(int m)
{
}
void main()
{ int m;
double f;
FILE *out;
printf("Input m:");
scanf("%d",
f=fun(m);
printf("F=%f/n", f);
out=fopen("outfile.dat", "w");
for(m=10; m<10; m++)
fprintf(out, "%f/n", fun(m));
fclose(out);
}
问答题请编写函数fun(),其功能是:将s所指字符串中除了下标为偶数、同时ASCII码值为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为ABCDEFG12345,其中字符B的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCII码值为奇数,所在数组中的下标为偶数,因此不应当删除,其他依次类推。最后t所指的数组中的内容应是ACEG。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> #include<string.h) void fun(char *s, char t[]) main() char s[100],t[100]; clrscr(); printf("/nPlease enter string s:"); scanf("%s",s); fun(s,t); printf("/nThe result is: %s/n",t);
问答题给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:7654321时,t中的数为:7531。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 /**********found**********/3 void fun(long s,long t)4 { long s1=10;5 *t=s%10;6 while(s>0)7 { s=s/100;8 *t=s%10 * s1+*t,9 /**********found**********/10 s1=s1*100;11 }12 }13 main()14 {long s,t;15 printf(''\nPlease enter s:''); scanf(''%ld'',&s);16 fun(s,&t);17 printf(''The result is:%1d\n'',t);18 }
问答题编程题
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun(),它的功能是:找出学生的最低分,由函数值返回。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#define N 8
struct slist
{ double s;
struct slist *next;
};
typedef struct slist STREC;
double fun(STREC *h)
{
}
STREC * creat (double *s)
{
STREC *h,*p,*q;
int i=0;
h=p=(STREC*)malloc(sizeof(STREC));
p->s=0;
while(is=s[i]; i++; p->next=q; p=q;
}
p->next=NULL;
return h; /*返回链表的首地址*/
}
outlist(STREC *h)
{
STREC *p;
p=h;
printf("head");
do
{printf("->%2.0f ",p->s);p=p->next;} /*输出各分数*/
while(p!=NULL);
printf("/n/n ");
}
main()
{
double s[N]={56,89,76,95,91,68,75,85}, min;
STREC *h;
h=creat(s);
outlist(h);
min=fun(h);
printf("min=%6.1f/n ",min);
}
问答题给定程序MODI1.C中函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 long fun(int x,int y,long *p)3 { int i;4 long t=1;5 /**********found**********/6 for(i=1 ; i<y; i++)7 t=t* x;8 *p=t;9 /**********found**********/10 t=t/1000;11 return t;12 }13 main()14 { long t,r; int x,y;15 printf(''\nTnput x and y: '');scanf(''%1d%1d'',&x,&y);16 t=fun(x,y,&r);17 printf(''\n\nx=%d,y=%d,r=%1d,1ast=%1d\n\n'',x,y,r,t);18 }
问答题请编写一个函数void proc(char *str),其功能是:将字符串str中所有下标为偶数位置上的字母转化为大写(若该位置上不是字母,则不转换)。
例如,若输入字符串:“thank you6 very much”,则应输出:“ThAnK YoU6 vErY MuCh”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void proc(char *str)
{
}
void main()
{
char tt[51];
system("CLS");
printf("Please enter an character string within 50 characters: /n");
gets(tt);
printf("/n/nAfter changing, the string/n%s", tt);
proc(tt);
printf("/nbecomes/n%s", tt);
}
问答题下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形。若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>#include<math.h>int fun(int a,int b,int c){ if(a+b>c&&b+c>a&&a+c>b) { if(a==b&&b==c)/******found******/ return 1; else if(a==b‖b==c ‖a==c) return 2;/******found******/ else return 3; } else retum 0;}void main(){ int a,b,c,shape; prinff(“\nInput a,b,c:”); seanf(“%d%d%d”,&a,&b,&c); prinff(“\ha=%d,b=%d,c=%d\n”,a,b,c); shape=fun(a,b,c); printf(“\nThe shape:%d\n”,shape);}
问答题请编写函数fun(),该函数的功能是:计算并输出 S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5) 例如,若主函数从键盘给n输入20后,则输出为 s=534.188884。 注意;部分源程序给出如下。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 试题程序: #include <math. h> #include <stdio. h> double fun(int n) { } main() { int n; double s; printf("/n/nInput n: "); scanf ("%d", s=fun (n) printf ("/n/ns=%f/n/n", s);}
问答题下列给定程序中函数fun()的功能是:输入一圆,其直径为n,求出周长。
请改正程序中的错误,使其得出正确的结果。
不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
/* * * * *found* * * * * /
#define PI 3.14159;
/* * * * *found* * * * * /
int fun(int n);
{ /* * * * *found* * * * * /
PI=3.14159;
return PI * n;
}
问答题函数fun的功能是:将一副扑克牌编号为1,2,3,…,53,54,以某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为1的牌在最上方,如第一次这样洗牌后的结果为:1,28,2,29,…,53,27,54。两次洗牌后的结果为:1,41,28,15,2,42…,53,40,27,14,54。
程序的功能是:输出经过n次这样洗牌后的结果。
请在程序的下画线处填入正确的内容,并把下画线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdio.h>
2 void fun(int a[55],int n)
3 { int i,k;
4 /*********found*********/
5 int______[55];
6 for(i=0"i<n;i++)
7 { for(k=1;k<=27;k++)
8 {b[2*k-1]=a[k];
9 /*********found*********/
10 b______*k]=a[k+27];
11 }
12 for(k=1;k<=54;k++)
13 /*********found*********/
14 a[k]=______;
15 }
16 }
17 main()
18 int m,a[55],i;
19 for(i=1;i<55;i++)a[i]=i;
printf("请输入洗牌次数:");
20 scanf("%d",
21 fun(a,m);
22 for(i=1;i<55;i++)
printf("%d,",a[i]);
23 printf("/n");
问答题请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入XX所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int m, int k, int xx[])3 {4 }5 Nain()6 {7 int m,n,zz[1000];void NONO();8 pritf(''\nPlease enter two integers:'');9 scanf(''%d%d'', &m, &n);10 fun(m,n,zz);11 for(m=0 ; m<n;m++)12 printf(''%d'',zz[m]);13 printf(''\n'');14 NONO();15 }16 Void NONO()17 {/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/18 int m,n,zz[1000],i;19 FILE *rf,*wf;20 rf=fopen(''in.dat'',''r'');21 wf=fopen(''out.dat'',''w'');22 for(i=0;i<10;i++) {23 fscanf(rf, '%d%d'', &m, m++)fprintf(wf,''%d'',zz[m]);26 fprintf(wf,''\n'');27 }28 fclose(rf);29 fclose(wf);}
问答题下列给定程序中,函数fun()的功能是;求出两个数的最大公约数,并作为函数值返回。例如,若给num1和num2输入49和21,则输出的最大公约数为7:若给num1和num2分别输入27和81,则输出最大公约数为27。 请改正函数fun()中的错误,使它能得出正确的结果。 注意:不要改动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); 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);
问答题编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度0.0005,则程序应输出为3.140578。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps){}voidmain(){doublex;printf("Inputeps:");scanf("%1f",&x);printf("/neps=%1f,PI=%1f/n",x,fun(x));}
问答题请编写一个函数unsigned proc(unsigned u),u是一个大于10的无符号整数,若u是n(5≥n≥2)位的整数,则函数求出u的后n-1位的数作为函数值返回。 例如,u值为1234,则函数返回234;若u值为234,则函数返回34。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。 试题程序: #include<stdlib.h> #include<conio.h) #include<stdio.h> unsigned proc(unsigned u) void main() unsigned x; system("CLS"); printf("Enter a unsigned integer number: "); scanf("%u", &x); printf("The original data is:%u/n", x); if(x<10) printf("Data error!"); else printf("The result: %/kn", proc(x));
问答题填空题
请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定长度的子字符串。其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。
例如:当str1=“cdefghij”,然后输入4,则str2=“cdef”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#define LEN 80
main()
{
char str1[LEN],str2[LEN];
int n,i;
clrscr();
printf("Enter the string:/n");
gets(str1);
printf("Enter the position of the string
deleted:");
scanf(【1】);
for(i=0;i
问答题给定程序MODI1.C中函数 fun 的功能是:求S的值。
例如,当k为10时,函数值应为:1.533852。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
/************found************/
void fun( int k )
{ int n; float s, w, p, q;
n = 1;
s = 1.0;
while ( n <= k )
{ w = 2.0 * n;
p = w - 1.0;
q = w + 1.0;
s = s * w *w/p/q;
n++;
}
/************found************/
return s
}
main ( )
{
printf("%f/n", fun (10));
}
问答题己知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 10
typedef struct ss
{ char num[10]; int s; } STU;
fun(STU a[],STU *s)
{
}
main ()
{ "A06",90 },{ "A07",79J,{ "A08",61} ,
int i;
printf("***** The original data
*****/n");
for (i=0; 1< N; i++)printf("No
= %s Mark = %d/n",
printf ("The top : % s ,% d/n",
m.num,m.s);
NONO () :
}
NONO ()
FILE *rf,*wf ;
STU a[N],m ;
int i ;
rf = fopen ("in.dat","r") ;
wf= fopen "'out.dat","w") ;
for (i = 0 ; i < 10; 1++) fscanf (rf,
"% s % d", a[i] .num. &a [i] .s) ;
fprintf (wf,"The top : % s,% d/n",
m.num, m. s) ;
fclose (rf)
fclose (wf)
}
问答题给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并在主函数中输出。
例如,有10个正数:46、30、32、40、6、17、45、15、
48、26,平均值为30. 500000。
主函数中输出m=30。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdlib.h >
#include < stdio.h >
#de fine N 10
double fun (double x[],double * av)
{ int i, j ; double d, s;
s =0;
for(i=0; i < N; i++) s = s +x[i],
/*********found*********/
【1】
= s/N;
d =32767;
if(x[i] < *av && *av 一 x[i]
< =d){
/*********found*********/
d= *av 一x[i];
j=
【2】
;
}
/*********found*********/
return
【3】
;
}
main ()
{ int i; double x[N],av,m;
printf "'/n") ;
m = fun (xf &av) ;
printf ("/nThe average is: % f/nl',
av) ;
printf ("m = % 5 .lf ",m) ;
printf ( "/n") ;
}
问答题下列给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。 例如,若high的值为10。,则函数的值为732。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<conio.h> #include<scdio.h> #include<math.h> int fun(int high) int sum=0,n=0,j,yes; /********found********/ while((high>=2) for(j=2;j<=high/2;j++) if(high%j==0) /********found********/ yes=0;break if(yes) sum+=high; n++; high--; return sum; main() printf("%d/n",fun(100));
