编程题:
4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次放在pp所指数组中。
例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
# include <conio.h>
# include <stdio.h>
void fun(char *tt, int pp[])
{
}
main()
{ char aa[1000];
int bb[26], k, n;
clrscr() ;
printf(“nPlease enter a char string:”);
scanf(“%s”,aa);
fun(aa,bb);
for(k=0;k<26 ; k++)printf(“%d”,bb[k]);
printf(“n”);
}
7.请编写一个函数int fun(int*s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:876 675 896 10l 30l 40l 980 43l 451 777 ,则输出结果为:6,980。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
# include <conio.h>
# include <stdio.h>
void fun(int *s, int t , int *k)
{
}
main( )
{
int a[10]={876,675,896,101,301,401,980,431,451,777}, k ;
clrscr( ) ;
fun(a,10,&k);
printf(“%d, %dn”, k, a[k]);
}
改错题:
25.下列给定程序中函数fun的功能是:计算n!。例如,给n输入5,则输出l20.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <conio.h>
double fun(int n)
{
double result=1.0;
/********found********/
if n==0
return 1.0;
while(n>1&&n<170)
/********found********/
result =n–;
return result;
}
main()
{
int n;
printf(“Input N:”);
scanf(“%d”,&n);
printf(“nn%d!=%1fnn”,n,fun(n));
}
26.下列给定程序中,函数fun的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun()
{
int a[3][3],sum;
int i,j;
/********found********/
_____;
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
/********found********/
scanf(“%d,”, a[i][j]);
}
for (i=0;i<3;i++)
sum=sum+a[i][i];
printf(“sum=%dn”,sum);
}
main()
{
fun();
}