分享

高级语言程序设计A第1次作业

 启阳书社 2016-05-29
本次作业是本门课程本学期的第1次作业,注释如下:
一、单项选择题(只有一个选项正确,共11道小题)
1. 以下正确的C标识符是   
  (A) 0XH
  (B) _80
  (C) main#
  (D) A
你选择的答案: B  [正确]
正确答案:B
解答参考:
2. 以下说法中正确的是 
  (A) 一个函数在编译时被分配得到一个入口地址,这个入口地址称为函数的指针
  (B) a/=b+c;这个式子和a=a/b+c;等价
  (C) C语言开始执行程序的开始执行点是程序中第一条可执行的语句。
  (D) 对二维数组a赋值可以用这样的语句完成int a[4][]={12345678}
你选择的答案: A  [正确]
正确答案:A
解答参考:
3.

aint型变量,bfloat型变量,用下面的语句给这两个变量输入值

scanf("a=%db=%f"&a&b)

为了把10076.5分别赋给if,则正确的输入为:      
  (A) 100 76.5
  (B) a=100b=76.5
  (C) 10076.5
  (D) a=100 b=76.5
你选择的答案: B  [正确]
正确答案:B
解答参考:
4.

若有如下说明     

 char a[10]={‘a’’b’’c’’d’’e’’f’’g’’h’’i’’j’}*p=a

则输出表达式*(p+8),即printf("%c\n",*(p+8));得到

  (A) g
  (B) h
  (C) i
  (D) j
你选择的答案: C  [正确]
正确答案:C
解答参考:
5.

函数Func的功能是   

    int  Funcchar  *ptr

    {  char  *p

       p=ptr

       while *p++);

       return p-ptr-1);

   }

  (A) 比较两个字串的大小
  (B) 求字符串的长度
  (C) 将串ptr复制到p
  (D) 以上三种说法都不对
你选择的答案: B  [正确]
正确答案:B
解答参考:
6. 以下可作为函数fopen中第一个参数的正确格式是      
  (A) c:user\text.tex
  (B) c:\user\text.txt
  (C) c:user\text.tex
  (D) c:\\user\\text.txt
你选择的答案: 未选择  [错误]
正确答案:D
解答参考:
7.

若有宏定义#define PI  3.14

#define S(r)  PI*r*r

              则主函数中语句s2=S(r+3);  宏替换后的结果为       

  (A) s2=PI*r+3*r+3
  (B) s2=3.14*r+3*r+3
  (C) s2=3.14*r+3*r+3
  (D) s2= PI*r*r
你选择的答案: C  [正确]
正确答案:C
解答参考:
8. 当调用函数时,实参是一个数组名,则向函数传送的是     
  (A) 数组的长度
  (B) 数组的首地址
  (C) 数组每一个元素的地址
  (D) 数组每个元素中的值
你选择的答案: B  [正确]
正确答案:B
解答参考:
9. 若有函数声明为:void func(double *p);则以下函数调用正确的是____
  (A) double x; f(x);
  (B) double x; f(*x);
  (C) double x; f(&x);
  (D) int x; f(&x);
你选择的答案: B  [错误]
正确答案:C
解答参考:
10. 若定义typedef  union {int a; long b; double c; } TY; 则表达式sizeof(TY)的值为          
  (A) 1
  (B) 2
  (C) 4
  (D) 8
你选择的答案: D  [正确]
正确答案:D
解答参考:
11.

 要用fopen函数打开一个新的二进制文件,该文件要既能写也能读,则文件方式字符

    串应是  (10) 
  (A) “ab+”
  (B) “wb+”
  (C) “r+”
  (D) “ab”
你选择的答案: B  [正确]
正确答案:B
解答参考:

(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客观题答案。)
二、主观题(共16道小题)
12. 

