第1题:
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
[函数2.1说明]
函数strcpy的功能是将字符串str2的内容复制到字符申str1。
[函数2.1]
(1) strcpy (char *slr1, const char *str2)
{ char * temp;
while( * str2!='\0') *cp++ =(2);
(3)='\0';
return str1;
}
[函数2.2说明]
函数int strcmp(const char *str1, const char *str2)的功能是按字典序比较两个字符串str1和str2的大小。当str1<str2时返回-1,当str1>str2时返回1,否则返回0。
[函数2.2]
int strcmp(const char *str1, const char *str2)
{ while( *str1= =* str2) {
if(* s1= =(4)) return 0;
s1++;
(5);
}
if( *str1<*str2) return -1;
return 1;
}
第2题:
函数STR(1234.5454,7,3)的值为【 】。
第3题:
请补充函数proc,该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成一个无符号长整数,并且逆序输出。结果由函数返回。例如,输入:1234567,结果输出:7654321。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的横线上填人所编写的若干表达式或语句。 试题程序: include<stdlib.h> include<conio.h> include stdio.h> include<string.h> unsigned long proc(char*str) { unsigned long t=0: int k: int i=0; i=str|en(str); for(【1】 ;i>=0;i--) { k= 【2】 ; t= 【3】 ; } return t; } void main { char str[8]; system("CLS"); printf("Enter a string made up of0to 9 digital character:\n"); gets(str); printf("The string,is:%s\n",str); if(strlen(str)>8) printf("The string is too tong!"); else printf("The result:%1u\n", proc(str)); }
【1】--i【2】str[i]-0 【3】t*10+k
【解析】由函数proc可知,变量i首先被赋值为字符串str的长度,for循环中第一个条件为字符串str最后一个字符的下标,因此【1】填“-i”;要将字符串转化为长整型,需要将每一个字符转化为数字,因此【2】填“str[i]-0”;然后将各个数字转化为一个无符号长整数,因此【3】填“t*10+k”。
第4题:
阅读以下说明和 C 函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。 【说明 1】 函数 f(double eps) 的功能是:利用公式计算并返回 π 的近似值。
【说明 2】 函数fun(char *str)的功能是:自左至右顺序取出非空字符串 str中的数字字符,形成一个十进制整数(最多 8 位)。例如,若 str中的字符串为 "iyt?67kp f3g8d5.j4ia2e3p12", 则函数返回值为 67385423。
第5题:
数组str全由大小写字母字符组成。请补充函数fun(),该函数的功能是:把str中的字母转换成紧接着的下一个字母,如果原来的字母为‘z’或‘Z’,则相应地转换成‘a’或‘A’,结果仍保存在原数组中。
例如,输入“StudentZz”,则输出“TuvefouAa”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
define N 80
void fun(char s[])
{
int i;
for(i=0;【 】;i++)
{
if(s[i]=='z'||s[i]='Z')
s[i]-=【 】;
else
s[i]+=【 】;
}
}
main()
{
char str[N];
clrscr();
printf("\n Input a string:\n");
gets(str);
printf("\n*** original string***\n");
puts(str);
fun(str);
printf("\n*** new string***\n");
puts(str);
}
第6题:
函数f_str(char *str,char del)的功能是;将非申字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。例如,若str的值为“66981636666257”,del的值为“6”,调用此函数后,将输出3个子字符串,分别为“981”、“3”和“257”。请将函数f_str中(6)~(8)空缺处的内容填写完整。
[函数]
void f_str(char *str,char del)
{ int i,j,len;
len = strlen(str);
i = 0;
while (i<len) {
while ( (6) )
i++; /* 忽略连续的标志字符 */
/* 寻找从srt[i]开始直到标志字符出现的一个子字符串 */
j = i+1;
while (str[j] !=del && str[j] !='\0')
j++;
(7)="\0"; /* 给找到的字符序列置字符串结束标志 */
printf (" %s\t", & str [i]);
(8);
}
}
第7题:
下列函数中,其返回值为字符型数据的函数是______。
A.LEN()
B.VAL()
C.STR()
D.DATE()
第8题:
(7)函数Str$(256.36)的值是。
第9题:
数组str全由大小写字母字符组成。请补充函数proc(),该函数的功能是:把str中的字母转换成紧接着的下一个字母,如果原来的字母为&39;b&39;或&39;b&39;,则相应地转换成&39;c&39;或&39;C &39;,结果仍保存在原数组中。
例如,输入“String”,则输出“Tusjoh”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
【1】str[i]!=ˊ\0ˊ【2】25【3】1
【解析】要将字符串str中的字母转换成紧接着的下一个字母,需要转换str中从第一个到最后一个的字母,因此,【1】处填“sirei]!=ˊ\0ˊ”;每一个字母的下一个字母比上一个字母的ASCⅡ值大1,只有字母z和Z例外,因为字母z和Z的下一个字母为a和A,其ASCⅡ码值比字母z和Z小25,因此,【2】处填“25”;【3】处填“1”。
第10题: