2022-2023年黑龙江省鸡西市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2022-2023年黑龙江省鸡西市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2022-2023年黑龙江省鸡西市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2022-2023年黑龙江省鸡西市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2022-2023年黑龙江省鸡西市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2022-2023年黑龙江省鸡西市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.深度为5的二叉树至多有C个结点。

A.16B.32C.31D.10

2.使用堆排序方法排序(45,78,57,25,41,89),初始堆序列()

A.78,45,57,25,41,89

B.89,78,57,25,41,45

C.89,78,25,45,41,57

D.89,45,78,41,57,25

3.以下关于结构化程序设计的叙述中正确的是()。

A.一个结构化程序必须同时由顺序、分支、循环三种结构组成

B.结构化程序使用goto语句会很便捷

C.在C语言中,程序的模块化是利用函数实现的

D.由三种基本结构构成的程序只能解决小规模的问题

4.

5.下列判断正确的是()。

A.chara="ABCD":等价于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等价于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等价于charc[5]-d[5]="ABCD";

6.有以下程序:#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序的运行结果是()。

A.0B.-12C.-20D.10

7.使用深度优先算法遍历下图,遍历的顺序为()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG

8.以下关于C语言的叙述中正确的是()。

A.C语言中的注释不可以夹在变量名或关键字的中间

B.C语言中的变量可以在使用之前的任何位置进行定义

C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D.C语言的数值常量中夹带空格不影响常量值的正确表示

9.在带头结点的单链表head为空的判定条件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

10.和顺序栈相比,链栈有一个比较明显的优势是()。

A.通常不会出现栈满的情况B.通常不会出现栈空的情况C.插入操作更容易实现D.删除操作更容易实现

11.下述关于C语言文件的操作的结论中,正确的是______。

A.对文件操作必须先关闭文件

B.对文件操作必须先打开文件

C.对文件操作顺序无要求

D.对文件操作前必须先测文件是否存在,然后再打开文件

12.有以下程序:#include<stdio.h>voidsub(doublea,double*pb);intmain(){doublex,y;scanf(“%lf%lf”,&x,&y);sub(x,&y);printf(“x=%fy=%f\n”,x,y);}voidsub(doublea,double*pb){a=a-*pb;*pb=*pb-a;}程序运行时输入10.23.5并按<Enter>键,则输出结果为()。

A.x=10.200000y=-3.200000

B.x=6.700000y=-13.700000

C.x=7.000000y=-3.500000

D.x=13.400000y=-7.000000

13.设有二维数组A7×8,每个数据元素占8个字节存储单元,顺序存放,A第一个元素A0,0的存储地址为1000,数组A的最后一个元素A6,7的存储地址为()。

A.1024B.1440C.1448D.1432

14.p指向线性链表中某一结点,则在线性链表的表尾插入结点s的语句序列是()。

A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;

B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;

C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;

D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;

15.程序设计的任务包括()。

A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确

16.有以下程序段:charc1,c2;for(c=‘0’,c2=‘9’;c1<c2;c1++,c2--)printf(“%c%c”,c1,c2);程序段的执行结果是()。

A.0123456789B.0918273645C.0123498765D.9876543210

17.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是

A.1267B.1256C.1278D.1245

18.

19.下面程序的运行结果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

A.-1B.1C.8D.0

20.有以下程序:

程序运行后的输出结果是()。

A.10B.40C.32D.8

二、2.填空题(20题)21.若从键盘输入58,则以下程序的输出结果是【】。

main()

{inta;

scanf(“%d”,&A);

if(a>50)printf(“%d”,A);

if(a>40)printf(“%d”,A);

if(a>30)printf(“%d”,A);

}

22.以下程序的输出结果是______。

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

}

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

23.以下程序中函数huiwen.的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。

#include<string.h>

char*huiwen(char*str)

{char*p1,*P2;inti,t=0;

P1=str;p2=【】;

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--){t=1;break;}

if(【】)return("yes!");

elsereturn("no!");

}

main()

{charstr[50];

printf("Input:");scanf("%s",str);

printf("%s\n",【】);

}

24.设在主函数中有以下定义和函数调用语句,且函数fun为void型,请写出函数fun的首部【】。要求形参名为b。

main()

}doubles[10][22];

intn;

fun(s);

}

25.数据元素之间______的整体称为逻辑结构。

