2022年山西省晋中市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2022年山西省晋中市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2022年山西省晋中市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2022年山西省晋中市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2022年山西省晋中市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

2022年山西省晋中市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.以下程序的输出结果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}

A.20B.21C.22D.23

3.

4.设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。如T=R×S,则T的元组的个数为()。A.6B.8C.9D.12

5.

6.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。

A.外模式B.内模式C.概念模式D.逻辑模式

7.

8.体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于()算法。

A.快速排序B.插入排序C.冒泡排序D.归并排序

9.以下不正确的叙述是A.A.在C程序中,逗号运算符的优先级最低

B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变

D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

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

A.在switch语句中不一定使用break语句

B.在switch语句中必须使用default语句

C.break语句必须与switch语句中的case配对使用

D.break语句只能用于switch语句

11.判断字符串s1是否大于字符串s2,应该使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

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

A.软件工程只是解决软件项目的管理问题

B.软件工程主要解决软件产品的生产率问题

C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

D.软件工程只是解决软件开发中的技术问题

13.

14.下述程序执行的输出结果是()。#includemain{chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}A.A.are&youB.youC.areD.&

15.在进行单元测试时,常用的方法是

A.采用白盒测试,辅之以黑盒测试B.采用黑盒测试,辅之以白盒测试C.只使用白盒测试D.只使用黑盒测试

16.下列程序的运行结果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}

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

17.

18.有以下程序:#includeMain(){intb[3][3]={0.1,2.0,1,2.0.1.2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);程序运行后的输出结果是()。A.3B.4C.1D.9

19.下面是有关C语言字符数组的描述,其中错误的是()。

A.不可以用赋值语句给字符数组名赋字符串

B.可以用输入语句把字符串整体输入给字符数组

C.字符数组中的内容不一定是字符串

D.字符数组只能存放字符串

20.以下程序段中,与语句“k=a>b?(b>c?1:0):0;”功能相同的是()。

A.if((a>b)||(b>c))k=1;elsek=0;

B.if((a>b)&&(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b<=c)k=1;

D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;

二、2.填空题(20题)21.函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。

#include<stdio.h>

intsstrcmp(char*s,char*t)

{

while(*s&&*t&&*s==【】)

{s++;t++;}

rerurn【】;

}

22.某二叉树中度为2的结点有n个,则该二叉树中有【】个叶子结点。

23.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

24.以下程序的输出结果是【】。

#include<stdio.h>

main()

{inti;

for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);

printf("\n");

}

25.下列程序的运行结果为【】。

enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};

main()

{enumweekdayworkday,weekend;

inti,a[8];

workday=tue;

weekend=sun;

printf("\ntueday=%dsunday=%d;",workday,week_end);

workday=sun+tue;

week_end=(enumweekday)3;

printf("tueday=%dsunday=%d;",workday,weekend);

a[sun]=sun;

a[mon]=mon;

a[tue]=rue;

a[wed]=wed;

a[thu]=thu;

a[fri]=fri;

a[sat]=sat;

for(i=l;i<=7;i++)printf("%d",a[i]);

}

26.在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。

27.以下函数用以求y的x次方。补足所缺语句。

doublefun(doubley,intx)

{inti;

doublez=1.0;

for(i=1;i______;i++)

z=______;

returnz;

}

28.下面程序执行后输出的结果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

29.下面程序的输出是()。

main()

{intarr[8],i,k=0;

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

arr[i]=i;

for(i=1;i<5;i++)

k+=arr[i]+i;

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

}

30.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。

31.算法复杂度主要包括时间复杂度和【】复杂度。

32.以下程序通过函数指针p调用函数fun,请在填空栏内写出定义变量p的语句。

voidfun(intx,int*y)

{……}

main()

{inta=10,b=20;

【】;/*定义变量p*/

p=fun;p(&a,&b);

}

33.阅读下面程序,则执行后的输出结果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

printf("%d\n",z);}

34.下列程序的运行结果为【】。

main()

{inti,j,row=0,colum=0,max,

a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};

max=a[0][0];

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

