2021年陕西省渭南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2021年陕西省渭南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2021年陕西省渭南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2021年陕西省渭南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2021年陕西省渭南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

2021年陕西省渭南市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下C语言用户标识符中,不合法的是()。

A._1B.AaBcC.abD.a--b

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

A.算术运算符中不包含“=”运算符

B.模运算符“%”是c语言基本的算术运算符

C.算术运算符中只有“*”、“/”优先级高于关系运算符

D.自加和自减运算符只能用于变量,而不能用于常量或表达式

3.

4.下列程序的输出结果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

5.算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性

6.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

7.

8.有以下程序:#include<stdio.h>main(){char*s=“01234”;while(*(++s)!=‘\0’){switch(*s-‘0’){case0:case1:putchar(*s+1);break;case2:putchar(*s+1);break;case3:putchar(*s+1);default:putchar(*s+1);break;}}}程序运行后的输出结果是()。

A.22345B.2345C.12345D.23445

9.

10.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()

A.100B.40C.55D.80

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

A.将函数内的局部变量说明为static存储类是为了限制其他编译单位的引用

B.—个变量作用域的开始位置完全取决于变量定义语句的位置

C.全局变量可以在函数以外的任何部位进行定义

D.局部变量的“生存期”只限于本次函数调用,因此不能将局部变量的运算结果保存至下一次调用

12.

13.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen(“d.dat”,“w+b”);for(i=0;i<6;i++)fwrite(&a[i],sizeof(int),1,fp);rewind(fp);fread(&a[3],sizeof(int),3,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,a[i]);}程序运行后的输出结果是()。

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

14.程序流程图中带有箭头的线段表示的是()。

A.图元关系B.数据流C.控制流D.调用关系

15.以下程序输出的结果为______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX");char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

16.设有以下函数:voidfun(intn,char*s){…}则下面对函数指针的定义和赋值均正确的是()。

A.void(*pf)();pf=fun;

B.void*pf();pf=fun

C.void*pf();*pf=fun;

D.void(*pf)(int,char);pf=&fun;

17.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。

A.单链表B.单循环链表C.带尾指针的单循环链表D.带头结点的双循环链表

18.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

19.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

20.若有定义intx=3,y=2和floata=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是()。

A.0B.2C.1.5D.1

二、2.填空题(20题)21.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

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

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

printf("%d\n",S(i+j));

}

23.下面程序的输出结果是【】。

main()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j])

}

24.若有定义语句:inta=5;,则表达式:a++的值是【】。

25.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。

26.x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为______。

27.在内存中,存储字符'x'要占用1个字节,存储字符串"x"要占用【】个字节。

28.在关系数据库中,将数据表示成二维表,每一个二维表称为______。

29.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisNO.”。空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES,\n");

case'n':

case'N':printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnterachar'y','Y'or'n','N':");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

30.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。

31.若有以下程序:

intf(intx,inty)

{

return(y-x)*x;

}

main()

{

inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

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

}

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

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

33.数据库的设计通常可以分为这样四个步骤:需求分析、概念设计、______、和物理设计。

34.下面程序的运行结果是______。

typedefunionstudent

{

charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{

STUa[5];

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

}

35.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printff"%1d\n",x);}

37.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

38.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

39.设x和y均为int型变量,且x=1,y=2,则表达式2.0+x/y的值为_______。

40.以下程序的输出结果是()。

#include<stdio.h>

main()

{intx=27;

while(x>20&&x<30)

{x++;

if(x/3){x++;break;}

else

continue;

}

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

}

三、1.选择题(20题)41.用树形结构来表示实体之间联系的模型称为______。

A.关系模型B.网状模型C.层次模型D.以上3个都是

42.下述语句中,在字符串s1和s2相等时显示"theyareEqual"的是()。

A.if(*s1=*s2)puts("theyareEqual");

B.if(!strcmp(s1,s2))puts("theyareEqual");

C.if(s1==s2)puts("theyareEqual");

D.if(strcmp(s1,s2))puts("theyareEqual");

43.以下叙述中错误的是

A.在程序中凡是以"#"开始的语句行都是预处理命令行

B.预处理命令行的最后不能以分号表示结束

C.#defineMAX是合法的宏定义命令行

