编程题:
44.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo,子字符串为as,则应输出6。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
int fun(char *str,char *substr)
{
}
main()
{
char str[81],substr[3];
int n;
clrscr() ;
printf(“输入主字符串: “);
gets(str);
printf(“输入子字符串: “);
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf(“n=%d\n”,n);
}
48.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12,调用该函数后,c=4152。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun (int a, int b ,long *c)
{
}
main ()
{
int a,b;
long c;
clrscr ();
printf (“Input a, b:”);
scanf(“%d%d”, &a, &b);
fun (a, b, &c);
printf (“The result is: %d\n”, c);
}
改错题:
82.下列给定程序中,函数fun的功能是:计算整数n的阶乘。
请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include “stdio.h”
double fun(int n)
{
double result=1.0;
/********found********/
while (n>1 && n<170)
result *=–n;
/********found********/
return _____;
}
main()
{
int n;
clrscr();
printf(“Enter an integer: ” );
scanf(“%d”,&n);
printf(“\n\n%d!=%1g\n\n”,n,fun(n));
}
83.下列给定程序中,函数fun的功能是:交换主函数中两个变量的值。例如:若变量a中的值原为8,b中的值为3,则程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
/********found********/
int 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, %d\n”,a,b);
}