2022-2023年山东省济南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2022-2023年山东省济南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2022-2023年山东省济南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2022-2023年山东省济南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2022-2023年山东省济南市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年山东省济南市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

3.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);当执行上述程序段时,从键盘上输入555667777abc后,y的值为()。

A.566.0B.55566.0C.7777.0D.566777.0

4.有以下程序:

程序的运行结果是()。

A.y=0B.y=1C.y=2D.y=3

5.

6.设有定义“doublea[10],*s=a;”,以下能够代表数组元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

7.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

8.若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。

A.10011000B.10001100C.10101000D.10110000

9.

10.实体联系模型中实体与实体之间的联系不可能是

A.一对一B.多对多C.一对多D.对零

11.

12.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}输出结果是()。A.11B.10C.9D.1011

13.下面程序的运行结果是

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

for(i=0,j=0;a[i]!=′\n′;i++)

if(a[i]>=′0′&&a[i]<=′9′)

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

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

A.abcB.34C.a34D.a34bc

14.

15.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}执行后输出结果是()。

A.77B.88C.810D.1010

16.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序运行后的输出结果是()。A.1,2B.3,4C.5,6D.123,456

17.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的运行结果是()。

A.0242B.1593C.1351D.286

18.有以下程序:voidfun1(char*p){char*q;q=p;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];fun1(p)printf("%s\n",A);}程序执行后的输出结果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

19.以下选项中合法的C语言常量是()。

A.2.0KbB.”C++’C.”\2.0D.1.01

20.链表不具备的特点是()。

A.可随机访问任一结点B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与其长度成正比

二、2.填空题(20题)21.常用的黑箱测试有等价类划分法、【】和错误推测法3种。

22.设有下列宏定义:#defineA2

#defineBA+3

则执行赋值语句;t=B*2;t为int型变量后的值是______。

23.栈的基本运算有三种:入栈、退栈和【】。

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

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

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

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

请填空。

ginclude"math.h"

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

main()

{doublex,y1,y2;

pfintf("Enterx:");scanf("%lf"&x);

y1=fun([10]);y2=fun([11]);

pin

26.若x为血类型,请写出与!x等价的C语言表达式______。

27.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

28.以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*Sum)

{inti,j,k,s=0

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

{k=0;

for(j=1;j<M;j++)

if(a[k][i]>a[j][i])k=j;

s+=【】;

}

【】=s;

}

main()

{intx[M][N]={3,2,5,1,4,l,8,3),s;

SumColumMin(【】);

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

}

29.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

30.使用结构体处理数据的场合是【】。

31.以下和程序中,主函数调用了lineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值,请填空。

#defineN3

#defineM4

voidlineMax(intx[N][M])

