请补充函数fun( ),函数fun( )的功能是求7的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun( )的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
long fun(int n)

if( 【1】 )
return(n*fun( 【2】 );
else if( 【3】 )
return 1;

main( )

int k=7;
printf("%d!=%ld/n", k, fun(k));

[1]n>1 [2]n-1 [3]n==1

下列给定程序中,函数fun( )的作用是,将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入"Ab,cD",则输出"ab, cd"。
请改正函数fun( )中的错误,使它能得出正确的结果。
注童:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <string.h>
#include <conio.h>
char *fun (char tt[])

int i;
for(i=0; tt[i]; i++)
/**************found**************/
if((’A’ <=tt[i]||(tt[i]<=’z’ ))
tt[i]+=32;
return(tt);

main( )
int i;
char tt[81];
clrscr( );
printf("/nPlease enter a string:");
gets(tt);
printf("/nThe result string is:/n %s",
fun(tt));

错误:if((’A’ <=tt[i]||(tt[i]<=’Z’)) 正确:if((tt[i]>=’A’)&&(tt[i]<=’Z’))

请编写一个函数fun( ),它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入abc4Efg,则应输出aBc4EFg。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <string.h>
void fun(char *ss)



main( )

char tt[81];
clrscr( );
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);

void fun(char *ss)
{
int i;
for(i=0;ss[i]!=’/0’;i++) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/
if(i%2==1&&ss[i]>=’a’ &&SS[i]<=’z’)
ss[i]=ss[i]-32;
}

请补充main函数,该函数的功能是:打印出1~1000中满足:个位数字的立方等于其本身所有数。
本题的结果为;1 64 125 216 729
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数main的横线上填入所编写的若干表达式或语句。
试题程序:
#include <stdio .h>
main ( )

int i,g;
clrscr ( );
for (i=1; i<1000; i++)

g= 【1】 ;
if( 【2】 )
printf ("%4d", i);

[1] i%10 [2] g*g*g==i

下列给定函数中,函数fun( )的功能是:统计字符串中各元音字母(即A,E,I,O,U)的个数。注意:字母不分大小写。例如,输入THIs is a boot,则应输出是1 0 2 2 0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <stdio.h>
/*************found**************/
fun(char *s, int num[5])
int k, i=5;
for(k=0;k<i;k++)
/*************found**************/
num [i]=0;
for(;*s;s++)
i=-l;
/*************found**************/
switch(s)
case ’a’: case ’A’:i=0;break;
case ’e’: case ’E’:i=1;break;
case ’i’: case ’I’:i=2;break;
case ’o’: case ’O’:i=3;break;
case ’u’: case ’U’:i=4;break;

if(i>=0)
num[i]++;


main ( )
char s1[81]; int num1[5], i;
clrscr ( );
printf("/nPlease enter a string: ");
gets (s1);
fun(s1, num1);
for(i=0;i<5;i++) printf("%d",num1[i]);
printf ("/n");

错误: fun(char *s, int num[E]) 正确: void fun(char *s, int num[E])
(B) 错误: num[i]=0; 正确: num[k]=0;
(C) 错误: switch(s) 正确: switch(*s)

编写一个函数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);

 void fun (char pA[],char pB[])
{
int i,j;
for (i=0;pA [i] !=’/0’; i++); /*求出的i为pA字符的总长度,包括结束标记位*/
for (j=0;pB [j] !=’/0’; j++)
pA [i++]=pB [j]; /*将pB字符串连在pA字符串的后面*/
pA[i]=’/0’; /*在字符串最后加上结束标记符*/
}

请补充函数fun( ),该函数的功能是:把字符下标为非素数的字符从字符串sb中删除,把字符下标为素数的字符重新保存在字符串e口中。字符串sb从键盘输入,其长度作为参数传入函数fun( )。
例如,输入“abcdefghijkl”,输出“cdfhl”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
试题程序:
#include <stdio.h>
#define N 80
void fun(char s[],int n)

int i, j, k, flag;
【1】 ;
for(i=0; i<n; i++)

if (i>1)
s [k++] =s [i];
flag=I;
for( 【2】 ; j<i&&flag; j++)
if (i%j==0)

flag=0;
【3】


s [k]=’/0’;

main( )

int i=0, strlen=0;
char str[N];
clrscr ( );
printf("/n Input a string:/n");
gets (str);
while (str [i] !=’/0’)

strlen++;
i++;

fun (str, strlen);
printf("/n*** display string ***/n");
puts (str);

[1]k=0 [2]j=2 [3]k--

下列给定程序中,函数fun( )的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3, b中的值为8。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<conio.h>
#include <stdio.h>
int fun(int *x,int y)

int t;
/***************found***************/
t=x;x=y;
/***************found***************/
return(y);

main( )
int a=3,b=8;
clrscr( );
printf("%d %d/n",a, b);
b=fun(&a,b);
printf("%d %d/n" ,a,b);

错误:t=x;x=y; 正确:t=*X;*x=y;
(2)错误;return(y); 正确:return(t);

某学生的记录由学号、8门课成绩和平均分组成,学号和 8门课的成绩已在主函数中给出。请编写fun( )函数,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。
例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5, 87.5,则他的平均分应当是78.875。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define N 8
typedef struct
char num [10];
double s[N];
double ave;
STREC;
void fun( )


main( )

STREC s="GA005",85.5,76,69.5,85,91, 72,64.5,87.5);
int i;
fun (&s);
printf("The %s’ s student data:/n",s.num)/ /*输出学号*/
for(i=0;i<N; i++)
printf("%4.1f/n", s.s[i]);
/*输出各科成绩*/
printf("/nave=%7.3f/n",s.ave);
/*输出平均分*/

void fun(STREC *p)
{
int i;
p->ave=0.0;
for(i=0;i<N;i++)
p->ave=p->ave+p->s[i]; /*求各门成绩的总和*/
p->ave=p->ave/N; /*求平均分*/
}

请补充main函数,该函数的功能是:输出一个NXN矩阵,要求非周边元素赋值0,周边元素赋值1。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio .h>
#define N 10
main( )

int bb[N] IN];
iht i,j,n;
clrscr 0;
printf (" /nInput n: /n");
scanf ("%d", &n);
for (i=0; i<n; i++ )
for (j=0; j<n; j++)

if(【1】)
bb[i] [j]=l;
else
【2】;

printf(" /n*** the result *** /n");
for (i=0; i<n; i++)

printf (" /n/n");
for (j=0; j<n; j++)
printf ("%4d",bb [i] [j ] );

[1]i==0‖i==n-1‖j==0‖j==n-1
[2]bb[i][j]=0

微信扫码获取答案解析
下载APP查看答案解析