必胜高考网 > 计算机类 > 计算机等级 > 资讯 >

2015年9月计算机二级《C语言》模拟卷(2)

时间: 家辉2 资讯

  29

  若执行以上程序从键盘上输入3和4时,则输出结果是(  )。

  A.14B.16C.18 D.20

  参考答案:B

  参考解析:scanf(''%d,%d'',&a,&b);//a=3,b=4s=a;//s=3if(s=b)//此处先将b(b=4赋给s,则s=4 s=b返回值为4s*=s://s=s*s=16因此输出结果为16。正确答案为B。

  30设变量已正确定义,则以下能正确计算f=n!的程序是(  )。

  A.

  B.

  C.

  D.

  参考答案:D

  参考解析:由n!的数字定义可知n!=n*(n-1)*(n 2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,…,n,最后计算得到f=n!=0,所以选项A不正确。在选项B中,f的初值为1,在for循环语句中,f依次乘以1,2,3,…,(n-1),最后计算得到f=(n-1)!,所以选项B不正确。在选项C中,f的初值为l,在for循环语句中,f依次乘以n,n+1,n+2,…,所以选项C不正确。在选项D中,f的初值为1,在for循环语句中,f依次乘以n,n-1,n-2,…,2,最后计算得到f=n!,所以选项D正确。

  31下列叙述中正确的是(  )。

  A.算法的执行效率与数据存储结构无关

  B.算法的空间复杂度是指算法程序中指令(或语句)的条数

  C.算法的有穷性是指算法必须能在执行有限个步骤之后终止

  D.以上3种描述都不对

  参考答案:C

  参考解析:在程序设计中,算法执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需存储空间。

  32已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是(  )。

  A.

  B.

  C.

  D.

  参考答案:B

  参考解析:选项B先计算关系表达式“ˊAˊ<=c”的值是0还是1,再比较该值与字符ˊzˊ之间的大小关系,不能实现题目所要求的功能。

  33

  =r;”,则以下正确的叙述是(  )。

  A.两个*P含义相同,都说明给指针变量P赋值

  B.在“double r=99,*p=&r;”中,把r的地址赋给了p所指的存储单元

  C.语句“*p=r;”把变量r的值赋给指针变量p

  D.语句“*p=r;”取变量r的值放回r中

  参考答案:B

  参考解析:在定义*p=&r时,是表示r的地址赋给了P所指的存储单元,因此选项B正确。

  34以下关于字符串的叙述中正确的是(  )。

  A.C语言中有字符串类型的常量和变量

  B.两个字符串中的字符个数相同时才能进行字符串大小的比较

  C.可以用关系运算符对字符串的大小进行比较

  D.空串一定比空格打头的字符串小

  参考答案:D

  参考解析:字符串常量是由双引号括起来的一串字符,所以A选项错误;任意两个字符串的大小比较要调用字符串比较函数strcmp(sl,s2)来进行,所以选项B和C错误。

  35以下程序的输出结果是(  )。

  A.8,7,8,7B.7。8,7,8C.8,7,7,8 D.7,8,8,7

  参考答案:C

  参考解析:在“r=P;p=q;q=r;”三个语句是表示P与q交换,经过交换后P指向b的地址,q指向a的地址,因此最后输出为8,7,7,8,故选择C选项。

  36有下列程序:

  执行后的结果是(  )。

  A.输出字符a的ASCⅡ码B.输出字符C的ASCⅡ码C.输出字符CD.程序出错

  参考答案:D

  参考解析:因为字符数组s[];中的数组名S表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。

  37有以下程序

  程序的运行结果是(  )。

  A.1,2,3,0,0,0,0,0,0,0,

  B.1,2,3,1,2,3,0,0,0,0,

  C.123,0,0,0,0,l23,0,0,0,0,

  D.1,2,3,0,0,1,2,3,0,0,

  参考答案:D

  参考解析:本题程序首先用函数fopen()以“wb”的方式开打文件“d2.dat”,然后调用两次fwrite函数将数组a的5个元素,依次输出到文件fp中,共l0个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用fread函数从文件印中读取这10个字节的数据到数组a中。

  38有下列程序:

  执行后的输出结果是(  )。

  A.5,5B.5.1lC.11,11D.11,5

  参考答案:B

  参考解析:子函数fun(int x,int y),将变量in和i声明为局部静态变量,因此第l次调用主函数后,局部静态变量In和i的值分别为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。

  39有下列程序:

  程序的输出结果是(  )。

  A.1B.2 0C.1-4D.死循环

  参考答案:C

  参考解析:本题考查do-while循环。先执行d0的内容,也就是printf语句,x=x-4=1,输出1,判断while循环的控制条件,--x=0,则!(--x)为非零,循环条件成立,执行下一次循环;x=x-4=-4,输出-4,判断while循环的条件,--x=-5,则!(--x)为零,循环条件不成立,结束循环。

  40标准库函数fgets(s,n,file)的功能是(  )。

  A.从文件file中读取长度为n的字符串存入字符数组S由

  B.从文件file中读取长度不超过n-1个字符的字符串放到字符数组S中

  C.从文件file中读到n个字符串存入字符数组s中

  D.从文件file中读取长度为n-1个字符的字符串存人字符数组s中

  参考答案:B

  参考解析:本题考查fgets()函数的使用调用形式:fgets(S,n,fp)。fgets函数参数说明:“s”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件型指针。fgets函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串放到字符数组s中,读入字符串后会自动在字符串末尾加入″\0″结束符。表示字符串结束。

  二、程序填空题

  41请补充函数proc(),该函数的功能是判断一个数是否为素数。该数是素数时,函数返回字符串:“yes!”,否则函数返回字符串:“no!”,并在主函数中输出。

  注意:部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

  试题程序:

  参考解析:

  【l】char*proc(int n)【2】2【3】n%i==0

  【解析】由整个程序可知,【1】应为函数proc()的函数头。根据主函数中的调用可知形参的个数和类型,因此,【1】处填“char”proc(int n)”。素数为只能被1和它本身整除的整数。要判断一个整数是否为素数,要看它是否能被除1和小于它本身之外的数整除,因此,【2】处填“2”;【3】处填“n%i==0”。

  三、程序改错题

  42给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。

  请修改程序中的错误,使它能得出正确的结果。

  注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

  试题程序:

  参考解析:

  四、程序设计题

  43请编写函数proc(),其功能是:计算并输出给定10个数的方差。

  例如,给定的10个数为88.0,89.5,54.0,78.5,89.0,63.0,85.7,83.0,77.0,83.0,则输出为S=11.195271。

  注意:部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。

  试题程序:

  参考解析:

  【解析】题目要求求方差,因此首先我们应通过循环求得其平均数,然后通过循环来求其平方差,最后求其方差,把方差返回到主函数中。

55739