加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

近年《程序设计基础》期末试卷

(2016-01-21 20:06:57)
分类: C 试卷

一、选择题(每题2分,共40分)

 

1)以下说法中正确的是______   .

A)continue语句的作用是结束整个循环的执行

B)只能在循环体内和switch语句体内使用break语句

C)在循环体内使用break语句或continue语句的作用相同

D)从多层循环嵌套中退出时,只能使用goto语句

 

2)以下为不合法的用户标识符的是______   .
 
    Anumbersum   BNUMBERSUM   C3number_sum    Dnumbersum


3)设int n=10,i=2;则赋值运算n%=i+2执行后,n的值是______   .

        A  B  C   D5

 

4)定义 int y=7,z=5,执行语句(++z>=y- -)?++z:y- -  y 的值______   .
      A
       B   7  C    D   4


5)有以下程序
    int main()
  int a=1,b=2,m=0,n=0,k;
     k=(n=b
     printf("%d,%d\n",k,m);

        return 0;
    }
 
  程序运行后的输出结果是______   .
 
    A0,0  B0,1  C1,0  D1,1


6)凡是函数中未指定存储类别的局部变量其隐含的存储类别是______   .

        A)自动(auto B)静态(static C)外部(extern D)寄存器(register

 

7下列代码段将打印出 ______.

#include

int main (void)

{

char  a[50]="Zhong Hua Ren Min Gong He Guo",*p;

 

for(p=a+6;p

{

   printf("%c",*p);

}

}

AZho  BHua  Cg H  DGuo

 

8)数组 int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}中,a[2][2]的值是______   .

            A           B    7      C        D   12


9下面关于运算符优先顺序的描述中正确的是______   .

       A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符

       B) 赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符

       C) 逻辑运算符< 关系运算符< 算术运算符< 赋值运算符

       D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符

 

10)有以下程序
 
   int main()
 
   

              int k=0,n=3;
 
          for( n!=k;) 

                    

                            n--;
 
                      if(n%2!=0) continue;
 
                        k++;

                      }
 
       printf("%d,%d\n",k,n);
              return 0;

   }
 
  程序运行后的输出结果是______   .
 
     A  1, 1    B  2, 2    C   3, 3    D  4, 4


11)要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10=2.9290
 
  int main()
 
    int n; float s;
 
          s=0;
 
          for(n=1;n<11;n++);
 
                 s=s+1.0/n;
 
          printf("%6.4f\n",s);

              return 0;
 
  }
 
  程序运行后输出结果为0.0909,导致错误结果的程序行是______   .
 
   As=s+1.0/n;             Bs=0;   
 
   Cprintf("%6.4f\n",s); Dfor(n=1;n<11;n++);


12)已定义ch为字符型变量,以下赋值语句中错误的是______  
  Ach=100;  Bch='\x15'; Cch='\';  Dch=NULL;

 

13C语言中函数返回值的类型由______   .决定的。

    A) return语句中的表达式类型   B) 调用该函数的主调函数的类型

    C) 调用函数时临时决定          D) 定义函数时所指定的函数类型


14若有说明 int xy;不能实现以下函数关系的程序段是______   .

y=-1  (x<0)

y=0   (x=0)

y=1   (x>0)

A)  if (x<0)  y= -1                    B)   y= -1

    else if(x= =0)  y=0                     if (x!=0)

else  y=1                             if (x>0) y=1

                                         else    y=0

C)  y=0                             D)   if (x>=0)

    if (x>=0)                                    if (x>0)  y=1

{if  (x>0)  y=1                         else     y=0

else   y= -1                             else y= -1

 

15以下while循环____次。

#include

int main()                    

 

int num=0;

while(num<=2)

{num++;printf("%d\n",num);}

}

A) 1 2 3 4   B) 1 2 3  C) 1    D) l

 

16以下程序的输出结果是______   .

      

int main()

       {     int num= 0;

              for(;num<4;)

              { num++;

               printf("%d  ",num);

              }

              return 0;

       }

 

       A) 1 2 3 4   B) 1 2 3  C)1 2   D) l

 

17fun函数前面应该写哪种类型

      

______   fun ( double x )

           double y;

              y= 3*x-4;

              return y;

       }

 

       Aint  Bfloat  Cvoid Ddouble

 

18)定义如下数组:

int i;

int x[3][3]={1,2,33,4,5,62,73,86,91};

 

则下面语句的输出结果是_________
     for(i=1;i<3;i++)

printf(“ %d”,x[i][3-i]);

 

A 2   33    B 33      C 62   86    D  5   86;

 