D.C程序对预处理命令行的处理是在程序执行的过程中进行的

44.有以下程序:#include<stdio.h>stxucttt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}}程序的运行结果是()。

A.20,30,B.30,17C.15,30,D.20,15,

45.下列程序的运行结果是#include"stdio.h"main(){intx=-9,y=5,z=8;if(x<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);}

A.6B.7C.8D.9

46.一个存储结点存放一个______。

A.数据项B.数据元素C.数据结构D.数据类型

47.下面程序的输出结果是

#include<stdio.h>

#include<string.h>

main()

{char*p1="abc",*p2="ABC",str[50]="xyz";

strcpy(str+2,strcat(p1,p2));

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

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

48.以下程序的功能是:给r输入数据后计算半径r圆面积s。程序在编译时出错。main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*π*r*r;printf("s=%f\n",s);出错的原因是

A.注释语句书写位置错误

B.存放圆半径的变量r不应该定义为整型

C.输出语句中格式描述符非法

D.计算圆面积的赋值语句中使用了非法变量

49.有下列程序:fun(intx){intp;if(x==0‖x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}执行后输出的结果是()。

A.7B.3C.2D.0

50.已知有结构体:

structsk

{ihta;

floatb;

)data,*p;

若有p=&data,则对data的成员a的正确引用是()。

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

51.下面程序的输出结果是()main(){intx,y,z;x=0;y=z=-1;x+=-z---yprintf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

52.以下程序的运行结果是()#definePI3.141593#include<stdio.h>main(){printf("PI=%fn",PI);}

A.3.141593=3.141593B.PI=3.141593C.3.141593=PID.程序有误,无结果

53.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表

54.结构化程序设计方法的3种基本控制结构中不包括

A.循环结构B.递归结构C.顺序结构D.选择结构

55.6.C语言中下列叙述正确的是()

A.不能使用do-while语句构成的循环

B.do-while语句构成的循环,必须用break语句才能退出

C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环

56.下列选项中不属于软件生命周期开发阶段任务的是()。

A.软件测试B.概要设计C.软件维护D.详细设计

57.以下程序的输出结果是______。#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}

A.16B.2C.9D.1

58.可在C程序中用作用户标识符的一组标识符是A.and2007

B.Date_y-m-d

C.HiDr.Tom

D.caseBigl

59.下列程序的输出结果是()main(){inti,j,m=0,n=0;for(i=0;i<2;i++)for(j=0;j<2;j++)if(j>=i)m=1;n++;printf("%d\n",n);}

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

60.设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是A.printf("x=%d\n",x);

B.printf("x=%1d\n",x);

C.printf("x=%8dL\n",x);

D.printf("x=%LD\n",x);

四、选择题(20题)61.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

62.算法的时间复杂度是指()。

A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程所需要的基本运算次数D.算法程序中的指令条数

63.有以下程序:

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

A.321,cbaB.abc,123C.123,abcD.lbe,a23

64.

65.

66.下列字符串不属于标识符的是()

A.sumB.averageC.day_nightD.M,D.JOHN

67.

68.若有下面说明和定义:

structtest

{intm1;charm2;floatm3;

unionuu(charu1[5];intu2[2];)ua;

}myaa;

则sizeof(structtest)的值是()。

A)20B)16

C)14D)9

69.

70.有以下程序:#include<stdio.h>main(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf(“c,%d\n”,c1,c2);}已知字母A的ASCⅡ码为65,程序运行后的输出结果是()。A.E,68B.B,69C.E,DD.输出无定值

71.

有以下程序:

intfun(intn)

{if(n==l)returnl;

elsereturn(n+fun(n一1)):

}

main

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",

x):

}

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

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

72.

73.有下列函数定义:intfun(doublea,doubleb){returna*b;}若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是()。A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(X,y)x,y);

D.fun(x,y);

74.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()。

A.a,point,*&a

B.&*a,&a,*point

C.*&point,*point,&a

D.&a,&*point,point

75.以下不构成无限循环的语句或语句组是()。

76.

77.有以下程序

#include<stdio.h>

main()

{inti=5;

do

{if(i%3==1)

if(i%5==2)

{printf("*%d",i);break;}

i++;

}while(i!=0);

printf("\n");

}

程序的运行结果是

A.*7B.*3*5

