A2012国家c语言笔试套题(5)

2019-03-28 22:22

(4)【4】 一对多(或1∶N) 【解析】 两个实体集间的联系实际上是实体集间的函数系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。 (5)【5】 概念设计阶段 【解析】 数据库设计分为以下6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。

(6)【6】 N 【解析】 函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符'A'的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。

(7)【7】 字符串a和b的长度之和 【解析】 本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。

8)【8】!= 【9】 return j 【解析】 本题程序的流程是:让i,j都从1开始,其中j用于控制删除后剩下的数中的下标,i用于搜索原数组中的元素。j始终是新数组已有元素中最后一个元素的下一个元素的下标,所以if()中的条件是a[j-1]!=a[i],其中a[j-1]就是新数组中的最后一个元素,若条件成立则表示出现了不同的值,所以a[i]要留到新数组中。注本题中i、j的初值都要从1开始,该算法只能用于数组已排序的题目中。

(9)【10】 a=2,b=1 【解析】 本题考查了 switch结构的内容。C语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为case 常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的 case 2:分支,最后a和b的值分别为2和1。 (10)【11】 31 【解析】 在函数调用时,形参值的改变,不会改变实参值。 (11)【12】 *s-*t 【解析】 两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,

则两字符串相同,函数返回0值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回,所以在空框处应填入*s-*t,保证在s > t时,返回正值,当s < t时,返回负值。

(12)【13】 22 【解析】 在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]...b[9]的值相加,结果为22。

(13)【14】 PER 【解析】 本题

中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。 (14)【15】 “filea.dat”,“r” 【解析】 fopen函数的调用方式通常为 fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入 \。 一、选择题

在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)软件是指 A)程序 B)程序和文档 C)算法加数据结构 D)程序、数据与相关文档的完整集合 (2)检查软件产品是否符合需求定义的过程称为

A)确认测试 B)集成测试 C)验证测试 D)验收测试 (3)以下不属于对象的基本特点的是 A)分类性 B)多态性 C)继承性 D)封装性

(4)在设计程序时,应采纳的原则之一是 A)不限制goto语句的使用 B)减少或取消注解行 C)程序越短越好 D)程序结构应有助于读者理解

(5)下列叙述中正确的是

A)程序执行的效率与数据的存储结构密切相关 B)程序执行的效率只取决于程序的控制结构

A)A P_0 do B)float

la0_A C)b-a goto int D)_123 temp int

(13)以下选项中不属于字符常量的是

C)程序执行的效率只取决于所处理的 A)′C′ B)′′C′′ 数据量 D)以上三种说法都不对 C)′\\xCC′ D) ′\\072′ (6)数据结构中,与所使用的计算机无关

的是数据的

A)存储结构 B)物理结构

C)逻辑结构 D)物理和

存储结构

(7)线性表的顺序存储结构和线性表的链

式存储结构分别是

A)顺序存取的存储结构、顺序存取的

存储结构 B)随机存取的存储结构、顺

序存取的存储结构

C)随机存取的存储结构、随机存取的

存储结构 D)任意存取的存储结构、任意存取的存储结构

(8)树是结点的集合,它的根结点数目是 A)有且只有1 B)1或多于1 C)0或1 D)至少2

(9)下列有关数据库的描述,正确的是 A)数据库是一个DBF文件 B)数据库是一个关系 C)数据库是一个结构化的数据集合 D)数据库是一组文件 (10)数据库、数据库系统和数据库管理系统之间的关系是

A)数据库包括数据库系统和数据库管理系统 B)数据库系统包括数据库和数据库管理系统 C)

数据库管理系统包括数据库和数据库系统

D)三者没有明显的包含关系

(11)以下4个选项中,不能看作一条语句

的是

A); B)a=5,b=2.5,c=3.6;

C)if(a<5); D)if(b!=5)x=2;y=6; (12)下面四个选项中,均是不合法的用户标识符的选项是

(14)设变量已正确定义并赋值,以下正确的表达式是

A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,++y D)x=25%5.0

(15)若变量已正确定义并赋值,以下符合C语言语法的表达式是

A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b (16)以下程序的运行结果是 int k=0; void fun(int m)

{m+=k;k+=m;printf(\\main() {int i=4;

fun(i++); printf(\k=%d\\n\}

A)m=4 k=5 i=5 k=5 B)m=4 k=4 i=5 k=5 C)m=4 k=4 i=4 k=5 D)m=4 k=5 i=4 k=5

(17)已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是 A)isupper(c) B)′A′<=c<=′Z′ C)′A′<=c&&c<=′Z′ D)c<=(′z′-32)&&(′a′-32)<=c

(18)设有:

