第一题:填空题 请补充fun函数的功能是在字符串的最前端加入n个*号,形成新串,并且覆盖。
注意:字符串长度最长允许为79。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所写的若干表达式或语句。
#include
#include
#include
void fun(char s[], int n)
{
char a[80], *p;
int i;
p = ___1___;
for (i=0; i a[i] = '*'; do { a[i] = ___2___; i++; } while (___3___); a[i] = 0; strcpy(s, a); } 考试大(www.Examda。com) main() { int n; char s[80]; printf("\nEnter a string:"); gets(s); printf("\nThe string\"%s\"\n", s); printf("\nEnter n(number of*):"); scanf("%d", &n); fun(s, n); printf("\nThe string after insert:\"%s\"\n", s); } 参考答案: 填空题:第1处填空:s 第2处填空:*p++ 第3处填空:*(p) 或*p 或者 *p!=0 第二题:改错题 下列给定程序中函数fun的功能是:先将在字符串中s中的字符按逆顺序存放到t串中,然后把s中的字符按正序连接到t串的后面。例如:s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE. 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include void fun(char *s, char *t) { int s1, i; s1 = strlen(s); /********found********/ for (i=0; i t[i] = s[s1-i]; for (i=0; i t[s1+i] = s[i]; t[2*s1] = '\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); } 参考答案: 改错题:第1处:t[i]=s[s1-i];应改为t[i]=s[s1-i-1];或 t[i]=s[s1-1-i];
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |