二级(C与C++)机试试题(24次)

  • 格式:doc
  • 大小:33.00 KB
  • 文档页数:4

四川省普通高等学校计算机应用知识和能力
第二十四次等级考试
2006年4月16日
二级(C与C++语言)上机考试试卷(第一套)
(60分钟)
一、程序调试题(文件名为test1-1.c )(40分)
磁盘上有一个名为test1-1.c的C程序文件,其中函数spacenum的功能是统计符串中空格的个数,并将空格的个数存在形参n所指向的存储单元中。

调试程序使之能输出正确的结果。

注意:不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
void spacenum(char *a,int *n)
{
int i;
n=0;
for(i=0;i<n;i++)
if(*(a+i)=' ')
n++;
}
main( )
{
char str[100];
int count;
puts(str);
spacenum(str,count);
printf("space=%d\n",count);
}
二、编写程序(程序文件名取为test1-2.c )(60分)
请用函数调用方式编写程序,要求:
1、写一found函数,功能是:找出1至99之间的全部同构数,存入数组a中,并返回
同构数的个数n。

(若一个数出现在自己的平方数的右边就称为同构数,例如:5的平方数是25,且5出现在25的右边,5是同构数;又如25出现在625的右边,也是同构数。


2、在main函数中调用found函数,将满足条件的所有同构数输出到屏幕和文件
test1-2.dat中,一行输出5个,将同构数的个数出输出到屏幕和文件test1-2.dat中。

四川省普通高等学校计算机应用知识和能力
第二十四次等级考试
2006年4月16日
二级(C与C++语言)上机考试试卷(第二套)
(60分钟)
一、程序调试题(文件名为test2-1.c )(40分)
磁盘上有一个名为test2-1.c的C程序文件,其功能是:统计一个无符号整数各位数值为零的个数,并把该无符号整数各化妆师上最大的数值作为函数值返回。

例如:若输入无符号整数30800,则数字值为零的个数为3,各位上数值最大的是8。

请改正程序中的错误,使其能输出正确结果。

注意:不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
int fun(unsigned n, int zero)
{
int count=0, max=0,t;
do
{ t=n/10;
if(t=0)
count++;
if(max<t)
max=t ;
n=n%10;
} while(n);
zero=count;
return max ;
}
main()
{ unsigned n;
int zero, max ;
printf("\nInput n:");
scanf("%d", &n);
max=fun(n,&zero);
printf("\nThe result: max=%d , zero=%d\n",max,zero);
}
二、编写程序(程序文件名取为test2-2.c )(60分)
磁盘上有一数据文件test2-2.dat,文件中的数据依次由:准考证号、笔试成绩、上机成绩三项组成,中间由空格分开。

编程统计获得优秀(笔试成绩和上机成绩均大于等于90分的考生为优秀)的考生人数,以及优秀率(即优秀考生在总人数中占的百分比),并将获得优秀的考生信息(准考证号、笔试成绩、上机成绩),考生总人数,获得优秀的考生人数和优秀率输出到屏幕上同时写入到文件test2-2.out中。

四川省普通高等学校计算机应用知识和能力
第二十四次等级考试
2006年4月16日
二级(C与C++语言)上机考试试卷(第三套)
(60分钟)
一、程序调试题(文件名为test3-1.c )(40分)
磁盘上有一个名为test3-1.c的C程序文件,其功能是:从键盘输入一个字符串,将字符串中的所有字母改写成该字母在字母表的下一个字母,字母z改写成字母a。

要求大写字
母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。

最后将其结果输出到屏幕上。

请改正程序中的错误,使其能输出正确结果。

注意:不得增行或删行,也不得更改程序的结构
#include <stdio.h>
#define N 81
void fun1(char s)
{
while(*s)
if(*s='z'||*s='Z')
{*s-=26;s++;}
else if(*s>='a'&&*s<='y'&&*s>='A'&&*s<='Y')
{*s+=1;s++;}
else (*s)++;
}
main()
{
char a[N];
printf("Enter a string:");
gets(a);
puts(a);
fun1(a);
puts(a);
}
二、编写程序(程序文件名取为test3-2.c )(60分)
磁盘上有一数据文件test3-2.dat,编写程序实现:在主函数中将test3-2.dat中的数据输入到一个3行4列的整型数组a中,调用函数covert 对a进行转置运算,并将结果存放在另一个二维数组b中,最后在主函数中输出结果。

四川省普通高等学校计算机应用知识和能力
第二十四次等级考试
2006年4月16日
二级(C与C++语言)上机考试试卷(第四套)
(60分钟)
一、程序调试题(文件名为test4-1.c )(40分)
磁盘上有一个名为test4-1.c的C程序文件,其功能是:选出所有两位数中能被3整除且至少有一位数字是5的两位数,输出所有这样的数及其总个数。

请改正程序中的错误,使其能输出正确结果。

注意:不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
sub(k)
{
int a1,a2;
a2=k%10;
a1=k-a2*10;
if((k%3==0&&a2==5)&&(k%3==0&&a1==5))
{ printf("%4d",k);
return 1;
}
else return -1;
}
main()
{
int n=0,k,m;
for(k=10;k<=99;k++)
{ m=sub(k);
if(m!=-1) n=m;
}
printf(\nn=%4d,n);
}
二、编写程序(程序文件名取为test4-2.c )(60分)
已知磁盘上有的test4-2.txt文件中含有一个长度不超过80个字符的字符串,用函数调用方式编写程序。

要求实现:
1、在被调函数exchange中,将该字符串中偶数位置(从左起第1个字符为0位,视为偶数位置)上的小写字母转换成大写字母,奇数位置上的大写字母转换成小写字母。

不是英文字母的字符则不转换。

例如:字符串student 123 HELLO!转换后为StUdEnT 123 HeLlO!
2、在主函数中,完成字符串的读入,同时将转换后的字符串输出到屏幕。