2015年计算机二级C语言上机操作题及答案(44)
发布时间:2011/7/14 11:36:02 来源:城市学习网 编辑:ziteng
第44套
填空题
请补充fun函数,该函数的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值的或相等的字符依次放在到C数组中,形成一个新的字符串。
例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
#include
#include
void fun(char *p, char *q, char *c)
{
int k =0 ;
while (*p||*q)
{
if (*p < *q)
c[k] = *q;
else
c[k] = *p;
if (*p)
p++;
if (*q)
q++;
k++;
}
}
main()
{
char a[10] = "aBCDeFgH", b[10] = "ABcd", c[80] = {'\0'};
fun(a, b, c);
printf("The string a:");
puts(a);
printf("The string b:");
puts(b);
printf("The result:");
puts(c);
} [NextPage] 改错题
下列给出程序中,函数fun的功能是:根据形参m的值(2〈=m〈=9〉,在m行m列的二维数组中存放如下所示的数据,由main()函数输出。
请改正程序的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改持续的结构!
#include
#include
#define M 10
int a[M][M] = {0};
/********found********/
fun(int ()*a[M], int m)
{
int j, k;
for (j=0; j for (k=j; k /********found********/
a[j][k] =( k+1)*(j+1);
}
main()
{
int i, j, n;
printf(" Enter n:");
scanf("%d", &n);
fun(a, n);
for (i=0; i {
for (j=0; j printf("M", a[i][j]);
printf("\n");
}
} [NextPage] 编程题
编写一个函数,该函数可以统计一个长度为2的字符串在一个字符串的次数。
例如,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo,子字符串为as,则应输出6。
请勿改动主函数 main和其他函数中的的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。
#include
#include
#include
int fun(char *str,char *substr)
{
int n;
char *p,*r;
n=0;
while (*str)
{
p=str;
r=substr;
while(*r)
if(*r= =*p)
{
r++;
p++;
}
else
break;
if(*r= =’\0’)}
n++;
str++;
}
return n;
}
main()
{
char str[81],substr[3];
int n;
FILE *out;
printf("输入主字符串: ");
gets(str);
printf("输入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
out=fopen ("out.dat", "w");
strcpy(str, "asd asasdfg asd as zx67 asd mklo");
strcpy(substr, "as");
fprintf(out, "%d", fun(str, substr));
fclose (out );
}