2015年计算机二级C语言上机操作题及答案(59)
发布时间:2011/7/20 13:07:26 来源:城市学习网 编辑:ziteng
第一题:请补充main函数,该函数的功能是,计算两个自然数n和m(m<10000)之间所有数的和。n和m从键盘输入。
例如,当n=1,m=100时sum=5050,当n=100,m=1000时,sum=495550
仅在横线上填入所编写的若干表达式或语句,勿改动函数的其他任何内容。
#include
#include
main()
{
int n, m;
long sum;
sum=0;
printf("\nInput n,m\n");
scanf("%d,%d", &n, &m);
while (n <= m)
{
sum += n;
n++;
}
printf("sum=%ld\n", sum);
} [NextPage] 第二题:下列给定程序中,函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入THIs is a boot,则输出应该是1、0、2、2、0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
/********found********/
void fun ( char *s, int num[5] )
{
int k, i = 5;
/********found********/
for (k=0; k num[k]=0;
for (; *s; s++)
{
i = -1;
/********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;
printf("\nPlease enter a string: ");
gets(s1);
fun(s1, num1);
for (i=0; i<5; i++)
printf("%d", num1[i]);
printf("\n");
} [NextPage] 第三题:请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,若字符数中的M个字符串为:
AAAA
BBBBBB
CC
则合并后的字符串的内容应是AAAABBBBBBCC。
请勿改动主函数main和其他函数中的任何内容,仅在fun的花括号中填入所编写的若干语句。
#include
#define M 3
#define N 20
void fun(char a[M][N], char *b)
{
int i,j, k=0;
for(i=0;i {
for(j=0;j if(*(*(a+i)+j))
{
b[k]=*(*(a+i)+j);
k++;
}
else
break;
b[k]='\0';
}
}
main()
{
char w[M][N]={"AAAA", "BBBBBBB","CC"},i;
char a [100]={"###############################"};
FILE *out ;
printf("The string:\n");
for(i=0; i puts(w[i]);
printf("\n");
fun(w,a);
printf("The A string:\n");
printf("%s",a);
printf("\n\n");
out=fopen ("out.dat","w");
fprintf(out, "%s", a);
fclose (out );
}
void fun(char a[M][N],char *b)
{
int i,j,k=0;
for(i=0;i if(*(*(a+i)+j))
{
b[k]=*(*(a+i)+j);
k++;
}
else
break;
b[k]='\0';
}
}