c语言上机考试模拟题.docx

上传人:b****3 文档编号:3508032 上传时间:2022-11-23 格式:DOCX 页数:33 大小:25.90KB
下载 相关 举报
c语言上机考试模拟题.docx_第1页
第1页 / 共33页
c语言上机考试模拟题.docx_第2页
第2页 / 共33页
c语言上机考试模拟题.docx_第3页
第3页 / 共33页
c语言上机考试模拟题.docx_第4页
第4页 / 共33页
c语言上机考试模拟题.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

c语言上机考试模拟题.docx

《c语言上机考试模拟题.docx》由会员分享,可在线阅读,更多相关《c语言上机考试模拟题.docx(33页珍藏版)》请在冰豆网上搜索。

c语言上机考试模拟题.docx

c语言上机考试模拟题

一.1.完成程序填空,实现输入一行字符,分别统计出其中的英文字母、空格、数字和

其他字符的数。

(P40/P91)

2.程序填空,实现找出1000之内的所有完数,并按如图所示格式输出其因子。

一个数如果恰好等于它的公约数之和,这个数就称为"完数"。

例如6=1+2+3。

6就是一个完数。

(P55)

3.完成程序填空,实现编程输出以下图案。

(P92)

*****

*****

*****

*****

*****

4.输出9*9口诀。

(P53)

5.编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出。

例如:

原来存顺序为8,6,5,4,1。

要求改为:

1,4,5,6,8。

#include"stdio.h"

#defineN5

voidmain()

