c语言程序设计5-6答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章函数
一、选择题
1-5 :CBADD 6-10:BABDC 11-15:DBBAB
16-20:DBBAC 21-25:BBBBC
二、程序阅读题
1、以下程序的正确结果是2,3,-2
2、有以下程序,当执行后,其结果是14
3、以下程序运行后的输出结果是1 3 6
4、若有以下程序执行后输出结果是9
5、有以下程序序运行后的输出结果是9 。

6、以下程序的输出结果是1,6,3,2,3
7、以下程序的输出结果是15
8、以下程序运行后的输出结果是3,2,2,3
9、以下程序的运行结果是m=4 k=4 i=5 j=5 。

10、有以下程序
若运行时输入:1234<回车>,程序的输出结果是10
11、以下程序的输出结果是15 。

三、程序填空题
1、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

double max ( double,double);
2、下面程序的功能是:将任意输入的一个偶数n分解为两个素数之和,程序中函数check用来判断一个整数x是否是素数,返回1,否则返回0。

main( ){
int n, i;
int check( int x );
do {
printf( " Input n: " );
scanf( " %d" , &n );
} while( n % 2 != 0 );
for( i=3; i<= n/2 ; i++ )
if( check ( i ) &&check(n-i) )
printf( " %d = %d + %d \n ", n, i, n-i );}
int check ( int x ){
int i;
for( i=2; i< x ; i++ )
if( x%i==0 ) return ( 0 );
return ( 1 ); }
3、以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空
int isprime(int a)
{
int i;
for(i=2;i<=a/2;i++)
if(a%i==0) return 0 ;
return 1 ; }
4、请将以下程序中的函数声明语句补充完整。

int max(int , int) ;
main()
{ int x,y,(*p)( );
scanf(“%d%d”,&x,&y);
p=max;
printf(“%d\n”,(*p)(x,y));}
int max(int a,int b)
{ return (a>b?a:b);}
5、以下程序的功能是:通过函数func输入字符并统计输入字符的个数。

输入时用字符@作为输入结束标志。

请填空。

long func() /* 函数说明语句 */
main()
{ long n;
n=func(); printf("n=%ld\n",n);
}
long func()
{ long m;
for(m=0;getchar()!='@'; m++ );
return m;}
6、以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。

请填空。

int fun( int n){
int m=0,f=1,i;
for(i=1; i<=n; i++){
m+=i*f;
f= -f ;}
return m;}
main()
{ printf("m=%d\n", fun(10) ); }
7、以下sum函数的功能是计算下列级数之和。

s=1+x+x2/2!+x3/3!+........+x n/n!
请给函数中的各变量正确赋初值。

double sum( double x, int n ){
int i; double a,b,s;
s=1;
for( i=1;i<=n;i++){
a=a*x;
b=b*i;
s=s+a/b; }
return s; }
8、通过函数求f(x)的累加和,其中f(x)=x2+1
main(){
printf("The sum=%d\n",SunFun(10));
}
SunFun(int n){
int x,s=0;
for(x=0;x<=n;x++) s+=F(x );
return s;
}
F( int x)
{ return x*x+1 ;}
第6章数组
一、选择题
1 - 5:CDBBD 6-10:DCDDA 11-15:CACDC
16:20:BAAAA 21:25:BDBAD 26:30:DCCDB
二、程序阅读题
1、有以下程序执行后的结果是99 。

2、有以下程序若运行时输入:246<回车>,则输出结果为204 。

3、有以下程序程序的执行后的输出结果是357 。

4、以下程序的输出结果是30 。

5、有以下程序运行后的输出结果是 6 。

6、以下程序的输出结果是abc 。

7、下列程序的输出结果是CDABC 。

8、有以下程序运行后的输出结果是 3 4 。

9、有以下程序运行的结果是5678901234
10、以下程序运行后的输出结果是abcbcc
三、程序填空题
1、以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。

请填空。

main()
{
int x[10],a[9],i;
for (i=0;i<10;i++) scanf(“%d”,&x[i]);
for( i=1 ;i<10;i++)
a[i-1]=x[i]+ x[i-1] ;
for(i=0;i<9;i++)
printf(“%d”,a[i]);
printf(“\n”); }
2、若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、
3、
4、
5、
6、
7、
8、
9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。

请填空。

fun( int a[ ])
{ int i;
for(i=1; i<=10; i++) a[i-1] =i;
for(i=0; i<5; i++) a[4-i] =a[i];
}
3、程序的功能是使一个字符串按逆序存放,请填空。

main( )
{char str[]={“abcdefghijl”},m;
int i,j;
for(i=0,j=strlen(str);i< j/2;i++,j--)
{m=str[i];
str[i]= str[9-i];
str[j-1]=m;
}
printf(“%s\n”,str);
}
4、用冒泡法对10个数据进行排序,请填空,让程序能正确运行。

main()
{
int a[11],i,j,t;
printf(“input 10 numbers:\n”);
for(i=1;i<11;i++)
scanf(“%d”,&a[i]);
for(j=1;j<10;j++)
for( i=1;i<10-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t; }
pri ntf(“the sorted numbers:\n”);
for(i=1;i<10 ; i++)
printf(“%d”,a[i]);}
5、矩阵转置,请填空,让程序能正确运行。

main()
{
int a[2][3]={1,2,3,4,5,6};
int b[3][2],i,j;
printf(“array a:\n”);
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
_b[j][i]=a[i][j];
printf(“%5d”,a[i][j]);}
printf(“\n”);
}
printf(“array b:\n” );
for(i=0;i<=2;i++)
{
for (j=0;j<=1;j++)
printf(“%5d”,b[i][j]);
__ printf(“\n”); _
}
}
6、函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
#define N 6
void yanghui(int x[N][N])
{ int i,j;
x[0][0]=1;
for(i=1;i<N;i++)
{ x[i][0]=x[i][i]=1;
for(j=1;j<i;j++)
x[i][j]= x[i-1][j-1]+x[i-1][j] ;
}
}
7、程序的功能是:例如输入字符串:abc123edf456gh,执行程序后输出:123456,即将字符串中的数字字符输出。

请填空。

main()
{ char s[80], d[80]; int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]>=’0’&&s[i]<=’9’) { d[j]=s[i]; j++; }
d[j]='\0';
puts(d);
}
8、若有定义语句:char s[100],d[100]; int j=0, i=0;且s中已赋字符串,请填空以实现字符串拷贝。

(注:不得使用逗号表达式)
while(s[i]){ d[j]=s[i++]; j++;}
d[j]=0;
9、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d 中的字符串。

例如,输入字符串:abc123edf456gh,执行程序后输出:123456。

请填空。

main()
{ char s[80], d[80]; int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]>=’0’&&s[i]<=’9’) { d[j]=s[i]; j++; }
d[j]='\0';
puts(d);
}
10、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。

请填空。

main()
{ char a[]="clanguage",t;
int i, j, k;
k=strlen(a);
for(i=0; i<=k-2; i+=2)
for(j=i+2; j<=k; j=j+2 ) if( _a[i]>a[j]_ )
{ t=a[i]; a[i]=a[j]; a[j]=t; }
puts(a);
printf("\n");
}。

相关文档
最新文档