C.*5D.*2*6

78.下列不可用于C语言用户标识符的是A.A.j2_KEY

B.char

C._g_

D.Double

79.

下列程序的执行结果是()。

#include<stdioh>

main

{inta,b,c;

a=b=2,c=I;

c=(a++)-1;printf("%d,0Ad",a,c);

c+=-a+++(++b);printf("%d,%d",a,c);

)

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

80.下列关于数据流图的描述正确的是()。

A.数据流图是描述数据处理过程的工具

B.数据流图间接支持系统的功能建模

C.数据流图中带箭头的线段表示控制流

D.数据流图是软件详细设计的工具

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头2个元素进行排序,然后把第3个字符插入到前2个字符中,插入后前3个字符依然有序;再把第4个字符插人到前3个字符中,待排序的字符串已在主函数中赋予。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数proc,它的功能是:求出1~m(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

例如,若传给m的值为70,则程序输出:

7111421222833354244495556636670

注意:部分源程序给出如下。

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

试题程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#defineN100

voidproc(intm,int*a,int*n)

{}

voidmain

{

intarr[N],n,k;

system("CLS");

proc(70,arr,&n);

for(k=0;k<n;k++)

if((k+1)%20==0)//每行输出20个数

{printf("%4d",arr[k]);

printf("\n");

}

else

printf("%4d",arr[k]);

printf("\n");

}

参考答案

1.D\n标识符主要由英文字母、数字和下划线构成,但开头字符一定是字母或下划线。

\n

2.C

3.C

4.C解析:函数slzeof(a)的功能是求出字符串a中的字符占用存储空间的大小,由于字符数组a有长度为7,所以i=7;函数strlen(a)的功能是:求出字符串a的长度。而每个字符串都以'\\0'为字符串的结束标记,所以j的值等于2。

5.C

6.B本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j~0到3,j=4时不符合,所以退出j循环;然后i减1,J仍然要从0~3,j=4时退出J循环直到i变成0,退出i循环。第一条for语句执行6次,第二条for语句执行4次,所以内循环体执行6*4=24次。

7.C

8.D程序首先定义一个字符指针s,指向一个常量字符串“01234”;接着while循环的循环条件每次将s指向下一个字符,然后判断s指向的字符是否为空字符“\\0”,若不是,则执行循环体,将当前字符与‘0’”的ASCII差值作为switch语句的常量表达式,执行对应的case语句。指针s指向空字符“\\0”时,则终止循环,程序结束。从常量字符串“01234”可知,循环过程中s指向的各个字符分别是1、2、3、4。当*s是字符“1”时,*s-‘0’的值为1,执行case1语句,输出*s+1,即字符“2”;当*s是字符“2”时,*s-‘0’的值为2,执行case2语句,输出*s+1,即字符“3”;当*s是字符“3”时,*s-‘0’的值为3,执行case3和default语句,两次输出*s+1,即字符“4”;当*s是字符“4”时,*s-‘0’的值为4,执行default语句,输出*s+1,即字符“5”。综上,程序输出结果为23445。故本题答案为D选项。

9.B

10.C

11.A将函数内的局部变量说明为static存储类,第1次调用该函数时才对其初始化,后续调用时使用上一次调用结束后的值;函数体内的局部变量无论是否声明为stat\x1fic,外部编译单位都不能引用,选项A错误,其他选项正确。本题答案为A选项。

12.B

13.D程序首先以读和写二进制文件的方式打开文件d.dat;然后通过for循环,调用fwrite函数将数组a中的各个元素写入d.dat中;接下来调用rewind函数,将文件指针fp重定位到文件的开始位置;再调用fread函数将文件的前3个整数1,2,3读入a[3]开始的位置,所以此时数组a中的元素值分别为:1,2,3,1,2,3。故本题答案为D选项。

14.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;

表示逻辑条件。

15.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当执行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。

16.A函数指针的定义格式为函数类型(*指针变量名)(形参列表);函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。所以选项A正确。

17.C

18.A解析:从main函数入手,定义了指向字符串的指针数组,并赋予了初始值,调用fun()函数,函数的功能是:比较数组中各个元素的长度,按元素长度从小到大排列数组元素,所以执行fun(ss,5)函数后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},所以调用printf函数输出ss[0],ss[4]的值分别为xy,aaaacc。