main()

     { int x=2,y=-1,z=2;

               if(x

               if(y<0) z=0;

           else z+=1;

            printf(“%d\n”,z);

      }

写出程序输出结果  (1) 
参考答案: 2
13. 下面程序的运行结果是 (2)   。

void fl(void)

{int x=1;

       static y=2;

       x++;

       y++;

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

}

void main()

{ int k;

       for(k=1;k<=3;k++) fl();

}

参考答案:

2, 3 错一行扣1分

2, 4 无逗号扣1分

2, 5 无换行扣1分

14. #include stdio.h

      void main()

  {char a[61],*s;int n;

   gets(a);

   for(s=a;*s;s++) if(*s>=A && *s<=Z) *s+=32;

   puts(a);

      }

若程序的输入为SWJTU,则输出结果为  (3) 

参考答案: swjtu 
15. #include “stdio.h”

#define  N  5

int swap(int *p, int *q)

 {int  t;

  if(p

  return p

 }

void f(int a[ ],int m)

 {int  *p, *q;

  p=a;q=a+m;

  while(swap(p,q))

   {p++; q--}

 }

void main( )

 {int m,a[N];

  for(m=0;m

  f(a,N-1);

  for(m=0;m

 }

若程序的输入为8 9 2 3 4, 则输出结果为   (4)     
参考答案:4 3 2 9 8
16. 写一个程序,建立N元整型数组,然后输入一个整数x,查找x是否包含在数组中,若在,则返回第一次出现的下标以及总的出现次数;否则,输出下标为-1, 总的出现次数为0.           8分)
参考答案:

#include “stdio.h”  

#define N  8

int  locate(int a[N],int x,int *pc)

{ int i,first=-1; 

   *pc=0;   

   for(i=0;i<N;i++) if(a[i]==x) { if(*pc==0) first=i; (*pc)++; 

   return first; 

 }

void main()

{int a[N],i,count,p;

 printf(“Input %d int numbers:\n”,N); 

  for(i=0;i<N;i++) scanf(“%d”,a+i);

  printf(“Input x=“);scanf(“%d”,&x); 

  p=locate(a,x,&count); 

  printf(“First position=%d,count=%d\n”,p,count); 

}

 

(1) 正确定义变量 1

(2) 算法正确     5

(3) 正确输入     1

(4) 正确输出     1

17. 输入若干双精度实数,直到0时停止,计算并输出这些实数的平均值。
参考答案:

 #include stdio.h

void main()

{ int n=0; double a, sum=0, av;

  printf(Input double type numbers until input 0:\n);

  while(1)

  { scanf(%lf,&a); if(!a) break;

   n++;sum+=a;

}

if(n==0) printf(No input data.\n);

else { av=sum/n;

printf(av=%.4f\n,av);

               }

}

(1)    程序结构(主函数,包含文件)正确 1

(2)    正确定义计数变量以及初始化 1

(3)    正确定义求和变量并初始化 1

(4)    循环控制结构正确         1

(5)    输入语句及格式正确       1

(6)    输出语句及格式正确       1

(7)    计数、累加求和以及求均值正确  1

(8)    求均值时先判断计数变量值是否为0 1分

18. C语言的三种循环语句是,do while循环、           循环和         循环;结构化程序设计方法主张限制使用              语句。
参考答案:

1     while                  2 for               3 goto

19. 已知int a = 2, b = 3 , c=0; 执行下列语句后,写出各变量的值。

c = b++―a++ ; 变量a =      ,b=      ,c=      

参考答案:3        4           1
20. 循环语句for( i=0; i<=10; i--);  其循环的次数为___
参考答案:0
21. C语言提供了三种预处理功能,它们是:宏定义、包含文件和  
参考答案:条件编译
22. 若有定义:int a=0,b=0,c=0,d=0;则执行语句a=(b=3,c=5*b++,d=++c+1);后,变量a的值是        ,变量b的值是        ,变量c的值是         ,变量d的值是       
参考答案:

17           4_____16_____17__

23. 若有定义:int a=1,b=2,c=3,d=4;,则表达式:a<=b?a:c<=d?a:d的值是        ,执行表达式 (a>b)&& (c++) 后,c的值为       
参考答案:1       3
24. 有如下语句:char  A[ ]={ "SWJTU" }; 该字符串的长度是           A[3]=              
参考答案:5          ‘T’(允许无单引号和写ASCII84)
25. 若有定义char ch='C'; puchar((ch>='A' && ch<='Z')? (ch + 32) : ch);语句的输出结果为            
参考答案:c
26. 若有定义int a[]={ 1,2,3,4 }, *p=a+1; 则表达式*++p的值为            
参考答案:3
27. 若有类型定义typedef int Mat[10]; Mat a[5]; 表示的实际数组定义是             
参考答案:int a[5][10];

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多