问答题给定程序MODI1.C中fun函数的功能是:求
S=aa"' aa —…—aaa — aa —a
(此处aa "'aa表示n个a,a和n的值在1至9之间)
例如 a=3,n=6,则以上表达式为:
S= 333333 — 33333 — 3333 — 333 — 33 —3
其值是:296298
a和n是fun函数的形参,表达式的值作为函数值传回main函数。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
long fun (int a,int n)
{ int j ;
/*********found**********/
long s = 0,t = 1 ;
t = t * 10 + a ;
s=t;
for(j=1;j
问答题编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串“123412132”,输入字符为''3'',则输出''2''。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#lnclude<stdio.h>#include<string.h>#define M 81int fun(char*ss,char c){{void main(){char a[M],ch;void NONO();printf(''knPlease enter a string:'');gets(a);printf(''\Please enter a char:'');ch=getchar();printf(''\nThe number of the char is:%d\n'',fun(a,ch));NONO();}void NONO(){/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/int i;FILE*rf,*wf;char a[M],b[M],ch;rf=fopen(''in.dat'',''r'');wf=fopen(''out.dat'',''w'');for(i=0;i<10;i++){fscanf(rf,''%s'',a);fcanf(rf,''%s'',b);ch=*b:fprintf(wf,''%c=%d\n'',ch,fun(a,ch));}fclose(rf);fclose(wf);}
问答题编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度0.0005,则程序应输出为3.14…。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps){}voidmain(){doublex;printf("Inputeps:");scanf("%lf",&x);printf("/neps=%lf,PI=%lf/n",X,fun(x));}
问答题请编写函数fun,其功能是将形参s所指字符串放入形参a所指的字符数组中,使a中存放同样的字符串。说明:不得使用系统提供的字符串函数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define N 20
void NONO();
void fun(char*a,char*s)
{
}
main()
{char s1[N],*s2="abcdefghijk";
fun(s1,s2);
printf("%s/n",s1);
printf("%s/n",s2);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*fp,*wf;
int i;
char s1[256],s2[256];
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fgets(s2,255,fp);
fun(s1,s2);
fprintf(wf,"%s",s1);
}
fclose(fp);
fclose(wf);
}
问答题
给定函数MODI1.C中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。
例如,若输入:77777,则输出将是:32767。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
in fun(char *p)
{ int n;
/**********found**********/
n=*p-"o";
p++;
while(*p!=0) {
/**********found**********/
n=n*8+*p-"0";
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]<"0"||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);
}
问答题下列给定程序中,函数fun的功能是:将N×N矩阵主对角线元素的值与反向对角线对应位置上元素的值进行交换。 例如,若N=3,有下列矩阵: 1 2 3 …… 4 5 6 …… 7 8 9 交换后为: 3 2 1 …… 4 5 6 …… 9 8 7 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #lnclude<stdio.h> #define N 4 /********found********/ void fun(int (1) ,int n) inf i,s; /********found********/ for( (2) ;i++) (s=t[i][i]; t[i][j]=f[i][n-i-1]; /********found********/ f[i][n-i-1]= (3) ; main() int t[][N]=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j; printf("/nThe o riginal array:/n); for(i=0;i<N;i++) (for(j=0;j<N;j++) printf("%d"t[i][j]); printf("/n"); fun(t,N); printf("/nThe result is:/n"); for(i=0;i<N;i++) (for(j=0;j<N;j++) printf("%d't[i][j]); printf"/n");
问答题下列给定程序中,函数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";
}
main()
{
char s[100],t[100];
system("CLS");
printf("/nPlease enter string s:");
scanf("%s",s);
fun(s,t);
printf("The result is:%s/n",t);
}
问答题给定程序MODI1.C中,fun函数的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。处理后原数列中首尾2个数不变。处理后数列在主函数中输出。例如,有10个正整数如下:
初始数列为:6 5 7 23 18 5 8 21 45 38
第1组数为:6 5 7中值为:6替换后的数列为:
6 6 7
23 18 5 8 21 45 38
第2组数为:5 7 23 中值为:7替换后的数列为:6
6 7 23
18 5 8 21 45 38
第3组数为:7 23 18中值为:18替换后的数列为:6 6
7 18 18
5 8 21 45 38
第4组数为:23 18 5 中值为:18替换后的数列为:6 6 7
18 18 5
8 21 45 38
第5组数为:18 5 8 中值为:8替换后的数列为:6 6 7 18
18 8 8
21 45 38
第6组数为:5 8 21 中值为:8替换后的数列为:6 6 7 18 18
8 8 21
45 38
第7组数为:8 21 45中值为:21替换后的数列为:6 6 7 18 18
8 21 45
38
第8组数为:21 45 38 中值为:38替换后的数列为:6 6 7 18 18 8 8
21 38 38
最终结果为:6 6 7 18 18 8 8 21 38 38
请改正程序中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 10
int findmid(int a,int b,int c)
{ int t;
t=(a>b)? (b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b));
/*********found*********/
return b;
}
void fun(int x[])
{int i,a,b,c,t[N];
/*********found*********/
for(i=0;i<N;i++)t[i]=x[i]
for(i=0;i<N-2;i++)
{a=t[i];b=t[i+1];c=t[i+2];
/*********found*********/
t[i+1]=findmid(a,b,c);
}
}
main()
{int i,x[N]={6,5,7,2 3,18,5,8,21,45,38);
for(i=0;i<N;i++)
printf("%d",x[i]);
printf("\n");
fun(x);
for(i=0;i<N;i++)
printf("%d",x[i]);
printf("\n");
}
问答题给定程序中,函数fun的功能是:将带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为10、4、2、8、6,排序后链表结点数据域从头至尾的数据为2、4、6、8、10。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < stdlib.h >
#define N 6
typedef struct node ;
int data;
struct node*next;
}NODE;
void fun(NODE,*h)
{ NODE*p,*q;int t;
p=h;
while(p){
/*********found*********/
q=
【1】
;
/*********found*********/
while(
【2】
)
{if(p一 >data >q一 >data)
{t=p一 >data;
p一 >data=q一 >data;
q一 >data=t;)
q=q一 >next;
}
/*********found*********/
p=
【3】
;
}
}
NODE*creatlist(int a[])
{ NODE*h,*p,*q;int i;
h=NULL;
for(i=0;i < N;i++)
{ q=(NODE*)malloc(sizeof
(NODE));
q一 >data=a[i],
q一 >next=NULL;
if(h==NULL)h=p=q;
else{p一 >next=q;p=q;}
}
return h;
}
void outlist(NODE*h)
{ NODE*p;
p=h;
if(p==NULL)
printf("The list is NULL!/n");
else
{printf("/nHead");
do
{printf("一 >%d",p一 >data);
P=p一 >next;)
while(p!=NULL);
printf("一 >End/n");
}
}
main()
{ NODE*head;
int a[N]={0,10,4,2,8,6};
head=creatlist(a);
printf("/nThe original
list:/n");
outlist(head);
fun(head);
printf f"/nThe list after
inverting:/n");
outlist(head);
}
问答题编写函数fun(),它的功能是:求出1~1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 [试题源程序] #include<conio.h> #include <stdio.h> void fun(int*a,int*n) main() int aa[1000],n,k; clrscr(); fun(aa,&n); for(k=0;k<n;k++) if(k+1)%10==0) printf("%5d",aa[k]); printf("/n"); else printf("%5d",aa[i]);
问答题程序通过定义学生结构体变量,
存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#define N 5
typedef struct student {
long sno;
char name [ 10 ] ;
float score [ 3 ] ;
} STU;
void fun (char * filename, STU n)
{ FILE * fp;
fp = fopen (
【1】
, "rb + ");
fseek (
【2】
, 一 (long) sizeof
(STU) , SEEK_END) ;
/*********found*********/
fwrite (&n, sizeof (STU) , 1,
【3】
) ;
fclose (fp) ;
}
main ()
{ STU t[N] = { {10001,"MaChao",91, 92, 77 }, {10002," CaoKai",75, 60, 88 },
{10003, " LiSi", 85,70, 78}, {10004,"FangFang", 90,82, 87},
{10005, " ZhangSan ",95, 80, 88} };
STU n = {10006, "ZhaoSi", 55, 70,
int i,j; FILE * fp;
fp = fopen("student.dat","wb");
fwrite (t, sizeof (STU) , N, fp) ;
fclose ( fp) ;
fp = fopen ("student.dat", "rb");
fread (ss, sizeof (STU) , N, fp) ;
fclose ( fp);
printf ("/nThe original data :/n/n") ;
{ printf ("/nNo: %ld Name: % 一8s
scores: ",ss[j ] .sno, ss[j] .name) ;
printf ("% 6.2f ", ss[j] .score[i]) ;
printf "/n") ;
}
fun ("student.dat", n) ;
printf ( " / nThe data after modifing:/n/n");
fp = fopen ("student.dat", "rb");
fread (ss, sizeof (STU) , N, fp);
fclose ( fp) ;
{ printf("/nNo: % ld Name: % 一8s
Scores: ",ss[j ] .sno, ss[ j ] .name) ;
printf ("% 6.2f ", ss[ j ] .score[i]) ;
printf ("/n") ;
}
}
问答题下列给定程序是建立一个带头节点的单向链表,并用随机函数为各节点赋值。函数fun的功能是将单向链表节点(不包括头节点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
问答题给定程序中,函数fun的功能是:有NxN矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。
例如,若N=3,有下列矩阵:
1 2 3
计算结果为
1 0 0
4 5 6 6 5 0
7 8 9 10 14 9
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#define N 4
void fun (int (*t)____1____)
{ int i,j;
{
____3____ =0;
}
}
main ()
{ int t [][N]= {21,12,13,24,25,16,47,
38,29,11,32,54,42,21,33,10 } ,i,j ;
printf ( " /nThe original
array: /n") ;
{ for(j=0; j
问答题请编写函数fun,它的功能是:求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h>void fun (int *a, int *n){}main(){ int aa[1000], n, k ;void NONO ();fun (aa, for (k = 0 ; k < n ; k++) if((k + 1) % 10 == 0) printf ("/n"); else printf("%5d", aa[k]);NONO ();} void NONO (){/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/int aa[1000], n, k ;FILE *fp ;fp = fopen ("out. dat","w");fun (aa, for (k = 0 ; k < n ; k++) if((k + 1) % 10 == 0) fprintf(fp, "/n");else fprintf(fp, "%5d", aa[k]);fclose(fp); }
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename)
{ FILE *fp; int i, j;
STU s[N], t;
fp = fopen(filename, __1__);
fread(s, sizeof(STU), N, fp);
fclose(fp);
for (i=0; i
问答题请编写函数fun(),其功能是:将所有大于1小于整数m的素数存入xx所指数组中,素数的个数通过k传回。 例如,输入25,则应输出2 3 5 7 11 13 17 19 23。 注意:部分源程序给出如下。 请勿改动主函数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",&n); fun(n,&m,zz); printf("/n/nThere are%d prime numbers less than %d:",m,n); for(n=0;n<m;n++) printf("/n %4d",zz[n]);
问答题下列给定程序中,函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<math.h>#include<stdio.h>floatfun(floatnun){ints;floatn,t,pi;t=1;pi=0;n=1:s=1:/*****************fbund*****************/while(t>=num){pi=pi+t;n=n+2;s=-s;/*****************fbund*****************/t=s%n;}pi=pi*4;returnpi;}voidmain(){floatn1,n2;printf("Enterafloatnumber:");scanf("%f",n2=fun(n1);printf("%6.4f/n",n2);}
问答题请编写函数fun,其功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为{"AAAA","BBBBBBB","CC"},则合并后的字符串内容应该是“AAAABBBBBBBCC”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#define M 3#define N 20void fun(char a[M][N],char*b){}void main(){ char w[M][N]={"AAAA","BBBBBBB","CC"}; char a[100]={"##################"); int i; printf("The string:\n"); for(i=0;i<M;i++) puts(w[i]); printf("\n"); fun(w,a); printf("The A string:\n"); printf("%s",a); printf("\n\n");}
问答题给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。
例如,形参s所指的字符串为:This is a clan guage program.,函数的返回值为6。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BIANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
int fun(char,* s)
{int n=0,flag=0;
while(* s!='/0')
{if(*s!=''&&f1ag==0){
/*********found*********/
【1】
;f1ag=1;}
/*********found*********/
if(* s=='')f1ag=
【2】
;
/*********found*********/
【3】
;
}
returen;
}
main()
{char str[81];int n;
printf("/nEnter a line text:/n");
gets(str);
n=fun(str);
printf("/nThere are%d words
in this text./n/n",n);
}
问答题下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。 例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“ABed”,则c中的字符串应为“aBcdeFgH”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdio.h >#include < string.h >void fun(char*p,char*q,char*c){/*********found*********/ int k=1;/*********found*********/ while(*p!=*q) { if(*P < *q)c[k]=*q; else c[k]=*p; if(*p)P++; if(*q)q++; k++; }}main(){ char a[10]="aBCDeFgH",b[10]="ABcd",c[80]:{'/0'); fun(a,b,c); printf("The string a:");puts(a); printf("The string b:");puts(b); printf ("The result:");puts(c);}
