2021年安徽省淮北市全国计算机等级考试C语言程序设计_第1页
2021年安徽省淮北市全国计算机等级考试C语言程序设计_第2页
2021年安徽省淮北市全国计算机等级考试C语言程序设计_第3页
2021年安徽省淮北市全国计算机等级考试C语言程序设计_第4页
2021年安徽省淮北市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

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

文档简介

2021年安徽省淮北市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.执行下面的程序段后,变量k中的值为()。intk=3,s[2];s[0]=k;k=s[1]*10;

A.不定值B.33C.30D.10

2.树的度为3,且有9个度为3的节点,5个度为1的节点,但没有度为2的节点。则该树中的叶子节点数为()。

A.18B.33C.19D.32

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

B.发现程序的错误

C.证明程序正确

D.软件产生

4.有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母:

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

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

5.以下函数调用语句中含有实参个数为().func((exp1,exp2),(exp3,exp4,exp5));

A.1个B.2个C.4个D.5个

6.对一个关系投影操作以后,新关系的元组个数______原来关系的元组个数。

A.小于B.小于或等于C.等于D.大于

7.若要求从键盘读入含有空格字符的字符串,应使用函数()。

A.getcharB.getcC.getsD.scanf

8.有下列程序:fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是()。A.6B.7C.8D.9

9.为非法的字符串常量()。A.“case”B.“”C.”056”D.‘123’

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

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

D.链式存储结构比顺序存储结构节省存储空间

11.有以下结构体说明、变量定义和賦值语句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];则下列scanf函数调用语句有错误的是()。

A.scanf(“%s”,s[0].name);

B.scanf(“%d”,&s[0].age);

C.scanf(“%c”,&(ps->sex));

D.scanf(“%d”,ps->age);

12.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为()。

A.CB.BasicC.DDLD.DML

13.已知A=10,B=20,下类表达式正确的是()。

A.C=(A++)*(--B)=200

B.A-=30

C.C=(A++)+(B--)=30

D.C=(++A)*(--B)=210

14.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序运行后的输出结果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1

15.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

16.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.大写字母B.下划线C.数字字符D.连接符

17.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序运行后的输出结果是

A.12B.123C.234D.345

18.下列叙述中错误的是()。

A.可以用typedef将已存在的类型用一个新的名字来代表

B.可以通过typedef增加新的类型

C.用typedef定义新的类型名后,原有类型名仍有效

D.用typedef可以为各种类型起别名,但不能为变量起别名

19.有以下定义和语句

StructWorkers

{intnum;charname[20];charc;

struct

{intday;intmonth;intyear;}s;

};

StructWorkersW,*pe;

PW=&W;

能给W中yeaR成员赋1980的语句是A.*pW.yeaR=1980;

B.W.yeaR=1980;

C.pW->yeaR=1980;

D.W.s.yeaR=1980;

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

A.函数的返回值类型不能是结构体类型,只能是简单类型

B.函数可以返回指向结构体变量的指针

C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员

D.只要类型相同,结构体变量之间可以整体赋值

二、2.填空题(20题)21.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于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);

}

22.若输入thistestterminal,以下程序的输出结果为:terminaltestthis。请填空。

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

for(i=0;i<3;++)pstr[i]=str[i];

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

for(j=i+1;j<3;j++)

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

23.以下程序用来输出结构体变量ex所占存储单元的字节数:

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));

}

24.阅读下列程序,则程序的输出结果为【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

25.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。

main()

{

inti,a[20],sum,count;

sum=count=【】;

for(i=0;i<20;i++)scanf("%d",【】);

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

{

if(a[i]>0)

{count++:

sum+=【】;

}

}

printf("sum=%d,count=%d\n",sum.count);

}

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

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

27.若输入tear、test、arj,则下列程序的运行结果为【】。

main()

{char*strl[20],*str2[20],*str3[20];

charswap();

scanf("%s",str1);

scanf("%s",str2);

scanf("%s",str3);

if(strcmp(str1,str2)>0)swap(str1,str2);

if(strcmp(str1,str3)>0)swap(str1,str3);

if(strcmp(str2,str3)>0)swap(str2,str3);

printf("%s%s%s\n",str1,str2,str3);

}

