内容发布更新时间 : 2025/1/3 19:30:43星期一 下面是文章的全部内容请认真阅读。
char str[N]; char ch;
printf(\ gets(str);
printf(\ scanf(\ while (str[i] != '\\0') {
if (str[i] == ch) ___1___ ___2___; }
str[i] = ___3___;
printf(\ puts(str); }
第二题:下列给定程序中,函数fun的功能是:交换主函数中两个变量的值。例如:若变量a中的值原为8,b中的值为3,则程序远行后a中的值为3,b中的值为8。
请改正程序中的错误,使它能得出正确的结果。
注意,不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/********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(&a, &b);
printf(\ %d\\n\}
第三题:假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是****A*BC**DEF*G。在编写函数时,不得使
用C语言提供的字符串函数。
请勿改动主函数main和其他函数中哦的任何内容,仅在函数fun的花括号填入所编写的若干语句。 #include
void fun( char *a) { }
main() {
char s[81]; FILE *out;
printf(\ gets(s); fun( s );
printf(\ puts(s);
out=fopen (\
strcpy(s, \ fun(s);
fprintf(out, \ fclose (out ); } 答案
第一题:第1处:break;
第2处 i++或++i 或i+=1或i=i+1 第3处 ‘\\0’ 或0
第二题:第1处 void fun(int x,int y)应改为void fun(int*x,int*y) 第2处 t=x;x=y;y=t; 应改为t=*x;*x=*y;*y=t; 第三题:
void fun( char *a) {
int i=0; char *p,*q; p=q=a; while(*p) p++;
p--;
while(*p==’*’) p--;
while(q<=p) {
a[i]=*q; i++; q++; }
a[i]=’\\0’; }
第 4套试题
一、填空题
请补充main函数的功能是:输出方程组A+B=5,A+2B=60的一组正整数解.本题的结果是:
A=44,B=8.
仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其中他任何内容. #include
int i, j;
for (i=0; i<100; i++) for (j=0; j<100; j++)
if (i+j==52 ___1___ i+2*j==60)
printf(\}
第1处填空:&& 第2处填空:i,j 二、改错题
下列给定程序中,函数fun的功能是:将十进制正整数转换成k(2<=k<=9)进制数,并按位输入出.例如,若输入8和2,则应输出1000(即十进制数8转换成二制成二进制表示是1000).
请改正fun函数中的错误,使它能得出正确的结果.
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/********found********/ void fun(int m, int k); {
int aa[20], i; for (i=0; m; i++) {
/********found********/ aa[i] = m/k; m /= k; }
for (; i; i--)
/********found********/ printf(\}
main() {
int b, n;
printf(\ scanf(\ fun(n, b); printf(\}
第1处:void fun(int m,int k):应改为void fun(int m,int k) 第2处:aa[i]=m/k;应改为aa[i]m%k;
第3处:printf(“%d”,aa[i]);应改为printf(“%d”,aa[i-1]); 三、编程题
请编写函数fun,其功能是:将两个两面三刀位数的正整数a、b合并形成一个整数放在c中.合并的方式是:将a数的十位和个位数依次放在c数的个位和十位上.
例如,当a=45,b=12,调用该函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句. #include
void fun(int a, int b, long *c) { }
main() {
int a,b; long c;
FILE *out;
printf(\
scanf(\ fun(a,b,&c);
printf(\ out=fopen (\ for (a = 0; a < 10; a++) {
fun(a+77, a+66, &c); fprintf(out, \ }
fclose (out ); }
void fun(int a,int b,long *c) {
c=(b/10)1000+(a)*100+(b)*10+a/10; }
第5套试题
一填空题
给定程序中,函数fun的功能是: 有N*N矩阵.以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0. 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 计算结果为:
1 0 0 6 5 0 10 14 9
请勿改动主函数main和其它函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句. #include
void fun(int (*t)___1___) {
int i, j;
for (i=1; i for (j=0; j ___2___ = t[i][j]+t[j][i]; ___3___ = 0; } }