19.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

20.D

21.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

22.8181解析:将S(i+j)展开来有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。

23.AB

24.55解析:a++的含义是在使用a值以后,使a值加1,所以a++的值为5。

25.实体联系图或E-R图实体联系图或E-R图解析:实体联系图(B-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。

26.1616解析:函数运算不改变数据类型,所以结果也是double型,fabs(x)是对x取绝对值,pow(y,fabs(x))是y的labs(x)次幂,即2.04。0=16.000000(注意;结果为double型)。

27.22解析:计算机存储一个字符用1个字节,存储字符串时,每个字符用占用1个字节,另在字符串的有效字符之后存储1个字符串的结束标记符。所以存储字符串“X”要占用2个字节,存储字符'x'只要1个字节。注意:sizeof()函数和strlen()函数的作用。

28.关系或关系表关系或关系表解析:在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系.表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名,表中的一行称为一个元组,相当于记录值。

29.getchargetchar解析:题中要求根据输入的字符调用函数YesNo来判断输入的字符是y(Y)还是n(N),字符的输入可用字符输入函数getchar。函数YesNo用来判断一个字符是y(Y)还是n(N),主要用了一个switch多分支结构来比较输入字符与字符'y','Y'、,'n','N'是否相等来实现的。注意:用于字符串处理的函数。

30.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。

31.99解析:在主函数中函数f(f(3,4),f(3,5))的返回值赋给do函数的第一个参数为f(3,4)的返回值,函数f(3,4)返回值为(4-3)*3=3,f(3,5)返回值为(5-3)*3=6,那么函数f(f(3,4),f(3,5))等价于函数f(3,6)其返回值为(6-3)*3=9。因此d被赋值为9,所以输出9。

32.3131解析:在函数调用时,形参值和改变,不会改变实参的值。

33.逻辑设计逻辑设计解析:数据库设计的四个阶段为:需求分析、概念设计、逻辑设计和物理设计。

34.8080解析:本题考查的知识点是共用体数组变量所占内存的长度。数组a是共用体变量,共用体类型变量所占的内存长度为最大成员的长度,即单精度数组的长度,为4×4=16,因此,数组a所占的内存长度为5×16=80,所以最后输出的s的值为80。

35.

36.99解析:考查ifelse语句,n==4不满足条件,所以fun5(4)=4+fun5(3),n==3也不满足条件,fun5(3)=3+funS(2),n==2满足条件fun5(2)=2,故x=4+3+2=9。

37.1对多(或1:N)1对多(或1:N)

38.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。

39.2.0。2.0。解析:x和y为整数,运算符“/”在这里是整型除,整除后值为0。

40.2929解析:本题考查while循环和++运算,x=27符合循环条件,执行循环体中x++后,x=28,if条件也成立,执行x++后退出,x的值增1,结果x=29。

41.C解析:层次模型的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构等,它们自顶向下、层次分明。由第一章树的知识,知道任一树结构均有下列特性:(1)每棵树有且仅有一个无双亲结点,称为根(root)。(2)树中除根外所有结点有且仅有一个双亲。因此,树结构是受到一定限制的,从E-R模型观点看,它对于联系也加上了许多限制。

42.B

43.D解析:C语言中的预处理命令以符号#开头,这些命令是在程序编译之前进行处理的,选项D)的描述错误。

44.D解析:题目中定义了一个全局结构体数组a,结构体中包含两个成员;一个int型变量x和一个自身类型指针y。所以,结构体数组a的初始化列表中每两个初始化一个结构体元素。主函数通过一个for循环,连续调用了两次输出函数printf(),每次输出p所指元素的x成员值。p初始化时指向数组a的首地址,即a[0]的位置,所以第1次输出的值为20。然后又将a[0]的成员y的值赋给p,y在初始化时是a+1,所以p在第2次输出时指向的元素是a[1],故第2次输出的值为15。所以本题最终输出结果是“20,15,”,应该选择D。

45.D解析:if...else语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个ifelse相当于嵌套在第一个if子句里,相当于x<y&&y<0时,z=0;当x<y&&y>=0时,z=z+1。

46.B

47.C解析:本题考查的重点是拷贝字符串──使用strcpy()函数,该函数的调用方式是:strcpy(字符数组,字符串),其中'字符串'可以是字符串常量,也可以是字符数组。函数的功能是:将'字符串'完整地复制到'字符数组'中,字符数组中原有的内容被覆盖。

使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志\'\\0\'一起复制;②不能用赋值运算符'='将一个字符串直接赋值给一个字符数组,只能用strcpy()函数处理。

另外,本题还考查连接字符串的strcat()函数,其调用方式是:strcat(字符数组,字符串)。

功能是把'字符串'连接到'字符数组'中的字符串尾端,并存储于'字符数组'中。'字符数组'中原来的结束标志,被'字符串'的第一个字符覆盖,而'字符串'在操作中未被修改。

使用该函数时注意:①由于没有边界检查,编程者要注意保证'字符数组'定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题;②连接前两个字符串都有结束标志\'\\0\',连接后'字符数组'中存储的字符串的结束标志\'\\0\'被舍弃,只在目标串的最后保留一个\'\\0\'。

48.D解析:在C语言源程序中了注释部分、字符串常量部分可以使用任意字符外,其余部分只能由52个大小写:字母、10个阿拉伯数字以及+-*/=,._:;?\\'\'~|!#%&()[]^<>“空格”30个特殊符号组成。所以在计算圆面积的赋值语句中出现的π是非法字符,将引起编译出错.应该选择D。

49.C解析:因为在函数fun(intx)中,如果参数x等于0或1时,返回值3。否则p=x-fun(x-2)这是一个递归函数,所以在主函数调用fun(7)时,其过程为:'fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2',所以最后的输出结果为2。

50.B解析:本题主要考查结构指针:p=&data,访问结构体的成员,可以通过结构变量访问,即data.a,也可以用等价的指针形式:(*p).a和p->a来访问结构体变量中的成员。

51.C

52.B

53.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。

54.B解析:本题考查了程序的基本结构。程序由一些基本结构组成。任何一个大型的程序都由3种基本结构组成,由这些基本结构顺序的构成了一个结构化的程序。这3种基本结构为:顺序结构、选择结构和循环结构。

55.D解析:本题考查do-while语句。C语言支持do-while语句,选项A)错误;do-while构成的循环,当while语句中的表达式值为零时结束循环,故选项B)、C)都是错误的。