charswap(p1,p2)

char*p1,*p2;

{char*p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);

}

28.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【】。

for(i=0,j=10;i<=j;i++,j--)k=i+j;

29.算法的复杂度主要包括空间复杂度和______复杂度。

30.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

31.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

32.设有下面的程序段:chars[]="china";char*p;p=S;则下列叙述正确的是

33.若有以下程序:

main()

{chara;

a='H'-'A'+'0';

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

}

执行后的输出结果是【】。

34.下面程序的功能是:计算110之间的奇数之和与偶数之和,请填空。

#include<stdio.h>

main()

{inta,b,c,I;

a=c=0;

for(I=0;I<=10;I+=2)

{a+=I;

【】;

c+=b;}

printf("偶数之和=%d\n",a);

printf("奇数之和=%d\n",c-11);}

35.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。

voidfunc(intx,inty,【】z)

{*z=x+y;}

36.在C语言中,字符的比较就是对它们的【】码进行比较。

37.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。

intisprime(inta)

for(i=2;i<=a/2;i++)

if(a%i==0)[8];

[9];

38.数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。

39.以下程序运行后的输出结果是______。

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

40.C语言中用______表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。

三、1.选择题(20题)41.设变量x为noat型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第3位四舍五入的是()。

A.X=X*100+0.5/100.0;

B.x=(x*100+0.5)/100.0;

C.x=(int)(x*100+0.5)/100.0;

D.x=(x/100+0.5)*100.0;

42.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c)}若运行时从键盘上输入987643210则上面程序的输出结果是______。

A.a=98,b=75,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000c=4321.000000

D.a=98,b=765.0,c=4321.000000

43.下列程序的运行结果是()。main(){intx=1,y=3,a=0;while(x++!=(y=1)){a+1;if(y<x)break;}printf("%d,%d,%d\n”,x,y,a);}

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

44.下列二叉树描述中,正确的是()

A.任何一棵二叉树必须有一个度为2的结点B.二叉树的度可以小于2C.非空二叉树有0个或1个根结点D.至少有2个根结点

45.以下不属于对象的基本特点的是()

A.分类性B.多态性C.继承性D.封装性

46.下列是用户自定义标识符的是

A._w1B.3_xyC.intD.LINE-3

47.对长度为n的线性表进行顺序查找,在最坏的情况下需要比较的次数为()。

A.125B.n/2C.nD.n+1

48.在软件生存周期中,能准确确定软件系统必须做什么和必须具备哪些功能的阶段是()。

A.概要设计B.详细设计C.可行性分析D.需求分析

49.若有以下程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;printf("%d\n",a[2]);}上面程序的输出结果是()。

A.6B.8C.4D.2

50.设有定义:structsk{inta;floatb;}data,*p;若有p=&data;,则对data中的a域的正确引用是()

A.(*p).data.aB.(*p).aC.p->data.aD.p.data.a

51.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

52.当执行下面两个语句后,输出的结果为()charcl=97,c2=98;printf("%d%c",c1,c2);

A.9798B.97bC.a98D.ab

53.有下列程序:#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<CR>45678<CR>则输出结果是()。

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

54.下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。

#include<stdio.h>

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i<n-1;i++)

for(j=i+1;<n;j++)

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

{t=a[i];a[i]=a[j];a[j]=t;

}

}

main()

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

sort(&a[1],7);

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

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

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

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

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

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

A.显示器和打印机都是输出设备B.显示器只能显示字符C.通常的彩色显示器都有7种颜色D.打印机只能打印字符和表格

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

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

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

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

57.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。

A.4B.16C.32D.52

58.若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入3个整数分别赋给变量a、b、c的语句是()。

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

59.下面程序在屏幕上的输出是______。main(){printf(“ab\b\bc”);}A.ab\b\bcB.acC.abcD.abc

