三.程序阅读题答案
三、程序阅读题(每题4分,共16分)
1. 输入elephant后,下列程序的输出结果是_______。
# include
void main()
{ int i=0, k, ch;
static int num[5];
char alpha[ ]={'a', 'e', 'i', 'o', 'u'}, in[80];
gets(in);
while(in[i]){
for(k=0; k
if(in[i] == alpha[k]) {
num[k]++;
break;
}
i++;
}
for(k=0; k
if(num[k]) printf(
printf(
}
2. 下列程序的输出结果是_______。
#include
void f(int n)
{ if(n
putchar('-');
n = -n;
}
if(n/10) f(n/10);
putchar(n%10+'0');
}
main()
{
f(-610);
}
3. 输入0 10 2 7后,下列程序的输出结果是_______。
#include
void p(int v[])
{ int i, k, temp;
for (i=1; i
for(k=i-1; k>=0 && v[k]
temp=v[k];
v[k]=v[k+1];
v[k+1]=temp;
}
}
main()
{ int k, a[4];
for(k=0; k
scanf(
p(a);
for(k=0; k
printf(
}
4. 下列程序编译后生成 t.exe, 运行 t input output zoo oil 的输出结果是_______。
void main(int argc, char * argv[ ])
{
int k;
char *p=argv[1];
for(k=2; k
if(strcmp(argv[k], p)>0) p=argv[k];
printf(
}
四、程序填空题(每空2分,共20分)
1. 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。要求将6~100之
间的偶数都表示成两个素数之和。素数指只能被1和自身整除的正整数,1不是素数,2是素数。
#include
int prime(int n) /* 判断n是否为素数 */
{ int k;
for (k=2; k
if (n%k==0) return 0;
return ;
}
main()
{ int i, k;
for (i=6 ; i
for (k=2; k
) {
printf(
break;
}
}
2. 下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:
After swap 5, 3。
void main()
{
int a, b;
a = 3, b = 5;
) ;
printf(
}
{ int t;
;
;
;
}
3. 函数del将头指针为head的链表中所有的节点全部删除,并释放相应的内存空间。
struct node{
int k;
struct node *next;
};
struct node *del(struct node *head)
{ struct node *p, *q ;
p=head;
;
free(p);
}
return NULL;
}
五、编程题(第1题4分,第2题10分,共14分)
1. 对任意输入的 x,用下式计算并打印出 y 的值。
ex x>10
y= 0 x=10
3x+5 x
2. 输出文本文件 input.txt 中的非空格字符。