程序设计题
【题一】
#include<stdio.h>
#define N 80
void fun(int *w,int p,int n)
{
int x, j, ch;
for (x = 0; x <= p; x++)
{
ch = w[0];
for (j = 1; j < n; j++)
{
w[j - 1] = w[j];
}
w[n - 1] = ch;
}
}
int main()
{
int a[N] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
int i, p, n = 15;
printf("The oriqinal data:\n");
for (i = 0; i < n; i++)
{
printf("%3d", a[i]);
}
printf("\n\nEnter p:");
scanf("%d", &p);
fun(a, p, n);
printf("\nThe data after moving:\n");
for (i = 0; i < n; i++)
{
printf("%3d", a[i]);
}
printf("\n\n");
}
【题二】
void fun(char* a)
{
while (*a != '\0')
{
a++;
}
a--;
while (*a == '*')
{
a--;
}
*(a + 1) = '\0';
}
【题三】
void fun(int m,int k,int xx[])
{
int i, j, n;
for (i = m + 1, n = 0; n < k; i++)
{
for (j = 2; j < i; j++)//判断i是否是素数
{
if (i%j == 0)break;//不是跳出判断,判断下一个数
}
if (j >= i)//若是素数,存入xx[]数组中
{
xx[n++] = i;
}
}
}
【题四】
#include<stdio.h>
int fun(char *s)
{
int i, j=0;
for (i = 0; s[i] != '\0'; i++)
{
if (s[i] != ' '&&s[i + 1] == ' ' || s[i + 1] == '\0')
j++;
}
return j;
}
int main()
{
int a;
char *s = "i love you";
a = fun(s);
printf("%d", a);
return 0;
}
【题五】
#include<stdio.h>
#define N 3
void fun(int a[][N],int m)
{
for (int i = 0; i < N; i++)
{
for (int j = i; j < N; j++)
{
a[i][j] = a[i][j] * m;
}
}
}
int main()
{
int a[][N] = { {1,9,7},{2,3,8},{4,5,6} };
int m = 2;
fun(a, m);
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
printf("%d ", a[i][j]);
if (j == N - 1)printf("\n");
}
}
return 0;
}
【题六】
#include<stdio.h>
#define N 5
float fun(int a[][N])
{
float sum = 0;
int k = 0;
for (int i = 0; i < N; i++)
{
if (i == 0) //处理第一行
{
for (int j = 0; j < N; j++)
{
sum = sum + a[i][j];
k++;
}
}
else if (i == N - 1) //处理最后一行
{
for (int j = 0; j < N; j++)
{
sum = sum + a[i][j];
k++;
}
}
else //处理中间的行
{
sum = sum + a[i][0] + a[i][N - 1];
k = k + 2;
}
}
return sum / k;
}
int main()
{
float prem;
int a[][N] = { {0,1,2,7,9},{1,9,7,4,5},{2,3,8,3,1},{4,5,6,8,2},{5,9,1,4,1} };
prem = fun(a);
printf("%.3f", prem);
return 0;
}
【题七】
#include<stdio.h>
#define M 4
#define N 5
int fun(int a[M][N])
{
int sum = 0;
for (int i = 0; i < M; i++)
{
if (i == 0) //处理第一行
{
for (int j = 0; j < N; j++)
{
sum = sum + a[i][j];
}
}
else if (i == M - 1) //处理最后一行
{
for (int j = 0; j < N; j++)
{
sum = sum + a[i][j];
}
}
else sum = sum + a[i][0] + a[i][N - 1];//处理中间的行
}
return sum;
}
int main()
{
int prem;
int a[M][N] = { {1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};
prem = fun(a);
printf("%d", prem);
return 0;
}
【题八】
#include<stdio.h>
float fun(float h)
{
int tmp = (int)(h * 1000 + 5) / 10;
return (float)tmp / 100;
}
int main()
{
float h = 1234.564;
printf("%7.2f",fun(h));
return 0;
}
【题九】
#include<stdio.h>
void fun(int array[3][3])
{
int i, j, t;
for (i = 0; i < 3; i++)
{
for (j = i + 1; j < 3; j++)
{
t = array[i][j];
array[i][j] = array[j][i];
array[j][i] = t;
}
}
}
int main()
{
int array[3][3] = { {100,200,300},{400,500,600},{700,800,900} };
fun(array);
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d ", array[i][j]);
if (j == 2)printf("\n");
}
}
return 0;
}
【题十】
#include<stdio.h>
#define MAX 100
int fun(int lim, int aa[MAX])
{
int i, j, k = 0;
for (i = 2; i <= lim; i++)
{
for (j = 2; j < i; j++)
{
if (i%j == 0)break;
}
if (j >= i)aa[k++] = i;
}
return k;
}
int main()
{
int sum,lim = 20;
int aa[MAX];
sum = fun(lim, aa);
printf("%d\n", sum);
for (int i = 0; i < sum; i++)
{
printf("%d ", aa[i]);
}
return 0;
}
【题11】
char *fun(char(*a)[81], int num, char *max)
{
int i = 0;
max = a[0];
for (i = 0; i < num; i++)
{
if (strlen(max) < strlen(a[i]))
max = a[i];
}
return max;
}