60.以下程序运行后,输出结果为______。main(){inta[2][3]={1,3,5,7,9,11},*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

A.1B.7C.9D.11

四、选择题(20题)61.

62.

63.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之间的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

64.下列数据结构中,能够按照‘‘先进后出”原则存取数据的是()。A.循环队列B.栈C.队列D.二叉树

65.

66.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

67.下列程序的输出的结果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

68.以下程序有错,错误的原因是

main()

{int*p,i;char*q,ch;

p=&i;

q=&ch;

*p=40;

*p=*q;

......

}

A.p和q的类型不一致,不能执行*p=*q;语句

B.*p中存放的是地址值,因此不能执行*p=40;语句

C.q没有指向具体的存储单元,所以*q没有实际意义

D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果

69.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系

70.设有如下三个关系表:

71.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。

A.提高耦合性降低内聚性有利于提高模块的独立性

B.降低耦合性提高内聚性有利于提高模块的独立性

C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D.内聚性是指模块间互相连接的紧密程度

72.

73.

74.已知大写字母A的ASCII码是65,小写字母a的ACSII码是97。下列能将变量C中的大写字母转换为对应小写字母的语句是()。

A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'

75.

76.

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

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

A.自然连接B.交C.投影D.并

78.一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为()。

A.16B.10C.6D.4

79.有以下程序

80.以下叙述中正确的是()。A.A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D.c语言中的文件是流式文件,因此只能顺序存取数据

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。

例如,输入opdye,则应输出deopy。

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

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

试题程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j++)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

printf("\n\nBeforesorting:\n%s",str);

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),它的功能是求出能整除x且不是偶数的整数,并将这些整数按从小到大的顺序放在PP所指的数组中,总个数通过形参n返回。如x中的值为30,则有4个数符合要求,它们是1、3、5、15。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.A解析:定义数组时,没有对s[1]进行初始化,因此s[1]的值不确定,所以k=s[1]*10的值也不确定。

2.C设叶子结点数为〃,则该树的结点数为n+9+5=n+\n14,根据树中的结点数=树中所有结点的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,则n=19。本题选择C选项。

3.B软件测试的目的主要有以下几个方面。

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

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

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

另外,即使经过了最严格的测试,可能仍然还有没被发现的错误藏在程序中,测试只是找出程序中的错误,不能证明程序中没有错误。

4.D调用缸函数后,实参数组名sl传给形参指针P,P也指向数组sl。m函数的功能是遍历字符数组中的所有字符,如果某一个字符是空格并且前一个字符是小写字母的话,就把前一个字符转换为大写。程序中语句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是将P[i一1]中的字符转换为大写。因此D选项正确。

5.B

6.B解析:投影操作是从关系中选择某些列,投影后消去了某些属性,就可能出现重复元组,根据关系的性质,应消去这些完全相同的元组。这样使得新关系的元组数小于或等于原来的元组数。

7.C当输入字符串时,函数scanf用“空格”间隔不同的字符串,scanf函数不能输入空格。getchar函数用于输入字符,其调用形式为ch=getchar(),getehar函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户按<Enter>键时,读入才开始执行。gets函数的调用形式为getS(Str_adr),其中“str_adr”是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。gets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc函数的调用形式为ch=getc(Pf),其中“pf”是文件指针,函数的功能是从“pf”指定的文件中读入一个字符,并把它作为函数值返回。故本题答案为C选项。

8.C函数fun(intx,inty)的功能是返回x+Y的值。在主函数中,变量a,b,c的初始值分别为1,2,3。因此逗号表达式“a++,b++,a+b”的值等于5,表达式c++的值为3,调用于函数的表达式为“fun(5,3);”,其返回值等于8。

9.D

10.A解析:顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项A是正确的。两者都可以存储线性的、有序的逻辑结构,所以选项B、C不正确。顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项D不正确。

11.D题目中需要输入一个变量,scanf要求输入参数为指针,而D选项中“ps->age”为变量,不是指针。故本题答案为D选项。

