




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年陕西省西安市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.以下不属于C语言整数的是()。
A.12fB.25uC.-32D.+20L
3.语句“printf("akbre"\'hi\'y\\\bou\n")”;的输出结果是()。
A.akbre\'hi\'y'\\\bou
B.a\bre\'hi\\y\bou
C.re'hi'you
D.abre'hi'y\bou
4.能正确表示x>=3或者x<1的关系表达式是()。
A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1
5.已知广义表的表头为A,表尾为(B,C),则此广义表为________
A.(A,(B,C))B.(A,B,C)C.(A,B,C)D.((A,B,C))
6.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
7.线性表的顺序存储结构是一种()。
A.随机存取的存储结构B.顺序存取的存储结构C.索引存取的存储结构D.Hash存取的存储结构
8.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。
A.125B.n/2C.nD.n+1
9.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
10.下列对于线性链表的描述中正确的是()
A.存储空间不一定是连续,且各元素的存储顺序是任意的
B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
11.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()
A.并运算B.交运算C.差运算D.除运算
12.
13.字符串通常采用的两种存储方式是()A.散列存储和索引存储B.索引存储和链式存储C.顺序存储和链式存储D.散列存储和顺序存储
14.下列程序的输出结果是()structabc{inta,b,c;};main(){structabcs[2]={{1,2,3},{4,5,6}};intt;t=s[0].a+s[1].b;printf("%d\n",t);}
A.3B.4C.5D.6
15.下列叙述中正确的是()。
A.break语句只能用于switch语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
16.设散列表中m个存储单元,散列函数为H(key)=key%p,p是最好选择()。
A.小于等于m的最大奇数B.小于等于m的最大素数C.小于等于m的最大偶数D.小于等于m的最大合数
17.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.选择排序C.快速排序D.归并排序
18.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
19.树是结点的集合,它的根结点数目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
20.以下叙述中正确的是()。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main函数必须放在其他函数之前
D.C函数定义的格式是K&R格式
二、2.填空题(20题)21.选择程序中的输入输出语句,以满足题目给定的输入输出数据形式。
main()
{inta;floatb;
【】
【】}
输入形式:3.52<空格>6<回车>
输出形式:a*b=21.12
22.数据库管理系统是位于用户与______之间的软件系统。
23.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
24.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
25.下面程序的运行结果是______。
main()
{inti=0,j=10,k=2,s=0;
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
26.软件是程序、数据和【】的集合。
27.下列程序的字符串中各单词之间有一个空格,则程序的输出结果是【】。
#include<stdio.h>
#include<string.h>
main()
{charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
28.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。
29.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
30.以下程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234
请填空。
main()
{inti,i,x;
for(j=4;j______;j--)
{for(i=1;i<4;i++)
{x=(j-1)*4+______;
printf("%4d",x);
}
printf("\n");
}
31.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
32.以下程序运行后的输出结果是______。
main()
{
inta[4]]4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0.j=0,s=0;
while(i++<4}
if(i==2||i==4)continue;
j=0;
do
{
s+=a[i][j]:
j++;
}while(j<4);
}
printf("%d\n",s);
}
voidfun(intx,inty)
}
33.将经过确认测试的软件与外设、网络等连接在一次运行的测试叫【】
34.以下程序运行后的输出结果是______。
voidfun(intx,inty)
{
x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);
}
main()
{
intx=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
35.有以下程序:
voidf(intv,intw)
{intt;
t=v;v=w;w=t;
}
main()
{intx=1,y=3,z=2
if(x>y)f(x,y);
elseif(y>z)f(y,z);
elsef(x,z);
printf("%d,%d,%d\n",x,y,z);
}
执行后的输出结果是【】。
36.下面程序的运行结果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
37.软件工程研究的内容主要包括:软件开发技术和【】。
38.下面程序的运行结果是______。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]]='A'+i+321;
sub(s,7,SLZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,inttl,intt2)
{charCh;
while(t1<t2)
{ch=*(a+t
39.最简单的交换排序方法是______。
40.以下程序运行时若从键盘输入:102030<回车>。输出结果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
三、1.选择题(20题)41.有以下程序main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
42.在数据库的两级映射中,从概念模式到内模式的映射一般由______实现。
A.数据库系统B.数据库管理系统C.数据库管理员D.数据库操作系统
43.以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。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);}程序运行后的输出结果是
A.22B.10C.34D.30
44.以下程序的输出结果是()。#include<stdio.h>main(){inta=4,b=3,c=2,d=1;printf("%d",a<b?a:d<c?d:B);}
A.1B.3C.2D.4
45.______是构成C语言程序的基本单位。
A.函数B.过程C.子程序D.子例程
46.下列程序是用来判断数组中特定元素的位置所在的。
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
for(i=0;i<t;i++)
if(s[*k]<s[i])*k=i;
returns[*k];}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);}
如果输入如下整数:876675896101301401980431451777
则输出结果为
A.7,431B.6C.980D.6,980
47.设有如下关系表:
则下列操作中,正确的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
48.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。
A.地址传递B.单向值传递C.由实参传递给形参,再由形参传递给实参D.传递方式由用户指定
49.若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p);
C.scanf("%d",n);
D.p=&n;scanf("%d",p);
50.下面不属于软件工程3个要素的是()。
A.工具B.过程C.方法D.环境
51.若已经定义的函数有返回值,则以下关于该函数调用的叙述中错误的是______。
A.函数调用可以作为独立的语句存在
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
52.模块本身的内聚是模块独立性的重要性度量因素之—。在7类内聚中,具有最强内聚的—类是______。
A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚
53.设有以下说明语句structex{intX;floaty;charz;}example;则下面的叙述中不正确的是
A.struct结构体类型的关键字
B.example是结构体类型名
C.x,y,z都是结构体成员名
D.structex是结构体类型名
54.设int型占2个字节,则unsignedint所能表示的数据范围是______。
A.0~65535B.-32769~32767C.1~65536D.0~32767
55.下面程序段的执行结果是()。main(){inta[5][5],i,j;for(i=1;i<5;i++)for(j=1;j<5;j++)a[i][j]=(i<j)*(j/i);for(i=1;i<5;i++){for(j=1;j<5;j++)printf("%2d",a[i][j]);printf("\n");}}
A.1111111111111111
B.0001001001001000
C.1000010000100001
D.0000000000000000
56.假定w,x,y,z和m均为int型变量,有如下程序段:w=1;x=2,y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m(m<2)?m:2;则该程序段执行后,m的值为()
A.4B.3C.2D.1
57.设有定义:inta=2,b=3,c=4;则以下选项中值为0的表达式是______。
A.(!a==1)&&(!b==0)
B.(a>b)&&!c||1
C.a&&b
D.a||(b+b)&&(c-a)
58.程序运行结果为______。#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*Rmain(){printf("L=%fS=%f\n",L,S);}
A.L=18.849556S=28.274333
B.18.849556=18.84955628.274333=28.274333
C.L=18.84955628.274333=28.274333
D.18.849556=18.849556S=28.274333
59.以下对结构体类型变量td的定义中,错误的是______。
A.typedefstructaa{intn;floatm;}AA;AAtd;
B.structaa{intn;floatm;}td;structaatd;
C.struct{intn;floatm;}aa;
D.struct{intn;floatm;}td;structaatd;
60.下列程序的执行结果是______。#include<stdio.h>union{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
四、选择题(20题)61.设有定义下列:inta=1,b=2,c=3,d=4,m=2,n=2;则表达式(m=a>b)&&(n=c>d)运算后,n的值是()。
A.4B.3C.2D.0
62.
下列程序的输出结果是()。
main
{inta=6,b=3,C;
if(a<b)
{c=a*b;printf("%d%d,%d\n",b,a,c);)
else
{c=b/a;printf("%d,%d,%d\n",b,a,c);)
}
A.3,6,18B.3,6,2C.6,3,18D.6,3,2
63.设x,y,z均为整型变量,现有如下语句x=y=z=1;(++x||(++y&&++z));,则执行这个语句后y的值为
A.2B.1C.0D.不定值
64.关系数据库管理系统所管理的关系是()。A.若干个二维表B.一个DBF文件C.一个DBC文件D.若干个DBC文件
65.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;……}程序在执行了“c=&b;b=&a;”语句后,表达式“**c”的值是()。
A.变量a的地址B.变量b中的值C.变量a中的值D.变量b的地址
66.若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是()。
A.v0=7,vl=4,v2=7
B.v0=8,vl=4,v2=8
C.v0=11,vl=4,v2=11
D.v0=13,vl=4,v2=12
67.
68.按照“先进后出”原则组织数据的结构是()。
A.队列B.栈C.双向链表D.二叉树
69.第
1
题
若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是
A.sizeof,&=,<<,^
B.sizeof,<<,^,&=
C.^,<<,sizeof,&=
D.<<,^,&=,sizeof
70.若有说明“chars1[30]="abc",s2[]="defghi";",则在使用函数stoat(s1,s2)后,结果是()。A.A.s1的内容更新为abcdefghiB.s1的内容更新为defghi\0
C.s1的内容更新勾defghiabc\0
D.s1的内容更新为abcdefghi\0
71.有以下程序:
程序的运行结果是()。
A.*****a*bB.a*bC.a*b****D.ab
72.HTTP协议的消息有()两种类型。
A.发送消息和接收消息B.请求消息和响应消息C.消息头和消息体D.实体消息和控制消息
73.
74.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。
structnode
{hardata;
structnode*next;)*P,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;
B.q-:>next=r;q->next=r->next;r->next=q;
C.q-:>next=r->next;r->next=q;p->next=r;
D.q-:>next=q;p->next=r;q->next=r->next;
75.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
76.
77.已有定义intx=3,y=4,z=5;则表达式“!(x+y)+z-1y+z/2”的值是________。
A.6B.0C.2D.1
78.有以下程序(strcat函数用于连接两个字符串):
程序运行后的输出结果是()。
A.U-KB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK
79.有如下程序:
则b的值是()。
A.15B.16C.18D.19
80.设有以下语句:typedefstructTY{charC;inta{41;}CIN;
则下面叙述中正确的是()。
A.CIN是structTr类型的变量
B.TT是struct类型的变量
C.可以用,lr定义结构体变量
D.可以用CIN定义结构体变量
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为7654321时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!
#include<;stdi0.h>;
六、程序设计题(1题)82.输出1—100之间不能被12整除的数。
参考答案
1.C
2.AC语言中整型常量,从表示形式来看,有十进制、八进制或十六进制;从符号位来看,有有符号整数和无符号整数两类。选项A的“12f”是float类型的实数,不是整数;选项B的“25u”属于无符号整数;选项C的“-32”是十进制形式的有符号整数;选项D的“+20L”是十进制形式的长整数。故本题答案为A选项。
3.C先输出a、b表示退一格,当执行到:\b后,光标往后退,接着输出re'hi'y\(反斜杠后又加一个反斜杠的意思是要输出一个反斜杠),此时又执行:\b后,\就被ou覆盖。
4.C
5.B
6.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。
7.A
8.CC。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。
9.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。
10.A本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。\n在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。故本题答案为A。
11.AA)【解析】关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。
12.D
13.C
14.D
15.C解析:只能在循环体内和switch语句体内使用break语句。当break出现在循环体的switch语句体内时,其作用只是跳出该switch语句体,并不能中止循环体的执行。若想强行中止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件,则跳出本层循环体。
16.B
17.A解析:以下几种算法的时间复杂度分别为:冒泡排序(n2);选择排序(n2);快速排序(nlog2n);归并排序(nlog2n)。当排序元素序列基本有序的情况下,冒泡排序的交换次数为0,只是顺序扫描数据而已,所以其效率是最高的。
18.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
19.A树形结构是一类重要的非线性数据结构。树是n(n≥0)个结点的集合,对应任意一棵非空树,它具有以下几点重要的性质。
①有且仅有一个特定的称为根的结点。
②当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,TM,其中每一个集合本身又是一棵树,称为子树。
因此,本题的正确答案有且只有一个。
20.A解析:本题考查C语言的综合基础知识。构成C程序的基本单位是函数,一个C程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何。C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。
21.scanf("%f<空格>%d"&b&a);printf("ab=%5.2f"a*b);scanf('%f<空格>%d',&b,&a);\r\nprintf('a,b=%5.2f',a*b);
22.操作系统操作系统解析:数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为用户提供服务。
23.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
24.1a61a6解析:对于指针变量的运算,就是对地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以十六进制输出的。
25.
26.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。
27.HowdoessheHowdoesshe解析:程序中的strlen(str1)是求str1字符串的长度,结果为13,然后除以2结果为6。strcpy函数是把字符串“esshe”拷贝到str1后的第6个字符后面,也就是说,拷贝后的结果是“Howdoesshe”。
28.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。
29.b=i+1b=i+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2之后和累加至a,所以a的值就是1~10之间的偶数之后;b的值是1~11之间的奇数和,但在输出b值时c去掉多加的11,即为1~10之间的奇数之和。
30.ii解析:本题使用了一个两重for循环输出如题所示的方阵。从外层for循环的最后一条语句prinff('\\n');可以看出,外层for循环每次输出方阵的一行,由于方阵是4行所以外层循环会循环4次,又从j=4和卜可以看出这4次循环,循环变量i的值分别为4、3、2、1.故前一空应该填j>=1或者j>0,以保证j等于0时循环结束。内层循环控制每行输出的4个数,其循环变量i从1递增到4,由于每行的4个结果也是差1递增的,所以将每次结果减去循环变量i的值为一个常数,每行分别是12、8、4、0,而这些值正好与4次外循环中表达式(j-1)*4的值相吻合,故后一空应该填i。
31.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。
32.9292解析:本主函数中首先定义了一个4行4列的二维数组,然后执行一个while循环,该循环中又嵌套了一个do-while循环。现看while循环,该循环通过i++的值来判断是否结束循环当i++的值为4的时候结束循环,当i=0时,执行while的循环体,显然if语句条件不满足不执行,接着让j=4,然后执行do-while循环体,我们不难看出do-while循环的功能是将笫i+1行的所有元素加起来,所以这时s的值为s=a[1][0]+a[1][1]+a[1][2]+a[1][3]26,当i=1时,i+1=2,if后面括号里的表达式的值为真执行后面的continue语句,结束该次循环;当i=2时,i加1变为3,把笫3+1行的所有元素的加到s上,此时s=s+a[2][0]+a[2][1]a[2][2]+a[2][3]=92,当i=3时,3+1=4,if后面括号里的表达式的值为真执行后面的continue语句,结束该次循环,当i=3时,if后面括号里的表达式的值为真执行后面的confulue语句,结束该次循环当i=4时while循环结束,所以最后输出的s的值为92。
33.系统测试系统测试
34.32233,2,2,3解析:主函数中首先定义了整型变量x和y,并分别给它们赋初值为2和3,接着调用fun()函数,fun()函数把实参x和y的值传给形式参数x和y,实参和形参不再有联系.在fun()函数中通过运算使x和y的值交换过来,所以fun()函数中的输出结果是“3,2”。fun()函数调用返回输出x和y依旧是原来的x和y,为“2,3”原因是变量作为形参传值的,对形参的修改并不影响对应的实参。所以最后输出为3,2,2,3。
35.1321,3,2解析:函数f的形参是简单变量,形参的改变不能影响实参,所以正确答案为1,3,2。
36.x=11x=11解析:在对无符号数的右移是高位补0。
37.软件工程管理软件工程管理解析:软件工程足指,采用工程的概念、原理、技术和方法指导软件的开发与维护:软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。即软件工程研究的内容主要包括:软件开发技术和软件工程管理。
38.本题主要考查了字符变量可参与的运算。因为字符在计算机中是以ASCII码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的ASCII码值比它对应的小写字母ASCII码值小32。\r\n\r\n
39.冒泡排序冒泡排序解析:交换排序是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序是一种最简单的交换排序方法,它是通过相邻元素之间的相互交换逐步将线性表变成有序。
40.1030010300解析:本题的scanf()函数要求用户输入三个十进制整数,但只接受第一和第三个到函数的第二和第三个参数所指的内存地址中。所以本题的输出为:10300。
41.C解析:该题目的关键是要搞清楚“&&”和“‖”两个逻辑运算符的运算功能。运算符“&&”和“‖”是双目运算符,要求有两个运算量。且规定逻辑与运算中,只有前面运算量的值为真时,才需要判别后面的值。只要前面为假,就不必判别后面的值。而逻辑或则为只要前为真,就不必判别后面的值;只有前为假,才判别后。本题中j++值为真,不进行k++的运算,所以k的值保持不变。
42.B解析:从概念模式到内模式的映射一般由数据库管理系统(DBMS)实现。
43.A解析:reverse()函数的功能是将具有n个元素的数组a反序存放。在主函数中调用语句是“reverse(b,8);”,实现的功能是把b数组的前八个元素逆置,所以b数组中依次存放的值为“8,7,6,5,4,3,2,1,9,10”。for循环了4次,分别把b[6]、b[7]、b[8]和b[9]的值(分别是2、1、9、10)加到了s中,s的结果是22,所以最后输出的s值为22。
44.A
45.A解析:C程序是由函数构成的。—个C源程序至少包含—个main函数,也可以包含—个main函数和若干个其他函数,因此,函数是C程序的基本单位。
46.D解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。
47.B解析:T是R∪S的结果,关系T由属于关系R的或者属于关系S的元组组成。
48.B解析:C语言以定,实参变量对形参变量的数据传递是“单向值传递”,只由实参传绐形参。在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维持原值。
49.D解析:函数scanf的地址列表应由变量的地址组成。选项A中虽然&p也为地址,但它是指针变量p的地址,该地址的存储单元中只能存放地址值,不能存放整型数据。选项B中*p相当于变量n,所以不能正确读入数据;选项C不正确,因为n为变量名;选项D中p为指针变量,并且值为变量n的地址,所以选项D能够正确读入数据。D为所选。
50.D解析:软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具是指支持软件的开发、管理、文档生成;过程是支持软件开发的各个环节的控制、管理。环境不属于软件工程的3个要素之一。本题的正确答案为D。
51.D解析:swapl(a,a+1)是将a,a+1的地址进行传递,运行swapl以后,a[0],a[1]的值不发生改变,而swap2(&b[0],&b[1])是将两个指针所指的元素进行传递,运行swap2后,b[0]与b[1]的值互换。
52.D解析:内聚性是—个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。
53.B解析:本题中,structex是结构体类型名,ex-ample是结构体变量名。
54.A解析:本题int型占2个字节,即16位,unsignedint所能表示的数据范围是0~(2(上标)16-1),即0~65535。
55.C解析:本题使用一个双重循环对—个二维数组的一部分赋值(下标中含0的元素不赋值),赋值表达式是a[i][j]=(i/j)*(j/i)。因为i和j都是正整数,所以当i大于j时,j/i为0,当i小于j时,i/j为0,而0乘以任何数都为0,故表达式(i/j)*(j/i)在i和j不相等时的值为0。当i和j相等时,i/j和j/i的值都为1,所以表达式(i/j)*(j/i)的值为1。故二维数组中的a[1][1]、a[2][2]、a[3][3]、a[4][4]被赋为1,其余下标不含0的元素被赋为0。故应该选择C。
56.D
57.A解析:根据运算符的优先级:逻辑非>算术运算>关系运算>逻辑与>逻辑或>赋值运算,可以计算得到为A。其中C选项因为a、b均不为0,所以结果为1。
58.A
59.C解析:本题的考点是C语言结构体的定义和自定义类型typedef。对于选项A,首先用typedef将结构体自定义为AA,再用AA定义结构体变量td是正确的。对于选项B首先定义结构体类型aa,再用structaa定义结构体变量td也是正确的。选项D直接用无名结构体定义结构体变量td也是正确的。而选项C中,首先用无名结构体定义了结构体变量aa,再用结构体变量aa去定义结构体变量td是完全错误的。因此正确选项是C。
60.A解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同—个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以兄i的值为266。
61.C解析:在逻辑与&&运算中,如果第一个操作数为假,则结果是假,后面的操作数不参与运算,本题中因为第一个操作数(m=a>b)为假,所以第二个操作数(n=c>d)不参加运算,因此n的值不变。
62.B
\n本题考查if…else语句。如果if条件成立,则执行if下面的语句,不成立则执行else,判断条件,发现a<b不成立,则执行else后面的语句,得c=b/a=2。
\n
63.B本题考查逻辑表达式“||”的求解过程。
在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是必须执行该逻辑表达式时才求出表达式的解。“||”为逻辑或运算,只有当该运算符左右两边的表达式都为假时(值为0),该逻辑运算的值才为假。只要有一个表达式为真,则该逻辑运算的值就为真。
进行逻辑或运算时,只要运算符左边的表达式为真(值不为0),则不用运行运算符右边的表达式。
题目中,初始时x、y、z的值都为1,运算符“||”左边
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店集体合同范本
- 2025餐馆租赁合同范本格式
- 全年运输合同范本
- 钢构制造合同范本
- 新房布置采购合同范本
- 北京建委制式合同范本
- 广告手册设计合同范本
- 大兴安岭地区2025届六年级下学期小升初真题数学试卷含解析
- 广西壮族北海市合浦县2024-2025学年四下数学期末考试试题含解析
- 武汉信息传播职业技术学院《林产化工专业导论》2023-2024学年第二学期期末试卷
- 湖北省十一校2024-2025学年高三第二次联考数学试卷(解析版)
- 《手工制作》课件-幼儿园挂饰
- 人武专干考试题型及答案
- 2025届高三化学二轮复习 化学反应原理综合 课件
- 2025年北京五湖四海人力资源有限公司招聘笔试参考题库含答案解析
- 常见的酸和碱第2课时酸的化学性质 2024-2025学年九年级化学人教版(2024)下册
- 欢乐购物街-认识人民币(说课稿)-2024-2025学年人教版数学一年级下册
- 2025年中国南方航空股份有限公司招聘笔试参考题库含答案解析
- 疫苗与接种管理制度
- 电子商务案例分析知到智慧树章节测试课后答案2024年秋西安邮电大学
- 《通信用开关电源的元器件降额准则-》
评论
0/150
提交评论