56.C解析:软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是C。

57.B解析:C语言在预编译时遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换。在做这题时,也不妨运用置换法。得到a/=k+m*k+m/k+m*k+m=16/7=2。注:a为整型,所以在做除法时,自动取整。

58.A解析:在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线。C语言的标识符可以分为关键字、预定义标识符和用户标识符。选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字。

59.C

60.B解析:本题考查的知识点是输出语句printf()的基本用法。x为一个长整型的变量,而且是一个十进制的数,它的输出控制符是“%1d”,所以排除选项A和选项C;由于C语言中是区分大小写的,“1d”中的“d”不能为大写,故排除选项D。4个选项中B正确。

61.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

62.C算法复杂度包括时间复杂度和空间复杂度,算法的时间复杂度是指执,亍算法所需要的计算机工作量,即算法执行过程中所需要的基本运算次数。

63.D字符串是一个特殊的数组,所以按照数组的规则,sl应该指向的是数组的首地址,即“abc”的第一个字符的地址。s2指向的是“123”的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符‘a’和‘1’的内容,所以打印输出为D)。

64.B

65.D

66.D

67.C

68.Asizeof求在存储单元中所占字节数。

69.D

70.A本题目中字符变量cl是字符‘A’的ASCIl码加上4,即69所对应的字符‘E’。字符变量c2是字符‘A’的ASCIl码加上3,即68所对应的字符‘D’。但是打印输出时,cl以%C的格式输出,所以是E,c2以%d的格式输出,所以是68。

71.A

\n函数intfun(intn)的功能是求1+2+…+n的值并返回。所以执行程序时,给变量x输入10后,执行语句“x=fun(x);”,X的值将变为1到10中10个整数的累加和,即55。

\n

72.B

73.C本题考查函数在函数调用时参数的传递形式,形参与实参参数个数类型要一致。

