教育部教育管理信息中心
void main()
{
int i,j,a[5],b[5],y=0;
long x,k=10000;
printf(\请输入一个五位数:\
scanf(\
for(i=0;i<5;i++){
a[i]=x/k;
x=x-a[i]*k;
if(x>10)
k=k/10;
else
a[++i]=x;
}
for(j=9;j>=0;j--){
for(i=0;i<5;i++)
if(j==a[i])
11
教育部教育管理信息中心
{
b[y++]=j;
}}
for(i=0;i<5;i++){
printf(\
getch();
}
2、输入年、月、日,输出该日期是该年的第几天。(25分) #include\void main() {
int i,tian,x,y,z,yue=0,a[13]; a[0]=0;
a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31; a[4]=a[6]=a[9]=a[11]=30; printf(\请输入年,月,日:\ scanf(\ if(x@0==0||x%4==0&&x0!=0) else
a[2]=28; yue=yue+a[i]; for(i=0;i printf(\年%d月%d日是该年的第%d天!\ getch(); } 3、利用数组实现数据的存储。将学生的学号和成绩存储在数组中,利用循环计算出数组中存储学生的平均成绩,找出高于平均分的学生信息并输出。(20分) 4、输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。(20分) a[2]=29; 12 教育部教育管理信息中心 5、用指针实现:任意输入20个数,将它们按照从大到小的顺序输出。(20分) 附加题 6、编写一个简单的通讯录管理系统。通讯录包括:姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找,通讯录保存到一个文件中。(50分) (提示:可能用到以下库函数: malloc(),功能:分配size字节的存储区, 用法:(类型 *)malloc(size *sizeof(你要定义的类型));包含于 feof(),功能:检测文件是否结束 用法: int feof(fp) FILE *fp;包含于 第四届全国ITAT教育工程就业技能大赛复赛试题C语言程序设计(B卷) 1、编程完成数据加密。数据是五位的整数,加密规则为:每位数字都加上6,然后用和除以8的余数代替该数字,再将第一位和第五位交换,第二位和第四位交换。(15分) #include\void main() { int i,t,a[5]; long n,k=10000; printf(\请输入一个五位数:\ scanf(\ for(i=0;i<5;i++) { } for(i=0;i<5;i++) printf(\ printf(\ for(i=0;i<5;i++) a[i]=(a[i]+6)%8; t=a[0]; a[0]=a[4]; a[4]=t; t=a[1]; a[1]=a[3]; a[3]=t; for(i=0;i<5;i++) } 13 printf(\ getch(); a[i]=n/k; n=n-a[i]*k; if(n>10) k=k/10; a[++i]=n; else 教育部教育管理信息中心 2、请猜数字,该数字由系统随即产生。要求:用户最多有10次猜测的机会,如果在10次内猜对数字,则程序显示祝贺信息,如果连续10次都没有猜中数字,则游戏自动退出。(25分) (提示:可能用到以下库函数: randomize();用系统的时间作为随机种子;包含于stdlib.h库中 random(100):随机产生0-99之间的一个随机数;包含于stdlib.h库中 toupper():将字符c转换为大写英文字母,包含于ctype.h库中) 3、有一个3×4的矩阵,要求编写程序找出每一行中最大值并与第一列交换。(20分) #include\void main() { int i,j,k,x,y,t,max,a[3][4]={39,25,52,44,31,43,15,23,66,44,22,11}; for(i=0;i<3;i++){ } } 4、输入五个字符串,要求按照字母顺序(即按ASCII码从小到大的顺序)输出这五个字符串。(20分) 5、用指针实现:把一个整数插入到由小到大排列的数列中,插入后仍然保持由小到大的顺序。(20分) 附加题 6、编写一个简单的通讯录管理系统。通讯录包括:姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找等,通讯录保存到一个文件中。(50分) (提示:可能用到以下库函数: malloc(),功能:分配size字节的存储区, 用法:(类型 *)malloc(size *sizeof(你要定义的类型));包含于 feof(),功能:检测文件是否结束 用法: int feof(fp) FILE *fp;包含于 a[x][y]=a[i][0]; t=a[i][0]; a[i][0]=max; max=t; for(k=0;k<4;k++) printf(\printf(\ if(max<=a[i][j]){ max=a[i][j]; x=i; y=j;} 第五届全国ITAT教育工程就业技能大赛复赛试题C语言程序设计(A卷) 14 教育部教育管理信息中心 1、 编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要 求以如下格式打印出分水步骤。(20分) a12 b8 c5 12 0 0 * * * ( “*”表示当前状态下每个容器的盛水量) ...... 0 6 6 2、 编程实现:有二维数组a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},将数组a的每 一行元素均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),按行输出新数组。(20分) #include\void main() { } 3、 编程:设x取值为区间[1,20]的整数,求函数f(x)=x-sin(x)- cos(x)的最大值,要求使用自定 义函数实现f(x)功能。(20分) 4、 编写函数fun,通过指针实现将一个字符串反向。要求主函数输入字符串,通过调用函数fun实 现输入字符串反向。(20分) 5、 已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,列表输出 学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(20分) 姓名 数学 英语 计算机 Mary 93 100 88 Jone 82 90 90 Peter 91 76 71 Rose 100 80 92 6、 附加题:编程实现输入一串英文,统计其中各单词出现的个数(不区分大小写字母),以“000” 作为字符串输入结束标志,例如: Twinkle twinkle little star 000(回车) twinkle little star 2 1 1 (50分) int i,j; float a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},b[3][3]; for(i=0;i<3;i++) for(j=0;j<3;j++) { for(j=0;j<3;j++) { printf(\printf(\ b[i][j]=a[i][j]/a[i][i]; for(i=0;i<3;i++) 第五届全国ITAT教育工程就业技能大赛复赛试题C语言程序设计(B卷) 15