二级c语言上机题

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

C语言程序设计上机编程题

1、编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。

例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。

试题程序:

#include

#include

#include

#define N 81

/*注:该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次都进行两字符的位置对换,直到中间字符(用s+i

fun(char *s)

{ int i=0,t,n=strlen(s);

for(;s+i

{t=*(s+i);*(s+i)=*(s+n-1-i);*(s+n-1-i)=t;}

}

main()

{ char a[N];

clrscr();

printf("Enter a string:"); gets(a);

printf("The original string is:");puts(a);

fun(a);

printf("\n");

printf("The string after modified:");

puts(a);

}

2、写程序,实现矩阵(3行3列)的转置(即行列互换)。

例如,输入一面的矩阵:

程序输出:

试题程序:

#include

#include

/*这题的关键在于进行行列下标转换的算法,由矩阵的对称性我们不难看出在进行行列互换时a[j]在好是与a[j][i]互换,因而只要我位让程序走完矩阵的左上角即可(用for(i=0;i<2;i++)再套for(j=i+1;j<3;j++)来完成左上角的走动。*/

int fun(int array[3][3])

{ int i,j,t;

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

for(j=i+1;j<3;j++)

{t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}

}

main()

{ int i,j;

int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};

clrscr();

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

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

printf("%7d",array[i][j]);

printf("\n");

}

fun(array);

printf("Converted array:\n");

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

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

printf("%7d",array[i][j]);

printf("\n");

}

}

3、请编一个函数fun(int *a,int n,int *odd,int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给了数组中数据的个数:利用指针odd返回奇数之和,利用指针even返回偶娄这和。

例如:数组中的值依次为:1,8,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。

试题程序。

#include

#include

#define N 20

/*注:该题的算法是:用for()循环一步一步地找元素,用if(!a[i]%2)来判断是否是奇数,%运算是求余运算,当对2求余为1时表示原数为奇数,否则为偶数。*/

fun(int *a,int n,int *odd,int *even)

{ int i; *even=0;*odd=0;

for(i=0;i

if(!(a[i]%2))

*even+=a[i];

else

*odd+=a[i];

}

main()

{ int a[N]={1,9,2,3,11,6},i,n=6,odd,even;

clrscr();

printf("The original data is:\n");

for(i=0;i

printf("\n\n");

fun(a,n,&odd,&even);

printf("The sum of odd numbers:%d\n",odd);

printf("The sum of even number:%d\n",even);

}

4、要求程序的功能是:把20个随机数存入一个数组,然后输出该数组中的最小值。其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。

试题程序。

#include

#include

#define VSIZE 20

int vector[VSIZE];

/*注:该题的算法是用一个变量(j)来存储最小值元素的下标,在循环过程中让每个元素都与原最小值元素进行大小比较(if(list[i]

int fun(int list[],int size)

{ int i,j=0;

for(i=1;i

if(list[i]

j=i;

return j;

}

main()

{

int i;

clrscr();

for(i=0;i

{

vector[i]=rand();

printf("Vector[%d]=%6d\n",i,vector[i]);

}

i=fun(vector,VSIZE);

相关文档
最新文档