问答题请编写函数proc(),它的功能是:求出str所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串12341234123,输入字符4,则输出2。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#define N 81
int proc(char*str, char c)
{
}
void main()
{char a[N], ch;
system("CLS");
printf("/nPlease enter a string:");
gets(a);
printf("/nPlease enter a char:");
ch=getchar();
printf("/nThe number of the char is: %d/n", proc(a, ch));
}
问答题函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12时,调用该函数后,c=2514。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(int a,int b,long*c)
{
}
main()
{int a,b;long c;
printf("Input a b:");
scanf("%d%d",
fun(a,b,
printf("The result is:%ld/n",c);
}
问答题函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为:"ABCDEFG123456",其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:"246"。
注意:部分源程序存在文件PROG1. C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio. h>
#include <string. h>
void fun(char *s, char t[ ])
{
}
main( )
{
char s[100], t[100];
void NONO( );
printf("/nPlease enter string
S:"); scanf("%s", s);
fun(s, t);
printf("/nThe result is:%s/n", t);
NONO( );
}
void NONO( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
char s[100], t[100];
FILE *rf, *wf;
int i;
rf=fopen("in. dat", "r");
wf=fopen("out. dat", "w");
for(i=0; i<10; i++) {
fscanf(rf, "%s", s);
fun(s, t);
fprintf(wf, "%s/n", t);
}
fclose(rf);
fclose(wf);
}
问答题
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
注意:部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数如n的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
#define N 10
typedef struct ss
{ char hum[10];int s;} STU;
void fun(STU a[],STU *s)
{
}
main()
{STU a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;
int i;void NONO();
printf("***** The original data *****/n");
for(i=0;i<N;i++)printf("No=%s Mark=%d/n",a[i].num,a[i].s);
fun (a,
printf("***** THE RESULT *****/n");
printf("The lowest:%s,%d/n",m.num,m.s);
NONO();
}
void 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;i++) fscanf (rf,"%s %d",a[i].num,
fun(a,
fprintf(wf,"The lowest:%s,%d/n",m.num,m.s);
fclose(rf);
fclose(wf);
}
问答题请编写函数proc(),其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如,输入20,则应输出4 6 8 9 10 12 14 15 16 18。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
void proc(int m,int*k,int xx[])
{
}
void main()
{
int m, n, str[100];
system("CLS");
printf("/nPlease enter an integer number between 10 and 100: ");
scanf("%d",
proc(n,
printf("/n/nThere are %d non-prime
numbers less than%d: ", m, n);
for(n=0; n<m; n++)
printf("/n%4d", str[n]);
}
问答题请编写一个函数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",
printf("The original data is: %u/n", x);
if(x<10)
printf("Data error!");
else
printf("The result: %u/n", proc(x));
}
问答题编写函数void fun(char*tt,int PP[]),统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组中。 例如,当输入字符串“abcdefgabcdeabc”后,程序的输出结果应该是: 3 3 3 2 2 11 0000000000000000000 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#inelude<stdio.h>#include<string.h>void fun(char*tt,int PP[]){}main(){char aa[1000];int bb[26],k;void NONO();prinff(“\nPlease enter a char string:”);8c肌f(“%s”,aa);fun(aa,bb);for(k=0;k<26;k++) prinff(“%d”,bb[k]);prinff(“\n”);NONO();}void NONO()/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/{ char aa[1000]; int bb[26],k,i; FILE*rf,*wf; rf=fopen(“in.dat”,“r”); wf=fopen(“out.dat”。“W”); flor(i=0;i<10;i++) { fscanf(rf,“%s”,aa); fun(aa,bb); for(k=0;k<26;k++) fprinff(wf,“%d”,bb[k]); fprinff(wf,“\n”); } felose(rf); fclose(wf);}
问答题下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
int fun(int m)
{
int i,k;
for(i=m+1;;i++)
{
for(k=2;k<i;k++)
/********found********/
if(i%k!=0)
break;
/********found********/
if(k<i)
return(i);
}
}
void main()
{
int n;
system("CLS");
printf("/nPlease enter n:");
scanf("%d",&n);
printf("%d/n",fun(n));
}
问答题给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。
例如,当形参n的值为10时,函数返回:9.612558。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun(int n)
{ int i; double s, t;
/**********found**********/
s=__1__;
/**********found**********/
for(i=1; i0): "); scanf("%d", }
printf("/nThe result is: %f/n",fun(n));
}
问答题给定程序MODI1.C中函数fun的功能是:将长整型数s中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为:87653142时,t中的数为:8642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
void fun (long s, long *t)
{ int d;
long sl=l;
*t = 0;
while (s > 0)
{ d = s%10;
/*********** found***********/
if (d%2=0)
{ *t==d* sl+ *t;
s1 *= 10;
}
/********** found* **********/
s /= 10;
}}
main ()
{ long s, t;
printf("/nPlease enter s:");
scanf ("%ld",
fun (s,
printf("The result is:%ld/n",t);
}
问答题给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
typedef struct
{ int num;
char name[9];
float score[3];
}STU;
void show(STU tt)
{ int.i;
print.f("%d%s:",tt.num,
tt.name);
for(i=0;i < 3;i++)
print:f("%5.1f" ,tt.score[i]);
print:f("/n");
}
/*********found*********/
void modify(
【1】
*ss,float a)
{ int i;
for(i=0;i < 3;i++)
/*********found*********/
ss一 >
【2】
*=a;
}
main()
{ STU std={1,"Zhanghua",76.
5,78.0,82.0};
float:a;
print:f("/nThe original num
bet and name and scores:/n");
show(std);
print:f("knlnput a number:");
scanf("%f",&a);
/*********found*********/
modify(
【3】
,a);
printf ("/nA result of modif
ying:/n");
show(std);
}
问答题给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出2、3、5、7、11。 #include<stdio.h> /**********found**********/ IsPrime(int n); int i,m; m=1; for(i=2;i<n;i++) /**********found**********/ if !(n%i) m=0;break; return(m); main() int j,k; printf("/nPlease enter an integer number between 2 and 10000:");scanf("%d", printf("/n/nThe prime factor(s)of%d is(are):",k); for(j=2;J<=k;j++) if((!(k%j)) printf("/n");
问答题给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。
例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
long fun (long num)
{
/************found************/
long k;
do
{ k*=num%10 ;
/************ found************/
num/=10 ;
} while(num);
return (k);
)
main ()
{ long n ;
printf ("/nPlease enter a number:")
scanf("%ld",
printf("/n%ld/n",fun(n)); }
问答题函数fun()的功能是:交换主函数中两个变量的值。例如,若变量a中的值原为8,b中的值为3,程序运行后a中的值为3,b中的值为8。 #include<stdio.h> /**********found**********/ void fun(int x,int y) int t; /**********found**********/ t=x;x=y;y=t; main() int a,b; a=8;b=3; fun( printf("%d,%d/n",a,b);
问答题下列给定程序中,函数proc()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之和。
例如:输入1 2 3 4 5 6 7 8 9,则矩阵为
1 2 3
4 5 6
7 8 9
输出为Sum=15。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
void proc()
{
int arr[3][3], sum;
int i, j;
//****found****
sum=1;
printf("please input 3*3 array: /n");
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
//****found****
scanf("%d", arr[i][j]);
}
for(i=0; i<3; i++)
sum=sum+arr[i][i];
printf("Sum=%d/n", sum);
}
void main()
{
proc();
}
问答题编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。
例如,若n为1000时,程序输出应为:s=153.909064。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<math.h>
#include<stdio.h>
double fun(int n)
{
}
main()/*主函数*/
{
printf("s=%f/n",fun(1000));
}
问答题下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中偶数位上的数,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为7654321时,t中的数为642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
/********found********/
void fun(long s,long t)
(long s1=10;
s/=10;
*t=s%10;
/********found********/
while(s<0)
{s=s/100;
*t=s%10*s1+*t;
s1=s1 *10;
}
}
main()
{long s,t;
printf("/nPlease enter s:");scanf("%ld",&s);
fun(s,&t);
printf("The result is:%ld/n",t);
}
问答题学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组s中,请编写函数proc(),它的功能是:函数返回指定学号的学生数据,指定的序号在主函数中输入。若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#define M 16
typedef struct
{char num[10];
int s;
}
STREC;
STREC proc(STREC*a, char*b)
{
}
void main()
{
STREC stu[M]={{"GA005", 85}, {"GA003", 76},
{"GA002", 69}, {"GA004", 85}, {"GA001", 91},
{"GA007", 72}, {"GA008", 64}, {"GA006", 87},
{"GA015", 85}, {"GA013", 91}, {"GA012", 64},
{"GA014", 91}, {"GA011", 77}, {"GA017", 64},
{"GA018", 64}, {"GA016", 72}};
STREC h;
char m[10];
int i;
printf("The original data: /n");
for(i=0; i<M; i++)
{ if(i%4==0)
printf("/n");
//每行输出4个学生记录
printf("%s%3d", stu[i].num, stu[i].s);
}
printf("/n/nEnter the number: ");
gets(m);
h=proc(stu, m);
printf("The data: ");
printf("/n%s%4d/n", h.num, h.s);
printf("/n");
}
问答题请编写函数fun(),它的功能是:实现两个字符串的连接(不使用库函数strcat()),即把p2所指的字符串连接到p1所指的字符串后。 例如,分别输入下面两个字符串: FirstString-- SecondString 则程序输出: FirstString--SecondString [注意] 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 [试题源程序] #include<stdio.h> #include<conio.h> void fun(char p1[], char p2[]) main() char s1[80], s2[40]; clrscr(); printf("Enter s1 and s2:/n"); scanf("%s%s", s1, s2); printf("s1=%s/n", s1); printf("s2=%s/n", s2); printf("Invoke fun(s1, s2):/n"); fun(s1, s2); printf("After invoking:/n"); printf("%s/n", s1);
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构件数组s中,请编写函数fun(),它的功能是:把分数最高的学生数据放在h所指的数组中。注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> #define N 16 typedef struct char num[10]; int s; STREC; int fun(STREC *a,STREC *b) main () STREC s [N] = "GA005", 85 , "GA003", 76 , "GA002", 69 , "GA004", 85 , "GA001", 91 , "GA007", 72, "GA008", 64, "GA006", 87, "GA015", 85), ( "GA013", 91 , "GA012", 64 , "GA014", 91 ), "GA011", 66, "GA017", 64 , "GA018", 64 , "GA016", 72 ; STREC h[N]; int i, n; FILE *out; n=fun(s,h); printf("The %d highest score :/n",n); for (i=0; i<n; i++) printf("%s %4d/n ",h[i].num, h[i].s); /*输出最高分学生的学号和成绩* / printf("/n"); out=fopen("out45.dat", "w"); fprintf(out, "%d/n",n); for(i=0; i<n; i++) fprintf(out, "%4d/n ",h[i].s); fclose(out);
