第十二章测试
1.char *s="abcde"; s+=2; printf("%d",s);上面程序段的输出结果是( )。
A:字符'c' B:字符'c'的地址 C:字符串的后半部分:cde D:不确定的输出结果
答案:B
2.#include <stdio.h>#include <string.h>int main(){ char *s1="AbDeG"; char *s2="AbdEg"; s1+=2; s2+=2; printf("%d\n",strcmp(s1,s2)); return 0;}上面程序的运行结果是一个( )。
A:负数 B:不确定值 C:0 D:正数 3.若有代码: char a[ ]="It is mine"; char *p="It is mine"; 则以下错误的叙述是( )。
A:a+1是字符t的指针 B:p变量中存放的地址值可以改变 C:p可以指向另外的字符串,并且另外的字符串的长度不受限制 D:p中只能存放10个字符 4.若有以下代码:int c[4][5],(*p)[5];p=c; 则能正确引用下标变量的是( )。
A:*(p+3) B:*(p+1)+3 C:p+1 D:*(p[0]+2)) 5.若有定义:int a[2][3]; 则属于a数组的第i行j列元素的指针的表达式是( )。
A:*(a[i]+j) B:*(a+j) C:(a+i) D:a[i]+j 6.设已有定义: char *st="how are you"; 则下列程序段中能正确执行不越界的是( )。
A:char a[11], *p; strcpy(p=a+1,&st[4]); B:char a[15]; strcpy(++a, st); C:char a[], *p; strcpy(p=&a[1],st+2); D:char a[11]; strcpy(a, st); 7.设变量p1和p2指向同一个字符串的首字母,c为字符变量,则以下不能正确执行的赋值语句是( )。
A:c=*p1+*p2; B:p1=p2; C:p2=c; D:c=*p1*(*p2); 8.以下四个程序段中,能正确执行的是( )。
A:char str[20],*p=str; scanf("%s",p[2]); B:char str[20],*p=str; scanf("%s",*p); C:char str[20]; scanf("%s",&str[2]); D:char *p; scanf("%s",p); 9.若有int **pp;int *p,a=1;p=&a; 则能使pp指向变量p的代码是( )。
A:pp=&p; B:*pp=p; C:pp=p; D:pp=*p; 10.已定义以下函数 int *fun (int *p){ return p;}该函数的返回值是( )。
A:形参p所指单元中的值 B:形参p中存放的整数 C:形参p的地址 D:形参p所指单元的地址 11.若有以下函数首部 int fun(double x[10], int *n)则下面针对此函数的函数声明语句中正确的是( )。
A:int fun(double *x, int n); B:int fun(double *, int *); C:int fun(double x, int *n); D:int fun(double , int ) 12.int main(){ char a; char *str=&a; strcpy(str,"hello"); printf(str); return 0;}上面程序的运行结果是( )。
A:Null B:运行时出现异常错误 C:hell D:h 13.下面选项中属于函数指针的是( )。
A:(int*) p(int,int) ; B:int *p; C:int (*p)(int); D:int *p(int,int) ; 14.若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是( )。
A:*p(a,b); B:(*p)max(a,b); C:(*p)(a,b); D:*p(max(a,b)); 15.对于语句int *pa[5]; 下列描述中正确的是( )。
A:pa是一个具有5个元素的指针数组,每个元素是一个int*型指针 B:pa是一个指向数组的指针,所指向的数组有5个int型元素 C:pa是一个指向某数组中第5个元素的指针,该元素是int型变量 D:pa [5]表示某个元素的第5个元素的值

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(6) dxwkbang
返回
顶部