版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年四川省广安市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下面程序输出的结果是main(){intx;x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3+4%6/5;printf("%d",x);x=(7+6)%5/2;printf("%d",x);}
A.111-31B.11-321C.12-321D.11121
2.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;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,
3.以下叙述中正确的是()。
A.预处理命令行必须位于C源程序的起始位置
B.在C语言中,预处理命令行都以“#”开头
C.每个C程序必须在开头包含预处理命令行:#include
D.C语言的预处理不能实现宏定义和条件编译的功能
4.以下选项中可作为C语言合法常量的是_____。A.-80B.-080C.-8e1.0D.-80.Oe
5.以下程序执行后sum的值是()。
A.15
B.14
C.不确定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
6.
7.线性表是具有n个()的有限序列。
A.字符B.数据元素C.数据项D.表元素
8.以三级模式为框架形成的3种数据库中,真实存在于计算机外存的数据库是()。
A.概念数据库B.用户数据库C.物理数据库D.逻辑数据库
9.有如下定义:structperson{charname[9];intage;}structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};能输出字母M的是()
A.printf("%c\n",class[3].name);
B.printf("%c\n",class[3].name[1]);
C.printf("%c\n",class[2].name[1]);
D.printf("%c\n",class[2].name[0]);
10.对于循环队列,下列叙述中正确的是()。
A.队头指针是固定不变的
B.队头指针一定大于队尾指针
C.队头指针一定小于队尾指针
D.队头指针可以大于队尾指针,也可以小于队尾指针
11.有下列程序:程序执行后的输出结果是()。
A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,
12.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
13.现有如下定义语句int*p,s[20],i;p=s;表示数组元素s[i]的表达式不正确的是
A.*(s+i)B.*(p+i)C.*(s=s+i)D.*(p=p+i)
14.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树
A.空或者只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子
15.有以下程序:#include<stdio.h>main(){inti,s=0,t[]=(1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的运行结果是()。
A.20B.25C.45D.36
16.对于int*pa[5];的描述,()是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素
B.pa是一个指向某数组中第5个元素的指针,该元素是int型变量
C.pa是一个具有5个元素的指针数组,每个元素是一个int型指针
D.pa[5]表示某数组的第5个元素的值
17.
18.设有宏定义:#defineIsDIV(k,n)((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是A.判断m是否能被5或者7整除
B.判断m是否能被5和7整除
C.判断m被5或者7整除是否余1
D.判断m被5和7整除是否都余1
19.设散列表长m=14,散列函数H(K)=K%11,已知表中已有4个结点:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是_____。
A.8B.3C.5D.9
20.有下列程序:main{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是()。A.45B.20C.25D.36
二、2.填空题(20题)21.问题处理方案的正确而完整的描述称为______。
22.阅读程序,填空补充程序。
#define【】30
main()
{【】;
num=10;
total=num*PRICE;
printf("total=%d,num=%d\n",【】);
}
23.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
24.下列程序的功能是把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。请填空。
#include"stdio.h"
FILE*fp;
{charch;
if((fp=fopen("bi.dat","w"))==NULL)exit(0);
while(______)fputc(ch,fp);
______;
}
25.函数调用语句:“fsets(buf,n,fp);”从fp指向的文件中读入n个字符放到buf字符数组中,函数返回值为______。
26.结构化分析方法是面向______进行分析的方法。
27.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。
28.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
{c=c*a;b=b+c;++n;}
printf("b=%d",B);
}
29.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为______。
30.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
31.若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为【】。
32.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控。
33.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
34.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
35.以下程序运行时若从键盘输入: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);
}
36.下列程序的输出结果是______。
#include<stdio.h>
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
37.以下程序的运行结果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
38.注释一般分为序言性注释和______注释。
39.以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));}
40.以下程序运行后的输出结果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
三、1.选择题(20题)41.有定义语句:intb;charc[10];则正确的输入语句是()。
A.seanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.seanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
42.有一堆零件(个数在100到200之间),如果分成4个零件一组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面的程序是求这堆零件的总数,请选择填空。#include<stdio.h>main(){inti;for(i=100;i<200;i++)if((i-2)%4==0)if(!((i-3)%7))if(____)printf("%d",i);}
A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0
43.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指()
A.数据与程序独立存放
B.不同的数据被存放在不同的文件中
C.不同的数据只能被对应的应用程序所使用
D.以上三种说法都不对
44.在C语言中,如果下面的变量都是血类型,则输出的结果是______。sum=pad=5;pAd=sum++,pad++,++pAd;printf("%d\n",pad);
A.7B.6C.5D.4
45.若有说明:inta[][3]={0,0};则不正确的叙述是()。
A.数组a的每个元素的初值都是0
B.数组a的第一维大小为1
C.数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
46.当调用函数时,实参是一个数组名,则向函数传送的是______。
A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值
47.下列程序的输出结果是()。
main
{
doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
48.以下不合法的用户标识符是______。A.j2KEYB.DoubleC.4dD._8_
49.对表进行水平方向和垂直方向的分割,分别对应的关系运算是()
A.选择和投影B.投影和选择C.选择和联接D.投影和联接
50.有以下程序:main(){intx=102,y=012;printf(“%2d,%2d\n”,x,y);}执行后输出结果是()。
A.10,01B.02,12C.102,10D.02,10
51.以下程序的输出结果是______。#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k/m)/SQR(k+m);printf("%d\n",A);}
A.16B.2C.9D.1
52.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其输出为______。
A.不确定B.编译错误C.gD.输出null字符
53.15.与数据元素本身的形式、内容、相对位置、个数无关的是数据的()
A.存储结构B.存储实现C.逻辑结构D.运算实现
54.下面对C语言的描述中,正确的是
A.函数一定有返回值,否则无法使用函数
B.C语言函数既可以嵌套定义又可以递归调用
C.在C语言中,调用函数时,只能将实参的值传递给形参
D.C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
55.以下程序的输出结果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}
A.1B.2C.3D.4
56.已知chara;intb;floate;doubled;则表达式a-b+c-d结果为()型。
A.doubleB.floatC.intD.char
57.以下4组用户定义标识符中,全部合法的一组是()A._mainencludesin
B.If-maxturbo
C.txtREAL3COM
D.intk_2_001
58.以下对结构体类型变量td的定义中,错误的是
A.typedefstructaa{intn;floatm;}AA;AAtd;
B.stmctaa{intn;floatm;}td;stmctaatd;
C.struct{intn;floatm;}aa;structaard;
D.struct{intn;floatm;}td;
59.以下选项中不属于字符常量的是
A.'C'B.CC.'\xCC'D.'\072'
60.设在C语言中,float类型数据占4个字节,则double类型数据占()个字节。
A.1B.2C.8D.4
四、选择题(20题)61.若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4
62.函数fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始点是()。
A.文件开始B.文件末尾C.文件当前位置D.以上都不对
63.以下选项中可用做c程序合法实数的是()。、、
A.3.0e0.2B..1e0C.E9D.9.12E
64.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
A.自然连接B.交C.投影D.并
65.
66.有以下程序
#include"stdio.h"
main()
{charstr[]="tomeetme",str1[]="toseeyou";
char*p=str,*p1=str1;
inti;
for(i=0;i<7;i++)
if(*(p+i)==*(p1+i))
putchar(*(p+i));
printf("\n");
}
程序的运行结果是
A.to
B.tomeet
C.toee
D.程序段不能通过编译
67.有以下程序:
程序运行后的输出结果是()。
A.7,4B.4,10C.8,8D.10,10
68.
69.下列叙述中正确的是()。
A.只能在循环体内和switch语句体内使用break语句
B.eotinue语句的作用是结束整个循环的执行
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用got0语句
70.以下叙述中正确的是()。
A.简单c语句必须以分号结束
B.C程序中的每—行只能写—条i{}句
C.c语言程序中的注释必须与语句写在同一行
D.C语句必须在一行内写完
71.表达式:(im)((double)9/2)一9%2的值是()。
A.0B.3C.4D.5
72.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
A.自然连接B.交C.除D.并
73.
74.有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并
75.
76.程序设计方法要求在程序设计过程中()。
A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图
B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释
C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释
D.以上三种说法都不对
77.
78.以下程序段中,不能正确给字符串赋值(编译时系统会提示错误)的是:()
79.
80.以下定义数组的语句中错误的是()。
五、程序改错题(1题)81.下列给定程序中函数fun()的功能是:求出如下分数序列的前n项之和,结果通过函数值返回。例如,若n=5,则应输出8.391667。请改正程序中的错误,使其得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#defineN8
typedefstruct
{
charnum[10];
doubles[N];
doubleave;
}STREC;
voldfun(STREC*a)
{
}
voidmain
STRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
inti;
fun(&s);
printf("The%ssstudentdata:\n",s.num);
for(i=0;i<N;i++)
printf("%4.1fkn",s.s[i]);
printf("\nknave=%7.3fkn",s.aVe);
printf("\n");
}
参考答案
1.A解析:本题考查的是算术运算符的各种运算,x=-3+4*5-6=-3+20-6=11;x=3+4%5-6=3+4-6=1;x=-3+4%6/5=-3+4/5=-3+0=-3;x=(7+6)%5/2=13%5/2=3/2=1。故正确答案为选项A)。
2.Dfun函数的功能是对数组a[]的元素从大到小进行排序。
3.B本题是对基本知识点的理解,预处理命令行的位置没有规定,只是习惯写在起始位置而已,当需要时才用#include<stdio.h>头文件,预处理的作用就是实现宏定义和条件编译。
4.A解析:C语言的常量分为整型常量、实型常量和字符型常量。选项A属于实型常量中的十进制小数形式的表示法,是合法的。
5.C解析:C语言中,如果对定义的变量没有赋初值,那么在后面使用时,变量的值是不确定的。所以,本程序中,没有对sum赋初值,它的值不确定。在执行了for循环语句后,sum的值也不确定的,所以,4个选项中选项C符合题意。
6.D
7.B
8.B
\n①以内模式为框架所组成的数据库,1物理数据库;②以概念模式为框架所组成的数据库叫概念数据库;③以外模式为框架所组成的数据库叫用户数据库。它是真实存在于计算机外存中的数据库。
\n
9.D
10.D循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针。
11.A程序定义整型的全局变量a,初值为5,main函数定义整型局部变量a,初值为4。所以在main函数中,局部变量a屏蔽全局变量a。func函数中定义局部变量b,初值为5,定义静态变量c,初值为5,并且在func函数中变量a引用的是全局变量a。综上,我们使用a_a代表全局变量a,使用m_a代表main函数中局部变量a。main函数中,当k=0时,a_a=5,m_a=4,调用函数func(4),函数func中d的值为4,b的值为5,c的值为5,执行表达式“a_a--;b--;--c;--d;”后,a_a的值为4,b的值为4,c的值为4,d的值为3,a+b+c+d的值为15,程序输出15。当k=1时,a_a=4,m_a=3,调用函数func(3),函数func中d的值为3,b的值为5,c的值为4(静态变量使用上一次调用结束时的值),执行表达式“a_a--;b--;--c;--d;”后,a_a的值为3,b的值为4,c的值为3,d的值为2,a+b+c+d的值为12,程序输出12。当k=2时,a_a=3,m_a=2,调用函数func(2),函数func中cl的值为2,b的值为5,c的值为3,执行表达式“a_a--;b--;--c;--d;”后,a_a的值为2,b的值为4,c的值为2,d的值为1,a+b+c+d的值为9,程序输出9。本题答案为A选项。
12.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。
13.C解析:当p指向s数组的首地址时,表示数组元素s[i]的表达式应当有:①s[i],②,(s+i),③*(p+i),④p[i]四种形式。选项C)错误的原因是,数组的地址是不可变的,指针的地址是可以变的。
14.B
15.B程序的功能为统计1~9这9个数中的奇数和。C语言中规定数组名代表数组的首地址,也就是第1个元素的地址,因此“*(t+i)”代表数组的第i+1个元素。程序的运行结果是1+3+5+7+9=25。故本题答案为B选项。
16.A
17.A
18.D
19.D
20.C在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。
21.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。
22.PRICEintnumtotaltotalnumPRICE\r\nintnum,total\r\ntotal,num解析:程序中出现了变量num,total以及宏PRICE,因此应在相应位置说明它们。
23.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。
24.(ch=getchar())!='@'fclose(fp)。(ch=getchar())!='@',fclose(fp)。解析:表达式z-=x<y?x++:++y相当于先执行++y,再执行z-=x<y?x:y,最后执行x++,其中z-=x<y?x:y等价于z=z-(x<y?x:y),由于x值为3,y值为3,x<y不成立,返回y的值,z-y的值为-2,赋给z。
25.buf的首地址buf的首地址解析:考查fgets()函数的功能,fgets()函数用来从文件中读入字符串。调用格式为:fgets(buf,n,fp)。此处,fp是文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函数fgets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标志,并以buf作为函数值返回。
26.数据流数据流解析:结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
27.continuecontinue解析:continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。
28.b=14b=14解析:分析程序可知,n的初始值为1,因此,while(n<=3)循环3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。当n=4时,判断条件不满足,退出循环。
29.物理独立性物理独立性解析:数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物理结构(包括存储结构、存取方式)改变时,不需要修改应用程序。而逻辑独立性是指当逻辑结构改变时,不需要修改应用程序。
30.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
31.double或双精度型double或双精度型解析:C语言中,如果运算符两边的数据类型不同,将进行类型转换,根据转换规则,短整型转为长整型;整型转换为实型。注意:数据类型的强制转换。
32.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。
33.封装封装
34.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。
35.1030010300解析:本题的scanf()函数要求用户输入三个十进制整数,但只接受第一和第三个到函数的第二和第三个参数所指的内存地址中。所以本题的输出为:10300。
36.7979解析:因为在调用子函数时进行的是数值传递,调用子函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。
37.12300123001,2,3,0,0,1,2,3,0,0,解析:本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},最后的输出结果为'1,2,3,0,0,1,2,3,0,0,'。
38.功能性功能性解析:注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,给出程序的整体说明;功能性注释一般嵌在源程序体之中,主要描述其后的语句或程序做什么,
39.structst或exstructst或ex解析:结构体类型数据,其数据成员各自占据不同的存储空间,整个结构体变量所占存储单元的字节数为每一个数据成员所占的存储空间的和。注意:共用体变量所占存储单元字节数的计算。
40.30253025解析:本题考核的知识点是变量的存储属性和算术运算的应用。本题涉及了自动变量、静态变量和外部变量。外部变量是定义在所有函数之外的变量,本题中inta=5定义了一个外部变量a,它是一个全局变量,即作用域是从定义的位置开始到本文件的结束;静态变量的存储空间在程序的整个运行期间是固定的(static),本题函数fun()中staticinta=10定义个一个静态变量a,此静态变量a是个静态的局部变量,即它的值只能在本函数中使用;自动变量是C程序中使用最多的一种变量,它的建立和撤消都是由系统在程序执行过程中自动进行的,auto是自动变量的存储类别标识符,如果省略auto,系统隐含认为此变量为auto,本题中main()中intc=20定义了一个自动变量c,此自动变量c是个静态的局部变量.算术运算中a+=b++相当于a=a+b,b=b+1.所以,在第一个ptine('%d',a)中a=a+b=10+20=30,第二个printf('%d',a)中a=a+c=5+20=25,即输出3025。
41.B解析:scanf函数中格式控制后面是地址表列,不能用变量名。数组名c代表数组在内存的首地址,&b代表变量b的首地址,选项B)正确。
42.D解析:本题中需要填空的是第三个条件,即“若分成9个零件一组,则多5个零件”,当总零件数减去5后,并与9取余为0即可满足本题的条件。
43.D解析:在数据库系统中,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。由此可知,选项A.B与C中的说法都是错误的。
44.C
45.D解析:本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点:①在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。②二维数组第一维的大小由下列规则确定;当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加1。
46.B解析:当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,函数中的形参可定义成以下三种形式:
①形参定义成数组;
②形参定义成可变长数组:
③形参定义为指针变量。
47.C解析:本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量1.2转换为int型,即取整为1,然后将1赋值给变量x。接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。小括号内的运算过程:先将整型变量x的值1转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。接着进行除法运算4.8/5.0,其结果小于1.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边的变量y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d*y的值也为0。注意:格式输出语句printf的使用。
48.C解析:C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第—个字符必须是字母或下划线。大写字母和小写字母被认为是两个不同的字符,用户在定义标识符时应做到“见名知意”,且不允许使用关键字作标识符。
49.A解析:从关系中找出满足给定条件的那些元组称为选择,是从行的角度进行的运算,即水平方向抽取元组。从关系模式中挑选若干属性组成新的关系称为投影,是从列的角度进行的运算,相当于对关系进行垂直分解。所以,本题选择A。
50.C解析:本题中,printf('%2d,%2d\\n',x,y)表示输出形式是十进制整数,域宽是2,而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出因此最后的输出值为102和10,所以,4个选项中选项C符合题意。
51.B解析:C语言在预编译时遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换。在做这题时,也不妨运用置换法。得到a/=k+m*k+m/k+m*k+m=16/7=2。注:a为整型,所以在做除法,自动取整。
52.A解析:由于s[2][6]表示字符串已超出了数组s的表示范围,在C中不会刘数组越界进行检查,当数组越界时,会得到一个不确定的值。
53.C所谓数据的逻辑结构,是指反映数据元素之间逻辑关系的数据结构。\n所谓数据的存储结构,是指数据的逻辑结构在计算机存储空间中的存放形式。与数据元素本身的形式、内容、相对位置、个数有关。\n逻辑结构与物理存储无关。因此本题的正确答案为C。
54.CA选项“函数一定有返回值,否则无法使用函数”,该选项是错误的。使用一个函数并不一定要使用该函数的返回值。C语言中用void定义“无类型”的函数,即禁止在调用函数中使用被调用函数的返回值。
B选项“C语言函数既可以嵌套定义,又可以递归调用”,该选项是错误的。嵌套定义是指在定义一个函数时,其函数体内又包含另一个函数的完整定义,这个内嵌的函数只能被包含它的函数所调用。而C语言规定每个函数都是平行、独立的,不允许嵌套定义的情况出现。C语言不能嵌套定义函数,但能够嵌套调用函数,也就是在调用一个函数的过程中,又调用另一个函数。C语言允许函数的递归调用,即在调用一个函数的过程中又直接或间接地调用该函数本身。
C选项“在C语言中,调用函数时,只能将实参的值传递给形参”,该选项是正确的。函数的形参是指定义函数时函数名后面括弧中的变量名,实参是指在主调函数中调用一个函数时,函数名后面括弧中的参数。调用时将实参的值赋给形参,形参的修改不会影响实参的值。注意,这里仅仅指的是传递数值,如果以地址的方式传递参数,则形参的改变也会改变实参的值。
D选项“C语言程序中有调用关系的所有函数都必须放在同一源程序文件中”,该选项是错误的。被调用的函数可以是库函数或用户自己定义的函数,使用库函数时,应该在本文件开头用“#include”命令将调用有关库函数时所需用到的信息“包含”到本文件中,使用用户自己定义的函数时,主调函数与被调函数要在同一个文件下,并要在主调函数中对被调函数进行声明。
55.A解析:该题考查的是递归函数的调用,题中读fun函数进行了递归调用,第1次调用:fun(3)n=3s=3-fun(2);第二次调用时:fun(2)n=2s=2返回第一次调用后,s=3-2=1。
56.A解析:C语言中允许进行不同数据类型的混合运算,但在实际运算时,要先将不同类型的数据转化成同一类型再进行运算。类型转换的一般规则是:①运算中将所有char型转换成int型,float型转换成double型;②低级类型服从高级类型,并进行相应的转换,数据类型由低到高的顺序为:*char->int->unsigned->long->float->double;③赋值运算中最终结果的类型,以赋值运算符左边变量的类型为准,即赋值运算符右端值的类型向左边变量的类型看齐,并进行相应转换。
57.A解析:标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。选项B中-max不是字母、数字或下划线组成的字符序列,故选项B不正确;选项C中3COM不是由字母或下划线开头,故选项C不正确;选项D中int为C语言中的关键字,故选项D不正确;选项A中全部为合法的标识符,所以,4个选项中选项A符合题意。
58.C解析:选项A使用typedef语句给结构体aa定义了—个新的名称AA,因此使用AA直接声明结构体变量td是正确的。选项B中,前面一句是定义结构体同时声明了结构体变量td,后一句是使用结构体名sa声明结构体变量td,都是正确的写法。选项C的第1条语句和选项D使用的是无名结构体直接声明变量的语法,是正确的,但是选项C的第2条语句使用已经声明的结构体变量aa来声明td是错误的.故应该选择C。
59.B解析:在C语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项A)、C)和D)为正确的字符常量,而选项B)是用双引号括起来的字符,表示一个字符串常量。
60.C
\n在C语言中各种数据类型在内存中所占的字节数与机器的位数有关,16位机中(也就是在标准c中),若int类型数据占2个字节,则float类型数据占4个字节,double类型数据占8个字节。
\n
61.C本题考查三目运算符a<b?a:c<d?c:d也可写成a<b?a:(c<d?c:d),所以根据优先级,先算括号内的,c小于d为真取C的值,再看a小于b为假,所以取C的值。
62.BSEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。
63.BA选项中e后面的指数必须为整数,所以错误。C语言规定,E之前必须要有数字,所以c选项错误。E后面必须要有数字,且
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玩具租赁合同三篇
- 二零二五年度绿色能源个人承包工程合同范本2篇
- 二零二五年度林业碳汇项目树木砍伐与碳交易合同样本3篇
- 二零二五年度房地产项目合作开发合同(含配套设施)2篇
- 二零二五年度绿色节能型个人住宅装修合同2篇
- 二零二五年度耐腐蚀水泵购销与运输服务合同3篇
- 教育行业教师专业发展总结
- 二零二五年度农业灌溉水暖电设施分包合同范本3篇
- 家电行业营销总结创新科技引领生活潮流
- 2025版私人土地租赁合同(含租赁合同变更)3篇
- 合同签订执行风险管控培训
- DB43-T 3022-2024黄柏栽培技术规程
- 成人失禁相关性皮炎的预防与护理
- 人教版(2024新版)七年级上册数学第六章《几何图形初步》测试卷(含答案)
- 九宫数独200题(附答案全)
- JT-T-496-2018公路地下通信管道高密度聚乙烯硅芯塑料管
- 食材配送投标方案技术标
- 再见深海合唱简谱【珠海童年树合唱团】
- 《聚焦客户创造价值》课件
- PTW-UNIDOS-E-放射剂量仪中文说明书
- 保险学(第五版)课件全套 魏华林 第0-18章 绪论、风险与保险- 保险市场监管、附章:社会保险
评论
0/150
提交评论