计算机二级c语言编程题思路,计算机二级C语言考试编程题.doc

计算机二级C语言考试编程题

编程题

1.请编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。

注意: 部分源程序存在文件prog.c中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

#include

#include

#include

#define N 81

/*本题的考核点是C语言中的for循环语句的使用。

解题思路:对于本题,我们给出的参考函数采取的算法是:将第一个元素与最后一个元素互换,第二个元素与倒数第二个互换…的方式进行倒排序。因为我们一次互换两个元素,所以for循环语句执行length/2次(length是字符串的长度)就可以把全部元素互换一遍。*/

void fun ( char *s )

{

int i ,length;

char tmp;

length = strlen( s ); /*统计字符串s中字符的个数*/

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

{ /*以下三行即将s中的第i个字符与第length-i个字符进行交互*/

tmp = s[i];

s[i] = s[length - i - 1];

s[length - i - 1] = tmp;

}

}

NONO( )

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */

int i ;

char a[N] ;

FILE *rf, *wf ;

rf = fopen("bc8.in", "r") ;

wf = fopen("bc8.out", "w") ;

for(i = 0 ; i < 9 ; i++) {

fscanf(rf, "%s", a) ;

fun(a) ;

fprintf(wf, "%s\n", a) ;

}

fclose(rf) ;

fclose(wf) ;

}

main()

{ char a[N];

system("cls");

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

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

fun(a);

printf("\n");

printf("The string after modified: ");

puts(a); NONO( );

}

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

例如,输入下面的矩阵:

100 200 300

400 500 600

700 800 900

程序输出:

100 400 700

200 500 800

300 600 900

注意: 部分源程序存在文件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

#include

#include

/*本题的考核点是3行3列矩阵转置算法。

解题思路:通过两重循环和一个中间数组完成转置。方法是通过循环将原数组中的i行j列上的数赋值给中间数组的j行i列,最后再将中间数组的值赋给原数组,形成转置后的矩阵。*/

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

{ int i,j;int b[3][3];

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

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

b[j][i]=array[i][j];/*将矩阵行列互换*/

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

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

array[i][j]=b[i][j];/*将b数组中的数据原封不动的保存在array数组中*/

}

NONO( )

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */

int i,j;

FILE *wf ;

int array[3][3]={{100,200,300

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值