2009二级C语言南开100题编程题答案(2)

2018-11-22 21:25

答案:

int fun(int a[][N]) { int I,j;

for(i=0;i<N;i++) for(j=0;j<=I;j++) a[i][j]=0; }

12: 第12题 下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 答案:

double fun(int w[][N]) {

int I,j,k=0; double s=0.0; for(j=0;j<N;j++) {

s+=w[0][j]; k++; }

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

s+=w[N-1][j]; k++; }

for(i=1;i<=N-2;i++) {

s+=w[i][0]; k++; }

for(i=1;i<=N-2;i++) {

s+=w[i][N-1]; k++; }

return s/=k; }

13: 第13题 请编写一个函数void fun(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。 答案:

6

void fun(int tt[M][N], int pp[N]) {

int I,j,min; for(j=0;j<N;j++) {

min=tt[0][j]; for(i=0;i<M;i++) {

if (tt[i][j]<min) min=tt[i][j]; }

pp[j]=min; } }

14: 第14题 请别写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 答案:

int fun(int a[M][N]) {

int I,j,s=0; for(j=0;j<N;j++) {

s+=a[0][j]; s+=a[M-1][j]; }

for(i=1;i<=M-2;i++) {

s+=a[i][0]; s+=a[i][N-1]; } return s; }

15: 第15题 请编写一个函数unsigned fun(unsigned w),w使一个大于10的无符号整数,若w使n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。 答案:

unsigned fun(unsigned w) {

unsigned t,s=0,s1=1,p=0; t=w; while(t>10)

7

{ if(t/10) p=t; s=s+p*s1; s1=s1*10; t=t/10; } return s; }

16: 第16题 请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树,并对第三位进行四舍五入(规定h中的值位正数)。 答案:

float fun(float h) { long t; float s; h=h*1000; t=(h+5)/10; s=(float)t/100.0; return s; }

17: 第17题 请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。 答案:

void fun(char *s) { char ch; int I,m,n; i=0;

m=n=strlen(s)-1; while(i<(n+1)/2) { ch=s[i]; s[i]=s[m]; s[m]=ch; i++; m--; } }

8

18: 第18题 编写程序,实现矩阵(3行3列)的转置(即行列互换)。 答案:

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

int I,j,temp; for(i=0;i<3;i++) for(j=0;j<I,j++) {

temp=array[i][j]; array[i][j]=array[j][i]; array[j][i]=temp; } }

19: 第19题 编写函数fun,该函数的功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。 答案:

void fun(char s[],int c) { int i=0; char *p; p=s; while(*p) { if(*p!=c) { s[i]=*p; i++; } p++; }

s[i]=‘\\0’; }

20: 第20题 编写函数int fun(int lim,int aa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。 答案:

int fun(int lim, int aa[MAX]) {

int k=0,I,j; for(i=lim;i>1;i--) {

9

for(j=2;j<i;j++) if(i%j==0) break; else continue; if(j>=i) { aa[k]=i; k++; } }

return k++; }

21: 第21题 请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。 答案:

void fun(char *s,int num) { char t; int I,j;

for(i=1;i<num-2;i++) for(j=i+1;j<num-1;j++) if(s[i]<s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } }

22: 第22题 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。 答案:

double fun(STREC *h) {

double max; STREC *q=h; max=h->s; do {

if(q->s>max)

10


2009二级C语言南开100题编程题答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新中国交通银行招聘考试笔试试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: