程序设计竟赛试题附答案(复赛)
注意事项:
1. 请先用DOS的EDIT文本编辑器在考盘上建一个文件,文件名为: TEST.TXT
2. 上述TEST.TXT文件的内容应有2行:
第一行是:你的学号及姓名的汉语拼音码。如:01123456 zhangsan
第二行是:考场号-座机号-考卷类。如:D317-10-B 表示D317考场,10号机,B卷。
座机号末位是单数,考A卷; 座机号末位是双数,考B卷。
3. 源程序必须存入考盘。文件名为:卷类-题号.C。如:B-3.C 是B卷第3题的源程序。
4. 必须严格按题目要求的输出格式来输出。
5. 阅卷时以程序的运行结果为准。
A 卷
1.编一个程序,输入若干个(不大于8)字符串,用字符串“end”作为结束输入标志。从中(含“end”)找出最长的一个字符串,并输出该字符串。(30分)
2.编程序,输入一个长度为20的整型数组,把数组中重复出现的元素删去(如出现三个0,则删去后两个),输出删节後的新数组。(30分)
3.编写程序,将输入的一个base(取值2到16)进制正整数转换为十进制数输出。整数base和要转换的以字符串str表示的base进制数由键盘输入。如,输入16 2A则表示输入16进制数2A,程序将输出十进制整数42;输入3 211则输出22。(40分)
B 卷
1.编一个程序,输入一个字符串,请统计其中各元音字母(即A、E、I、O、U)的个数和辅音字母的总个数。注意:不分大小写。(30分)
2.编程序,求并输出所有满足如下条件的三位正整数:它是某整数的平方,它的三位数码有两位是相同的。如100是10的平方,它有两个0,225是15的平方,它有两个2。 (30分)
3.编程序,输入正整数n(n<8),输出全部n位的三进制数。如输入n为2则输出:
程序设计复赛(参考答案)
/* A-1 */
#include <string.h>
main()
{ char *str[80],state[80][30];
int len[80],i,j,max,im;
for(i=0;i<80;i++)
{ str[i]=state[i];
gets(str[i]);
if(strcmp(str[i],"end")==0) break;
}
for(j=0;j<i;j++)
len[j]=strlen(str[j]);
im=0;max=len[0];
for(j=0;j<i;j++)
if(len[j]>max) im=j;
puts(str[im]);
}
/* A-1 */
#include <string.h>
main()
{ char str[80][30];
int i,max=0,im;
for(i=0;i<80;i++)
{ gets(str[i]);
if(strlen(str[i])>max)
{ max= strlen(str[i]);
im=i;
}
if(strcmp(str[i],"end")==0) break;
}
puts(str[im]);
}
/* A-2 */
下载更新
推荐下载