26.软件危机出现于20时纪60年代末,为了解决软件危机,人们提出了()的原理来设计软件,这就是软件工程诞生的基础。

27.多媒体计算机所用的CD-ROM是【】。

28.一棵二叉树中共有80个叶子结点与10个度为1的结点,则该二叉树中的总结点数为【】。

29.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。

#include<stdio.h>

main()

{inta[10],b[10],i;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<9;i++)

______;

for(i=0;i<9;i++)

{if(i%4=0)printf("\n");

printf("%3d",b[i]);

}

}

30.有下列程序,功能是把输入的+进制长整型数以+六进制的形式输出,完成程序

#include"stdio.h"

main()

{charb[17]={"0123456789ABCDEF"};

intc[50],d,i=0,base=16;

longn;

scanf("%1d",&n);

do{c[i]=n%base;i++;n=【】;}

while(n!=0);

for(--i;i>=0;--i)

{d=【】;printf("%c",b[d]);}

printf("H\n");}

31.若有定义:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},<1,3,5,7}},则初始化后,a[2][2]得到的初值是______。

32.strcmp函数的功能是【】。

33.以下程序中函数huiwen的功能是检查一个宁符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空______。

#include<string.h>

chat*huiwen(chat*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=【】;

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--){t=1;break;}

if(!t或t!=0)return("yes!");

elsereturn("no!");

}

main()

{charstr[50];

printf("Input:");scanf("%s",str);

printf("%s\n",huiwen(str));

}

34.以下sum函数的功能是计算下列级数之和:

请给函数中的各变量正确赋初值。

doublesum(douLlex,intn)

{inti;

doublea,b,s;

【】

for(i=1;i<=n;i++){a=a*x;b=b*i;s=s+a/b;}

returns;

}

35.软件工程研究的内容主要包括:【】技术和软件工程管理。

36.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。

37.以下程序把从终端读入的20个整数以二进制方式写到一个名为d.dat的新文件中,请填空。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if((fp=fopen(【】,"wb"))==NULL)exit(0);

for(i=0;i<20;i++)

{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}

fclose(fp);

}

38.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*fl)int(*12)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序运行后,输出结果是【】

39.执行下列程序的输出结果是【】。

main()

{

floata=1,b;

b=++a*++a;

printf("%f\n",b);

}

40.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。

三、1.选择题(20题)41.下面程序的功能是输出以下形式的金宁塔图案:*************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=();j++)printf("*");printf("\n");}}在下划线处应填入的是

A.iB.2*i-1C.2*i+1D.i+2

42.若有定义:floatx=1.5;inta=1,b=3,c=2;,则正确的switch语句是

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}

43.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}当运行时输入:a<回车>后,以下叙述正确的是______。

A.变量c1被赋予字符a,c2被赋予回车符

B.程序将等待用户输入2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2

D.变量c1被赋予字符a,c2中将无确定值

44.在设计程序时,应采纳的原则之一是()。

A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解

45.下面是对宏定义的描述,不正确的是______。

A.宏不存在类型问题,宏名无类型,它的参数也无类型

B.宏替换不占用运行时间

C.宏替换时先求出实参表达式的值,然后代入形参运算求值

D.宏替换只不过是字符替代而已

46.若进栈序列为1、2、3、4、5,并且在它们进栈的过程中可以进行出栈操作,那么不可能是出栈序列的是______。

A.1,3,2,5,4B.1,2,5,4,3C.4,3,2,1,5D.3,5,1,4,2

47.有以下程序:main(){unsignedchara,b;a=4|3;b=4&3;printf("%d%d\n",a,b);}执行后输出结果是()。

A.70B.07C.11D.430

48.用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序和逻辑顺序相同

49.若有说明chars1[30]="abc",s2[]="defghi";,则在使用函数strcat(s1,s2)后,结果是()。

A.s1的内容更新为abcdefghi

B.s1的内容更新为defghi\0

C.s1的内容更新为defghiabc\0

D.s1的内容更新为abcdefghi\0

50.以下叙述中正确的是A.A.C程序中的注释只能出现在程序的开始位置和语句的后面

B.C程序书写格式严格,要求一行内只能写一个语句

C.C程序书写格式自由,一个语句可以写在多行上

D.用C语言编写的程序只能放在一个程序文件中

51.下列程序的输出结果是______。#include<stdio.h>main(){inta=2,c=5;printf("a=%%d,b=%%d\n",a,c);}