74.D本题主要考查指针变量对数值的引用。在题目中,首先定义了整型指针变量point和一个整型变量a,变量a的初值为4,然后是指针变量指向a,或者说将变量a所在存储单元的地址值赋给指针变量。

在选项A中,很显然,不全是地址,只有point表示地址,而*&a等价于*(&a),表示取一个数值。

在选项B中,也不都表示地址,其中*point表示数值,其他两个表示地址。

在选项C中,与选项B类似,其中的*point表示数值。

在选项D中,都表示地址,是题目的选择答案。

75.A选项A)中d0后面的语句只执行了一次便结束了循环;B)选项中条件while(1)永远成立,因此是死循环;C)选项中n的值为l0,而循环体为空语句,所以while(n)永远为真,进入死循环;D)选项中fbr语句第二个表达式为空,因此没有判定条件,进入死循环。因此本题答案为A)。

76.D

77.A本题考查C语言中对整数求余数运算。运算符“%”是两个数相除后取余数。分析本题的程序,main函数中的主体为一个do-while循环,该循环的终止条件为i==0。do-while循环内部起始为一个if语句,该语句包含一个if子语句,外层if语句的判断条件是i%3==1,表示i的取值范围为{1,4,7,11,…},内部if子语句的判断条件为i%5==2,表示i的取值范围为{2,7,12,…}。如果外层和内层的if语句的条件都满足,则执行语句printf('*%d',i);break;,该语句输出*i形式的结果并跳出do-while循环。如果两个if语句有一个条件不满足,则执行i++操作,继续执行do-while循环。i的初始值为5,只有满足两个if语句条件时才能够跳出do-while循环,即当i=7时,循环结束,输出结果为*7。

78.B本题主要考查标识符的命名规则。选项A是合法的用户标识符,它符合命名的规则;选项B不是一个合法的用户标识符,因为它是系统中定义了的关键字;选项C是一个合法的标识符;选项D可能也会有很多人认为它不是一个合法的标识符,认为它是关键字,但事实上它不是一个关键字,因为C语言中严格区分大小写,因此,它不是双精度关键字“double”,所以它是一个合法的用户标识符。

79.A

\n本题主要考查自加减运算符(++,--)的使用。①如果作为前缀变量“++a,--a”,在使用a之前,先使a的值加1或者减1,再使用表达式的值参与运算;②后缀变量“a++,a--”,先使用表达式的值参与运算,在使用a之后,再使i的值加1或者减1。在本题中计算表达式c=(a++)-1时先使用a的值进行计算,结果为c=2-1=1,然后将a的值加1,即执行完此句后l3-的值是3;表达式c+=-a+++(++b)也可写成C=c+(一a++)+(++b),c=1+(一3)+3=1,此时a=4,b=3。

\n

80.A\n数据流图是结构化方法的需求分析工具,是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图中带箭头的线段表示数据流。

\n

81.错误:c=arr[i];

正确:ch=arrEi];

【解析】由函数定义可知,函数proc只定义了变量ch,没有定义变量c。因此,“c=”r[i];”应改为“ch=arr[i];”。

82.\n\tvoidproc(intm,int*a,int*n)

\n{

\ninti,j=0;

\nfor(i=1;i<=m;i++)//进行m次循环

\nif(i%7==0||i%11==0)//能被7或11整除的所有整数

\na[j++]=i;//符合条件的数放在数组a中

\n*n=j;//返回这些数的个数

\n}

\n【解析】本题需要先判断1~m每一个整数能否被7或11整除,然后将符合条件的整数放在数组a中,最后将符合条件的数的个数通过形参n返回主函数。\n2021年陕西省渭南市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下C语言用户标识符中,不合法的是()。

A._1B.AaBcC.abD.a--b

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

A.算术运算符中不包含“=”运算符

B.模运算符“%”是c语言基本的算术运算符

C.算术运算符中只有“*”、“/”优先级高于关系运算符

D.自加和自减运算符只能用于变量,而不能用于常量或表达式

3.

4.下列程序的输出结果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

5.算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性

6.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

7.

8.有以下程序:#include<stdio.h>main(){char*s=“01234”;while(*(++s)!=‘\0’){switch(*s-‘0’){case0:case1:putchar(*s+1);break;case2:putchar(*s+1);break;case3:putchar(*s+1);default:putchar(*s+1);break;}}}程序运行后的输出结果是()。

