2013年3月份全国计算机等级考试二级C语言_笔试 上机题库(7)

2018-12-15 17:52

s=b; A)数据处理是将信息转化为数据的过程

B)数据的物理独立性是指当数据的逻辑结构

改变时,数据的存储结构不变

C)关系中的每一列称为元组,一个元组就

是一个字段 D)如果一个关系中的属性或

属性组并非该关系的关键字,但它是另一个关

系的关键字,则称其为本关系的外关键字

(11)C语言规定,在一个源程序中,main函数的位置 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后

(12)以下叙述中错误的是

A)计算机不能直接执行用C语言编写的

源程序 B)C程序经C编译程序编译后,生

成后缀为.obj的文件是一个二进制文件

C)后缀为.obj的文件,经连接程序生成后缀

为.exe的文件是一个二进制文件 D)后缀

为.obj和.exe的二进制文件都可以直接运行

(13)下列选项可以正确表示字符型常量的是

A)′\\r′ B)\ C)\\\897\ D)296

(14)以下叙述中正确的是

A)构成C程序的基本单位是函数 B)

可以在一个函数中定义另一个函数

C)main()函数必须放在其他函数之前 D)C函数定义的格式是K&R格式

(15)设变量均已正确定义,若要通过

scanf(\语句

为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符) A) 10□X□20□Y<回车> B)

10□X20□Y<回车>C) 10□X<回车>20□Y<回

车> D) 10X<回车>

20Y<回车>

(16)若有说明:int *p,m=5,n;,以下正确的程序

段是 A)p=&n;scanf(\ B)p=&n;scanf(\ C)scanf(\ D)p=&n;*p=m; (17)在执行下述程序时,若从键盘输入6和8,则结果为 main() { int a,b,s; scanf(\ s=a if(a

D)以上都不对

(18)若执行下面的程序时,从键盘输入5和

2,则输出结果是

main()

{ int a,b,k; scanf(\ k=a; if(a

else k=b%a; printf(\ A)5 B)3 C)2 D)0 (19)在C语言中,函数返回值的类型最终取决于 A)函数定义时在函数首部所说明的函数类型 B)return语句中表达式值的类型 C)调用函数时主调函数所传递的实参类型 D)函数定义时形参的类型 ( 字母 20 ) a 已知大写字母A的ASCII码是65,小写的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是 A)c=(c-′A′)&+′a′ B)c=c+32 C)c=c-′A′+′a′ D)c=(′A′+c)&-′a′ (21)以下选项中,当x为大于l的奇数时,值

为0的表达式是 A)x%2==1 B)x/2

C)x%2!=0 D)x%2==0

(22)有以下程序

main() {int k=5,n=0; do

{switch(k) {case 1: case 3:n+=1;k--;break; default:n=0;k--; case 2: case 4:n+=2;k--;break; }

printf(\

}while(k>0 && n<5); } 程序运行后的输出结果是 A)235 B)0235 C)02356 D)2356 (23)有如下程序 main() { int n=9; while(n>6){n--; printf(\ 该程序的输出结果是 A)987 B)876 C)8765

D)9876

(24)有以下程序 #include main() { int c;

while((c=getchar())!=′\\n) { switch(c-′2′) { case 0:

case 1:putchar(c+4);

case 2:putchar(c+4);break; case 3:putchar(c+3);

case 4:putchar(c+3);break; } } printf(\

从第一列开始输入以下数据代表一个回车符。 2743

程序的输出结果是

A)66877 B)668966 C)6677877 D)6688766 (25)有以下程序 main()

{ int x=0,y=0,i; for (i=1;;++i)

{ if (i%2==0) {x++;continue;} if (i%5==0) {y++;break;} } printf (\ 程序的输出结果是

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

(26)有以下程序 main() {int

a[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

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

程序运行后的输出结果是 A)1,6,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1, (27)有以下程序 int f(int n)

{ if(n==1)return 1;

else return f(n-1)+1;} main() { int i,j=0;

for(i=1;i<3;i++)j+=f(i); printf(\

程序运行后的输出结果是

A)4 B)3 C)2 D)1

(28)当运行以下程序时,从键盘输入AhaMA(空格)Aha,则下面程序的运行结果是

#include main()

{ char s[80],c=′a′; int i=0;

scanf(\ while(s[i]!=′

{ if(s[i]==c)s[i]-32;

else if(s[i]==c-32)s[i]=s[i]+32; i++; } puts(s); }

A)ahaMa B)AbAMa C)AhAMa[空格]ahA D)ahAMa[空格]ahA