{inti,j,p;

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

{p=0;

for(j=1;j<M;j++)

if(x[i][p]<x[i][j]【】;

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

}

{

main()

{intx[N][M]={1,5,4,2,6,4,3,8,2,3,1};

【】;

}

32.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。

33.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{intx[10],a[9],I;

for(I=0;I<10;I++)scanf("%d",&x[I]);

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

for(I=0;I<9;I++)printf("%d",a[I]);

printf("");

}

34.结构化程序设计的3种基本结构分别是顺序、选择和______。

35.有如下图所示的双链表结构,请根据图示完成结构体的定义:

structaa

{intdata;

【】}node;

36.算法执行过程中所需要的存储空间称为算法的______。

37.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。

38.下面的程序是将从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。

#include<stdio.h>

main()

{inti;

chars[21],*p;

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

s[i]=getehar();

s[i]=【】;

p=【】;

while(*p)putchar(【】);

}

39.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

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

三、1.选择题(20题)41.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件

B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

42.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];则b中的值是()。

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

43.下列苯于C语言数据文件的叙述中正确的是()。

A.文件由ASCII码字符序列组成,C语言只能读写文本文件

B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

44.若下列各选项中所有变量已正确定义,函数fun通过return语句返回一个函数值,以下选项中错误的程序是()。

A.main(){...x=fun(2,10);...}floatfun(inta,intb){...}

B.floatfun(inta,intb){...}main(){...x=fun(i,j);...}

C.floatfun(int,int);main(){...x=fun(2,10);...}floatfun(ihta,intb){...}

D.main(){floatfun(inti,intj);...x=fun(i,j);...}floatfun(inta,intb){...}

45.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

46.以理程序的输出结果______。main(){charst[20]="he11\O\t\\";printf("%d%d\n",str1en(st),sizeof(st));}

A.99B.520C.1320D.2020

47.检查软件产品是否符合需求定义的过程称为()。

A.确认测试B.集成测试C.验证测试D.验收测试

48.下面函数调用语句含有实参的个数为()。func((exp1,exp2),(exp3,exp4,exp5));

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

49.设整型数i=5,则printf("%d",i+++++i);的输出为______。

A.10B.11C.12D.语法错误

50.

有以下程序:

main

{intx=102,y=012;

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

}

执行后输出结果是()。

A.10,01B.02,12C.102,10D.02,10

51.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A.doublemyadd(doublea,b);

B.doublemyadd(double,double);

C.doublemyadd(doubleb,doublea);

D.doublemyadd(doublex,doubley);

52.以下能正确定义一维数组的选项是______。

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

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

53.若fp是指向某文件的指针,且已读到文件的末尾,则C语言函数feof(fp)的返回值是()

A.EOFB.-1C.非零值D.NULL

54.C语言的基本单位是()。

A.函数B.过程C.子程序D.子函数

55.函数rewind的作用是

A.使文件位置指针重新返回文件的开始位置

B.将文件位置指针指向文件中所要求的特定位置

C.使文件位置指针指向文件的末尾

D.使文件位置指针自动移至下一个字符位置

56.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量

57.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。

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

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

A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征

B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征

C.白箱(盒)测试不考虑程序内部的逻辑结构

D.上述三种说法都不对

59.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}执行后的输出结果是()。

A.1B.2C.4D.死循环

60.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No

四、选择题(20题)61.以下叙述中正确的是

A.C程序的基本组成单位是函数B.C程序中的每一行只能写一条语句

C.main()函数必须放在其他函数之前D.C语句必须在一行内写完

62.下列选项中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

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

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

64.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。

A.一对一B.一对多C.多对多D.多对一

65.

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

A.30B.10C.0D.64

67.

68.

69.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序运行后的输出结果是()。A.6B.10C.11D.15

70.以下选项中,与k=n++完全等价的表达式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

71.

72.

73.

74.有以下程序(注:字符a的ASCIl码值为97)

#include<stdio.h>

main()

{char*s={"abc")

do

{printf("%d",*S%10");++S;}

while(*s);

}

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

A.abcB.789C.7890D.979899

75.以下正确的字符串常量是()。A.A."\\\"

B.'abc'

C.OlympicGames

D.""

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

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

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

77.下面结构体的定义语句中,错误的是()。

A.structord{intx;intY;intz;}structorda;

B.structord{intx;imY;imz;};structorda;

C.structord{intx;intY;intZ;}a;

D.struct{intx;intY;intz;}a;

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

A.算法所处理的数据量B.算法的执行时间C.算法在执行过程中所需要的基本运算次数D.算法程序中的语句或指令条数

79.软件生命周期中所花费用最多的阶段是()。

A.详细设计B.软件编码C.软件测试D.软件维护

80.

在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。

A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为7654321时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!

#include<;stdi0.h>;

六、程序设计题(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.B

2.A

3.Ascanf是格式输入函数,即按用户指定的格式从键盘上把数据输入指定的变量中。其中,在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。所以j的值为55,y的值为566.0,字符数组name的值为7777abc。故本题答案为A选项。

4.D在程序中指针变量P初始指向a[3],执行P减1后,P指向a[2],语句y=*P的作用是把a[2]的值赋给变量y,所以输出为y=3。

5.B

6.B题中,首先定义了double型的数组a,并将数组首地址赋给指针s。“(*s)”表示“a[1]”,“s[3]”不是指针变量,不能使用间址运算符“*”,故选项A、C不能表示“a[3]”;选项D的“*s+3”等于“a[0]+3”。故本题答案为B选项。

7.A

8.A解析:本题主要考查运算表达式的运算。3+(int)(x)的结果是10011010,~3的结果是11111100,二者逻辑与得10011000。

9.B

10.D解析:实体联系模型中实体与实体之间的联系有一对一(1:1),一对多戌多对一(1:m或m:1),多对多(m:n)其中一对一是最常用的关系。

11.D

12.B本题考多循环的使用,当j=10,i=9时,循环成立,第一个if条件为假,第二个if条件i==j-1成立,则输出j的值为10,接者执行i++后,i为10;当i为10,for循环不成立,退出内层循环,此时执行j++后,j为11,循环不成立,退出循环。

13.B解析:考查用指针引用字符串元素的方法。指针a通过数组元素下标来从头逐个地引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下和两个字符了。

14.D

15.C解析:本题考核的知识点是字符数组的定义、赋初值以及函数sizeof()的应用。本题中定义两个字符型数组,其中a省略了长度,定义了b的长度为10,并赋初值分别为“abcdefg”和“abcdfg”。所以a的长度为赋值给它的字符串的字符个数7加上一个结束转义字符,即a的长度为7+1为8.定义时b的长度定义为10,故b的长度为10,因此最后通过函数sizeof()求得的数组a和数组b的长度分别为8和10,所以,4个选项中选项C符合题意。

16.C此题是考查fprintf和fscanf,其中fprintf是向文件输出,文件为da2.dat文件,fscanf是向文件输入,所以根据程序循环写入和写出.可知答案为C。

17.B程序中,fun函数的功能是接收两个数组a、b,以及数组a的元素个数n,然后通过for循环将数组a中下标为偶数的元素与后面相邻的下标为奇数的元素两两相加,赋给数组b中下标为j的元素,最后返回数组b的个数。所以main函数中,通过调用fun函数,将数组a的元素两两相加,得到数组b的各个元素,再通过for循环输出,结果为:1593。故本题答案为B选项。

18.A解析:在函数fun1()中,首先将形参p的内容存入临时指针q中,然后使用—个while循环,当q所指内容不是字符串结束标志'\\0\'时,让q所指内容增1,然后将指针q增1指向下一个位置。所以函数fun1()实现的功能是:将传入字符串的所有字符自增1。主函数,指针p在被传入fun1()函数之前,初始化指向的是宁符数组a的第4个元素\'g\',所以最终输出的结果应该是Prohsbn。故应该选择A。

19.DC语言中,常量有整型常量、实型常量、字符常量和字符串常量等。整型常量和实型常量又称为数值型常量。其中整型常量只能用数字表示,不带小数点。实型常量必须用带小数点的数表示,所以选项A错误,选项D正确;字符型常量是用单引号标注的单个字符,字符串常量是用双引号标注的若干个字符,选项B、C错误。故本题答案为D选项。

20.A

21.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。

22.88解析:本题考查带参数的宏定义及相关运算.运算过程为:t=B*2=A+3*2=2+3*2=8。

23.读栈顶元素读栈顶元素解析:栈的基本运算有三种:入栈、退栈和读栈顶元素。

入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作:首先将栈顶指针进一(即top加1),然后将新元素插入到栈顶指针指向的位置。

退栈运算是指取出栈顶元素并赋给一个指定的变量。这个运算有两个基本操作:首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针退一(即top减1)。

读栈顶元素是指将栈顶元素赋给一个指定的变量。这个运算不删除栈顶元素,只是将它的值赋给一个变量。

24.852852解析:循环前,变量y的值为9,其中的循环语句在y大于0情况下循环,每次循环后y的值减1。循环体是当y能被3整除时输出表达式--y,输出的是减1后的y值。这样,第一次循环因y为9,能被3整除,输出8,y也变成8。又经两次循环,y的值变为6,又让y减1变成5,并输出5;又经两次循环,y的值变成3,让y减1变成2,输出2;再经两次循环后,y的值变成0,结束循环。所以程序输出852。

25.用x+8代替函数fun(doublex)中形式参数x。用sin(x)代替函数fun(doublex)中形式参数x。

26.x==0x==0解析:!x的逻辑意思就是x为非,即x==0。

27.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。

28.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:本题中定义了一个函数SumColumMin(),该函数有两个参数,第一个参数为数组名,第二个参数为一个指针,用来访问存放数组中每列元素中最小值的存储空间的变量。所以在主函数中调用SumColumMin()函数,应该将数组x和sam作为实参传给SumColumMin()中的形参,故第19个空格处应该填x,&s。在SumColumMin()函数中用了两重循环,用N记录数组的列,M记录数组的行。内循环共循环了M次,每循环一次将a[k][i]比较a[j][i](当k=O时,a[k][i]第一行第一列的值,然后将该值依次和第一列中的每个值比较,让a[k][i]表示较小的值,那么比较到最后一个元素后a[k][i]就是改列中最小元素的值),让k记录较小值元素的行下标,这样通过M次循环得到每列中的最小元素,然后退出内循环,继续执行该次外循环里的其他语句,即将刚求得第i列的最小值a[k][i]累加到s中,故第17个空格处应该填a[k][i],最后外循环共循环N次,将每列的最小值累加到s中,退出循环,然后让指针sum所指向的存储空间的值为s,故第18个空格处应该填*sum。

29.89218921

30.把不同类型的数据作为整体处理

31.p=jx[i][p]lineMax(x)

32.外模式外模式解析:数据库系统的三级模式分别是内模式、概念模式和外模式。其中,物理模式给出了数据库的物理存储结构和存取方法;概念模式是数据库系统中全局数据逻辑结构的描述;外模式是用户的数据视图,也就是用户所见到的数据模式。

33.I=1x[I-1]I=1,x[I-1]解析:对于10个数,相临的两个数相加取和,总共要进行9次加法运算,所以空14处应填入I=1。相临的两个数相加取和,放在数组a中,x[0]与x[1]的和存放在a[0]中,所以空15处应填入x[I-1]。

34.重复(循环)重复(循环)解析:结构化程序设计包括3种基本的结构:顺序结构、选择结构和重复结构(循环结构),利用这3种结构就足以表达出各种其他形式结构的程序设计方法。其中利用循环结构,可以简化大量的程序执行。

35.structaa*lhead*rchild;structaa*lhead,*rchild;解析:结构体对链表的定义。

36.空间复杂度空间复杂度解析:算法执行时所需要的存储空间,称为算法的空间复杂度。

37.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本题考查基本逻辑表达,“整数x的绝对值大于5”时值为“假”,即整数x的绝对值小于等于5,也就是整数x要大于等于-5且要小于等于5。这里“且”用“与(&&)”表示,所以C语言表达式为:(x>-5)&&(x<5)。

38.\0s*p++\\0\r\ns\r\n*p++解析:本题先通过for循环从键盘读入20个字符,然后赋值'\\0'作为字符串结束标志,再使指针p指向字符串的首地址,最后通过while循环对字符串进行扫描并输出。

39.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

40.

41.D解析:C语言把文件看成是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称文本文件,它的每一个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。

42.D解析:p为指向整型数据的指针变量,存放的是a[3]的地址,即p指向数组{4,5,6,7,8,9,10},b=p[5],因此,b中的值是9。

43.D解析:C语言数据文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件,选项A)、B)、C)错误。ASCII文件又称文本文件,它的每一个字节代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。

44.A解析:C语言程序从main函数开始执行,当程序中定义了多个函数时,通常情况下是先定义后调用。若被调用函数定义在主调函数之后,则必须先声明后调用。在选项A)中,先执行main函数,并调用了fun函数,而fun函数在此调用之前无定义也无声明,故无法正常识别调用,所以错误。

