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

下载本文档

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

文档简介

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

一、单选题(20题)1.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为()。

A.CB.BasicC.DDLD.DML

2.将两个字符串连接起来组成一个字符串时,选用()函数。A.strlen()B.strcpy()C.strcat()D.strcmp()

3.当一个函数无返回值时,定义它的函数类型应是()。

A.voidB.intC.任意D.无

4.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

5.

6.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序运行后的输出结果是()。A.0B.1C.2D.3

7.以下说法错误的是()。

A.散列法存储的思想是由关键字值决定数据的存储地址

B.散列表的结点中只包含数据元素自身的信息,不包含指针

C.负载因子是散列表的一个重要参数,它反映了散列表的饱满程度

D.散列表的查找效率主要取决于散列表构造时选取的散列函数和处理冲突的方法

8.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A.O(n)O(n)B.O(n)O(1)C.O(1)O(n)D.O(1)O(1)

9.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;

B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

10.将发送端数字脉冲信号转换成模拟信号的过程称为

A.链路传输B.调制C.解调D.数字信道传输

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

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

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

13.

14.

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

A.为了建立一个关系,首先要构造数据的逻辑关系

B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项

C.一个关系的属性名表称为关系模式

D.一个关系可以包括多个二维表

16.下列程序的运行结果是()。

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

17.对于n个元素,下列哪种操作时间复杂度不是O(nlogn)()

A.凸包计算B.LC搜索C.有序序列数字查找D.基于比较的排序

18.若有定义“intb[8],*p=b;”,则p+6表示()。

A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6

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

A.用户定义的函数中可以没有return语句

B.用户定义的函数中可以有多个return语句,以便调用一次返回多个函数值

C.用户定义的函数中若没有return语句,则应当定义函数为void类型

D.函数的return语句中可以没有表达式

20.设有定义“intx[2][3];”,则以下选项中不能表示数组元素x[0][1]的是()。

A.*(*x+1)B.*(*(x+1)C.(*x)[1]D.*(&x[0][0]+1)

二、2.填空题(20题)21.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。

22.结构化设计主要分为系统设计和模块设计,【】的任务是决定系统的模块结构。

23.以下程序的输出结果是______。

main()

{inta=0;

a+-(a=8);

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

}

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

25.在关系模型中,把数据看成是二维表,每一个二维表称为一个【】。

26.计算圆的周长、面积和球体积。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

27.以下函数sstrcat()的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abed,t所指字符串为efgh,函数调用后s所指字符串为abodefgh。请填空。

#include<string.h>

voidsstrcat(char*s,char*t)

{intn;

n=strlen(s);

while(*(s+n)=【】){s++;t++;}

}

28.以下函数的功能是计算s=1+1/2!+1/3!+…+1/n!,请填空。

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k

s=s+fac;

}

}

29.数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。

30.设有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程

序的输出结果是______。

31.软件工程研究的内容主要包括:【】技术和软件工程管理。

32.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。

33.【】是数据库设计的核心。

34.性结构中,队列的操作顺序是先进先出,而栈的操作顺序是______。

35.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

36.要求使下列程序输出5个整数,请填空。

for(i=0;i<=______;printf("%d\n",i+=2));

37.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

38.写出下列程序的输出结果______。

main()

{int=0;

while(n++<=1);

printf("%d,",n);

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

}

39.下面定义的结构体类型包含3个成员,其中成员变量x用来存入整型数据,成员变量y用来存入实型数据,成员变量next是指向自身结构体的指针。请将定义补充完整。

structstu

{intx;

【】

【】next;}

40.该程序运行的结果是【】。

#include<stdio.h>

main()

{unionEXANPLE

{struct

{

intx;

inty;

}in;

inta;

intb;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf("\n%d,%d",e.in.x,e.in.y);

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

}

三、1.选择题(20题)41.需求分析阶段的任务是确定()

A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能

42.数据库系统可分为三级模式,下列选项中不属于数据库三级模式的是

A.抽象模式B.外模式C.概念模式D.内模式

43.以下选项中非法的表达式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

44.若有下面的说明和定义:unionun{chars[10];longd[3];}ua;struetstd{charc[10];doubled;inta;unionunvb;}a;则printf("%d\n",sizeof(structstd)+sizeof(unionun));输出的值为______。

A.34B.52C.54D.64

45.若有说明:int*p,m=5,n;以下正确的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

46.有以下程序:#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若从键盘输入:abcdef<回车>,则输出结果是()。

A.defdefB.abcdefC.abedD.dd

47.语句int(*ptr)()的含义是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

48.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序运行的结果是()。

A.234B.432C.23D.4534554334344523

49.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的输出结果是()。

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

50.下列句子中,正确的C语言赋值语句是()

A.n++;B.a=b=88C.t=int(x+y);D.a=100,b=200

51.下列程序的输出结果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}

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

