问答题
请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如,若输入:17,则应输出:4 6 8 9 10 12 14 15 16。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void fun(int m, int *k, int xx[])
{
}
main()
{
int m, n, zz[100];
void NONO();
printf("/nPlease enter an integer number between 10 and 100:");
scanf("%d",
fun(n,
printf("/n/nThere are %d nonprime numbers less than %d:",m,n);
for(n=0; n<m; n++)
printf ("/n %4d", zz[n]);
NONO();
}
void NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
int m, n, zz[100];
FILE *rf, *wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
fscanf(rf, "%d",
fun(n,
fprintf(wf, "%d/n%d/n", m, n);
for(n=0; n<m; n++)
fprintf(wf, "%d/n", zz[n]);
fclose(rf);
fclose (wf);
}
问答题请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。
例如:若有5门课程的成绩是:90.5, 72, 80, 61.5, 55则函数的值为:71.80。
注意: 部分源程序存在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
float fun ( float *a , int n )
{
}
main()
{ float score[30]={90.5, 72, 80, 61.5, 55}, aver;
aver = fun( score, 5 );
printf( "/nAverage score is: %5.2f/n", aver);
NONO ( );
}
问答题给定程序modil. c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun( )的作用是:累加链表结点数据域中的数据作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio. h>
typedef struct list;
{int data;
struct list *next;
}LIST;
int fun(LIST *h)
{LIST *P;
/**********found**********/
int t;
p=h;
/**********found**********/
while(*p)
{
/**********found**********/
t=t+p. data;
p=(*p). next;
}
return t;
}
main( )
{LIST a, b, c, *h;
a. data=34; b. data=51;
c. data=87; c. next="/0";
h=a. next= b. next=
printf("总和=%d/n", fun(h));
}
问答题给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本 文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
void fun(char *s, int a, double f)
{
__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);
__2__ ;
fp = fopen("file1.txt", "r");
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);
}
问答题给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
typedef struct aa
{ int data;
struct aa *next;
} NODE;
NODE *Creatlink(int n, int m)
{ NODE *h=NULL, *p, *s;
int i;
p=(NODE )malloc(sizeof(NODE));
h=p;
p->next=NULL;
for(i=1; idata=rand()%m; s->next=p->next;
p->next=s; p=p->next;
}
return p;
}
outlink(NODE *h)
{ NODE *p;
p=h->next;
printf("\n\nTHE LIST :\n\n HEAD ");
while(p)
{ printf("->%d ",p->data);
p=p->next;
}
printf("\n");
}
main()
{ NODE *head;
head=Creatlink(8,22);
outlink(head);
}
问答题请编写函数fun(),其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出4 6 8 9 10 12 14 15 16。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> void fun(int m, int *k, int xx[]) main ( ) int m, n, zz[100]; clrscr(); printf("/nPlease enter an integer number between 10 and 100: "); scanf("%d", fun(n, printf("/n/nThere are %d non-prime numbers less than %d: ",m,n); for(n-0;n<m;n++) printf("/n %4d",zz[n]);
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#define N 8typedef struct{ char num[10]; double s;}STREC; double fun(STREC*a,STREC*b,int*n){}void main(){ STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GAO1",91},{"GA07",72},{"GA08",64},{"GA06",87}}; STREC h[N]; int i,n; double ave; ave=fun(s,h,&n); printf("The%d student data which is lower than % 7.3 f:\n",n,ave); for(i=0;i<n;i++) /*输出成绩低于平均值的学生记录*/ printf("%s%4.1 f\n",h[i].num,h[i].s); printf("\n");}
问答题请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6
7 7 8 9 9 10 10 10。
删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define N 80
int fun(int a[], int n)
{
}
main ()
{int a [N] ={2, 2,2, 3, 4, 4, 5, 6, 6, 6, 6,
7,7,8,9,9,10,10,10,10},i,n=20;
void NONO ();
printf("The original data :/n");
for(i=0; i
问答题给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m=0; j--)
/**********found**********/
t[i][j+___2___ ]=t[i][j];
/**********found**********/
for(j=0; j<___3___; j++)
t[i][j]=0;
}
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j, m;
printf("/nThe original array:/n");
for(i=0; i
{ for(j=0; j
printf("- ",t[i][j]);
printf("/n");
}
printf("Input m (m<=%d): ",N);scanf("%d",
fun(t,m);
printf("/nThe result is:/n");
for(i=0; i
{ for(j=0; j
printf("- ",t[i][j]);
printf("/n");
}
}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fjun(),该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> #define N 12 typede f struct char num[10]; double s; STREC; double fun (STREC *a,STREC *b, int *n) main ( ) STREC s IN] = "GA05", 85 , "GA03", 76 , "GA02", 69, "GA04", 85, "GA01", 91, "GA07", 72, "GA08", 64, "GA06", 87, "GA09", 60, "GAll", 79 , "GA12", 73, "GA10", 90 ; STREC h[N],t; FILE *out; int i ,j,n; double ave; ave=fun (s, h, printf("The %d student data which is higher than %7.3f: In", n, ave); for(i=0; i<n; i++) printf ("%s %4.1f/n",h[i] .num, h[i] .s); printf ("/n"); out=fopen ("out90.dat", "w"); fprintf(out, "%dkn %7.3f/n",n,ave); for(i=0; i<n-1; i++) for (j=i+l; j<n; j ++) if (h[i] .s<h[j ] .s) t=h Ii] ;h[i]=h[j] ;h[j]=t; /*分数从高到低排列*/ for(i=0; i<n; i++) fprintf(out, "%4.1f/n",h[i] .s); fclose (out);
问答题给定程序MODI1.C的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
例如,若输入:I am a student to take the examination.,则应输出:I Am A Student To Take The Examination.。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
/************found************/
include
/************found************/
upfst ( char p )
{ int k=0;
for ( ; *p; p++ )
if ( k )
{ if ( *p == ' ' ) k = 0; }
else if ( *p != ' ' )
{ k = 1; *p = toupper( *p ); }
}
main( )
{ char chrstr[81];
printf( "/nPlease enter an English text line: " ); gets( chrstr );
printf( "/n/nBefore changing:/n %s", chrstr );
upfst( chrstr );
printf( "/nAfter changing:/n %s/n", chrstr );
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。函数fun中给出的语句仅供参考。
例如,字符串中的内容为:*******A*BC*DEF*G****,移动后,字符串中的内容应当是:A*BC*DEF*G***********。在编写函数时, 不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun( char *a )
{
/* 以下代码仅供参考 */
char *p,*q;
int n=0;
p=a;
while(*p=='*') /* 统计串头'*'个数n */
{n++; p++;}
q=a;
/* 向前复制字符串,请填写相应的语句完成其功能 */
for(;n>0;n--) /* 在串尾补n个'*' */
*q++='*';
*q='/0';
}
main()
{ char s[81],*p; int n=0;
printf("Enter a string:/n");gets(s);
fun( s );
printf("The string after moveing:/n");puts(s);
NONO();
}
问答题请编写函数proc(),它的功能是计算:
s=(1-ln(1)-ln(2)-ln(3)-…-ln(m))2
s作为函数值返回。
在C语言中可调用log(n)函数求ln(n)。log函数的引用说明是double log(double x)。
例如,若m的值为10,则proc()函数值为198.934454。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
double proc(int m)
{
}
void main()
{
system("CLS");
printf("%f/n",proc(10));
}
问答题下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。 请改正程序中的错误,使它能得到正确结果。 [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。 [试题源程序] #include <stdio.h> #include <conio.h> #define N 20 void fun(int *a, intn) int i, m, t, k; /************************found************************/ for(i=0; i<n; i++) m=i; for(k=i; k<n; k++) if(a[k]<a[m]) /************************found************************/ k=m; t=a[i]; a[i]=a[m]; a[m]=t;
问答题请编写函数proc(),它的功能是计算:
s=(ln(1)+ln(2)+ln(3)+…+ln(m))0.5
在C语言中可调用log(n)函数求ln(n)。
例如,若m的值为30,则proc()函数值为8.640500。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
double proc(int m)
{
}
void main()
{
system("CLS");
printf("%f/n", proc(30));
}
问答题假定输入的字符串中只包含字母和''*''号。请编写函数fun,它的功能是:使字符串中尾部的''*''号不得多于n个;若多于n个,则删除多余的''*''号;若少于或等于n个,则什么也不做,字符串中间和前面的''*''号不删除。 例如,字符串中的内容为:**8*A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为7, 则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(char *a,int n)3 {45 }6 main()7 { char s[81];int n;8 void NONO();9 printf(''Enter a string:\n'');gets(s);10 printf(''Enter n:'');scanf("%d", puts(s);13 NONO();14 }15 void NONO()16 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */17 FILE *in,*out;18 int i,n ; char s[81];19 in=fopen(''in.dat'',''r'');20 out=fopen(''out.ctat'',''w'');21 for(i=0;i<10 ; i++) {22 fscanf(in,''%s'',s);23 fscanf(in,''%d'',&n);24 fun(s,n);25 fprintf(out,''%s\n'',s);26 }27 fclose(in);28 fclose(out);29 }
问答题下列给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值:例如,若m的值为5,则应输出1.463611。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>doublefun(intm)doubley=1.0;inti;/********fOund********/for[i=2;i<m;i++)/********found********/y+=1/(i*i);return(y);main()intn=5;printf("/nTheresultis%lf/n",fun(n));
问答题编写函数fun,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n放指定的下标。 例如,输入一个字符串“world”,然后输入3,则调用该函数后的结果为“word”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdlib.h> #include<stdio.h> #include<conio.h> #define LEN 20 void fun(char a[],har b[],int n) void main() char strl[LEN],str2[LEN]; int n; system("CLS"); printf("Enter the string:/n"); gets(str1); printf("Enter the position of the string deleted:"); scanf("%d", fun[str1,str2,n); printf("The new string is:%s/n",str2);
问答题请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的
顺序依次放到一个字符串中。
例如, 二维数组中的数据为:
W W W W
S S S S
H H H H
则字符串中的内容应是: WSHWSHWSH。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include
#define M 3
#define N 4
void fun(char s[][N], char *b)
{
int i,j,n=0;
for(i=0; i < N;i++) /* 请填写相应语句完成其功能 */
{
}
b[n]='\0';
}
main()
{ char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}};
int i,j;
printf("The matrix:\n");
for(i=0; i
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。
例如,字符串中的内容为“****A*BC*DEF*G*******”,若n的值为4,删除后,字符串中的内容应为“****A*BC*DEF*G****”;若n的值为7,则字符串中的内容仍为“****A*BC*DEF*G*******”。n的值在主函数中输入。编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdio.h>
void fun(char*a,int n)
{
}
main()
{ char s[81]; int n;
printf("Enter a string:\n");
gets(s);
printf("Enter n:");
scanf("%d",
fun(s,n);
printf("The string after deleted:\n");
puts(s);
}