(29)下面程序输出的结果是 main() { int i;

int a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)

printf(\

A)1 5 9 B)7 5 3 C)3 5 7 D)5 9 1

(30)现有如下程序段 #include \ main() { int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1}; int i=0,j=5;

printf(\ 则程序的输出结果为 A)21 B)78 C)23 D)28

(31)请选出正确的程序段 A)int *p;

scanf(\ … B)int *s, k; *s=100; …

C)int *s, k; char *p, c; s=&k; p=&c; *p=′a′; … D)int *s, k;

char *p, e; s=&k; p=&c; s=p; *s=1; …

(32)下面程序段的运行结果是 char a[]=\ p=a; while(*p!=′u′){printf(\-32);p++;} A)LANGUAGE B)language

C)LAN D)langUAGE

(33)以下程序的输出结果是 #include int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main() { p=(int*)malloc(sizeof(int)); f(p,a); printf(\ free(p); } f(int *s, int p[][3]) { *s=p[1][1];}

A)1 B)4 C)7 D)5

(34)有以下程序 void f(int *q) {int i=0;

for(;i<5; i++) (*q)++;

}

main()

{int a[5] ={1,2,3,4,5}, i;

f(a);

for(i=0;i<5; i++) printf(\ } 程序运行后的输出结果是 A)2,2,3,4,5, B)6,2,3,4,5, C)1,2,3,4,5, D) 2,3,4,5,6,

(35)以下合法的字符型常量是

A)′\\x13′ B) ′\\081′ C) ′65′ D)\\\n\

(36)有以下语句,则对a数组元素的引用不

正确的是

int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A)a[p-a] B)*(&a[i]) C)p[i]

D)*(*(a+i))

(37)有以下程序

# include

main()

{char p[20]={′a′, ′b′, ′c′, ′d′}, q[]=\

r[]=\

strcat(p, r); strcpy(p+strlen(q), q);

printf(\

} 程序运行后的输出结果是 A)9 B)6 C)11 D)7 (38)在C语言中,变量的隐含存储类别是 A)auto B)static C)extern D)无存储类别 (39)以下程序的输出结果是

main() { int c=35; printf(\ A)0 B)70 C)35 D)1 (40)有以下程序

#include

