请编写函数proc,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。 例如,若字符串数组中的M个字符串为: ABCD BCDEFG CDEFGHI 则合并后的字符串内容应该是ABCDBCDEFGCDEF—GHl。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。 试题程序: include<stdio.h> include<conio.h> define M 3 define N 20 void proc(char arr[M][N],char*b) {
} void main { char str[M][N]={"ABCD","BCDEFG"," CDEFGHI"},i; char arr[100]={" "); printf("The string:\n"); for(i=0;i<M;i++) puts(str[i]); printf("\n"); proc(str,arr); printf("The A string:\n"); printf("%s",arr); printf("\n\n"); }
第1题:
str是一个由数字和字母字符组成的字符串,由变量num传入字符串长度。请补充函数proc,该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。
例如,str="abc3de987f9621",结果为:3987621。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
define M 80
int bb[M];
int proc(char str[],int bb[],int num)
{
int i,n=0;
for(i=0;i<num;i++)
{
if(【1】)
{
bb[n]=【2】:
n++:
}
}
return 【3】 ;
}
void main
{
char str[M];
int mum=0,n,i;
printf("Enter a strin9:\n");
gets(str);
while(str[num])
num++:
n=proc(str,bb,num);
printf("\nbb=");
for(i=0;i<n;i++)
printf("%d",bb[i]);
}
【1】str[i]>='0'&&str[i]<='9 '
【2】str[i]-'0'
【3】n
【解析】题目中要求把字箱串str中的数字字符转换成数字并存放到整型数组bb中。首先应判断字符串str中每个字符是否为数字字符,因此【1】填“str[i]>=' 0 ' &&str[i]<='9'”;将每一个数字字符转化为数字放在整型数组bb中,因此【2】填“str[i]-'0'”;由函数proc可知,变量n中存放的是整型数组bb中元素的个数,最后要返回到主函数中,因此【3】填“n”。
第2题:
请编写一个函数proc(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。
例如,若输入字符串“1234”,则函数把它转换为整数值1234。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
【解析】要将数字字符串转换为一个整数,首先判断该字符串的正负号。然后将数字字符转换为相应的数字,将各个数字合并为整数。最后将得到的整数乘以字符串中的符号。将最后的结果返回到主函数中。
第3题:
请补充函数proc(),该函数的功能是:把字符串str中的字符按字符的ASCⅡ码升序排列,处理后的字符串仍然保存在原串中,字符串及其长度作为函数参数传人。
例如,如果输入“9fedcba”,则输出为“abcdefg”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
【1】i+1【2】str[j]=str[i]
【解析】题目要求把字符串str中的字符按其ASCⅡ码值升序排列,可以使字符串中的每一个字符与其后的所有字符相比较,因此【1】填“i+1”;把该字符与ASCⅡ码值小于其本身而且位置在它后面的字符相交换,最后就可以使ASCⅡ码值小的在前、大的在后,因此【2】填“str[j]=str[i]”。
第4题:
请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
例如,当str所指字符串中的内容为abcdefg,则在t所指数组中的内容应是bdf。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
【解析】题目要求将下标为偶数的字符删除,其余字符放在新的字符数组t中。首先取出字符串str中下标为奇数的字符,将其赋值给新的字符串t,最后用ˊ\0ˊ作为字符串结束的标志。
第5题:
请补充函数proc(),该函数的功能是判断一个数是否为素数。该数是素数时,函数返回字符串:“yes!”,否则函数返回字符串:“no!”,并在主函数中输出。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
【l】char*proc(intn)【2】2【3】n%i==0
【解析】由整个程序可知,【1】应为函数proc()的函数头。根据主函数中的调用可知形参的个数和类型,因此,【1】处填“char”proc(intn)”。素数为只能被1和它本身整除的整数。要判断一个整数是否为素数,要看它是否能被除1和小于它本身之外的数整除,因此,【2】处填“2”;【3】处填“n%i==0”。