完善程序,把字符串“student”复制到str1数组中,cha

题目

完善程序,把字符串“student”复制到str1数组中,charstr1[20];();

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

函数调用strcat(strcpy(str1,str2) ,str3) 的功能是( )。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中


正确答案:C
解析:strcat(s1,s2) 是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制给s1字符串,要保证s1能容纳下连接或复制后的字符串。

第2题:

下列程序的功能是将字符串“abcde”逆序打印出来。请填写空白处以完善程序。 Munction rev(str1)As String B = Mid(,1,1) If B =""Then rev ="" Else rev = rev(Mid(str1,2))+b End If End Function Private Sub Form_Click() old ="abcde" Print rev(old) End Sub


正确答案:str1
【解析】本程序使用“递归”的思想,每次递归取出一个字符放到字符串的后面,然后以后面的字符串作为函数参数进入下一次递归。b=Mid(______,1,1)语句的作用是取出本次递归中字符串的第一个字符,因此该空白处应填str1;rev=rev(Mid(str1,2))+b语句是将本次递归中字符串的第一个字符放到它的后面,因此该空白处应填b。递归是一种很重要的算法,在程序设计语言中广泛应用。递归的思想是指函数、过程、子程序在运行过程中直接或间接调用自身而产生的重入现象。简单地说就是自己调用自己。

第3题:

以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。void sstrcpy(char*s,char*t){while(*s++=);}main(){ char str1[100],str2[]="abcdefgh"; sstrcpy(str1,str2); printf("%s\n",strl);}


正确答案:*t++ 或 *(t++)
将t所指字符赋给s,然后各自增1,指向下一字符,知道遇到最后的字符‘0’,则退出循环。

第4题:

下列给定程序中,函数proc的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和Str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容为ABCDEFG,str2 所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2D1EFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F31:4DCBA。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdlib.h> include<conio.h> include<stdio。h> include<string.h> void proc(char*strl,char*str2,char*str) { int i,j;char ch; i=0;j=strleu(str2)-1; //****found**** while(i>j) { ch=str2[i];str2[i]=str2[j];str2[j]=ch; i++;j--; } while(*str1||*str2) { if(*str1){*str=*str1;str++;str1++;) if(*str2){*str=*str2;str++;str2++;) } //****found**** *str=0: } void main { char s1[100],s2[100],t[200]; system("CLS"); printf("\nEnter s1 string:"); scanf("%s",sl); printf("\nEnter s2 string:"); scanf("%s",s2); proc(s1,s2,t); printf("\nThe result is:%s\n",t); }


正确答案:

(1)错误:while(i>j)
正确:while(i<j)
(2)错误:*str=0;
正确:*str='\0 ';
【解析】由函数proc可知,变量i和j分别存放的是字符串str前面和后面第i个字符的位置,当i<j时,两个位置的字符交换。因此,“while(i>j)”应改为“while(i<j)”;交叉合并完成后,要为新的字符串添加结束符,因此,“*str= 0;”应改为“*str='\0';”,

第5题:

函数调用:strcat(strcpy(str1, str2), str3)的功能是______。

A.将串str1复制到串str2中后再连接到串str3之后

B.将串str1连接到串str2之后再复制到串str3之后

C.将串str2复制到串str1中后再将串sir3连接到串str1之后

D.将串str2连接到串str1之后再将串str1复制到串str3中


正确答案:C
解析:题目中所给函数的功能是;先用函数strcpy把参数串str2复制到参数串str1中去,然后用函数strcat把参数串str3连接到经过修改后的参数串str1后,因此选项C正确。

第6题:

执行语句序列

char strl[10]="ABCD",str2[10]="XYZxyz";

for (int i=0; strl[i]=str2[i]; i++)

后,数组str1中的字符是XYZxyz,数组str2中的字符串是【 】。


正确答案:XYZxyz
XYZxyz 解析:注意for的循环体为空语句,其第二个表达式为一个赋值语句而不是一个逻辑表达式语句。因此,for循环的作用实际上是将str2的字符逐个赋值给str1中的对应位置。

第7题:

执行语句序列

char str1[10]="ABCD",str2[10]="XYZxyz";

for(int i=0;strl[i]=str2[i];i++);

后,数组strl中的字符串是______。


正确答案:XYZxyz
XYZxyz 解析:注意for的循环体为空语句,其第二个表达式为一个赋值语句而不是一个逻辑表达式语句。因此,for循环的作用实际上是将str2的字符逐个赋值给str1中的对应位置。

第8题:

函数调用strcat(strcpy(str1,str2),str3)的功能是( )。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中


正确答案:C
解析:strcat(s1,s2)是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制给s1字符串,要保证s1能容纳下连接或复制后的字符串。

第9题:

下面函数的功能是 char*fun(char*strl,char*str2) { while((*strl)&&(*str2++=*strl++)); return str2;}

A.求字符串的长度

B.比较两个字符串的大小

C.将字符串str1复制到字符串str2中

D.将字符串str1接续到字符串str2中


正确答案:C
解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体,while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。本题中逻辑与符号连接的表达式值为真,*str2++=*strl++语句是将strl的内容逐个复制到str2字符串。

第10题:

请补充main()函数,该函数的功能是:把一个二维字符

数组每行字符串中最大的字符复制到字符数组s中。

例如,如果arr[3]={″hoih″,″yufui″,″xgf″),则str=″oyx″。

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或语句。

试题程序:


正确答案:

【1】p=arr【2】p[i]++【3】str[i]=ˊ\0ˊ
【解析】由程序可知,变量P指向的二维数组的首地址,因此【1】处填“p=arr”;要找出二维数组中每一行的最大字符,就要检查每一行的每一个字符,因此【2】处填“p[i]++”;最后要为得到的结果字符串加上结束符,因此【3】处填“str[i]=ˊ\0ˊ”。

更多相关问题