45.D解析:本题考查的是文件操作函数.题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(中)的作用是将文件指针重定位到文件开头,所以应该选择D。

46.B解析:C语言中字符串是以'\\O'字符结束的,且strlen()函数计算的是'\\O'字符前的所有字符的个数。本题中strlen(st)应为5。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof()函数是计算变量或数组的所分配到的内存空间的大小。所以本题的sizeof(st)为20。

47.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。

(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。

(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。

(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。

(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。

48.B

49.D解析:C语言中有基本的算术运算符(+、-、*、/)还包括自增自减运算符(++、-),在C语言解析表达式时,它总是进行贪婪咀嚼,这佯,该表达式就被解析为i+++++i,显然该表达式不合C语言语法。

50.C解析:本题中,“printf('%2d,%2d\\n',x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是2。而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为102和10(y的初值012表示八进制整数12,等于十进制的10)。所以,4个选项中选项C符合题意。

51.A解析:本题考核的知识点是函数声明的应用。函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递。函数声明的一般格式为:

类型标识符函数名(类型标识符形参…);

这些信息就是函数定义中的第一行的内容。这里形参的名字是不重要的,重要的是类型标识符,函数声明中也可以不写形参名只写该形参的声明类型,但不能只写形参名而不写该形参的类型。本题中,选项A中doublemyadd(doublea,b),没写出形参b的类型,故选项A不正确。所以,4个选项中选项A符合题意。

52.B解析:选项A)定义的是长度为5的数组元素,但初值有6个元素,所以错误;选项C)不符合数组定义形式,数组名后应加上“[];选项D)的类型说明符错误,应改为char;选项B)中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以正确。

53.D

54.AA。【解析】C语言是函数式的语言。它的基本组成单位是函数,在C语言中任何程序都是由一个或者多个函数组成的。

55.A解析:函数rewind的功能是将文件指针重新指向一个流的开头。用法如下:

intrewind(FILE*stream);并且无返值。

56.A本题考查的知识点是转义字符。题目中的关键是八进制101的十进制是多少.八进制的101转换为十进制为65,也就是字符A的ASCII。

57.BB。【解析】根据二分法查找法需要两次:(1)首先将90与表中间的元素50进行比较,由于90大于50,所以性表的后半部分查找。(2)第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。

58.A解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例,选项A是正确的,选项B错误。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,选项C错误。正确答案为A。

59.A解析:在程序语句中,k的初始值为5,进行第1次while循环后,k自减1为4,非0,执行循环体里的printf语句,输出1,此时k的值变为1。程序执行第2次循环时,k自减1变为0,为假,退出while循环语句。所以程序的最后结果为1。

60.B本题考核的知识点是puts()函数的应用。主函数中定义了一个字符数组s并赋初值,一个字符串指针变量ps并让它指向s。程序中p+4的地址为数组第5个元素的地址,而调用put(str_adr)函数时,将从str_adr这一地址开始,依次输出存储单元中的字符,遇到第一个“\\0”时结束输出,并自动输出一个换行符。所以put(p++4)将输出n/No,put(s)将从s第一个元素开始输出到第3个元素结束(因为执行*(p4)c0语句后s中的第5个元素的值为0,而s中的第4个元素为“\\”,puts将遇到“\\0”,结束输出),即输出yes。所以,4个选项中选项B符合题意。

61.A本题主要考查C语句中函数的基本知识。

在C语言中,函数是组成C语言程序的基本单位,而函数又主要由语句和注释组成,在C程序中,每一行可以写一条或多条语句,而且一条语句也可以分多行(编程时不推荐这样做,这样可读性不好)。

main函数是C语言的入口函数,一切程序都从这里开始执行,在main函数中可以调用其他库函数或用户自定义的函数,main函数不一定要放在程序的最前面,它可以出现在程序的任何位置。

62.Dc语言规定,一个字符常量代表ASCII码字符集里的一个字符,在群序中用单引号括起来,以便区分。'\v'表示的是竖向跳格:'kx2a'表示的是两位十六迸制数;'a'表示的是字符a对应的ASCII码值。"\0"用双引号故不正确。

63.C解析:每个C程序有且只有一个主函数main(),且程序必须从main函数开始执行,并在main()函数中结束。

64.C因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。

65.D

66.D本题目中静态局部变量x,在静态存储区内分配存储单元,在程序整个运行期间都不释放。因此第一次循环s的值为2;第二次循环中,返回的x的值为4,因此s的值为8;第三次循环,返回的x的值为8,因此s的值为64。

67.C

68.B

69.C本题考查数组的使用。本题定义了两个数组,注意数组的下标是从0开始的,进行第1次for循环:当i=0时,b[0]为数组b中第l个元素,结果为0,那么a[0]也是数组a中第l个元素,结果为1,所以S的值为1。第2次循环:i此时自加为l,b[1]为数组的第2个元素,值为2,所以可求出a[2](数组中的第3个元素)的值为3,s=s+3,所以S的值为4。进入第3次for循环,依此类推,第3次for循环结束时s的值为6。第4次for循环,s的值变为l0。第5次for循环时,此时i的值为4,s的值变为ll,i=5不符合题意,所以跳出循环,输出结果,所以本题答案为C。

70.A解析:在本题中k=n++,为后缀运算。根据其运算规则,首先n先加一,但n++表达式的值依然n原来的值,即k的值没有改变。选项A中先给k赋值为n,然后n再加1,k值没有变化,所以这个表达式和本题中表达式等价:选项B中先n加1,然后将n加1后的值赋给k,k变化了比原来的值大1,所以这个表达式和本题中表达式不等价:选项C中先计算表达式左边的表达式++=N的值,执行++n后,左边的表达式的值为n的值加1,然后将n+1后的值赋给k,所以这个表达式和本题中的表达式不等价;选项D中表达式展开为k=k+(n+1),k的值发生了变化,所以这个表达式和本题中的表达式不等价。所以4个选项中A正确。

71.B

72.B

73.A

74.B\n程序中的*s%10是求余运算,分别是a、b、C的ASCIl码值对10进行求余运算然后输出,所以输出的答案为789。r

\n

75.D选项A中“\\\”为转义字符,故选项A错误,选项B和C显然不是字符串常量。选项D是一个字符串常量,称为空串。

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

77.AA选项stnletonl{intx;inty;int2;struetoraa;错误,不能在定义结构体的同时,又用结构体类型名定义变量。应该写成B选项或者D选项的格式。

78.C一个算法的时间复杂度是指执行这个算法所需的极端工作量。

79.D解析:软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。本题中,详细设计、软件编码和软件测试都属于软什开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段.软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。

80.B

\n在while(E)中,表达式E可以是C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项8中表达式E>0||E<0是一个逻辑表达式。

\n

81.

(1)void(long}t)

(2)sl=sl·10;

【考点分析】

函数定义,指针型变量;数值n和其各个位如何表示。

【解题思路】

(1)主函数中调用函数的参数为地址,因此函数fun的形式参数应为指针类型。

(2)重新组合一个数,从个位开始,然后十位,依次类推,因此每增加—位数,原数值需乘以10,即sl=sl}10;。

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返回主函数。\n2022-2023年山东省济南市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