52.下列程序的输出结果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}

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

53.若输入60和13,以下程序的输出结果是()#defineSURPLUS(a,b)((a)%(b))main(){inta,b;scanf("%d,%d",&a,&b);printf("%d\n",SURPLUS(a,b));}

A.60B.13C.73D.8

54.栈通常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

55.数据的存储结构是指()。

A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示

56.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

则以下函数调用语句错误的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

57.下列说法不正确的是()。

A.调用函数时,实参可以是表达式

B.调用函数时,实参与形参可以共用内存单元

C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等

D.调用函数时,实参与形参的类型必须一致

58.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()A.A.log2nB.n/2C.nD.n+l

59.若有说明语句:intx=3,y=4,z=5;,则下面的表达式中,值为0的是______。

A.x&&y

B.x<=y

C.x||++y&&y-z

D.!(x<y&&!z||1)

60.对如下二叉树进行后序遍历的结果为()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

四、选择题(20题)61.

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

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

63.执行语句X=(a=10,b=a--.后,x、a、b的值依次为()。

A.10,10,9

B.10,9,9

C.9,10,9

D.10,9,10

64.(30)关系数据库管理系统能实现的专门关系运算包括()

A.排序、索引、统计

B.选择、投影、连接

C.关联、更新、排序

D.显示、打印、制表

65.以下是正确C语言实型常量的是()。

A..e—1B.e一1C.一1eD.1e一1

66.若有说明,double*m,n;则能通过sCanf语句正确给输入项读人数据的程序段是()。

A.*m=&n;scanf("%lf",m);

B.m=(double*)malloc(10);scanf("%f",m);

C.m=&n;scanf("%lf",n);

D.m=&n;scanf("%le",m);

67.以下函数实现按每行8个输出W所指数组中的数据:

在横线处应填人的语句是()。

A.if(i/8==0)printf(”\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(’’\n”);

D.if(i%8==0)continue;

68.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

69.

70.以下描述中正确的是()。

A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B.do-while循环由do开始,用while结束,在while(表达式.后面不能写分号

C.在do-while循环体中,是先执行一次循环,再进行判断

D.do-while循环中,根据情况可以省略while

71.

72.若文件指针fp已正确指向文件,ch为字符型变量,以下不能把字符输出到文件中的语句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

73.在满足实体完整性约束的条件下()。

A.一个关系中廊该有一个或多个候选关键字

B.一个关系中只能有一个候选关键字

C.一个关系中必须有多个候选关键字

D.一个关系中可以没有候选关键字

74.

75.若有定义语句:“intyear=2009,*p=&year;”,以下不能使变量year中的值增至2010的语句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

76.设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.++kB.k+=1C.k++D.k+1

77.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

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

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

程序运行后的输出结果是

A.550550B.580550

C.680680D.580680

78.以下语句中存在语法错误的是()。

79.程序调试的任务是()。

A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误

80.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的运行结果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1,1,2,3,5,8,13,21,…例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}六、程序设计题(1题)82.使用VC++2010打开考生文件析下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),tt指向一个M行N列的二维数组,求出二维数组每列中值最大的元素,并依次放入pp所指的一维数组中。二维数组中的元素已在主函数中给出。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){ intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; ystem(“CLS”); printf(“Theoriginaldatais:\n”); for(i=0;i<=""p=""> { for(j=0;j<=""p=""> printf(“%6d”,t[i][j]); printf(“\n”n); } fun(t,p); printf(“\nTheresultis:\n”); for(k=0;k<n;k++)<p=""></n;k++)<> printf(“%4d”,p[k]); printf(“\n”);}

参考答案

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

2.C将两个字符串连接起来组成一个字符串,选用strcat函数来连接。

3.A

4.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。

5.D

6.D

7.B

8.C

9.C解析:选项A),B)考查了多分支结构的用法,选项A)中的程序段执行时,c<a,b<a条件均不成立,故执行else后的语句,x值为3;选项B)中a<3条件成立,执行x=3;而选项C),D)是单分支结构的用法,选项C)中程序段执行时,a<3条件成立,x=3,但条件a<2也成立,此时执行x=2,下一个条件不成立,不再执行其后的语句。