A.22345B.2345C.12345D.23445

9.

10.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()

A.100B.40C.55D.80

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

A.将函数内的局部变量说明为static存储类是为了限制其他编译单位的引用

B.—个变量作用域的开始位置完全取决于变量定义语句的位置

C.全局变量可以在函数以外的任何部位进行定义

D.局部变量的“生存期”只限于本次函数调用,因此不能将局部变量的运算结果保存至下一次调用

12.

13.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen(“d.dat”,“w+b”);for(i=0;i<6;i++)fwrite(&a[i],sizeof(int),1,fp);rewind(fp);fread(&a[3],sizeof(int),3,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,a[i]);}程序运行后的输出结果是()。

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

14.程序流程图中带有箭头的线段表示的是()。

A.图元关系B.数据流C.控制流D.调用关系

15.以下程序输出的结果为______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX");char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

16.设有以下函数:voidfun(intn,char*s){…}则下面对函数指针的定义和赋值均正确的是()。

A.void(*pf)();pf=fun;

B.void*pf();pf=fun

C.void*pf();*pf=fun;

D.void(*pf)(int,char);pf=&fun;

17.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。

A.单链表B.单循环链表C.带尾指针的单循环链表D.带头结点的双循环链表

18.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

19.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

20.若有定义intx=3,y=2和floata=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是()。

A.0B.2C.1.5D.1

二、2.填空题(20题)21.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

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

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

printf("%d\n",S(i+j));

}

23.下面程序的输出结果是【】。

main()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j])

}

24.若有定义语句:inta=5;,则表达式:a++的值是【】。

25.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。

26.x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为______。

27.在内存中,存储字符'x'要占用1个字节,存储字符串"x"要占用【】个字节。

28.在关系数据库中,将数据表示成二维表,每一个二维表称为______。

29.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisNO.”。空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES,\n");

case'n':

case'N':printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnterachar'y','Y'or'n','N':");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

30.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。

31.若有以下程序:

intf(intx,inty)

{

return(y-x)*x;

}

main()

{

inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

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

}

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

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

33.数据库的设计通常可以分为这样四个步骤:需求分析、概念设计、______、和物理设计。

34.下面程序的运行结果是______。

typedefunionstudent

{

charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{

STUa[5];

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

}

35.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printff"%1d\n",x);}

37.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

38.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

39.设x和y均为int型变量,且x=1,y=2,则表达式2.0+x/y的值为_______。

40.以下程序的输出结果是()。

#include<stdio.h>

main()

{intx=27;

while(x>20&&x<30)

{x++;

if(x/3){x++;break;}

else

continue;

}

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

}

三、1.选择题(20题)41.用树形结构来表示实体之间联系的模型称为______。

A.关系模型B.网状模型C.层次模型D.以上3个都是

42.下述语句中,在字符串s1和s2相等时显示"theyareEqual"的是()。

A.if(*s1=*s2)puts("theyareEqual");

B.if(!strcmp(s1,s2))puts("theyareEqual");

C.if(s1==s2)puts("theyareEqual");

D.if(strcmp(s1,s2))puts("theyareEqual");

43.以下叙述中错误的是

A.在程序中凡是以"#"开始的语句行都是预处理命令行

B.预处理命令行的最后不能以分号表示结束

C.#defineMAX是合法的宏定义命令行

D.C程序对预处理命令行的处理是在程序执行的过程中进行的

44.有以下程序:#include<stdio.h>stxucttt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}}程序的运行结果是()。

A.20,30,B.30,17C.15,30,D.20,15,

45.下列程序的运行结果是#include"stdio.h"main(){intx=-9,y=5,z=8;if(x<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);}

A.6B.7C.8D.9

46.一个存储结点存放一个______。

A.数据项B.数据元素C.数据结构D.数据类型

47.下面程序的输出结果是

#include<stdio.h>

#include<string.h>

main()

