2021年吉林省白城市全国计算机等级考试C语言程序设计_第1页
2021年吉林省白城市全国计算机等级考试C语言程序设计_第2页
2021年吉林省白城市全国计算机等级考试C语言程序设计_第3页
2021年吉林省白城市全国计算机等级考试C语言程序设计_第4页
2021年吉林省白城市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

2021年吉林省白城市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的运行结果为248,应在下划线处填入的是()。A.>>2B.|248C.&0248D.<<1

2.a、b、c、d变量均为float类型且已正确赋值,下列选项中与数学式子“2ab/(5cd)”等价的C语言表达式是()。

A.2/5*a/c*d/b

B.a/(5*c*d)*(2*b)

C.2*a*b/5*c*d

D.2/5*a*d*(1/c*d)

3.数组A[0...4,-1...-3,5...7]中含有的元素个数是()。A.A.55B.45C.36D.16

4.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

5.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。

A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统

6.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0

7.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。

A.334HB.30DHC.352HD.31AH

8.在含有n个项点有e条边的无向图的邻接矩阵中,零元素的个数为________。

A.eB.2e9C.n2-eD.n2-2e

9.下列排序方法中,()方法的比较次数与记录的初始排列状态无关。

A.直接插入排序B.冒泡排序C.快速排序D.直接选择排序

10.为了隐藏在文本框中输入的信息,用占位符代替显示用户输入的字符,需要设置的属性是()。

A.ValueB.ControlSoureeC.InputMaskD.PasswordChar

11.

12.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。

A.scanfB.getcharC.getsD.getc

13.有以下程序程序运行后的输出结果是()。

A.21B.11C.20D.10

14.下面不能正确表示a*b/(c*d)的表达式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

15.数据库是______的集合,它具有统一的结构形式并存放于统一的存储介质内,可被各个应用程序所共享。

A.视图B.消息C.数据D.关系

16.下而程序的输出结果是()。

A)32

B)26

C)24

D)4

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.以下程序的输出结果是

#include<stdio.h>

voidprt(int*x,int*y,int*z)

{printf("%d,%d,%d\n",++*x,++*y,*(z++));}

main()

{inta=10,b=40,c=20;

prt(&a,&b,&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,2112,42,22

19.数据结构通常是研究数据的及它们之间的联系______。A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑

20.

二、2.填空题(20题)21.下列程序的运行结果是______。

#definePOWER(x)((x)*(x))

main()

{inti=1;

printf("%d,%d",POWER(i++),i);

}

22.以下程序运行后的输出结果是【】。

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=-a;a=c;c=t;

if(a<c&&b<c)t=b;b=a;a=t;

printf("%d%d%d\n",a,b,c);

}

23.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

24.下列程序的输出结果是______。

#include<stdio.h>

main()

{intx=1,y=1,a=1,b=1;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

printf("a=%d,b=%d\n",a,B);

}

25.下列程序的输出结果是______。

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

26.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。

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

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

28.“printf("%d\n",strlen("\t\"023\xABC\n");”语句的输出结果是______。

29.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【】。

30.数据库系统中实现各种数据管理功能的核心软件称为【】。

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

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{

inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

32.若有如下程序:

main()

{intx=4,y=1;

printf("%d\n",sub(x,sub(x,y)));}

sub(inti,intj)

{staticinta=0;

intb=2;

a+=i+b;

b+=j+a;}

则程序运行后的输出结果是【】。

33.实现算法所需的存储单元多少和算法的工作量大小分别称为为算法的【】。

34.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次放到该文

件中,用井作为结束输入的标志。请填空。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if((fp=【】)==NULL)

{printf("Cannotope\n");exit(O);}

printf("Enterdata\n");

while((ch=getchar())!='#')

fputc(【】,fp);

fclose(fp);

}

35.下列程序的功能是计算1~100的整数的累加和。

main()

{inti,sum=【】;

i=1;

for(【】)

{sum+=i;

i++;

}

printf("sum=%d\n",【】);

}

36.下列程序的输出结果是【】。

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

37.下列程序的功能是计算数的阶乘。

main()

{ihti,n;

nlongnp;

scanf("%d",&n);

np=【】;

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

【】;

printf("n=%dn!=%ld\n",n,np);

}

38.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

39.在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【】。

40.有以下程序

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);}

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

三、1.选择题(20题)41.假定当前盘符下有两个如下文本文件:文件名a1.txta2.txt内容123#321#则下面程序段执行后的结果为#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('\n');}

A.123321B.123C.321D.以上答案都不正确

42.以下叙述中正确的是()。

A.C语言的源程序不必通过编译就可以直接运行

B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C.C源程序经编译形成的二进制代码可以直接运行

D.C语言中的函数不可以单独进行编译

43.在微机中,微处理器的主要功能是()

A.算术逻辑运算B.算术运算C.存储程序和数据D.算术逻辑运算及全机的控制

44.以下数据结构中属于线性数据结构的是

A.集合B.线性表C.二叉树D.图

45.在说明语句:int*f();中,标识符f代表的是

A.一个用于指向整型数据的指针变量

B.一个用于指向一维数组的行指针

C.一个用于指向函数的指针变量

D.一个返回值为指针型的函数名

46.为了提高测试的效率,应该()。

A.随机选取测试数据

B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划

D.集中对付那些错误群集的程序

47.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

48.关于return语句,正确的说法是______。

A.在主函数和其他函数中均可出现

B.必须在每个函数中出现

C.可以在同一个函数中出现多次

D.只能在除主函数之外的函数中出现一次

49.已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是

A.kk>=′A′&&kk<=′Z′

B.!(kk>=′A′||kk<=′Z′)

C.(kk+32)>=′a′&&(kk+32)<=′Z′

D.isalpha(kk)&&(kk<91)

50.若有下列说明和语句,已知int型数据占2个字节,则下列语句的输出结果是()。

stmctst

{chara[15];

intb;

doublec;

};

printf("%d",sizeof(structst));

A.15B.8C.25D.2

51.对于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti:charstring[20],sb[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[21));printf("%s\n",string);}若运行时依次输入abcd、abba和abc三个字符串,则输出结果为______。

A.abcdB.abbaC.abcD.abca

52.执行以下程序后,a,b的值分别为main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

53.不能把字符串"Hello!"赋给数组b的语句是______。

A.charb[10]={'H','e','l','l','o','!'};

B.charb[10]={'h','e','l','l','o','!'};

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

54.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(1(--x));}程序的输出结果是()。

A.1B.20C.1-4D.死循环

55.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则下列不能正确执行的语句是_______。

A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);

56.下面程序的输出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}

A.k=11,k=12,k=11

B.k=11,k=13,k=13

C.k=11,k=013,k=0xb

D.k=11,k=13,k=B

57.以下不能正确计算代数式sm2()值的C语言表达式是

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

58.下列4个关于C语言的结论中错误的是()。

A.可以用do…while语句实现的循环一定可以用while语句实现

B.可以用for语句实现的循环一定可以用while语句实现

C.可以用while语句实现的循环一定可以用for语句实现

D.do…while语句与while语句的区别仅是关键字“while”出现的位置不同

59.程序设计语言的基本成分是数据成分、运算成分、控制成分和()。

A.对象成分B.变量成分C.语句成分D.传输成分

60.下面程序的输出结果是#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

四、选择题(20题)61.

有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

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

A.45B.20C.25D.36

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

A.循环队列是队列的一种链式存储结构

B.循环队列是队列的一种顺序存储结构

C.循环队列是非线性结构

D.循环队列是一种逻辑结构

63.

64.有三个关系R、S和T如下:

则由关系R和s得到关系T的操作是()。

A.自然连接B.并C.交D.差

65.下面叙述中,正确的是

A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种

C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用

66.某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m一1,real"=m,则该循环队列中的元素个数为()。

A.m一1B.1C.mD.0

67.有以下程序

main()

{inta,b,d=5;

a=d*10%8;b=a&&(-1);

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

}

程序运行后的输出结果是

A.10,1B.2,1

C.10,0D.2,0

68.设有下列二叉树:

对此二叉树中序遍历的结果为()。

A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC

69.

70.

71.下面程序的输出结果是()。

#include<stdio.h>

main()

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

inti,j,n;

n=9;

i=n/5;

j=n-i*5-1;

printf("a[%d][%d]=%d\n",i,j,a[i][j]);

}

执行后输出结果是()。A.A.a[1][3]=6

B.a[1][3]=-3

C.a[1][3]=2

D.不确定

72.main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}假定以上程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入PROGABCDEFGHIJKL,则输出结果为______。

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

73.若有定义和语句:

int*(*pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);

则输出结果是()。A.A.20,10B.20,20C.10,20D.10,10

74.有以下程序:

当运行时输入:a<回车>后,以下叙述正确的是()。

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

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

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

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

75.

76.

77.

数字字符0的ASCII值为48,运行以下程序的输出结果是()。

main

(chara=1,b=2;

printf("%C,",b++);printf("%d\n",b—a);}

A.3,2B.50,2C.2,2D.2,50

78.

79.程序流程图(PFD.中的菱形代表的是()。

A.数据流B.控制流C.加工步骤D.逻辑条件

80.

五、程序改错题(1题)81.假如整数数列中的数不重复,并存放在数组中。下列给定的程序中,函数proc()的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。请修改程序中的错误,使它能够得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,学生的记录由学号和成绩组成,N名学生的记录已放入主函数的结构体数组s中。请编写函数fun(),其功能是把指定分数范围内的学生记录存放在b所指的数组中,分数范围内的学生人数由函数值返回。如输入的分数是60、69,则应当把分数在60~69的学生记录输出,包含60分和69分的学生记录。主函数中把60放在low中,把69放在high中。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#defineN16typedefstruct{ charnum[10]; ints;}STREC;intfun(STREC*a,STREC*b,intl,inth)voidmain(){ STRECs[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85},{“GA001”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,94},{“GA012”,64},{“GA014”,91},{“GA011”,90},{“GA017”,64},{“GA018”,64},{“GA016”,72}}; STRECh[N]; inti,n,low,high,t; printf(“Enter2integernumberlow&high:”); scanf(“%d%d”,&low,&high); if(high<low) {t=high;high=low;low=t;} n=fun(s,h,low,high); printf(“Thestudent’sdatabetween%d--%d:\n”,low,high); for(i=0;i<=""p=""> printf(“%s%4d\n”,h[i].num,h[i].s); printf(“\n”);}

参考答案

1.D124的2进制值为1111100,要输出为248即124*2,则2进制值为11111000,即右移l位,所以选D。

2.B解析:选项A和选项D中首先计算2/5,因为两个计算分量都是整型,所以结果为2,与实际运算不符;选项B中因为乘除法满足交换律,所以2*b放前面和放后面都是一样的,所以满足题目要求;选项C中的表达式等价于2abcd/5,所以不满足题目要求。故应该选择B。

3.A

4.B

\n本题考查分支语句用法加个句号因为变量的初始值分别为k一5、n一0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0、k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2、k=3,打印出2;这时n=2、k=3,break跳出,程序进行第3次循环,执行case3:这个分支,结果是n=3、k=2,打印出3;这时n一3、k2,b¨ak跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。

\n

5.A

6.C子函数fun1(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doublex,doubley)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.0。

7.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。

8.D

9.D

10.DD。【解析】本框的PasswordChar属性用来指定文本框是显示用户输入的字符还是显示占位符,指定用做占位符的字符。

11.B

12.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。

13.A声明data是结构S的数组。初始化时data[0].a=10;data[0].b:104);data[1].a=20;data[1].b=200。主函数中p=data[1];即p.a=data[1].a;p.b=data[11.b;执行语句prinff(”%dkn”,++(p.A));打印输出时p.a先增l再打印。即p.a=data[1].a=20,先增1等于21,因此程序运行结果是21。

14.A

15.C解析:数据库是数据的集合,其中的数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构,以建立数据之间的内在联系与复杂的关系-故答案为C。

16.C本题考查的是联合所占的存储空间。sizeof(t)=sizeof(douhle)*3=8*3=24。联合体所占的存储空间取决于所占空间最大的成员所占的空间。

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

18.B解析:考查指针作为参数的函数调用。尽管C语言以传值方式进行函数调用,但也可以通过传递指针的值(变量的地址)来达到修改实参变量值的目的,这是此题主要说明的问题。另外,应注意表达式\ue008*(z++)\ue009的值是*z,其后的z++在程序中无实际作用。函数调用时,由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次调用函数时,*x=a=10,*y=b=40,*z=c=20输出结果为11,41,20,至此,已经可以肯定选项B)是正确的。在第一次输出后,a=11,b=41,c=20,第二次输出为:12,42,20。

19.A

20.A

21.111,1解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。

22.45994599解析:if语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条if语句只有t=a;和t=b是if的子句。第1条if语句中b<a为假,所以跳过语句t=-a;,执行a=c;c=t,a=5、b=4、c=99。第2条if语句的判断条件a<c&&b<c为真,所以后面3条语句都被执行,这3条语句构成一次a和b的内容交换。所以最后输出的结果是:4599。

23.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。

24.a=2b=3a=2,b=3解析:分析程序,程序从x=1语句开始执行,之后执行第一个switch语句,switch(x)=switch(1),所以执行case1,case1语句中包含一个复合switch语句:这时执行第二个switch语句,此时y=1,所以switch(y)=switch(1),因此执行case1,将b加1,得到b=2,遇到break语句,退出第二个switch语句,则整个case1的复合语句执行完毕,由于在这个case1的后面没有break语句使其退出第一个switch语句,所以接着执行下列的case2后面的语句,即将a,b各加1,得到a=2,b=3。

25.101091101091解析:for(表达式1;表达式2:表达式3)语句的功能是:首先计算表达式1的值,然后检测表达式2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式3的值。然后再检测表达式2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环:第1次循环x>8成立,输出x=10,y=10后,x的值减1,i=1,执行y=++i操作,y的值变为1;判断条件还成立,输出x=9,y=1,然后x的值减1,循环条件不成立,则退出循环。

26.参照完整性参照完整性

27.77解析:在程序执行时,static变量仅初始化一次,下次使用时将使用上次保存的值。

28.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。

\'\\t\'f是转义字符,代表横向跳若干格:'\\'是转义字符,代表双引号;\'\\023\'只代表一个字符,而不管转义字符后面有几个字符;’仅AB,是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。

5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。

29.88解析:在一般系统中,一个float型数据在内存中占4个字节(32位),一个double型数据占8个字节。

30.数据库管理系统数据库管理系统(DBMS)

31.1616解析:首先用j和MCRA(i)替换MCRB(n,m)中的参数n和m,变成2*MCRA(j)+MCRA(i),再用j和i替换MCRA(m)中的参数m,变成2*2*j+2*i=2*2*3+2*2=16。

32.19

33.空间复杂度和时间复杂度空间复杂度和时间复杂度解析:算法的复杂性是指对—个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。

34.fopen(fname:"w")

35.0;sum<=100;sum

36.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。

37.1np*=i或np=np*i1\r\nnp*=i或np=np*i

38.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。

39.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函数时,必须在程序的开头出现包含头文件#include'stdio.h'的命令行。putchar的函数调用形式为:putchar(字符变量或字符常量);getchar函数的调用形式为:变量=getchar();getchar后的一对圆括号内没有参数,但这一对圆括号不可少。

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

41.A解析:本题的功能是顺序的读两个文本文件;依次输出。当打开文件时出现错误,fopen函数将返回NULL。

42.B解析:本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行;连接,将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件;执行,执行一个经过编译和连接的可执行的目标文件。由以上定义可知,选项A、C、D均不正确。所以,4个选项中选项B符合题意。

43.D

44.B解析:所谓的线性结构:如果一个非空的数据结构满足下列两个条件,即

1)有且只有一个根结点;

2)每一个结点最多有一个前件,也最多有一个后件。同时满足两个条件的只有线性表,而其他三种数据结构的结点可能存在多个前件或后件,所以不是线性结构。

45.D解析:带回指针值的函数,其一般定义形式为:

类型标识符*函数名(参数表);

例如;int*f(x,y);

其中,f是函数名,调用它以后能得到一个指向整型数据的指针(地址),x,y是函数f的形参。在f的两侧分别为*运算符和()运算符,而()优先级高于*,因此f先与()结合,显然是函数形式。这个函数前面有一个*,表示此函数是指针型函数(函数值是指针)。前面的int表示返回的指针指向整型变量。

