if((i+1)%4==0) printf(\"\\n\"); } }30-2套 参:
一、程序调试题(文件名为 test2-1.c)( 40 分 )
# include \"stdio.h\" void main() {
int i;
FILE *fp; /*增行: void itoa(int); fp=fopen(\"test2-1.dat\ if(fp==NULL)
{ printf(\"test2-1.dat can not open.\\n\"); exit(0); }
fscanf(fp,\"%d\ itoa(i); fclose(); /* 改为:fclose(fp) */ }
void itoa(int k) { int n=0;
char ch1,ch2,ch3,ch4,ch5;
第 2 页 共 7 页
*/ 四川省第二十九次等级考试二级C与C++语言 机试试题 参
(2008年10月19日)
ch5=k%10000; /* 改为:ch5=k/10000 */ if(ch5>0) n++; ch5+='0';
ch4=(k%10000)/1000; if(ch4>0) n++; ch4+='0';
ch3=(k%1000)/100; if(ch3>0) n++; ch3+='0';
ch2=(k%100)/10; if(ch2>0) n++; ch2+='0';
ch1=k%10/10; /* 改为:k%10 n++; ch1+='0'; switch ( k ) /* 改为:n */ { case 5: printf(\"%c\ case 4: printf(\"%c\ case 3: printf(\"%c\ case 2: printf(\"%c\ case 1: printf(\"%c\ } }
评分标准:每改对一处得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(\"Please input str1:\"); gets(str1);
len1=strlen(str1);
printf(\"Please input str2:\"); gets(str2);
len2=strlen(str2); i=0;
第 3 页 共 7 页
*/ 四川省第二十九次等级考试二级C与C++语言 机试试题 参
(2008年10月19日)
while(str2[i]!='\\0') {
for(j=0;jfor(k=i;kif(j==len1) i++; }printf(\"After processing:\\n\"); printf(\"str1: \"); puts(str1); printf(\"str2: \"); puts(str2); }
30-3套 参:
一、程序调试题(文件名为 test3-1.c)( 40 分 )
# include \"stdio.h\" void rev(void); FILE *f1,*f2;
void main(int argc,char *argv[]) {
char ch; if(argc>3) { printf(\"paramelers missing!\\n\"); exit(0); }
if((f1=fopen(*argv[1],\"w\"))==NULL) { printf(\"Can not open file1!\\n\"); exit(0); }
if((fp=fopen(argv[2],\"r\"))==NULL) { printf(\"Can not open file2!\\n\"); exit(0); }
while(!feof(f2)) { void rev(); fputc('\\n',f1); }
fclose(f1); fclose(f2);
/* 增加:; */
/* 改为:< */
/* 改为:argv[1] */
/* 改为:rev( ) */
第 4 页 共 7 页
四川省第二十九次等级考试二级C与C++语言 机试试题 参
(2008年10月19日)
}
void rev(void) {
char c;
if((!feof(f2)) || ((c=fgetc(f2))!='\\n')) /* 改为:&& */ { rev();
fputc(c,f1); } }
评分标准:每改对一处得8分
二、编程题(程序文件取名为 test3-2.c)(60分) 评分标准:
1.num函数编写40分。其中:
1) 函数定义、形参书写正确 10分 2) 取各位数正确 10分 3) 各位数判断正确 10分 4) return正确 10分 2.main函数20分。其中:
1) 正确定义各种变量,输入输出正确 10分 2) 能正确调用num函数 10分 参考程序:
# include # define MAX 5 void main() {int i,a[MAX],b[MAX],cnt=0; int num(int a[],int b[]); for(i=0;iprintf(\"cnt=%d\\n\ for(i=0;iprintf(\"%d:%d\\n\}int num(int a[],int b[]) {
int bb[4],cnt=0,i,j,k,flag; for(i=0;ibb[0]=a[i]/1000;bb[1]=a[i]%1000/100; bb[2]=a[i]%100/10; bb[3]=a[i]%10; for(j=0;j<4;j++) { if(bb[j]%2==0) flag=1;
第 5 页 共 7 页
四川省第二十九次等级考试二级C与C++语言 机试试题 参
(2008年10月19日)
else
{ flag=0; break; } }
if(flag==1)
b[cnt++]=a[i]; }
return cnt; }
30-4套 参:
一、程序调试题(文件名为 test4-1.c)( 40 分 )
# include void main() {FILE *fp;
int num=0,digit=0; char ch;
if((fp=fopen(\"test4-1.dat\w\"))==NULL) /* 改为: r */ { printf(\"Cannot open the file!\\n\"); exit(0); }
while(feof(fp)) /* 改为: !feof(fp) */ {
fgetc(fp); /* 改为: ch=fgetc(fp) */ if(ch<='z'&&ch>='a'|| ch<='Z'&&ch>='A') num++;
if(ch<=9&&ch>=0) /* 改为:'9' '0' */ digit++; }
fclose(); /* 改为:fclose(fp) */ printf(\"The numbersof letters: %d\\nThe numbers of numbers:%d\\n\}
评分标准:每改对一处得8分
二、编程题(程序文件取名为 test4-2.c)(60分) 评分标准:
1.sort函数编写40分。其中: 1) 函数定义、形参书写正确 10分 2) strcmp使用正确 10分 3) 排序正确 20分 2.main函数20分。其中:
1) 正确定义各种变量,输入输出正确 10分 2) 能正确调用sort函数 10分
参考程序:
# include 第 6 页 共 7 页
四川省第二十九次等级考试二级C与C++语言 机试试题 参
(2008年10月19日)
# include # define N 5 void main() {void sort(char *name[]);
char *name[]={\"China\ int i;
sort(name);
for(i=0;iprintf(\"%s\\n\}void sort(char *name[]) {
char *temp; int i,j,k;
for(i=0;i<=N-1;i++) { k=i;
for(j=i+1;jif(strcmp(name[k],name[j])>0) k=j; if(k!=i){ temp=name[i]; name[i]=name[k]; name[k]=temp; } } }
第 7 页 共 7 页