12.C解析:选项A)、选项B)显然不合题意。数据定义语言(DataDefinitionLanguage,简称DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言(DataManipulationLanguage,简称DML)负责数据的操纵,包括查询及增、删、改等操作。

13.C

14.C整型变量x、y的初值都为1,“x++,y++,++y”是一个逗号表达式,程序执行“z=x++,y++,++y”之后,x的值为2,y的值为3,z取逗号表达式中的第二个表达式的值,为1。因此本题的答案为选项C。

15.D在最坏情况下,冒泡排序和快速排序的比较次数都是n(n一1)/2。【知识拓展】所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。

16.D[解析]C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不合法。

17.D解析:本题考查的是二维数组元素在内存中的排列形式。虽然二维数组成多维数组从结构上来看不是线性的,但是在C语言中,这些数组元素在内存中的排列是连续线性存放的。它们的排列规则是:第一维下标变化最慢,最右边的下标变化最快.例如本题中定义的二维数组a[3][3]中9个元素在内存中的排列顺序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函数中,首先定义了二维数组a[3][3],然后定义了一个指针p指向数组a的第1个元素a[0][0]。在第一个for循环中,依数组a在内存中的排列顺序为其元素赋从0~8九个值,然后用第二个for循环依次输出a[1][0],a[1][1],a[1][2]三个元素的值。所以,4个选项中选项D符合题意。

18.Btypedef并不是增加一种新的类型,而是对已存在的类型用一个新的名字来代表,所以B选项错误。故本题答案为B选项。

19.D解析:结构体structureworkers中的成员s是结构体类型,给w中成员year赋值的语句是w.s.year=1980,故选D。

20.A函数返回值类型可以是简单类型和结构体类型。

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

22.main()pstr*(pstr+j)

23.ex或structstex或structst解析:求一个变量所占的存储单元数,用sizeof函数,参数为该变量名或其变量类型。

24.30x30x解析:本题的参数传递属于值传递,所以函数内不能改变调用函数中的数据。

25.0&a[i]a[i]0\r\n&a[i]\r\na[i]解析:本题要求从终端读入数据到数组中,统计其中正数的个数,井计算它们的和。程序中首先要对存放正数个数的变量count及存放和值的变量sum初始化为0,所以第一空应填0。接着要求从终端读入数据到数组中,可以通过scanf函数实现,因此第二空应填&a[i]。最后通过sum+=a[i];语句累加正数a[i]的值到sum中,因此第三空应填a[i]。

26.86518651解析:主程序中,第一次循环时,i=0,调用sb(s,x)子函数,此时n=3,x=s[n]=s[3]=8,然后将n减1变为2;第二次循环时,i=1,调用sb(s,x)子函数,因为将n定义为了静态变量,所以此时n=2,返回x=s[n]=s[2]=6;第三次循环时,i=2,调用sb(s,x)子函数,此时n=1,返回x=s[n]=s[1]=5;第四次循环时,i=3,调用sb(s,x)子函数,此时n=0,返回x=s[n]=s[0]=1。此程序实际上是将数组s逆序输出。

27.arjteartest

28.1010解析:该for语句以i为0,j为10作为初始值,循环条件是i<=j,每次循环后i增1、j减1,循环体是将i与j的和赋给k,这样变量k将保存的是最后一次赋给它的值。一次循环后i为1、j为9,二次循环后i为2、j为8,……,五次循环后i为5、j为5,第六次循环,将i与j的和10赋给k后,i为6、j为4,循环结束,k值为10。

29.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。

30.“filea.dat”“r”“filea.dat”,“r”解析:考查对文件的操作。fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。

31.x+8sin(x)x+8,sin(x)解析:考查考生对函数调用相关知识的了解。用x+8代替函数fun(doublex)中形式参数x;用sin(x)代替函数fun(doublex)中形式参数x。

32.D

33.77解析:本题考查英文字母ASCII码值的概念。字符参与运算的值是其对应的ASCII码,字符H的ASCII码为72,A的ASCII码为65,0的ASCII码为48,所以a=72-65+48=55,ASCII码值为55的字符是7。

34.b=I+1b=I+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2后的和累加至a,所以a的值就是110之间的偶数之和;b的值是111之间的奇数和,但在输出b值时,c去掉多加的11,即为110之间的奇数之和。

35.int*int*解析:从题中代码可知:z应该是一个整型指针,因此应填int*。

36.ASCⅡ

37.如果a能被i整除,则a是素数,返回值为0。如果a不能被i整除,则a不是素数,返回值为1。

38.逻辑独立性逻辑独立性解析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。数据独立性一般分为物理独立性与逻辑独立性两个含义。注意:在人工管理阶段,文件系统阶段和数据库管理阶段中数据独立性的特点。

39.24

40.非0非0解析:逻辑运算中,非0表示逻辑“真”,用。表示逻辑“假”。

41.C解析:选项A中0.5/100.0将保留小数点后六位,不满足题目要求,故选项A不正确;选项B和选项D也将保留小数点后六位,不满足题目要求,故选项B不正确;所以,4个选项中选项C符合题意。

42.C解析:scanf()把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。

43.D解析:本题考查while循环。第一次循环,先拿x的值和(y-1)比较,此时x=1,y-1=2,循环条件成立,比较完将x的值加1,此时x=2,进入循环,a=a+1=1,判断if语句的控制条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,先拿x的值和(y-1)比较,此时x=2,y-1=1,循环条件成立,比较完将x的值加1,此时x=3,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<x成立,执行break语句退出循环。

44.B解析:二叉树是由n≥0个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。二叉树可以是空集合,根可以有空的左子树或空的右子树。二叉树不是树的特殊情况,它们是两个概念。二叉树具有如下两个特点:①非空二叉树只有一个根结点。②每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。

45.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。

46.A本题主要考查标识符的定义。对标识符的定义是考试中常考的内容之一。标识符主要由数字、下画线和字母组成,其中数字不能放在首位,另外,用户自定义标识符时,不能将标识符定义为C语言中已定义的关键字,如int、while等。

根据上面对标识符的分析,我们不难看出本题的正确答案是A。在选项B中,3_xy以数字开头,不符合标识符定义的规定;在选项C中,int是C语言系统中已经定义了的关键字;在选项D中,LINE-3使用的数字、下画线和字母以外的字符,因此不正确。

47.C解析:对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止.在最坏的情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。

48.D解析:在需求分析阶段,根据可行性研究阶段所提交的文档,对目标系统提出清晰、准确和具体的要求。

49.D解析:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

50.B

51.C解析:#define宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef命令终止宏定义的作用域。本题由于#undef的作用,使a的作用范围在#definea100到#undefa之间,故答案为C。

52.B

53.D解析:当用scanf函数从键盘输入数据时,每行数据的末尾按下回车键(Enter键)之前,可以任意修改。但按下回车键putchar(c1)(Enter键)之后,scanf函数即接受了这一行数据,不能再回去修改。所以本题中,当输入123<CR>时,变量c1、c2、c3的值分别为1、2、3,当输入45678<CR>时,变量c5、c6的值4和5。所以用输出函数putchar(c1)输出1,putchar(c2)输出2,printf('%c%c\\n',c5,c6)输出45。所以选项D)为正确答案。