46.D本题主要考查软件的测试。软件测试的主要目的体现在下面几个方面。

(1)软件测试是为了发现错误而执行程序的过程。

(2)一个好的测试用例能够发现至今尚未发现的错误。

(3)一个成功的测试是发现了至今尚未发现的错误的测试。

软件测试的效率是指利用更少的成本创造更多的价值,提供软件测试效率的方法有很多,如制定一个合理的详细的测试计划,了解测试项目的业务需求,集中对付那些错误群集的程序等。而选项A所描述的随机选取测试数据是不能保证提高测试效率的,选项B描述的取一切可能的输入数据作为测试数据显然不能提高测试效率,反而使工作量加大,降低测试效率。

47.AB选项中运算符“%”的运算对象为整数。C选项中不能将变量赋给表达式“x+n”。D选项中不能将表达式“4+1”赋给常量5。故本题答案为A选项。

48.C

49.B解析:C语言的字符以其ASCII码的形式存在,所以要确定某个字符是大写字母,只要确定它的ASCII码在'A'和'Z'之间就可以了,选项A)和C)符合要求。函数isalpha用来确定一个字符是否为字母,大写字母的ASCII码值的范围为65到90,所以如果一个字母的ASCII码小于91,那么就能确定它是大写字母。

50.C解析:本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。题中intb占2个字节,chara[15]占15个字节,doublec占8个字节,所以共25个字节。

