C语言程序设计期末温习题.docx

上传人:b****6 文档编号:5097088 上传时间:2022-12-13 格式:DOCX 页数:13 大小:19.52KB
下载 相关 举报
C语言程序设计期末温习题.docx_第1页
第1页 / 共13页
C语言程序设计期末温习题.docx_第2页
第2页 / 共13页
C语言程序设计期末温习题.docx_第3页
第3页 / 共13页
C语言程序设计期末温习题.docx_第4页
第4页 / 共13页
C语言程序设计期末温习题.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言程序设计期末温习题.docx

《C语言程序设计期末温习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期末温习题.docx(13页珍藏版)》请在冰豆网上搜索。

C语言程序设计期末温习题.docx

C语言程序设计期末温习题

C语言程序设计期末温习题

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1.计算机能够自动按照人们的意图进行工作的最基本思想是(       )

A.采用逻辑部件                        B.存储程序和数据

C.控制代码                            D.总结结构

2.若要显示C盘TC子目录下名为的内容一定成功的命令是(       )

C:

\TC\EXAM                    

CONC;\TC\               C:

\TC\CON

3.编辑程序的功能是(       )

A.修改并建立源程序                    B.将源程序翻译成目标程序

C.调试程序                            D.命令计算机执行指定的程序

4.设inta=2,b;则执行b=a&&1;语句后,b的结果是(       )

                                              

5.逗号表达式(a=3*5,a*4),a+15的值是(       )

                                           

6.在C程序中,设一表达式中包含有int,long,unsigned和char类型的变量和数据,则表达式最后的运算结果类型是(       )

                                      

7.下面程序段的运行结果是(       )

   main(   )

     {inta=11,b=10,c=0;

      a/=b+(b&&c);

      printf(″%d\n″a);}

                                               

8.两次运行下面程序,如果从键盘上分别输入6和4,则程序的输出结果是(       )

   main(    )

   {intx;

      scanf(″%d″,&x);

      if(x++>5)printf(″%d″,x);

      elseprintf(″%d\n″,x-1);}

和5            和3               和4              和4

9.表达式y<3?

∶1的值的类型应是(       )

A.不确定          B.实型               C.整型              D.无符号整型

10.语句while(!

e);中,条件!

e等价于(       )

=0            !

=0               !

=1              =0

11.下面程序的运行结果是(       )

    main(    )

      {inti=1,sum=0;

        lop:

sum=sum+i;

        i=i+2;

        if(i<6)gotolop;

        printf(″sum=%d\n″,sum);}

=4           =9             =16            =25

12.若定义intx[10];则TurboC编译系统为该数组分配(       )个字节存储单元。

                                              

13.以下对一维数组a中的所有元素进行正确初始化的是(       )

a[10]==(0,0,0,0);            a[10]={    };

a[   ]={0};                   a[10]={10*2};

14.若有定义:

charc[10];从键盘输入“LiFang”,则正确的函数引用是(       )

(″%c″,&c[10]);            (c);

(″%s″,&c);                  (c[10]);

15.若有如下函数定义:

    add(floatx,floaty)

      {……}

    则下列说法正确的是(       )

A.函数返回值类型不确定               B.函数返回值是float型

C.函数返回值是int型                  D.函数返回值是void型

16.下面程序的运行结果是(       )

    fun(a,b)

      inta,b;

      {staticc=1;

       if(c==1)

          a=b+c;

       else

          a=b-c

       c++;

       printf(″a=%d,b=%d\n″,a,b);}

       main(    )

      {inta=3,b=5;

         fun(a,b);

         fun(a+1,b-1);}

=6,b=5           =5,b=5          =6,b=5           =6,b=6

   a=5,b=5             a=4,b=4            a=2,b=4             a=5,b=3

17.若输入5和2后,下面程序的运行结果是(       )

    voidswap(x1,x2)

    int*x1,*x2;

    {int*x;

     x=x1;x1=x2;x2=x;}

    main(    )

    {inta,b,*p1,*p2;

     scanf(″%d,%d″,&a,&b);

     p1=&a,p2=&b;

     if(a>b)swap(p1,p2);

     printf(″%d,%d\n″,*p1,*p2);}

2             ,5                ,5                ,2

18.若有定义int*x[3],b[10];则正确的赋值语句是(       )

=b[0];       =b;               [0]=b[0];     [0]=&b[0];

19.下面程序的运行结果是(       )

    #defineADD(x)x+x

    voidmian(    )

     {inta=2,b=1;

      prinft(″%d\n″,3*ADD(a+b));}

                                                

