1、二级 C语言笔试-135 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.若有以下的说明和语句:int t33,*pt3,k;for(k=0;k3;k+) ptk=则在执行 for语句后,*(*(pt+1)+2)表示的数组元素是_。(分数:2.00)A.t20B.t22C.t12D.t212.若有以下定义,则不能代表字符。的表达式是_。char s20=“programming“,*ps=s;(分数:2.00)A.ps+2B.s2C.ps2D.ps+=2,*ps3.以下能正确定义整型变量 a,b 和 c,并为其赋初值 1的语句是_。(分数:2
2、.00)A.int a=b=c=1;B.int a,b,c=1;C.a=b=c=1;D.int a=1,b=1,c=1;4.设栈 S的初始状态为空,栈的容量为 5,若入栈元素的顺序是 e1、e 2、e 3、e 4、e 5,则出栈元素的顺序不可能是_。(分数:2.00)A.e1、e 2、e 3、e 4、e 5B.e5、e 4、e 3、e 2、e 1C.e2、e 4、e 3、e 5、e 1D.e3、e 4、e 1、e 2、e 55.属于 C语言中合法的常量是_。(分数:2.00)A.1.52eB.100C.xD.“xt“y6.执行以下语句的结果为_。int x=3,y;int*px=y=*px+;
3、(分数:2.00)A.x=3,y=4B.x=3,y=3C.x=4,y=4D.x=3,y不知7.当调用函数时,实参是一个数组名,则向函数传送的是_。(分数:2.00)A.数组的长度B.数组的首地址C.数组每个元素的地址D.数组每个元素中的值8.已有定义 int(*p)();,指针 p可以_。(分数:2.00)A.代表函数的返回值B.指向函数的入口地址C.代表函数的类型D.代表函数返回值的类型9.设 a为整型变量,不能正确表达数学关系“10a15”的 C语言表达式是_。(分数:2.00)A.10a15B.a=11|a=12|a=13|a=14C.a10x=2;y=3;z=4;m=(mx)?m:x;
4、m=(ny)?m:y;m=(mz)?m;z;(分数:1.00)A.1B.2C.3D.412.算法是求解问题的方法,具有输入、输出、有穷性、确定性和_的特性。(分数:1.00)A.可行性B.计算性C.程序设计性D.检索性13.下列程序的运行结果是_。void fun(int *a,int *b)int *k;k=a;a=b;b=k;main()int a=3,b=6,*x=fun(x,y);printf(“%d%d“,a,b);(分数:1.00)A.63B.36C.编译出错D.0014.计算机系统的组成是_。(分数:1.00)A.主机、外设B.运算器、控制器C.硬件系统和软件系统D.CPU、内存
5、储器15.若输入 12345、abc,程序的输出结果为_。main()int a;char ch;scanf(“%3d,%3c“,printf(“%d,%c“,a,ch);(分数:1.00)A.123,abcB.123,4C.123,aD.12345,abc16.以下程序的输出结果是_。#define f(x)x*xmain()int a=6,b=2,c;c=f((分数:1.00)A./f(B.;printf(“%d/n“,C.;unionunsigned char c;unsigned int i4;z;z.i0=0x39;z.i1=0x36;printf(“%d/n“,z.c);(分数:1
6、.00)A.56B.57C.58D.5924.以下程序的输出结果是_。main()char ch34=“123“,“456“,“78“,*p3;int i;for(i=0;i3;i+) pi=chi;for(i=0;i3;i+) printf(“%s“,pi);(分数:1.00)A.123456780B.123 456 780C.12345678D.14725.设有以下程序:struct stint n;struct st*next;static struct st a3=5,p=下面其值为 6的表达式为_。(分数:1.00)A.p+-nB.p-n+C.(*p).n+D.+p-n26.下列语句
7、执行后的结果是_。y=5;p=;x=*p+;(分数:1.00)A.x=5,y=5B.x=5,y=6C.x=6,y=5D.x=6,y=627.若 i和 j已定义为 int类型,则以下程序段中内循环体总的执行次数是_。for(i=5;i;i-)for(j=0;j5;j+).(分数:1.00)A.20B.25C.24D.3028.下述程序的输出结果是_。#includestdio.hmain()enum teamJack,Andy,Sam=10,Bob=Sam+2,Tom;printf(“%d,%d“,Andy,Tom);(分数:1.00)A.2,13B.1,0C.1,13D.1,1229.下面的程
8、序 ASC。main()int x=3,y=0,z=0;if(x=y+z)printf(“*“);elseprintf(“#“);(分数:1.00)A.有语法错误不能通过编译B.输出*C.可以通过编译,但是不能通过连接,因而不能运行D.输出#30.已知 a=15,执行 fprintf(fp,“%d“,(分数:1.00)A.后,写入 fp指向的文件的是_。A) 15B) 1111C)31.以下运算符中优先级最低的算符是_。(分数:1.00)A.,以下叙述中有错误的是_。(分数:1.00)A.变量 s中存放了字符 P的地址B.s0中存放了字符 PC.*s中存放了字符 PD.s中存放了一个字符串33
9、.以下数据结构中不属于线性数据结构的是_。(分数:1.00)A.队列B.线性表C.二叉树D.栈34.计算机软件一般包括应用软件和_。(分数:1.00)A.字处理软件B.系统软件C.服务性软件D.操作系统35.在 C语言中,如果下面的变量都是 int类型,则输出的结果是_。sum=pad=5;pad=sum+;pad+;+pad;printf(“ %d/n “,pad);(分数:1.00)A.7B.6C.5D.436.能直接与 CPU交换信息的功能单元是_。(分数:1.00)A.硬盘B.控制器C.主存储器D.运算器37.已知 a的 ASC码为 97,执行下面两个语句后,输出的结果为_。char
10、c1=97;c2=98;printf(“%d%c“,c1,c2);(分数:1.00)A.97 98B.97 bC.a 98D.a b38.以下只有在使用时才为该类型变量分配存储单元的存储类说明是_。(分数:1.00)A.auto和 staticB.auto和 registerC.register和 staticD.extern和 register39.在计算机系统中,一个字长的二进制位数为_。(分数:1.00)A.8B.16C.32D.由 CPU型号决定40.下列合法的数组定义是_。(分数:1.00)A.int a=“string“;B.int a5=0,1,2,3,4,5;C.char s=
11、“string“;D.char a=0,1,2,3,4,5;41.有如下的程序:int f(char*s)char *p=s;while(*p!=/0) p+;return(p-s);如果在主程序中用下述语句调用上述函数,则输出结果为_。printf(“%d/n“,f(“best one!“);(分数:1.00)A.3B.6C.8D.942.下列描述中,错误的一条是_。(分数:1.00)A.已知 i=3,执行语句 k=(+i)+(+i)+(+i)后,k 的值为 15B.逻辑表达式!(53)printf(“%d“,*-p);(分数:1.00)A.非法B.a4的地址C.5D.344.以下程序中的
12、for循环执行的次数是_。#define N 2#define M N+1#define NUM 2*M+1main()int i;for(i=1;iNUM;i+)printf(“%d/n“,i);(分数:1.00)A.5B.6C.7D.845.以下说法中正确的是_。(分数:1.00)A.C语言程序总是从第一个定义的函数开始执行B.C语言程序中,要调用的函数必须在 main()函数中定义C.C语言程序总是从 main()函数开始执行D.C语言程序中的 main()函数必须放在程序的开始部分46.若 a=1,b=2,则 a|b的值是_。(分数:1.00)A.0B.1C.2D.347.编码是指_。
13、(分数:1.00)A.总体设计到详细设计的过程B.用 0、1 代码改写详细设计的结果C.用编程语言改写详细设计的结果D.上述都不对48.以下关于 switch语句和 break语句的描述中,正确的是_。(分数:1.00)A.在 switch语句中必须使用 break语句B.在 switch语句中,可以根据需要使用或不使用 break语句C.break语句只能用于 switch语句中D.break语句是 switch语句的一部分49.若有以下定义和语句:double r=23,*p=*p=r;则以下正确的叙述是_。(分数:1.00)A.两处的*p 含义相同,都说明给指针变量 p赋值B.在“dou
14、ble r=23,*p=”中,把 r的地址赋值给了 p所指的存储单元C.语句“*p=r;”把变量 r的值赋给指针变量 pD.语句“*p=r;”取变量 r的值放回 r中50.以下正确的函数定义是_。(分数:1.00)A.double f1(int x,int y)B.double f1(int x;int y)C.double f1(int x;float y)D.double f1(int x,y)二、填空题(总题数:13,分数:26.00)51.一张 3.5英寸软盘大约能存储 140万个 ASC字符,若存放汉字大约能存放 【1】 个。(分数:2.00)填空项 1:_52.一个算法的空间复杂度
15、是指该算法所耗费的 【2】 。(分数:2.00)填空项 1:_53.当所有结点的权值都相等时,用这些结点构造的二叉排序树是 【3】 。(分数:2.00)填空项 1:_54.软件危机的核心问题是 【4】 和软件开发效率低。(分数:2.00)填空项 1:_55.栈满时,再作入栈操作会产生 【5】 ,栈空时,删除操作会产生 【6】 。(分数:2.00)填空项 1:_56.以下程序的输出结果是 【7】 。main()int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%d/n“,a,b);(分数:2.00)填空项 1:_57.设 a,b,c 为整型数,且 a=2,b=3,
16、c=4,则执行完以下语句后,a 的值是 【8】 。a*=16+(b+)-(+c);(分数:2.00)填空项 1:_58.下列程序中字符串中各单词之间有一个空格,则程序的输出结果是 【9】 。#includestring.hmain()char str1=“How do you do“,*p1=str1;strcpy(str1+strlen(str1)/2,“es he“);printf(“%s/n“,p1);(分数:2.00)填空项 1:_59.以下程序用来输出结构体变量 student所占存储单元的字节数,请填空。struct stchar name20;double score;;main
17、()struct st student;printf(“student size:%d/n“,sizeof( 【10】 );(分数:2.00)填空项 1:_60.若要使指针 p指向一个 double类型的动态存储单元,请填空。p= 【11】 malloc(sizeof(double);(分数:2.00)填空项 1:_61.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。main()float x1000,sum=0,ave,a;int n=0,i;printf(“Enter mark:/n“);scanf(“%f“,while
18、(a=0.0xn= 【13】 ;n+;scanf(“%f“,ave= 【14】 ;printf(“Output:/n“);printf(ave=%f/n“,ave);for(i=0;in;i+)if( 【15】 ) printf(“%t/n“,xi);(分数:2.00)填空项 1:_62.Fibonacci数列中的头两个数是 1和 1,从第 3个数开始,每个数等于前两个数之和。下述程序计算此数列的前 20个数,且每行输出 5个数,请填空。#includestdio.hmain()int f,f1=1,f2=1;int i;printf(“%6d%6d“,f1,f2);for(i=3;i=20;
19、i+)f= 【16】 ;printf(“%6d“,f);if( 【17】 )printf(“/n“);f1=f2;【18】 ;(分数:2.00)填空项 1:_63.下面程序把从终端读入的 10个整数以二进制方式写入一个名为 bi.dat的新文件中。#includestdio.hFILE *fp;main()int i,j;if(fp=fopen( 【19】 )=NULL) exit(0);for(i=0;i10;i+)scanf(“%d“,fwrite(fclose(fp);(分数:2.00)填空项 1:_二级 C语言笔试-135 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(
20、总题数:50,分数:60.00)1.若有以下的说明和语句:int t33,*pt3,k;for(k=0;k3;k+) ptk=则在执行 for语句后,*(*(pt+1)+2)表示的数组元素是_。(分数:2.00)A.t20B.t22C.t12 D.t21解析:解析 pt 是指向整型变量的指针数组, pt+1 即 pt1表示第 2行的首地址,*(pt+1)表示第 2 行第 1个元素即 t10的地址,*(pt+1)+2 表示第 2行第 3个元素即 t12的地址,(*(pt+1)+2)则表示第 2行第 3个元素。2.若有以下定义,则不能代表字符。的表达式是_。char s20=“programmin
21、g“,*ps=s;(分数:2.00)A.ps+2 B.s2C.ps2D.ps+=2,*ps解析:解析 ps 是指针变量,ps+2 是地址值,表示 s2的地址,并不能代表 s2的值o;选项 B、C、D 均能代表 s2的值o。3.以下能正确定义整型变量 a,b 和 c,并为其赋初值 1的语句是_。(分数:2.00)A.int a=b=c=1;B.int a,b,c=1;C.a=b=c=1;D.int a=1,b=1,c=1; 解析:解析 选项 A中,变量 b、c 未定义;选项 B中,a、b 未赋值;选项 C中 a、b、c 均未定义。4.设栈 S的初始状态为空,栈的容量为 5,若入栈元素的顺序是 e
22、1、e 2、e 3、e 4、e 5,则出栈元素的顺序不可能是_。(分数:2.00)A.e1、e 2、e 3、e 4、e 5B.e5、e 4、e 3、e 2、e 1C.e2、e 4、e 3、e 5、e 1D.e3、e 4、e 1、e 2、e 5 解析:解析 栈是仅在表头和表尾进行插入和删除元素操作的线性表,其特点是“先进后出”。本题中,进栈的过程中可以出栈。选项 D中,如果第一个出栈的元素为 e3,由于入栈顺序是 e1、e 2、e 3,那么 e3出栈后,栈中元素必定有 e1和 e2,因为 e1先入栈,故 e1应在 e2后出栈,所以选项 D是不可能的出栈顺序。5.属于 C语言中合法的常量是_。(分
23、数:2.00)A.1.52eB.100C.x D.“xt“y解析:解析 实数的指数形式中,e 后面必须有一个整数,所以 A错;B 项错在无13 这种形式的数;字符串常量是用双引号括起来的字符序列,所以 D项错误。6.执行以下语句的结果为_。int x=3,y;int*px=y=*px+;(分数:2.00)A.x=3,y=4B.x=3,y=3 C.x=4,y=4D.x=3,y不知解析:解析 +和*的运算优先级别相同,且从右到左结合,y=*px+也就是 y=*(px+),+运算只对 px有效。这里+是后置的,应当先将 px所指向的变量*px(也就是变量 x)的值赋给变量 y,然后 px才增 1。7
24、.当调用函数时,实参是一个数组名,则向函数传送的是_。(分数:2.00)A.数组的长度B.数组的首地址 C.数组每个元素的地址D.数组每个元素中的值解析:解析 在函数中,可以通过指针变量来引用调用函数中对应的数组元素。此操作是通过传递数组的地址来实现的。8.已有定义 int(*p)();,指针 p可以_。(分数:2.00)A.代表函数的返回值B.指向函数的入口地址 C.代表函数的类型D.代表函数返回值的类型解析:9.设 a为整型变量,不能正确表达数学关系“10a15”的 C语言表达式是_。(分数:2.00)A.10a15 B.a=11|a=12|a=13|a=14C.a10x=2;y=3;z=
25、4;m=(mx)?m:x;m=(ny)?m:y;m=(mz)?m;z;(分数:1.00)A.1 B.2C.3D.4解析:12.算法是求解问题的方法,具有输入、输出、有穷性、确定性和_的特性。(分数:1.00)A.可行性 B.计算性C.程序设计性D.检索性解析:解析 操作的实现是用算法来描述的。算法就是解决问题的方法,它是由一个若干条指令组成的有穷序列,必须满足的 5个要素是:有穷性、确定性、输入、输出和可行性。13.下列程序的运行结果是_。void fun(int *a,int *b)int *k;k=a;a=b;b=k;main()int a=3,b=6,*x=fun(x,y);printf
26、(“%d%d“,a,b);(分数:1.00)A.63B.36 C.编译出错D.00解析:解析 本题 fun函数的功能是实现数据交换,交换的只是存储指针变量的地址,且指针所指向的内容不变。14.计算机系统的组成是_。(分数:1.00)A.主机、外设B.运算器、控制器C.硬件系统和软件系统 D.CPU、内存储器解析:15.若输入 12345、abc,程序的输出结果为_。main()int a;char ch;scanf(“%3d,%3c“,printf(“%d,%c“,a,ch);(分数:1.00)A.123,abcB.123,4 C.123,aD.12345,abc解析:解析 指定输入数据所占列
27、数之后,系统自动按它截取所需数据,无须分界符。程序中指定整型变量 a占 3列,输入 12345、abc 后,系统自动将数据前 3列 123赋给变量 a,而剩余的数据则根据具体情况赋给其他变量或作为多余数据处理。因程序中还需对字符变量 ch输入数据,虽然指定输入 3列字符,但字符型数据只能有一个字符,因此把剩余的“45、abc”中第 1个数据 4赋给变量 ch,故正确答案为选项 B。16.以下程序的输出结果是_。#define f(x)x*xmain()int a=6,b=2,c;c=f((分数:1.00)A./f(B.;printf(“%d/n“,C.;unionunsigned char c
28、;unsigned int i4;z;z.i0=0x39;z.i1=0x36;printf(“%d/n“,z.c);(分数:1.00)A.56B.57 C.58D.59解析:解析 共用体变量中的所有成员共享存储空间,因此变量中的所有成员的首地址相同,且变量的地址也就是该变量成员的地址。24.以下程序的输出结果是_。main()char ch34=“123“,“456“,“78“,*p3;int i;for(i=0;i3;i+) pi=chi;for(i=0;i3;i+) printf(“%s“,pi);(分数:1.00)A.123456780B.123 456 780C.12345678 D.
29、147解析:解析 p 是指针数组,通过第 1个循环的赋值,p0、p1、p2分别指向二维数组 ch的第 1行、第 2行、第 3行,因此输出字符串“12345678”。25.设有以下程序:struct stint n;struct st*next;static struct st a3=5,p=下面其值为 6的表达式为_。(分数:1.00)A.p+-nB.p-n+C.(*p).n+D.+p-n 解析:解析 p 指向数组的第 1个元素,由于运算符-优先级高于运算符+,可知选项 A应先取 p-n的值 5,再使 p+指向下一个元素;选项 B,先取 p-n 的值 5作为表达式的值,再使 p-n 的值加 1
30、;选项 C与选项 B等价:选项 D,先使 p-n 的值增 1(即值为 6),再以此值作为表达式的值,本题应选择选项 D。26.下列语句执行后的结果是_。y=5;p=;x=*p+;(分数:1.00)A.x=5,y=5 B.x=5,y=6C.x=6,y=5D.x=6,y=6解析:解析 p=i;i-)for(j=0;j5;j+).(分数:1.00)A.20B.25 C.24D.30解析:解析 对于第一个 for语句,i 从 5至 1,且对于第二个 for语句,在 i取 5至 1的某个值时,j又从 0变化至 5。28.下述程序的输出结果是_。#includestdio.hmain()enum team
31、Jack,Andy,Sam=10,Bob=Sam+2,Tom;printf(“%d,%d“,Andy,Tom);(分数:1.00)A.2,13B.1,0C.1,13 D.1,12解析:解析 根据枚举型变量的定义方法,Jack=0,Andy=1,Sam=10,Bob=12,Tom=13。29.下面的程序 ASC。main()int x=3,y=0,z=0;if(x=y+z)printf(“*“);elseprintf(“#“);(分数:1.00)A.有语法错误不能通过编译B.输出*C.可以通过编译,但是不能通过连接,因而不能运行D.输出# 解析:解析 对于 printf()函数,若有格式控制字符
32、,则在格式控制字符的位置输出变量 i的值;否则,直接输出双引号内的内容。30.已知 a=15,执行 fprintf(fp,“%d“,(分数:1.00)A.后,写入 fp指向的文件的是_。A) 15B) 1111C)解析:解析 使用 fprintf()函数时,函数向文件输出的是 ASC码,特别在输出数值时,输出的是该数值的 ASC码,而不是数值本身。31.以下运算符中优先级最低的算符是_。(分数:1.00)A.,以下叙述中有错误的是_。(分数:1.00)A.变量 s中存放了字符 P的地址B.s0中存放了字符 PC.*s中存放了字符 PD.s中存放了一个字符串 解析:解析 将一个字符型指针 s指向
33、一个字符串,s 中存放的是该字符串的首地址。33.以下数据结构中不属于线性数据结构的是_。(分数:1.00)A.队列B.线性表C.二叉树 D.栈解析:34.计算机软件一般包括应用软件和_。(分数:1.00)A.字处理软件B.系统软件 C.服务性软件D.操作系统解析:35.在 C语言中,如果下面的变量都是 int类型,则输出的结果是_。sum=pad=5;pad=sum+;pad+;+pad;printf(“ %d/n “,pad);(分数:1.00)A.7 B.6C.5D.4解析:解析 注意 pad+和+pad 的区别。36.能直接与 CPU交换信息的功能单元是_。(分数:1.00)A.硬盘B
34、.控制器C.主存储器 D.运算器解析:解析 内存储器又称主存储器,可直接实现与 CPU间的信息交换。37.已知 a的 ASC码为 97,执行下面两个语句后,输出的结果为_。char c1=97;c2=98;printf(“%d%c“,c1,c2);(分数:1.00)A.97 98B.97 b C.a 98D.a b解析:解析 整型数据和字符数据可以通用,变量 c1和 c2被定义为字符型,语句 c1=97和 c2=98的作用相当于执行 c1=a和 c2=b两语句。在输出语句中,%d%c 是输出格式符,要求在相应位置上分别输出一个整数和一个字符。38.以下只有在使用时才为该类型变量分配存储单元的存
35、储类说明是_。(分数:1.00)A.auto和 staticB.auto和 register C.register和 staticD.extern和 register解析:解析 auto 变量和 register变量在使用时,系统自动为其分配存储单元;退出时自动释放这些存储单元另做它用。39.在计算机系统中,一个字长的二进制位数为_。(分数:1.00)A.8B.16C.32D.由 CPU型号决定 解析:解析 字长是指微机能直接处理二进制信息的位数,由 CPU的类型和型号决定。40.下列合法的数组定义是_。(分数:1.00)A.int a=“string“;B.int a5=0,1,2,3,4,
36、5;C.char s=“string“;D.char a=0,1,2,3,4,5; 解析:解析 选项 A错在用字符串对整型数组赋值;选项 B错在初始化表中数据的个数多于数组的最大长度;选项 C错在没有用数组存储字符串;选项 D的初始化表中虽然是 5个数,但实际相当于把 ASC码值是这 5个整数的字符赋值给数组,因此是正确的。41.有如下的程序:int f(char*s)char *p=s;while(*p!=/0) p+;return(p-s);如果在主程序中用下述语句调用上述函数,则输出结果为_。printf(“%d/n“,f(“best one!“);(分数:1.00)A.3B.6C.8D
37、.9 解析:解析 函数 f的功能实际上是统计字符串 s的字符数,“best one!”共 9个字符,所以选 D。42.下列描述中,错误的一条是_。(分数:1.00)A.已知 i=3,执行语句 k=(+i)+(+i)+(+i)后,k 的值为 15 B.逻辑表达式!(53)printf(“%d“,*-p);(分数:1.00)A.非法B.a4的地址C.5 D.3解析:44.以下程序中的 for循环执行的次数是_。#define N 2#define M N+1#define NUM 2*M+1main()int i;for(i=1;iNUM;i+)printf(“%d/n“,i);(分数:1.00)
38、A.5B.6 C.7D.8解析:解析 宏替换是先替换再运算返回结果,因此 N的值为 2,M 的值为 3,NUM 的值 =2*M+1=2*N+1+1=6,而不是:2*M+1=2*(N+1)+1=7。因此该循环只执行 6次。45.以下说法中正确的是_。(分数:1.00)A.C语言程序总是从第一个定义的函数开始执行B.C语言程序中,要调用的函数必须在 main()函数中定义C.C语言程序总是从 main()函数开始执行 D.C语言程序中的 main()函数必须放在程序的开始部分解析:解析 要调用的函数必须先定义(不能嵌套),但是可以互相嵌套调用。46.若 a=1,b=2,则 a|b的值是_。(分数:
39、1.00)A.0B.1C.2D.3 解析:47.编码是指_。(分数:1.00)A.总体设计到详细设计的过程B.用 0、1 代码改写详细设计的结果C.用编程语言改写详细设计的结果 D.上述都不对解析:解析 所谓“编码”,是指把软件设计的结果用计算机系统可以理解的形式表示出来。用于编码的程序设计语言可以是计算机系统能够直接理解的机器语言,也可以是必须通过汇编、编译(或解释)才能为计算机系统所理解的汇编语言或高级语言。48.以下关于 switch语句和 break语句的描述中,正确的是_。(分数:1.00)A.在 switch语句中必须使用 break语句B.在 switch语句中,可以根据需要使用
40、或不使用 break语句 C.break语句只能用于 switch语句中D.break语句是 switch语句的一部分解析:解析 break 语句可以根据需要,使用在循环体和 switch语句体内,因此 B是可选项。49.若有以下定义和语句:double r=23,*p=*p=r;则以下正确的叙述是_。(分数:1.00)A.两处的*p 含义相同,都说明给指针变量 p赋值B.在“double r=23,*p=”中,把 r的地址赋值给了 p所指的存储单元C.语句“*p=r;”把变量 r的值赋给指针变量 pD.语句“*p=r;”取变量 r的值放回 r中 解析:解析 *p=int y)C.double
41、 f1(int x;float y)D.double f1(int x,y)解析:二、填空题(总题数:13,分数:26.00)51.一张 3.5英寸软盘大约能存储 140万个 ASC字符,若存放汉字大约能存放 【1】 个。(分数:2.00)填空项 1:_ (正确答案:70 万)解析:52.一个算法的空间复杂度是指该算法所耗费的 【2】 。(分数:2.00)填空项 1:_ (正确答案:存储空间)解析:解析 空间复杂度是指算法在执行过程中临时占用的存储空间大小,包括:算法本身所占用的存储空间;算法的输入输出数据所占用的存储空间;算法在运行过程中临时占用的存储空间。53.当所有结点的权值都相等时,用
42、这些结点构造的二叉排序树是 【3】 。(分数:2.00)填空项 1:_ (正确答案:右子树(单支树))解析:解析 二叉排序树对于任意新结点,若大于等于根结点,则在右子树上建立。54.软件危机的核心问题是 【4】 和软件开发效率低。(分数:2.00)填空项 1:_ (正确答案:软件质量差)解析:解析 大约在 20世纪 60年代末人们在计算机软件的开发和维护过程中,遇到了一系列严重问题,从而认识到软件危机的存在。软件危机的核心问题是软件开发的质量太差和软件系统开发的效率太低。55.栈满时,再作入栈操作会产生 【5】 ,栈空时,删除操作会产生 【6】 。(分数:2.00)填空项 1:_ (正确答案:
43、5 上溢6 下溢)解析:56.以下程序的输出结果是 【7】 。main()int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%d/n“,a,b);(分数:2.00)填空项 1:_ (正确答案:2,1)解析:解析 本题通过“a=a+b;b=a-b;a=a-b;”语句序列实现数据交换。57.设 a,b,c 为整型数,且 a=2,b=3,c=4,则执行完以下语句后,a 的值是 【8】 。a*=16+(b+)-(+c);(分数:2.00)填空项 1:_ (正确答案:28)解析:58.下列程序中字符串中各单词之间有一个空格,则程序的输出结果是 【9】 。#includes
44、tring.hmain()char str1=“How do you do“,*p1=str1;strcpy(str1+strlen(str1)/2,“es he“);printf(“%s/n“,p1);(分数:2.00)填空项 1:_ (正确答案:How does he)解析:解析 本题的关键在于表达式 str1+strlen(str1)/2,注意“/”的用法,可得str1+13/2=str1+6。59.以下程序用来输出结构体变量 student所占存储单元的字节数,请填空。struct stchar name20;double score;;main()struct st student;
45、printf(“student size:%d/n“,sizeof( 【10】 );(分数:2.00)填空项 1:_ (正确答案:struct st 或 student)解析:60.若要使指针 p指向一个 double类型的动态存储单元,请填空。p= 【11】 malloc(sizeof(double);(分数:2.00)填空项 1:_ (正确答案:(double*))解析:解析 一般用 malloc函数为变量分配存储单元时,要在前面用强制类型转换符说明该存储单元中数据的类型。本题要为指向双精度浮点型数据的指针变量 p分配存储单元,因此用 (double*)说明。61.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。main()float x1000,sum=0,ave,a;int n=0,i;printf(“Enter mark:/n“);scanf(“%f“,while(a=0.0xn= 【13】 ;n+;scanf(“%f“,ave= 【14】 ;printf(“Output:/n“);printf(ave=%f/n“,ave);for(i=0;in;i+)if( 【15】 ) printf(“%t/n“,xi);
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1