10.B

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

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

13.C

14.C

15.C解析:在格式化模型中,要事先根据应用的需要,确定数据之间的逻辑关系,即先对数据进行结构化。在关系模型中,不需要事先构造数据的逻辑关系,只要将数据按照一定的关系存入计算机,也就是建立关系。所以选项A错误。对于一个表示关系的二维表,其最基本的要求是表中元组的每一个分量必须是不可分的数据项,即不允许表中再有表。所以,选项B、D说法是错误的。一个关系的属性名表称为关系模式,也就是二维表的表框架,相当于记录型。因此,选项C说法正确。

16.D本题考查while循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,x++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,x=2,y-1=1.循环条件成立,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<x成立,执行break语句。退出循环。结果为D。

17.C

18.B指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中“P+6”指的是将指针向后移动了6个存储单元,即指向uE63,存放的是b[6]的地址。

19.B函数的值只能通过return语句返回主调函数。函数中允许有多个return语句,但每次只能调用一个return语句,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为void。故本题答案为B选项。

20.B选项A中*x等价于x[0],*x+1等价于x[0]+1,*(x[0]+1)等价于x[0][1],正确;选项B中,*(x+1)等价于x[1],*(*(x+1))等价于x[1][0],错误;选项C中,*x等价于x[0],(*x)[1]等价于x[0][1],正确;选项D中,&x[0][0]等价于x[0],&[0][0]+1等价于x[0]+1,*(x[0]+1)等价于x[0][1],正确。故本题答案为B选项。

21.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。

22.系统设计系统设计解析:结构化设计主要分为系统设计和模块设计。系统设计决定系统的模块结构,模块设计具体考虑每个模块内部的算法、模块输入、输出及模块功能。

23.1616解析:在程序中首先将8赋值给变量a,然后在进行复合赋值运算。即a=a+a=8+8=16,所以该空格处应该填16。

24.一对多一对多解析:实体集“项目主管”与实体集“项目”的联系属于一对多的联系。

25.关系关系解析:在数据库中,一个表就是一个关系。一个关系的逻辑结构就是一张二维表。

26.CIRCLE(RLSV)S=PI*R*Rr1sv

27.*t*t解析:函数中首先让n=strlen(s),所以while循环的循环条件表达式中*(s+n)指向字符串s的结束标志'\\0'处,而该处应该等于字符串t的第1个字符,另外循环体中让s和t指向下一个字符,即s+n和t同时被移动到下一个位置,所以该处应该填*t,即t所指内容。当t指向字符串结束标志'\\0'的时候,整个循环条件表达式的值也为0(“假”)了,循环结束。正好满足将t所指字符串复制到s所指的字符串的尾部。

28.k=k*ik=k*i解析:本题中通过for循环求s表达式中每一项的和,表达式“fac=fac/k;”求的是每一项的值,所以k的值应为n!,在求n!的时候,可以用上次循环阶乘的值乘i,就可以直接得此次n!,故本题填k=k*i。

29.概念概念

30.QTHRGQTHRG解析:函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。函数strcpy(t,s)的功能是,把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,然后输出字符数组t。

31.软件开发

32.模块模块解析:矩形表示的是模块,箭头表示的是模块间的调用关系。用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。

33.数据模型数据模型

34.先进后出先进后出解析:队列和栈都是线性结构,但是不同之处在于队列的操作顺序是先进先出,而栈的操作顺序是先进后出。

35.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

36.88解析:本题考查基本的for循环条件,i+=2表示i每次递增2,从0开始,输出5个整数则需要的条件是i<=8。

37.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。打开文件的函数为:fopen(),调用形式为:fp=fopen('文件名','使用文件方式');关闭文件的函数为:fclose(),调用形式为:fclose(fp),其中fp为文件指针。