20.则FILE*fp;charch;ch=fgetc(fp);可以推知fgetc函数的原型可以是(       )

fgetc(   );                    fgetc(   )

fgetc(int);                   fgetc(FILE*fp);

二、多项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的五个选项中有二至五个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

多选、少选、错选均无分。

21.下面哪些是组成MS—DOS操作系统的模块(           )

                                

C                  

22.与十进制141等值的数是(           )

A.()2              B.()2             C.(215)8

D.(8D)16                   E.(8E)16

23.设a=1,b=-3,c=0,下面表达式为0的是(           )

>a&&aa)>(b>5)

D.!

a&&b‖a&&(c+1)          E.(1,2,5)==(1,3,3)

24.在下列各说法中,正确的说法有(           )

语句只能用于循环语句

语句只能用于switch语句和循环语句

语句可用于switch语句

语句可用于循环语句

语句不能用于switch语句

25.若有如下定义及赋值(           )

    intx=9,*p,*p1;

      p=&x;p1=p;

则可以输出变量x的地址的语句是

(″%d\n″,x)                 (″%d\n″,*p);

(″%d\n″,p1);               (″%d\n″,&x);

(″%d\n″,*p1);

26.有函数定义如下:

(           )

    voidss(x)

     int*x;

    {……}

则主函数中引用函数ss的正确形式是

()                  (   )                (   )

   {inta[5];                {inta[5].*p=a;          {inta[5];      

      …                          …                        …

     ss(a);                      ss(p);                     ss(a[0]);

      …}                       …}                       …}

(   )                 (   )

   {inta[5],*p=a;          {inta[5],*p=a;         

     …                        …

     ss(p[0]);                  ss(*p);

      …}                       …}

27.若有定义intx[4][5],(*p)[5];及赋值p=x;则下列表示数组地址的形式中,地址值相等的是(           )

A.*(x+1)                   +1                     [2]

+1                      E.*(p+1)

28.设有定义inta[3][6],*p;则正确的指向数组元素的指针赋值是(           )

=*a;                    =a[0];               =a

=a+1;                   =*(a[0]+1);

29.有以下定义和语句:

(           )

   structstud{charname[10];

           intage;}

     structstuds,*ps;

      ps=&s;

   则下面正确的语句是

={″Mary″,30}           B.(*ps)→age=30         

(″%d″,&ps→age);   (ps→name,″Mary″);

30.设有inta=123;a^0xff00可以使a的(           )

A.低字节取反                B.高字节取反            C.低字节不变

D.高字节不变                E.高低字节都取反

三、填空题(本大题共10小题,每小题1分,共10分)

31.设字长为八位,十进制—100在机内的存储形式是______。

语言程序由main()函数开始执行,应在______函数中结束。

33.在格式输出语句中,用于带符号的十进制长整型输出的格式符是______。

34.当a=2,b=3,c=1时,执行以下程序段后,输出结果是______。

    if(a>b)

      if(a>c)

        printf(″%d\n″,a);

      else

        printf   (″%d\n″,b);

      printf(″end\n″);

35.设i,n,p均为int型变量,则执行以下程序段后,p的值为______。

    p=1;n=4;

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

      p=p*i;

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

    main(   )

    {inta[3][3]={1,2,3,4,5,6,7,8,9},i,s=0;

     for(i=0;i<=2;i++)   s=s+a[i][i];

     printf(″s=%d\n″,s);}

37.所谓变量的______就是可引用变量的范围,通常取决于变量被定义的位置。

38.设p1,p2为同类型的指针变量,若有p1==p2,则说明p1与p2指向______。

39.在unionstd

    {intfjh;

     char   addr[30];

     }   wang;

    中,wang是具有″unionstd″共用体类型的______。

40.字符串写函数fputs()的格式是fputs(str,fp);它的功能是______。

四、简答题(本大题共4小题,第41、42题每小题2分,第43、44题每小题3分,共10分)

41.描述一个C程序开发过程的流程图。

