四川省计算机二级(C语言)30,29次机试试题及其参考答案

2026/4/29 9:05:15

四川省第三十次等级考试二级C与C++语言 机试试题 参考答案

(2009年4月19日)

30-1套 参考答案:

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

# include # define N 4

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

int i,t;

for(i=0;i

a[i][i]=a[i][N-i]; /* 改为:n-i-1 */ a[i][N-i]=t; /* 改为:n-i-1 */ } }

void main() {

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

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

{ printf(\ exit(0); }

for(i=0;i

fscanf(\); /* 改为:fp,”%d”,&a[i][j] */ fclose(fp); fun( ); /* 改为:fun(a) */ printf(\ for(i=0;i

printf(\&a[i][j]); /* 改为:a[i][j] */ printf(\ } }

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

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

1.fun函数编写40分。其中: 2. main函数20分。其中: 1)函数定义、形参书写正确(5分) 1)正确定义各种变量,能正确按行进行输出(10分) 2)数组前两项赋值正确(5分) 2)能正确调用fun函数(10分) 3)for循环正确(10分) 4)奇数下标项计算正确(10分) 5)偶数下标项计算正确(10分) 参考程序:

# include # include

第 1 页 共 15 页

四川省第三十次等级考试二级C与C++语言 机试试题 参考答案

(2009年4月19日)

# define N 20 void fun(int *a) {

int i; a[0]=1; a[1]=2;

for(i=2;i

a[i]=(int)abs(a[i-1]-a[i-2]); else

a[i]=a[i-1]+a[i-2]; }

void main() {

int a[N]; fun(a);

printf(\ for(i=0;i

if((i+1)%4==0) printf(\ } }

30-2套 参考答案:

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

# include \void main() {

int i;

FILE *fp; /*增行: void itoa(int); */ fp=fopen(\ if(fp==NULL)

{ printf(\ exit(0); }

fscanf(fp,\ itoa(i); fclose(); /* 改为:fclose(fp) */ }

void itoa(int k) { int n=0;

char ch1,ch2,ch3,ch4,ch5; ch5=k000; /* 改为:ch5=k/10000 */ if(ch5>0) n++; ch5+='0';

ch4=(k000)/1000;

第 2 页 共 15 页

四川省第三十次等级考试二级C与C++语言 机试试题 参考答案

(2009年4月19日)

if(ch4>0) n++; ch4+='0';

ch3=(k00)/100; if(ch3>0) n++; ch3+='0';

ch2=(k0)/10; if(ch2>0) n++; ch2+='0';

ch1=k/10; /* 改为:k */ n++; ch1+='0'; switch ( k ) /* 改为:n */ { case 5: printf(\ case 4: printf(\ case 3: printf(\ case 2: printf(\ case 1: printf(\ } }

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

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

1.正确书写程序格式,正确定义各种变量(5分) 2.循环参数正确(20分)

3.判断字符是否相同的条件正确(5分) 4.正确删除字符(20分)

5.字符串输入输出正确(10分) 参考程序:

# include # define N 80 void main() {

char str1[N],str2[N]; int i,j,k;

int len1,len2;

printf(\ gets(str1);

len1=strlen(str1);

printf(\ gets(str2);

len2=strlen(str2); i=0;

while(str2[i]!='\\0') {

for(j=0;j

第 3 页 共 15 页

四川省第三十次等级考试二级C与C++语言 机试试题 参考答案

(2009年4月19日)

{

for(k=i;k

if(j==len1) i++; }

printf(\ printf(\ puts(str1); printf(\ puts(str2); }

30-3套 参考答案:

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

# include \void rev(void); FILE *f1,*f2;

void main(int argc,char *argv[]) {

char ch; if(argc>3) { printf(\ exit(0); }

if((f1=fopen(*argv[1],\ { printf(\ exit(0); }

if((fp=fopen(argv[2],\ { printf(\ exit(0); }

while(!feof(f2)) { void rev(); fputc('\\n',f1); }

fclose(f1); fclose(f2); }

void rev(void) {

char c;

/* 增加:; */

/* 改为:< */

/* 改为:argv[1] */

/* 改为:rev( ) */

第 4 页 共 15 页


四川省计算机二级(C语言)30,29次机试试题及其参考答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 四川省计算机二级(C语言)30,29次机试试题及其参考答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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