




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年山东省德州市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________一、单选题(20题)1.向一个栈顶指针为HS的链式栈中插入一个s所指的结点时,则执行()。
A.HS->next=s
B.S->next=HS->nextHS->next=s
C.s->next=HSHS=s
D.S->next=HSHS=HS->next
2.下列4项说法中,不正确的是______。
A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性
3.若函数中有定义语句:inta;,则()。
A.系统将自动给a赋初值为0B.系统将自动给a赋初值一lC.这时a中的值无意义D.这时a中无任何值
4.设x和y均为bool量,则x&&y为真的条件是()。
A.它们均为真B.其中一个为真C.它们均为假D.其中一个
5.算法的时间复杂度取决于()
A.问题的规模B.待处理数据的初态C.A和B
6.有以下程序:#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
7.若有函数voidfun(doublea[]。int*n){…}以下叙述中正确的是()。A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
B.形参a和n都是指针变量
C.形参a是一个数组名,n是指针变量
D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组
8.
9.对于"int*pa[5];"的描述中,正确的是()。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素
B.pa是一个指向某数组中第5个元素的指针,该元素是int型变量
C.pa[5]表示某个元素的第5个元素的值
D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针
10.在关系数据库中,用来表示实体间联系的是()。
A.网状结构B.树状结构C.属性D.二维表
11.
12.视图设计一般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
13.下列选项中,不能用作标识符的是A._1234_B._1_2C.int_2_D.2_int_
14.以下叙述中正确的是()。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main函数必须放在其他函数之前
D.C函数定义的格式是K&R格式
15.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序运行后的输出结果是______。
A.4B.3C.2D.1
16.下列特征中不是面向对象方法的主要特征的是()。
A.多态性B.继承C.封装性D.模块化
17.以下选项中,值为1的表达式是()。
A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’
18.
19.若d为double型变量,则表达式d=1,d+5,d++的值是()。
A.1B.6.0C.2.0D.1.0
20.
二、2.填空题(20题)21.程序的运行结果为【】。
main()
{charc1='a',c2='b',c3='c';
printf("a%cb%c\tc%c\n",c1,c2,c3);
}
22.以下程序的输出结果是【】。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
23.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
24.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];
*d=0;
for(i=0;【】;i++)
if(*max<【】)
{*max=a[i];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
25.阅读下面程序段,则执行后输出的结果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara='A';
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
26.以下程序的输出结果是【】。
main()
{inta=5,b=4,c=3,d;
d=(a>b>C);
printf(“%d\n”,D);
}
27.以下程序的输出结果是【】。
voidfun()
{staticinta;
a+=2;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)fun();
printf("\n");
}
28.函数fun的功能是计算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函数中已正确定义m、a、b变量并赋值,并调用fun函数计算:m=a4+b4-(a+b)3。实现这一计算的函数调用语句为【】。
29.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。
30.若a是int型变量,则表达式(a=2*3,a*2),a+6的值为______。
31.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
32.语句"int(*ptr)();"的含义是______是指向函数的指针,该函数返回一个int型数据。
33.算法执行过程中所需要的存储空间称为算法的______。
34.软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。
35.\13'在内存中占1个字节,"\12"在内存中占______个字节。
36.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
37.若有如下定义,doublea[100];,则a数组元素的下标上限是【】。
38.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
39.以下程序的输出结果是______。
main()
{intx;0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
40.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
voidfunc(intx,inty,【】z)
{*z=x+y;}
三、1.选择题(20题)41.以下叙述中正确的是
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号“{”和“}”只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
42.有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的运行结果是
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,
43.以下选项中,与k==n++完全等价的表达式是()。
A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
44.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
45.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是
A.因变量类型与格式描述符的类型不匹配输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D.a,97,k=12
46.若变量已正确定义,下列正确的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
47.下列有关数据库的描述,正确的是A.数据处理是将信息转化为数据的过程
B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
C.关系中的每一列称为元组,一个元组就是一个字段
D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
48.数据的存储结构是指()。
A.数据所占的存储空间
B.数据的逻辑结构在计算机中的存放形式
C.数据在计算机中的顺序存储方式
D.存储在计算机外存中的数据
49.下列程序的输出结果是______。main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}
A.54321B.012345C.12345D.543210
50.下列说法正确的是()。
A.一个C程序可以有多个主函数
B.一个C语言的函数中只允许有一对花括号
C.C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内
D.在对C程序进行编译时,可以发现注释行中的拼写错误
51.下列叙述中正确的是()。
A.C程序由函数组成
B.C程序由主函数构成
C.C程序由函数和过程构成
D.在C程序中无论是整数还是实数,都可以正确无误的表示出来
52.简单的交换排序方法是()。
A.快速排序B.选择排序C.堆排序D.冒泡排序
53.下面程序段中c的二进制值是______。chara=3,b=6,c;c=ab<<1;
A.1011B.1111C.11110D.11100
54.最常用的一种基本数据模型是关系数据模型,它的表示应采用()。
A.树B.网络C.图D.二维表
55.下列程序执行输出的结果是()。#include<stdio.h>f(inta){intb=0;stoicc=3;a=c++;b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}
A.3B.4C.5D.6
56.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
57.模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的—类是______。
A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚
58.执行下面的程序后,a的值为
main()
{inta,b;
for(a=1,b=1;a<=10;a++)
{if(b%3==1)
{b+=3;
continue;}
b-=5;}}
A.7B.8C.9D.10
59.能将高级语言程序转换成目标语言程序的是______。
A.调试程序B.解释程序C.编译程序D.编辑程序
60.若有程序fun(inta,intb}{staticintc=0;c+=a+b;returnc;}main(){intx=5,y=3,z=7,r,r=fun(y,x+y),z);r=fun(xy);printf("%d\n",r);}上面程序的输出结果是_____。
A.23B.15C.19D.18
四、选择题(20题)61.
62.下列叙述中正确的是()。
A.程序执行的效率与数据的存储结构密切相关
B.程序执行的效率只取决于程序的控制结构
C.程序执行的效率只取决于所处理的数据量
D.以上三种说法都不对
63.下列叙述中正确的是()。
A.break语句只能用于switch语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
64.
65.程序流程图(PFD.中的菱形代表的是()。
A.数据流B.控制流C.加工步骤D.逻辑条件
66.在ASP.NET中采用CodeBehind代码隐藏技术分离HTML显示代码和业务逻辑代码,在PHP中采用的技术是()。
A.模板技术B.静态缓存技术C.PHP引擎技术D.后台编译技术
67.
68.一间宿舍可住多名学生,则实体宿舍和学生之间的联系是()。A.一对一B.一对多C.多对一D.多对多
69.
以下程序的输出结果是()。
main
{inta=3:
printf("%d\n",(a+a-=a*a));
}
A.-6B.12C.0D.-12
70.设有如下三个关系表
下列操作中正确的是()。
A.T=RnSB.T=RUSC.T=R×SD.T=R/S
71.当执行下面的程序时,如果输入ABC,则输出结罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789
72.下列C语言用户标识符中,不属于合法标识符的是
A.ad_intB.bb_7C._dd7D.int
73.软件测试的目的是()。
A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误
74.
75.以下函数返回a所指数组中最小的值所在的下标值:fun(int*a,intn){inti,j=0,P;p=j;for(i=j;i<n;i++)if(a[i]<a[j])____return(p);}在下划线处应填入的是()。A.i=PB.a[p]=a[i]C.p=jD.p=i
76.对于现实世界中事物的特征,在实体一联系模型中使用()。A.属性描述B.关键字描述C.二维表格描述D.实体描述
77.下面不属于软件设计阶段任务的是()。
A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计
78.下列标识符不是关键字的是()。
A.breakB.charC.SwithchD.return
79.(23)在深度为5的满二叉树中,叶子结点的个数为______。
A.32
B.31
C.16
D.15
80.下列描述错误的是()。
A.继承分为多重继承和单继承
B.对象之间的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据以下公式求π的值,并作为函数值返回。例如,给指定精度的变量eps输人0.0001时,应当输出Pi=3.141358。π/2=1+t/3+1/3*e/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9……请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:,
六、程序设计题(1题)82.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
参考答案
1.C
2.C解析:数据库系统具有以下4个特点:数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。
3.C用int方法定义变量时,编译器仅为变量开辟存储单元,并没有在存储单元中放任何值,此时变量中的值是无确定的,称变量值”无意义”。因此,本题正确答案为c。
4.A
5.C
6.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选项。
7.B\n本题考查函数中数组和指针的传值,数组a[]在参数传递时,是传递的数组a的首地址,所以形参a和n都是指针变量。。
\n
8.B
9.D
10.D单一的数据结构——关系,现实世界的实体以及实体间的各种联系均用关系来表示。数据的逻辑结构——二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。但是关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。
11.A
\r\n
12.B解析:视图设汁一般有3种设计次序,它们分别是自顶向下、自底向上和由内
向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以
单独使用也可混合使用。
注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后
对局部视图进行集成得到概念模式。
13.D解析:本题考核的知识点是用户的标识符。在C语言中,合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线,如:acd,d_ad、_adf124,_124等都是合法的标识符号.而2asdf、_sd/=都不是合法的标识符.在C语言中大写字母和小写字母被认为是两个不同的字符,如:ACD和acd是两个不同的标识符号。选项D中用下划线作为第一个字符,这是不合法的,故选项D不正确,所以,4个选项中选项D符合题意。
14.A解析:本题考查C语言的综合基础知识。构成C程序的基本单位是函数,一个C程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何。C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。
15.D解析:C语言觌定,实参变量对形参变量的数据传递是“值传递”,只由实参传给形参,而不能由形参传回来给实参。函数调用结束后,形参单元被释放,实参单元仍保留并维持原值。本题要求输出aa[0]的值,结果应为1。
16.DD。【解析】面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。
17.B字符‘\\0’为空值,其ASCII值为0,所以B选项的值为1。字符‘0’的ASCII值为48,所以A、C、D选项的值均不为1。故本题答案为B选项。
18.D
19.D
20.D
21.aabbccaabbcc解析:printf函数先输出a,遇%c,接着输出变量c1的值a,然后输出bb,遇%t,从第9个位置开始输出cc。
22.2222解析:在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]...b[9]的值相加,结果为22。
23.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。
24.i<na[i]i<n\r\na[i]解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它所指向的变量时要对它进行指针运算,也即*号运算。
25.NN解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符“A”的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。
26.00解析:关系运算符“>”的结合方式是从左向右的,所以在本题中的表达式a>b=c;从左向右开始计算,a>b的结果为“1”,接着1和c比较假,该空格处应该填0。
27.2468
28.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函数fun(x,n)的作用是求xn,因此a4应该调用函数fun(a,4),b4应该调用函数fun(b,4),(a+b)3应该调用函数fun(a+b,3),所以题目中的数学表达式,写成C程序中的语句为m=fun(a,4)+fun(b,4)-fun(a+b,3)。
29.x<z‖y<zx<z‖y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即x<z或y<z,是“或”的关系。
30.1212解析:本题考查逗号表达式的运算规则。逗号表达式的基本格式为:“表达式1,表达式2,…”,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第1个表达式a=2*3=6,然后计算第2个表达式a*2,这时整个表达式的值为12,但要注意,因为第2个表达式并没有给a赋值,因此a的值不变;接下来执行最后一个表达式a+6=12,所以整个表达式最后的值为12。
31.封装封装
32.ptrptr解析:本题考查函数指针的概念。函数指针的定义格式是:类型标识符(*旨针变量名)()。注:“类型标识符”为函数返回值的类型。
33.空间复杂度空间复杂度解析:算法执行时所需要的存储空间,称为算法的空间复杂度。
34.软件开发软件开发解析:软件生命周期可以分为3个时期:软件定义期,包括问题定义、可行性研究和需求分析3个阶段;软件开发期,包括系统设计、详细设计、编码和测试4个阶段;软件维护期,即运行维护阶段。编码和测试属于软件开发阶段。
35.22解析:'\\13':表示八进制数13表示的ASCII字符,是一个字符,占一个字节;而”\\12”是个字符串,除了八进制数12表示的ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志“'\\0'”,所以共有2个字节。
36.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。
37.9999解析:数组的下标是从0开始存放数据的,而不是1,当数组大小为n时,其下标从0开始,到n-1,所以本题的答案为99。
38.调试调试
39.77解析:在主函数中定义了一个变量x并赋初值0,然后执行函数调用语句,该语句的执行过程为sub(&x,8,1)调用sub(&a,4,2),sub(&s,4,2)调用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括号里的判断为假,递归结束,执行其后的。*a+=k;语句此时x=x+k=0+4+4,回推到上一层调用函数sub(Rx,4,2)中,执行后面的语句,x=x+k=4+2=6,在回推到最上一层调用函数sub(&x,8,1)执行后面的语句,x=x+k=6+1=7,所以最后输出7。
40.int*int*解析:从题中代码可知:z应该是一个整型指针,因此应填int*。
41.A解析:“/*”与“*/”之间的信息称为注释信息,在C语言中,允许在任何能够插入空格符的位置插入注释,但C语言的注释不能进行嵌套,故选项A正确;在C语言中,函数体是从花括号“{”开始,到花括号“}”结束.但没有规定花括号“{”和“}”只能作为函数体定界符,故选项B错误;选项C中前半句是正确的,在C程序中由有一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数比如库函数,主函数main()就不能由用户来命名,故选C不正确;在C语言中明确规定每条语句以分号“;”结束,分号是语句不可缺少的一部分,故选项D不正确。所以,4个选项中选项A符合题意。
42.D解析:在本题中,主函数在调用fun()函数进行排序时,传递的参数是c+4和6,fun()函数实现的功能是将数组c的第5个元素开始的6个元素依次进行从大到小的顺序排列。排序之后,数组c的内容变为{1,2,3,4,9,8,7,6,5,0}。
43.A解析:在本题中k=n++,为后缀运算。根据其运算规则,首先n先加一,但n++表达式的值依然为n原来的值,即k的值变为n加1之前的值。选项A中先给k赋值为n,然后n再加1,k值没有变化,所以这个表达式和本题中表达式等价;选项B中先n加1,然后将n加1后的值赋给k,所以这个表达式和本题中表达式不等价:选项C中先计算表达式++n的值,执行++n后,k变为n加1后的值,所以这个表达式和题目中的表达式不等价;选项D中表达式展开为k=k=(n+1),k被累加,所以这个表达式和题目中的表达式不等价。所以4个选项中A正确。
44.A解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同一个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。
45.D解析:输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。
46.D解析:本题考查两个知识点:①C语言用'\\n'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。
47.D数据处理是指将数据转换成信息的过程,故选项A叙述错误。数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B叙述错误。关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C叙述错误。所以本题选D。
48.B解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。
49.B
50.C解析:本题涉及C语言基本的3个知识点:①C语言规定一个程序只允许有一个主函数,一个函数内可以允许有多个花括号;②C语言的标识符是由字母、数字、下划线组成的,可以是大写字母,而且标识符区分字母的大小写;③C程序的注释部分仅仅是方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编译器也就不会发现注释行中的错误。
51.A解析:本题涉及C语言最基本的两个知识点:①C程序是由函数构成的,有且仅有一个主函数,也可以有其他的函数;②整数在允许的范围内可以准确无误的表示出来,但计算机的存储能力有限,不能表示无限精度的实数。
52.D解析:所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。
53.B解析:C语言提供六种位运算符,按优先级由高到低的顺序分别为:取反(~)、左移(<<)和右移(>>)、按位与(&)、按位异或(∧)、按位或(|)。所以表达式c=ab<<1先运算b<<1得二进制值为00001100,再运算a∧00001100,最后得二进制值00001111。
54.DD。【解析】关系数据模型是属于数据库的一种最重要的数据模型,在关系数据模型中,实体及实体间的联系都用二维表来表示。
55.B解析:本题考查函数调用时的参数传递。在函数调用时,static变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。在主函数中,第一次循环,i=0,调用k=f(a++)=f(2),调用完之后才将a加1,a变为3,在f(2)中,先将c=3赋值给a返回,然后将c加1,得到k=a=3,c=4。第二次循环,i=1,调用k=f(a++)=f(3),调用完之后才将a加1,a变为4,在f(3)中,先将c=4赋值给a返回,然后将c加1,得到k=a=4,c=5。
56.B解析:此题为数据库的基本概念,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)。投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名…都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)。
57.D解析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。
58.D解析:考查continue语句的使用。continue语句的作用是结束本次循环,直接进入下次循环。
59.C解析:用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由O和1组成的二进指令,所以高级语言必须先用—种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。
60.A解析:static声明的外部变量只限于彼本文件引用,而不能被其他文件引用。用static来声明一个变量的作用有:①对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在;②全部变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。调用第一个fun,其两个实参的值为(3,5+3)与7即8与7,在函数fun执行结束返回15。第二次调用fun时,由于static为静态类型,其值保留,执行fun(5,3)后,其返回值为23,故选A。
61.A
62.A本题考查程序效率。程序效率是指程序运行速度和程序占用的存储空间。影响程序效率的因素是多方面的,包括程序的设计、使用的算法、数据的存储结构等。在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。因此,本题选项A的说法是正确的。
63.C解析:只能在循环体内和switch语句体内使用break语句。当break出现在循环体的switch语句体内时,其作用只是跳出该switch语句体,并不能中止循环体的执行。若想强行中止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件,则跳出本层循环体。
64.D
65.D程序流程图是软件设计过程中常用的图形描述工具之一。构成程序流程图的最基本符号有:“→”或“↓”表示控制流,“口”表示加工步骤,“
”表示逻辑条件。
66.A
67.B
68.B因为一间宿舍可以住多名学生即多名学生住在一间宿舍中,但,名学生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系,因此本题答案为B)。
69.D
\n本题可以写成:a+a+(a-(a*a)),所以*的优先级最高,其次是-=的,+的优先级最低,因此先求a-=a*a=9,表达式变为a+a+-=9,a即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。
\n
70.C\n对于两个关系的合并操作可以用笛卡尔积表示。设有n元关系R和in元关系s,它们分别有P和q个元组,则R与S的笛卡儿积记为R×S它是一个m+n元关系,元组个数是P×q由题意可得,关系T是由关系R与关系s进行笛卡尔积运算得到的。
\n
71.A当执行gets(ss)后,ss数组中的元素为ABC,再执行strcat(ss,"6789"),strcat的作用,是把6789连接到了ss数组后面,执行完后SS数组为ABC6789,故选择A选项。
72.DC语言的标识符主要用来表示常量、变量、函数和类型等的名字,只起到标识作用。标识符由数字、下画线或英文字母构成,可以分为三类:保留字、预定义标识符和用户定义标识符。保留字是指每一个标识符都有其特定的含义,不允许用户把它们当做变量名使用,如if、int、for等。预定义标识符也是一类具有特殊含义的标识符,它们被用做库函数名和预编译命令,如define、include等。用户定义标识符是用户根据自己的需要定义的一类标识符,用于标识变量、符号常量、用户定义函数、类型名和文件指针等。这类标识符主要由英文字母、数字和下画线构成,但开头字符一定是字母或下画线。
题目中选项A、B、C都是合法的用户自定义标识符,选项D为保留字,不属于用户标识符。
73.D软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能,也不是为了评估软件或改正错误,因此本题答案为D)。
74.D
75.Dp是存放最小下标的变量,而if后的表达就是实现这个}j的的,当if成立时,就把小的下标放到p中,故选择D选项。
76.A解析:本题考查对实体-联系模型的理解和掌握。在实体-联系模型中,用属性来描述现实世界中对象的属性所表示的对象的性质、特征和行为,因此正确答案为选项A。
77.A软件设计阶段的主要任务包括丙个:一是进行软件系统的可行性分析,确定软件系统的建设是否值得,能否建成。二是进行软件的系统分析,了解用户的需求,定义应用功能,详细估算开发成本和开发周期。
78.C在C语言中,字母区分大小,所以break、char、return、switch都是C语言中的关键字,而Swithch不是。
79.C
80.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。
81.(1)错误:while(tDeps)
正确:while(tD=eps)
(2)错误:return(s);
82.\n#include'stdio.h'
\n#defineN3
\nstructstudent
\n{longstu_num;charsex;
\ncharname[15];intscore[4];
\nfloataverage;};
\nmain
\n{intI,j,index;floatsum,max;
\nstructstudentstuarr[N];
\nfor(I=0;I{printf('pleaseinput%dstudentinformation:\\n',I+1);
\nscanf('%ld,%c,%s',&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);
\nfor(j=0;j<4;j++)
\nscanf('%d',&stuarr[I].score[j]);}
\nfor(I=0;I{sum=0.0;
\nfor(j=0;j<4;j++)
\nsum+=stuarr[I].score[j];
\nstuarr[I].average=sum/4.0;}
\nmax=stuarr[0].average;
\nindex=0;
\nfor(I=1;Iif(stuarr[I].average>max)
\n{max=stuarr[I].average;
\nindex=I;}
\nprintf('总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f\\n',stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);
\n}\n2021-2022年山东省德州市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________一、单选题(20题)1.向一个栈顶指针为HS的链式栈中插入一个s所指的结点时,则执行()。
A.HS->next=s
B.S->next=HS->nextHS->next=s
C.s->next=HSHS=s
D.S->next=HSHS=HS->next
2.下列4项说法中,不正确的是______。
A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性
3.若函数中有定义语句:inta;,则()。
A.系统将自动给a赋初值为0B.系统将自动给a赋初值一lC.这时a中的值无意义D.这时a中无任何值
4.设x和y均为bool量,则x&&y为真的条件是()。
A.它们均为真B.其中一个为真C.它们均为假D.其中一个
5.算法的时间复杂度取决于()
A.问题的规模B.待处理数据的初态C.A和B
6.有以下程序:#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
7.若有函数voidfun(doublea[]。int*n){…}以下叙述中正确的是()。A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
B.形参a和n都是指针变量
C.形参a是一个数组名,n是指针变量
D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组
8.
9.对于"int*pa[5];"的描述中,正确的是()。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素
B.pa是一个指向某数组中第5个元素的指针,该元素是int型变量
C.pa[5]表示某个元素的第5个元素的值
D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针
10.在关系数据库中,用来表示实体间联系的是()。
A.网状结构B.树状结构C.属性D.二维表
11.
12.视图设计一般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
13.下列选项中,不能用作标识符的是A._1234_B._1_2C.int_2_D.2_int_
14.以下叙述中正确的是()。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main函数必须放在其他函数之前
D.C函数定义的格式是K&R格式
15.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序运行后的输出结果是______。
A.4B.3C.2D.1
16.下列特征中不是面向对象方法的主要特征的是()。
A.多态性B.继承C.封装性D.模块化
17.以下选项中,值为1的表达式是()。
A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’
18.
19.若d为double型变量,则表达式d=1,d+5,d++的值是()。
A.1B.6.0C.2.0D.1.0
20.
二、2.填空题(20题)21.程序的运行结果为【】。
main()
{charc1='a',c2='b',c3='c';
printf("a%cb%c\tc%c\n",c1,c2,c3);
}
22.以下程序的输出结果是【】。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
23.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
24.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];
*d=0;
for(i=0;【】;i++)
if(*max<【】)
{*max=a[i];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
25.阅读下面程序段,则执行后输出的结果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara='A';
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
26.以下程序的输出结果是【】。
main()
{inta=5,b=4,c=3,d;
d=(a>b>C);
printf(“%d\n”,D);
}
27.以下程序的输出结果是【】。
voidfun()
{staticinta;
a+=2;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)fun();
printf("\n");
}
28.函数fun的功能是计算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函数中已正确定义m、a、b变量并赋值,并调用fun函数计算:m=a4+b4-(a+b)3。实现这一计算的函数调用语句为【】。
29.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。
30.若a是int型变量,则表达式(a=2*3,a*2),a+6的值为______。
31.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
32.语句"int(*ptr)();"的含义是______是指向函数的指针,该函数返回一个int型数据。
33.算法执行过程中所需要的存储空间称为算法的______。
34.软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。
35.\13'在内存中占1个字节,"\12"在内存中占______个字节。
36.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
37.若有如下定义,doublea[100];,则a数组元素的下标上限是【】。
38.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
39.以下程序的输出结果是______。
main()
{intx;0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
40.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
voidfunc(intx,inty,【】z)
{*z=x+y;}
三、1.选择题(20题)41.以下叙述中正确的是
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号“{”和“}”只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
42.有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的运行结果是
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,
43.以下选项中,与k==n++完全等价的表达式是()。
A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
44.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
45.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是
A.因变量类型与格式描述符的类型不匹配输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D.a,97,k=12
46.若变量已正确定义,下列正确的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
47.下列有关数据库的描述,正确的是A.数据处理是将信息转化为数据的过程
B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
C.关系中的每一列称为元组,一个元组就是一个字段
D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
48.数据的存储结构是指()。
A.数据所占的存储空间
B.数据的逻辑结构在计算机中的存放形式
C.数据在计算机中的顺序存储方式
D.存储在计算机外存中的数据
49.下列程序的输出结果是______。main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}
A.54321B.012345C.12345D.543210
50.下列说法正确的是()。
A.一个C程序可以有多个主函数
B.一个C语言的函数中只允许有一对花括号
C.C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内
D.在对C程序进行编译时,可以发现注释行中的拼写错误
51.下列叙述中正确的是()。
A.C程序由函数组成
B.C程序由主函数构成
C.C程序由函数和过程构成
D.在C程序中无论是整数还是实数,都可以正确无误的表示出来
52.简单的交换排序方法是()。
A.快速排序B.选择排序C.堆排序D.冒泡排序
53.下面程序段中c的二进制值是______。chara=3,b=6,c;c=ab<<1;
A.1011B.1111C.11110D.11100
54.最常用的一种基本数据模型是关系数据模型,它的表示应采用()。
A.树B.网络C.图D.二维表
55.下列程序执行输出的结果是()。#include<stdio.h>f(inta){intb=0;stoicc=3;a=c++;b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}
A.3B.4C.5D.6
56.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
57.模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的—类是______。
A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚
58.执行下面的程序后,a的值为
main()
{inta,b;
for(a=1,b=1;a<=10;a++)
{if(b%3==1)
{b+=3;
continue;}
b-=5;}}
A.7B.8C.9D.10
59.能将高级语言程序转换成目标语言程序的是______。
A.调试程序B.解释程序C.编译程序D.编辑程序
60.若有程序fun(inta,intb}{staticintc=0;c+=a+b;returnc;}main(){intx=5,y=3,z=7,r,r=fun(y,x+y),z);r=fun(xy);printf("%d\n",r);}上面程序的输出结果是_____。
A.23B.15C.19D.18
四、选择题(20题)61.
62.下列叙述中正确的是()。
A.程序执行的效率与数据的存储结构密切相关
B.程序执行的效率只取决于程序的控制结构
C.程序执行的效率只取决于所处理的数据量
D.以上三种说法都不对
63.下列叙述中正确的是()。
A.break语句只能用于switch语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
64.
65.程序流程图(PFD.中的菱形代表的是()。
A.数据流B.控制流C.加工步骤D.逻辑条件
66.在ASP.NET中采用CodeBehind代码隐藏技术分离HTML显示代码和业务逻辑代码,在PHP中采用的技术是()。
A.模板技术B.静态缓存技术C.PHP引擎技术D.后台编译技术
67.
68.一间宿舍可住多名学生,则实体宿舍和学生之间的联系是()。A.一对一B.一对多C.多对一D.多对多
69.
以下程序的输出结果是()。
main
{inta=3:
printf("%d\n",(a+a-=a*a));
}
A.-6B.12C.0D.-12
70.设有如下三个关系表
下列操作中正确的是()。
A.T=RnSB.T=RUSC.T=R×SD.T=R/S
71.当执行下面的程序时,如果输入ABC,则输出结罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789
72.下列C语言用户标识符中,不属于合法标识符的是
A.ad_intB.bb_7C._dd7D.int
73.软件测试的目的是()。
A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误
74.
75.以下函数返回a所指数组中最小的值所在的下标值:fun(int*a,intn){inti,j=0,P;p=j;for(i=j;i<n;i++)if(a[i]<a[j])____return(p);}在下划线处应填入的是()。A.i=PB.a[p]=a[i]C.p=jD.p=i
76.对于现实世界中事物的特征,在实体一联系模型中使用()。A.属性描述B.关键字描述C.二维表格描述D.实体描述
77.下面不属于软件设计阶段任务的是()。
A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计
78.下列标识符不是关键字的是()。
A.breakB.charC.SwithchD.return
79.(23)在深度为5的满二叉树中,叶子结点的个数为______。
A.32
B.31
C.16
D.15
80.下列描述错误的是()。
A.继承分为多重继承和单继承
B.对象之间的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据以下公式求π的值,并作为函数值返回。例如,给指定精度的变量eps输人0.0001时,应当输出Pi=3.141358。π/2=1+t/3+1/3*e/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9……请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:,
六、程序设计题(1题)82.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
参考答案
1.C
2.C解析:数据库系统具有以下4个特点:数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。
3.C用int方法定义变量时,编译器仅为变量开辟存储单元,并没有在存储单元中放任何值,此时变量中的值是无确定的,称变量值”无意义”。因此,本题正确答案为c。
4.A
5.C
6.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选项。
7.B\n本题考查函数中数组和指针的传值,数组a[]在参数传递时,是传递的数组a的首地址,所以形参a和n都是指针变量。。
\n
8.B
9.D
10.D单一的数据结构——关系,现实世界的实体以及实体间的各种联系均用关系来表示。数据的逻辑结构——二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。但是关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。
11.A
\r\n
12.B解析:视图设汁一般有3种设计次序,它们分别是自顶向下、自底向上和由内
向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以
单独使用也可混合使用。
注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后
对局部视图进行集成得到概念模式。
13.D解析:本题考核的知识点是用户的标识符。在C语言中,合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线,如:acd,d_ad、_adf124,_124等都是合法的标识符号.而2asdf、_sd/=都不是合法的标识符.在C语言中大写字母和小写字母被认为是两个不同的字符,如:ACD和acd是两个不同的标识符号。选项D中用下划线作为第一个字符,这是不合法的,故选项D不正确,所以,4个选项中选项D符合题意。
14.A解析:本题考查C语言的综合基础知识。构成C程序的基本单位是函数,一个C程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何。C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。
15.D解析:C语言觌定,实参变量对形参变量的数据传递是“值传递”,只由实参传给形参,而不能由形参传回来给实参。函数调用结束后,形参单元被释放,实参单元仍保留并维持原值。本题要求输出aa[0]的值,结果应为1。
16.DD。【解析】面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。
17.B字符‘\\0’为空值,其ASCII值为0,所以B选项的值为1。字符‘0’的ASCII值为48,所以A、C、D选项的值均不为1。故本题答案为B选项。
18.D
19.D
20.D
21.aabbccaabbcc解析:printf函数先输出a,遇%c,接着输出变量c1的值a,然后输出bb,遇%t,从第9个位置开始输出cc。
22.2222解析:在main函数中,调用reverse函数将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代理变更公司合同范本
- 上海品质营销咨询合同范本
- 公司租农田合同范本
- 养兔场建设合同范本
- 第四章 光现象第4节 光的折射(教学设计)-2024-2025学年人教版八年级物理上册
- 2024年中牧实业股份有限公司招聘笔试真题
- 业绩奖励合同范本
- 分期按揭合同范本
- 北京房屋租赁合同合同范本
- 2024年河南驻马店幼儿师范高等专科学校教师招聘考试真题
- 对于二氧化碳传感器的现状及发展趋势的浅分析
- 麦语言函数手册参考模板
- 冷库喷涂施工工艺(详细)
- 电机学辜承林(第三版)第1章
- 知情同意书-北京大学肿瘤医院
- 建筑材料碳排放因子查询表
- 观音神课三十二卦
- 医疗机构停业(歇业)申请书
- 发票(商业发票)格式
- 宫保鸡丁ppt课件
- 食品生产企业生产线员工食品安全知识培训
评论
0/150
提交评论