int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a>b)&&(n=c>d)后,n的值是 A)1 B)2 C)3

#include main0 { int y=9; for( ; y>0;y--)

D)4

(19)若变量已正确定义,有以下程序段 int a=3,b=5,c=7; if(a>b) a=b; c=a; if(c!=a)

c=b;

printf(\

其输出结果是

A)程序段有语法错

B)3,5,3 C)3,5,5 D)3,5,7

(20)若有定义:float x=1.5;int

a=1,b=3,c=2;,则正确的switch语句是 A)switch(x)

{case 1.0:printf(\ case 2.0:printf(\ B)switch((int)x);

{case 1:printf(\ case 2:printf(\

C)switch(a+b) {case 1:printf(\ case 2+1:printf(\ D)switch(a+b)

{case1:printf(**\\n);} casec:printf(**\\n);}

(21)有以下程序

if(y%3==0) printf(\}

程序的运行结果是

A)741 B)963 C)852 D)875421

(22)以下描述中正确的是

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

B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C)在do-while循环体中,是先执行一次循环,再进行判断 D)do-while循环中,根据情况可以省略while (23)有以下程序

#include main() { int a[ ]={1,2,3,4},y,?*p=&a[3]; --p; y=?*p;printf(\\\n\}

程序的运行结果是 A)y=0 B)y=1

C)y=2

D)y=3

(24)以下数组定义中错误的是 A)int x[][3]={0}; B)int x[2][3]={{l,2},{3,4},{5,6}}; C)int x[][3]={{l,2,3},{4,5,6}}; D)int x[2][3]={l,2,3,4,5,6};

(25)下面说明不正确的是

A)char a[10]=\B)char a[10],*p=a;p=\C)char *a;a=\a[10],*p;p=a=\

(26)若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是

main()

{FILE *fp; int i,a[6]={l,2,3,4,5,6}; fp=fopen(\fwrite(a,sizeof(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK_SET);/*该

A)a[2][!1] B)a[2][3] C)a[0][3]

D)a[1>2][!1]

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

A)getc() B)gets() C)getchar() D)scanf() (28)阅读下列程序段,则程序的输出结果为

#include \#define M(X,Y)(X)*(Y) #define N(X,Y)(X)/(Y) main()

{ int a=5,b=6,c=8,k; k=N(M(a,b),c); printf(\ A)3 B)5 C)6

D)8

(29)在16位IBM-PC机上使用C语言,若有如下定义 struct data { int i; char ch; double f; } b;

则结构变量b占用内存的字节数是 A)1 B)2 C)7

D)11

(30)有以下程序 #include

语句使读文件的位置指针从文件头向后移

动3个int型数据*/ fread(a,sizeof(int),3,fp); fclose(fp);

for(i=0;i<6;i++)printf(\

} 程序运行后的输出结果是

A)4,5,6,4,5,6, B)1,2,3,4,5,6,

C)4,5,6,1,2,3, D)6,5,4,3,2,1, (31)有以下程序 #include main()

{ int

s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf(\printf(\}

程序的运行结果是

A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D)1 1 2 3 (32)有以下程序 #include

void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/ { int t,i,j; for(i=0;i

for(j=i+1;j{ t=a[i];a[i]=a[j];a[j]=t;} } main()

{ int c[10]={1,2,3,4,5,6,7,8,9,0},i; fun(c+4,6);

for(i=0;i<10;i++) printf(\printf(\}

程序的运行结果是

A)1,2,3,4,5,6,7,8,9,0,

B)0,9,8,7,6,5,1,2,3,4, C)0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0, (33)下面程序的输出结果是 #include #include main()

{ char *p1=\\

strcpy(str+2,strcat(p1,p2)); printf(\A)xyzabcABC B)zabcABC C)xyabcABC

D)yzabcABC

(34)以下函数返回a所指数组中最小的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j;

for(i=j;i return(p);} 在横线处应填入的是

A)i=p B)a[p]=a[i] C)p=j D)p=i (35)下列程序的运行结果为 #include void abc(char*str)

{ int a,b; for(a=b=0;str[a]!='\\0';a++) if(str[a]!='c') str[b++]=str[a]; str[b]='\\0';} void main()

{ char str[]=\abc(str);

printf(\ A)str[]=abdef

B)str[]=abcdef C)str[]=a

D)str[]=ab (36)有以下程序 #include #include

typedef struct{ char name[9]; char sex; float score[2]; }STU; void f(STU a)

{ STU b={\int i;

strcpy(a.name,b.name); a.sex=b.sex;

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

a.score[i]=b.score[i]; }


A2012国家c语言笔试套题(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第2章正弦交流电路习题解答

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: