《C语言(专科)》19年12月作业考核A-C语言(专科)

[复制链接]
发表于 2019-12-8 08:54:04 | 显示全部楼层 |阅读模式
四川农业大学网络教育专科考试
C语言  试卷(课程代码  352062)本试题一共四道大题,共6页,满分100分。考试时间90分钟。
        
注意:1、答案必须填写在答题纸上,题号不清或无题号的以零分计;
2、答题前,请在答题纸上准确、清楚地填写各项目;
3、学号、考点名称、考室号、姓名、身份证号、课程代码、课程名称、培养层次等,不写、乱写及模糊不清者,答题纸作废;
4、开卷考试,若有雷同以零分计。一、选择题(每题2分,共40分)
1、在C语言中,合法的长整型常数是:           
A)0L                   B)4962710             C)0.054838743            D)2.1869e102、设有以下宏定义:
     #define      N       3
     #define      Y(n)       ( (N+1)*n)
     则执行语句:z=2 * (N+Y(5+1));后,z的值为:         
A) 出错                     B) 42                 C) 48                    D)543、 请选出合法的C语言赋值语句:         
     A) a=b=58                       B) i++;
C) a=58,b=58                     D) k=int(a+b)4、C语言的编译系统对宏命令的处理是:         
A) 在程序运行时进行的
B) 在程序连接时进行的
C) 和C程序中的其它语句同时进行编译的
D) 在对源程序中其它成份正式编译之前进行的5、以下说法中正确的是:           
A)#define和printf都是C语句        B)#define是C语句,而printf不是
C)printf是C语句,但#define不是     D)#define和printf都不是C语句
6、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是:         
A)1                              B)2
C)2.0                             D)2.5
7、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假“的表达式是_______。
A) (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B) (x>=1) || (x<=10) || (x>=200) || (x<=210)
C) (x>=1)&&(x<=10) || (x>=200)&&(x<=210)
D) (x>=1) || (x<=10)&&(x>=200) || (x<=210)
8、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是:           
   A)c=b=a;                                 B)(a=c)‖(b=c);
   C)(a=c)&&(b=c);                          D)a=c=b;
9、有以下程序
    #include  
    main()
    { int   a,b,c=246;
      a=c/100%9;
      b=(-1)&&(-1);
      printf("%d,%d\n",a,b);
    }
   输出结果是:           
   A) 2,1          B) 3,2             C) 4,3            D) 2,-1
10、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为:     
   A)a<>0                                  B)!a
   C)a=0                                   D)a11、有以下函数 char *fun(char *p) { return p; } 该函数的返回值是:         
A) 无确切的值                            B) 形参p中存放的地址值 C) 一个临时存储单元的地址                D) 形参p自身的地址值
12、假定所有变量均已正确说明,下列程序段运行后x的值是:           
      a=b=c=0;x=35;
      if(!a)x--;
         else if(b);
      if(c)x=3;
         else x=4;
A)34                      B)4                  C)35              D)3
13、以下有关宏替换的叙述不正确的是:         
A) 宏替换不占用运行时间                    B)宏名无类型
C)宏替换只是字符替换                      D)宏名必须用大写字母表示
14、执行以下程序段时:           
A) 循环体将执行一次                              B) 循环体将执行两次
C) 循环体将执行无限次                            D) 系统将提示有语法错误
          x=-1;
          do  {x=x*x;    }   while(! x);
15、下列运算符中优先级最高的是______。
A) <                B) +                  C) &&                D) !=
16、不能把字符串:Hello!赋给数组b的语句是:         
A)char b[10]={'H','e','l','l','o','!'};
B)char b[10];b="Hello!";
C)char b[10];strcpy(b,"Hello!");
D)char b[10]="Hello!";
17、 请选出以下语句的输出结果:         
               printf("%d\n",strlen("\t\"\065\xff\n"));
A) 5                       B) 14               C) 8        D) 输出项不合法,无正常输出
18、以下程序的输出结果是:         
A)AfghdEFG                  B)Abfhd             C)Afghd            D)Afgd
   #include   
   main(  )
   {    char    *p1,*p2,str[50]="ABCDEFG";
        p1="abcd";      p2="efgh";
        strcpy(str+1,p2+1);    strcpy(str+3,p1+3);
        printf("%s",str);
   }
19、设有以下定义:
       int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
       int (*prt)[3]=a,*p=a[0]
     则下列能够正确表示数组元素a[1][2]的表达式是:         
A)*((*prt+1)[2])                      B)*(*(p+5))
C)(*prt+1)+2                               D)*(*(a+1)+2)
20、有以下函数:
char *fun(char *p)
{ return p; }
该函数的返回值是:        __     。
A) 无确切的值                        B) 形参p中存放的地址值
B) 一个临时存储单元的地址            D) 形参p自身的地址值二、写程序结果(每题5分,共20分)
(1)、以下程序的输出结果是:               
main( )
{ int i;
for(i=1;i<6;i++)
{ if(i%2)  {printf("#");continue;}
printf("*");
}
printf("\n");
}
输出结果:
(2)、下列程序执行后输出的结果是:
     int d=1;
     fun (int q)
     {    int d=5;
          d + =q+ +;
          printf("%d".d);
     }
     main( )
     {    int a=3;
          fun(a);
          d + = a + +;
          printf("%d\n",d);
     }
    输出结果:
(3)、下列程序执行后输出的结果是:
#inclued “stdio.h”
main()
{  int x=0,y=2,z=3;
    switch(x)
     {  case 0: switch(y==2)
                    {  case 1: printf("*");break;
                        case 2: printf("%");break;
                    }
       case 1: switch(z)
                  {  case 1: printf("$");
                      case 2: printf("*");break;
                      default:printf("#");
                  }
      }
}
输出结果:
          (4)、下列程序执行后输出的结果是:
#include<stdio.h>
   #define MIN(x,y)  (x)<(y)? (x)y)
  main()
    { int i,j,k;
      i=10; j=15;
      k=10*MIN(i,j);
      printf("%d\n",k);
    }
输出结果:三、简答题(每题6分,共30分)
(1)有如下定义: int  a[10],*p=a;  和 float a[10],*p=a; 若执行 p++; 后,p增值是否相同?并说明其原因?
(2)简述C语言中三种循环结构的特点,并各举一例?
(3)简述break;和 continue;语句的不同?
(4)分析什么是形式参数,实际参数?比较实际参数是数组名和数组元素时有何区别?
(5)简述C语言中有哪几种语句,并举例?四、编程题(每题10分,共10分)
1、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。 转载注明 www.ap5u.com  q76 129 60 21
快速回复 返回顶部 返回列表