四川省二级c语言29次机试试题及答案(2)

2019-04-09 10:03

四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日)

(第四套)(60分钟)

一、程序调试题(40分)

磁盘上有一个名为test4-4.c的C程序文件,其功能是:在main函数中随机生成一个N*N的二维数组,fun函数使该数组左下半三角元素中的值乘以n。例如n=3,当a数组中的值为:

?197??397?????a??238?,运行程序后a数组的值就变为:a??698?

?121518??456?????在main函数中将运行结果输出到屏幕上和文件test4-4.out中。请改正程序中的错误,使它能得出正确

结果。

注意:不得增行或删行,也不得更改程序结构。 源程序如下: # include \# define N =3

int fun(int a[][N],n) {

int i,j;

for(i=0;i=j)

a[i][j]=*n; }

main() {

int a[N][N],n,i,j; FILE *fp;

for(i=0;i

printf(\ } do

n=rand(); while(n<=3)

printf(\ fun(a,n);

fp=fopen(\ if(fp==NULL)

{ printf(\ exit(0); }

for(i=0;i

{ printf(\

第 6 页 共 16 页

四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日)

fprintf(fp,\ }

printf(\ }

fclose(fp); }

二、编写程序test4-2.c(60分)

假定输入的字符串只包含字母和*号。请编写函数fun(),它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出字符串的长度,形参h给出字符串中前导*号的个数,形参e给出字符串中尾部*号的个数。在编写函数时,不得使用C语言提供的字符串函数。

例如,若字符串中的内容****A*BC*DEF*G*******,删除后,字符串中的内容则应该是A* BC*DEF*G。

第 7 页 共 16 页

四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日)

(第五套)(60分钟)

一、程序调试题(40分)

给定程序test5-1.c,函数fun的功能是求两个形参的乘积和商,其结果存入形参指针所指的地址中,函数 io实现数据的输入和输出。假设输入文件test5-1.in有数据61.82和12.65,则两个数的乘积和商分别为782.02300和4.886957 。main函数调用函数 io 。

请改正程序中的错误,使程序能得出正确结果。、 注意:不得增行或删行,也不得更改程序结构。 源程序如下: # include

void fun(double a,b,*x,*y) { x=a*b; y=a/b; } io() { int i;

double a,b,c,d; file *rf,*wf;

rf=fopen(\ wf=fopen(\ fscanf(rf,\ fun(a,b,c,d);

fprintf(\ printf(\; fclose(rf); fclose(wf); }

void main() {

double a,b,c,d; clrscr(); io(); }

二、编写程序test5-2.c(60分)

用函数调用方式编写程序。要求实现:在主函数中输入一个3×4的整型矩阵,调用函数covert对其进行转置并将结果存放在另一个二维数组中,最后在主函数中输出结果。

答案

29-1套 参考答案:

一、程序调试题(文件名为 test1-1.c)( 40 分 )

# include # include # define M 5 # define N 20

void fun(char (*ss)[N]) { int i,j,k=0,n,m,len;

第 8 页 共 16 页

四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日)

for(i=0;i

if(i=0) n=len; /* 改为:i==0 */ if(lenn */ { n=len; k=i; } }

for(i=0;i

{ m=n;len=strlen(ss); /* 改为:ss[i] */ for(j=len;j>=0;j--) ss[i][m--]=ss[i][j];

for(j=0;j

void main() { char ss[M][N]; int i;

FILE *fp;

fp=fopen(\ if(fp==NULL)

{ printf(\ exit(0); }

for(i=0;i

fscanf(\); /* 改为:fp, \ */ printf(\ for(i=0;i

printf(\ printf(\ fun(ss);

for(i=0;i

printf(\ fclose(fp); }

评分标准:每改对一处得8分

二、编程题(程序文件取名为 test1-2.c)(60分) 评分标准:

1. main函数30分 2. fun函数30分 1)字符串和字符输入正确 10分 1)删除字符方法正确 2)函数调用参数传递正确 10分 2)指针使用正确 3)输出结果正确 10分 3)s[i]=0 参考程序:

# include

第 9 页 共 16 页

分分分10 10 10

四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日)

# define N 100

int fun(char s[],int c) {

char *p=s; int i;

while(*p)

{ if(*p!=c) s[i++]=*p; p++; }

s[i]=0; }

main() {

char str[N],ch;

printf(\ gets(str);

printf(\ scanf(\,&ch); fun(str,ch);

printf(\}

29-2套 参考答案:

一、程序调试题(文件名为 test2-1.c)( 40 分 )

# include # include float fun(float num) { int s;

float n,t,pi;

t=1;pi=0;n=1;s=1;

while ( t>=num ) /* 改为:fabs(t)>=num */ { pi=pi+t; n=n+2; s=-s; t=s%n; /* 改为:s/n */ }

pi=pi*4; return; /* 改为:return pi */ }

main() {

float n1,n2; FILE *fp;

fp=fopen(\r\ /* 改为:w */ if(fp==NULL)

{ printf(\ exit(0); }

第 10 页 共 16 页


四川省二级c语言29次机试试题及答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国美术史学习笔记整理(完整版)

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

马上注册会员

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