1[填空题]从键盘输入一组无符号整数并保存在数组xx[M]中,以整数0结束输入,即第M+1个数是0(共M个数据),数与数之间以Enter键分隔,要求这些数的最大位数不超过4位,其元素的个数通过变量num传人函数proc()。请补充函数proc(),该函数的功能是:从数组XX中找出十位和百位的数字之和大于5的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。
例如,当xx[8]={3 637 369 421 35 7334 54 67}时,bb[4]={637 369 421 7334 67)。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填人所编写的若干表达式或语句。
试题程序:
参考解析:
【1】xx[i]/100【2】bb[n++]=xx[i]【3】n
从数组XX中找出十位和百位的数字之和大于5的所有无符号整数,首先要得到每一个整数十位和百位的数字。要得到一个整数十位和百位的数字,可以通过取余来实现,因此,【1】处填“xx[i]/100”;每得到一个符合要求的整数,放在数组bb中,因此,【2】处填“bb[n++]=xx[i]”;变量n中存放的是符合要求的个数,最后返回各主函数,因此【3】处填“n”。
2[单选题] 若变量已正确定义
for(x=0,Y=0;(y!=99&&x<4);x++)
则以上for循环
A.执行3次B.执行4次C.执行无限次D.执行次数不定
参考答案:B
参考解析:本题重点考查for语句的循环次数,for(x=0,y=0;(y!=99&&x<4);x++),y!=99&&x<4即循环条件当y不等于99以及x<4时,执行循环语句,当有一个条件不成立时,均结束循环,因此循环4次,B选项正确。
3[单选题] 以下叙述中错误的是
A.用typedef可以说明一种新的类型名
B.typedef的作用是用一个新的标识符来代表已存在的类型名
C.可以用typedef说明的新类型名来定义变量
D.typedef说明的新类型名必须使用大写字母,否则会出编译错误
参考答案:D
考解析:本题考查typedef的使用方法,typedef对已存在的类型使用一个新的名字,新类型可以使用小写,所以D选项错误。
4[简答题]规定输入的字符串中只包含字母和*号。编写函数fun(),其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G****”,删除后,字符串中的内容应当是“ABCDEFG”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入编写的若干语句。
试题程序:
参考解析:
【解析】此题是删除字符串中的星号。思路是通过for循环来完成对字符串的遍历,通过if判断,找到不是“*”的字符,将其赋值到数组a中星号前的位置,“if(a[i]!= ˊ*ˊ)”“a[j++]=a[i]”,最后返回主函数将删除*后的字符串输出即可。
5[单选题] 下列变量声明合法的是()。
A.short a=1.4e-1;
B.double b=1+3e2.8;
C.10ng do=0xfdaL;
D.float 2_ aaa=1e-3;
参考答案:A
参考解析:解答本题需了解3个知识点:①标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线;②do是C语言的一个关键字,不能再用作变量名和函数名;③C语言规定指数形式的实型数量e或E后面的指数必须是整数。
6[单选题] 以下叙述中错误的是()。
A.改变函数形参的值,不会改变对应实参的值
B.函数可以返回地址值
C.可以给指针变量赋一个整数作为地址值
D.当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL
参考答案:C
参考解析:指针变量的值只能是存储单元地址,而不能是一个整数,故选项C错误。
7[填空题]请补充main()函数,该函数的功能是求方程axs+bx+c=0的两个实数根。方程的系数a、b、C从键盘输入,如果判别式(disc=b*b-4*a*c)tb于0,则要求重新输人a、b、c的值。
例如,当a=1,b=2,c=1时,方程的两个根分别是:x1=-1.00,X2=-1.00。
注意:部分源程序给出如下。
请勿改动函数中的其他任何内容,仅在横线上填入所编写的若干表达式或语句。
试题程序:
参考解析:
【1】disc%0或0>disc【2】sqrt【3】sqrt
【解析】本题考查的是do-while循环,第【1】处填空:“disc<0”或“0)disc”;本题引入“#include”头文件可知,可调用函数sqrt。
8[单选题] 下列数据结构中,能够按照“先进后出”原则存取数据的是( )。
A.循环队列B.栈C.队列D.二叉树
参考答案:B
参考解析:栈是按先进后出的原则组织数据的。队列是先进先出的原则组织数据。
9[简答题]下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
参考解析:
(1)fh(j=i+1;j<6;j++)
(2)*(pstr+i)=}(pstr+j);
【考点分析】
本题考查:冒泡排序算法;for循环语句格式;指针数组。
【解题思路】
(1)此处考查for语句的格式,各表达式之间应用“;”隔开。
(2)此处考查用指针表示数组元素的方法,}(pstr+I)表示pstr所指向数组的第1个元素,同理}(pstr+j)表示pstr所指向数组的第j个元素。
【解题宝典】
冒泡排序算法,其基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。依次类推,完成排序。
用代码实现数组s[N]的升序排列为:for(i=0;i
for(j=i十1;j
if(s[i]>s[j]){t-s[i];s[i]=s[j]s[j]=t;}
10[单选题] 有以下程序:
程序执行后的输出结果是( )。
A.x=4B.X=8C.x=6D.x=12
参考答案:B
参考解析:
eoulinue的作用是跳出循环体中剩余的1语句而进行下一次循环。第一次执行外循环i的值为0,执行|x++,x的值变为l,第一次执行内层循环j的值为0,不满足if1条件,执行x++,x的值变为2,第二次内循环j的值为1,if条1件成立,跳出本次循环,第三次执行内循环j的值为2,不满足l if条件,x的值变为3,第四次执行内循环j的值为3满足条件1跳出本次内循环,x的值加l,即为4,第一次外循环结束。第1二次执行外循环时,同理,i的值被加了,4次,变为8,所以选择I,B选项。
更多精彩资讯请关注查字典资讯网,我们将持续为您更新最新资讯!