1[单选题] 若有C语言表达式2+3*4+7/3,以下选项中叙述正确的执行顺序是
A.先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16
B.先执行3*4得12,再执行7/3得2.5,最后执行2+12+2.5得16.5
C.先执行7/3得2,再执行3*4得12,再执行12+2得l4,最后执行2+14得l6
D.先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行27/3得9
参考答案:A
参考解析:首先,在c语言中,乘除法优先级要高于加减法,其次,除法运算符"/"两边参加运算对象都是整数,运算结果要取整,故排除B,D选项;C语言中。因为“*”和“/”都满足从左到右的运算规则,故应先计算3*4=12。因此c排除,答案为A选项。
2[单选题] 设有以下函数:
voidfun(intn,char}s){……}
则下面对函数指针的定义和赋值均正确的是( )。
A.void(*pf)(int,char);pf=&fun;
B.void+pf( );pf=fun;
C.void*pf( );*pf=fun;
D.void(*pf)(int,char*);pf=fun;
参考答案:D
参考解析:函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的人口地址,指向函数的指针应该定义为void(+pf)()。如果定义为void·pf(),则表示函数pf返回值为一个基类型为void的指针。因此D选项正确。
3[简答题]下列给定程序中,函数proc()的功能是:将str所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为a),其他字符不变。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
参考解析:
(1)错误:while(*str!='@')
正确:while(*str)
(2)错误:(*str)++;
正确:str++;
4[单选题] )以下叙述中正确的是()
A.每个后缀为.C的C语言源程序都可以单独进行编译
B.每个后缀为.C的C语言源程序都应该包含一个main函数
C.在C语言程序中,main函数必须放在其他函数的最前面
D.在C语言程序中,只有main函数才可单独进行编译
参考答案:A
参考解析:一个普通的C函数可以单独作为一个C的程序文件存在被包含到其他程序中。每个后缀为.C的C语言源程序都可以单独进行编译,所以B。D错误。main函数可以放在程序的开始。中间,最后,所以C错误。
5[简答题]编写函数void proc(int x,int pp[],int*n),它的功能是求出能整除x且不是奇数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参返回。
例如,若x中的值为30,则有4个数符合要求,它们是2 6 10 30。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考解析:
【解析】按照题目中要求,求出能整除x且不是奇数的各整数。首先判断小于等于整数x的所有偶数是否能被x整除,将能被x整除的奇数放入数组pp中。最后将数组pp中元素的个数返回到主函数当中。
6[单选题] 若有下列定义(设int类型变量占2个字节):int j=8,j=9;则下列语句:printf(”i=%%d,j=%%dn”,i,j);输出的结果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9 D.8,9
参考答案:B
参考解析:本题考查函数的输出格式。在printf函数中,格式说明符中有两个“%”,表示将第1个%后面的字符原样输出,并不输出其对应的变量值。
7[单选题] 软件生命周期是指( )。
A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件从需求分析、设计、实现到测试完成的过程
C.软件的开发过程
D.软件的运行维护过程
参考答案:A
参考解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
8[单选题] 以下叙述中错误的是( )。
A.C程序在运行过程中所有计算都以二进制方式进行
B.C程序在运行过程中所有计算都以十进制方式进行
C.所有C程序都需要编译链接无误后才能运行
D.C程序中字符变量存放的是字符的ASCIl码值
参考答案:B
参考解析:C程序在运行过程中的所有计算都以二进制方式进行,所以B选项错误。
9[简答题]编写函数fun,其功能是:将所有大于1小于整数m的非素数存人XX所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考解析:
【考点分析】
本题考查:如何判断非素数;循环判断结构;数组的引用。
【解题思路】
题目要求将l—m之问的非素数存人数组中,应使用循环判断结构。循环语句用来遍历1一m之间的每个数,判断语句用来判断该数是否为素数,若不是素数,则将其存人数组中。这道题目是考查—个数是否为素数的简单延伸,只要掌握了判断素数的方法,问题便能顺利解决。
【解题宝典】
判定一个数是否为素数,即该数除了能被l和它本身外,不能被任何数整除。
代码实现为:
for(j=2;j
此语句需要熟记,很多判断素数的题目也可通过此法解决。
10[填空题]给定程序中,函数fun的功能是:计算形参X所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至X所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有l0个正数:46、30、32、40、6、17、45、15、48、26,平均值为30.500000。
移动后的输出为:46、32、40A5、48、30、6、17、15、26。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
(1)sdN (2)j++ (3)一1
【解题思路】
填空l:由原程序可知,av代表的是平均值,而平均值的求法是所有数的总和除以数的个数,因而本空应该填写s/N。
填空2:y数组代表暂时存放X数组,if(X[i]>av)表达的是当x数组中的数大于平均值时,应该把这些大于平均值的数放在y数组的前半部分,因而此空应该填y[j++]。
填空3:此空表明当x[i]不等于什么时,X[i]中的数要赋值给Y数组,由题意可知此空只能填写一1。
更多精彩资讯请关注查字典资讯网,我们将持续为您更新最新资讯!