wordpptexecl.docx
《wordpptexecl.docx》由会员分享,可在线阅读,更多相关《wordpptexecl.docx(19页珍藏版)》请在冰豆网上搜索。
wordpptexecl
一、程序阅读题
1.执行如图所示的流程图,如果输入的N,a1,a2,....,aN的值分别为10,10,20,30,80,70,60,50,90,10,90,则输出A+B的值为【1】。
2.若从键盘输入58,则下面程序执行后的输出结果是【2】。
#include
intmain()
{
inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
return0;
}
3.下面程序执行后的输出结果是【3】。
#include
intmain()
{
inta=16,b=18,m=0;
switch(a%2)
{
case0:
m++;
case1:
m++;
switch(b%3)
{
case0:
m++;
case1:
m++;break;
default:
m++;
}
}
printf("%d\n",m);
return0;
}
4.下面程序执行后的输出结果是【4】。
#include
intmain()
{
intn[2],i,j,k;
for(i=0;i<2;i++)
n[i]=0;
k=2;
for(i=0;ifor(j=0;jn[j]=n[j]+1;
printf("%d%d\n",n[0],n[1]);
return0;
}
5.有如下定义和赋值,chars[20]="upc\0718c++\0\ncpu";,则执行strlen(s)求出的字符串长度为【5】。
6.下面程序执行后的输出结果是【6】。
#include
voidswap(char*x,char*y)
{
chart;
t=*x;
*x=*y;
*y=t;
}
intmain()
{
chars1[]="abc",s2[]="123";
swap(s1,s2);
printf("%s,%s\n",s1,s2);
return0;
}
7.下面程序执行后的输出结果是【7】。
#include
intfun(intx[],intn)
{
staticintsum=0,i;
for(i=0;ireturnsum;
}
intmain()
{
inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4);
printf("%d\n",s);
return0;
}
8.下面的程序中函数fun的功能是:
在带有头结点的单向链表中,查找数据域中值为ch的结点。
找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。
请在相应的位置填上适当的代码。
#include
#include
#defineN8
typedefstructlist
{
intdata;
structlist*next;
}SLIST;
SLIST*creatlist(char*);
voidoutlist(SLIST*);
intfun(SLIST*h,charch)
{
SLIST*p;intn=0;
p=h->next;
/**********found**********/
while(【8】)
{n++;
/**********found**********/
if(p->data==ch)return【9】;
elsep=p->next;
}
return0;
}
intmain()
{
SLIST*head;intk;charch;
chara[N]={'m','p','g','a','w','x','r','d'};
head=creatlist(a);
outlist(head);
printf("Enteraletter:
");
scanf("%c",&ch);
/**********found**********/
k=fun(【10】);
if(k==0)printf("\nNotfound!
\n");
elseprintf("Thesequencenumberis:
%d\n",k);
return0;
}
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");
}
}
二、程序改错题(请修改并且只能修改/************found************/的下一行)
1.给定程序中,函数fun的功能是:
计算正整数num的各位上的数字之积,例如,若输入:
252,则输出应该是:
20。
若输入:
202,则输出应该是:
0。
#include
intfun(intnum)
{
/************found************【1】/
intk;
do
{k*=num%10;
/************found************【2】/
num\=10;
}while(num);
return(k);
}
intmain()
{
intn;
printf("Pleaseenteranumber:
");
/************found************【3】/
scanf("%d",n);
printf("\n%d\n",fun(n));
return0;
}
2.给定程序中函数fun的功能是:
将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。
例如,当s所指字符串为:
"ABCD"时,则t所指字符串中的内容应为:
"ABCDDCBA"。
#include
#include
/************found************【4】/
voidfun(chars,chart)
{
inti,d;
d=strlen(s);
for(i=0;it[i]=s[i];
for(i=0;i/************found************【5】/
t[d+i]=s[d-i];
/************found************【6】/
t[2*d-1]='\0';
}
intmain()
{
chars[100],t[100];
printf("\nPleaseenterstringS:
");
scanf("%s",s);
fun(s,t);
printf("\nTheresultis:
%s\n",t);
return0;
}
3.给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
#include
voidfun(char*s,inta,doublef)
{
FILE*fp;
charch;
fp=fopen("file1.txt","w");
fprintf(fp,"%s%d%f\n",s,a,f);
fclose(fp);
/**********found**********【7】/
fp=fopen("file1.txt","w");
while(!
feof(fp))
{
fscanf(fp,"%c",&ch);
putchar(ch);
}
/**********found**********【8】/
free(fp);
}
intmain()
{
chara[10]="Hello!
";
intb=12345;
doublec=98.76;
fun(a,b,c);
return0;
}
4.给定程序中函数fun的功能是:
从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。
例如,当s中的数为:
7654321是,t中的数为7531。
#include
/************found************【9】/
voidfun(ints,intt)
{
intsl=10;
*t=s%10;
while(s>0)
{s=s/100;
*t=s%10*sl+*t;
/************found************【10】/
sl=sl*100;
}
}
intmain()
{
ints,t;
printf("\nPleaseenters:
");
scanf("%d",&s);
fun(s,&t);
printf("Theresultis:
%d\n",t);
return0;
}
三、程序设计题(每题10分,共60分)
1.在黄岛校园里,没有自行车上课办事会很不方便。
但实际上,并非去办任何事情都是骑车快。
因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。
假设找到自行车,开锁并骑上自行车的时间为27秒,停车锁车的时间为33秒;步行每秒行走1.2米,骑车每秒行走3.0米。
请判断走不同的距离去办事,是骑车快还是走路快。
输入
一个整数,表示一次办事要行走的距离,单位为米。
输出
如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。
样例输入
50
样例输出
Walk
2.今年以来校内的讲座很多,如果是励志类的,逸夫楼学术报告厅会爆满;其他讲座,如果采取自愿听的话,估计没有多少学生去。
为了保证上座率,某辅导员每次都让学生在编号从1到30当中抓阄,凡是抓到的编号末尾数字为1、3、5的学生就要去听讲座。
现给出部分学生的抓到编号,请依次判断每个学生是否参加了听讲座?
输入
输入有多行,第一行是一个整数n(n≤30),表示评教学生的个数。
接下来n行每行一个整数,表示学生抓到的编号。
输出
输出有n行,每行为对应学生是否参加了听讲座,如果参加了,输出“YES”,否则输出“NO”。
样例输入
3
26
14
3
样例输出
NO
NO
YES
提示:
输出的YES和NO必须都是大写形式。
3.在表格内填写日期时常按yyyy-mm-dd格式输入(yyyy、mm、dd均为整数,且1900≤yyyy≤2099),请根据年份,编写fun函数,验证输入的日期是否是有效日期。
输入
第一行为数字n,余下n行每行为一个yyyy-mm-dd格式的字符串。
输出
输出为n行,对应每行日期,如果日期为有效日期,输出VALID,否则输出INVALID。
样例输入
2
1995-02-29
2036-06-24
样例输出
INVALID
VALID
提示请勿改动主函数main和其它函数中的任何内容,仅完成fun函数的编写。
#include
intLoop(intyear)//此函数功能为判断year是否为闰年
{
if((year%4==0&&year%100!
=0)||(year%400==0))
return1;
else
return0;
}
//在此处编写函数fun
intmain()
{
intyyyy,mm,dd,flag;
scanf("%d-%d-%d",&yyyy,&mm,&dd);
flag=fun(yyyy,mm,dd);
if(flag)
{
printf("VALID\n");
}
else
{
printf("INVALID\n");
}
return0;
}
4.输入一个长度不超过100的字符串,删除串中的重复字符。
输入
输入要检查的字符串,长度不超过100个字符。
输出
按照原来的顺序输出删除重复字符后的字符串。
样例输入
abacaeedabcdcd
样例输出
abced
提示请勿改动主函数main和其它函数中的任何内容,仅完成fun函数的编写。
#include
//请在此处完成fun函数的编写
intmain()
{
chars[100];
gets(s);
fun(s);
puts(s);
return0;
}
5.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:
把分数低于平均分的学生数据放在b所指的数组中,函数返回低于平均分的学生人数。
提示请勿改动主函数main和其它函数中的任何内容,仅完成fun函数的编写。
#include
#defineN16
typedefstruct
{
charnum[10];//存放学号
intscore;//存放成绩
}STREC;
//请在此位置完成fun函数编写
intmain()
{
STRECs[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},
{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",91},{"GA017",64},{"GA018",64},{"GA016",72}
};
STRECh[N];
inti,n;
n=fun(s,h);
for(i=0;iprintf("%s%4d\n",h[i].num,h[i].score);
return0;
}
6.将数字1~9分成3个三位数,要求第2个三位数是第1个三位数的两倍,第3个三位数是第1个的三倍。
即假定m为第1个三位数,则第2个恰好为2*m,第3个为3*m,请输出这几个三位数。
输入
第一个三位数的百位数
输出
满足题目条件的所有三位数
得分
一、程序阅读题
1.100
2.585858
3.4
4.22
5.8
6.1bc,a23
7.60
8.p或p!
=0或p!
=NULL
9.n
10.head,ch
得分
二、程序改错题
1.intk=1;
2.num/=10;
3.scanf("%d",&n);
4.voidfun(char*s,char*t)
5.t[d+i]=s[d-i-1];
6.t[2*d]='\0';
7.fp=fopen("file1.txt","r");
8.fclose(fp);
9.voidfun(ints,int*t)
10.sl=sl*10;
得分
三、程序设计题
1.
#include
intmain()
{
inti,n,m[31],a;
scanf("%d",&n);
for(i=0;iscanf("%d",&m[i]);
for(i=0;i{
a=m[i]%10;
if(a==1||a==3||a==5)
printf("YES\n");
else
printf("NO\n");
}
return0;
}
2.
#include
intmain()
{
doubledistance,time1,time2;
scanf(“%lf”,&distance);
time1=27+33+distance/1.2;
time2=distance/3.0;
if(time1printf(“Bike\n”);
elseif(time1>time2)
printf(“Walk\n”);
else
printf(“All\n”);
return0;
}
3.4.
intfun(inty,intm,intd)
{
intflag=0;
if(y<1900||y>2099||m<1||m>12||d<0||d>31)
return0;
else
{
switch(m)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
if(d>=1&&d<=31)
flag=1;
break;
case2:
if(Loop(y)==0&&d<=1&&d>=28)
flag=1;
elseif(Loop(y)&&d<=1&&d>=29)
flag=1;
break;
default:
if(d<=1&&d>=30)
flag=1;
}
}
if(flag)
return1;
elsereturn0;
}
include
voidfun(chars1[100])
{
chars2[100]={0};
inti,j;
s2[0]=s1[0];
for(j=1;s1[j]!
=0;j++)
{
for(i=0;s2[i]!
=0;i++)
if(s1[j]==s2[i])
break;
if(s2[i]==0)
s2[i]=s1[j];
}
strcpy(s1,s2);
}
intfun(STRECs[N],STRECh[N])
{
inti,j;
doubleave=0;
for(i=0;iave+=s[i].score;
ave/=N;
for(i=0,j=0;iif(s[i].score{
h[j]=s[i];
j++;
}
returnj;
}
5.6.