一、单项选择题(每题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]={4,5,6,7};
(C) int a[2][2]={{4},5,6}; (D) int a[2][]={{4,5},{6,7}};
10.函数的功能是交换x、y值,且通过正确调用返回交换结果,不能正确执行此功能的函数是________
(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=0,k;
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=1或n=2时;
fib(n)=fib(n-1)+fib(n-2) 当n>=3时。
请用递归的方法求这个数列的第n项。其中n由键盘输入。(10分)
4.求所有这样的三位整数:它的2倍、3倍还是三位整数,且这三个三位数使用1到9之间不同的数字。例如:n=192,2n=384,3n=576。(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; }
因为粗心,我失去了最后一题的分。记录下 当做警告。。。。。哎 我发现我好笨 最简单的题目 明明会做 却在规定时间内不能全做出来
真想抽自己一巴掌 静心静心吧