38.333,3解析:本题在while(n++<=1)语句后,直接加了分号,说明如果while()的条件为真时,该循环什么都不做;n++是先取n的当前值和I做比较,然后再将n加1。第一次循环,n=0时,循环条件n++=0<=1成立,执行循环,然后得到n=1。第二次循环,n=1时,循环条件n++=1<=1成立,执行循环,然后得到n=2。第三次循环,n=2时,循环条件n++=2<=1不成立,不执行循环,但在判断循环条件时仍将n加1,得到n=3。退出循环后执行printf语句,第二个printf语句输出n++,是先输出n的当前值3,然后再将n加1,即程序结束后得到n=4,但输出的是3。

39.floaty;structstu*floaty;\r\nstructstu*解析:float定义变量y为实型变量。要求变量next是指向自身结构体的指针,因此变量next应该是结构体stu的指针型变量。

40.4844

41.D解析:结构化分析方法,数据流图,数据字典,软件需求规格说明书

评析,需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织,部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能.选项A)软件开发方法是在总体设计阶段完成的任务;选项B)软件开发工具是在实现阶段需完成的任务:选项C)软件开发费用是在可行性研究阶段需完成的任务。

42.A解析:数据库的三级模式是指概念模式、内模式和外模式,其中外模式又叫子模式,内模式又叫物理模式.所以本题答案为A。

43.D解析:选项A)在C语言中是一个合法的关系表达式,但它并不代表数学式o<=x<100。计算0<=x<100时,从左到右结合,先计算0<=x,其结果只能是0或1,然后再比较0<100或1<100。根据运算符的优先级,选项B)先判断j==0是否成立,其结果只能是0或1,然后再将0或1赋给i。选项C)中,(char)(65+3)为类型强制转换,将整数型数据转换为字符型。选项D)是将一个数据赋给一个表达式,等号左边不合要求,所以错误。

44.B解析:结构体中的每个成员分别占用独立的存储空间,因此它所占的内存字节数是其成员所占字节数的总和;共用体变量所占内存字节数与其成员中占字节数最多的那个成员相等。

45.D解析:“&”是求址运算符,“*”是指变量说明符。选项A)、B)应改为scanf('%d',p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。

46.A解析:本题首先定义两个字符型指针变量p和q,通过malloc()函数申请20个字符的存储空间,并把它的首地址赋给p,在把p的值赋给q,p和q指向同一个存储区。在scanf()语句中读取字符串到p和q指向的字符串,先把“abc”读取到p指向的存储区中,第一个空格是结束标记,第二个空格是分隔符,再把“def”存放到q指向的存储区,把原先的内容覆盖。所以p和q指向的存储区中内容是“def”,所以最后输出的def,def所以4个选项中A正确。

47.A解析:在选项A)中,因为!a=0,所以关系表达式!a==1的值为0,又因为逻辑与运算符“&&”两边的表达式只要一个等于零,则整个表达式为零,所以选项A)正确。在选项B)中,关系表达式a<b为真,表达式(a<b)&&!c为假,而表达式(a<b)&&!c‖1为真,所以整个表达式的值为真。选项C)中,a&&b的结果为真。在选项D)中,a‖(b+b)&&(c-a)的结果为真。

48.D解析:本题主要考查for循环语句的嵌套。外层主循环执行了3次,嵌套的循环语句每轮执行2次,每次输出i+j的值,推出嵌套循环语句后换行。

49.A解析:本题考查了continue和break语句用在循环语句中的作用。break语句的作用是结束本层循环,而continue语句的作用是结束本次循环直接进入到下次循环。

50.A

51.D解析:本题考查静态变量的使用方法和for循环。在函数调用时,static变量在函数调用结束后所作的所有变化均不保持,所以当i=1时,第2次进入f函数时c=5,所以最终main函数中c的值为5。

52.C解析:带参数的宏定义命令行形式如下:

#define宏名(形参表)替换文本

在编译的时候编译预处理程序用“替换文本”来替换宏,即M(n,m)被替换为n%m,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。

53.D

54.A解析:和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。注意:这3种运算方法在各种存储结构中的应用。

55.D数据的逻辑结构是指数据元素之间的逻辑关系的数据结构。数据的存储结构则是数据的逻辑结构在计算机中的物理实现,有时也称作数据的物理结构。两者的区别是数据的逻辑结构只涉及到数据之间抽象的数学关系。存储结构则涉及到如何在计算机中通过对数据的物理存储进行组织来表达数据元素之间的逻辑关系。比如在线性表的顺序存储中是利用物理存储空间上的连续性来表达线性表中数据的前后件关系;在线性表的链式存储中是通过指针域构成的逻辑链条来表达数据的前后件关系。一般的,一种数据的逻辑结构对应的物理实现,即数据的存储结构不止一种。因此选项D正确。

