三、程序填空题参考答案及解析
第1套 程序填空题参考答案及解析
【参考答案】
(1) 3.0或(double)3 (2) > (3)(t+1)
【考点分析】
本题考查:基本算术运算的类型转换。其转换规则如下。
如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。
如果双目运算符两边运算数的类型不一致,系统将自动进行类型转换,使运算符两边运算数的类型达到一致后,再进行运算。其类型转换规律见下表。
while循环语句一般考查如何根据题意确定循环条件,以及如何通过循环变量的变化实现循环操作。
【解题思路】
填空1:变量x定义为double类型,而运算符“/”后面是整型数,因此给x赋值时需要注意数据类型,此处不能将3.0写成3。
填空2:while循环语句的循环条件。根据题意确定循环变量应大于1e-3,因此此处应填“>”。
填空3:表达式的通项是(2*i+1)/(2*i)2,由于程序中已定义t=2*i,所以此处应该填写(t+1)。
【解题宝典】
本题填空1还可以运用强制类型转换来实现。强制类型转换是通过类型转换运算来实现的,其一般形式为“(类型说明符)(表达式)”,其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。
例如:
(float) a 把a转换为实型
(int)(x+y) 把x+y的结果转换为整型
第2套 程序填空题参考答案及解析
【参考答案】
(1) 0 (2) n (3)(t*t)
【考点分析】
本题考查:变量初始化操作,需注意该变量是用作累加器还是累乘器;for循环语句。
【解题思路】
填空1:程序开始定义了变量 s,但没有对其进行初始化,根据公式及后面的程序可知,变量s用来存放公式的前n项和,因此该变量应初始化为0。
填空2:通过for循环语句将表达式各项进行累加,结果存在于变量s中,循环变量i的取值范围为1~n。
填空3:根据题目要求确定表达式通项。前面已定义t=2.0*i,因此此空应填(t*t)。
【解题宝典】
程序要求计算表达式的值时,一般都设定一个变量s并赋初值。如果s用来存放表达式的和,则赋初值为0;如果s用来存放表达式的积,则赋初值为1。
第3套 程序填空题参考答案及解析
【参考答案】
(1) s[i] (2) '9' (3) *t=n
【考点分析】
本题考查:for循环语句;if语句条件表达式;指针变量。
【解题思路】
填空1:通过for循环语句来判断是否到字符型结尾,变量i用来存放字符型数组下标,则应填入s[i]。
填空2:题目要求判断数字字符,所以此处应填入'9'。
填空3:将数字字符个数存入变量t中,此处需注意变量t是指针变量。
【解题宝典】
if语句的条件表达式一般会考查3方面的内容。
(1)条件判断,即>与>=、<与<=、==与!=的区别,需要仔细分析题干的意思,确定条件表达式的内容。
(2)逻辑判断,即&&(逻辑与)与||(逻辑或)的区别,需要根据题干确定if条件中若干个条件表达式的并存关系。
(3)=(赋值号)与==(等于号)的区别,注意在if条件中不会出现=(赋值号)。
第4套 程序填空题参考答案及解析
【参考答案】
(1) 1 (2) j++ (3) j
【考点分析】
本题考查:if语句条件表达式;自增、自减运算符;函数返回值。
【解题思路】
填空1:根据题目要求,需进行奇偶数的判定,可以通过if条件语句来判断数组元素是否为奇数,如果元素不能被2整除,则为奇数,所以填入1。
填空2:将为奇数的元素重新存放到数组的前面,同时下标加1。
填空3:函数需要返回数组中奇数的个数,因此返回变量j。
【解题宝典】
奇数和偶数的判定方法是对2求余运算,结果为0是偶数,结果为1是奇数。
自增1、自减1运算符:自增1 运算符记为“++”,其功能是使变量的值自增1;自减1运算符记为“--”,其功能是使变量值自减1。自增1、自减1运算符均为单目运算符,具有右结合性,有以下几种形式。
++i:i自增1后再参与其他运算。
--i:i自减1后再参与其他运算。
i++:i参与运算后再自增1。
i--:i参与运算后再自减1。
第5套 程序填空题参考答案及解析
【参考答案】
(1) 0 (2) 10*x (3) n/10
【考点分析】
本题考查:已知某数,如何求该数各个位数值;已知各个位数值,如何表示该数;除法运算。
【解题思路】
填空1:定义变量t,用来存放某数的各个位数值,此处判断t是否为偶数,即对2求余结果是否为0。
填空2:将t作为x的个位数,原来x的各个位上升1位,即x=10*x+t。
填空3:每循环一次,通过除法运算去掉数值最后一位。
【解题宝典】
如果知道某数n的各个位数值,可以得到该数值n。例如,n的个位为a、十位为b、百位为c,那么n=c*100+b*10+a。如果知道数值n,可以采用求余和除法操作来表示其各个位数值,即n% 10(取个位)、n/10(取十位)。读者可以自己考虑一下,如果是三位数,如何提取各个位数值?如果是四位数呢?
第6套 程序填空题参考答案及解析
【参考答案】
(1) a[i] (2) a[j] (3) a[j]
【考点分析】
本题考查:数组的引用;if语句条件表达式。如果表达式的值为真,则执行下面的语句;如果该值为假,则不执行下面的语句。
【解题思路】
填空1:for循环语句的循环体中将数组元素a[i]赋值给变量max和变量min。
填空2:通过一次for循环,找到数组中的最大值,if语句的条件表达式是max<a[j]。
填空3:同理,此处if语句的条件表达式是min>a[j]。
【解题宝典】
求最大值或者最小值的题目,一般都是先假设一个元素最大或最小,然后通过if条件语句将该元素和其他元素进行比较操作来完成。
第7套 程序填空题参考答案及解析
【参考答案】
(1)char(2)ch<= '9'(3) '0'
【考点分析】
本题考查:函数定义,注意函数定义的一般形式以及有参函数和无参函数的区别;if语句条件表达式,本题的条件表达式用于判断数字字符;函数返回值,其一般形式为“return表达式;”。
【解题思路】
填空1:函数定义时,类型标识符指明了函数的类型,函数的类型实际上是函数返回值的类型,所以此处应该填入char。
填空2:通过if条件语句判断字符串中字符是否为数字字符,即大于等于字符0,同时小于等于字符9。
填空3:return 语句完成函数返回操作,要实现字符转换,完整语句为return '9'-(ch- '0')。
【解题宝典】
有参函数定义的一般形式为:
类型标识符 函数名(形式参数列表)
{ 声明部分
语句
}
在形式参数列表中给出的参数称为形参,它们可以是各种类型的变量,各参数之间用逗号分隔。在进行函数调用时,主调函数将赋予这些形参实际的值。形参也是变量,必须在形式参数列表中给出类型说明。
第8套 程序填空题参考答案及解析
【参考答案】
(1) M (2) < (3) k
【考点分析】
本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。
【解题思路】
填空1:题目指出ss所指字符串数组中共有M个字符串,所以for循环语句的循环条件是i<M。
填空2:要求求长度最短的字符串,*n中存放的是已知字符串中长度最短的字符串的长度,将当前字符串长度与*n进行比较,若小于*n,则将该长度值赋给*n,因此if语句的条件表达式为len<*n。
填空3:将最短字符串的行下标作为函数值返回,变量k存储行下标的值。
第9套 程序填空题参考答案及解析
【参考答案】
(1)j++或j+=1或++j或j=j+1
(2) s[i] =t1[i] (3) j
【考点分析】
本题考查:指针型变量;数组变量赋值;for循环语句。
【解题思路】
填空1:根据函数fun中的内容可知,数组t1存储了s中的非数字字符,数组t2存储了s中的数字字符,为了存储下一个数字字符,下标j要进行加1操作。
填空2:将s串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,因此填入s[i]=t1[i]。
填空3:将数字字符加到s串之后,i要小于数字的个数j。
第10套 程序填空题参考答案及解析
【参考答案】
(1) x (2) p (3) s
【考点分析】
本题考查:链表的基本操作,了解链表的基本思想和相关算法;理解有关链表插入及删除时指针移动的先后顺序问题;注意指针的保存和归位。
【解题思路】
填空1:将形参x赋值给结点的数据域。
填空2 和填空3:将新的结点和原有链表中的结点进行比较。
第11套 程序填空题参考答案及解析
【参考答案】
(1) 1 (2) i (3) a[p+i]或*(a+p+i)
【考点分析】
条件运算符组成条件表达式的一般形式:表达式1?表达式2:表达式3。其求值规则为:如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值。
【解题思路】
填空1:该处是判断数组元素的个数是奇数还是偶数,为奇数时要使当前位置加1,使p指向数组的中间位置。
填空2和填空3:这里是一个比较常见的数组位置调换程序,应填入i和a[p+i]或*(a+p+i)。
【解题宝典】
变量交换算法:如果变量a、b互换,需借助第3 个变量temp完成,即temp=a;a=b;b=temp;。
第12套 程序填空题参考答案及解析
【参考答案】
(1) N (2) k (3) ss[i]
【考点分析】
本题考查:for循环语句;if语句条件表达式;字符串复制函数strcpy的使用。
【解题思路】
填空1:for循环语句的作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i<N。
填空2:题目要求删除串长度大于k的字符串,所以if条件语句的条件表达式是len<=k。
填空3:通过字符串复制函数将串长不大于k的字符串另存并记录个数。
【解题宝典】
字符串复制函数strcpy的格式为:
strcpy(字符数组名1,字符数组名2)
功能:把字符数组名2中的字符串复制到字符数组名1中。字符串结束标识'\0 '也一同复制。字符数组名2 也可以是一个字符串常量,这时相当于把一个字符串赋予一个字符数组。
第13套 程序填空题参考答案及解析
【参考答案】
(1) 1 (2) s[k]或*(s+k) (3) c
【考点分析】
本题考查:指针型变量;if…else语句;赋值语句。
【解题思路】
填空1:函数fun中变量n用于统计字符的长度,假如长度为偶数,则k=n-1;假如长度为奇数,则k=n-2,使得下标为奇数的最后一个元素有效(不是'\0')。
填空2:了解变量k的作用后,将最右边的奇数位置的数赋值给变量c。
填空3:将最后一个下标为奇数的元素移到第一个奇数位置。
第14套 程序填空题参考答案及解析
【参考答案】
(1) N (2) i (3) -1
【考点分析】
本题考查:for循环语句;函数返回值;if语句条件表达式。
【解题思路】
填空1:变量i是循环变量,它的取值范围是0~N。
填空2:如果ss所指字符串数组中的字符串与t所指字符串相同,则返回其下标值,即i,否则返回-1,即return -1。
填空3:在main函数中输出最后结果,判断函数返回值n,如果n= -1,说明没有找到,否则输出n。
第15套 程序填空题参考答案及解析
【参考答案】
(1) next (2) t->data (3) t
【考点分析】
本题考查:链表数据结构,结点的表示方法,掌握链表数据结构的基本思想;释放内存空间函数free。
【解题思路】
填空1:因为是链表操作,所以要使t逐一往后移动,语句为t=t->next;。
填空2:输出链表结点的数据域,即t->data。
填空3:使用free函数将t所指向的内存空间释放。释放内存空间函数free的调用形式为:free(void*p);,其功能是释放p所指向的一块内存空间,p是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区是由malloc或calloc函数所分配的区域。
第16套 程序填空题参考答案及解析
【参考答案】
(1) n/2 (2) i (3) a[n-1-i]或a[n-i-1]
【考点分析】
本题考查:for循环语句;变量交换算法。
【解题思路】
填空1:逆置数组元素中的值,将a[0]与a[n-1]对换位置,以此类推,需要对换n/2次。
填空2:将a[0]与a[n-1]对换位置,a[1]与a[n-2]对换位置,以此类推,则a[i]=a[n-1-i]。
填空3:普通的调换位置程序操作,显然填入a[n-1-i]。
第17套 程序填空题参考答案及解析
【参考答案】
(1) "r" (2) fs (3) ft
【考点分析】
本题考查:打开文件操作。fopen函数用来打开一个文件,其一般形式为“文件指针名=fopen(文件名,使用文件方式)”;文件结束检测函数feof;写字符函数fputc,功能是把一个字符写入指定的文件中,函数调用的形式为“fputc(字符量,文件指针)”。其中,待写入的字符量可以是字符常量或变量,被写入的文件可以用写、读/写、追加方式打开。文件一旦使用完毕,需使用关闭文件函数fclose将文件关闭,以避免文件的数据丢失等错误。
【解题思路】
填空1:本题考查对文件操作的掌握。打开一个文件的调用形式为“fs=fopen(文件名,使用文件方式)”,以只读的方式打开文件,所以文件打开方式为“r”。
填空2:while循环语句中,循环条件为通过feof函数来检测是否到文件结尾。
填空3:fputc函数用于将一个字符写到磁盘文件上,调用形式为“fputc(要输出的字符,文件指针)”。
第18套 程序填空题参考答案及解析
【参考答案】
(1) i++ (2) m (3) m
【考点分析】
本题考查:for循环语句;数组元素的引用。
【解题思路】
填空1:循环语句中,循环变量i增量为1。
填空2:将每行元素中的值均右移m个位置,所以数组元素的下标是t[i][j+m]。
填空3:此for循环语句实现左边元素置0 操作,所以j的取值范围是0~m。
第19套 程序填空题参考答案及解析
【参考答案】
(1) a (2) b.name (3) score[i]
【考点分析】
本题考查:结构体数据类型;strcpy字符串复制函数。
【解题思路】
填空1:题目要求先将形参a所指结构体变量中的数据赋给函数中的结构体变量b,所以此处为“b=a;”。
填空2:通过strcpy函数修改b中的学生姓名,注意结构变量成员的表示方法。
填空3:printf函数的输出结果。
【解题宝典】
结构变量成员的一般形式是:
结构变量名.成员名。
例如:
student1.num即第一名学生的学号。
student2.sex即第二名学生的性别。
第20套 程序填空题参考答案及解析
【参考答案】
(1) *fw (2) str (3) str
【考点分析】
本题考查:函数定义以及文件指针。fputs函数的功能是向指定的文件写入一个字符串,其调用形式为:fputs(字符串,文件指针);。
【解题思路】
填空1:定义函数,函数的形参是一个文件类型的指针。
填空2:此处考查fputs函数的形式,应填入str。
填空3:依据printf函数的格式输出字符串内容,即printf("% s",str);。
第21套 程序填空题参考答案及解析
【参考答案】
(1)0 (2)j-- (3)j
【考点分析】
本题考查:数组元素的引用;for循环语句。
【解题思路】
填空1:N×N矩阵,第一列元素表示为t[0][N-j-1],第一行元素表示为t[j][0],将第一列元素赋值给第一行元素,因此填入0。
填空2:for循环语句中,变量j的变化范围为从N-1递减到0,因此j做自减1操作运算。
填空3:最后将临时数组r中的元素赋值给矩阵最后一列元素。
【解题宝典】
二维数组周边元素的表示方法,通过设定数组下标来完成。举个简单的例子来说明,例如二维数组a[3][3],列出它的所有数组元素:
a[0][0],a[0][1],a[0][2]
a[1][0],a[1][1],a[1][2]
a[2][0],a[2][1],a[2][2]
那么其周边元素有a[0][0],a[0][1],a[0][2],a[1][0], a[1][2],a[2][0],a[2][1],a[2][2]。如果把a[3][3]改为a[i][j],就不难表示出该数组的周边元素:
a[0][0]… a[0][N-i-1]… a[0][N-1]
a[1][0] … a[1][N-1]
… …
a[N-j-1][0] … a[N-j-1][N-1]
a[N-1][0]… a[N-1][N-i-1]… a[N-1][N-1]
第22套 程序填空题参考答案及解析
【参考答案】
(1) N (2) substr (3) 0
【考点分析】
本题考查:for循环语句;strstr字符串函数的使用;if语句条件表达式。
【解题思路】
填空1:此处考查for循环语句中循环变量i的取值范围,题目指出共有N个字符串,所以i的取值范围为0~N-1。
填空2:strstr(s1,s2)的功能是在s1 串中查找s2 子串。题目要求在ss字符串数组中,查找substr所指定的字符串,故应填substr。
填空3:此处使用if条件语句来判断查找结果,由“printf("\nDon’t found!\n");”语句可知此处需填写没有找到的条件,即find==0。
【解题宝典】
strstr(s1,s2)的功能是在s1串中查找s2子串,若没有找到,则函数值为0;若找到,函数值为非0。
第23套 程序填空题参考答案及解析
【参考答案】
(1) data (2) next (3) head
【考点分析】
本题考查:链表数据结构,结点的表示方法;掌握链表数据结构的基本思想。
【解题思路】
本题考查的是链表的数据结构,需利用指针变量才能实现。一个结点中应包含一个指针变量,用来存放下一个结点的地址。
建立单向链表的一般步骤是:建立头指针→建立第一个结点→头指针指向第一个结点→建立第二个结点→第一个结点的指针指向第二个结点→……→最后一个结点的指针指向NULL。
填空1:变量s用来累加各结点的数据域,因此此空应为data。
填空2:每次循环结束时,指针p指向下一个结点,即“p=p->next;”。
填空3:由被调用函数的形参列表可知,此处应为指针类型变量,因为要对链表的数据域求和,所以将链表的头指针传给被调用函数。
第24套 程序填空题参考答案及解析
【参考答案】
(1) struct student * (2) a->score[i] (3) a
【考点分析】
本题考查:函数定义;结构体变量成员的表示方法;函数返回值。
【解题思路】
填空1:函数定义时,类型标识符指明了本函数的类型。前面已经多次提到,函数的类型实际上是函数返回值的类型。该题中,用结构体指针变量作为函数类型标识符。
填空2:通过循环语句对指针a所指结构体变量中的3门成绩进行修改,所以此处为a->score[i]。
填空3:通过return语句将形参a返回给主函数。
【解题宝典】
结构体变量各个成员的表示方法:
(*结构体指针变量).成员名;
或结构体指针变量->成员名。
第25套 程序填空题参考答案及解析
【参考答案】
(1) t[][N] (2) i=0;i<N (3) s
【考点分析】
本题考查:函数定义;for循环语句;数组元素的引用和赋值;变量值的交换算法。
【解题思路】
填空1:根据main函数中的函数调用语句,可以填写fun函数定义中的形参内容。
填空2:由于是N × N矩阵,所以for语句中循环变量i的取值范围是0~N。
填空3:for循环体中是变量值交换算法。
第26套 程序填空题参考答案及解析
【参考答案】
(1) 999 (2) t/10 (3) x
【考点分析】
本题考查:while 循环语句;数 n 各个位数值的表示方法;if语句条件表达式。
【解题思路】
填空1:题目要求找出100 ~999 符合要求的数,所以while语句的循环条件是t<=999。
填空2:变量s2存放三位数的十位,取出三位数十位数值的方法为s2=(t/10)% 10;。
填空3:题目需要判断各位上数字之和是否为x,所以if语句条件表达式是s1+s2+s3==x。
【解题宝典】
三位数n各个位数值的表示方法,个位表示为n% 10,十位表示为n/10% 10,百位表示为n/100。
第27套 程序填空题参考答案及解析
【参考答案】
(1) ->sno (2) ->name (3) &t
【考点分析】
本题考查:结构体变量成员的表示方法;strcpy函数;函数调用。
【解题思路】
填空1:给b所指结构体变量学生的学号赋值。
填空2:通过strcpy字符串复制函数修改b所指结构体变量学生的姓名。
填空3:由于函数fun的形参是指针型变量,所以在main函数中调用函数fun的参数应为指针或地址。
第28套 程序填空题参考答案及解析
【参考答案】
(1) q (2) next (3) next
【考点分析】
本题考查:释放内存空间函数 free;链表结点的基本操作。
【解题思路】
填空1:使用free函数,释放q所指的内存空间,其一般格式为“free(指针变量);”。
填空2和填空3:删除链表中符合条件的结点后,指针要指向下一个结点。
第29套 程序填空题参考答案及解析
【参考答案】
(1) [N] (2) t[i][j] (3) t[j][i]
【考点分析】
本题考查:有参函数定义,需要根据题目要求和给定程序确定函数参数;N ×N矩阵中如何表示左下角和右上角元素。
【解题思路】
填空1:主函数中调用函数的参数为二维数组,所以此处形参应定义为指针数组。
填空2:根据题意可知,对称元素相加的和存放在左下三角元素中,那么应填入的是t[i][j]。
填空3:右上三角元素置0,应填入t[j][i]。
第30套 程序填空题参考答案及解析
【参考答案】
(1)fp (2) == (3) fp
【考点分析】
本题考查:文件结束检测函数feof;if语句条件表达式;fseek函数。
【解题思路】
填空1:while循环语句的循环条件是判断文件是否结束,配合feof函数来完成,其一般形式为“feof(文件指针);”。
填空2:根据题目要求确定if语句条件表达式的内容,满足条件后跳出循环。
填空3:文件定位函数fseek,调用形式为“fseek(文件指针,位移量,起始点);”,此处文件指针是fp。
【解题宝典】
fseek函数用来移动文件内部位置的指针,其调用形式为“fseek(文件指针,位移量,起始点);”,其中:
“文件指针”指向被移动的文件;
“位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB 时不会出错。当用常量表示位移量时,要求加后缀“L”;
“起始点”表示从何处开始计算位移量,规定的起始点有3种,即文件首、当前位置和文件尾。其表示方法如下表。
例如:fseek(fp,50L,0)表示把位置指针移到离文件首50个字节处。
第31套 程序填空题参考答案及解析
【参考答案】
(1)1 (2)2*i (3)(-1)
【考点分析】
本题考查:变量赋初值操作;for循环语句;累加计算。
【解题思路】
填空1:由fun函数整体结构可以看出k的作用是赋值,并累加各项前边的正负号,由于第一项是正的,因此赋给k的值为1。
填空2:此空下一行的表达式k*(2*i-1)*(2*i+1)/(t*t)累加的通项,k为正负号,由题目中的公式可知t=2*i。
填空3:由于通项前边的正负号每次都要发生变化,因此k=k*(-1)。
第32套 程序填空题参考答案及解析
【参考答案】
(1) 0 (2) i++或++i或i+=1或i=i+1
(3)2.0*i
【考点分析】
本题考查:变量赋初值;while循环语句;表达式通项的表示方法。
【解题思路】
填空1:循环变量i从1开始参加运算,但是在每次循环的开始i都进行自加1操作,故i应赋初值为0。
填空2:循环变量i自增1运算。
填空3:根据公式确定表达式通项。注意x为double型,故应将i变为double型再进行运算。
第33套 程序填空题参考答案及解析
【参考答案】
(1) && (2) 0或′\0′ (3) s[j]或*(s+j)
【考点分析】
本题考查:if语句条件表达式,很多情况下,往往需要配合逻辑运算符的使用;while循环语句循环条件的设定。
【解题思路】
填空1:if语句中的条件是判断是否为数字字符,数字字符的条件是大于等于“0”,同时小于等于“9”,因此需要使用逻辑与“&&”来连接。
填空2:while语句判断是否到达字符串的结尾,因此填入0(字符串结束标识‘\0’)。
填空3:for语句使数字后的字符全都向后移一个单位,因此要使s[j+1]=s[j];。
【解题宝典】
如要在字符串中位置i处插入字符,需要将位置为i及其以后的字符后移一个单位,以便进行插入操作。
第34套 程序填空题参考答案及解析
【参考答案】
(1)NODE (2)next (3)r
【解题思路】
填空1:本题考查了函数指针变量的函数返回值的类型,* fun(NODE *h)的返回值为p,而p的数据类型为NODE,因此本空应该填写NODE。
填空2:从此空的形式p->可知本空应该填写next。
填空3:本题要求将不带头结点的单向链表逆置,为了使q的指针向后移,此空应该填写r。
第35套 程序填空题参考答案及解析
【参考答案】
(1) struct student (2) a.name (3) a.score[i]
【考点分析】
本题考查:函数定义;结构体变量成员的表示方法。
【解题思路】
填空1:函数定义时,类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。本题中,用结构类型定义函数类型。
填空2 和填空3:此处考查结构体变量成员的表示方法,a.name和a.score[i]分别表示学生的姓名和成绩。
第36套 程序填空题参考答案及解析
【参考答案】
(1)next (2)NULL (3)r
【解题思路】
填空1:本空考查了为p赋初值。根据题目的要求是将带头结点的单向链表逆置可知,p的初值应该为h->next。
填空2:if判断语句表明当p等于什么时就要返回,因此只能当 p 等于 NULL 时返回,不用做后面的链表的逆置了。
填空3:把q的指针向后移动,才能实现将带头结点的单向链表逆置。因此本空填写r。
第37套 程序填空题参考答案及解析
【参考答案】
(1)t=i (2) i (3) ′\0′或0
【考点分析】
本题考查:变量赋值语句;for循环语句;数组元素赋值操作;字符串结束标识‘\0’。
【解题思路】
本题中第1个for循环的作用是得到字符串的长度,第2个for循环的作用是对下标为奇数的字符按ASCII码大小排序,最后将排好序的字符取出。
填空1:取出字符串中下标为奇数的字符,所以将下标i赋值给中间变量t。
填空2:此处for循环语句的作用是实现对下标为奇数的元素进行排序操作,所以循环变量初值应填入j=i+2;。
填空3:将下标为奇数的字符取出后,存入p所指的数组中,最后不要忘记在数组最后加入字符串结束标识‘\0’。
第38套 程序填空题参考答案及解析
【参考答案】
(1)p->next (2)q (3)p->next
【解题思路】
填空1:从第2个while循环可知,q的初值应该为p的next,故此空应该填写p->next。
填空2:第2个while循环表示的是每次从链表剩下的数中找出最小的数,因此此空应该以q是否为空来判断循环是否结束,所以此空应该填写q。
填空3:当找到一个最小的数时p应该向后移,因此此空应该填写p->next。
第39套 程序填空题参考答案及解析
【参考答案】
(1)FILE* (2)fp (3)ch
【解题思路】
填空1:由语句fopen("file1.txt","r")可知,fp应该是文件类型指针,因此本空应该填写FILE*。
填空2:feof函数只能对文件类型数据进行操作,因此本空应填写fp。
填空3:putchar()代表输入一个字符,从ch = fgetc(fp)可以看出本题应该填写ch。
第40套 程序填空题参考答案及解析
【参考答案】
(1) ′\0′ (2) 0 (3) c
【考点分析】
本题考查:字符串结束标识‘\0’;变量赋初值;数组元素赋值。
【解题思路】
填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘\0’。
填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。
填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c。
第41套 程序填空题参考答案及解析
【参考答案】
(1) s[i] (2) k (3) ‘\0’或0
【考点分析】
本题考查:数组元素赋值;for循环语句中循环变量的取值范围;字符串结束标识‘\0’。
【解题思路】
填空1:将字符串s中所有字母元素赋给数组t。
填空2:字符串中所有非字母元素放到字母元素后面,所以i的取值范围是0~k。
填空3:最后给字符串加入结束标识‘\0’。
第42套 程序填空题参考答案及解析
【参考答案】
(1)FILE* (2)fclose(fp) (3)fp
【解题思路】
填空1:从使用fp = fopen("file1.txt","w")可知fp应该是文件类型指针,因此本空应该填写FILE*。
填空2:当对fp作打开操作的时候,并进行不同的操作前,应该对其关闭。因为在第一次打开时是对fp进行写操作,而在第二次打开后进行的是读操作,因此应该先对fp进行关闭,本空填fclose(fp)。
填空3:fscanf()是把文本文件输出,因此本空只能填写fp。
第43套 程序填空题参考答案及解析
【参考答案】
(1) sum=0 (2) t[i][i] (3) 1
【考点分析】
本题考查:变量初始化;N×N矩阵对角线下标的表示方法;累加操作。
【解题思路】
填空1:变量sum用来储存“和”结果,所以将其初始化为0。
填空2:从题目中可以了解到,主对角线元素的行和列下标是相同的,所以应填入t[i][i]。
填空3:对于反向对角线元素的行和列的下标,它们的关系是相加和为n-1,所以应填入1。
第44套 程序填空题参考答案及解析
【参考答案】
(1) 0 (2) x (3) t++
【考点分析】
本题考查:变量赋初值;while循环语句。
【解题思路】
填空1:变量n用于存放符合条件的整数的个数,应赋初值为0。
填空2:根据题目要求,确定循环变量 t的取值范围为t<=x。
填空3:循环变量t自增1操作。
第45套 程序填空题参考答案及解析
【参考答案】
(1) [M] (2) N (3) ′\0′
【考点分析】
本题考查:函数定义;while循环语句;字符串结束标识‘\0’。
【解题思路】
填空1:根据main函数中的函数调用语句,确定函数定义时的形式参数,所以填入[M]。
填空2:while循环语句需要对所有字符串进行操作,因此循环条件是i<N。
填空3:字符串结尾加入字符串结束标识‘\0’。
第46套 程序填空题参考答案及解析
【参考答案】
(1) fp (2) fclose(fp) (3) fname
【考点分析】
本题考查:文件的相关操作,fprintf函数与printf函数功能相似,区别在于fprintf函数的对象不是键盘和显示器,而是磁盘文件;文件打开和关闭函数fopen和fclose的使用。
【解题思路】
填空1:fprintf函数的形式是:fprintf(文件指针,格式字符串,输出表列);,所以填入文件指针fp。
填空2:文件一旦使用完毕,应使用关闭函数fclose将文件关闭,以避免发生文件数据丢失等错误。
填空3:fopen函数用来打开一个文件,其一般形式为:文件指针名=fopen(文件名,使用文件方式),因此应填入文件名fname。
第47套 程序填空题参考答案及解析
【参考答案】
(1) 10 (2) 0 (3) x
【考点分析】
本题考查:求余运算;if语句条件表达式。
【解题思路】
填空1:通过t对10求余,取出该数值的各个位。
填空2:通过if条件语句实现奇偶数的判定。如果条件表达式对2求余为0即为偶数,反之则为奇数。
填空3:最后将剩余的数赋给n所指向的元素。
第48套 程序填空题参考答案及解析
【参考答案】
(1) N (2) N-1 (3) 0
【考点分析】
本题考查:for循环语句;N × N矩阵中各个元素的表示方法。
【解题思路】
填空1:因为是N×N的矩阵,所以行列数是相同的。第一个for循环用来循环行,因此填入一个循环界限N。
填空2:此语句将移出矩阵的元素暂存,移出矩阵的元素的列下标为N-1,因此填入N-1。
填空3:此语句将移出矩阵的元素放入最左边,也就是第一列,第一列元素的列下标为0,因此填入0。
第49套 程序填空题参考答案及解析
【参考答案】
(1) a[] (2) 2 (3) i+1
【考点分析】
本题考查:函数定义;for循环语句。
【解题思路】
填空1:由main中的函数调用语句确定函数定义的形式参数。
填空2:for循环语句中,循环变量增值为2。
填空3:确定for语句循环变量的初值。
第50套 程序填空题参考答案及解析
【参考答案】
(1) NULL (2) n (3) head,ch
【考点分析】
本题考查:链表相关知识;while循环语句;函数返回值。
【解题思路】
填空1:while循环语句用来判断是否到达链表结尾,链表结尾结点指针域是NULL。
填空2:若找到指定字符,则通过return语句将该结点在链表的顺序号返回给main函数。
填空3:函数调用语句,其形式是:函数名(实际参数表),因此根据函数定义语句,填入head,ch。