C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx

上传人:b****4 文档编号:6197341 上传时间:2023-05-06 格式:DOCX 页数:23 大小:22.15KB
下载 相关 举报
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第1页
第1页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第2页
第2页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第3页
第3页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第4页
第4页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第5页
第5页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第6页
第6页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第7页
第7页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第8页
第8页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第9页
第9页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第10页
第10页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第11页
第11页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第12页
第12页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第13页
第13页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第14页
第14页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第15页
第15页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第16页
第16页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第17页
第17页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第18页
第18页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第19页
第19页 / 共23页
C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx

《C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。

C语言程序设计基础上机考试一题目及参考答案Word文档格式.docx

,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;

n++;

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;

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]!

)str[n++]=str2[j++];

str[n]='

Result:

puts(str);

程序2:

main()

{charch[20],ch1[20];

inputstring1:

);

inputstring2:

gets(ch1);

sort(ch,ch1);

puts(ch);

sort(a,s)

chara[20],s[20];

inti,j,k;

for(k=0;

s[k]!

k++)

{j=0;

while(s[k]>

=a[j]&

a[j]!

)j++;

for(i=strlen(a)+k;

i>

=j;

i--)a[i+1]=a[i];

a[j]=s[k];

7.在三位整数中寻找符合条件的整数,并依次有大到小存入数组,并输出,它既是完全平方数,又是两位数字相同。

intch(i

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2