C语言期末复习

更新时间:2024-06-07 10:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

看程序写结果:

1. 设有以下程序,如果从键盘上输入1298,则输出结果为 main() { int n1,n2;

scanf(\ while(n2!=0) { n1=n2; n2=n2/10;

printf(\ } } 2. 以下程序输出的最后一个值是 int ff(int n) { static int f=l; f=f*n; return f; }

main() { int i;

for(i=1;i<=5;i++) printf(\ )

3. 以下程序的输出结果是 int ast( int x,int y,int * cp,int * dp) { * cp=x+y; * dp=x-y;} main( )

{ int a,b,c,d;  a=4;b=3;

 ast(a,b,&c,&d);

 printf(\} 4.有以下程序,其输出结果是 #include int f(int x, int y)

{ return x+y; } void main()

{ double a=5.5, b=2.5; printf(\}

5.运行以下程序,则输出结果是

#include func(int a,int b) {int c; c=a+b; return c; } void main()

{int x=6,y=7,z=8,r;

r=func((x--,y++,x+y),z--); printf(“%d\\n”,r); }

6.运行以下程序,则输出结果中第二行是

void fun(int x, int p[], int *n) { int i, j=0;

for(i=1; i<=x/2; i++)

if(x%i==0) p[j++]=i; *n=j; }

void main()

{ int x,a[10], n, i; fun(27, a, &n); for(i=0;i

printf(\ printf(\}

7. 以下程序的运行结果是 。

main() { int i,n[4]={1}; for(i=1;i<=3;i++)

{ n[i]=n[i-1]*2+1;printf(\ \}

8.以下程序的运行结果是 。

#include

void change(int x, int y, int *z) { int t;

t=x; x=y; y=*z; *z=t;; }

void main()

{ int x=18, y=27, z=63; change(x, y, &z);

printf(\}

9.以下程序的输出结果是 。

enum week { MON = 1, WED , TUS , THS , FRI , SAT, SUN }; main( )

{ printf (“%d”, hour (FRI, SUN)) ; } hour (int x, int y )

{ if ( y>x ) return 24* (y-x) ; else return –1; }

1. 以下程序求一组数组的最大公约数。

int gcd(int a, int b) { int r;

while(b!=0)

{r=a%b; a=b; b=r; } return a;

} void main()

{ int x,i, a[6]={12, 56, 48, 32, 16, 24}; x=a[0];

for(i=1; i<6; i++) x=gcd(x, a[i]); printf(\ for(i=1;i<5;i++)

printf(\

printf(\ }

2. 以下程序中,函数 sumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。 #define M 2 #define N 4

void SumColumMin(int a[M][N],int *sum) { int i,j,k,s=0;

for(i=0;i

for(j=1;j

if(a[k][i]>a[j][i])k=j; s+= a[k][i] ; }

*sum=s; }

main()

{ int x[M][N]={3,2,5,1,4,1,8,3},s; SumColumMin( x,&s); printf(\}

3. 设数组a中有10个整数,程序实现将10个整数按相反顺序存放的功能。 void inv (int *x,int n)

{ int *p, t, *i, *j, m=(n-1)/2;

i=x; j= x+n-1 ; p=x+m; for ( ; i

{ t=*i; *I = *j ; *j=t; } }

main ( )

{ static int I, a[10]={3,7,9,11,0,6,7,5,4,2};

prntf (\for(I=0;I<10;I++) printf (\printf (\inv (a,10) ;

prntf (\

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

printf (\ printf (\

}

4. 以下程序验证一个猜想:任意一个十进制正整数与其反序数相加后得到一个新的正整数,

重复该步骤最终可得到一个回文数(所谓反序数,是指按原数从右向左读所得到的数:例如,123的反序数是321。所谓回文数,是指一个数从左向右与从右向左读的值相同。例如,12321,234432都是回文数)。请填空。 #include long invert(long x); main()

{ long n, c=0;

printf(”input a number:”); scanf(”%d”, &n); while (n<0)

{ printf(”input a number:”); scanf(”%d”, &n); }

while(n!=invert(n))

{ n=n+invert(n); c++; } printf(”%ld,count=%ld”, n, c); }

long invert(long x) { long s;

for(s=0; x>0; x=x/10;) s=s*10+x; return s; }

5. 以下程序功能:合并两个已经按照升序排列的一维数组。Insert函数的功能是:将m插

入x指向的含有n个元素的数组中,数组中n个元素已按升序排序,插入m后的n+1个元素仍保持有序。试完善程序。 void insert (int x[ ],int n,int m); main( )

{ int a[10]={1,3,5,7,9},b[5]={2,4,8,16,32},k; for(k=0;k<5;k++) insert(a, k+5 ,b[k]); for(k=0;k<10;k++) printf(“%d”,a[k]); }

void insert (int x[ ],int n,int m) { int i,j;

if (m>x[n-1]) x[n] =m; else

{ for(i=0;x[i]

for(j=n;j>=i;j--) x[j]= x[j-1]; x[i]=m; } }

编写程序:

1.给定一个大写字母,要求用小写字母输出。已知大写字母A的ASCII为65,小写字母a的ASCII为97。

2.输入三个数a、b、c,要求按由小到大顺序输出。

3.写一个判断素数的函数,在主函数中输入一个整数,输出是否为素数的信息。 4.编写一个函数fun(n),求任意整数的逆序数,例当n=1234时,函数值为4321。 5. 求Fibonacci数列中前20个数。Fibonacci数列的前两个数为1,1,以后每个数都是其前面两个数之和。Fibonacci数列前面n个数为:1,1,2,3,5,8,13,…。用数组存放数列的前20个数,并输出(一行5个数输出)。

6.将一个给定的一个2*3的二维数组行和列的元素互换,存到另一个3*2的二维数组中。用循环结构求s=1+2+3+...+100的和。

7. 写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串

8.有10个学生,每人考5门课,请编程计算每个学生的平均成绩,并统计输出有不及格科目的学生。

本文来源:https://www.bwwdw.com/article/pu26.html

Top