2014学院c语言程序设计大赛1(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉大学珞珈学院第二届程序设计大赛
C语言
学生姓名:所在年级及专业:
学号(或准考证号):分数:
一程序填空题(每空3分,共60分)
1. 函数f的功能是返回整数的逆序数,如整数12345的逆序数为54321。
int f(int n)
{ _____(1)_____;
while(_____(2)_____) { s=s*10+n%10; n=n/10; }
return s;}
2. 下面程序在数组a中查找与x值相同的元素所在位置。
#include
void main( )
{ int a[10], i, x ;
printf( “输入10个整数:”);
for(i=1; i<=10; i++) scanf(“%d”, _____(3)_____);
printf(“输入要找的数x:”);
scanf(“%d”, _____(4)_____);
____(5)_____;
while(_____(6)_____) i++;
if(_____(7)_____) printf(“与x值相同的元素位置是:%d\n”,i);
else printf(“找不到与x值相同的元素!\n”);
3. 以下函数的功能是将字符串sa中的内容逆置过来,即:若原串为”abcde”,逆置后应为”edcba”。
#include
void strinvert(char *sa)
{
int i=0,j,t;
j= (8) ;
while( (9) )
{ t=sa[i]; sa[i]=sa[j]; sa[j]=t;
i++;
(10);
}
}
4. 已知带头结点的单链表L,其节点中的元素以递减方式排列。函数DelList的功能是在L中查找所有大于minK且小于maxK的结点,若找到,则删除结点。若L中不存在满足条件
的结点,则返回-1,否则返回删除的节点数。
链表结点类型定义如下:
typedef struct Node { int data; struct Node *next; }NODE, *LinkList;
int DelList(LinkList L, int minK, int maxK)
{
___(11)__ _ *q=L, *p= ___(12)__ _;
int Tag=0;
while(p)
if(p->data>=maxK) { q=p; ___(13)__ _; }
else if( ___(14)__ _)
{ q->next= ___(15)__ _; free(p);
p= ___(16)__ _; ___(17)__ _; }
else ___(18)__ _;
if( ___(19)__ _) return -1;
___(20)__ _;
}
二、编程题(40分)
1、输出”魔方阵”
所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等.例如,三阶魔方阵为8 1 6
3 5 7
4 9 2
要求输出1—n 的平方的自然数构成的魔方阵(12分)
2、猜年龄
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”请你推算一下,他当时到底有多年轻。(12分)
3、求1~9组成三个3位的平方数。
要求:将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不允许有重复数字,也不许同其它组的三个数字重复,要求每组中的三位数都组成一个平方数。(16分)