版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年黑龙江省哈尔滨市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(12题)1.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
2.线性表是具有n个()的有限序列。
A.字符B.数据元素C.数据项D.表元素
3.以下叙述中正确的是()。
A.局部变量说明为static存储类,其生存期将得到延长
B.全局变量说明为static存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
4.在学生管理的关系数据库中,存取一个学生信息的数据单位是()。
A.文件B.数据库C.字段D.记录
5.若有定义intw[3][5];,则以下不能正确表示该数组元素的表达式是A.*(*w+3)B.*(*w+1)[4]C.*(*(*w+1))D.*(&w[0][0]+1)
6.运算符________的优先级最高。
A.[]B.+=C.?:D.++
7.以下正确的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'
8.下列叙述中正确的是()。
A.算法的执行效率与数据存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上3种描述都不对
9.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A.219B.221C.229D.231
10.语句:“printf("%d",(a=)&&(b=-2));”的输出结果是()。
A.无输出B.结果是不确定C.-1D.1
11.以下选项中,合法的一组C语言数值常量是()。
A.028.5e-3-0xf
B.12.OXa234.5eO
C..1774c1.5Oabc
D.0x8A10,0003.e5
12.以下不合法的字符常量是()。
A.‘\\’B.‘\”’C.‘\018’D.‘\xcc’
二、2.填空题(12题)13.下列程序的循环次数是______。
x=2;
do
{x=x*x;}
while(!x);
14.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。
15.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
16.软件测试中路径覆盖测试是整个测试的基础,它是对软件【】进行测试。
17.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。
#include<stdio,h>
main()
inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=【】;
}
prinff("sum=%d,count=%d\n",sum,count);
}
18.x、y、x均为int型变量,描述"x、y和z中至少有两个为正数"的表达式是______。
19.数据库系统中实现各种数据管理功能的核心软件称为【】。
20.对于一棵具有n个结点的树,则该树中所有结点的度之和为【】。
21.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
┇
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
22.计算机中网络通信协议IP是【】。
23.数据结构分为逻辑结构与存储结构,线性链表属于【】。
24.注释说明了程序的功能,它分为【】注释和功能性注释。
三、3.程序设计题(10题)25.请编写函数fun(),它的功能是计算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2
s作为函数值返回。
在C语言中可调用log(n)函数求In(n)。log函数的引用说明是doublelog(doublex)。
例如,若m的值为15,则fun()函数值为723.570801。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(intm)
{
}
main()
{
clrscr();
printf("%f\n",fun(15));
}
26.程序定义了NxN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。
例如:a数组中的值为:
则返回主程序后s的值应为:3.375。
注意:部分源程序存在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
27.请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入abc4Efg,则应输出aBc4EFg。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*ss)
{
}
main()
{
chartt[81];
clrscr();
printf("\nPleaseenteranstringwithin80characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n\%s",tt);
fun(tt);
printf("\nbecomes\n\%s\n",tt);
}
28.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为:10、20、30、40。
注意:部分源程序在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
29.请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把O至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1],把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
30.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio,h>
#defineN8
typedefstruct
{charnum[10];
doubles;
}STREC;
doublefun(STREC*a,STREC*b,int*n)
{
}
main()
{
STRECs[N]={{"GA05",85},{"GA03",76}
{"GA02",69},{"GA04",85}
{"GA01",91}{"GA07",72},{"GA08",64}
{"GA06",87}};
STSCh[N],t;
FILE*out;
int.i,j,n;
doubleave;
ave=fun(s,h,&n);
printf("The%dstudentdatawhichis
lowerthan%7.3f:\n"n,ave);
for(i=0;i<n;i++)
/*输出成绩低平均值的学生记录*/
printf("%s%4lf\n"h[i]num,
h[i].s);
printf("\n");
ut=fopen("out71dat","w"
fprintf(out,"%d\n%7.3f\n",nave);
/*输出平均值/
for(i=0;i<n-1;i++)
for(j=i+l;j<n;j++)
if(h[i].s>h[j].s)
{t=h[i];h[i]=h[j];h[j]=t;}
/*将成绩由低至高排列*/
for(i=0;i<n;i++)
fprintf(out,"%4lf\n"h[i]s);
fclose(out);
}
31.请编写函数fun,其功能是:计算并输出下列多项式的值:
例如,在主函数中从键盘给n输入50后,输出为:s=1.718282。
注意:要求n的值大于1但不大于100。部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
32.请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为偶数位置的字母转换为小写(若该位置上不是字母,则不转换)。
例如,若输入ABC4efG,则应输出aBc4efg。
注意:部分源程序给出如下。
请勿改动主函数miain和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*SS)
{
}
main()
{
chartt[81];
clrscr();
printf("\nPleaseenteranstringwithin80
characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n
\%s",tt);
fun(tt);
printf("\nbecomes\n\%S\n",tt);
}
33.请编写函数fun(),它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符1,则输出3。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<coio.h>
#include<stdio.h>
#defineM81
intfun(char*ss,charc)
{
}
main()
{chara[M],ch;
clrscr();
printf("\nPleaseenterastring:");
gets(a);
printf("\nPleaseenterachar:");
ch=getchar();
printf("\nThenumberofthecharis:%d\n",fun(a,ch));
}
34.请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,一维数组中的数据是:2223445666677899101010。
删除后,数组中的内容应该是:2345678910。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
四、单选题(0题)35.若有以下定义;chara;intb;floatc;doubled;则表达式“a*b+d-c”值的类型为()
A.floatB.intC.charD.double
五、单选题(0题)36.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.大写字母B.下划线C.数字字符D.连接符
六、单选题(0题)37.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
执行后的输出结果是A.A.0X0
B.0x0
C.0
D.0xABC
参考答案
1.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
2.B
3.A解析:局部变量在执行到它所在的程序块时产生,执行完时被摧毁,而静态局部变量的生存期将一直延长到程序运行结束,故选项A正确;全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束,故选项B不正确:未赋初值的局部变量的初值是随机的,故选项C不正确;形参只能是一般局部变量,不能使用任何存储类说明符,故选项D不正确。所以,4个选项中选项A符合题意。
4.D解析:在关系数据表中,行称为元组,对应存储文件中的记录,列称为属性,对应存储文件中的字段,所以本题答案为D。
5.C在C语言中,二维数组的名字表示的是二维数组的地址,表达式*(W+1)表示的是二维数组的第一行的第二个元素。在其前面再加上*(*(w+1))就是错误的表达式。
6.A
7.B题目中的选项都以转义字符“\\”开头,“\\ddd”表示3位八进制数代表的一个ASCII字符,“\\xhh”表示2位十六进制数代表的一个ASCII字符。选项A中“089”是不合法的八进制数,错误;选项C、D中“\\0X”或“\\0x”不合法,错误;选项B表示八进制数012代表的ASCII字符,正确。本题答案为B选项。
8.C在程序设计中,算法执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需存储空间。
9.A本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+l。根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即69个。二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉树总结点数为69+80+70,即219。因此,本题的正确答案是选项A。
10.D因为在逻辑表达式中,两边的赋值表达式都成立,即值为1,故选择D选项。
11.BC语言中,八进制数其开头必须是数字“0”,其数字包括0~7,因此选项A错误。浮点数据的指数形式表示中,字母e或E之后的指数必须为整数,所以选项C错误。选项D中,整型数据l0,000的表示形式是错误的。
12.C转义字符中,八进制的表示形式为\\ddd,但是八进制中不能包含数字8,所以C选项不合法。故本题答案为C选项。
13.11解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环;do…while语句的特点是先执行后判断,因此循环体至少执行1次.本程序中x=2不符合循环条件,所以只循环1次。
14.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。
15.p+=2*(p++)p+=2,*(p++)解析:由题可知a[2]=3,因此只要使指针p指向a[3],然后再引用指针的值就可以了。
16.结构结构解析:路径测试是白盒测试方法中的—种,它要求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。
17.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式为:scanf(格式控制,地址表列),因此,第一处应该填写地址,由于是循环输入,所以填&a[i]。依据题意第二处应该填写a[i],以实现sum=sum+a[i]的求和。
18.((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))解析:题目要求“x、y和z中至少有两个为正数”,即x、y和z这3个数中必须有两个是正数,且这3个数中的哪两个数都有可能是正数,所以它们之间是或的关系。
19.数据库管理系统数据库管理系统(DBMS)
20.n-1
21.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用两重循环。在第一层循环中将每行的第0列赋值为1,对角线上的元素赋值为1显然在第一个空中应该填入对角线上的元素即x[i][i],在第二重循环中给每行其他元素赋值,而在每行中除了第0列和对角线的元素外其他元素为其对应的上一行中同列和同列的前一列的元素相加,所以在第二个空中应该填入x[i-1][j-1]+x[i-1][j]。
22.网际协议网际协议
23.存储结构
24.序言性序言性解析:注释一般分为序言性注释和功能性注释。
25.doublefun(intm){inti;doubles=1.0;for(i=1;i<=m;i++)s=s-log(i);/*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/return(s*s);/*对s求平方并返回*/}doublefun(intm)\r\n{\r\n\u3000inti;\r\ndoubles=1.0;\r\nfor(i=1;i<=m;i++)\r\ns=s-log(i);/*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/\r\nreturn(s*s);/*对s求平方并返回*/\r\n}解析:首先,题目要求计算1依次减去1到M的对数,可用从1到M的循环,每次循环都减一个数的对数。该题需要注意,log()函数的形式参数应浩如烟海double型变量,用于循环的基数变量为整数,需要进行强制转换。最后在返回的时求平方。
26.
解析:该程序功能是求出数组周边元素的平均值。其中周边元素是指第一行的元素的行下标为0,或者第n行的元素行下标为n-1,或者第一列元素的元素列下标为0,或者第n列的元素的列下标为n-1。
27.voidfun(char*ss){inti;for(i=0;ss[i]!='\0';i++)/*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/if(i%2==1&&ss[i]>='a'&&SS[i]<='z')ss[i]=ss[i]-32;}voidfun(char*ss)\r\n{\r\ninti;\r\nfor(i=0;ss[i]!='\\0';i++)/*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/\r\nif(i%2==1&&ss[i]>='a'&&SS[i]<='z')\r\nss[i]=ss[i]-32;\r\n}解析:从C语言的学习中我们知道,只要将小写字母减去32则转成大写字母,将大写字母加上32则转成小写字母。该程序是用if语句实现该功能转化的。
28.
解析:(1)该程序功能是返回低于平均分的人数。它的解题思路可以分解为以下几步:求总分一求平均分一逐个元素与平均分比较一统计低于平均分的人数。
(2)从已给部分源程序的main主函数开始入手,核心函数fun(score,9,below)中的参数由题目可知,score存放着m个人的成绩,below存放低于平均分的分数。另外,根据score的定义,可知9为score数组中元素的个数,传给函数fun中的参数m。
29.
解析:该程序功能是统计各年龄段的人数。本题中采用的是多if选择语句,实现了不同年龄段的分支选择。
30.doublefun(STREC*aSTREC*bint*n){intij=0;doubleay=0.0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;/*求平均值*/for(i=0;i<N;i++)if(a[i].s<av)b[j++]=a[i];/*将低于平均值的学生记录存入结构体b中*/*n=j;/*指针传回低于平均值的学生人数//returnav;/*返回平均值*/}doublefun(STREC*a,STREC*b,int*n)\r\n{\r\ninti,j=0;\r\ndoubleay=0.0;\r\nfor(i=0;i<N;i++)\r\nav=av+a[i].s;\r\nav=av/N;/*求平均值*/\r\nfor(i=0;i<N;i++)\r\nif(a[i].s<av)b[j++]=a[i];/*将低于平均值的学生记录存入结构体b中*/\r\n*n=j;/*指针传回低于平均值的学生人数//\r\nreturnav;/*返回平均值*/\r\n}解析:很明显,本题应该使用循环语句和条件判断语句来实现目的,第1个循环是求出总分,然后求出平均分av。第2个循环的作用是将分数低于平均分的学生记录存入数组b中。
31.
解析:该程序功能是计算并输出多项式值。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。
32.voidfun(char*ss){inti;for(i=0;ss[i]!='\0'i++)/*将ss所指字符串中所有下标为偶数位置的字母转换为小写*/if(i%2==0&&ss[i]>='A'&&ss[i]<='z')ss[i]=ss[i]+32;}voidfun(char*ss)\r\n{\r\ninti;\r\nfor(i=0;ss[i]!='\\0'i++)/*将ss所指字符串中所有下标为偶数位置的字母转换为小写*/\r\nif(i%2==0&&ss[i]>='A'&&ss[i]<='z')\r\nss[i]=ss[i]+32;\r\n}解析:从C语言的学习中我们知道,只要将小写字母减去32则转成大写字母,将大写字母加上32则转成小写字母。该程序是用if语句实现该功能转化的。
33.intfun(char*sscharc){inti=0;for(;*ss!='\0';ss++)if(*ss==c)i++;/*求出ss所指字符串中指定字符的个数*/returni;}intfun(char*ss,charc)\r\n{\r\ninti=0;\r\nfor(;*ss!='\\0';ss++)\r\nif(*ss==c)\r\ni++;/*求出ss所指字符串中指定字符的个数*/\r\nreturni;\r\n}解析:从字符串ss中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历:若ss串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若“串的字符和c串的字符不对应相同,则继续对,s串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与c相同则表示又出现一次.
34.
解析:该程序功能是删去一维数组中所有相同的数,使之只剩一个。解题思路是,首先在函数中定义临时变量指向每一个元素,然后在循环过程中将临时值和其他元素进行比较,如果相同,那么跳过相同字符。
35.D解析:参加运算的数据类型不同,要转换为统一的数据类型,double在数据类型转换中的级别最高,其他数据类型都要转化为double,因此表达式值的类型为double。
36.D[解析]C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不合法。
37.C本题考查C语言中的数据输出格式。
题目中定义了两个整型变量m、n,对这两个变量赋值,输入的数值为十六进制整数,并且有m=n。进行m-n运算后,将减法所得到的值赋给m,并将m值输出。其中printf的格式字符选用的格式字符为x,即以十六进制形式输出整数。注意,0x是表示该数为十六进制的标志,输出数据时,数据前面不会自动加上进制的标志。2021年黑龙江省哈尔滨市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(12题)1.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
2.线性表是具有n个()的有限序列。
A.字符B.数据元素C.数据项D.表元素
3.以下叙述中正确的是()。
A.局部变量说明为static存储类,其生存期将得到延长
B.全局变量说明为static存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
4.在学生管理的关系数据库中,存取一个学生信息的数据单位是()。
A.文件B.数据库C.字段D.记录
5.若有定义intw[3][5];,则以下不能正确表示该数组元素的表达式是A.*(*w+3)B.*(*w+1)[4]C.*(*(*w+1))D.*(&w[0][0]+1)
6.运算符________的优先级最高。
A.[]B.+=C.?:D.++
7.以下正确的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'
8.下列叙述中正确的是()。
A.算法的执行效率与数据存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上3种描述都不对
9.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A.219B.221C.229D.231
10.语句:“printf("%d",(a=)&&(b=-2));”的输出结果是()。
A.无输出B.结果是不确定C.-1D.1
11.以下选项中,合法的一组C语言数值常量是()。
A.028.5e-3-0xf
B.12.OXa234.5eO
C..1774c1.5Oabc
D.0x8A10,0003.e5
12.以下不合法的字符常量是()。
A.‘\\’B.‘\”’C.‘\018’D.‘\xcc’
二、2.填空题(12题)13.下列程序的循环次数是______。
x=2;
do
{x=x*x;}
while(!x);
14.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。
15.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
16.软件测试中路径覆盖测试是整个测试的基础,它是对软件【】进行测试。
17.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。
#include<stdio,h>
main()
inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=【】;
}
prinff("sum=%d,count=%d\n",sum,count);
}
18.x、y、x均为int型变量,描述"x、y和z中至少有两个为正数"的表达式是______。
19.数据库系统中实现各种数据管理功能的核心软件称为【】。
20.对于一棵具有n个结点的树,则该树中所有结点的度之和为【】。
21.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
┇
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
22.计算机中网络通信协议IP是【】。
23.数据结构分为逻辑结构与存储结构,线性链表属于【】。
24.注释说明了程序的功能,它分为【】注释和功能性注释。
三、3.程序设计题(10题)25.请编写函数fun(),它的功能是计算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2
s作为函数值返回。
在C语言中可调用log(n)函数求In(n)。log函数的引用说明是doublelog(doublex)。
例如,若m的值为15,则fun()函数值为723.570801。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(intm)
{
}
main()
{
clrscr();
printf("%f\n",fun(15));
}
26.程序定义了NxN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。
例如:a数组中的值为:
则返回主程序后s的值应为:3.375。
注意:部分源程序存在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
27.请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入abc4Efg,则应输出aBc4EFg。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*ss)
{
}
main()
{
chartt[81];
clrscr();
printf("\nPleaseenteranstringwithin80characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n\%s",tt);
fun(tt);
printf("\nbecomes\n\%s\n",tt);
}
28.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为:10、20、30、40。
注意:部分源程序在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
29.请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把O至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1],把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
30.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio,h>
#defineN8
typedefstruct
{charnum[10];
doubles;
}STREC;
doublefun(STREC*a,STREC*b,int*n)
{
}
main()
{
STRECs[N]={{"GA05",85},{"GA03",76}
{"GA02",69},{"GA04",85}
{"GA01",91}{"GA07",72},{"GA08",64}
{"GA06",87}};
STSCh[N],t;
FILE*out;
int.i,j,n;
doubleave;
ave=fun(s,h,&n);
printf("The%dstudentdatawhichis
lowerthan%7.3f:\n"n,ave);
for(i=0;i<n;i++)
/*输出成绩低平均值的学生记录*/
printf("%s%4lf\n"h[i]num,
h[i].s);
printf("\n");
ut=fopen("out71dat","w"
fprintf(out,"%d\n%7.3f\n",nave);
/*输出平均值/
for(i=0;i<n-1;i++)
for(j=i+l;j<n;j++)
if(h[i].s>h[j].s)
{t=h[i];h[i]=h[j];h[j]=t;}
/*将成绩由低至高排列*/
for(i=0;i<n;i++)
fprintf(out,"%4lf\n"h[i]s);
fclose(out);
}
31.请编写函数fun,其功能是:计算并输出下列多项式的值:
例如,在主函数中从键盘给n输入50后,输出为:s=1.718282。
注意:要求n的值大于1但不大于100。部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
32.请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为偶数位置的字母转换为小写(若该位置上不是字母,则不转换)。
例如,若输入ABC4efG,则应输出aBc4efg。
注意:部分源程序给出如下。
请勿改动主函数miain和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*SS)
{
}
main()
{
chartt[81];
clrscr();
printf("\nPleaseenteranstringwithin80
characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n
\%s",tt);
fun(tt);
printf("\nbecomes\n\%S\n",tt);
}
33.请编写函数fun(),它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符1,则输出3。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<coio.h>
#include<stdio.h>
#defineM81
intfun(char*ss,charc)
{
}
main()
{chara[M],ch;
clrscr();
printf("\nPleaseenterastring:");
gets(a);
printf("\nPleaseenterachar:");
ch=getchar();
printf("\nThenumberofthecharis:%d\n",fun(a,ch));
}
34.请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,一维数组中的数据是:2223445666677899101010。
删除后,数组中的内容应该是:2345678910。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
四、单选题(0题)35.若有以下定义;chara;intb;floatc;doubled;则表达式“a*b+d-c”值的类型为()
A.floatB.intC.charD.double
五、单选题(0题)36.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.大写字母B.下划线C.数字字符D.连接符
六、单选题(0题)37.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
执行后的输出结果是A.A.0X0
B.0x0
C.0
D.0xABC
参考答案
1.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
2.B
3.A解析:局部变量在执行到它所在的程序块时产生,执行完时被摧毁,而静态局部变量的生存期将一直延长到程序运行结束,故选项A正确;全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束,故选项B不正确:未赋初值的局部变量的初值是随机的,故选项C不正确;形参只能是一般局部变量,不能使用任何存储类说明符,故选项D不正确。所以,4个选项中选项A符合题意。
4.D解析:在关系数据表中,行称为元组,对应存储文件中的记录,列称为属性,对应存储文件中的字段,所以本题答案为D。
5.C在C语言中,二维数组的名字表示的是二维数组的地址,表达式*(W+1)表示的是二维数组的第一行的第二个元素。在其前面再加上*(*(w+1))就是错误的表达式。
6.A
7.B题目中的选项都以转义字符“\\”开头,“\\ddd”表示3位八进制数代表的一个ASCII字符,“\\xhh”表示2位十六进制数代表的一个ASCII字符。选项A中“089”是不合法的八进制数,错误;选项C、D中“\\0X”或“\\0x”不合法,错误;选项B表示八进制数012代表的ASCII字符,正确。本题答案为B选项。
8.C在程序设计中,算法执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需存储空间。
9.A本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+l。根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即69个。二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉树总结点数为69+80+70,即219。因此,本题的正确答案是选项A。
10.D因为在逻辑表达式中,两边的赋值表达式都成立,即值为1,故选择D选项。
11.BC语言中,八进制数其开头必须是数字“0”,其数字包括0~7,因此选项A错误。浮点数据的指数形式表示中,字母e或E之后的指数必须为整数,所以选项C错误。选项D中,整型数据l0,000的表示形式是错误的。
12.C转义字符中,八进制的表示形式为\\ddd,但是八进制中不能包含数字8,所以C选项不合法。故本题答案为C选项。
13.11解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环;do…while语句的特点是先执行后判断,因此循环体至少执行1次.本程序中x=2不符合循环条件,所以只循环1次。
14.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。
15.p+=2*(p++)p+=2,*(p++)解析:由题可知a[2]=3,因此只要使指针p指向a[3],然后再引用指针的值就可以了。
16.结构结构解析:路径测试是白盒测试方法中的—种,它要求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。
17.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式为:scanf(格式控制,地址表列),因此,第一处应该填写地址,由于是循环输入,所以填&a[i]。依据题意第二处应该填写a[i],以实现sum=sum+a[i]的求和。
18.((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))解析:题目要求“x、y和z中至少有两个为正数”,即x、y和z这3个数中必须有两个是正数,且这3个数中的哪两个数都有可能是正数,所以它们之间是或的关系。
19.数据库管理系统数据库管理系统(DBMS)
20.n-1
21.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用两重循环。在第一层循环中将每行的第0列赋值为1,对角线上的元素赋值为1显然在第一个空中应该填入对角线上的元素即x[i][i],在第二重循环中给每行其他元素赋值,而在每行中除了第0列和对角线的元素外其他元素为其对应的上一行中同列和同列的前一列的元素相加,所以在第二个空中应该填入x[i-1][j-1]+x[i-1][j]。
22.网际协议网际协议
23.存储结构
24.序言性序言性解析:注释一般分为序言性注释和功能性注释。
25.doublefun(intm){inti;doubles=1.0;for(i=1;i<=m;i++)s=s-log(i);/*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/return(s*s);/*对s求平方并返回*/}doublefun(intm)\r\n{\r\n\u3000inti;\r\ndoubles=1.0;\r\nfor(i=1;i<=m;i++)\r\ns=s-log(i);/*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/\r\nreturn(s*s);/*对s求平方并返回*/\r\n}解析:首先,题目要求计算1依次减去1到M的对数,可用从1到M的循环,每次循环都减一个数的对数。该题需要注意,log()函数的形式参数应浩如烟海double型变量,用于循环的基数变量为整数,需要进行强制转换。最后在返回的时求平方。
26.
解析:该程序功能是求出数组周边元素的平均值。其中周边元素是指第一行的元素的行下标为0,或者第n行的元素行下标为n-1,或者第一列元素的元素列下标为0,或者第n列的元素的列下标为n-1。
27.voidfun(char*ss){inti;for(i=0;ss[i]!='\0';i++)/*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/if(i%2==1&&ss[i]>='a'&&SS[i]<='z')ss[i]=ss[i]-32;}voidfun(char*ss)\r\n{\r\ninti;\r\nfor(i=0;ss[i]!='\\0';i++)/*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/\r\nif(i%2==1&&ss[i]>='a'&&SS[i]<='z')\r\nss[i]=ss[i]-32;\r\n}解析:从C语言的学习中我们知道,只要将小写字母减去32则转成大写字母,将大写字母
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中山市大涌镇招聘公办中小学专任教师笔试真题
- 2025年济宁汶上县第五实验中学教师招聘笔试真题
- 逆变器IGBT散热工艺提升项目可行性研究报告
- 70多岁老人活动方案策划(3篇)
- 个人产品营销方案文案(3篇)
- 医美联名活动策划方案(3篇)
- 遗赠扶养合同书养老赡养权责详细协议三篇
- 2026年辽宁中考物理考试真题附答案
- 2026年山西高考数学考试(真题)及参考答案
- 广西壮族自治区崇左市2026年重点学校高一入学数学分班考试试题及答案
- 2026年嘉兴市秀洲区公开招聘劳动合同制教职工(幼儿教师、卫生保健员)24人笔试备考题库及答案详解
- 2026天津一中高一入学数学分班考试真题含答案
- 2026年大学生就业前景研判及高考志愿填报攻略-智联研究院
- 2026肉牛养殖环境承载力评估与生态平衡维护报告
- 多模态数据融合驱动的传染病传播机制研究-洞察与解读
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.5-2025)
- GA/Z 2328-2025法庭科学资金数据分析标准体系表
- 衢州市技师学院招聘考试试卷及答案2025年
- 儿科住院医师医患沟通情景模拟考核方案
- 2024年第41届全国中学生竞赛预赛物理试题(解析版)
- 2025年广州市天河区招聘事业单位工作人员考试笔试试题含答案
评论
0/150
提交评论