56.C答案C

解析:在语句“k=*f(a,b)”中,由于“()”的优先级高于“*”,所以“*f(a,b);”表示其返回类型为指针的带有两个整型参数的函数。

57.B

\n本题考查函数调用的基本概念。调用函数时,实参的形式可以是具体的数值,也可以是表达式。实参将数值或表达式的值传递给形参,因而两者的类型必须保持一致;形参在运算过程中会发生改变,但不一定会影响到实参值,所以可知两者不共用内存单元。

\n

58.C对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为n,平均比较次数为n/2、对长度为n的线性表进行二分法查找,在最坏情况下所需要的比较次数为logan。因此选项C正确。

59.D解析:x&&y值为1,x<=y值为1,x||++y&&y-z值为1,!(x<y&&!z||1=值为0。

60.D解析:后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,道先遍历左子树,然后遍历右子树,最后访问根结点:并且遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。

61.A

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

表示逻辑条件。

63.D表达式a一一的值为10,a的值递减为9,所以b=10,x的值为逗号表达式的值,x=10。因此x=10,a=9.b=10。

64.B

65.D所谓常量是指在程序运行过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。实型常量有两种表示形式:十进制小数形式、指数形式。指数形式中e后面的指数必须是整数,阶码标志e之前需要有数字,由此可知选项A,B,C错误。答案为D选项

66.D解析:选项A,*m=&n错误。选项B,输入

double型,要用%lf或%le,否则数据不能正常输入。

选项C,n是变量,不是指针,scanf("%if",n)错误。

67.C要按照每行8个输出数据的话,横线处语句的功能应该为:当i是8的倍数时(即i%8==0),输出一个换行符。因此C选项正确。

68.D本题主要考查自加与自减运算符。在C语言中,自加与自减运算符具有以下性质:

(1)自加运算符“++”和自减运算符“--”的运算本身是一种赋值运算,其结果是使运算对象的值增1或减1。

(2)++、--运算符是单目运算符,运算对象可以是整型变量或字符型变量,也可以是实型变量,但不能是常量和表达式。

(3)自加、自减运算符无论是作为前缀还是后缀运算符,对于变量而言,其效果相同,但作为表达式来说,其值不同。

(4)++和--运算符的结合方向是“自右向左”。

(5)不要在一个表达式中对同一个变量进行多次自增或自减运算。可以知道本题正确的答案是D。

69.C

70.C解析:do-while语句的一般形式为:do循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。

71.A

72.A函数fgete()从文件读入一个字符到指定变量。函数fputc()将指定字符写入审文件中,函数fprinff(),fwrite()均是写入文件操作函数。因此选项B,c。D错误。答案为A选项。

73.A实体完整性约束要求关系的主键中属性值不能为空值,因此本题答案为A)。

74.B

75.D

76.A解析:因为“intk=0;”,所以B)、C)、D)三个选项的表达式的值都等于1,而A)选项的表达式的值等于0。这是因为“k++”这个表达式先进行取k值的运算,然后是k值自加1。故本题答案为A)。

77.B本题实际上是按成员变量Score的值进行由小到大的排序,程序执行后,数组p[5]中各元素分别为:

{{'Penghua',20045,537},

{'SunDan',20044,550},

{'LiSiGuo',20042,580},

{'WangYin',20043,680},

{'YangSan',20041,703}}

所以,p[1]->Score=550,s[1].Score=580。故本题答案为B。