3.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);当执行上述程序段时,从键盘上输入555667777abc后,y的值为()。

A.566.0B.55566.0C.7777.0D.566777.0

4.有以下程序:

程序的运行结果是()。

A.y=0B.y=1C.y=2D.y=3

5.

6.设有定义“doublea[10],*s=a;”,以下能够代表数组元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

7.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

8.若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。

A.10011000B.10001100C.10101000D.10110000

9.

10.实体联系模型中实体与实体之间的联系不可能是

A.一对一B.多对多C.一对多D.对零

11.

12.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}输出结果是()。A.11B.10C.9D.1011

13.下面程序的运行结果是

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

for(i=0,j=0;a[i]!=′\n′;i++)

if(a[i]>=′0′&&a[i]<=′9′)

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

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

A.abcB.34C.a34D.a34bc

14.

15.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}执行后输出结果是()。

A.77B.88C.810D.1010

16.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序运行后的输出结果是()。A.1,2B.3,4C.5,6D.123,456

17.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的运行结果是()。

A.0242B.1593C.1351D.286

18.有以下程序:voidfun1(char*p){char*q;q=p;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];fun1(p)printf("%s\n",A);}程序执行后的输出结果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

19.以下选项中合法的C语言常量是()。

A.2.0KbB.”C++’C.”\2.0D.1.01