54.C解析:本程序中的函数sort(inta[],intn)实现的功能是将数组a中的前n个数进行从大到小排序。sort(&a[1],7)是将数组中从a[1]到a[7]这7个数进行从大到小排序,其他数不变。

55.A

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

57.C本题主要考查逗号表达式。逗号是一个特殊的运算符,它具有所有运算符中最低的优先级。在C语言中,用它可以将两个表达式连接起来,逗号表达式的一般表现形式为:

表达式1,表达式2,…,表达式n

逗号表达式的求解过程是:先求解表达式1,再求解表达式2,依次往后计算,整个逗号表达式的值是最后一个表达式的值,如“3+5,5+6”的值是11。

在本题中,逗号表达式为i=4,j=16,k=32,根据上面的分析,计算逗号表达式得到的结果为k=32,最后将逗号表达式的结果赋值给变量x,那么变量x的值为32。因此,本题的正确答案选C。

58.A解析:选项B中d已经为地址,不应在加上求地址符号“&”,故选项B不正确;选项C中,a和b都为变量不是地址,应该在a和b之前加上求地址符号“&”,故选项C不正确:选项D中指针d所指向的存储空间的位置为变量c的值,不为地址,故选项D不正确,所以,4个选项中A为所选。

59.BC语言中允许使用一种特殊形式的字符常量,就是以一个“\\”开头的字符序列,这样的字符称为“转义字符”。常用的转义字符有:\\n,换行;\\t,水平制表;\\b,退格;\\r,回车。

