A、 void (* pf)();pf=fun;
B、 void * pf();pf=fun;
C、 void * pf(); *pf=fun;
D、 void (* pf)(int,char);pf=&fun;
答案:D
解析:【解析】函数指针的一般定义形式为:返回值类型 (* 指针变量名) ([形参列表]);其中,“返回值类型”说明函数的返回类型,“(* 指针变量名)”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。以本题函数和函数指针为例,将函数的首地址赋给指针,可以是pf=fun;或者pf=&fun;选项A,参数列表与题干函数不符,错误。选项B,函数指针定义格式错误。选项C。函数指针定义格式错误,复制格式也错误。答案选择D选项。
A、 void (* pf)();pf=fun;
B、 void * pf();pf=fun;
C、 void * pf(); *pf=fun;
D、 void (* pf)(int,char);pf=&fun;
答案:D
解析:【解析】函数指针的一般定义形式为:返回值类型 (* 指针变量名) ([形参列表]);其中,“返回值类型”说明函数的返回类型,“(* 指针变量名)”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。以本题函数和函数指针为例,将函数的首地址赋给指针,可以是pf=fun;或者pf=&fun;选项A,参数列表与题干函数不符,错误。选项B,函数指针定义格式错误。选项C。函数指针定义格式错误,复制格式也错误。答案选择D选项。
解析:【解析】fun函数的功能是:用while循环查找high以内的素数。通过for循环判断一个数是否为素数;用变量n记录素数的个数;用return返回素数之和sum。错误1:if语句的两侧要加括号。错误2:yes为1时,说明被判断的数是素数,要累加到sum。
A. ABCDEFGH
B. ABDGEHCF
C. GDBEHACF
D. GDHEBFCA
解析:【解析】遍二叉树的前序遍历过程:先访问根结点,再前序遍历左子树,最后前序遍历右子树。答案选择B选项。
A. 0
B. 3
C. 4
D. 5
解析:【解析】运算符“/”、“%”的优先级高于“-”,所以先进行除法和求余运算,再进行减法运算。强制类型转换表达式的形式:(类型名)(表达式)。“9/2”结果为4,转换成double类型再转换成int类型结果依然为
A. if(strcmp(a,b)==0)
B. if(strcpy(a,b))
C. if(a==b)
D. if(a=b)
解析:【解析】
A. 项正确,程序设计语言仅仅使用顺序、选择和循环三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
B. 项错误,
C. 语言程序必须要定义main()函数;C项错误,结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,而不是说包含了三种基本结构就是结构化程序;
D. 项错误,程序中的语法错误在编译时能显现。答案选择A选项。第2章 C程序设计的初步知识
解析:【解析】
A. y%=x)-(x%=5)
B. y%=(x%=5)
C. .y%=x-x%5
D. y%=(x-x%5)
解析:【解析】
A. 2*a*b/c/d
B. a*b/c/d*2
C. a/c/d*b*2
D. 2*a*b/c*d
解析:【解析】*与/优先级相同,采用左结合的方式。D项若改为:2*a*b/(c*d)则为正确。答案选择D选项。
A. -264
B. 552
C. 144
D. 264
解析:【解析】赋值运算结合性为自右向左,a+=a-a*a相当于a=a-a*a,a=a+a;自右向左计算过程为a=a-a*a=-132,a=a+a=-264。答案选择A选项。
A. m[--i]
B. m[2*2]
C. m[m[0]]
D. m[m[i]]
解析:【解析】在C语言中,数组的下标是从0开始的,所以它的上限是数组元素个数减1。如果超过这个范围来引用数据元素就会溢出,造成运行时错误。本题的数组m有5个元素,所以它的下标范围是0~4。A项,--i的值为
A. a=a++,i++
B. i=(a+k)<=(i+k)
C. i=a%11
D. i=!a
解析:【解析】