第1题:
下列给定的程序中,函数proc的功能是:判断字符ch 是,与str所指字符串中的某个字符相同;若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdlib.h> include<conio.h> include<stdio.h> include<string.h> //****found**** void proc(char str,char ch) { while(*str &&*str!=ch)str++; //****found**** if(*str==ch) { str[0]=ch; //****found**** str[1]=0: } } void main { char str[81],ch; system("CLS"); printf("\nPlease enter a string:"); gets(str); printf("\n Please enter the character to search:"); ch=getchar; proc(str,ch); printf("\nThe result is%s\n",str); }
(1)错误:void proc(char str,char ch)
正确:void proc(char*str,char ch)
(2)错误:if(*str==ch)
正确:if(*str==\0 )
(3)错误:str[1]=0;
正确:str[1]=\0;
【解析】形参的个数和类型由调用该函数的实参的个数和类型决定,由main函数中调用的函数proc可知,“void
proe(char str,char ch)”应改为“void proc(char*str,char
ch)”;将字符串中的每一个字符与给定字符相比较,"-3字符串结束或者字符串中有与给定字符相同的字符时结束。如果到字符串的最后一个字符仍没找到与给定字符相同的字符,将给定字符插在字符串的最后,因此,“if(*str==ch)”应改为“if(*str==\0 )”;最后还要为字符串添加一个结束符,因此“str[1]=0 ;”应改为“str[1]=\0”。
第2题:
下列程序的运行结果为
#include<stdio.h>
void abc(char*str)
{ int a,b;
for(a=b=0;str[a]!='\0';a++)
if(str[a]!='c')
str[b++]=str[a];
str[b]='\0';}
void main()
{ char str[]="abcdef";
abc(str);
printf("str[]=%s",str); }
A.str[]=abdef
B.str[]=abcdef
C.str[]=a
D.str[]=ab
第3题:
简述性染色体STR基因座。
Y染色体STR基因座在生物物证鉴定中的应用。
X染色体STR。
第4题:
void setmemory(char **p, int num)
{ *p=(char *) malloc(num);}
void test(void)
{ char *str=NULL;
getmemory(&str,100);
strcpy(str,"hello");
printf(str);
}
运行test函数有什么结果?( )
第5题:
决定生男还是生女的因素,是()不同。
A、基因和常染色体
B、常染色体和性染色体
C、性染色体
D、基因和性染色体
第6题:
下列程序的运行结果为( )。
#include<stdio.h>
voidabc(Char*str)
{ inta,b,i,j;
for(i=j=0;str[i]!='\0';i++)
if(str[i]!='a')
str[j++]=str[i];
str[j]='\0';
}
void main()
{ char str[]="abcdef";
abc(str);
printf("str[]=%s",str);
}
A.str[]=bcdef
B.str[]=abcdef
C.str[]=a
D.str[]=ab
第7题:
简述常染色体STR与性染色体STR有什么不同?
第8题:
下列程序的运行结果为 #include<stdio.h> void abc(char*str) { int a,b; for(a=b=0;str[a]!='\0';a++) if(str[a]!='c') str[b++]=str[a]; str[b]='\0';} void main() { char str[]="abcdef"; abc(str); printf("str[])=%s",str);}
A.str[]=abdef
B.str[]=abcdef
C.str[]=a
D.str[]=ab
第9题:
以下C程序段的输出结果是(30)。 #include <stdio. h> void abc(char *str){ int a, b; for(a=b=0;str[a]!='\O';a++)if(str[a]!='c') str[b++]=str[a]; str[b]='\O'; } void main(){ char str[]="abcdef"; abc(str); printf("str[]=%s",str); }
A.str[]=a
B.str[]=ab
C.str[]=abdef
D.str[]=abcdef
第10题:
void GetMemory(char *p){p = (char *)malloc(100);}void Test(void) {char *str
= NULL;GetMemory(str); strcpy(str, "hello world");printf(str);}请问运行 Test 函数
会有什么样的结果?