A.a=%2,b=%5B.a=2,b=5C.a=%%d,%%dD.a=%d,b=%d

52.以下正确的数组定义语句是______。

A.inty[1][4]={1,2,3,4,5};

B.floatx[2][]={{1},{2),{3}};

C.longs[2][3]={{1},{1,2},<1,2,3}};

D.doublet[][3]={0};

53.在具有n个结点的二叉排序树上插入一个新结点时,根据n个数据元素生成一棵二叉排序树时,其时间复杂性大致为______。

A.O(n)

B.O(n2)

C.O(log2n)

D.O(nlog2n)

54.设有下列二叉树:

对此二叉树后序遍历的结果为

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

55.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的A.正当性B.可行性C.确定性D.有穷性

56.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则

A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

57.以下程序段的输出结果是()。inta=1234;printf("%2d\n",a);

A.12B.34C.1234D.提示出错,无结果

58.设变量a、b、c、d和y都已正确定义并赋值。若有下列if语句

if(a<B)

if(c==D)y=0;

elsey=1;

该语句所表示的含义是()。

A.

B.

C.

D.

59.结构化程序设计主要强调的是()。

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性

60.以下程序的输出结果是()structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60&dt[0],60,&dt[0]};main(){p=aa;printf("%d\n",++(p->x));}

A.10B.11C.51D.60

四、选择题(20题)61.视图设计一般有3种设计次序,下列不属于视图设计次序的是()。

A.自顶而下B.由内向外C.由外向内D.自底向上

62.计算机能直接执行的程序是()。A.可执行程序B.目标程序C.汇编程序D.源程序

63.软件(程序.调试的目标是()。

A.诊断和改正程序中的错误

B.尽可能多地发现程序中的错误

C.发现并改正程序中的所有错误

D.确定程序中错误的性质

64.

65.若有定义语句:“intkl一10,k2=20;”,执行表达式(kl=kl>k2)(k2=k2>

k1)后,kl和k2的值分别为()。

A.0和1B.0和20C.10和1D.10和20

66.

67.

68.C语言可执行程序的开始执行点是()。

A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句

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

A.软件测试应该由程序开发者来完成

B.程序经调试后一般不需要测试

C.软件维护只包括对程序代码的维护

D.以上三种说法都不对

70.

71.有以下程序:

执行程序时,给变量X输入10,程序的输出结果是()。

A.54B.55C.65D.45

72.以下选项中,不合法的C语言用户标识符是()。A.a-一bB.AaBeC.a_bD.一1

73.第

11

若有定义:char*st="howareyou";下列程序段中正确的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

74.

75.下列描述中正确的是()。

A.算法是指对解题方案的准确而完整的描述

B.算法的有穷性是指算法程序的长度是有限的

C.算法是否有效与拥有的情报无关

D.算法的基本特征有可行性、确定性和有穷性

76.

77.软件测试的目的是()。

A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误

78.下列关于单目运算符++,——的叙述中正确的是()。

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

79.以下四个程序中,完全正确的是()。

80.有下列程序:

main()

{char*P[]={"3697","2584");

inti,j;longnum=0;

for(i=0;i<2;i++)

{j=0;

while(p[i][j]!=\0)

{if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;

j+=2;

}

}

printf("%d\n",num);

}

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

A.35B.37C.39D.3975

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。

例如,n=8时,输入90.009,179.623,167.575,100.051,6.092,154.986,12.432,45.765,所得平均值为94.566635,在平均值以上的实数个数应为4。

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

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

试题程序:

六、程序设计题(1题)82.编写函数fun,其功能是:将所有大于1小于整数m的非素数存人xx所指数组中,非素数的个数通过k返回。

例如,若输入l7,则应输出:46891012141516。

注意:部分源程序在文件PROGl.C中。

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

参考答案

1.C

2.B

3.C解析:结构化程序设计是指将待开发的软件系统划分为若干个相互独立的模块,与具体的语句结构无关。Goto语句的滥用会导致程序的可读性降低。三种基本结构构成的程序依然可以解决大规模的问题,只是不利于复用。

4.D

5.Da=“ABCD”书写错误,因为“=”左边不能出现常量;数组名S是代表S数组首地址常量,而不是变量;字符串只有在定义时维数可以省略。

6.C宏定义只是做简单的替换,本题中SUB(a+b)*c=(a+b)-(a+b)*c=-20。故本题答案为C选项。

7.C

8.B解析:C语言中注释可以放在任何位置,选项A错误;C语言中的变量只要在使用之前定义即可,位置可以是使用前的任何位置,故选项B正确;C语言中两侧数据类型可以不一致,系统可进行强制类型转换,选项C错误;C语言数值常量中不允许存在空格,选项D错误。

9.B

10.A

11.B解析:在C中对文件操作必须先打开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行打开操作时,同时会执行文件的检查文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式打开时,文件不存在,将会自动创建文件,因此在C中打开文件前不必对其检查文件是否存在,故答案为B。

12.Asub函数接收两个参数:double类型变量a,double指针变量pb。首先将a与pb指向的变量值相减,结果存放在a中;然后再将pb指向的变量值与a的新值相减,结果存放在pb指向的内存空间中。sub函数不会修改实参x的值,但会修改实参y的值。当输入10.23.5时,实参x的值为10.2,y的值为3.5,执行sub函数后,x的值不变,y的值变成-3.2。故本题答案为A选项。

13.B

14.A

15.D程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、c)等方面。

