您好,欢迎来到划驼旅游。
搜索
您的当前位置:首页c语言考试习题补充题

c语言考试习题补充题

来源:划驼旅游


改错题

一、求一维数组a中所有元素的平均值,结果保留两位小数。

#include

#include

void main()

{ int a[10]={10,4,2,7,3,12,5,34,5,9},i;

\\*******************found********************\\

int aver,s; (应改为:float aver,s;)

\\*******************found********************\\

s = 0; (应改为:s=a[o];)

for ( i=1; i<10; i++)

s += a[i];

aver = s / i;

printf(\"The aver is: %.2f\\n\

}

二、将[m,n]之间的所有素数存放到一维数组a中,并输出这些素数。

#include

#include

#include

void main()

{ int a[100],i,j,k,m,n,c=0;

printf(\"Please enter m,n(mscanf(\"%d,%d\

\\*******************found********************\\

for ( i=m; i<=100; i++)(应改为: for ( i=m; i<=n; i++))

{

k=(int)sqrt(i);

for ( j=2; j<=k; j++)

\\*******************found********************\\

if (j % i == 0) (应改为: if(i%j==0)

break;

if(j >= k+1)

a[c++] = i;

}

for (i=0; i{ printf(\"%4d\

if ((i+1) % 4 == 0) printf(\"\\n\");

}

}

三、将[2,100]之间的所有素数存放到一维数组a中,并输出这些素数。

#include

#include

#include

void main()

{ int a[100],i,j,k,m;

m = 0;

for ( i=2; i<=100; i++)

{

k=(int)sqrt(i);

for ( j=2; j<=k; j++)

if (i % j == 0)

\\*******************found********************\\

continue; (应改为: break;)

\\*******************found********************\\

if(i >= k+1) (应改为:if(j> =k+1))

a[m++] = i;

}

for (i=0; i{ printf(\"%4d\

if ((i+1) % 4 == 0) printf(\"\\n\");

}

}

四、求二维数组a中的最小值。

#include

#include

int arrmin( int arr[3][3])

{ int i,j,min;

\\*******************found********************\\

min=0; (应改为: min=arr[0];)

for ( i=0; i<3; i++)

for ( j=0; j<3; j++)

if (min > arr[i][j])

min = arr[i][j];

return (min);

}

void main()

{ int a[3][3]={4,4,34,7,3,12,5,6,5},n;

\\*******************found********************\\

n = arrmin( a[0][0]); (应改为: n=arrmin(a);)

printf(\"The min is: %d\\n\

}

五、求一维数组a中所有元素的平均值。

#include

#include

float average( a,n)

\\*******************found********************\\

int a,n; (应改为: int a[],n;)

{

int j; float aver;

\\*******************found********************\\

float s; (应改为: float s=0;)

for ( j=0; js += a[j];

aver = s / n;

return (aver);

}

void main()

{ int a[12]={10,4,2,7,3,12,5,34,5,9,6,8};

printf(\"Theaverageis:%.2f\\n\

}

六、将[m,n]之间的所有素数存放到一维数组a中,并输出这些素数。

#include

#include

#include

prime (int m)

{ int j,k;

k=(int)sqrt(m);

for ( j=2; j<=k; j++)

if (m % j == 0) return (0);

return (1);

}

void main()

{ int a[100],i,c=0,m,n;

printf(\"Enter m,n(mscanf(\"%d,%d\

\\*******************found********************\\

for (i=m; i<=100; i++)(应改为: for ( i=m; i<=n; i++))

\\*******************found********************\\

if(prime==1) (应改为: if(prime(i)==1;)

{ a[c]=i;

printf(\"%4d\

++c;

}

}

七、求一维数组a中值为奇数的元素的平均值。

#include

#include

double average( int arr[ ], int n )

{ int k=0,i; double s;

s = 0;

for ( i=0 ;i\\*******************found********************\\

if (arr[i] % 2 = 1) (应改为: if (arr[i] % 2 = =1))

{ s = s + arr[i]; k++; }

return (s/k) ;

}

void main()

{

int a[12]={10,4,2,7,3,12,5,34,5,9,21,18};

double s;

\\*******************found********************\\

s = average(a[12],12); (应改为:s = average(a,12);)

printf(\"The result is: %.2f\\n\

}

八、求一维数组a中的最大元素及其下标。

#include

#include

int max;

fun ( int arr[],int n )

{ int pos,i;

max = arr[0];

pos = 0;

for ( i=1; iif (max < arr[i])

{

max = arr[i];

/************found************/

i=pos (应改为:pos=i;)

}

return (pos);

}

void main()

{int a[10]={1,4,2,7,3,12,5,34,5,9},n;

/************found************/

fun(a,4); (应改为:n = fun(a,10);)

printf(\"The max is: %d ,pos is: %d\\n\

}

填空题

一. 求一维数组a中非素数之和。

例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,15,17,则程序的输出应为:Sum is: 。

#include

#include

void main()

{ int a[12]={2,3,5,7,8,9,10,11,12,13,15,17},i,j,k,s;

/************found************/

____(1)____; (应填:s=0)

for ( i=0; i<12; i++)

{ k=sqrt(a[i]);

for ( j=2;j <= k; j++)

if (a[i] % j == 0) break;

if( j<=k )

/************found************/

s=s+____(2)____; (应填:a[i])

}

printf(\"Sum is: %d\\n\

二. 打印出1至1000中满足其个位数字的立方等于其本身的所有整数。本题的结果为:1 125 216 729。

#include

main()

{ int i,g;

for(i=1;i<1000;i++)

{

/************found************/

g=i___1___10; (应填:%)

/************found************/

if(___2___) printf(\"%4d\(应填:i==g*g*g)

printf(\"\\n\"); }

三、计算并输出下列级数的前n项之和Sn,直到Sn大于q为止,q的值通过形参传入。

Sn = 2/1 + 3/2 + 4/3 + …… + (n+1)/n

#include

float fun( float q )

{

int n;

float s;

n = 2;

s = 2.0;

\\*******************found********************\\

while (s___1___q) (应填:<=)

{

s=s+(float)(n+1)/n;

\\*******************found********************\\

___2___; (应填:n++)

}

return s;

}

main()

{

printf(\"%f\\n\

}

四、统计整数n的各个位上出现数字1、2、c2、c3返回主函数。

#include

int c1,c2,c3;

的次数,并通过外部(全局)变量c1、3

void fun(long n)

{

c1 = c2 = c3 = 0;

while (n)

{

\\*******************found********************\\

switch(___1___) (应填:n%10)

{

case 1: c1++; break;

\\*******************found********************\\

case 2: c2++;___2___; (应填:break)

case 3: c3++;

}

n /= 10;

}

}

main()

{

int n=123114350;

fun(n);

printf(\"\\nn=%d c1=%d c2=%d c3=%d\\n\

}

五、程序的功能是计算y = 0! + 1! + 2! + 3! + 4! + …… + n! 如输入n的值为5的话,则输出y值为1

#include

int fun(int n)

{

int i;

int s;

s=1;

for (i=1; i<=n; i++)

\\*******************found********************\\

s=___1___; (应填:s*i)

return s;

}

main()

{

int s;

int k,n;

scanf(\"%d\

s=0;

for (k=0; k<=n; k++)

\\*******************found********************\\

s=___2___; (应填:s+fun(k))

printf(\"%d\\n\

}

六、计算N*N矩阵的主对角线元素和副对角线元素之和,并作为函数值返回。

#include

#define N 3

fun(int t[][N], int n)

{

int i, sum;

\\*******************found********************\\

___1___; (应填:sum=0)

for(i=0; i\\*******************found********************\\

sum+=___2___ ; (应填:t[i][i])

for(i=0; isum+= t[i][n-i-1] ;

return sum;

}

main()

{

int t[][N]={1,2,3,4,5,6,7,8,9},i,j;

for(i=0; i{

for(j=0; jprintf(\"%4d\j]);

printf(\"\\n\");

}

printf(\"The result is: %d\\n\

}

七、统计一维数组a中素数的个数。

#include

#include

#include

prinum( int a[] )

{ int count,i,j,k;

count = 0;

for ( i=0; i<10; i++)

{

k=a[i]-1;

for ( j=2; j<=k; j++)

if (a[i] % j == 0)

break;

if(j >= k+1)

count++;

}

\\*******************found********************\\

____(1)____; (应填:return count;)

}

void main()

{ int a[10]={2,3,5,7,8,9,10,11,12,13},n;

\\*******************found********************\\

n = ____(2)____; (应填:prinum(a))

printf(\"prime number(s) is(are): %d\\n\

}

八、把数组a(大小为M)中前M-1个元素中的最小值放入a的最后一个元素中。

#include

#define M 11

void main()

{ int a[M],i;

for(i=0;iscanf(\"%d\

a[M-1]=a[0];

\\*******************found********************\\

for(i=1; ___(1)___;i++)(应填:i\\*******************found********************\\

if(___(2)___) (应填:a[M-1]>a[i])

a[M-1]=a[i];

printf(\"Max is %d\\n\

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务