{char*p1="abc",*p2="ABC",str[50]="xyz";

strcpy(str+2,strcat(p1,p2));

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

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

48.以下程序的功能是:给r输入数据后计算半径r圆面积s。程序在编译时出错。main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*π*r*r;printf("s=%f\n",s);出错的原因是

A.注释语句书写位置错误

B.存放圆半径的变量r不应该定义为整型

C.输出语句中格式描述符非法

D.计算圆面积的赋值语句中使用了非法变量

49.有下列程序:fun(intx){intp;if(x==0‖x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}执行后输出的结果是()。

A.7B.3C.2D.0

50.已知有结构体:

structsk

{ihta;

floatb;

)data,*p;

若有p=&data,则对data的成员a的正确引用是()。

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

51.下面程序的输出结果是()main(){intx,y,z;x=0;y=z=-1;x+=-z---yprintf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

52.以下程序的运行结果是()#definePI3.141593#include<stdio.h>main(){printf("PI=%fn",PI);}

A.3.141593=3.141593B.PI=3.141593C.3.141593=PID.程序有误,无结果

53.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表

54.结构化程序设计方法的3种基本控制结构中不包括

A.循环结构B.递归结构C.顺序结构D.选择结构

55.6.C语言中下列叙述正确的是()

A.不能使用do-while语句构成的循环

B.do-while语句构成的循环,必须用break语句才能退出

C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环

56.下列选项中不属于软件生命周期开发阶段任务的是()。

A.软件测试B.概要设计C.软件维护D.详细设计

57.以下程序的输出结果是______。#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}

A.16B.2C.9D.1

58.可在C程序中用作用户标识符的一组标识符是A.and2007

B.Date_y-m-d

C.HiDr.Tom

D.caseBigl

59.下列程序的输出结果是()main(){inti,j,m=0,n=0;for(i=0;i<2;i++)for(j=0;j<2;j++)if(j>=i)m=1;n++;printf("%d\n",n);}

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

60.设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是A.printf("x=%d\n",x);

B.printf("x=%1d\n",x);

C.printf("x=%8dL\n",x);

D.printf("x=%LD\n",x);

四、选择题(20题)61.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

62.算法的时间复杂度是指()。

A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程所需要的基本运算次数D.算法程序中的指令条数

63.有以下程序:

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

A.321,cbaB.abc,123C.123,abcD.lbe,a23

64.

65.

66.下列字符串不属于标识符的是()

A.sumB.averageC.day_nightD.M,D.JOHN

67.

68.若有下面说明和定义:

structtest

{intm1;charm2;floatm3;

unionuu(charu1[5];intu2[2];)ua;

}myaa;

则sizeof(structtest)的值是()。

A)20B)16

C)14D)9

69.

70.有以下程序:#include<stdio.h>main(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf(“c,%d\n”,c1,c2);}已知字母A的ASCⅡ码为65,程序运行后的输出结果是()。A.E,68B.B,69C.E,DD.输出无定值

71.

有以下程序:

intfun(intn)

{if(n==l)returnl;

elsereturn(n+fun(n一1)):

}

main

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",

x):

}

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

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

72.

73.有下列函数定义:intfun(doublea,doubleb){returna*b;}若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是()。A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(X,y)x,y);

D.fun(x,y);

74.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()。

A.a,point,*&a

B.&*a,&a,*point

C.*&point,*point,&a

D.&a,&*point,point

75.以下不构成无限循环的语句或语句组是()。

76.

77.有以下程序

#include<stdio.h>

main()

{inti=5;

do

{if(i%3==1)

if(i%5==2)

{printf("*%d",i);break;}

i++;

}while(i!=0);

printf("\n");

}

程序的运行结果是

A.*7B.*3*5

C.*5D.*2*6

78.下列不可用于C语言用户标识符的是A.A.j2_KEY

B.char

C._g_

D.Double

79.

下列程序的执行结果是()。

#include<stdioh>

main

{inta,b,c;

a=b=2,c=I;

c=(a++)-1;printf("%d,0Ad",a,c);

c+=-a+++(++b);printf("%d,%d",a,c);

)

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

80.下列关于数据流图的描述正确的是()。

A.数据流图是描述数据处理过程的工具

B.数据流图间接支持系统的功能建模

C.数据流图中带箭头的线段表示控制流

D.数据流图是软件详细设计的工具

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头2个元素进行排序,然后把第3个字符插入到前2个字符中,插入后前3个字符依然有序;再把第4个字符插人到前3个字符中,待排序的字符串已在主函数中赋予。请修改程

温馨提示

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

评论

0/150

提交评论