51.B解析:本题自定义函数scrnp()的作用是比较字符串s1和s2的大小,如果s1<s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执打strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行strcpy(string,scmp(string,str[2]));,由于scmp(string,str[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。

52.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;声明整型变量a,b,k,m和指针p1,p2,并分别将4和6赋给k和m,将k和m的地址赋给P1和p2;a=p1==&m;等价于a=(p1==&m);将p1是否等于地址m的值(0)赋给变量a,b=(*p1)/(*p2)+7;该句的含义是将后面表达式的的值7赋给变量b。

53.B解析:在C语言中,大写字母和小写字母被认为是两个不同的字符,因此,“hello!”和“Hello!”是两个不同的字符串。

54.C解析:本题考查do…while循环。①执行printf语句,x=x-4=1,输出1,判断while循环的控制条件,--x=0,则(!(-x))非零,循环条件成立,执行下一次循环;②执行printf语句,x=x-4=-4,输出-4,判断while循环的控制条件,--x=-5,则(!(--x))为零,循环条件不成立,结束循环。

55.B解析:指针变量中只存放地址(指针),不要将—个整型量(或任何其他非地址类型的数据)赋给—个指针变量,所以B是不正确的。

56.D解析:在C语言格式字符的输出中,“%d”是以带符号的十进制形式输出整数;“%60”是以8进制无符号形式输出整数(不输出前导符o);“%x”是以16进制无符号形式输出整数(不输出前导符Ox)。

57.A解析:当运算符“/”的左右两边运算分量都是整数的时候,运算结果也是一个整数,如果除不净则舍去小数部分。若两个运算分量有一个是实数,才会返回真正除法上的实数结果。选项A中传递给sin()函数的参数表达式1/2计算出来的结果为整数0,所以不能正确计算出题目要求的值,而其余选项中,除号两边都至少有一个运算分量是实数,故应该选择A。

58.D解析:本题考查几个循环语句的关系。①do…while语句、while语句、for语句所实现的循环可以相互替代;②do…while语句和while语句的区别是do…while语句至少执行一次。

59.D解析:程序设计语言是用于书写计算机程序的语言,其基本成分有以下4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入/输出语言。

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

61.C

\n在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。

\n

62.B本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。

63.D

64.D关系T中的元组是关系R中有面关系s中没有的元组的集合,即从关系R中除去与关系s中相同元组后得到的关系T。所以做的是差运算。

65.D本题主要考查我们对C语言一些基础知识的掌握情况。下面分别分析本题的四个选项。

C语言程序在编译时的主要任务就是检查程序的语法是否符合规定,因此选项A的描述不正确。

一个程序一般都是从主函数开始运行,之后主程序调用的其他程序段叫子程序。由于C语言的程序段都是以函数形式存在的,所以除了主程序main()函数以外,其他程序中出现的子程序都是函数,而非过程。因此,选项B的描述不正确。

在C语言中,函数是不允许被定义在其他函数里面的,即嵌套定义的。因此,选项C的描述是错误的。

在C语言中,函数不能嵌套定义,但可以嵌套调用和递归调用。嵌套调用是指一个函数在执行过程中,调用了另一个函数,而被调函数在执行时,还可以调用其他函数。因此,本题正确的答案选D。

66.B循环队列长度为m,由初始状态为front=real'=ITl可知此时循环队列为空。入队运算时,首先队尾指针(rear)进1(即rear+I),然后在lear指针指向的位置插入新元素。特别的,当队尾指针lear=m+1时,置l'ear=1。退队运算时,排头指针(front)进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针front=m+1时,置front=1。从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,则该循环队列中的元素个数为m一(m一1)=1。故选择B选项。

67.B本题考查不同运算符的使用。

题目中给出的程序要求将变量a、b的值输出,其中a=d*10%8,这里考查乘法运算符“*”和求余运算符“%”的优先级与结合方式。“*”与“%”的优先级相同,结合方式为从左往右,即先计算d*10,最后得到的结果为a=2。变量b=a&&(-1),“&&”运算符为逻辑与运算符,只有该运算符的左右两边都为真时,该逻辑运算才为真。运算符左边a=2,右边为(-1),都不为0,故该逻辑运算的值为1,即b=1。输出的结果为2,1。

68.D前序遍历:ABDECF\n中序:DBEAFC\n后序:DEBFCA

69.C

70.B

71.Bn=9,i=n/5=1;j=9-1*5-1=3,输出为a[1][3]=-3

72.C解析:本题主函数带有两个参数,一个int型变量argc,另一个是char型的一维一级指针数组argv。当主函数被执行时,系统自动将根据命令行的情况,分别给主函数的两个参数赋值。Argc中存放命令行中命令字和参数的总和的个数,argv用来存放命令行中命令字和所有参数的字符串的,并规定avgv[0]存放命令字字符串,argv[1]用来存放第一个参数的字符串,argv[2]用来存放第2个参数的字符串,依此类推。题中argc的值是2,执行完--argc后为1,输出argv[1],此数组存在第一个参数的字符串ABCDEFGHIJKL。

73.D本题考查指针变量的赋值。**PP是定义一个指针变量,语句pp=&p是将pp指向指针P,*P和**PP都是指针P所指的内存空间的内容,即b的值。

74.A本题考查的是输入输出函数。函数get.char的作用是从终端(或系统隐含指定的输入设备)输入一个字符,且只能接受一个字符(回车符也算是一个字符)。故本题中变量cl被赋予字符a,c2被赋予回车符。

75.D

76.D

77.C

\nb++是先用表达式的值然后自增l,因此表达式值为2,b为3;b-a=3-1=2,因此最后输出的结果为2,2,前一个为字符2,后一个为数字2。

\n

78.A

79.D程序流程图是软件设计过程中常用的图形描述工具之一。构成程序流程图的最基本符号有:“→”或“↓”表示控制流,“口”表示加工步骤,“

”表示逻辑条件。

80.C

81.错误:arr[i+1]=arr[i];

正确:arr[i]=arr[i+1];

【解析】题目中要求删除数列中值为x的元素,需要将数列中的每一个元素与指定数值x相比较。如果比较结果为第i个元素与x相等,则把第i个位置以后的元素前移一个位置,因此,“arr[i+1]=arr[i];”应改为“arr[i]=arr[i+1]”。

82.intfun(STREC*a,STREC*b,intl,inth){ inti,j=0; for(i=0;i<=""p=""> if(a[i].s>=l&&a[i].s<=h)/*将分数高于l,低于h的学生记录存入结构体数组b中*/ b[j++]=a[i]; returnj; /*返回分数范围内的学生人数*/}本题使用循环判断结构实现题目要求。循环语句用于遍历结构体数组;条件语句用于判断当前元素是否符合条件,若符合条件则将其存入结构体数组b中。变量j为数组b元素下标,最后变量j+1为学生人数,作为函数值返回。2021年吉林省白城市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的运行结果为248,应在下划线处填入的是()。A.>>2B.|248C.&0248D.<<1

2.a、b、c、d变量均为float类型且已正确赋值,下列选项中与数学式子“2ab/(5cd)”等价的C语言表达式是()。

A.2/5*a/c*d/b

B.a/(5*c*d)*(2*b)

C.2*a*b/5*c*d

D.2/5*a*d*(1/c*d)

3.数组A[0...4,-1...-3,5...7]中含有的元素个数是()。A.A.55B.45C.36D.16

4.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

5.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。

A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统

6.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0

7.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。

A.334HB.30DHC.352HD.31AH

8.在含有n个项点有e条边的无向图的邻接矩阵中,零元素的个数为________。

A.eB.2e9C.n2-eD.n2-2e

9.下列排序方法中,()方法的比较次数与记录的初始排列状态无关。

A.直接插入排序B.冒泡排序C.快速排序D.直接选择排序

10.为了隐藏在文本框中输入的信息,用占位符代替显示用户输入的字符,需要设置的属性是()。

A.ValueB.ControlSoureeC.InputMaskD.PasswordChar

11.

12.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。

A.scanfB.getcharC.getsD.getc

13.有以下程序程序运行后的输出结果是()。

A.21B.11C.20D.10

14.下面不能正确表示a*b/(c*d)的表达式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

15.数据库是______的集合,它具有统一的结构形式并存放于统一的存储介质内,可被各个应用程序所共享。

A.视图B.消息C.数据D.关系

16.下而程序的输出结果是()。

A)32

B)26

C)24