for(j=0;j<4;j++)

if(max<a[i][j])

{max=a[i][j];

row=i;

colum=j;

}

printf("max=%-5drow=%-3dcolum=%-3d\n",max,row,colum);

}

35.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。

36.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

37.一般来说,算法可以用顺序、选择和______三种基本控制结构组合而成。

38.对于长度为n的线性表,若进行顺序查找,时间复杂性为【】;若进行二分查找,则时间复杂性为【】。

39.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

f1=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

40.当数据的物理结构(存储结构)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。

三、1.选择题(20题)41.以下程序的输出结果是______。main(){union{chari[2];intk;}r;r.i[0]=2;r.i[1]=0;printf("%d\n"r.k);}

A.2B.1C.0D.不确定

42.指出下面不了确的赋值语句()。

A.a++;B.a==b;C.a+=b;D.a=1,b=1;

43.有以下程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1:m++;switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}

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

44.下面程序的输出结果是#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*p+9);}

A.0B.1C.10D.9

45.下面语句的输出结果是______。printf("%d、n",strlen("\t\"\065\xff\n"));

A.14B.8C.5D.输出项不合法,无正常输出

46.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),

A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定

47.已知i、j、k为int型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scanf("%d,%d,%d",&i,&j,&k);

C.scanf("%d%d%d",&i,&j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

48.有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为good,则运行以上程序后文件f1.txt中的内容为()。

A.goodabcB.abcdC.abcD.abcgood

49.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是()。abs(intx){if(x>=0)returnx:elsereturn-x;}main(){inty,z,(*p)(intx)=abs;scanf("%d",&y);z=(*p)(y);______;}

A.printf("%d%d\n",&p,z)

B.printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.Printf("%d%d\n",p,*z)

50.有以下定义和语句:structstudents{intnum;charname[20];charc;struct{intgrade1;intgrade2;}s;};structstudentsw,*pw;*pw=w;下列赋值语句不正确的是()。

A.w.num=1002;B.w.grade1=85;C.pw->num=1002;D.w.s.grade2=85;

51.有以下程序main(){inti=0,s=0;for(;;){if(i==3‖i==5)continue;if(i==6)break;i++;s+=i};printf("%d\n",s)}程序运行后的输出结果是

A.10B.13C.21D.程序进入死循环

52.设有以下语句:charstrl[]="string",str2[8],*str3,*str4="string";则_______不是对库函数的正确调用。

A.strcpy(strl,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

53.用十六进制的地址码给存储器的字节编址,其地址编号从0000到FFFF,则该存储器的容量为()

A.1MBB.256KBC.64KBD.640KB

54.以下4个程序中,完全正确的是

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.include<stdio.h>main(){/*programming*/printf("programming!\n");}

55.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。

A.地址传递B.单向值传递C.由实参传递给形参,再由形参传递给实参D.传递方式由用户指定

56.以下叙述中错误的是()

A.在C程序中,APH和aph是两个不同的变量

B.C程序中的变量,代表内存中的一个存储单元,它的值可以根据需要随时修改

C.在C程序中,无论是整数还是实数,都能准确无误地表示

D.在C程序中,一个正整数可以用十进制、八进制和十六进制的形式来表示

57.有以下程序:#include<stdio,h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[1];a[i]=a[j];a[j]=t;}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)prinff("%d,",aa[i]);prinff("\n");程序运行后的输出结果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.1,2,7,6,3,4,5,8,9,10,

C.1,2,7,6,5,4,3,8,9,10,

D.1,2,9,8,7,6,5,4,3,10,

58.在下列几种排序方法中,要求内存量最大的是______。

A.插入排序B.选择排序C.快速排序D.归并排序

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

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main(){/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.#include<stdio.h>main(){/*programming*/printf("programming!\n");}

60.有以下程序:#include<stdio.h>main(){intm,n,p;seanf("m=%dn=%dp=%d",&m,&n,&p)printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则下列选项中正确的输入是()。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,p=789

D.123456789

四、选择题(20题)61.

62.以下叙述中错误的是()。

A.C语言的可执行程序是由一系列机器指令构成的

B.用C语言编写的源程序不能直接在计算机上运行

C.通过编译得到的二进制目标程序需要连接才可以运行

D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

63.

64.设有以下语句

charchl,ch2;scanf("%c%C",&chl,&ch2);

若要为变量chl和ch2分别输入字符A和B,正确的输入形式应该是()。

A.A和B之间用逗号间隔

B.A和B之间不能有任何间隔符

C.A和B之间可以用回车间隔

D.A和B之间用空格间隔

65.

66.

67.以下能定义为用户标识符的是()。

A.printfB.charC._8abcD.Void

68.

69.有以下程序:

#include<stdio.h>

#include<string.h>

main()

{charstr[][20][{"One*World","One*Dream!"},*p=str[1];

prinft("%d,",strlen(p));printf("%s\n",p);

}

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

A.9,0ne*World

B.9,0ne*Dream!

C.10,One*Dream!

D.10,Ome*World

70.

71.执行语句“for(i=1;i++<;4;);”后,变量i的值是()。

A.3B.4C.5D.不定

72.有以下程序段:

inti,n;

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

{n=rand()%5;

switch(n)

{casel:

case3:printf("%d\n",n);break;

case2:

case4:print?("%d\n",n);continue;

case():exit(0);

}

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

}

以下关于程序段执行情况的叙述,正确的是()。

A.for循环语句固定执行8次

B.当产生的随机数n为4时结束循环操作

C.当产生的随机数n为1和2时不做任何操作

D.当产生的随机数n为0时结束程序运行

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

A.字符型数组中可能存放字符串。

B.可以对字符型数组进行整体输入、输出。

C.可以对整型数组进行整体输入、输出。

D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

74.以下不能输出字符A的语句是()。(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)

75.

76.

A.a=50b=50(空格分开.B.5050(空格分开.C.a=50,b=50D.50,50

77.成功的测试是指A.A.运行测试实例后未发现错误

B.发现程序的错误

C.证明程序正确

D.软件产生

78.有以下程序:

main

{chara='a',b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

程序运行后的输出结果是()。A.A.b,bB.b,cC.a,bD.a,c

79.以下不能将s所指字符串正确复制到t所指存储空间的是()。

A.do{*t++=*8++;}while(*s);

B.for(i=0;t[i]=s[i];i++);

C.while(*t=*s){t++;s++;}

D.for(i=0,j=0;t[i++]=s[j++];);

80.某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)()。

A.3B.4C.6D.7

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,当n为l0时,函数值应为22.550361。f(x)函数定义如下:请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.下列程序定义了M×M的二维数组,并在主函数中赋值。请编写函数proc(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a数组中的值为:21098则返回主程序后,s的值为3.750000。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C

2.B解析:第1个循环对数组a进行赋值:第2个循环对数组p进行赋值;第3个循环对k进行累加,k的初值等于5,第1次循环,k=k+p[0]*2=5+0*2=5,第2次循环,k=k+p[1]*2=5+2*2=9,第3次循环,k=k+p[2]*2=9+6*2=21并输出。

3.B

4.CC。R为n元关系,有P个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。

5.D

6.B数据库有三层模式结构,逻辑模式是数据的全局逻辑结构的描述,外模式也称为子模式,是局部数据的逻辑结构描述,而内模式也称为存储模式,是数据库物理存储结构和存取方法的描述。

7.C

8.B

9.D解析:在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。

10.Adefault语句在switch语句中可以省略,所以B选项错误;switch语句中并非每个case后都需要使用break语句,所以C选项错误;break语句还可以用于for等循环结构中,所以D选项错误。故本题答案为A选项。

11.C解析:本题考查字符串比较函数strcmp()。调用形式:strcmp(s1,s2),其中s1、s2分别是字符串存储区的首地址。函数功能:比较字符串str1和str2,当str1<str2时,返回值为负数;当str1=str2时,返回0;当str1>str2,返回值为正数(注意:不能使用关系运算符比较两个字符串的大小)。

12.C\r\n软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。

13.A

14.Astrcpy实现的功能是复制,该操作把are复制到a中,a[0][3]='&',且strcpy(a[1],"you")把you复制到a[1]中,故输出a为“are&you”。

15.A解析:单元测试的步骤如下:

①理解需求和设计。清楚被测试模块在整个软件中所处的位置。一个原则是:好的设计,各模块只负责完成自己的事情,层次与分工明确。单元测试时,可以不测试不属于被测模块所负责的功能,以减少测试用例的冗余。

②概览源代码。浏览源代码,初步检查源代码的编码风格与规范,大致估算测试工作量,确定模块的复杂程度,初步制定测试的优先级等。

③精读源代码。认真阅读和分析代码,理解代码的业务逻辑,检查代码与设计是否相符,仔细研究逻辑复杂的模块,可采用一些检查列表来检查程序可能会出现的问题。

④设计测试用例。综合运用白盒测试方法(并结合黑盒测试方法)设计测试用例,包括功能测试、性能测试等,要达到一定的测试覆盖率。本题正确答案为选项A。

⑤搭建单元测试环境。这个阶段主要就是写桩模块和驱动模块,然后驱动模块想办法获取被测试模块对数据的处理结果,并判定返回的实际结果与测试用例的预

期结果是否一致,通过测试框架来记录执行的结果,对于出现的错误,还需统计错误的信息,供执行完之后分析。

⑥执行测试。运行写好的驱动模块完成对被测试模块的测试。

⑦补充和完善测试用例。在测试过程中不断补充测试用例,直到满足要求为止。

⑧分析结果,给出评价。根据测试的结果分析、查找错误的原因,并找到解决的办法。测试结束之后,根据测试过程的数据统计,给出被测试对象评价。

16.C解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a<b条件成立,执行下列的语句;第二个if语句,先判断条件,发现b<0条件不成立,则执行与其配对的else语句,c+=1,得c=5。

17.D

18.B

19.D\n用来存放字符量的数组称为字符数组。字符数组也可以是二维或多维数组,对一个字符数组,如果不作初始化赋值,则必须说明数组长度,还可用printf函数和scarlf函数一次性输出/输入一个字符数组中的字符串,而不必使用循环语句逐个地输入/输出每个字符。通常用一个字符数组来存放一个字符串。所以D选项不正确。

\n

20.B条件表达式的含义是:如果表达式1成立,结果为表达式2的值,如果不成立,则为表达式3的值。在题干中,如果“a>b”且“b>c”,则k值为1;如果“a>b”且“b<c”,则k值为0;如果“a<b”,则k值为0。条件“a>b”与“b>c”中只要有一个条件不成立,k的值就为0。故本题答案为B选项。

21.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:比较两个字符串的大小方法是:从第一个字符开始依次向后比较,若对应的字符相等则接着比较下一个字符,一直到两个字符串中对应字符不等,或者有一个为“\\0”,此对应字符的ASCII码大的字符串就大。故循环条件是*s和*t不为“\\0”,且*s和*t相同,第一处应填“*t”或其他等价形式。根据题意可知第二处应填“*s-*t”或其等价形式。

22.n+1n+1解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为0的结点多一个。

23.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。

24.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为\'a\',执行一次循环后变为\'c\',之后再变成\'e\',当其变为\'g\'时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式'i-\'a\'+\ue008\'A\'\ue009'即表示输出i对应的大写字母,结果为ACE。

25.tueday=2sunday=7;tueday=9sunday=3;1234567

26.自顶而下自顶而下

27.i<=xz*y。i<=xz*y。解析:循环次数应该是x次,相当于x个y相乘,循环体中z作为累乘器,值为z*y。

28.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。

29.20

30.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。

31.空间空间解析:程序在计算机上运行时所耗费的时间由程序运行时所需输入的数据总量、对源程序进行编译所需时间、计算机执行每条指令所需时间、程序中的指令重复执行的次数等决定。习惯上常常把语句重复执行的次数作为算法运行时间的相对量度,称作算法的时间复杂度。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。

32.void(*p)()或void(*p)(int*int*)void(*p)()或void(*p)(int*,int*)

33.33解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合。因为x不大于y,所以执行printf('%d\\n',z);语句。

34.max=10row=2colum=1

35.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。

36.doublemax或externdoublemaxdoublemax或externdoublemax解析:本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。

37.循环循环解析:算法一般由顺序,选择和循环三种基本控制结构组合而成。

38.O(n)O(log2n)

39.3!feof(f1)3\r\n!feof(f1)解析:要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故argc的值至少为3,因此第一空应填3。while循环中语句fputc(fgetc(f1),f2);的目的是将f1中的字符依次读出并写入到f2对应的文件中去,直至文件f1结束为止,因此第二空为!feof(f1)。

40.物理独立性数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。

41.A解析:根据共用体的定义可知:共用体r的成员k和成员i[2]是共用同—段内存空间,所以,当程序给r.i[0]赋值后,实际上,共用体成员k的值也确定了,为2。所以打印输出的结果应当为2。

42.B解析:选项A中a++相当于a+1,是赋值语句;选项C和选项D也是赋值语句。只有选项B不是,因为选项B中“==”符号是等于的意思,并不是赋值运算符,所以,4个选项中B符合题意。

43.B解析:本题考查swish语句。第一个switch语句,因为a=6,a%2=0,所以执行case0,将m加1,遇到break语句跳出switch语句,结束循环。

44.C解析:此题考查了指针引用一维数组元素的方法。*p+9因为运算符“*”的优先级高于“+”,所以输出结果为p指向的元素1,然后加9,值为10。

45.C解析:在C语言中,以“\\”开头的字符均为转义字符,其中“\\”后可跟1~3位八进制数或在“\\”后跟字母x及1~2位十六进制数,以此来代表—个特定的字符。

46.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。

47.B解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。

48.C解析:主函数中定义了一个文件指针fp1,然后通过fopen()函数,以写的方式打开文件f1.txt,并让指针fp1指向它,接着调用fprimf()函数将abc写到文件fp1所指的文件里,由于印1指向文件f1.txt的开始位置,因此abc将把文件f1.txt里原来的内容good覆盖掉,故文件f1.txt里最后的内容为abc,所以,4个选项中选项C符合题意。

49.B解析:可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。注意:调用函数和被调用函数之间的数据传递。

50.B

51.D解析:本题考核的知识点是for循环,continue语句和break语句的运用。程序中for循环中省略了判断退出循环的表达式,for循环将由里面的break语句控制是否结束循环,第一次循环,第一条if语句后面括号里的表达式的值为假,所以该if语句不被执行,执行下面的第二条语句,此时该if语句表达式的值为假,所以该if语句也不执行,执行下面的语句,i++、s+=i,执行完毕后i的值为1,s的值为1,如此循环,直到第三次之后i,s的值都为3,继续第四次循环,显然这时满足第一条if语句的,执行后面的continue;该次循环结束从头开始下次循环,而i的值为3一直没有改变,所以第一条语句始终要执行,因此for循环将一直循环下去,所以,4个选项中选项D符合题意。

52.C解析:C语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项C中的目的串指针str3没有指向具体有效的存储单元,故是错误的调用。

53.C

54.B解析:选项A)main();的分号是错误的,不能有分号;选项C)的注释语句多了两个*号;选项D)include前面没有#。

55.B解析:C语言以定,实参变量对形参变量的数据传递是“单向值传递”,只由实参传绐形参。在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维持原值。

56.C

57.C解析:sort函数的功能是将给定的数由大到小排序。函数调用sort(aa+2,5);中的实参aa+2是aa[2]的地址,将其传给形参a[],使得形参中封a[0]的值为主函数中aa[2]的值,即3;实参5传给形参n,在sort函数中用于指定参加排序的5个数,从aa[2]到aa[6],所以本题输出的结果是:1,2,7,6,5,4,3,8,9,10,

58.D解析:快速排序的基本思想是,通过一趟排序将排序记录分割成独立的两部

分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继

续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依

次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的

温馨提示

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

评论

0/150

提交评论