搜索
您的当前位置:首页正文

四川大学2021年《C语言程序设计》指针期末试题及答案

来源:筏尚旅游网


1 选择题

1、若有定义:int x,*pb;则以下正确的表达式是(A) A、pb=&x B、pb=x C、*pb=&x D、*pb=*x 2、以下程序的输出结果是(B) A、因变量无定义输出不定值 B、0 C、-1 D、1 #include void main() {printf(“%d\\n”,NULL);} 3、以下程序的输出结果是(B) A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7 #include void sub(int x,int y,int *z) {*z=y-x;} void main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%d,%d,%d\\n”,a,b,c); } 4、以下程序的输出结果是(C) A、4 B、6 C、8 D、10 #include void main() { int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf(“%d\\n”,n); } 5、已知指针p的指向(图一)的a[1],则执行语句*p++;后,*p的值是(B)。 A、20 B、30 C、21 D、31 10 a[0] 20 a[1] 30 a[2] 40 a[3]

50 a[4] (图一)

6、已知指针p的指向(图一)的a[1],则表达式*++p的值是(B)。 A、20 B、30 C、21 D、31

7、已知指针p的指向(图一)的a[1],则表达式++*p的值是(C)。 A、20 B、30 C、21 D、31 8、以下程序的输出结果是(D)。

A、23 B、24 C、25 D、26 #include void prtv(int *x) {printf(“%d\\n”,++*x);} void main() {

int a=25;prtv(&a); }

9、以下程序的输出结果是(B)。

A、运行出错 B、100 C、a的地址 D、b的地址 #include void main() {

int **k,*a,b=100; a=&b;k=&a;

printf(“%d\\n”,**k); }

10、以下程序运行后,输出结果是(D)。 A) 8 B) 7 C) 6 D) 5 #include ss(char *s) { char *p=s; while(*p) p++; return(p-s); } main()

{ char *a=\"abded\"; int i; i=ss(a);

printf(\"%d\\n\} 2 填空题

1、若有定义:char ch; (1)使指针p指向变量ch的定义语句是 char *p=&ch; 。 (2)若已定义char *p;,使指针p指向变量ch的赋值语句是 p=&ch; 。 (3)在(1)的基础上,通过指针p给变量ch读入字符的scanf调用语句是 scanf(“%c”,p); 。 (4)在(1)的基础上,通过指针p给变量ch赋字符’a’的语句是*p=’a’; 。 (5)在(1)的基础上,通过指针p用格式输出函数输出ch中字符的语句是printf(“%c”,*p); 。 2、以下程序输出的是 C 。 void main( ) { int i=3, j=2; char *a=\"DCBA\"; printf(\"%c%c\\n\} 3、以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。 void exchange(int *x, int *y) { int t; t=*y; *y= *x ; *x= t ; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Top