电大《C语言程序设计A》练习题(4)

时间:2024-04-27 17:34:38 5A范文网 浏览: 复习资料 我要投稿

 一、单选题(每小题2分,共20分)

   1. 由C语言目标文件连接而成的可执行文件的缺省扩展名为(B)。

       A. cpp     B. exe      C. obj      D. c

   2. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为(C)。

       A. 12      B. 144      C. 156      D. 288

   3. 带有随机函数调用的表达式rand()%20的值在(C)区间内。

       A. 1~19        B. 1~20        

C. 0~19           D. 0~20

   4. for循环语句“for(i=0; i<n; i+=2) S;”中循环体S语句被执行的次数为(A)。

       A. (n+1)/2        B. n/2+1        

C. n/2-1          D. n-1

   5. 在下列的字符数组定义中,存在语法错误的是(D)。

      A. char a[20]="abcdefg";      B. char a[]="x+y=55.";

      C. char a[15]={'1','2'};     D. char a[10]='5';

   6. 若有一个函数原型为“double *function()”,则它的返回值类型为(B)。

       A. 实数型        B. 实数指针型  

C. 函数指针型    D. 数组型

   7. 在C语言中,所有预处理命令都是以(B)符号开头的。(B)

       A. *       B. #      C. &      D. @

   8. 假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行*p++后,p所指数据单元的值为(A)。

       A. 40      B. 30       C. 70        D. 10

   9. 若要使p指向二维整型数组a[10][20],则p的类型为(D)。

       A. int *   B. int **    C. int *[20]  D. int(*)[20]

   10. 表示文件结束符的符号常量为(C)

       A. eof      B. Eof      C. EOF      D. feof

二、填空题(每小题2分,共26分)

   1.一个函数定义由 函数头_和函数体两部分组成。

   2. 执行“printf("%c",'F'-2);”语句后得到的输出结果为 D 。

   3.int类型的长度为 4 。

   4. 表达式(float)25/4的值为 6.25 。

   5.若x=5,y=10,则x<=y的逻辑值为 1(或真) 。

   6. 作为语句标号使用的case和default只能用于 switch 或开关 或分情况_语句的定义体中。

   7. 在程序中执行到 return  或返回 语句时,将结束所在函数的执行过程,返回到调用该函数的位置。

   8. 假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为 M*N 。

   9. 存储字符'a'需要占用存储器的_1_个字节空间。

   10. 用于存储一个长度为n的字符串的字符数组的长度至少为_n+1_。

   11. 假定p所指对象的值为25,p+1所指对象的值为46,则执行表达式(*p)++后,p所指对象的值为_26_。

   12. 假定p是一个指向整数对象的指针,则用 *p 表示该整数对象。

   13.假定一个结构类型的定义为“struct B{int a[5]; char* b;};”,则该类型的理论长度为_24_。

三、写出下列每个程序运行后的输出结果(每小题6分,共30分)

   1. #include<stdio.h>

      void main() {

          int i, s1=0, s2=0;

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

              if(i%2) s1+=i;

              else s2+=i;

          printf("%d %d/n",s1,s2); }

运行结果: 25   20

   2. #include<stdio.h>

      const int M=20;

      void main() {

          int i=2;

          while(1) {

              if(i>M/2) break;

              if(M%i==0) printf("%d ",i);

              i++;  }

          printf("/n");  }

运行结果: 2 4 5 10

   3. #include<stdio.h>

      int a[6]={4,5,6,15,20,12};

      void main() {

          int i,s1,s2;

          s1=s2=0;

          for(i=0; i<6; i++) {

              switch(a[i]%2) {

                case 0: s2+=a[i];break;

                case 1: s1+=a[i];break; } }

          printf("%d %d/n",s1,s2);  }

运行结果:20 42

   4. #include<stdio.h>

      void main() {

          int a[3][3]={{3,5,7},{9,11,13},{6,8,20}};

          int i,*p=&a[0][0];

          for(i=0;i<9;i++) {

              if(*p>10) printf("%d ",*p);

              p++;   }

          printf("/n");  }

运行结果:11 13 20

   5. #include<stdio.h>

      #include<string.h>

      struct Worker { char name[15]; int age; float pay;};

      void main() {

          struct Worker x;

          char *t="liouting";

          int d=38; float f=400;

          strcpy(x.name,t);

          x.age=d; x.pay=f;

          x.age++; x.pay*=2;

         printf("%s  %d  %6.2f/n",x.name,x.age,x.pay); }

运行结果: liouting  39  800.00

四、写出下列每个函数的功能(每小题6分,共12分)

   1. #include<stdio.h>

      int SA(int a, int b) {

          if(a>b) return 1;

          else if(a==b) return 0;

          else return -1;  }

函数功能:比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a<b则返回-1。

   2. void Output(struct IntNode *f)  //f为单链表的表头指针

       {   if(!f) return;

           while(f) {

               printf("%d ",f->data);

               f=f->next;  }

           printf("/n");  }

   假定struct IntNode的类型定义为:

       struct IntNode { int data; struct IntNode* next;};

函数功能:遍历并输出由f所指向的单链表中每个结点的值。

五、按题目要求编写程序或函数(每小题6分,共12分)

1. 编写一个程序,计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。

程序为:

      #include<stdio.h>

      void main(){

          int i;

          int p=1;                          

          int s=1;                          

          for(i=1;i<=10;i++) {p*=3; s+=p;}  

          printf("%d/n",s); }

2. 根据函数原型“int FF(int a[], int n)”,编写函数定义,计算并返回数组a[n]中所有元素之和。

程序为:

int FF(int a[], int n) {

          int i,sum=0;                      

          for(i=0; i<n; i++) sum+=a[i];    

          return sum;  }


来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。

相关文章:

怎样提高语文成绩的几点体会04-27

学好语文不再愁的十条规律04-27

2022广东高考志愿填报时间 高考志愿填报技巧04-27

两招破解高中语文里的古诗鉴赏04-27

高中学好语文的方法和技巧04-27

学好语文重在“积累”04-27

高一语文基本知识学习方法04-27

提高高中语文写作能力的小技巧04-27

高中语文必须养成良好的学习习惯04-27

高中语文提高写作能力的技巧和方法04-27

热搜文章
最新文章