16.B程序定义两个字符变量c1和c2。for循环中,首先为c1赋值‘0’,为c2赋值‘9’,接着判断c1和C2的大小。由于字符变量可以作为整型数处理,数字字符的ASCII值按字面数值的大小顺序连续递增,因此c1小于c2成立,执行循环体输出“09”,再将c1自增1,c2自减1后,执行下一轮循环,直到c1=‘5’,c2=‘4’时,c1<c2不成立,循环终止。最终程序段输出:0918273645。故本题答案为B选项。

17.D解析:putchar(c1)输出1,putchar(c2)输出2,printf('%c%c\\n',c5,c6)输出45。

18.C

19.D解析:本题考查“++”和“--”运算符,运算符“++”是操作数加1,而“--”则是操作数减1。在do-while循环中,首先执行y--,再执行--y。当y=2时,执行y--,y的值变为1,--y使y值变为0,循环结束。执行输出时,先输出y的值0,然后执行y--,使y的值变为-1。

20.D整型变量ch使用八进制数020初始化,二进制数为10000,右移一位结果为1000,使用%d输出十进制数为8。本题答案为D选项。

21.585858585858解析:在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个if语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>40,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。

22.

23.str+strlen(str)-1i>strlen(str)/2huiwen(str)str+strlen(str)-1\r\ni>strlen(str)/2\r\nhuiwen(str)解析:首先使指针p1指向字符串的首地址,指针p2指向字符串的尾地址(不包括字符串结束标记'\\0'),然后指针p1从前往后,指针p2从后往前,直到移至字符串的中间元素,若两者所指的元素不相等,则跳出循环,此时i<=strlen(str)/2,若两者所指的元素均相等,则此时i>strlen(str)/2。

通过if语句判断,如果i>strlen(str)/2,则返回“yes!”,否则返回“no!”。

主函数中要求输出函数huiwen(str)的返回值。

24.voidfun(double*b)或voidfun(doubleb[10][12])voidfun(double*b)或voidfun(doubleb[10][12])解析:本题考查数组名作函数参数。程序中被调用函数fun(s)的实参s是数组名,而s为double型数组名,所以函数fun的形参类型为double*。

25.逻辑关系逻辑关系

26.软件工程学软件工程学解析:为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径。逐步形成了软件工程的概念,开辟了工程学的新兴领域——软件工程学。

27.只读光盘只读光盘

28.179179解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中的二叉树有80个叶子结点,因此,该二叉树有80-1=79个度为2的结点;又知本题中的二叉树有10个度为1的结点。因此,本题中的二叉树总结点数为:叶子结点数+度为1的结点数+度为2的结点数=80+10+79=179

29.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[j+1]值相加后的值赋予数组b中元素b[i],即可实现将一个数组的前项和后项之和存入另一数组。

30.n/base或n/16c[i]n/base或n/16\r\nc[i]解析:字符串的综合运用。

31.88解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为a[0][0]、a(0][1]、a[0][2]、a[0][3]

32.字符串的比较strcmp函数的原型是intstrcmp(char*s1,char*s2);功能是对s1和s2所指字符串进行比较,若s1<s2返回负数,若s1==s2返回0,若s1>s2返回正数。

