请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define M 5
#define N 20
int fun(char (*ss)[N], int *n)
{int i, k=0, len= N;
/**********found**********/
for(i=0; i<___1___; i++)
{len=strlen(ss[i]);
if(i==0) *n=len;
/**********found**********/
if(len ___2___ *n)
{ *n=len;
k=i;
}
}
/**********found**********/
return(___3___);
}
main()
{char ss[M][N]={"shanghai","guangzhou","beijing", "tianjing","chongqing"};
int n,k,i;
printf("\nThe original strings are :\n");
for(i=0;i
k=fun(ss,&n);
printf("\nThe length of shortest string is : %d\n",n);
printf("\nThe shortest string is : %s\n",ss[k]);
}
解题答案:
/**********第一空**********/
for(i=0; i
/**********第二空**********/
if(len < *n)
/**********第三空**********/
return(k);
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数 fun 的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。
例如,若输入"Ab, cD",则输出"AB, CD"。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序:
#include
#include
char* fun(char tt[])
{
int i;
for(i = 0; tt[i]; i++)
/**********found***********/
if(('a' <= tt[i])||(tt[i] <= 'z'))
/**********found***********/
tt[i] += 32;
return(tt);
}
main()
{
char tt[81];
printf("\nPlease enter a string: ");
gets(tt);
printf("\nThe result string is:\n%s", fun(tt));
}
解题答案:
/**********found***********/
if(('a'<=tt[i])&&(tt[i]<='z'))
/**********found***********/
tt[i]-=32;
******************************************
[NextPage] 三、程序题:请编写函数fun,其功能是: 将所有大于1小于整数m的非素数存入xx所指数组中, 非素数的个数通过k传回。 例如,若输入:17,则应输出:4 6 8 9 10 12 14 15 16。注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include
void fun(int m, int *k, int xx[])
{
}
main()
{
int m, n, zz[100];
void NONO ();
printf("\nPlease enter an integer number between 10 and 100: ");
scanf("%d", &n);
fun(n, &m, zz);
printf("\n\nThere are %d non-prime numbers less than %d:", m, n);
for(n = 0; n < m; n++)
printf("\n %4d", zz[n]);
NONO();
}
void NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
int m, n, zz[100];
FILE *rf, *wf ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
fscanf(rf, "%d", &n);
fun(n, &m, zz);
fprintf(wf, "%d\n%d\n", m, n);
for(n = 0; n < m; n++)
fprintf(wf, "%d\n", zz[n]);
fclose(rf);
fclose(wf);
}
解题答案:
{
int j, tag = 0 ;
for(j = 2 ; j < m && !tag ; j++)
if(m % j == 0) tag = 1 ;
return tag ;
}
void fun( int m, int *k, int xx[] )
{
int i, cnt = 0 ;
for(i = 2 ; i < m ; i++)
if(isP(i)) xx[cnt++] = i ;
*k = cnt ;
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|