第八章 指针基础:本章主要介绍指针类型变量的含义、格式及引用,并介绍了其与一维数组、二维数组、单个字符串、多个字符串之间的关系及应用。8.1指针概念和定义:本次课主要通过一个引例引出什么是指针,并介绍指针和指针变量的含义,指针变量的定义格式和注意事项。[单选题]
8.2指针变量的引用:本次课主要通过五个实例介绍与指针运算相关的两个运算符的基本应用及指针变量做函数参数时的执行过程和特殊作用。
8.3指针与一维数组:本次课主要通过一个引例的讲解引出指针如何应用在数组中,从而介绍指针与一维数组之间的关系。以及一维数组元素和元素地址的指针表示法。
8.4指针与二维数组:本次课主要介绍指针与二维数组之间的关系,如何用指针表示二维数组元素和二维数组元素地址。
8.5指针与数组举例:本次课主要通过三个实例讲解数组和指针做函数参数的具体实现和执行过程,以此来巩固指针在数组的应用掌握。
8.6指针与字符串(一):本次课主要通过四个实例介绍字符串用数组和指针表示的两种形式,及字符指针做函数参数的具体实现。
8.7指针与字符串(二):本次课主要介绍表示多个字符串的两种形式—二维字符数组和字符指针数组的基本操作,并通过两个案例讲解了字符串和指针的具体应用实现。
以下程序有错,错误原因是 _。
int main()
{int *p,i;
char *q,ch;
p=&i; q=&ch; *p=40; *p=*q;
┆
}
选项:[q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q; 语句, q没有指向具体的存储单元,所以*q没有实际意义, p和q的类型不一致,不能执行*p=*q;语句, *p中存放的是地址值,因此不能执行*p=40;语句]
[单选题]
已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的正确输出结果是 。
void print_value(int *x)
{printf(“%dn”,++*x); }
选项:[25, 26, 23, 24][单选题]
下面程序的运行结果是 。
#include <stdio.h>
int main()
{ static char a[]=”Language”,b[]=”programe”;
char *p1,*p2; int k;
p1=a; p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k)) printf(“%c”,*(p1+k));
}
选项:[gae, ga, Language, 有语法错][单选题]
下面程序的运行结果是 。
#include <stdio.h>
#include <string.h>
main()
{char *p1,*p2,str[50]=”abc”;
p1=”abc”;p2=”abc”;
strcpy(str+1,strcat(p1,p2));
printf(“%sn”,str);
}
[单选题]
若有说明:char *language[]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};
则表达式*language[1]>*language[3]比较的是 。
[单选题]
若有说明语句
char a[]=”It is mine”; char *p=”It is mine”;
则以下不正确的叙述是_ 。
[单选题]
以下程序调用fun函数求数组中最大值所在元素的下标。
#include <stdio.h>
void fun(int *s,int n, int *k)
{ int i;
for(i=0,*k=i;i<n;i++)
if(s[i]>s[*k]) _
}
int main()
{ int a[5]={1,8,3,6,9},k;
fun(a,5,&k);
printf(“%d,%dn”,k,a[k]);
return 0;
}
[单选题]
有以下程序:
#include <stdio.h>
void fun(int *p, int *q)
{ int *t;
t=p; p=q; q=t;
}
int main()
{ int a=0,b=9;
fun(&a,&b);
printf(“%d,%dn”,a,b);
return 0;
}
程序的输出结果是 。
[单选题]
以下正确的定义语句和赋值语句是_ 。
选项:[ double b[3][5],s[5][3],*q; q=b; s=q;, int b[3][5],(*p)[3],(*q)[5]; p=b; q=b;, char b[3][5],*p[3]; p[0]=b[0]; p[2]=*b+4;, int b[10],*q; char *s; q=b; s=b;][单选题]选项:[*p1=*p2;, p1=*p2;, *p1=p2;, p1=p2;]