78.A数组定义后,不能对数组整体赋值,ss是二维数组,因为ss[1]是一维字符数组,即字符串,字符串赋值可以使用“strcpy(ss[1],"right”);”的形式,而选项A)中对二维数组中的第“l”维(相当于一个一维数组)赋值,是不可以的。选项B)和D)是在定义时对数组同时进行初始化,这是可以的。选项c)中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。故本题答案为A)。

79.D程序调试的任务是诊断和改正程序中的错误。

80.Cf函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,然后返回变量a。

81.(1)错误:switch(g);正确:switch(g)(2)错误:casel:case2:returnl;正确:casel;case2:returnl;【解析】此题考查C语言的语法规则,switch(表达式)后不应该带有“;”,case语句常量后应该是“:”。switch语句的一般形式如下:switch(表达式){case常量表达式1:语句1;case常量表达式2:语句2;case常量表达式n:语句i;default:语句n+1;}

82.voidfun(inttt[M][N],intpp[N]){ inti,j,max; for(j=0;j<=""p=""> { max=tt[0][j]; /*假设各列中的第1个元素值最大*/ for(i=0;i<=""p=""> if(tt[i][1]>max)/*如果各列中的其他元素值比最大值大,则将这个值更大的元素看作当前该列中值最大的元素*/ max=tt[i][j]; pp[j]=max; /*将各列的最大值依次放入pp数组中*/ }}本题函数fun()的功能是求出二维数组中每列值最大的元素。首先,假设各列中的第1个元素值最大,然后利用行下标的移动来依次取得各列中其他元素的值,并与假设的最大值进行比较,如果遇到更大的,则把这个值更大的元素看作当前该列中值最大的元素,继续与该列中的其他元素进行比较。2021年山东省潍坊市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为()。

A.CB.BasicC.DDLD.DML

2.将两个字符串连接起来组成一个字符串时,选用()函数。A.strlen()B.strcpy()C.strcat()D.strcmp()

3.当一个函数无返回值时,定义它的函数类型应是()。

A.voidB.intC.任意D.无

4.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

5.

6.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序运行后的输出结果是()。A.0B.1C.2D.3

7.以下说法错误的是()。

A.散列法存储的思想是由关键字值决定数据的存储地址

B.散列表的结点中只包含数据元素自身的信息,不包含指针

C.负载因子是散列表的一个重要参数,它反映了散列表的饱满程度

D.散列表的查找效率主要取决于散列表构造时选取的散列函数和处理冲突的方法

8.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A.O(n)O(n)B.O(n)O(1)C.O(1)O(n)D.O(1)O(1)

9.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;

B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

10.将发送端数字脉冲信号转换成模拟信号的过程称为

A.链路传输B.调制C.解调D.数字信道传输

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

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

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

13.

14.

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

A.为了建立一个关系,首先要构造数据的逻辑关系

B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项

C.一个关系的属性名表称为关系模式

D.一个关系可以包括多个二维表

16.下列程序的运行结果是()。

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

17.对于n个元素,下列哪种操作时间复杂度不是O(nlogn)()

A.凸包计算B.LC搜索C.有序序列数字查找D.基于比较的排序

18.若有定义“intb[8],*p=b;”,则p+6表示()。

A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6

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

A.用户定义的函数中可以没有return语句

B.用户定义的函数中可以有多个return语句,以便调用一次返回多个函数值

C.用户定义的函数中若没有return语句,则应当定义函数为void类型

D.函数的return语句中可以没有表达式

20.设有定义“intx[2][3];”,则以下选项中不能表示数组元素x[0][1]的是()。

A.*(*x+1)B.*(*(x+1)C.(*x)[1]D.*(&x[0][0]+1)

二、2.填空题(20题)21.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。

22.结构化设计主要分为系统设计和模块设计,【】的任务是决定系统的模块结构。

23.以下程序的输出结果是______。

main()

{inta=0;

a+-(a=8);

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

}

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

25.在关系模型中,把数据看成是二维表,每一个二维表称为一个【】。

26.计算圆的周长、面积和球体积。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

27.以下函数sstrcat()的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abed,t所指字符串为efgh,函数调用后s所指字符串为abodefgh。请填空。

#include<string.h>

voidsstrcat(char*s,char*t)

{intn;

n=strlen(s);

while(*(s+n)=【】){s++;t++;}

}

28.以下函数的功能是计算s=1+1/2!+1/3!+…+1/n!,请填空。

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k

s=s+fac;

}

}

29.数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。

30.设有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程

序的输出结果是______。

31.软件工程研究的内容主要包括:【】技术和软件工程管理。

32.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。

33.【】是数据库设计的核心。

34.性结构中,队列的操作顺序是先进先出,而栈的操作顺序是______。

35.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

36.要求使下列程序输出5个整数,请填空。

for(i=0;i<=______;printf("%d\n",i+=2));

37.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

38.写出下列程序的输出结果______。

main()

{int=0;

while(n++<=1);

printf("%d,",n);

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

}

39.下面定义的结构体类型包含3个成员,其中成员变量x用来存入整型数据,成员变量y用来存入实型数据,成员变量next是指向自身结构体的指针。请将定义补充完整。

structstu

{intx;

【】

【】next;}

40.该程序运行的结果是【】。

#include<stdio.h>

main()

{unionEXANPLE

{struct

{

intx;

inty;

}in;

inta;

intb;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf("\n%d,%d",e.in.x,e.in.y);

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

}

三、1.选择题(20题)41.需求分析阶段的任务是确定()

A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能

42.数据库系统可分为三级模式,下列选项中不属于数据库三级模式的是

A.抽象模式B.外模式C.概念模式D.内模式

43.以下选项中非法的表达式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

44.若有下面的说明和定义:unionun{chars[10];longd[3];}ua;struetstd{charc[10];doubled;inta;unionunvb;}a;则printf("%d\n",sizeof(structstd)+sizeof(unionun));输出的值为______。

A.34B.52C.54D.64

45.若有说明:int*p,m=5,n;以下正确的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

46.有以下程序:#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若从键盘输入:abcdef<回车>,则输出结果是()。

A.defdefB.abcdefC.abedD.dd

47.语句int(*ptr)()的含义是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

48.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序运行的结果是()。

A.234B.432C.23D.4534554334344523

49.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的输出结果是()。

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

50.下列句子中,正确的C语言赋值语句是()

A.n++;B.a=b=88C.t=int(x+y);D.a=100,b=200

51.下列程序的输出结果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}

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

52.下列程序的输出结果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}

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

53.若输入60和13,以下程序的输出结果是()#defineSURPLUS(a,b)((a)%(b))main(){inta,b;scanf("%d,%d",&a,&b);printf("%d\n",SURPLUS(a,b));}

A.60B.13C.73D.8

54.栈通常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

55.数据的存储结构是指()。

A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示

56.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

则以下函数调用语句错误的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

57.下列说法不正确的是()。

A.调用函数时,实参可以是表达式

B.调用函数时,实参与形参可以共用内存单元

C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等

D.调用函数时,实参与形参的类型必须一致

58.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()A.A.log2nB.n/2C.nD.n+l

59.若有说明语句:intx=3,y=4,z=5;,则下面的表达式中,值为0的是______。

A.x&&y

B.x<=y

C.x||++y&&y-z

D.!(x<y&&!z||1)

60.对如下二叉树进行后序遍历的结果为()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

四、选择题(20题)61.

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

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

63.执行语句X=(a=10,b=a--.后,x、a、b的值依次为()。

A.10,10,9

B.10,9,9

C.9,10,9

D.10,9,10

64.(30)关系数据库管理系统能实现的专门关系运算包括()

A.排序、索引、统计

B.选择、投影、连接

C.关联、更新、排序

D.显示、打印、制表

65.以下是正确C语言实型常量的是()。

A..e—1B.e一1C.一1eD.1e一1

66.若有说明,double*m,n;则能通过sCanf语句正确给输入项读人数据的程序段是()。

A.*m=&n;scanf("%lf",m);

B.m=(double*)malloc(10);scanf("%f",m);

C.m=&n;scanf("%lf",n);

D.m=&n;scanf("%le",m);

67.以下函数实现按每行8个输出W所指数组中的数据:

在横线处应填人的语句是()。

A.if(i/8==0)printf(”\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(’’\n”);

D.if(i%8==0)continue;

68.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

69.

70.以下描述中正确的是()。

A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B.do-while循环由do开始,用while结束,在while(表达式.后面不能写分号

C.在do-while循环体中,是先执行一次循环,再进行判断

D.do-while循环中,根据情况可以省略while

71.

72.若文件指针fp已正确指向文件,ch为字符型变量,以下不能把字符输出到文件中的语句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

73.在满足实体完整性约束的条件下()。

A.一个关系中廊该有一个或多个候选关键字

B.一个关系中只能有一个候选关键字

C.一个关系中必须有多个候选关键字

D.一个关系中可以没有候选关键字

74.

75.若有定义语句:“intyear=2009,*p=&year;”,以下不能使变量year中的值增至2010的语句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

76.设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.++kB.k+=1C.k++D.k+1

77.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

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

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

程序运行后的输出结果是

A.550550B.580550

C.680680D.580680

78.以下语句中存在语法错误的是()。

79.程序调试的任务是()。

A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误

80.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的运行结果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1,1,2,3,5,8,13,21,…例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf(

温馨提示

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

评论

0/150

提交评论