60.C解析:s是一个含有两个元素的指针数组,pp是一个指向指针变量的指针,s[0]是指向二维数组a行下标为0的元素的首地址,即时a[0][0]的地址,s[1]为a[1][0]的地址。pp的值为s[0]的地址。**pp=s[1][1]后,a[0][0]的值将被赋值为a[1][1]的值,执行p=*pp;后,p中将是s[0]的值,最后的输出语句将输出地址s[0]所指向的数据,即a[0][0]。

61.C

62.B

63.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。

64.B栈是按先进后出的原则组织数据的;队列是按先进先出的原则组织数据的,因此本题答案为B)。

65.B

66.D解析:中序遍历的递归算法定义:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法定义:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法定义:①遍历左子树;②遍历右子树;③访问根结点。根据前序遍历的结果可知,a是根结点。由中序遍历的结果dgbaechf可知,d、g、b是左子树的结点,e、c、h、f是右子树的结点。再由前序遍历的结果bdg可知,b是a左边子树的根,由cefh可知,c是a右边子树的根。再由中序遍历的结果dgb可知,d、g是b左边子树的结点,b右边子树无结点。再由前序遍历结果dg可知,d为b左子树的根,g是以d为根的子树的右结点。至此,a的左子树已完全弄清楚了。同样的道理,可以弄清楚以c为根的子树的结点位置。所以可知后序遍历的结果是D。

67.C根据赋值运算的类型转换规则,先将double型的常量l.2转换为int型,因为x的类型是int,则X的值为1;执行语句y=(K+3.8)/5.0时,即先将整型变量X的值1转换为double型1.0,然后3.8相加得4.8,进行除法运算4.8/5.0结果为0.即变量y的值为0,d*Y的值也为0,故选C选项。

68.D在本题中,题目要求我们分析给出程序段错误的原因。我们可以结合选项和程序段来分析。

在C语言中,是可以将字符型的变量赋值给整型变量的,主要是由于字符型是以ASCII码存储在计算机中的,在赋值的过程中,系统会将其对应的ASCII码值赋给整型变量,选项A描述的错误原因是不成立的。

*p表示的是数值,而非地址,*p=40;语句是合法的语句,选项B描述的错误原因也是不成立的。虽然q没有指向具体的存储单元,但*q的实际意义仍然是一样的,选项C描述的错误原因是不成立的。

执行*p=*q;操作没有实际的意义,因为指针变量q所指向的存储单元没有确定的值,用一个没有值的变量对其他变量赋值,没有实际意义,而且还可能影响后面语句的执行结果,D选项描述的错误原因是正确的。

69.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。

70.B两个相同结构关系的“并”是由属于这两个关系的元组组成的集合。

71.B模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。故答案为B选项。

72.A

73.B

74.B根据ASCII码可知大写字符A与小写字符a的ASCIl码相差32,而D中应该是加上'a',选项A和C左侧的表达式都是大写字符C与大写字符A的差与'a'的ASCIl代码的和就是小写字符c的ASCII代码。

75.B

76.C

77.A解析:结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性地转向程序的任一处,在传统流程图中,就是用上节我们提到的“很随意”的流程线来描述这种转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。

78.A【答案】:A【知识点】:二叉树的性质

【解析】:由二叉树的性质3可知,度为0的结点数(即叶子结点数)=度为2的结点数+1。题目中给出叶子结点数为5个,利用性质3可计算出度为2的结点数为4个。在二叉树只有三种结点:度为0的、度为1的、度为2的,总数为25个,所以度为1的结点数即为25-5-4=16个,所以答案为A。

