问答题编程计算下列表达式:s=n!(n从键盘上输入)
问答题m个人的成绩存放在score数组中,请编写函数proc(),它的功能是:将高于平均分的人数作为函数值返回,将高于平均分的分数放在up所指的数组中。
例如,当score数组中的数据为100,80,76.60,59,48,43,35,59时,函数返回的人数应该是4,up中的数据应为100,80,76,95。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#incIude<stdio.h>
#include<string.h>
int proc(int score[],int m,int up[])
{
//返回高于平均分的人数
}
void main()
{
int i,n,up[9];
int seore[9]={100,80,76,60,59,48,43,35,95};
system("CLS");
n=proc(score,9,up);
printf("/n up to the average score are:%d/n",n);
for(i=0;i<n;i++)
printf("%d",up[i]);
}
问答题下列给定程序中函数proc()的功能是:将长整型数中为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如,当s中的数为12345678时,则t中的数为8642。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
void proc(long s, long*t)
{
int d;
long s1=1, i=1;
*t=0;
while(s/i>0)
i=i*10;
i=i/10;
while(s>0)
{
d=s/i;
//****found****
if(d%2!=0)
{
//****found****
t=d*s1+t;
s1*=10;
}
s=s%i;
i=i/10;
}
}
void main()
{
long s, t;
system("CLS");
printf("/nPlease enter s:");
scanf("%1d",
proc(s,
printf("The result is: %1d/n", t);
}
问答题给定程序MODI1.C中函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。 若high的值为:100,则函数的值为:732。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<math.h>3 int fun(int high)4 { int sum=0,n=0,j,yes;5 /**********found**********/6 while((high>=2)&&(n<10)7 { yes=1;8 for(j=2;j<=high/2;j++)9 if(high%j==0) {10 /**********found**********/11 yes=0;break12 }13 if (yes) {sum+=high; n++;)14 high--;15 }16 return sum;17 }18 main()19 {20 printf(''%d\n'',fun(100));21 }
问答题请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。注意:部分源程序存在PROGl.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语勾。试题程序:
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #define N 123 typedef struct4 { char num[10];5 double s;6 } STREC;7 double fun(STREC *a,STREC *b,int *n)8 {9 }10 main()11 {STREC s[N]={{''GA05'',85},{''GA03'',76}, {''GA02'',69},(''GA04'',85},{''GA01'',91},{''GA07'',72},{''GA08'',64},{''GA06'',87},{''GA09'',60},{''GA11'',79},{''GAl2'',73},{''GAl0'',90}};12 STREC h[N],t;FILE *out;13 int i,j,n;double ave;14 ave=fun(s,h, i<n-1;i++)22 for(j=i+1;j<n;j++)23 if(h[i].s<h[j].s){ t=h[i];h[i]=h[j];h[j]=t;}24 for(i=0;i<n;i++)25 fprintf(out,''%4.1f\n'',h[i].s);26 fclose(out);}
问答题给定程序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);
问答题给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串:若未找到,则函数值为NULL。 例如,当字符串中的内容为''abcdabfabcdx",t中的内容为“ab”时,输出结果应是“abcdx”。 当字符串中的内容为“abcdabfabcdx”,t中的内容为“abd”时,则程序输出未找到信息“notbe found!”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<string.h>3 char *fun(char*s,char*t)4 {5 char *p, *r, *a;6 /**********found**********/7 a=Null;8 while(*s)9 { p=s;r=t;10 while(*r)11 /**********found**********/12 if(r==p)13 { r++;p++;)14 else break;15 if(*r=='\0')a=s;16 s++;17 }18 return a;19 }20 main()21 {22 char s[100],t[100],*p;23 printf(''\nPlease enter string s:'');scanf(''%s'',s);24 printf(''\nPlease enter substringt:'');scanf(''%s'',t);25 p=fun(s,t);26 if (p)printf(''\nThe result is:%sin'',p);27 else printf(''\nNot found!\n'');28 }
问答题给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
例如,当s中的字符串为:"ABCDE"时,则t中的字符串应为:"ABCDEEDCBA"。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
#include<string.h>
void fun(char*s,char *t)
{int i,s1;
s1=strlen(s);
/**********found**********/
for(i=0;i<=s1;i++)
t[i]=s[i];
for(i=0;i
t[s1+i]=s[s1-i-1]; /**********found**********/ t[s1]="/0"; } main() {char s[100],t[100]; printf("/nPlease enter string s:");scanf("%s",); fun(s,t); printf("The result is:%s/n",t); } (1)for(i=0;i (2)t[s1]="/0"应改为t[2*s1]="/0"或t[s1+s1]="/0"[解析] 本题中函数的功能是先将字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。首先由字符串的第一个标识正序取s中的字符串存放到t串中,然后由s串尾开始,逆序取字符并存放到t串中。 (1)编译程序后可知,for(i=0;i<=s1;i++)这一行有错误,原因是s1变量没有定义,显然这个循环的目的是将s字符串的内容复制至t字符串。这里的循环变量i的最大值是s字符串的长度s1,因此第一个标识下是将s1改为s1。 (2)题目要求将s中的字符复制至t字符串之后,还需将s按逆序连接到t串的后面,第二个循环已经完成了逆序接到t字符串的工作,最后是确定字符串的结尾,即字符串应该以“/0”结束。此时,字符串t的长度是2*s1。显然t[s1]="/0"的话字符串长度仍然是s1,故第二个标识下是将t[s1]="/0"改成t[2*s1]="/0"或者t[s1+s1]="/0"。 [考点] 函数功能;逻辑关系。
问答题给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。 例如,若N=3,有下列矩阵: 1 2 3 计算结果为 7 4 1 4 5 6 8 5 2 7 8 9 9 6 3 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 void fun(int(*t)[N])4 { int j,r[N];5 for(j=0;j<N;j++)r[j]=t[0][j];6 for(j=0;j<N;j++)7 /**********found**********/8 t[0][N-j-1]=t[j][__1__];9 for(j=0;j<N;j++)10 t[j][0]=t[N-1][j];11 /**********found**********/12 for(j=N-1;j>=0;__2__)13 t[N-1][N-1-j]=t[j][N-1];14 for(j=N-1;j>=0;j--)15 /**********found**********/16 t[j][N-1]=r[__3__];17 }18 main()19 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;20 printf(''\nThe original array:\n'');21 for(2=0;i<N;i++)22 {for(j=0;j<N;j++)printf(''%2d”,t[i][j]);23 printf(''\n'');24 }25 fun(t);26 printf(''\nThe result is:\n'');27 for(i=0;i<N;i++)28 { for(j=0;j<N;j++)printf(''%2d'',t[i][j]);29 printf(''\n'');30 }31 }
问答题给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
void fun(char *s, int a, double f)
{
/**********found**********/
__1__ fp;
char str[100], str1[100], str2[100];
int a1; double f1;
fp = fopen("file1.txt", "w");
fprintf(fp, "%s %d %f/n", s, a, f);
/**********found**********/
__2__ ;
fp = fopen("file1.txt", "r");
/**********found**********/
fscanf(__3__,"%s%s%s", str, str1, str2);
fclose(fp);
a1 = atoi(str1);
f1 = atof(str2);
printf("/nThe result :/n/n%s %d %f/n", str, a1, f1);
}
main()
{ char a[10]="Hello!"; int b=12345;
double c= 98.76;
fun(a,b,c);
}
问答题下列给定程序中,函数fun的功能是:根据以下公式求π值,并作为函数值返回。 例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < conio.h >#include < stdio.h >#include < math.h >double fun(double eps){ double s,t;int n=1; s=0.0;/*********found*********/ t=0; while(t >eps) { s+=t; t=t*n/(2*n+1); n++; }/*********found*********/ riturn(s);}void main(){ double x; printf("/nPlease enter aprecision:"); scar1f("%lf",&x); printi("/riPi=%1f/n”,fun(x));}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。
例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“****A*BC*DEF*G”。在编写函数时,不得使用C语言提供的字符串函数。
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdio.h>
#include <conio.h>
void fun (char *a)
{
}
void main()
{
char s[81];
printf("Enter a string:/n");
gets(s);
fun(s);
printf("The string after deleted:/n");
puts(s);
}
问答题请指出以下C程序的错误所在:
main / * main function * /
{ float a, b, c , v ; /* a, b, e are sides, v is volume of cube */
a = 2.0 ; b = 3.0 ; c = 4.0
v=a* b * c;
prinff (" %f /n ", v )
}
问答题函数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中。不得增行或删行,也不得更改程序的试题程序:
#include
void fun(int a[55],int n) {int i,k; /**********found**********/ int【1】[55]; for(i=0;i<n;i++) {for(k=1;k<=27;k++) {b[2*k一1]=a[k]; /**********found**********/ b[【2】*k]=a[k+27]; } for(k=1;k<=54:k++) /**********found**********/ a[k]=【3】; } } main() {int m,a[55],i; for(i=1;i<55;i++)a[i]=i; printf(''请输入洗牌次数:'');scanf(''%d'',&m); fun(a,m); for(i=l;i<55;i++)printf(''%d,'',a[i]); printf(''\n''); }
问答题给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。
例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#include
int fun(char *s)
{ int sum=0;
while(*s) {
/**********found**********/
if( isdigit(*s) ) sum+= *s- __1__ ;
/**********found**********/
__2__;
}
/**********found**********/
return __3__ ;
}
main()
{ char s[81]; int n;
printf("/nEnter a string:/n/n"); gets(s);
n=fun(s);
printf("/nThe result is: %d/n/n",n);
}
问答题下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母"F"。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
void proc(char*str)
{
int i, j;
//****found****
for(i=j=0; str[i]!="0"; i++)
if(str[i]!="F")
//****found****
str[j]=str[i];
str[j]="/0";
}
void main()
{
char str[80];
printf("/nEnter a string: ");
gets(str);
printf("The original string: ");
puts(str);
proc(str);
printf("The string after deleted: ");
puts(str);
printf("/n/n"); }
问答题请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<string.h>
#include<stdio.h>
#define N 80
int fun(char*s)
{
}
void main()
{
char line[N];
int num=0;
printf("Enter a string:/n");
gets(line);
num=fun(line);
printf("The number of word is:%d/n/n",num);
}
问答题下列给定程序中函数fun的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。
例如,若字符串为aass 1kaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
int fun(char *str, char *substr)
{ int i, j, k, num=0;
/********** found**********/
for(i=0, str[i], i++)
for(j=i, k=0; substr[k]==str[j]; k++, j++)
/********** found**********/
If(substr[k+1]=="\0")
{ num++;
break;
}
return num;
}
main()
{
char str[80], substr[80];
printf("Input a string:");
gets(str);
printf("Input a substfing: ");
gets(substr);
printf("%d\n", fun(str, substr));
}
问答题float f=3.1415927;
printf(“%f,%5.4f,%3.3f”,f,f,f);
则程序的输出结果是__________。
