院级比赛题目

一、单项选择题(每题2分,共20分)

1.为避免if~else语句的二义性,C语言规定else总是和   B   匹配。

(A) 在同一行上的if                        (B)在其之前最近的未配对的if

(C) 缩进位置相同的if                    (D) 在其之前最近的if

2. 有以下程序段C

   int k=0;

while(k=1) k++;

那么,while循环执行的次数是:

(A) 无限次                                        (B)有语法错误,不能执行

(C) 一次也不执行                        (D) 执行1

3. C语言中,要求运算数必须是整型的运算符是:B

(A)  /                     (B)                  (C)                  (D)  >

4.若有定义:char arr[]=”China”,则数组arr所占的空间为:C

(A) 4个字节         (B)5个字节      (C) 6个字节       (D) 7个字节

5.若有以下定义char a,int b,float c,double d, 则表达式a*b+d-c值的类型为:D

(A)  float             (B)int                  (C) char               (D) double

6若有以下定义,则数值不为3的表达式是________           

int x[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p1;

(A)  x[3]                                         (B)  p1 = x + 3, *p1++

(C)  p1 = x + 2, *(p1++)                   (D)   p1 = x + 2, *++p1

7在一个C语言源程序中,必须有main函数,它的位置________

      (A) 必须在整个源程序最开始    (B) 可以用其它函数代替  

 (C) 可以在任何位置            (D) 必须在整个源程序最后

8若有说明语句:int a[ ][3]={1,2,3,4,5,6,7,8,9}; a数组的行数为________

 (A) 不确定       (B) 1                 (C) 2               (D) 3

9以下不能正确定义二维数组的选项是________

(A) int a[2][2]={{4}{5}}      (B) int a[][2]={4567}

(C) int a[2][2]={{4}56}     (D) int a[2][]={{45}{67}}

10函数的功能是交换xy值,且通过正确调用返回交换结果,不能正确执行此功能的函数是________

(A)  fa(int *x,int *y)               

{int a,*p=a; *p=*x;*x=*y;*y=*p;}    

(B)  fb(int x,int y)

   {int t;t=x;x=y;y=t;}

(C)  fc(int *x,int *y)          

{intp;p=*x;*x=*y;*y=p;}        

   (D)  fd(int *x,int *y)

          {*x=*x+*y;*y=*x-*y;*x=*x-*y;}

 

二、完成下面程序(每空3分,共24分)

1、输入一个整数,将其插入到非递增数组中,使数组仍保持有序。

#define N 11

#include "stdio.h"

main( )

{ int arr[N],x,j,k;

printf("\nplease enter the array(%d): ",N-1);

for(j=0;j<N-1;j++)

scanf("%d",&arr[j]);

  printf("please enter the number: ");

  scanf("%d",&x);    

for(       ;       ;       ); 

for(     ;   ;      ) 

            ;  

              ;   

 printf("the array is:\n ");

 for(j=0;j<N;j++)printf("%4d",arr[j]);

}

2、用公式π/4=1-1/3+1/5-1/7+….π的近似值,直到最后一项的绝对值小于10-6为止。

main( )

{  int j, s=1;

float pi=0k;

k=1;

  for(j=1;      ;j++)

{ pi=        ;

     s=         ;

     k=         ;

}

  printf("%f",pi);

}

三、编程题

1.编写一个程序,判断从键盘输入的一个数是否是素数。(10分)

2.编程计算下式的值1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+4+...+n)。(10分)

3.已知Fibomacci数列的计算公式为:

fib(n)=1                   n=1n=2时;

fib(n)=fib(n-1)+fib(n-2)     n>=3时。

请用递归的方法求这个数列的第n项。其中n由键盘输入。(10分)

4.求所有这样的三位整数:它的2倍、3倍还是三位整数,且这三个三位数使用19之间不同的数字。例如:n1922n3843n576。(12分)

5.  编写一个函数fun,实现功能如下:把一个数中的偶数提出,并且将这些偶数顺序输出。(14分)

1//**************************************************************************************************

#include<iostream.h>
#include<conio.h>
#include<math.h>
int main()
{
   int n;
   double k;
   cout<<"Please intput a digital:";
   while(cin>>n)
   {
      k=sqrt(n);
      int i;

	  for( i=2;i<=k;i++)
	  {
	     if(n%i==0)
			 break;
	        
	  }
       

	  if(i<=k)
		  cout<<n<<"不是素数!"<<endl;

	  else
		  cout<<n<<"是素数."<<endl;
      cout<<"Please intput a digital:";
   
   }

getch();
return 0;


}


 

*******************************************************************************************************************************************

2

#include<iostream.h>
#include<conio.h>
int main()
{
   int n,sum=0,s=0;

   cout<<"Please intput a digital:";
   while(cin>>n)
   {
    sum=0;
      while(n)
   {

           s=0;
      for(int i=1;i<=n;i++)
        s=s+i;
      
   sum=sum+s;
  
     n--;
   }
       
   cout<<"The result is:"<<sum<<endl;
   
      cout<<"Please intput a digital:";
   
   
   }

getch();
return 0;
}


//************************************************************************************************************************************************

3



#include<iostream.h>
#include<conio.h>
int fib(int n)
{
  if(n==1||n==2)
    return 1;
  else 
   return fib(n-1)+fib(n-2);

}


int main()
{
 int n;
   cout<<"Please input a digital:";
   while(cin>>n)
   {
      int a;
    a=fib(n);
   
      cout<<"The result is:"<<a<<endl;
     cout<<"Please input a digital:";
   }
getch();
return 0;
}




*****************************************************************************************************

4



#include<iostream.h>
#include<conio.h> 
int main()
{
  for(int n=100;n<333;n++)
  {
      int d=2*n,e=3*n;
     int a[10]={0},b[10]={0},i=0,j=0,k=0,p=0; 
     
   a[0]=n%10;
      a[1]=(n/10)%10;
      a[2]=n/100;
      
       a[3]=d%10;
       a[4]=(d/10)%10;
      a[5]=d/100;
      
       a[6]=e%10;
       a[7]=(e/10)%10;
       a[8]=e/100;
       
            for(i=0;i<9;i++)
              for(j=0;j<9;j++)
               {
                  if(a[i]==a[j])
                     b[i]++;
                     
               } 
        
  for(i=0;i<9;i++)
          if(b[i]!=1)
              break; 
       
        if(i==9)
         cout<<n<<endl;
  }

  getch(); 
return 0;

}


5



#include<iostream.h>
#include<conio.h>
void fun(int a[],int x[],int n)

{
 
    for(int m=0,j=0;m<n;m++,j++)

  if(a[m]%2==0)
   x[j]=a[m];
   

 int k,t;
   for(int i=0;i<n-1;i++)
   {
      k=i;
   for(int j=i+1;j<n;j++)
    if(*(x+j)>*(x+k))
     k=j;
    if(k!=i)
    {
      t=*(x+i);
   *(x+i)=*(x+k);
   *(x+k)=t;
    
    
    }
   
   
   
   }


}
int main()
{
    
 int a[6],b[6]={0};
for(int i=0;i<6;i++)
cin>>a[i];

fun(a,b,6);


for(int j=0;j<6;j++)
cout<<b[j]<<"\t";
getch();
return 0;
}


因为粗心,我失去了最后一题的分。记录下     当做警告。。。。。哎      我发现我好笨     最简单的题目   明明会做    却在规定时间内不能全做出来  

真想抽自己一巴掌         静心静心吧    

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值