79.Aa<<2的值为20,2011结果为21,所以答案选择A)。

80.AB)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。c)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。故本题答案为A)。

81.\n\t(1)错误:intproc(charstr[])

\n正确:voidproc(char、tr[])

\n(2)错误:str[j]=str[++];

\n正确:str[j]=str[i];

\n【解析】由主函数中的函数调用可知,函数proc没有返回值。因此,“intproccharstr[])”应改为“voidproc(charstr[])”;由函数proc可知,if语句块完成将字符串str中的第i个元素与第j个元素相交换。因此,“str[j]=str[i++];”应改为“str[j]=str[i];”。\n

82.1voidfun(intx,intpp[],int*n)2{3inti,j=0;4for(i=l;i<=x;i=i+2)/*i的初值为1,步长为2,确保i为奇数*/5if(x%i==0)/*将能整除x的数存入数组pp中*/6pp[j++]=i;7*n=j;/*传回满足条件的数的个数*/8}本题考查:偶数的判定方法;整除的实现。本题题干信息:能整除X且不是偶数的所有整数。循环语句中变量i从1开始且每次递增2,所以i始终是奇数。将能整除x的i值存放到数组PP中,整除采用求余运算符“%”,即“x%i==0”。最后将数据元素个数j保存到n中。2021年安徽省淮北市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.执行下面的程序段后,变量k中的值为()。intk=3,s[2];s[0]=k;k=s[1]*10;

A.不定值B.33C.30D.10

2.树的度为3,且有9个度为3的节点,5个度为1的节点,但没有度为2的节点。则该树中的叶子节点数为()。

A.18B.33C.19D.32

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

B.发现程序的错误

C.证明程序正确

D.软件产生

4.有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母:

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

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

5.以下函数调用语句中含有实参个数为().func((exp1,exp2),(exp3,exp4,exp5));

A.1个B.2个C.4个D.5个

6.对一个关系投影操作以后,新关系的元组个数______原来关系的元组个数。

A.小于B.小于或等于C.等于D.大于

7.若要求从键盘读入含有空格字符的字符串,应使用函数()。

A.getcharB.getcC.getsD.scanf

8.有下列程序:fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是()。A.6B.7C.8D.9

9.为非法的字符串常量()。A.“case”B.“”C.”056”D.‘123’

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

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

D.链式存储结构比顺序存储结构节省存储空间

11.有以下结构体说明、变量定义和賦值语句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];则下列scanf函数调用语句有错误的是()。

A.scanf(“%s”,s[0].name);

B.scanf(“%d”,&s[0].age);

C.scanf(“%c”,&(ps->sex));

D.scanf(“%d”,ps->age);

12.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为()。

A.CB.BasicC.DDLD.DML

13.已知A=10,B=20,下类表达式正确的是()。

A.C=(A++)*(--B)=200

B.A-=30

C.C=(A++)+(B--)=30

D.C=(++A)*(--B)=210

14.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序运行后的输出结果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1

15.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

16.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.大写字母B.下划线C.数字字符D.连接符

17.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序运行后的输出结果是

A.12B.123C.234D.345

18.下列叙述中错误的是()。

A.可以用typedef将已存在的类型用一个新的名字来代表

B.可以通过typedef增加新的类型

C.用typedef定义新的类型名后,原有类型名仍有效

D.用typedef可以为各种类型起别名,但不能为变量起别名

19.有以下定义和语句

StructWorkers

{intnum;charname[20];charc;

struct

{intday;intmonth;intyear;}s;

};

StructWorkersW,*pe;

PW=&W;

能给W中yeaR成员赋1980的语句是A.*pW.yeaR=1980;

B.W.yeaR=1980;

C.pW->yeaR=1980;

D.W.s.yeaR=1980;

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

A.函数的返回值类型不能是结构体类型,只能是简单类型

B.函数可以返回指向结构体变量的指针

C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员

D.只要类型相同,结构体变量之间可以整体赋值

二、2.填空题(20题)21.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于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);

}