D)4

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.以下程序的输出结果是

#include<stdio.h>

voidprt(int*x,int*y,int*z)

{printf("%d,%d,%d\n",++*x,++*y,*(z++));}

main()

{inta=10,b=40,c=20;

prt(&a,&b,&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,2112,42,22

19.数据结构通常是研究数据的及它们之间的联系______。A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑

20.

二、2.填空题(20题)21.下列程序的运行结果是______。

#definePOWER(x)((x)*(x))

main()

{inti=1;

printf("%d,%d",POWER(i++),i);

}

22.以下程序运行后的输出结果是【】。

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=-a;a=c;c=t;

if(a<c&&b<c)t=b;b=a;a=t;

printf("%d%d%d\n",a,b,c);

}

23.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

24.下列程序的输出结果是______。

#include<stdio.h>

main()

{intx=1,y=1,a=1,b=1;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

printf("a=%d,b=%d\n",a,B);

}

25.下列程序的输出结果是______。

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

26.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。

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

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

28.“printf("%d\n",strlen("\t\"023\xABC\n");”语句的输出结果是______。

29.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【】。

30.数据库系统中实现各种数据管理功能的核心软件称为【】。

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

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{

inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

32.若有如下程序:

main()

{intx=4,y=1;

printf("%d\n",sub(x,sub(x,y)));}

sub(inti,intj)

{staticinta=0;

intb=2;

a+=i+b;

b+=j+a;}

则程序运行后的输出结果是【】。

33.实现算法所需的存储单元多少和算法的工作量大小分别称为为算法的【】。

34.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次放到该文

件中,用井作为结束输入的标志。请填空。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if((fp=【】)==NULL)

{printf("Cannotope\n");exit(O);}

printf("Enterdata\n");

while((ch=getchar())!='#')

fputc(【】,fp);

fclose(fp);

}

35.下列程序的功能是计算1~100的整数的累加和。

main()

{inti,sum=【】;

i=1;

for(【】)

{sum+=i;

i++;

}

printf("sum=%d\n",【】);

}

36.下列程序的输出结果是【】。

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

37.下列程序的功能是计算数的阶乘。

main()

{ihti,n;

nlongnp;

scanf("%d",&n);

np=【】;

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

【】;

printf("n=%dn!=%ld\n",n,np);

}

38.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

39.在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【】。

40.有以下程序

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);}

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

