华中师范大学成人本科        学年第二学期
《c语言程序设计基础》 试卷 (B卷)
考试时间:90分钟    闭卷    任课老师:
班级:          学号:          姓名:          成绩:
一、选择题:(每小题2分,共30分)
1.由C++目标文件连接而成的可执行文件的缺省扩展名为(    )
A.cpp         B.exe         C.obj         D.lik
2.下列符号中,不可以作为变量名的是(    )
A.list_p_7     B.PA123       C.ready       D.if
3.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为(    )
A.main         B.MAIN       C.name         D.function
4.设x和y均为bool量,则x&&y为真的条件是(    )
  A.它们均为真   B.其中一个为真  C.它们均为假   D.其中一个为假
5.执行下面程序段的输出结果是(    )
int x=4,y=-55;
if (x>0) if (x>10) cout <<”AA” else cout <<”BB”
else if (y<-8) if (y>-20) cout <<”CC” else cout <<”DD”;
  A.AA           B.BB        C.CC         D.DD
6.符串常量”hello”的长度是(    )
A.5         B.6       C.7         D.8
7.以下语句,int i=2,j=2,m,n;m=i++;n=++j;则m,n,i,j的值分别为(    )
  A.2,3,2,2     B.2,3,3,3       C.2,2,3,3     D.3,3,2,2
8.假定a为一个整型数组名,则元素a[4]的字节地址为(    )
A.a+4         B.a+8         C.a+16         D.a+32
9. x>0 || y==5的相反表达式为(    )。
A. x<=0 || y!=5    B. x<=0 && y!=5  C. x>0 || y!=5    D. x>0 && y==5
10.在下面的函数声明中,存在着语法错误的是(    )
A.void BC(int a , int)       B.void BD(int , int)
C.void BE(int , int=5)       D.int BF(int x ; int y)
11. 循环体至少被执行一次的语句为(    )。
A. for循环      B. while循环      C. do循环      D. 任一种循环
12.已知一函数中有下列变量定义,其中属于静态变量的是(    )
A.int a=5;     B.static double b;  C.register char c;    D.auto short d;
13. do语句能够改写为(   )语句。
A. 复合      B. if      C. switch    D. while
14.要使语句: p=new int[10]; 能够正常执行,p应定义为(    )
A.int p;   B.int p[10];     C.int *p;     D.int (*p)[10];
15. 编写C++程序一般需经过的几个步骤依次是(    )。
A. 编译、编辑、连接、调试        B. 编辑、编译、连接、调试
C. 编译、调试、编辑、连接        D. 编辑、调试、编辑、连接
、填空题(每小题1,共10分
1.charshortint类型的大小分别为               
2.表达式float(25)/4int(14.6)%5的值分别为       
3.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为     
4.在C++语言中,用转义字符序列    或操纵符    表示输出一个换行符。
5. 一个函数的函数体就是一条_________语句。
6. 设px是指向一个类动态对象的指针变量,则执行“delete px;”语句时,将自动调用该类的           
7.关系表达式x+y>5的相反表达式为             
8. 空串的长度为___,存储它需要占用___个字节。
9.表达式: x=625,i=(x>100?10:100) 的值是         
10. C++语言中的每条基本语句以      作为结束符,每条复合语句以     作为结束符。
写出下列每个函数的功能(每小题4,共20分
1、#include<math.h>
bool SG(int x) {
      / /x为大于等于2的整数
    int a=int(sqrt(x));/ /取x的平方根
    int i=2;
    while(i<=a) {
    if(x%i= =0) break;
    i+ +; }
    if(i<=a)return 0;else return 1;}
c语言斐波那契数列2、#include <iostream.h>
int SC(int a,int b,int c){
    if(a>=b && a>=c) return a;
    if(b>=a && b>=c) return b;
    if(c>=a && c>=b) return c;}
3、#include <math.h>
bool SG(int x){
    int a=int(sqrt(x));
    int i=2;
    while(i<=a){
        if(x%i==0) break;
        i++;}
    if (i<=a) return 0;
    else return 1;}
4、int SC(int a,int b,int c) {
if(a>=b && a>=c) return a;
if(b>=a && b>=c) return b;
if(c>=a && c>=b) return c;}
阅读下列程序,在 处填入适当内容,使程序完整(每个空1,共10分,)
1、斐波那契数列的第1和第2个数分别为0和1 ,从第三个数开始,每个数等于其前两个数之和。求斐波那契数列中的前20个数,要求每行输出5个数。
#include<iostream.h>
void main() {
    int f,f1,f2,i;
  cout<< 斐波那契数列:\n;
  f1=0; f2=1;
  cout<<setw(6)<<f1<<setw(6)<<f2;
  for(i=3;i<=20;i++) {
      f=______(1)______;
cout<<setw(6)<<f;
if(_____(2)______) cout<<endl;
f1=f2;
f2=____(3)_______; }
        cout<<endl; }
2、打印出2至99之间的所有素数(即不能被任何数整除的数)。
        #include<iostream.h>
        #include<math.h>
        void main()
        {
            int i,n;
            for(n=2; ___(1)___; n++) {
                int temp=int(sqrt(n));  //求出n的平方根并取整
                for(i=2; ___(2)___; i++)
                    if(n%i==0) ___(3)___
                if(i>temp) cout<<n<<' '; }
            cout<<'\n';}
3、采用辗转相除法求出两个整数的最大公约数。
      #include<iostream.h>
        void main()
        {
            int a,b;
            cout<<"请输入两个正整数:";
            cin>>a>>b;
            while(a<=0 || __(1)___) {cout<<"重新输入:"; cin>>a>>b;}
            while(b) {
                int__(2)__;
                r=a%b;
                ___(3)___; ___(4)___;  //分别修改ab的值}
            cout<<a<<endl;  //输出最大公约数 }
五、写出下列程序的运行结果(每小题5,共30分
1.  main ( )
{ int a=4,x=5,b=8;
fun(b,6);
printf("%d,%d,%d\n",a,b,x);
}
fun (int a,int b)
{ int x=3;
printf("%d,%d,%d\n",a,b,x);
}                                 
运行结果:
2、#include<iostream.h>
void SB(char ch){
    switch(ch){
    case 'A':case 'a':
        cout<<"well!";break;
    case 'B':case 'b':
        cout<<"good!";break;
    case 'C':case 'c':
        cout<<"pass!";break;
    default:
        cout<<"bad!";break;}
void main(){
    char a1='b',a2='C',a3='f';
    SB(a1);SB(a2);SB('A');
    cout<<endl;}                             

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。