22.若输入thistestterminal,以下程序的输出结果为:terminaltestthis。请填空。

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

for(i=0;i<3;++)pstr[i]=str[i];

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

for(j=i+1;j<3;j++)

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

23.以下程序用来输出结构体变量ex所占存储单元的字节数:

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));

}

24.阅读下列程序,则程序的输出结果为【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

25.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。

main()

{

inti,a[20],sum,count;

sum=count=【】;

for(i=0;i<20;i++)scanf("%d",【】);

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

{

if(a[i]>0)

{count++:

sum+=【】;

}

}

printf("sum=%d,count=%d\n",sum.count);

}

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

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

27.若输入tear、test、arj,则下列程序的运行结果为【】。

main()

{char*strl[20],*str2[20],*str3[20];

charswap();

scanf("%s",str1);

scanf("%s",str2);

scanf("%s",str3);

if(strcmp(str1,str2)>0)swap(str1,str2);

if(strcmp(str1,str3)>0)swap(str1,str3);

if(strcmp(str2,str3)>0)swap(str2,str3);

printf("%s%s%s\n",str1,str2,str3);

}

charswap(p1,p2)

char*p1,*p2;

{char*p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);

}

28.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【】。

for(i=0,j=10;i<=j;i++,j--)k=i+j;

29.算法的复杂度主要包括空间复杂度和______复杂度。

30.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

31.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

32.设有下面的程序段:chars[]="china";char*p;p=S;则下列叙述正确的是

33.若有以下程序:

main()

{chara;

a='H'-'A'+'0';

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

}

执行后的输出结果是【】。

34.下面程序的功能是:计算110之间的奇数之和与偶数之和,请填空。

#include<stdio.h>

main()

{inta,b,c,I;

a=c=0;

for(I=0;I<=10;I+=2)

{a+=I;

【】;

c+=b;}

printf("偶数之和=%d\n",a);

printf("奇数之和=%d\n",c-11);}

35.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。

voidfunc(intx,inty,【】z)

{*z=x+y;}

36.在C语言中,字符的比较就是对它们的【】码进行比较。

37.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。

intisprime(inta)

for(i=2;i<=a/2;i++)

if(a%i==0)[8];

[9];

38.数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。

39.以下程序运行后的输出结果是______。

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

40.C语言中用______表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。

三、1.选择题(20题)41.设变量x为noat型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第3位四舍五入的是()。

A.X=X*100+0.5/100.0;

B.x=(x*100+0.5)/100.0;

C.x=(int)(x*100+0.5)/100.0;

D.x=(x/100+0.5)*100.0;

42.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c)}若运行时从键盘上输入987643210则上面程序的输出结果是______。

A.a=98,b=75,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000c=4321.000000

D.a=98,b=765.0,c=4321.000000

43.下列程序的运行结果是()。main(){intx=1,y=3,a=0;while(x++!=(y=1)){a+1;if(y<x)break;}printf("%d,%d,%d\n”,x,y,a);}

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

44.下列二叉树描述中,正确的是()

A.任何一棵二叉树必须有一个度为2的结点B.二叉树的度可以小于2C.非空二叉树有0个或1个根结点D.至少有2个根结点

45.以下不属于对象的基本特点的是()

A.分类性B.多态性C.继承性D.封装性

46.下列是用户自定义标识符的是

A._w1B.3_xyC.intD.LINE-3

47.对长度为n的线性表进行顺序查找,在最坏的情况下需要比较的次数为()。

A.125B.n/2C.nD.n+1

48.在软件生存周期中,能准确确定软件系统必须做什么和必须具备哪些功能的阶段是()。

A.概要设计B.详细设计C.可行性分析D.需求分析

49.若有以下程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;printf("%d\n",a[2]);}上面程序的输出结果是()。

A.6B.8C.4D.2

50.设有定义:structsk{inta;floatb;}data,*p;若有p=&data;,则对data中的a域的正确引用是()

A.(*p).data.aB.(*p).aC.p->data.aD.p.data.a

51.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d

温馨提示

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

评论

0/150

提交评论