20.链表不具备的特点是()。

A.可随机访问任一结点B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与其长度成正比

二、2.填空题(20题)21.常用的黑箱测试有等价类划分法、【】和错误推测法3种。

22.设有下列宏定义:#defineA2

#defineBA+3

则执行赋值语句;t=B*2;t为int型变量后的值是______。

23.栈的基本运算有三种:入栈、退栈和【】。

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

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

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

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

请填空。

ginclude"math.h"

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

main()

{doublex,y1,y2;

pfintf("Enterx:");scanf("%lf"&x);

y1=fun([10]);y2=fun([11]);

pin

26.若x为血类型,请写出与!x等价的C语言表达式______。

27.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

28.以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*Sum)

{inti,j,k,s=0

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

{k=0;

for(j=1;j<M;j++)

if(a[k][i]>a[j][i])k=j;

s+=【】;

}

【】=s;

}

main()

{intx[M][N]={3,2,5,1,4,l,8,3),s;

SumColumMin(【】);

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

}

29.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

30.使用结构体处理数据的场合是【】。

31.以下和程序中,主函数调用了lineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值,请填空。

#defineN3

#defineM4

voidlineMax(intx[N][M])

{inti,j,p;

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

{p=0;

for(j=1;j<M;j++)

if(x[i][p]<x[i][j]【】;

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

}

{

main()

{intx[N][M]={1,5,4,2,6,4,3,8,2,3,1};

【】;

}

32.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。

33.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{intx[10],a[9],I;

for(I=0;I<10;I++)scanf("%d",&x[I]);

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

for(I=0;I<9;I++)printf("%d",a[I]);

printf("");

}

34.结构化程序设计的3种基本结构分别是顺序、选择和______。

35.有如下图所示的双链表结构,请根据图示完成结构体的定义:

structaa

{intdata;

【】}node;

36.算法执行过程中所需要的存储空间称为算法的______。

37.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。

38.下面的程序是将从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。

#include<stdio.h>

main()

{inti;

chars[21],*p;

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

s[i]=getehar();

s[i]=【】;

p=【】;

while(*p)putchar(【】);

}

39.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

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

三、1.选择题(20题)41.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件

B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

42.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];则b中的值是()。

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

43.下列苯于C语言数据文件的叙述中正确的是()。

A.文件由ASCII码字符序列组成,C语言只能读写文本文件

B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

44.若下列各选项中所有变量已正确定义,函数fun通过return语句返回一个函数值,以下选项中错误的程序是()。

A.main(){...x=fun(2,10);...}floatfun(inta,intb){...}

B.floatfun(inta,intb){...}main(){...x=fun(i,j);...}

C.floatfun(int,int);main(){...x=fun(2,10);...}floatfun(ihta,intb){...}

D.main(){floatfun(inti,intj);...x=fun(i,j);...}floatfun(inta,intb){...}

45.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

46.以理程序的输出结果______。main(){charst[20]="he11\O\t\\";printf("%d%d\n",str1en(st),sizeof(st));}

A.99B.520C.1320D.2020

47.检查软件产品是否符合需求定义的过程称为()。

A.确认测试B.集成测试C.验证测试D.验收测试

48.下面函数调用语句含有实参的个数为()。func((exp1,exp2),(exp3,exp4,exp5));

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

49.设整型数i=5,则printf("%d",i+++++i);的输出为______。

A.10B.11C.12D.语法错误

50.

有以下程序:

main

{intx=102,y=012;

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

}

执行后输出结果是()。

A.10,01B.02,12C.102,10D.02,10

51.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A.doublemyadd(doublea,b);

B.doublemyadd(double,double);

C.doublemyadd(doubleb,doublea);

D.doublemyadd(doublex,doubley);

52.以下能正确定义一维数组的选项是______。

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

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

53.若fp是指向某文件的指针,且已读到文件的末尾,则C语言函数feof(fp)的返回值是()

A.EOFB.-1C.非零值D.NULL

54.C语言的基本单位是()。

A.函数B.过程C.子程序D.子函数

55.函数rewind的作用是

A.使文件位置指针重新返回文件的开始位置

B.将文件位置指针指向文件中所要求的特定位置

C.使文件位置指针指向文件的末尾

D.使文件位置指针自动移至下一个字符位置

56.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量

57.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。

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

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

A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征

B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征

C.白箱(盒)测试不考虑程序内部的逻辑结构

D.上述三种说法都不对

59.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}执行后的输出结果是()。

A.1B.2C.4D.死循环

60.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No

四、选择题(20题)61.以下叙述中正确的是

A.C程序的基本组成单位是函数B.C程序中的每一行只能写一条语句

C.main()函数必须放在其他函数之前D.C语句必须在一行内写完

62.下列选项中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

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

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

64.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。

A.一对一B.一对多C.多对多D.多对一

65.

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

A.30B.10C.0D.64

67.

68.

69.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序运行后的输出结果是()。A.6B.10C.11D.15

70.以下选项中,与k=n++完全等价的表达式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

71.

72.

73.

74.有以下程序(注:字符a的ASCIl码值为97)

#include<stdio.h>

main()

{char*s={"abc")

do

{printf("%d",*S%10");++S;}

while(*s);

}

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

A.abcB.789C.7890D.979899

75.以下正确的字符串常量是()。A.A."\\\"

B.'abc'

C.OlympicGames

D.""

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

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

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

77.下面结构体的定义语句中,错误的是()。

A.structord{intx;intY;intz;}structorda;

B.structord{intx;imY;imz;};structorda;

C.structord{intx;intY;intZ;}a;

D.struct{intx;intY;intz;}a;

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

A.算法所处理的数据量B.算法的执行时间C.算法在执行过程中所需要的基本运算次数D.算法程序中的语句或指令条数

79.软件生命周期中所花费用最多的阶段是()。

A.详细设计B.软件编码C.软件测试D.软件维护

80.

在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。

A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为7654321时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!

#include<;stdi0.h>;

六、程序设计题(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.B

2.A

3.Ascanf是格式

温馨提示

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

评论

0/150

提交评论