C语言程序设计基础上机考试一题目及参考答案Word文件下载.docx
- 文档编号:19168921
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:19
- 大小:23.12KB
C语言程序设计基础上机考试一题目及参考答案Word文件下载.docx
《C语言程序设计基础上机考试一题目及参考答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础上机考试一题目及参考答案Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
count=test1(a);
整数个数为:
%d\n"
count);
}
inttest1(chara[])
{inti,j,n=0;
for(i=0;
a[i]!
='
\0'
;
i++)
if(a[i]>
0'
&
a[i]<
9'
)
{for(j=i+1;
a[j]!
j++)
if(!
(a[j]>
a[j]<
))break;
n++;
i=j;
}
return(n);
#include"
#defineN100
voidtest2(charss1[N])
{inti,j,k;
for(i=0;
ss1[i]!
for(j=i+1;
ss1[j]!
if(ss1[j]==ss1[i])
{inti,j,k,n;
n=strlen(ss1);
i<
n;
j<
{for(k=j;
k<
k++)
ss1[k]=ss1[k+1];
j--;
n--;
}
ss1[k]!
{voidtest2(charss1[N]);
charss[N];
printf("
inputastring\n"
gets(ss);
test2(ss);
outputthestring\n"
%s\n"
ss);
素数:
只能被1或自身整除的整数。
判断整数n是否为素数——采用穷举法求解。
基本算法:
若m%i==0则说明m不是素数。
其中i的取值范围为:
2~m-1。
{intm,n;
inttest3(intm);
inputanumber:
m\n"
scanf("
%d"
&
m);
n=test3(m);
thefollowingnumberis%d\n"
n);
inttest3(intm)
{intt=0,i;
while(t!
=1)
{m=m+1;
i=m-1;
while(i>
1)
{if(m%i!
=0)i--;
elsebreak;
if(i==1)t=1;
/*说明m已除遍m-1至2,都除不尽,所以m是素数)*/
return(m);
#defineN10
#defineM10
voidtest4(inta[N],intb[M])
{inti,k;
N;
{k=a[i]/10;
b[k-6]++;
{inta[N],i;
intb[N]={0};
inputage:
>
60and<
160"
{scanf("
a[i]);
if(a[i]<
60||a[i]>
160){printf("
inputerror"
i--;
test4(a,b);
M;
%d<
=age<
%d:
%d\n"
(i+6)*10,(i+6+1)*10,b[i]);
inttest5(intk)
{intcount=0,sum=0;
while(count<
10)
{if(k%13==0||k%17==0)
{count++;
sum=sum+k;
k--;
return(sum);
voidmain()
{
intk,x;
输入数字k\n"
k);
x=test(k);
%d以内的最大个能被或整除的自然数之和为%d\n"
k,x);
例如,若输入Iamastudenttotaketheexamination.,则应输出"
IaMAstudenTtOtakEthEexamination."
。
#defineM100
voidtest6(chara[])
{inti;
for(i=0;
if(a[i]>
a'
&
z'
(a[i+1]=='
'
||a[i+1]=='
))a[i]=a[i]-32;
{chara[M];
pleaseinputthetext\n"
gets(a);
test6(a);
%s"
a);
/*交集就是二个数组中相同的元素。
算法是数组A每取一个元素,与数组B的所有元素相比,若相等,则将该元素存入第三个数组……*/
{inta[100],b[100],c[100];
inttext(inta[],intb[],intc[],intn1,intn2);
/*函数声明*/
intn1,n2,n3,i;
输入A组的个数:
"
n1);
输入A组的元素:
n1;
i++)scanf("
输入B组的个数:
n2);
输入B组的元素:
n2;
b[i]);
n3=text(a,b,c,n1,n2);
/*调用函数*/
交集:
n3;
printf("
%d"
c[i]);
putchar('
\n'
inttext(inta[],intb[],intc[],intn1,intn2)
i++)
for(j=0;
if(a[i]==b[j])c[n++]=a[i];
{inta[80],i,j,k,n;
voidsort(inta[],intn);
请输入数字的个数\n"
n);
scanf("
test8(a,n);
a[i]);
voidtest8(inta[],intn)
{inti,j,t;
n-1;
for(j=i+1;
if(a[i]%1000>
a[j]%1000){t=a[i];
a[i]=a[j];
a[j]=t;
elseif(a[i]%1000==a[j]%1000)
if(a[i]>
a[j]){t=a[i];
#include<
stdio.h>
string.h>
#defineN50
intSubString(charsub[],charS[],intpos,intlen)
{inti;
if(pos<
1||pos>
strlen(S)||len<
0||len>
strlen(S)-pos+1)
return-1;
len;
sub[i]=S[i+pos-1];
sub[i]='
return1;
intIndex(charS[],charT[],intpos)
{intm,n,i;
charsub[N];
if(pos>
0)
{n=strlen(S);
m=strlen(T);
i=pos;
while(i<
=n-m+1)
{SubString(sub,S,i,m);
if(strcmp(sub,T)!
=0)++i;
elsereturni;
}
return0;
}
char*test9(chars1[],chars2[],chart[])
{inti,pos;
chartemp[M];
intm,n;
chars[M]="
m=strlen(s1);
n=strlen(s2);
i=1;
pos=1;
while(pos<
=m-n+1&
i)
{i=Index(s1,s2,pos);
if(i!
=0)
{SubString(temp,s1,pos,i-pos);
strcat(s,temp);
strcat(s,t);
pos=i+n;
SubString(temp,s1,pos,m-pos+1);
//剩余串
strcat(s,temp);
returns;
{charstr1[M],str2[N],t[N]="
copy"
*str="
pleaseinputstring1\n"
gets(str1);
pleaseinputstring2\n"
gets(str2);
str=test9(str1,str2,t);
str);
inttest1(intx)
{intc,t=0;
c=x;
while(c>
0)
{t=t*10+c%10;
c=c/10;
if(t==x)
return1;
else
return0;
{inta,b=0;
pleaseinputalongint\n"
scanf("
a);
b=test1(a);
if(b==1)printf("
%8dishuiwenshu"
elseprintf("
%8disnotahuiwenshu"
C程序设计基础上机考试二
1)所有程序不准使用外部变量
3)每个程序至少包含两个函数模块
1.输入一串可能包含空格的字符串,计算该字符串中数字(整数)的个数。
{chara[100];
{for(j=i+1;
i=j;
2.删除字符串中的数字字符
/*算法:
对字符串中的每个元素进行判断是否为数字,若是,则将下一个字符移到该字符处,字符串长度-1,……*/
voidfun(ch)
charch[30];
inti,j,len=0;
len=strlen(ch);
len);
{if(ch[i]>
'
ch[i]<
{for(j=i;
len-1;
{ch[j]=ch[j+1];
len--;
i=i-1;
ch[len]='
{charch[30];
inti;
gets(ch);
fun(ch);
删除后的数据:
ch);
getch();
3.计算并输出high以内最大的10个素数之和。
conio.h>
math.h>
intfun(inth)
{intsum=0,n=0,j,yes;
while(h>
=2&
n<
10)
{yes=1;
for(j=2;
=h/2;
j++)
if(h%j==0)
{yes=0;
continue;
if(yes)
{sum+=h;
n++;
h--;
}return(sum);
main()
{inthigh;
inputhigh"
high);
high);
fun(high));
4.已知A,B是两个整数集合,将A中和B相同的数据删除,并输出删除后的集合。
inttext(inta[],intb[],intc[],intn1,intn2);
n3=text(a,b,c,n1,n2);
inttext(inta[],intb[],intc[],intn1,intn2)
if(a[i]==b[j])break;
c[n++]=a[i];
5.计算字符串s中含有字符串t的数目,并输出。
intcount(charstr[],charsubstr[])
{intI,j,k,num=0;
for(I=0;
str[I]!
I++)
for(j=I,k=0;
substr[k]==str[j];
k++,j++)
if(substr[k+1]=='
\*说明主串字符与子串相同*\
{num++;
break;
return(num);
{chars[80],t[80];
intn;
gets(s);
gets(t);
count(s,t));
6.编程实现:
程序1:
sort(string2)
charstring2[80];
{chart;
inti,j,n;
n=strlen(string2);
for(i=0;
i<
i++)/*冒泡法排序*/
for(j=0;
j<
n-1-i;
j++)
if(string2[j]>
string2[j+1])
{t=string2[j];
string2[j]=string2[j+1];
string2[j+1]=t;
{charstr1[80],str2[80],str[80];
printf("
Enterstring1:
gets(str1);
Enterstring2:
gets(str2);
sort(str2);
n=0;
for(i=0,j=0;
str1[i]!
str2[j]!
)
if(str1[i]<
str2[j])str[n++]=str1[i++];
elsestr[n++]=str2[j++];
while(str1[i]!
)str[n++]=str1[i++];
while(str2[j]!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基础 上机 考试 题目 参考答案