问答题请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用strlen函数求字符串的长度。例如:在键盘输入字符串2345210,函数返回长整型数2345210。注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。试题程序:#include<stdio.h>#include<string.h>void NONO();long fun(char*s){}main(){ char s[10];long r; printf("请输入一个长度不超过9个字符的数字字符串:"); gets(s); r=fun(s); printf("r=%ld\n",r); NONO();}void NONO()(/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE* fp,*wf; int i;long r; Char s[10],*p; fp=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<10;i++){ fgets(s,10,fP); P=strchr(s,'\n'); if(p)*p=0; r=fun(s); fprintf(wf,"%ld\n",r); } fclose(fp); fclose(wf);}
问答题下列给定程序中,函数fun的功能是:将形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参P所指字符数组中,形成一个新串。
例如,形参s所指的字符为“baawrskjghzlicda”,执行后P所指字符数组中的字符串应为“aachjlsw”。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(char*s,char*p)
{ int i,j,n,x,t;
n=0;
for(i=0;s[i]!='\0';i++)n++;
for(i=1;i<n-2;i=i+2){
/*********found*********/
【1】
;
/*********found*********/
for(j=
【2】
+2;j<n;j=j+2)
if(s[t]>s[j])t=j;
if(t!=i)
{x=s[i];s[i]=s[t];s[t]=x;}
}
for(i=1,j=0;i<n;i=i+2,j++)
P[j]=S[i];
/*********found*********/
P[j]=
【3】
;
}
main()
{ char s[80]="baawrskj ghzlicda",P[50];
printf("\nThe original string is:%s\n",s);
fun(s,P);
printf("\nThe result is:%s\n",p);
}
问答题下列给定程序中,函数fun的功能是:将N×N矩阵中元素的值按列向右移动1个位置,右边被移出矩阵的元素绕回左边第1列。 例如,N=3,有下列矩阵: 1 2 3 …… 4 5 6 …… 7 8 9 计算结果为: 3 1 2 …… 6 4 5 …… 9 7 8 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> #define N 4 void fun(intI*t)[N1) int i,j,x; /********found********/ for(i=0;i< (1) ;i++) /********found********/ x=f[i] (2) ]; for(j=N-1;j>0;j--) t[i][j]=t[i][j-1]; /********found********/ f[i][ (3) ]=x; main() int t[][N]=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j; printf("The original array;/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%2d",t[i][j]); printf("/n"); fun(t); printf("/nThe result is:/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%2d",t[i][j]); printf("/n");
问答题请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~P(含P,P小于等于n—1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;P的值为3。移动后,一维数组中的内容应为:5、6、7、8、9、10、1、2、3、4。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#define N 80void fun(int*w,int p,int n){}main(){ int a[N]={1,2,3,4,5,6,7,8,9,1 0,11,12,13,14,15); int i,P,n=15; printf("The original data:\n"); for(i=0;i<n;i++) printf("%3d",a[i]); printf("\n\nEnter P:"); scanf("%d",&p); fun(a,P,n); printf("\nThe data after mouing:\n"); for(i=0 ; i<n; i++) printf("%3 d",a[i]); printf("\n\n");}
问答题给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:
问答题函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12时,调用该函数后,c=2514。
注意:部分源程序存在文件PROG1.C中。数据文件in.dat中的数据不得修改。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入要编写的若干语句。
#include<stdio.h>
void fun(int a,int b,long*c)
{
}
main()
{int a,b;long c;
void NONO();
printf("Input a,b:");
scanf("%d,%d",
fun(a,b,
printf("The result is:%1d/n",c);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*rf,*wf;
int i,a,b;long c;
rf=fopen("in.dat","r");
wf=fopen("out.daft,"w");
for(i=0;i<10;i++){
fscanf(rf,"%d,%d",
fun(a,b,
fprintf(wf,"a=%d,b=%d,c=%1d/n",a,b,c);
}
fclose(rf);
fclose(wf);
}
问答题请编写函数fun,其功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,若字符串数组中的M个字符串为{"AAAA", "BBBBBBB", "CC"},则合并后的字符串内容应该是“AAAABBBBBBBCC”。
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#define M 3
#define N 20
void fun(char a[M][N],char *b)
{
}
void main()
{
char w[M][N]={"AAAA","BBBBBBB","CC"},i;
char a[100]={"##################"};
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()的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。
注意:不要改动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); }
void 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,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。 主函数中X是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。注意:部分源程序存在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include<stdlib.h> #include<stdio.h> void fun(int a[],int n,int*max,int*d) { } main() {int i,x[20],max,index,n=10;void NONO (); for(i=0;i<n;i++){x刚=rand()%50;printf("%4d",x[i]);} printf("\n"); fun(x,n,&max,&index); printf("Max=%5d,Index=%4d\n",max,index); NONO();} void NONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE*fp,*wf; int i,x[20],max,index,n=10,j; fp=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<10;i++){ for(j=0;j<n;j++)fscanf(fp,"%d,",&x[j]); fun(x,n,&max,&index); fprmtf(wf,"Max=%d,Index=%d\n”,max,index); } fclose(fp); fclose(wf);}
问答题请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)。 例如:若输入“abe4Efg”,则应输出“aBc4EFg”。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 文件PROG1.C内容如下: #include<stdio.h> #include<string.h> void fun ( char *ss ) void main ( ) char tt[81] ; printf("/nPlease enter an string within 80 characters: /n" ) ; gets( tt ) ; printf( " /n/nAfter changing, the string/n /" % s/ , tt ) ; fun( tt ) ; printf( " /nbecomes/n /"% s/"/n" , tt) ;
问答题函数fun的功能是: 将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为:"ABCDEFG123456",其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:"246"。
注意: 部分源程序存在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
void fun(char *s, char t[])
{
}
main()
{
char s[100], t[100];
printf("/nPlease enter string S:"); scanf("%s", s);
fun(s, t);
printf("/nThe result is: %s/n", t);
NONO();
}
问答题函数fun的功能是将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若S所指字符串中的内容为“ABCDEFG12345”,其中,字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“135”。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下。
#include<stdio.h>
#include<string.h>
void fun(char*s,char t[])
{
}
main()
{
char s[100],t[100];
printf("/nPlease enter string S:"):
scanf("%s",s);
fun(s,t);
printf("/nThe result is:%s/n",t);
}
问答题下列给定程序中,函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制3个字符之后插入一个空格。 例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABC DEFGHI JK”。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> void fun(char*p,char*b) (int i,k=0; while(*p) i=1; while(i<=3 k++;p++;1++; if(*p) /********found********/ b[k++]=…""; b[k]='/0';) main() (char a[80],b[80]; printf("Enter a string:"); gets(a); printf("The original string:"); puts(a); fun(a,b); printf("/nThe string after insert space:"); puts(b);printf("/n");
问答题编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。
例如,若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
float fun(float *a,int n)
{
}
void main()
{
float score[30]={90.5,72,80,61.5,55},aver;
aver=fun(score,5);
printf("/nAverage score is:%5.2f/n",aver);
}
问答题下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数作为函数值返回,平均分存放在形参aver所指的存储单元中。
例如,输入8名学生的成绩:80.5、60、72、90.5、98、51.5、88、64,则低于平均分的学生人数为4(平均分为755625)。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define N 20
int fun(float *s,int n,float *aver)
{
float ave,t=0.0;
int count=0,k,i;
for(k=0;k<n;k++)
/********found********/
t=s[k];
ave=t/n;
for(i=0;i<n;i++)
if(s[i]<ave)count++;
/********found********/
*aver=&ave;
return count;
}
void main()
{
float s[30],aver;
int m,i;
system("CLS");
printf("/nPlease enter m:");
scanf("%d",&m);
printf("/nPlease enter%d mark/n",m);
for(i=0;i<m;i++)
scanf("%f",s+i);
printf("/nThe number of students:%d/n",fun(s,m,&aver));
printf("ave=%f/n",aver);
}
问答题给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
typeclef struct
{ char name[10];
int age;
}STD;
STD fun(STD std[],int n)
{ STD max;int:i ;
/*********found*********/
max=
【1】
;
for(i=1;i<n;i++)
/*********found*********/
if(max.age<
【2】
)
max=std[i];
return max;
}
main()
{ STD std[5]={"aaa",17,"bbb",16,"ccc",18,"ddd",17,"eee",15};
STD max;
max=fun(std,5);
printf("\nThe result:\n");
/*********found*********/
printf("\nName:%s,Age:%d\n",
【3】
,max.age);
}
问答题调用随机函数为5×4的矩阵置100以内的整数,输出该矩阵,求出每行元素之和,并把和值最大的那一行与第一行上的元素对调。若已定义x为int类型,请参考下列调用随机函数。
#include<stdlib.h>
x=rand()%20; /*产生0到19的随机数*/
问答题给定程序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 }
问答题
请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
#define N 80
int fun(char *s)
{
}
main()
{ char line[N];int num=0;void NONO();
printf("Enter a string:/n");gets(line);
num=fun(line);
printf("The number of word is:%d/n/n",num);
NONO();
}
void NONO()
{/* 请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
FILE *rf,*wf;int i,num;char line[N],*p;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++) {
fgets(line,N,rf);
p=strchr(line,"/n");
if(p!=NULL)*p=0;
num=fun(line);
fprintf(wf,"%d/n",num);
}
fclose(rf);fclose(wf);
}
问答题下列给定程序中,函数proc()的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。
例如,当str1所指字符串中的内容为ABCDEFG,str2所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2D1EFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F3E4DCBA。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void proc(char*str1, char*str2, char*str)
{
int i, j; char ch;
i=0; j=strlen(str2)-1;
//****found****
while(i>j)
{
ch=str2[i]; str2[i]=str2[j]; str2[j]=ch;
i++; j--;
}
while(*str1 || *str2)
{
if(*str1){*str=*str1; str++; str1++; }
if(*str2){*str=*str2; str++; str2++; }
}
//****found****
*str=0;
}
void main()
{
char s1[100], s2[100], t[200];
system("CLS");
printf("/nEnter s1 string:");
scanf("%s", s1);
printf("/nEnter s2 string:");
scanf("%s", s2);
proc(s1, s2, t);
printf("/nThe result is: %s/n", t);
}