一、单选题( 20分)。
二、填空题( 24分)。
给定程序的功能是:先将字符数组s中的字符按逆序存放到字符数组t中,然后再把s中的字符按正序连接到t串的后面。
例如:当s中的字符串为:ABCDE 时
则t中的字符串为:EDCBAABCDE
将适当的关键字或符号填入“__数值__”位置,并将“__数值__”删除,使程序得到正确结果。不许增减程序行,且不得修改其它部分。
#include <>
#include <>
#include <>
void fun (char *s, char *t)
{
int d,i;
d=__1 strlen(s);
for (i=0; i<d; i++)
t[i] = s[d-i-1];
for (i=0; i<d; i++)
t[__2_d+i_] = s[i];
t[2*d] = '\0';
}
main()
{ char s[100], t[100];
printf("\nPlease enter string s:");
scanf("%s", __3 s__);
fun(s, t);
printf("The result is: %s\n", t);
}
三、改错题( 21分)。
给定程序中函数 fun 的功能是:将在字符串s中下标为偶数位置上的字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符出现的逆序排列。(注意0为偶数)例如:当s中的字符串为:"ABCDEF"时,则t中的字符串应为:"AA"。
请改正/****found****/下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。
#include <>
#include <>
#include <>
void fun (char *s, char *t)
{ int i, j, sl;
/************found************/
sl = strlen(t);
if(sl%2)sl--; else sl-=2;
/************found************/
for (i=sl, j=0; i>=0; i--)
{ t[2*j] = s[i];
t[2*j +1] = s[i];
j++;
}
/************found************/
t[2*sl] = '\0';
}
main()
{char s[100], t[100];
printf("\nPlease enter string s:"); scanf("%s", s);
fun(s, t);
printf("The result is: %s\n", t);
}
四、编程题( 35分)。
编写一个函数,将其中一个字符串中的字符复制到另一个字符串中。
不允许改动预编译命令行及主程序,且必须运行程序。
#include "data\"
#include<>
#include<>
void fac(
c语言期末考试题 来自淘豆网m.daumloan.com转载请标明出处.