main() { FILE *fp; int i=20,j=30,k,n; fp=fopen(\ fprintf(fp,\ fclose(fp); fp=fopen(\ fscanf(fp,\printf(\ fclose(fp); } 程序运行后的输出结果是

A)20 30 B)20 50 C)30 50

D)30 20 二、填空题

请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。 (1)设一棵完全二叉树共有700个结点,则在该二叉树中有【1】个叶子结点。 (2)常用的黑箱测试有等价类划分法、【2】和错误推测法3种。 (3)数据库管理系统常见的数据模型有层次模型、网状模型和【3】 3种。 (4)通常,将软件产品从提出、实现、使用维

护到停止使用退役的过程称为【 4】。( 5 )数据库保护分为

:安全性控制、【5】、并发性控制和数据的恢复。 (6)执行以下程序后的输出结果是【6】。 main() {int a=10; a=(3*5,a+4);printf(\ } (7)以下程序的输出结果是【7】。 #include main() {printf(\(8)已定义char ch=′$′; int i=1,j;,执行j!=ch&&i++以后,i的值为【8】。 (9)以下程序的运行结果是【9】。 #include long fib(int g) { switch(g)

{ case 0:return 0; case 1:

case 2:return 1; }

return(fib(g-1)+fib(g-2)); } main() { long k; k=fib(5);

printf(\

(10)下面程序的功能是输出数组s中最大元素的下标,请填空。 main()

{ int k, p,s[]={1, -9, 7, 2, -10, 3}; for(p=0, k=p; p<6; p++) if(s[p]>s[k]) 【10】 printf(\

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

{int x[10],a[9],I;

for(I=0; I<10; I++) scanf(\ for( 【11】 ; I<10; I++ ) a[I-1]=x[I]+ 【12】 ;. for(I=0; I<9; I++) printf(\ printf(\ }

(12)设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\\myfile.txt中有定义。) 【13】 main()

{ printf(\ try_me(); printf(\

(13)以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。 #include

struct list { int data; struct list *next;}; struct list*creatlist()

{ struct list *p,*q,*ph;int a;ph=(struct list *)malloc (sizeof(struct list));

p=q=ph;printf(\

to end:\\n\

scanf(\ while(a!=-1)

{ p=(struct list*)malloc(sizeof(struct list)); 【14】 =a;q->next=p; 【15】 =p;scanf(\ p->next=′\\0;return(ph);} main()

{struct list * head; head=creatlist();}

(1)D 【解析】算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指执行这个算法所需要的内存空间。

(2)D 【解析】在结构化程序设计中,一般较优秀的软件设计尽量做到高内聚、低耦合,这样有利于提高软件模块的独立性,也是模块划分的原则。

(3)C 【解析】软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中,没有测试的可靠性这一说法。

(4)A 【解析】对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系,对象之间通过传递消息互相联系,从模拟现实世界中不同事物彼此之间的联系,B)、C)、D)是正确的,对象的思想广泛应用于C++、Java等语言中,因此A)错误。

(5)C 【解析】队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一端称为队首(front)。队列具有先进先出的特点,它是按\先进先出\的原则组织数据的。

(6)D 【解析】依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d,右子树由ba构成,如下图所示,求得该二叉树的前序遍历序列为选项D)。 (7)A 【解析】对于任何一棵二叉树T,如果其终端结点(叶子)数为n1,度为2的结点数为n2,则n1=n2+1,所以该二叉树的叶子结点数等于n+1。

(8)C 【解析】对于两个关系的合并操作可以用笛卡尔积表示。设有n元关系R和m元

关系S,它们分别有p和q个元组,则R与S的笛卡儿积记为R×S它是一个m+n元关系,元组个数是p×q由题意可得,关系T是由关系R与关系S进行笛卡尔积运算得到的。

(9)A 【解析】两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。

(10)D 【解析】数据处理是指将数据转换成信息的过程,故选项A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C)叙述错误。

(11)C 【解析】不论main函数在整个过程中的位置如何,一个C程序总是从main函数开始执行的。

(12)D 【解析】一个C语言的源程序(后缀名为.c)在经过编译器编译后,先生成一个汇编语言程序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序(后缀名为.obj),目标程序不可以直接运行,它要和库函数或其他目标程序连接成可执行文件(后缀名为.exe)后方可运行。 (13)A 【解析】 C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的的范围是0~127。由于字符常量用单引号括起来,所以选项B),C)错误,选项D)超过了字符常量的表示范围。

(14)A 【解析】本题考查C语言的综合基础知识。构成C程序的基本单位是函数,不论main函数在整个程序中的位置如何,一个C程序总是从main函数开始执行,C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。 (15)D 【解析】本题中,scanf函数的格式控制没有空格,所以,对于选项A)、B)、C),输入的第一个空格会作为字符赋值给变量c1,而不会被解释成分隔符。 (16)D 【解析】 \是求址运算符,\是指变量说明符。选项A)、B)应改为scanf(\选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。

(17)B 【解析】本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于s=s*s。

(18)C 【解析】本题考查简单的if…else语句。先执行条件if(a

(19)A 【解析】在C语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。在定义函数时,对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。 (20)D 【解析】 C语言中,字符数据参加运算时,实际上是其ASCII码参与运算。大写字母的ASCII码比其对应的小写字母的ASCII码小32。因此大写字母转化为小写字母只需将其加上32即可。所以选项B)、C)都符合条件,因为变量c中存储的是大写字母,所以\的值一定小于26,故选项A)与选项C)的含义相同。

(21)D 【解析】因为x的值为大于1的奇数,所以x除以2的余数等于1,因此,选项A)、C)中表达式的结果为真,不为0;对于选项B)来说,x除以2的商不会等于0;选项D)中表达式的结果为假,即等于0。

(22)A 【解析】因为变量的初始值分别为\所以程序第一次进入循环时,执行default语句,这时k=4,执行\4:\这个分支,结果是\打印出2;程序然后进行第二次循环,这时\执行\这个分支,结果是\打印出3;程序进行第三次循环,这时\执行\这两个分支,结果是?\打印出,5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。

(23)B 【解析】该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n--运算,n的值变为8,所以第一次的输出值是8,由此可以排除选项A)和D)。由循环条件n>6可以知道,最后一次循环


2013年3月份全国计算机等级考试二级C语言_笔试 上机题库(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:福建省厦门六中2012届高三二轮复习综合测试(4)理综试题

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

马上注册会员

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