19)设有以下函数:

       int f ( int a)

       { static int b=3;

         b=a+b;

         return(b);

       }

       如果在下面的程序中调用该函数,则输出结果是______   .

      

int main()

       { int i;

       for(i=1;i<4;i++) printf("%d ",f(i));

       return 0;

       }

      

A) 1  2     B) 0   C) 1  6      D) 1  4

 

20)若有以下定义和语句:

double r=99,*p=&r;

*p=r;

则叙述中正确的是______   .

        A)  以上两处的*p含义相同,都说明给指针变量p赋值

B)  在“double r=99,*p=&r;r的地址赋给了p所指的存储单元

C)  语句“*p=r;”把变量r的值赋给指针变量p

D)  语句“*p=r;”取变量r的值放回r


 
二、填空题(每空3分,共30分)
1)两次运行下面的程序,如果从键盘上分别输入64,则输出结果是〖1 

 

#include

int main(void)

{

int x;

scanf ("%d",&x);

if (x++>5) printf("%d\n",x);

else printf("%d\n",- -x);

return 0;

}

 

2)以下程序运行后的输出结果是〖2 

#include

int main (void)

int x,*p,**pp;

x=7;

p=&x;

pp=&p;

printf("x=%d\n",(*p)*(**pp));

return 0;

}

3)以下程序运行后的输出结果是〖3 

#include

int main (void)

{

       char *ps="thisisabook";

       int n=8;

       ps=ps+n;

       printf("%s\n",ps);

       return 0;

}

(4) 以下程序运行后的输出结果是〖4

#include

#include

int main (void)

{

char a[] = "Zhong Guo";

char b[20] , *p1, *p2;

p1 = a; p2 = b;

for(; *p1 != '\0'; p1++, p2++)

  *p2 = *p1;

*p2 = '\0';

printf("string a is: %s\n", a);

printf("string b is: ");

p2 = b;

puts(p2);

return 0;

}

(5) 以下程序运行后的输出结果是〖5

#include

#include

int main(void)

{

       char *p [ ]={"Array","hello","break","ACM","Arrow"};

       int i;

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

          

              if(*(*(p+i)+2)=='r')

              puts(p [i]);

       }

       return 0;

}

 

(6) 以下程序运行后的输出结果是〖6 

#include

int main (void)

{

    int max(int a,int b);   

    int x=2,y=6,z;

    z=max(x,y);

    printf("maxnum=%d\n",z);

    return 0;
}

int max(int a,int b)

{

if(a>b)

return a;

else

return b;

}

 

(7) 以下程序运行后的输出结果是〖7 

#include

int main(void)

{

int a,b,c,d,x;

a=c=0;

b=x=1;

d=10;

if(a) d=d-5;

else if(!b)

if(!c) x=5;

else x=25;

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

return 0;

}

 

(8) 以下程序运行后的输出结果是〖8

#include

int swap(int *p1, int *p2)

{

int p;

p = *p1;

*p1 = *p2;

*p2 = p;

return 0;

}

int main (void)

{

int a=17, b=79;

int *pointer_1, *pointer_2;

pointer_1 = &a; pointer_2 = &b;

if (a

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

return 0;

}

 

(9) 以下程序运行后的输出结果是〖10

#define S(r) r*3

#include

int main (void)

{

     int a,area;

       a=3;

       area = S(a+a*2);  

       printf("area=%d", area);

       return 0;

}

 

(10) 以下程序运行后的输出结果是〖10

 

#include

int main (void)

{

int x=1,y=0,a=0,b=0;

switch (x)

{ case  1:

    switch (y)

{ case 0: a++; break;

      case 1: b++; break;

}

  case 2:  a++; b++; break;

  case 3:  a++; b++;

}

printf("\na=%d,b=%d", a, b);

return 0;

}

 

 

 

 

 

 

 

 

 

 

三、程序设计题(每题10分,共30分)

 

1.       编程,输入一个实数x,根据下式计算并输出y值。

 

 

2.       输入10个学生的信息,输出最高分学生的信息和全部学生的平均成绩。

要求:

(a)学生信息包括:学号、姓名、成绩;

(b)学生信息必须采用结构体类型;

(c)用指针完成操作。

 

 

3 输入正整数n,将1~n中的所有完数一个占一行保存到文本文件”d:\\result.txt”中。

    要求:完数的判断必须采用函数形式。

说明:完数是指一个正整数,它除本身之外的所有因子和等于自身。例如:正整数6

自身之外的因子为1,2,3,

6 = 1+2+3

所以6是完数。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有