33.str+strlen(str)-1str+strlen(str)-1解析:先从main函数开始看,它先读入字符串,接下来肯定是要判断这个字符串是否是回文,冉看huiwen函数,它的主要思想是用p1指向字符串的首地址,p2指向字符串的尾地址(不包括结束符‘/0‘),将p1左移,p2右移,直到这两个指针相遇,如果在移动过程中发现p1!=p2,则该字符串不是回文,否则其是同文。因此。在空中填str+strlen(str)-1。

34.a=1.0;b=1.0;s=1.0;a=1.0;b=1.0;s=1.0;解析:各种数值型数据间进行混合运算时,不同类型的数据要先转换成同一类型,再进行运算。本题的结果为double型。

35.软件开发

36.输出结果输出结果解析:注意:测试的基本方法和步骤。

37."bi.dat"fp'bi.dat'\r\nfp解析:要向文件bi.dat中写数据,所以要打开文件bi.dat。fp是指向文件bi.dat的指针,是将数据写入fp指向的文件中去。

38.44解析:在主函数中调用函数f,函数f有三个参数,形参n与C分别是两个指向函数的指针。在f中执行nf2(x),实际上是执行了fo(2)-fa(2),故执行i=(fa,fb,2)后i的值为2^3-2^2=4。

39.66解析:++的优先级高于*,先作自加运算,b=++a*++a=2.0*3.0=6.0。b按实型输出6.000000。

40.完整性控制完整性控制

41.B解析:通过观察可知图形共四行,上函数中通过一个for循环四次,输出4行。第一行输出3个空格和1个“*”,第2行输出2个空格和3个“”,第3行输出3个空格和5个“*”,第四行输出7个“*”,主函数中通过第二个循环控制每行的输出空格数,第三个for循环控制输出的“*”的个数,总结规律:每行输出的“*”的个数,总比前一行的多2个,且第一行的个数为1,可以断定每行输出的“*”的个数组成了一个公差为2的等差数列,所以每行输出“*”的个数即该等差数列的通项,故该空格处应该填写2*i-1,所以,4个选项中选项B符合题意。

42.C解析:C语言中,switch语句专用于实现多分支结构程序,其特点是各分支清晰而直观。switch后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。

43.A解析:getchar函数读入字符时,空格、回车符都作为字符读入,因此A正确。

44.D解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。

45.C解析:宏替换实质上就是字符替代,它不可能进行计算,故C错误。带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。

46.D

47.A解析:在位与运算符&中参加运算的两位都为1时,其结果为1,否则结果为0。所以本题中的4|3:01002|00112=01112=7。位与运算符|中参加运算的两位只要有一个为1,则结果为1,只有当相应的两位都为0结果才为0。所以本题中的4&3=01002&00112=00002=0。最后输出a和b的值为7和0。故4个选项中选项A符合题意。

48.C【解析】在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间要比顺序表还要多,在插入和删除数据元素时,只需要移动相应的记录指针即可,在链表中,数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。

49.D解析:strcat(s1,s2)是把s2字符串连接到s1字符串的末尾,要保证s1能容纳下连接后的字符串。

50.C

51.D

52.D解析:A、B、C项均存在行或列上赋初值越界问题,所以都不正确。

53.D

54.D解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求后序遍历,其遍历顺序应该为:后序遍历左子树->,后序遍历右子树->,访问根结点。按照定义,后序遍历序列是DEBFCA,故答案为D。

55.C解析:本题考查一个算法应当具有5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或多个输出。算法的确定性是指:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。并且在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的执行结果。

56.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。

57.C解析:在C语言中,对于不同类型的数据用不同的格式字符,其中,“%d”是按整型数据的实际长度输出,“%md”中,m为指定的输出字段的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。注意:格式输入函数scanf的使用。

58.C解析:语句if(c==d)y=0;elsey=1;是if(a<b)语句的一个子句。所以整个C语句表达式的意思是:在a<b的情况下,如果c=d则y=0,否则y=1。所以,选项C)为正确答案。

59.D解析:程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。

60.C

61.C视图设计的设计次序分3种:自顶向下、自底向上和由内向外。它们为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握。

62.A计算机能直接执行的程序是二进制的可执行程序,其他的不能直接执行。

63.A\n软件测试与软件调试是两个不同的概念:软件测试的目的是发现错误,而软件调试的目的是发现错误或导致程序失效的原因,并修改程序以修正错误,调试是测试之后的活动。

\n

64.C

65.B

66.C

67.C

68.C解析:每个C程序有且只有一个主函数ma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论