2021年山西省长治市全国计算机等级考试C语言程序设计真题一卷(含答案).docx
25页2021年山西省长治市全国计算机等级考试C语言程序设计真题一卷(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1. 关系数据库的数据及更新操作必须遵循()等完整性规则A.实体完整性和参照完整性 B.参照完整性和用户定义的完整性 C.实体完整性和用户定义的完整性 D.实体完整性、参照完整性和用户定义的完整性 2. 以下能正确定义一维数组的选项是A.int a[5]={0,1,2,3,4,5} B.char a[]={'0','1','2','3','4','5','\0'}; C.char a={'A','B','C'}; D.int a[5]="0123"; 3.已知一个大小为n的整型数组,现求该数组的全部连续子数组的元素之和的最大值,最优算法的时间复杂度是()如:a[4]={2,-1,3,-4},它的全部连续子数组为{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-4]},它们的元素之和为{2,-1,3,-4,1,2,-1,4,-2,0},其中的最大值为4。
A.O(logN) B.O(N) C.O(N*logN) D.O(N^2) 4.设有如下定义语句: int m[]={2,4,6,8,10},*k=m; 以下选项中,表达式的值为6的是( )A.*(k+2) B.k+2 C.*k+2 D.*k+=2 5. 有以下程序 main() { int i; for(i=1;i<=40;i++) { if(i++%5==0) if(++i%8==0) printf("%d",i); } printf("\n"); } 执行后的输出结果是A.5 B.24 C.32 D.40 6.在下述论述中,正确的是() ①只有一个结点的二叉树的度为0;②二叉树的度为2;③二叉树的左右子树可任意交换; ④深度为K的顺序二叉树的结点个数小于或等于深度相同的满二叉树A.①②③ B.②③④ C.②④ D.①④ 7.当n=5时,函数输出为()A.5 B.11 C.29 D.10 8.在面向对象方法中,实现信息隐蔽是依靠( )A.对象的继承 B.对象的多态 C.对象的封装 D.对象的分类 9.以下叙述中正确的是()A.无论指针变量P具有何种基类型,表达式“p=p +1”都代表指针P移动1个字节 B.指针变量具有基类型,基类型不同的指针变量不能直接相互赋值 C.指针变量的赋值操作“p=0; ”是非法的 D.通过指针变量存取某个变量值的方式称为“直接存取”方式 10. 在说明语句:int *f();中,标识符f代表的是A.一个用于指向整型数据的指针变量 B.一个用于指向一维数组的行指针 C.一个用于指向函数的指针变量 D.一个返回值为指针型的函数名 11.定义结构体数组:struct stu{ int num;char nameE20];}X[5]={1,"LI",2,"ZHAO",3,"WANG",4," ZHANG",5,"LIU");for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的输出结果为( )。
A.2A3N4A5U B.112A3H4I C.1A2N3A4U D.2H3A4H5I 12.二、2.填空题(12题)13. 以下程序运行后的输出结果是【 】main(){int p=30;printf("%d\n",(p/3>0?p/10:p%3));}14. 下面程序的输出是【 】main(){enum em{eml=3,em2=1,em3};char*aa[]={"AA',"BB","CC","DD"}printf("%s%s%\n",aa[em1],aa[em2],aa[em3]);}15. 有以下程序:void f(int*x,iht * y){ int t;t=*x;*x;=*y;*y=t;}main(){ int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p){ f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序运行后的输出结果是【 】16. 深度为5的满二叉树中,叶子结点的个数为 ______17. 若有如下结构体说明:struct STRU{int a,b;char c: double d;struct STRU *p1,*p2;};请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
】t[20]18. 以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中include<conio.h>#include<stdio.h>int fun(int*s,int t,int*k){ int i;*k=0;【 】if(s[*k]<s[i])*k=i;return【 】;}main(){ int a[10]={876,675,896,101,301,401,980,431,451,777},k;clrscr();fun(a,10,&k);printf("%d,%d\n",k,a[k]);}19. 以下程序的运行结果是______struct Node}int x;char ch;};fun(struct Node*sn)} static k=1;sn->x=20;Sn->ch='a'+k++;}main(){ int i;static struct Node st=}10,'a'};for(i=0;i<2;i++)fun(&st);printf("%d,%c\n",st.x,st.ch);}20. 以下程序的输出结果是【 】include <string.h>main(){printf("%d\n",strlen("IBM\n012\1\\"));}21. 以下程序的输出结果是【 】。
include <stdio.h>void swap(int *a, int *b){ int *t;t=a; a=b; b=t;}main(){ int i=3,j=5,*p=&i,*q=&j;swap(p,q); printf("%d %d\n",*p,*q);}22. 以下程序中,函数SumColumMin的功能足:求出M行N列二维数组每列元素中的最小值,并计算它们的和值和值通过形参传回主函数输出define M 2#define N 4void SumColumMm(int a[M][N],int*sum){int i,j,k,s=0;for(i=0;i<N;i++){k=0;for(j=1;j<M;j++)if(a[k][i]>a[j][i])k=j;s+=【 】;}【 】=s;}main(){int x[M][n])={3;,5,1,4,1,8,3},s;SumC01umMm(【 】);ptintf("%d\n",s);}23. 若有定义doublea [5];,则a数组元素下标的上限为______24. 若有如下程序:main(){ int x=4,y=1;printf("%d\n",sub(x,sub(x,y))); }sub(int i,int j){ static int a=0;int b=2;a+=i+b;b+=j+a; }则程序运行后的输出结果是【 】。
三、3.程序设计题(10题)25. 请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)例如,若输入abc4Efg,则应输出aBc4EFg注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:#include <conio.h>#include <stdio.h>#include <string.h>void fun(char *ss){}main(){char tt[81];clrscr();printf("\nPlease enter an string within 80 characters:\n");gets(tt);printf("\n\nAfter changing, the string\n \%s", tt);fun(tt);printf("\nbecomes\n\%s\n",tt);}26. 请编写函数fun(),该函数的功能是:将两个两位数的正整数a,b合并形成一个整数放在c中合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45时,b=12,调用到该函数后,c=5142注意:部分源程序给出如下.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:#include <stdio.h>#include<conio.h>void fun(int a ,int b, long *c){}main ( ){int a,b;long c;clrscr();printf("Input a ,b:");scanf(,%d%d",&a,&b);fun(a,b,&c);printf("The result is :%ld\n",c);}27. 假定输入的字符串中只包含字母和*号请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****A*BC*DEF*G在编写函数时,不得使用C语言提供的字符串函数注意:部分源程序在文件PROGl.C文件中请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句28. 请编写函数fun(),它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在 a所指的数组中,通过n返回这些数的个数。
注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:#include <conio.h>#include <stdio.h>void fun (int *a,int *n){}main(){int aa[1000], n, k;clrscr();fun(aa,&n);for(k=0;k 。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


