问答题下列给定程序的功能是:读入一个整数k(2≤k≤10000),输出它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2,3, 5,7,11。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < conio.h >#include < stdio.h >/*********found*********/IS Prime(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 aninteger number between 2and 1 0000:"); scanf("%d",&k); printf f"/n、nThe prime factot(s)of%d is(are):",k); for(j=2;j < k;j++) if((!(k%j))&&(IsPrirae(j))) printf("%4d,",j); printf("/n");}
问答题函数fun()的功能是:将s所指字符串中除了下标为奇数,同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除;以此类推,最后t所指数组中的内容应是“135”。 #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);
问答题下列给定程序中,函数fun的功能是:在整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中a1放个位数,a2放十位数。 请改正程序中的错误,使它能得出正确的结果。 注意:不得增行或删行,也不得更改的程序的结构! 试题程序:#include<stdio.h>int fun(int*b){ int k,al,a2,i=0; for(k=10;k<=55;k++) {/******found******/ a2=ICl 0; al=k—a2 * 10: if((k%3==0&&a2==5)‖(k%3==0&&al==5)) {b[i]=k;i++;} }/******found******/ return k;}main(){ int a[100],k,m; m=fun(a); prinff(“The result is:\n”); for(k=0;k<m;k++) prinff(“%4d”,a[k]);printf(“\n”);}
问答题给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。
例如,以下3×3的矩阵就是一个“幻方”:
4 9 2
3 5 7
8 1 6
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 3
int fun(int(*a)[N])
{ int i, j, m1, m2, row, colum;
m1=m2=0;
for(i=0; i<N; i++)
{ j=N-i-1; m1+=a[i][i]; m2+=a[i][j];}
if(m1!=m2)return 0;
for(i=0; i<N; i++){
/**********found**********/
row=colum=______;
for(j=0; j<N; j++)
{row+=a[i][j]; colum+=a[j][i];}
/**********found**********/
if((row!=colum)______(row!=m1))return 0;
}
/**********found**********/
return______;
}
main()
{int x[N][N], i, j;
printf("Enter number for array: /n");
for(i=0; i<N; i++)
for(j=0; j<N; j++) scanf("%d",
printf("Array:/n");
for(i=0; i<N; i++)
{for(j=0; j<N; j++)printf("%3d", x[i][j]);
printf("/n");
}
if(fun(x))printf("The Array is a magic square./n");
else printf("The Array isn"t a magic square./n");
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号; 若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。函数fun中给出的语句仅供参考。
例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。 在编写函数时,不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun( char *a, int n )
{
/* 以下代码仅供参考 */
int i=0,j,k=0;
while(a[k]=='*') k++; /* k为统计*字符个数 */
if(k>n)
{
i=n;j=k;
/* 以下完成将下标为k至串尾的字符前移k-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);
NONO();
}
问答题请编写函数proc(),该函数的功能是:将两个两位数的正整数num1,num2合并形成一个整数放在num中。合并的方式是:将num1数的十位和个位数依次放在num数的十位和千位上,num2数的十位和个位数依次放在c数的百位和个位上。
例如,当num1=64,num2=18时,调用到该函数后,num=4168。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
void proc(int num1,int num2,long*num)
{
}
void main()
{
int num1,num2;
long num;
system("CLS");
printf("Input num1,num2:");
scanf("%d%d",
proc(num1,num2,
printf("The result is:%1d/n",num);
}
问答题给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
void fun(long s,long *t)
{ int d;
long sl=1;
/************found************/
t=0;
while(s>0)
{ d=s%10;
/************found************/
if(d%2==0)
{ *t=d*sl+*t;
sl*=10;
}
s/=10;
}
}
main()
{ long s,t;
printf("/nPlease enter s:");scanf("%ld",
fun(s,
printf("The result is:%ld/n",t);
}
问答题编写一个函数fun(),它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 例如,分别输入下面两个字符串: FirstString SecondString 则程序输出: FirstStringSecondString 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号小填入所编写的若干语句。 试题程序: #include <stdio. h> #include<conio. h> void fun (char pi[],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);
问答题给定程序MODI1.C中函数fun的功能是:读入整数k(2≤k≤10000),打印它的所有质因子(即所有素数的因子),例如,若输入整数2310,则应输出:2,3,5,7,11。
#include"conio.h"
#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;
clrscr();
printf("/nPlease input a unmber between 2 and 10000:");
scanf("%d",j<=k;j++)
if((!k%j))&&(IsPrime(j))) printf("/n%4d",j);
printf("/n");
}
问答题编写函数fun,其功能是:将a、b两个两位正整数合并成一个新的整数放在C中。合并的方式是:将a中的十位和个位数依次放在变量c的干位和十位上,b中的十位和个位数依次放在变量C的个位和百位上。
例如,当a=45,b=12,调用该函数后c=4251。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio,h>
void fun(int a,int b,long*c)
{
}
main()
{
int a,b;
long C;
printf("Input a,b:");
scanf("%d%d",&a,&b);
fun{a,b,&c);
printf("The result is:%ld/n",c);
}
问答题请编写函数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);
}