{voidfun(intarr[],intn);

inta[N]={8,6,5,4,1},i;

for(i=0;i

printf("%2d",a[i]);

printf("\n");

fun(a,N);

for(i=0;i

printf("%2d",a[i]);

}

voidfun(intarr[],intn)

{inti,t;

for(i=0;i

{t=arr[i];

arr[i]=arr[n-1-i];

arr[n-1-i]=t;

}

}

6.功能:

编写程序,求矩阵(3行3列)与2的乘积

例如:

输入下面的矩阵:

100200300

400500600

700800900

程序输出:

200400600

80010001200

140016001800

#include"stdio.h"

voidfun(intarray[3][3])

{/**********Program**********/

inti,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

array[i][j]=array[i][j]*2;

/**********End**********/

}

voidmain()

{inti,j;

intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

printf("%7d",array[i][j]);

printf("\n");

}

fun(array);

printf("Convertedarray:

\n");

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

printf("%7d",array[i][j]);

printf("\n");

}

}

7.功能:

请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。

二维数组中的数已在主函数中赋予。

#include

#include

#defineM3

#defineN4

voidfun(inttt[M][N],intpp[N])

{/**********Program**********/

inti,j;

for(j=0;j

{pp[j]=tt[0][j];

for(i=0;i

if(tt[i][j]

/**********End**********/

}

voidmain()

{intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}};

intp[N],i,j,k;

printf("Theoriginaldatais:

\n");

for(i=0;i

{for(j=0;j

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

printf("\nTheresultis:

\n");

for(k=0;k

printf("%4d",p[k]);

printf("\n");

}

8.根据整型形参m,计算如下公式的值:

y=1/2+1/4+

1/6+...+1/2m。

例如:

若m=9,则应输出:

1.414484

#include"stdio.h"

doublefun(intn)

{/**********Program**********/

doubley=0;

inti;

for(i=1;i<=n;i++)

{y+=1.0/(2*i);}

或者

for(i=2;i<=2*n;i+=2)

y+=1.0/i;

return(y)/**********End**********/

}

voidmain()

{intm;

printf("Enterm:

\n");

scanf("%d",&m);

printf("Theresultis%f\n",fun(m));

}

二.1.完成程序填空,实现的功能是输出如下形式的方阵:

(P57)

13141516

9101112

5678

1234

2.完成程序填空,实现输入4个整数,要求按由小到大的顺序输出。

(P33)

3.完成程序填空,输出所有的水仙花数。

(P41)(P116)

4.将a++或++a或a--或--a填入程序填空中,实现如图所示的输出。

(填入其他无效)

#include

main()

{inti,a;

i=1;

a=i++;

/***********SPACE***********/

printf("a=%d,i=%d\n",a++,i++);

printf("a=%d,i=%d\n",a,i);

printf("a=%d,i=%d\n",++a,++i);

printf("a=%d,i=%d\n",a,i);

/***********SPACE***********/

printf("a=%d,i=%d\n",a--,i--);

/***********SPACE***********/

printf("a=%d,i=%d\n",--a,--i);

printf("a=%d,i=%d\n",a,i);

}

5.编写函数求3!

+6!

+9!

+12!

+15+18!

+21!

#include"stdio.h"

floatsum(intn)

{/**********Program**********/

inti,j;

floatt,s=0;

for(i=3;i<=n;i=i+3)

{t=1;

for(j=1;j<=i;j++)

t=t*j;

s=s+t;

}

return(s);/**********End**********/

}

voidmain()

{printf("thissum=%e\n",sum(21));}

%e格式默认输出有效数字7位,1位是整数,6位小数,指数3位(不足3位时填0)。

结果5.109734e+019

6.判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。

#include"stdio.h"

#include"conio.h"

intfun(intw)

{/**********Program**********/

intk,s=0;

do

{s+=(w%10)*(w%10);

w=w/10;

}while(w!

=0);

if(s%5==0)k=1;

elsek=0;

return(k);/**********End**********/

}

voidmain()

{intm;

printf("Enterm:

\n");

scanf("%d",&m);

printf("Theresultis%d\n",fun(m));

}

7.功能:

对任意输入的x,用下式计算并输出y的值。

5x<10

y=0x=10

-5x>10

8.功能:

编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字。

例如:

3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。

三、1.实现输入两个数a、b,判断如果a

按照先a后b的顺序输出即可。

2.完成程序填空,实现用冒泡排序法对从键盘输入的10个整型数据进行由小到大排序。

(P74)

3.完成程序填空,实现求s=1+3+5+……+99(P39)

4.实现求1+1/3+1/5+...之和,直到某一项的值小于10的-6次方时停止累加。

#include

intmain()

{longn;

floats;

s=0;

n=1;

/***********SPACE***********/

while(1.0/n>=1e-6)

{s=s+1.0/n;

/***********SPACE***********/

n=n+2;}

printf("s=%f\n",s);

printf("n=%d\n",n-2);

return0;

}

5.编写函数求1~100中奇数的平方和。

结果为166650。

#include"stdio.h"

floatsum(intn)

{/**********Program**********/

floats=0;

inti;

for(i=1;i<=n;i=i+2)

s=s+i*i;

return(s);/**********End**********/

}

voidmain()

{printf("sum=%.0f\n",sum(100));}

6.求一批数中小于平均值的数的个数。

#include

intaverage_num(inta[],intn)

{/**********Program**********/

inti,k=0,sum=0;

floataverage;

for(i=0;i

sum=sum+a[i];

average=sum*1.0/n;

for(i=0;i

if(average>a[i])k++;

return(k);/**********End**********/

}

voidmain()

{intn,a[100],i,num;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

num=average_num(a,n);

printf("thenumis:

%d\n",num);

}

7.对某一正数的值保留2位小数,并对第三位进行四舍五入。

#include"stdio.h"

#include"conio.h"

floatfun(floath)

{/**********Program**********/

inti;

i=(int)(h*1000)%10;

if(i>=5)

return(int)(h*100+1)/100.0;

else

return(int)(h*100)/100.0;/**********End**********/

}

voidmain()

{floatm;

printf("Enterm:

\n");

scanf("%f",&m);

printf("\nTheresultis%8.2f\n",fun(m));

}

四、1.完成程序填空,实现以下功能:

一个小球从100米高度自由下落,每次落地后反跳回原来高度的一半,再下落,求它在第十次下落时,共经过多少米,第十次反弹多高?

(P43)

2.完成程序填空,使得程序执行如图所示:

(P13)

#include

main()

{inti,a,b;

floatx,y,z;

i=1;

/***********SPACE***********/

x=++i;

/***********SPACE***********/

printf("x=%f\ni=%d\n",x,i);

y=30.1234567;

z=x+y;

printf("z=%f\n",z);

printf("z=%4.2f\n",z);

/***********SPACE***********/

printf("z=%6.2f\n",z);

printf("z=%15.8f\n",z);

printf("z=%e\n",x+y);

}

3.完成填空,实现运行程序如图所示。

(P13)

#include

main()

{chara,b,c;

/***********SPACE***********/

a=66;//a='B'

b='O';

c='Y';

putchar(a);

/***********SPACE***********/

putchar(b);

putchar(c);

/***********SPACE***********/

putchar('\n');//printf("\n")

}

4.实现输出所有的水仙花数,所谓水仙花数是一个3位数,其各位数字的立方和等于该数本身。

例如153=13+53+33,故153是一个水仙花数。

(P116)

5.功能:

计算并输出给定整数n的所有因子之和(不包括1与自身)。

(假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。

)注意:

n的值不大于1000。

例如:

n的值为855时,应输出704。

#include"stdio.h"

intfun(intn)

{

ints=0,i;

for(i=2;i

if(n%i==0)s=s+i;

returns;

}

main()

{printf("s=%d\n",fun(855));}

五、1.完成程序填空,实现输出以下图案:

(P69/P49)

*

***

*****

*******

2.完成程序填空实现输入三个数,按代数值由大到小输出。

3.完成程序填空,实现打印下列的图形(P70)

123456789

23456789

3456789

456789

56789

6789

789

89

9

4.完成程序填空,实现输入两个数字,若两数相等,则直接输出两个数字,若不相等,

则这两个数中的较大者等于这个较大者减去较小者,再作比较,若不相等则重复上述操作,

直到两个数字相等为止。

输出相等的两个数字。

#include

intmain()

{inta,b;

printf("Entera,b:

");

scanf("%d,%d",&a,&b);

/***********SPACE***********/

while(a!

=b)

/***********SPACE***********/

{if(a>b)

a=a-b;

/***********SPACE***********/

if(b>a)

b=b-a;

}

printf("%3d%3d\n",a,b);

return0;

}

5.功能:

能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。

(n是偶数)

#include"stdio.h"

intfun(intn)

{/**********Program**********/

intsum=0,i;

for(i=2;i<=n;i=i+2)

sum+=i*i;

return(sum);/**********End**********/

}

voidmain()

{intm;

printf("Enterm:

");

scanf("%d",&m);

printf("\nTheresultis%d\n",fun(m));

}

6.从键盘上输入任意实数,求出其所对应的函数值。

z=e的x次幂(x>10)

z=log(x+3)(x>-3)

z=sin(x)/((cos(x)+4)

#include

#include

doubley(floatx)

{/**********Program**********/

doublez;

if(x>10)z=exp(x);

elseif(x>-3)z=log(x+3);

elsez=sin(x)/(cos(x)+4);

return(z);

/**********End**********/

}

voidmain()

{floatx;

scanf("%f",&x);

printf("y=%f\n",y(x));

}

7.编写函数fun(str,i,n),从字符串str中删除第i个字符开始的连续n个字符(注意:

str[0]代表字符串的第一个字符)。

(P123)

8功能:

根据整型形参m,计算如下公式的值:

y=sin(m)*10。

例如:

若m=9,则应输出:

4.121185

#include"stdio.h"

#include"math.h"

doublefun(intm)

{/**********Program**********/

doubley=0;

y+=sin(m)*10;

returny;

/**********End**********/

}

voidmain()

{intn;

printf("Entern:

");

scanf("%d",&n);

printf("\nTheresultis%1f\n",fun(n));

}

六、1.程序填空,实现求两数最小公倍数(P27)

2.有一个已排好的数组,完成程序填空,实现要求输入一个数后,按原来排序的规律将它插入到数组中。

#include

#defineN10

intmain()

{inta[N+1]={-73,-67,-54,0,32,84,86,90,234,312};

intnum,i,left,right,mid,find=0;//find=0,未找到;find=1,找到。

left=0;right=N-1;

printf("pleaseinput:

");

scanf("%d",&num);

/***********SPACE***********/

while(find【?

】/==0&&left<=right)

{mid=(left+right)/2;

if(num>a[mid])

left=mid+1;

elseif(num

right=mid-1;

elsefind=1;

}

if(find==1)

{for(i=N-1;i>=mid;i--)

/***********SPACE***********/

a[i+1]=【?

】/a[i];

a[mid]=num;}

else

/***********SPACE***********/

{for(i=N-1;i>=left;【?

】/i--)

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

a[left]=num;}

printf("afterinsert,thearrayis:

\n");

for(i=0;i

printf("%4d",a[i]);

printf("\n");

return0;

}

3.将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成A、X变成B、Y变成C、Z变成D。

小写字母的转换规则同样。

#include

main()

{charc;

/***********SPACE***********/

while((c=【?

】/getchar())!

='\n')

{/***********SPACE***********/

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))【?

】/c=c+4;

/***********SPACE***********/

if((c>'Z'【?

】/&&c<='Z'+4)||c>'z')c-=26;

printf("%c",c);

}

}

4.完成程序填空,输出如下数阵:

1

121

12321

1234321

123454321

5.能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。

(n是偶数)

6.功能:

请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。

二维数组中的数已在主函数中赋予。

#include

#include

#defineM3

#defineN4

voidfun(inttt[M][N],intpp[N])

{/**********Program**********/

inti,j;

for(j=0;j

{pp[j]=tt[0][j];

for(i=1;i

if(tt[i][j]

pp[j]=tt[i][j];

}

/**********End**********/

}

voidmain()

{

intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}};

intp[N],i,j,k;

printf("Theoriginaldatais:

\n");

for(i=0;i

{

for(j=0;j

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

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1