湖北省技能高考C语言题目汇编《第1套 10题》.docx
《湖北省技能高考C语言题目汇编《第1套 10题》.docx》由会员分享,可在线阅读,更多相关《湖北省技能高考C语言题目汇编《第1套 10题》.docx(20页珍藏版)》请在冰点文库上搜索。
![湖北省技能高考C语言题目汇编《第1套 10题》.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/b7f0b012-6b32-4d77-bf6a-3a511de46a47/b7f0b012-6b32-4d77-bf6a-3a511de46a471.gif)
湖北省技能高考C语言题目汇编《第1套10题》
湖北省技能高考C语言题目汇编及答案第一套
一、程序填空共20题(共计200分)
第1题
题目:
给定程序中,函数fun的作用是:
统计整型变量m中各数字出现的次数,并存放到
数组a中,其中:
a[0]存放0出现的次数,a[1]存放1出现的次数,……a[9]存放9
出现的次数。
例如:
若m为14579233,则输出结果应为:
0,1,1,2,1,1,0,1,0,1,
-------------------------------------------------------*/
#include
voidfun(intm,inta[10])
{
inti;
for(i=0;i<10;i++)
/***********SPACE***********/
【?
】=0;
while(m>0)
{
/***********SPACE***********/
i=【?
】;
a[i]++;
/***********SPACE***********/
m=【?
】;
}
}
main()
{
intm,a[10],i;
printf("请输入一个整数:
");
scanf("%d",&m);
fun(m,a);
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
}
答案:
=======(答案1)=======
a[i]
=======(答案2)=======
m%10
=======(答案3)=======
m/10
第2题
题目:
下列给定程序中,函数fun的功能是:
计算一个带头结点的单向链表中各结点的
数据域中数值之和,结果作为函数值返回。
-------------------------------------------------------*/
#include
#include
#defineN8
typedefstructlist
{
intdata;
structlist*next;
}SLIST;
SLIST*creatlist(int*);
voidoutlist(SLIST*);
intfun(SLIST*h)
{
SLIST*p;
ints=0;
p=h->next;
while(p)
{
/***********SPACE***********/
s+=p->【?
】;
/***********SPACE***********/
p=p->【?
】;
}
returns;
}
main()
{
SLIST*head;
inta[N]={12,87,45,32,91,16,20,48};
head=creatlist(a);
outlist(head);
/***********SPACE***********/
printf("\nsum=%d\n",fun(【?
】));
}
SLIST*creatlist(inta[])
{
SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;i{
q=(SLIST*)malloc(sizeof(SLIST));
q->data=a[i];
p->next=q;
p=q;
}
p->next=0;
returnh;
}
voidoutlist(SLIST*h)
{
SLIST*p;
p=h->next;
if(p==NULL)
printf("ThelistisNULL!
\n");
else
{
printf("\nHead");
do
{
printf("->%d",p->data);
p=p->next;
}
while(p!
=NULL);
printf("->End\n");
}
}
答案:
=======(答案1)=======
data
=======(答案2)=======
next
=======(答案3)=======
head
第3题
题目:
求100以内个位数为6且能够被3整除的所有数
-------------------------------------------------------*/
#include
voidmain()
{
inti,j;
/***********SPACE***********/
for(i=0;【?
】;i++)
{
j=i*10+6;
/***********SPACE***********/
if(【?
】)
continue;
printf("%d\t",j);
}
}
答案:
=======(答案1)=======
i<10
=========或=========
i<=9
=======(答案2)=======
j%3!
=0
=========或=========
(j/3)*3!
=j
第4题
功能:
百马百担问题:
有100匹马,驮100担货,大马驮三担,中
马驮2担,两匹小马驮一担,求大、中、小马各多少匹?
-------------------------------------------------------*/
#include
main()
{
inthb,hm,hl,n=0;
/***********SPACE***********/
for(hb=0;hb<=100;hb+=【?
】)
/***********SPACE***********/
for(hm=0;hm<=100-hb;hm+=【?
】)
{
/***********SPACE***********/
hl=100-hb-【?
】;
/***********SPACE***********/
if(hb/3+hm/2+2*【?
】==100)
{
n++;
printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl);
}
}
printf("n=%d\n",n);
}
答案:
=======(答案1)=======
3
=======(答案2)=======
2
=======(答案3)=======
hm
=======(答案4)=======
hl
第5题
题目:
下列给定程序中,函数fun的功能是:
从形参ss所指字符串数组中,删除所有串长
超过k的字符串,函数返回剩余字符串的个数。
ss所指字符串数组中共有N个字符串,
且串长小于M。
-------------------------------------------------------*/
#include
#include
#defineN5
#defineM10
intfun(char(*ss)[M],intk)
{
inti,j=0,len;
/***********SPACE***********/
for(i=0;i<【?
】;i++)
{
len=strlen(ss[i]);
/***********SPACE***********/
if(len<=【?
】)
/***********SPACE***********/
strcpy(ss[j++],【?
】);
}
returnj;
}
main()
{
charx[N][M]={"Beijing","Shanghai","Tianjing","Nanjing","Wuhan"};
inti,f;
printf("\nTheoriginalstring\n\n");
for(i=0;if=fun(x,7);
printf("Thestringwitchlengthislessthanorequalto7:
\n");
for(i=0;i}
答案:
=======(答案1)=======
N
=======(答案2)=======
k
=======(答案3)=======
ss[i]
第6题
题目:
以下程序段输出2行3列数组a各元素的值。
要求先输出第二行元素,
再输出第一行,且输出每行元素后要求换行。
请填空。
-------------------------------------------------------*/
#include
voidmain()
{
intm,n,i,j;
inta[2][3];
for(m=1;m>=0;m--){
for(n=0;n<3;n++)
scanf("%d",&a[m][n]);
}
/***********SPACE***********/
for(【?
】){
for(j=0;j<3;j++)
printf("%d",a[i][j]);
/***********SPACE***********/
【?
】;
}
}
答案:
=======(答案1)=======
i=1;i>=0;i--
=======(答案2)=======
printf("\n")
第7题
题目:
给定程序中,函数fun的功能是:
找出形参s所指字符串中出现频率最高的字母
(不区分大小写),并统计出其出现的次数。
例如:
形参s所指的字符串为:
abcAbsmaxless,程序执行后的输出结果为:
letter'a':
3times
letter's':
3times
-------------------------------------------------------*/
#include
#include
#include
voidfun(char*s)
{
intk[26]={0},n,i,max=0;
charch;
while(*s)
{
if(isalpha(*s))
{
/***********SPACE***********/
ch=tolower(【?
】);
n=ch-'a';
/***********SPACE***********/
k[n]+=【?
】;
}
s++;
if(max/***********SPACE***********/
max=【?
】;
}
printf("\nAftercount:
\n");
for(i=0;i<26;i++)
if(k[i]==max)
printf("\nletter\'%c\':
%dtimes\n",i+'a',k[i]);
}
main()
{
chars[81];
printf("\nEnterastring:
\n\n");gets(s);
fun(s);
}
答案:
=======(答案1)=======
*s
=======(答案2)=======
1
=======(答案3)=======
k[n]
第8题
题目:
用筛选法可得到2~n(n<10000)之间的所有素数,方法是:
首先从素数2开始,将
所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找
下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数
等于n为止。
这样会得到一个序列:
2,3,5,7,11,13,17,19,23,…
函数fun的作用是:
用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。
-------------------------------------------------------*/
#include
intfun(intn)
{
inta[10000],i,j,count=0;
for(i=2;i<=n;i++)
a[i]=i;
i=2;
while(i{
/***********SPACE***********/
for(j=a[i]*2;j<=n;【?
】)
a[j]=0;
i++;
/***********SPACE***********/
while(【?
】==0)
i++;
}
printf("\nTheprimenumberbetween2to%d\n",n);
for(i=2;i<=n;i++)
/***********SPACE***********/
if(a[i]!
=【?
】)
{
count++;
printf(count%15?
"%5d":
"\n%5d",a[i]);
}
returncount;
}
main()
{
intn=20,r;
r=fun(n);
printf("\nThenumberofprimeis:
%d\n",r);
}
答案:
=======(答案1)=======
j+=a[i]
=========或=========
j=j+a[i]
=======(答案2)=======
a[i]
=======(答案3)=======
0
第9题
功能:
以下程序的功能如(图1)。
#include
#include
/***********SPACE***********/
doublefun(【?
】,intn)
{
/***********SPACE***********/
【?
】;
doublexa=0,s;
for(j=0;jxa+=x[j]/n;
/***********SPACE***********/
【?
】;
for(j=0;js+=(x[j]-xa)*(x[j]-xa)/n;
/***********SPACE***********/
【?
】;
}
main()
{
doublex[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};
printf("%f\n",fun(x,8));
}
答案:
=======(答案1)=======
floatx[]
=========或=========
float*x
=========或=========
doublex[]
=========或=========
double*x
=======(答案2)=======
intj
=======(答案3)=======
s=0
=========或=========
s=0.0
=======(答案4)=======
returns
=========或=========
return(s)
第10题
题目:
下列给定程序中,函数fun的功能是:
在带头结点的单向链表中,查找数据域中值
为ch的结点。
找到后通过函数值返回该结点在链表中所处的顺序号;
若不存在值为ch的结点,函数返回0值。
-------------------------------------------------------*/
#include
#include
#defineN8
typedefstructlist
{
intdata;
structlist*next;
}SLIST;
SLIST*creatlist(char*);
voidoutlist(SLIST*);
intfun(SLIST*h,charch)
{
SLIST*p;
ints=0;
p=h->next;
/***********SPACE***********/
while(p!
=【?
】)
{
s++;
if(p->data==ch)
/***********SPACE***********/
return【?
】;
else
p=p->next;
}
return0;
}
main()
{
SLIST*head;
intk;
charch;
chara[N]={'m','p','g','a','w','x','r','d'};
head=creatlist(a);
outlist(head);
printf("Enteraletter:
");
scanf("%c",&ch);
/***********SPACE***********/
k=fun(【?
】);
if(k==0)
printf("\nNotfound!
\n");
else
printf("Thesequencenumberis:
%d\n",k);
}
SLIST*creatlist(char*a)
{
SLIST*h,*p,*q;
inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;i{
q=(SLIST*)malloc(sizeof(SLIST));
q->data=a[i];
p->next=q;
p=q;
}
p->next=0;
returnh;
}
voidoutlist(SLIST*h)
{
SLIST*p;
p=h->next;
if(p==NULL)
printf("\nThelistisNULL!
\n");
else
{
printf("\nHead");
do
{
printf("->%c",p->data);
p=p->next;
}
while(p!
=NULL);
printf("->End\n");
}
}
答案:
=======(答案1)=======
NULL
=======(答案2)=======
s
=======(答案3)=======
head,ch