下载此文档

2024-2023学年湖南省郴州市全国计算机等级考试C语言程序设计真题一卷精品2926.pdf


文档分类:资格/认证考试 | 页数:约27页 举报非法文档有奖
1/27
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/27 下载此文档
文档列表 文档介绍
该【2024-2023学年湖南省郴州市全国计算机等级考试C语言程序设计真题一卷精品2926 】是由【小屁孩】上传分享,文档一共【27】页,该文档可以免费在线阅读,需要了解更多关于【2024-2023学年湖南省郴州市全国计算机等级考试C语言程序设计真题一卷精品2926 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..2022-2023学年湖南省郴州市全国计算机等级考试C语言程序设计真题一卷(含答案)学校:________班级:________姓名:________考号:________一、单选题(12题)()。:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}输出结果是()。,k为float型变量,则不能正确执行的语句是()。=*q1+*q2;=k;=q2;=*q1*(*q2);:..().,表尾为(B,C),则此广义表为________A.(A,(B,C))B.(A,B,C)C.(A,B,C)D.((A,B,C)),从键盘上输A,555667777123后,y的值为()。,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。:..“int*p[3];”,则以下叙述中正确的是()。,该数组含有3个元素,,*p的整型数组,,,称此关系为()。:..、(12题)【】。main(){inta=2,b=2,c=4;a*=16+(b++)-(++C);printf("%d",a);}:structSTRU{inta,b;charc:doubled;structSTRU*p1,*p2;};请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。【】t[20]。#defineP(A)printf("%d,",(int)(A))#definePRINT(A)P(A);printf("theend")main(){inti,a=0;for(i=1;i<++)PRINT(a+i);:..printf("\n");},算法可以用顺序、选择和______三种基本控制结构组合而成。{intinfo;struetss*link;}x,y,z;且已建立如下图所示链表结构:请写出删除结点y的赋值语句【】。,则以下程序的输出结果是【】。main(){inta;scanf(“%d”,&A);if(a>50)printf(“%d”,A);if(a>40)printf(“%d”,A);if(a>30)printf(“%d”,A);}()。#include<>:..main(){intx=27;while(x>20&&x<30){x++;if(x/3){x++;break;}elsecontinue;}printf("%d\n",x);}【】的集合,它能被各种用户共享。【】。intt(intx,inty,intcp,intdp){cp=x*x+y*y;dp=x*x-y*y;}main(){inta=4,b=3,c=5,d=6;t(a,b,c,d);printf("%d%d\n",c,d);},for循环体执行的次数是______。#defineN2#defineMN+1#defineKM+1*M/2main(){inti;for(i-1;i<K;i++){...}...:..}【】。fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){inti,a=5;for(i=0;i<3;i++)printf("%d%d",i,fun(a));prind("\n");};#include<>main(){charc;while((c=getchar())!=',')putchar(++C);}程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。三、(10题)*号。请编写函数fun(),它的功能是:除了尾部的,:号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串:..函数。例如,若字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容应当是ABCDEFG******。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<>#include<>voidfun(char*a,char*p){}main()chars[81],*t;printf("Enterastring:\n");gets(s);t=s;while(*t)t++;t--;/*指针t指向字符串尾部*/while(*t=='*')t--;/*指针t指向最后一个字母*/fun(s,t);printf("Thestringafterdeleted:\n");puts(s);},该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asdasasdfgasdaszx67:..asdmklo,子字符串为as,则应当输出6。注意:部分源程序给出如下。请勿改动主函数main和具他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<>#include<>#include<>intfun(char*str,char*substr){}main(){charstr[81],substr[3];intn;clrscr();printf("输入主字符串");gets(str);printf("输入子字符串");gets(substr);puts(str);puts(substr);n=fun(shr,substr);printf("n=%d\n",n);}(int*s,intt,int*k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:234345753134436458100321135760:..则输出结果为6,100。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<>#include<>intfun(int*s,intt,int*k){}main(){inta[10]={234,345,753,134,436,458,100,321,135,760),k;clrscr();fun(a,10,&k);printf("%dr%d\n",k,a[k]);}(),它的功能是计算下列级数和,和值由函数值返回。S=1+x+x2/2!3/3!+…/xn/n!例如,当n=10,x=,函数值为1349859。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括:..号中填入所编写的若干语句。试题程序:#include<>#include<>#include<>doublefun(doublex,intn){}main(){clrscr();printf("%f",fun(0,3,10));},它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。例如若n为1000时,程序输出应为:s=。注意:。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。:..(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0到p(p≤n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值为3。移动后,一维数组中的内容应为5,6,7,8,9,10,11,12,13,14,15,1,2,3,4。注意:部分源程序给出如下。:..请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<>#defineN80voidfun(int*w,intp,intn){}main(){inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};inti,p,n=15;printf("Theoriginaldata:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\nEnterp:");scanf("%d",&p);fun(a,p,n);printf("\nThedataaftermoving:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");},N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。注意:。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。:..,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。注意:。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。:..*号。请编写函数fun(),它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。例如,若字符串中的内容为****A*BC*DEF*G*******删除后,字符串中的内容则应当是****A*BC*DEF*G。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数6ln的花括号中填入所编写的若干语句。试题程序:#include<stdio,h>#include<>:..voidfun(char*a){}main(){chars[81];printf("Enterastring:\n");gets(s);fun(s);printf("Thestringafterdeleted:\n");puts(s);}*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。例如,字符串中的内容为:******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为;*******A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。注意:。请勿改动主函数main和其他函数中的任何内容。仅在函数fun的花括号中填入你编写的若干语句。:..四、单选题(0题)()。,即先乘除后加减:..,运算符两侧类型不同时,“+”“-”“*”“/”这4个基本算术运算符五、单选题(0题)、单选题(0题)。,当j=10,i=9时,循环成立,第一个if条件为假,第二个if条件i==j-1成立,则输出j的值为10,接者执行i++:..后,i为10;当i为10,for循环不成立,退出内层循环,此时执行j++后,j为11,循环不成立,退出循环。:选项A)是将指针q1和q2所指向的变量值相加,然后赋给k;选项B)中,float型数据和指针型数据之间不能进行赋值运算:选项C)中,是两个指针变量之间的赋值:选项D)中,是两个指针型变量所指向的两个float型数据相乘。)ki$i数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。因此j的值为55,,字符数组nanle的值为7777123。故本题答案为A)。,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。—个if语句a!=1条件为假,所以执行dse后的语句r=1。第二个if语句b==2条件成立,执行r+=2,r的值变为3,第三个if语句c!=3条件为假,所以不做任何操作。执行下面的r+=3操作,r的值变为6。判断第四个讧条件,d==4条件成立,执行r+=4操作,结果为10。:..int*p[3]含义是定义一个指针数组p,数组中包含3个元素,每个元素都是int*类型的指针。本题答案为A选项。,在这区域内的函数才可以调用,如果在定义函数之后,定义的变量,该变量不能被之前的函数访问所以A选项说法错误,答案为A选项。:在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有N个属性的关系称为N元关系。注意:各种关系查询语言与过程性语言和非过程性语言的关系,过程性语言的特点。:a*=16+(b++)-(++c)等价于a*=a*(16+(b++)-(++c))=2*(16+(2-5)=26。b++是先使用b的值参加运算,再对b加1;++c是先c加1,再使用c的值参加运算。:结构件类型是构造数据类型,是用户自己定义的一种类型。结构体类型的定义:struct结构体类型名{成员项表;};定义结构体变量的的形式为::..struct结构体类型名变量1,变量2,...?其中变量包括;一般变量、指针变量、数组变量等。,2,3,4,theend解析:本题考查带参数的宏的定义。第1次循环,i=1时,调用PRINT(1),P(1)输出1;第2次循环,i=2时,调用PRINT(2),P(2)输出2:第3次循环,i=3时,调用PRINT(3),P(3)输出3:第4次循环,i=4时,调用PRINT(4),P(4)输出4,theend。:算法一般由顺序,选择和循环三种基本控制结构组合而成。=&z;=;=->link;=*().link;=&z;=;=->link;=*().link;解析:链表中结点的删除,要删除结点y,只需要让结点x的指针域指向y结点的指针域所指向的后续结点就可,因此只需把结点z的地址赋给x的指针域就可以了,即让结点x的指针域指向结点z。而结点z的地址保存在结点y的指针域中,因此只需把结点y的指针域赋值给结点x的指针域即可。:在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个if语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>40,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。:本题考查while循环和++运算,x=27符合循环条件,执:..行循环体中x++后,x=28,if条件也成立,执行x++后退出,x的值增1,结果x=29。:数据库是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成,这些数据按一定的数据模型组织、描述和存储。:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。:将程序中所有的宏替换掉可得:M=2+1,K=2+1*2+1/2=4,所以for循环共循环了K-1+1次,即4-1+1共4次。:需要注意的是,函数fun()中的变量c为静态局部变量,在静态存储区内分配了存储单元,在程序整个运行期间不会释放,所以调用函数时,只赋初值一次,以后再调用函数时,c中的值为上次调用函数时的值。执行for循环,当i=0时,fun(5)=5+1+4=10,此时c=4;当i=1时,fun(5)=5+1+5=11,此时c=5;当i=2时,fun(5)=5+1+6=12;此时c=6:当i=3时,退出for循环,并输出回车换行符。:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的:..字符,所以是B。(char*achar*p){char*t=a;for(;t<=p;t++)if(*t!='*')*(a++)=*t;/*将p以前所有不是*号的字符保留下来*/for(;*t!='\0';t++)*(a++)=.t;/*将p以后的所有*号保留下来*/*a='\0';/*在字符串最后加上结束标记位*/voidfun(char*a,char*p)\r\n{\r\nchar*t=a;\r\nfor(;t<=p;t++)\r\nif(*t!='*')\r\n*(a++)=*t;/*将p以前所有不是*号的字符保留下来*/\r\nfor(;*t!='\0';t++)\r\n*(a++)=.t;/*将p以后的所有*号保留下来*/\r\n*a='\0';/*在字符串最后加上结束标记位*/解析:本题曾在历年上机考试及模拟试题中多次出现,一般用两个循环语句来实现。第1个循环的作用是将p以前所有不是*号的字符保留下来,即删除所有的*号。第2个循环的作用是将p以后的所有*号保留下来。(char*strchar*substr){intij=0;for(i=0;str[i+1]!='\0';i++)/*如果一个长度为2的子字符串在主字符串中出现一次则j+1如此循环*/if(str[i]==substr[0]&&str[i+1]==substr[1])j++;returnj;/*返回子字符串在主字符串中出现的次数*/}intfun(char*str,char*substr)\r\n{\r\ninti,j=0;\r\nfor(i=0;str[i+1]!='\0';i++)/*如果一个长度为2的子字符串在主字符串中出现一次,则j+1,如此\r\n循环*/\r\nif(str[i]==substr[0]&&str[i+1]==substr[1])\r\nj++;\r\nreturnj;/*返回子字符串在主字符串中出现的次数*/\r\n}解析:该题中subsu只有两个字符,所以可以用if语句来直接进行判断。要注意if())中str组的下标为i和i+1,即比较当前字符及其以后的一个字符是否分别与substr中的字符对应相同,若都相同则表示出现了一次。:..(int*sinttint*k){inti;*k=0/*k所指的数是数组的下标值*/for(i=0;i<t;i++)if(s[*k]>s[i])*k=i;/*找到数组的最小元素把该元素的下标赋给k所指的数*/returns[*k];/*返回数组的最小元素*/}intfun(int*s,intt,int*k)\r\n{\r\ninti;\r\n*k=0/*k所指的数是数组的下标值*/\r\nfor(i=0;i<t;i++)\r\nif(s[*k]>s[i])\r\n*k=i;/*找到数组的最小元素,把该元素的下标赋给k所指的数*/\r\nreturns[*k];/*返回数组的最小元素*/\r\n}解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应让*k的值为数组中的某一下标值勤,即*k=0。(doublexintn){inti;doubles==;for(i=1;i<=n;i++){s1=s1*i;/*各项中的阶乘*/s=s+pow(xi)/s1;/*按公式求出*/}returns;}doublefun(doublex,intn)\r\n{\r\ninti;\r\ndoubles==;\r\nfor(i=1;i<=n;i++)\r\n{s1=s1*i;/*各项中的阶乘*/\r\ns=s+pow(x,i)/s1;/*按公式求出*/\r\n}\r\nreturns;\r\n}解析:本程序中用s1来表示每项的分母(即各项中的阶乘),要注意本程序中s和s1的初值都为1。:该程序功能是求解同时能被3与7整除的所有自然数之和的平方根。解题过程,首先利用if条件表达式“if(i%3==0&&i%7==0)”求能同时被3与7整除的数,然后在此基础上利用C语言中的sqrt语句求平方根。(int*wintpintn){intijt;for(i=0;i<=p;i++)/*循环左移p+1:..次*/{t=w[0];for(j=1/j<n;j++)/*实现循环左移*/w[j-1]=w[j];w[j-1]=t;}}voidfun(int*w,intp,intn)\r\n{\r\ninti,j,t;\r\nfor(i=0;i<=p;i++)/*循环左移p+1次*/\r\n{t=w[0];\r\nfor(j=1/j<n;j++)/*实现循环左移*/\r\nw[j-1]=w[j];\r\nw[j-1]=t;\r\n}\r\n}解析:本题采用“循环左移”的算法(关于“循环左移”,我们在后面的试题中有详细的解释)。和我们在前面分析的稍有不同的是,一个是整型数组,一个是字符型数组。:该程序功能是把分数最高的学生数据放在h所指的数组中。本题是关于求解结构体中某些成员的最大值,首先将第一个值设定为最大值,并在循环中将其他所有值与该值进行比较,求得最大值。然后将最大值与所有值进行比较,求得所有的最大值。:该程序功能是寻找二维数组中最大元素的值。其中,求最大元素的方法:用最大值变量maX标记第一个待找数据,逐个把所有待找数据和max进行比较,并用max标记当前最大值及其所在位置,从而找出最大值。(char*a){while(*a!='\0')a++;a--;/*指针a指向字符串的尾部*/while(*a=='*')a--/*指针a指向最后一个字母*/*:..(a+l)='\0';/*在字符串最后加上结束标志位*/}voidfun(char*a)\r\n{\r\nwhile(*a!='\0')\r\na++;\r\na--;/*指针a指向字符串的尾部*/\r\nwhile(*a=='*')\r\n\u3000\u3000\u3000a--/*指针a指向最后一个字母*/\u3000\u3000\u3000\r\n*(a+l)='\0';\u3000/*在字符串最后加上结束标志位*/\r\n\u3000}解析:前面我们遇到类似将字符串头部的'*'号全部删除,其实解题思路是一样的,请参照前面试题解析及参考答案。:该程序功能是根据字符串前导的“*”号个数进行相关操作。解题过程首先确定字符串尾,然后由串头开始对字符进行判断,同时对“*”字符进行统计,如果大于n,就进行截取。。圆括号可以改变算术表达式中某些算术运算符的优先级,选项A正确;算术运算符中,乘除运算符的优先级比加减运算符的优先级高,C语言采用的是四则运算规则,选项B正确;算术表达式中,运算符两侧运算对象的数据类型不同时,将进行隐式类型转换,选项C正确;C语言中基本的算术运算符除了:..“+”“-”“*”“/”之外,还有“%”,即求余运算符,选项D错

2024-2023学年湖南省郴州市全国计算机等级考试C语言程序设计真题一卷精品2926 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数27
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小屁孩
  • 文件大小2.23 MB
  • 时间2024-04-14