视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
C语言期中考试试卷
2025-10-02 18:42:33 责编:小OO
文档
上海杉达学院试卷

 2008-2009学年 第 二 学期   期中   考试        日期2009 年     4 月    15 日

  课程名称:高级语言程序设计(C)   考试时间:__100__分钟

专业                     班级                    姓名              学号      _____  

题号总分
得分
我承诺,遵守《上海杉达学院考场规则》,诚信考试。签名:_________

一、单项选择题(20×1’)

1.面向过程的程序设计语言是:  C    

A.机器语言        B.汇编语言        C.高级语言        D.语言

2.下面描述中,正确的是:  A    

A.结构化程序设计方法是面向过程程序设计的主流

B.算法就是计算方法

C.一个正确的程序就是指程序书写正确

D.计算机语言是编写程序的工具而不是表示算法的工具

3.以下说法错误的是: C     

A.一个C程序可以由一个或多个函数构成

B.一个C程序必须有而且只能有一个main()函数

C.在计算机上编辑C程序时,每行只能写一条语句

D.主函数是程序启动时唯一的入口

4.结构良好的C程序可由   C   三种基本结构组成。

A.数组、结构、指针

B.结构、指针、函数

C.顺序、选择、循环

D.函数调用、条件控制、循环控制

5.在x是单精度实型变量,y是字符型变量,以下正确的输入语句是    B     。

     A.scanf(“%f%c”,x,y);       B.scanf(“%f%c”,&x,&y);

C.scanf(“%f%f”,&x,&y);     D.scanf(“%d%f”,&x,&y);

6.若变量已正确定义并赋值,下面符合C语言语法的表达式是:    B      

A.    a:=b+1

B.    a=b=c+2

C.    int 18.5%3

D.    a=a+7=c+b

7.若有以下程序段

int  c1=1,c2=2,c3;

c3=1.0/c2*c1;

则执行后,c3的值是   A   

A.    0            B.    0.5            C.    1            D.    2        

8.在C程序中,用    B      表示逻辑值“真”。

A.true             B.非0的数        C.非0整数     D.大于0的数

9.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为  C    

A.    0            B.    1            C.    2            D.    3            

10.下列数据中,为字符常量的是___D_____。

A.     'AB'            B.    "A"            C.     How        D.     'A'+2

11.已知int i,a;,执行语句i=(a=2*3,a*5),a+6;后,变量i的值是  C    

A.    6            B.    12            C.    30            D.    36            

12.若变量已正确定义且k的值是4,计算表达式(j=k--)后,  B  是正确的。

A.j=4,k=4       B.j=4,k=3        C.j=3,k=4        D.j=3,k=3

13.已知int i=5;,执行语句i+=++i;后,i的值是   C   

A.    10            B.    11            C.    12            D.    以上都不正确

14.设有int x,y;  以下语句判断x和y是否相等,正确的说法是该语句___B_____。

if (x=y)  printf(" x is equal to y."); 

A.语法错        B.不能判断x和y是否相等

C.编译出错        D.能判断x和y是否相等

15.设a=12、b=12345,执行语句printf(“%4d,%4d”,a,b)的输出结果为  C    

A.    12,123        B.    12,1234        C.    12,12345        D.    12,123456

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

#include 

void main()

{

     int i=010,j=10,k=0x10;

     printf(“%d,%d,%d\\n”,i,j,k);

}

A.    8,10,16        B.    8,10,10        C.    10,10,10        D.    程序出错

17.下列程序不是死循环的是  D    

A.    int i=100;

     while(1)

         { i=i%100+1;

          if(i>100)break;

         }

B.    int k=0;

     do{++k;}    while(k>=0);

C.    for( ; ; );

D.    int s=36;

     while(s) --s;

18.当执行以下程序时,___C_____。

void main()

{      int a; 

    while(a=5)

printf("%d ",a--); 

}

A. 循环体将执行5次            B. 循环体将执行0次

C. 循环体将执行无限次            D. 系统会当机。

19.有以下程序段:

int  n=0,p;

do{  scanf(“%d”,&p);n++;  }

while( p!=12345 && n<3 )

循环的结束条件是  D    

A.    p的值不等于12345且n的值小于3

B.    p的值等于12345且n的值大于等于3

C.    p的值不等于12345或n的值小于3

D.    p的值等于12345或n的值大于等于3

20.以下分别是算术、位、关系和逻辑运算符+,&,<,!,其优先级最低的是  B    。 

A.     +             B.    &         C.    <             D.    !

二、填空题(5×2’)

1、表达式(5-1 && 3+5/2)的值是____1_____。 表达式(5==5==5)的值为____0______。 

2、将数学表达式 (ax2+bx+c)转化为C的表达式为___a*x*x+b*x+c____。

3、C语言中,存储字符串"China"以___\\0____作为结束的标志,共占用___6____个字节。

4、设int x=4;表达式x+=x*=x+1的值是  40      。

5、定义int b=7; float a=2.5,c=4.7;

则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为:  5.5   

三、读程序(8×5’)

1.下列程序运行后,x的值是 4     

a=b=c=0; x=35;

if(!a)x--;

else if(b);if(c)x=3;

else x=4;

2.读下列程序,运行的输出结果是   1   

#include 

void main()

{    int a=15,b=21,m=0;

     switch(a%3)

     {    case 0: m++;break;

         case 1: m++;

         switch(b%3)

         {    default: m++;break;

             case 0: m++;break;

         }

     }

     printf(“%d”,m);

}

3.以下程序的输出结果是 x=8        

#include 

void main()

{    int i,j,x=0;

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

     {    x++;

         for(j=0;j<3;j++)

         {    if(j%2) continue;

             x++;

         }

         x++;

     }

     printf(“x=%d”,x);

}

4.下列程序段的输出结果是____

        1  2  3  4

24  8

36

4

#include

void main()

{

  int i,j;

for (i=1;i<=4;i++)

{for (j=1;j<=5-i; j++)

    printf("%3d",i*j);

    printf("\\n"); 

  }

}

5.   下列程序段的输出结果是__i=9,k=7_ _____.

void main()

{

           int i,j,k=19;

           while (i=k-1)

           {     k-=3;

            if (k%5==0) {i++;continue;}

            else if (k<11) break;

            i++;

           }

       printf("i=%d,k=%d\\n",i,k);

}

6. 下面程序输入5, 输出结果是什么?此程序的功能是什么?    factorial of 5 is:120.                   

功能是求阶乘 n!

void main()

{

    int i,n;

    int factorial = 1; 

    printf("please input the number n:");

    scanf("%d",&n);

if(n < 0)

          printf("please input an interger >= 0.\\n");

    else if(n==0) 

             printf("factorial of 0 is 1.\\n");

    else

    {    i = 1;

           while(i <= n)

        {

            factorial = factorial * i;

            i++;

            }

            printf("factorial of %d is:%d.\\n",n,factorial);

   }    

}

7. 读程序分析这段程序的功能。

   输入字符”c” 进行Celsius temperature到Fahrenheit temperature的转换

   输入字符”f” 进行Fahrenheit temperature到Celsius temperature的转换

   输入字符”q” 退出

#include

int main()

{

    char cmd;

    float temperature;

    while(1)

    {

        scanf("%c",&cmd);

        switch (cmd)

        {

            case 'c':

            {

                printf("\\n|   Please input Celsius temperature:   |\\n");

                scanf("%f",&temperature);

                printf("\\n|The Fahrenheit temperature is:%6.3f|\\n", temperature*1.8+32 );

                break;

            }

            case 'f':

            {

                printf("\\n  Please input Fahrenheit temperature:  |\\n");

                scanf("%f",&temperature);

                printf("\\n  The Celsius temperature is : %6.3f  |\\n", 5*(temperature-32)/9);

                break;

            }

            case 'q': break;

            default: printf("Your Command Error!temperatureut Again\\n");

        }

        if(cmd=='q')

            break;

        printf("\\n   Please input any key to use again:   \\n");

    }

}

8. 下列程序是输出201~300之间的全部素数,请填写完整。

#include

#include

main()

{int m,i,k,flag;

for (m=201;m<=300;m++)

 {k=  m-1 或  m/2  或 sqrt(m)    ;

  flag=1;

for(i=2;i<=k;i++)

     if (  m%i==0   )  flag=0;

  if (falg==1)  printf(“%d   ”,m);

  }

printf(“\\n”);

}

三、编程题:(给答题纸划横线)

1.(6分)根据以下函数关系,对输入的每个x的值,计算出相应的y值。(使用switch)

2.(7分)请用户输入int型a,b,c三数,试不再利用其它变量交换三者,使得a成为b、b成为c、c成为a。

void main()

{

    int a,b,c;

    scanf("a=%d b=%d c=%d",&a,&b,&c);

    c=a+b+c;

    b=c-a-b;

    a=c-a-b;

    c=c-a-b;

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

}

3.(8分)请用户输入三角形三条边长(float型)a,b,c。

    判断是否能构成三角形

若能构成三角形,判断它是锐角、直角或钝角三角形

若能构成三角形,判断它是等边、等腰或一般三角形

4.(9分)上海市出租车的起步费为3公里11元,10公里内(包含起步的3公里)每公里2.1元,超过10公里每公里3.2元。从上海杉达学院打车到浦东国际机场约为29公里,试写程序求出打车所需费用或最小费用。(提示1:车费单位为元,角作四舍五入。提示2:为达到最省车费,打车中途可重翻计价器)下载本文

显示全文
专题