42.将下列条件语句逻辑关系写得更清晰一些(必要时可把if嵌套的有关部分写成复合语句)。

    if(a

    if(a

    if(a

    x=5;elsex=6;

43.定义char*str=″program″;和定义charstr[]=″program″;是等价的吗?

为什么?

44.简述feof函数返回值的含义。

五、阅读分析题(本大题10小题,每小题2分,共20分)

45.阅读下列程序,写出运行结果。

    main()

     {unsigneda;

      intb=-1;

      a=b;

      printf(″%u\n″,a);

      printf(″a=%x″,a);}

46.阅读下列程序,并回答问题:

    main()

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

      switch(x)

       {case1:

switch(y)

       {case0;a++;break;

        case1:

b++;break;}

       case2:

a++;b++;break;

       case3:

a++;b++;}

     printf(″a=%d,b=%d\n″,a,b);}

   请分析该程序的执行过程并写出运行结果。

第47、48、49题请参阅下面程序,并回答相关问题:

   #defineN8

   main()

   {inta=1,b-1,i;

    for(i=1,i<=N/2;i++)

      {printf(″%5d%5d″,a,b);

       if(i%2==0)printf(″\n″);

       a=b+a;b=a+b;}}

(″\n″);语句执行多少次?

48.程序输出结果是什么?

49.若把if(i%2==0)print(″\n″);语句删除,程序输出效果与48题有何不同?

第50、51、52题请参阅下面程序,并回答相关问题。

   main()

    {intnum;

     scanf(″%d″,&num);

     if(prime(num))

        printf(″%disprimenumber″,num);

    else

        printf(″%disnotaprimenumber″,num);}

    intprime(num)

      intnum;

   {intflag=1,n;

     for(n=2;n

        if(num%n==0)flag=0;

     return(flag);}

函数的功能是什么?

51.当输入23时,程序运行结果是什么?

变量的作用是什么?

第53、54题请参阅下面程序,并回答相关问题。

   structnode{intx;

              structnode*next;};

   voidprint(structnode*head)

   {structnode*p;

    p=head;

    while(p!

=NULL)

    {printf(″%d\n″,p→x);

     p=p→next;

     }

   }

53.函数print完成的功能。

54.语句p=p→next;的作用。

六、程序设计题(本大题共2小题,第55小题8分,第56小题12分,共20分)

55.将26个英文字母按aAbBcCdD……zZ先小写后大写的顺序逐个打印出来。

56.编程实现将字符串str2连接到字符串str1的末尾并输出str1串。

(不得使用C中的strcat标准库函数)

一、单项选择题(本大题共20小题,每小题1分,共20分)

                                                

                                                

                                            

                                            

二、多项选择题(本大题共10小题,每小题2分,共20分)

                                   

                                      

三、填空题(本大题共10小题,每小题1分,共10分)

31.

()

33.%ld

 

=15

37.作用域

38.同一对象或同一变量

39.变量

40.向与fp有联系的文件中写一串字符。

四、简答题(本大题共4小题,第41、42题每小题2分,第43、44题每小题3分,共10分)

41.

(a

    {if(c

    elseif(a

    {if(b

     elsex=2;

    }

    elseif(a

    {if(b

     elsex=4;

    }

    elsex=5;

    }

    elsex=6;

43.不等价,前者定义的str是字符串指针变量,后者定义的str是字符数组。

前者str中只存放字符串″program″的首地址,后者str中逐个存放字符串″program″中的字符。

44.设文件指针为fp,若feof(fp)的值为1,表示与fp有联系的文件结束,若feop(fp)的值为0,表示与fp有联系的文件没有结束。

五、阅读分析题(本大题共10小题,每小题2分,共20分)

45.运行结果为    65535

                 a=ffff

46.本程序关键是对switch执行过程的理解,其执行过程如下:

    

(1)根据x=1执行外层switch中Case1后的语句,该语句又是一个switch语句。

    

(2)根据y=0执行内层switch中的Case0后的语句。

        此时a=1,并跳出内层switch语句。

    (3)由于外层switch中Case1后无Break语句,故流程转入Case2后的语句,此时,a=2,b=1,并跳出外层switch.

    最后输出结果a=2,b=1。

次。

   1   2    3

    5   8   13   21

49.程序输出结果在同一行上显示。

50.函数功能是判断一个数是否为素数。

51.结果为:

23isprimenumber

的作用是使for循环立即终止退出,当有一个n可以整除num时。

这样可以提高执行速度。

53.输出head所指链表的所有元素。

54.使指针p指向下一个结点。

六、程序设计题(本大题共2小题,第55小题8分,第56小题12分,共20分)

55.#include<>

    voidmain(void)

    {charch1=′a′,ch2=′A′;

     while(ch1<=′z′)

       {printf(″%c″,ch1);ch1++;

        printf(″%c,ch2″);ch2++;

       }

      printf(″\n″);

    }

56.#include<>

    voidmystrcat(char*,char*);

    voidmain(void)

    {char*str1=″ahcd″,str2=″dcfg″;

     mystrcat(str1,str2);

     prinft(″%s″,str1);

    }

    voidmystrcat(char*s,shar*t)

    {inti=0,j=0;

     while(s[i]!

=′\0′)

              i++;

     while((s[i]=t[j])!

=′\0′)

              {

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1