实验7-4指针与字符数组
【实验目的】
1. 掌握字符指针和字符型变量之间的关系
2. 掌握字符指针与字符串的关系
3. 掌握字符指针与字符数组之间的关系
【课后练习】
一、选择题
1. 下面不正确的字符串赋值或初始化语句是       
A char * str; str = ”string”;
B char str[7]={‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’};
C char str[10]; str=”string”;
D char str1[]=”string”,  str2[20];  strcpy(str2, str1);
2. 已知char b[5], *p=b; 则正确的赋值语句是       
A b=”abcd”;      B *b=”abcd”;      C p=”abcd”;   D *p=”abcd”;
3. 若已有声明char s[20]=”programming”, *ps=s; 则不能引用字母’o’的表达式的是       
A ps+2      B. s[2]      C. ps[2]          D. ps+=2; *ps
4. 已知: char c[8]=”beijing”, *s=c; int i; 则下面的输出语句中错误的是       
A printf(“%s\n”, s);            B.  printf(“%s\n”, *s);
C.  for(i=0; i<7; i++)            D.  for(i=0; i<7; i++)
        printf(“%c”, c[i]);                  printf(“%c”, s[i]);
5. 已知char s[10], *p=s; 则在下列语句中,错误的语句是       
A p=s+5;      B.  s=p+s;      C.  s[2]=p[4];    D.  *p=s[0];
6. 下面判断正确的是             
Achar * a=”china”; 等价于char *a; *a=”china”;
Bchar str[10]={“china”};等价于char str[10]; str[]={“china”};
Cchar *s =”china”; 等价于char *s; s=”china”;
Dchar c[4]=”abc”, d[4]=”abc”; 等价于char c[4]=d[4]=”abc”;
7. 下面能够正确进行字符串赋值操作的是:                       
Achar s[5]={”ABCDE”};
Bchar s[5]={‘A’, ‘B’, ‘C’, ‘D’ , ‘E’};c++求字符串长度
Cchar *s ; s=”ABCDE”;
Dchar *s; scanf(“%s”, s);
8. 设有下面的程序段:char s[]=”china”; char *p;  p=s;
则下列叙述正确的是         
A sp完全相同
B 数组s中的内容和指针变量p中的内容相等
C s数组长度和p所指向的字符串长度相等
D *ps[0]相等
9. 以下正确的程序段是       
A char str[20];  scanf(“%s”, &str);
B.  char *p;      scanf(“%s”, p);
C.  char str[20];  scanf(“%s”,  &str[2]);
D.  char str[20],  *p=str;    scanf(“%s”, p[2]);
10. 以下正确的程序段是       
A char str1[]=”12345”, str2[]=”abcdef”;  strcpy(str1, str2);
B char str[10], *st=”abcde”;  strcat(str, st);
C.  char str[10]=” ”, *st=”abcde”;  strcat(str, st);
D.  char *st1=”12345”, *st2=”abcde”;  strcat(st1, st2);
11. 以下程序段的运行结果是       
ALANGUAGE      B. language        C. LANG        D. langUAGE
12. 若有语句char s1[]=”string”, s2[8], *s3, *s4=”string2”; 则对库函数strcpy的正确调用是       
A strcpy(s1,"string2");
B strcpy(s4,"string1");
C strcpy(s3,"string1");
D strcpy(s2,s1);
13. 若有声明语句如下,则不正确的叙述是       
char a[]= “It is mine”;
char *p = “It is mine”;
A a+1表示的是字符t的地址
B p指向另外的字符串时,字符串的长度不受限制
C p变量中存放的地址值可以改变
D a中只能存放10个字符
14. 已知函数定义如下,函数func的功能是       
func(char *s1, char *s2)
{while(*s2++ = *s1++);}
A. 串复制      B. 求串长      C. 串比较        D. 串反向
15. 若有声明char * language[]={“FORTRAN”, “BASIC”, “PASCAL”, “JAVA”, “C#”};则表达式language[2]的值是           
A. 一个字符                  B.  一个地址
C.一个字符串                D.  一个不定值
16. 若有声明char * language[]={“FORTRAN”, “BASIC”, “PASCAL”, “JAVA”, “C#”};则以下描述中错误的是           
A.  language+2表示字符串“PASCAL”的首地址
B.  *language[2]的值是字母P
C language是一个字符型指针数组,它包含5个元素,每个元素都是一个指向字符串常量的指针               
D.  language[2] 表示字符串“PASCAL”的首地址
17. 若有声明char * language[]={“FORTRAN”, “BASIC”, “PASCAL”, “JAVA”, “C#”};则表达式*language[1]>*language[3]比较的是           
A. 字符F和字符P                B.  字符串”BASIC”和字符串”JAVA”
C.字符B和字符J                D.  字符串” FORTRAN”和字符串” PASCAL”
二、阅读程序,写出运行结果
以下程序段的运行结果是    bcdABCD       
三、阅读程序,写出运行结果
                                bcd
                                cd
                                d
以下程序段的运行结果是             
四、阅读程序,写出运行结果
以下程序段的运行结果是  xyabcABC       
五、阅读程序,写出运行结果
以下程序段的运行结果是    Porm       
六、阅读程序,写出运行结果
                            Basic
                            asic
                            sic
                            ic
                            c
以下程序段的运行结果是           

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。