三、1.选择题(20题)41.假定当前盘符下有两个如下文本文件:文件名a1.txta2.txt内容123#321#则下面程序段执行后的结果为#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('\n');}

A.123321B.123C.321D.以上答案都不正确

42.以下叙述中正确的是()。

A.C语言的源程序不必通过编译就可以直接运行

B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C.C源程序经编译形成的二进制代码可以直接运行

D.C语言中的函数不可以单独进行编译

43.在微机中,微处理器的主要功能是()

A.算术逻辑运算B.算术运算C.存储程序和数据D.算术逻辑运算及全机的控制

44.以下数据结构中属于线性数据结构的是

A.集合B.线性表C.二叉树D.图

45.在说明语句:int*f();中,标识符f代表的是

A.一个用于指向整型数据的指针变量

B.一个用于指向一维数组的行指针

C.一个用于指向函数的指针变量

D.一个返回值为指针型的函数名

46.为了提高测试的效率,应该()。

A.随机选取测试数据

B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划

D.集中对付那些错误群集的程序

47.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

48.关于return语句,正确的说法是______。

A.在主函数和其他函数中均可出现

B.必须在每个函数中出现

C.可以在同一个函数中出现多次

D.只能在除主函数之外的函数中出现一次

49.已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是

A.kk>=′A′&&kk<=′Z′

B.!(kk>=′A′||kk<=′Z′)

C.(kk+32)>=′a′&&(kk+32)<=′Z′

D.isalpha(kk)&&(kk<91)

50.若有下列说明和语句,已知int型数据占2个字节,则下列语句的输出结果是()。

stmctst

{chara[15];

intb;

doublec;

};

printf("%d",sizeof(structst));

A.15B.8C.25D.2

51.对于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti:charstring[20],sb[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[21));printf("%s\n",string);}若运行时依次输入abcd、abba和abc三个字符串,则输出结果为______。

A.abcdB.abbaC.abcD.abca

52.执行以下程序后,a,b的值分别为main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

53.不能把字符串"Hello!"赋给数组b的语句是______。

A.charb[10]={'H','e','l','l','o','!'};

B.charb[10]={'h','e','l','l','o','!'};

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

54.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(1(--x));}程序的输出结果是()。

A.1B.20C.1-4D.死循环

55.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则下列不能正确执行的语句是_______。

A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);

56.下面程序的输出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}

A.k=11,k=12,k=11

B.k=11,k=13,k=13

C.k=11,k=013,k=0xb

D.k=11,k=13,k=B

57.以下不能正确计算代数式sm2()值的C语言表达式是

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

58.下列4个关于C语言的结论中错误的是()。

A.可以用do…while语句实现的循环一定可以用while语句实现

B.可以用for语句实现的循环一定可以用while语句实现

C.可以用while语句实现的循环一定可以用for语句实现

D.do…while语句与while语句的区别仅是关键字“while”出现的位置不同

59.程序设计语言的基本成分是数据成分、运算成分、控制成分和()。

A.对象成分B.变量成分C.语句成分D.传输成分

60.下面程序的输出结果是#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

四、选择题(20题)61.

有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

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

A.45B.20C.25D.36

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

A.循环队列是队列的一种链式存储结构

B.循环队列是队列的一种顺序存储结构

C.循环队列是非线性结构

D.循环队列是一种逻辑结构

63.

64.有三个关系R、S和T如下:

则由关系R和s得到关系T的操作是()。

A.自然连接B.并C.交D.差

65.下面叙述中,正确的是

A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种

C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用

66.某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m一1,real"=m,则该循环队列中的元素个数为()。

A.m一1B.1C.mD.0

67.有以下程序

main()

{inta,b,d=5;

a=d*10%8;b=a&&(-1);

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

}

程序运行后的输出结果是

A.10,1B.2,1

C.10,0D.2,0

68.设有下列二叉树:

对此二叉树中序遍历的结果为()。

A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC

69.

70.

71.下面程序的输出结果是()。

#include<stdio.h>

main()

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

inti,j,n;

n=9;

i=n/5;

j=n-i*5-1;

printf("a[%d][%d]=%d\n",i,j,a[i][j]);

}

执行后输出结果是()。

温馨提示

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

评论

0/150

提交评论