‘壹’ 华北水利水电学院c语言重修考试试题什么题型
一、写运行结果
1. main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2;
printf("%d\n", *p + *q);
}
执行结果是 10 。
2. 下面程序段的执行结果是( 9.5 )。
#define PT 5.5
#define S(x) PT*x*x
main( )
{ int a=1,b=2;
printf(“%4.1f\n”,S(a+b))
}
3. main()
{ int a=0,i;
for(i=0;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
printf("%d\n",a);
}
执行结果是 41 。
4. main( )
{ char *p[10]={“abc”, “aabdfg”, “dcdbe”, “abbd”, “cd”};
printf(“%d\n”,strlen(p[4]));
}
执行结果是 2 。
5. main()
{ int i=0,x=0;
for (;;)
{ if(i==3||i==5) continue;
if (i==6) break;
i++; s+=i;
};
printf("%d\n",s); }
执行结果是 8 。
6. main()
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是 b , b
7. int f()
{ static int i=0;
Int s=1;
s+=i;
i++;
return s;
}
main()
{ int i,a=0;
for(i=0;i<5;i++) a+=f();
printf("%d\n",a);
}
程序运行后的输出结果是 15
8. int d=1l;
fun (int p)
{ int d=5;
d+=p++;
printf("%d,",d); }
main()
{int a=3;
fun(a);
d+=a++;
printf("%d\n",d); }
输出结果为:___8, 4_
9. main()
{int x=3,y=6,a=0;
while(x++!=(y-=1))
{a+=1;
if(y<x) break;
}
printf(“x=%d,y=%d,a=%d\n”,x,y,a);}
输出结果为:___5, 4, 1 _____
10. int fun(int x,int y,int *cp,int *dp)
{ *cp=x+y; *dp=x-y; }
main()
{int a, b, c, d;
a=30; b=50;
fun(a,b,&c,&d);
printf("%d,%d\n", c, d);
}
输出结果是_80, -20_____。
二、完善程序
1、以下函数的功能是计算s=1+1/2!+1/3!+……+1/n!,请填空。
double fun(int n)
{double s=0.0,fac;
int i;
fac=1.0 ;
for(i=1;i<=n;i++)
{fac= fac*i ;
s=s+1/fac;
}
return s ;
}
2、顺序输出50——100之间的素数。
#include”stdio.h”
#include”math.h”
main()
{int j=0,n,k,i,flag;
for( n=51; n<100;n=n+2)
{k=sqrt((double)n); i=2; flag=0;
while( i<=k )&&(flag==0))
{if(n%i==0) flag=1
i=i+1;}
if ( flag==0 )
{j=j+1;printf(“%d”,n);}
}
}
3 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。
请填空。
main()
{ int i,a[20],sum,count;
__ int sum=0,count=o;___
for(i=0;i<20;i++) scanf("%d", _&a[i]_ ___ );
for(i=0;i<20;i++)
{ if(a>0)
{ count++;
sum+= _a[i] ____ ;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
4. 以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空
int isprime(int a)
{ int i;
for(i=2;i<=a/2;i++)
if(a%i==0) _return 0_ ___;
_return 1 ___;
}
5通过函数求f(x)的累加和,其中f(x)=x2+1
main()
{
printf("The sum=%d\n",SunFun(10));
}
SunFun(int n)
{
int x,s=0;
for(x=0;x<=n;x++) s+=F(__x______);
return s;
}
F( int x)
{ return _(x*x+1)______;}
6. 以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。
main()
{ int i,j;
for(i=0;__i<=9__;i++)
{ j=i*10+6;
if(_j%3!=0____) continue;
printf(“%d ”,j);
}
}
7.下面的程序是对一维数组的10个元素中的前5个元素与后5个元素对换,即a(0) 与a(9)互换,a(1)与a(8)互换,…, 填空将程序补充完整。
#include "stdio.h"
void main()
{ int a[10], i,t;
printf("Input the data:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;_____i<=4____;i++)
{t=a[i];___a[i]=a[9-i]_________;____⑨a[9-i]=t_______;}
for(i=0; i<10; i++)
printf("%6d",a[i]);
}
三、编程题
1. 编程实现从键盘上输入10个整数,排序(从小到大)后输出。
#include<stdio.h>
void main()
{
int a[11];
int i,j,temp;
printf("please in put ten numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("结果是:\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
}
2. 编制一个C程序,求 (即求1+1/2!+1/3!+…+1/20!)
#include<stdio.h>
void main()
{
int n,i,j;
float sum=0,l=1.0;
scanf("%d",&n);
for( i=1;i<=20;i++)
{
l=1.0;
for( j=1;j<=i;j++)
{
l=l*j;
}
sum+=1.0/l;
}
printf("%f",sum);
}
3. 编写函数判断数n是否是素数,在主函数中调用该函数输出200到300之间的所有素数.
(1)。#include<stdio.h>
#include<math.h>
int isprime(int n)
{
int w,k,i;
k=sqrt(n),w=1;
for(i=2;i<sqrt(n)&&w==1;i++)
if(n%i==0) w=0;
return w;
}
void main()
{
int n,i;
for(n=200,i=0;n<=300;n++)
{
if(isprime(n))
{
printf("%4d",n);
i++;
if(i%10==0)
printf("\n");
}
}
}
(2)#include<stdio.h>
#include<math.h>
int prime(int n)
{
int m,i=2,t;
t=(int)sqrt(n)
for(;i<=t;i++)
if(n%i==0)/
{
m=0;
break;
}
if(i>t)
m=1;
else continue;
return m;
}
void main()
{
int n;
int i;
printf("请输入你要判断的数!\n");
scanf("%d",&n);
if(prime(n))
printf("是素数!\n");
else
printf("不是素数!\n");
printf("输出200-300之间的素数:\n");
for(i=200;i<=300;i++)
{
if(prime(i))/*利用已经写好的函数判断i是否是素数!如果函数返回1证明是素数则输出!否则(即运行到else)continue;*/
printf("%-4d",i);
else continue;
}
printf("\n");
}
4. 从键盘输入两个正整数,求其最大公约数并输出结果。(要求主函数实现数据输入、输出以及调用;另外再写一个函数求最大公约数,并用主函数调用)。
#include<stdio.h>
int f(int a,int b)
{
int y;
y=a%b;
return(y);
}
int g(int num1,int num2)
{
int h,a;
h=num1*num2/a;
return(h);
}
void main()
{
int num1,num2,a,b,temp;
printf("please input two number:\n");
scanf("%d%d",&num1,&num2);
if(num1>num2)
{
temp=num1;num1=num2;num2=temp;
}
a=num1;b=num2;
while(b!=0)
{temp=f(a,b);a=b;b=temp;}
printf("最大公约数:%d\n",a);
printf("最小公倍数:%d\n",g(num1,num2));
}
你在哪个考场,祝你明天好运!