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

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

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

   1. C语言源程序文件的缺省扩展名为(D)。

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

   2.设x和y均为逻辑值,则x && y为真的条件是(A)。

       A. 它们均为真      B. 其中一个为真

       C. 它们均为假      D. 其中一个为假

   3. 在下列的符号常量定义中,正确的定义格式为(C)。

       A. #define M1         B. const int M2 20

       C. #define M3 10      D. const char mark

   4. for循环语句能够被改写为(D)语句。

       A. 复合      B. if      C. switch     D. while

   5. 在下面的一维数组定义中,错误的定义格式为(C)。

      A. int a[]={1,2,3}      B. int a[10]={0}

      C. int a[]              D. int a[5]

   6.下面的函数原型声明中存在语法错误的是(C)。

       A. AA(int a, int b)           B. AA(int, int)

       C. AA(int a; int b;)           D. AA(int a, int)

7. 假定a为一个数组名,则下面存在错误的表达式为的(B)。

       A. a[i]      B. *a++      C. *a      D. *(a+1)

   8. 假定有定义为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为(D)。

       A. x=pa[3]      B. x=*(a+3)    

C. x=a[3]       D. x=*pa+3

   9.char类型的长度为(A)个字节。

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

   10. 向一个二进制文件中写入信息的函数为(D)。

       A. fgets()      B. fputs()      

C. fread()      D. fwrite()

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

   1. C语言中的每条复合语句以_ }(或右花括号)作为结束符。

   2. 在#include命令中所包含的文件,可以是头文件,也可以是_程序_文件。

   3. 十进制数35对应的八进制数为 43 。

   4. 假定x=5,则表达式2+x++的值为 7 。

   5.增量表达式++y表示成赋值表达式为y=y+1 。

   6.若x=5,y=10,则x>y的值为0(假)。

   7. 假定二维数组的定义为“int a[3][5];”,则该数组所含元素的个数为15 。

   8. 执行“typedef int ABC[10];”语句把ABC定义为具有10个整型元素的_数组_类型。

   9. strcat()函数用于连接两个字符串。

   10.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为 25 。

   11. 若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为(char*)p 。

   12. NULL是一个符号常量,通常作为空指针值,它对应的值为 0  。

   13. 假定要动态分配一个类型为struct Worker的对象,并由r指针指向这个对象,则使用的表达式为  struct Worker* r  =malloc(sizeof(struct Worker))。

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

   1. #include<stdio.h>

      void main() {

          int i,s=0;

          for(i=1;i<6;i++) s+=i*i;

          printf(“s=%d/n”,s); }

运行结果: s=55

   2. #include<stdio.h>

      #define N 6

      void main() {

          int i,a[N]={2,5,8,10,15,21};

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

              if(a[i]%5) printf("%d ",a[i]);

          printf("/n");  }

运行结果: 2   8   21

   3. #include<stdio.h>

      #include<string.h>

      void main() {

          int i;

          unsigned int len;

          char* a[5]={"student","worker","cadre","soldier","zzeasan123"};

          len=strlen(a[0]);

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

              if(strlen(a[i])>len) len=strlen(a[i]);

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

运行结果:10

   4. #include<stdio.h>

       void main() {

           int a,b;

           for(a=2,b=3; b<20;) {

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

               a=a+b;

               b=a+b; }

           printf("%d %d/n",a,b);  }

运行结果:2   3   5   8   13   21

   5. #include<stdio.h>

      void LE(int* a, int* b) {

          int x=*a;

          *a=*b; *b=x;  }

      void main() {

          int x=15, y=26;

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

          LE(&x,&y);

          printf("%d %d/n",x,y); }

运行结果:15   26

         26   15

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

   1. 编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。

#include<stdio.h>                              

      void main() {

          int i;                                  

          for(i=3; i<=50; i++)                      

              if(i%3==0 || i%5==0) printf("%d ",i);  

          printf("/n");  }

   2. 编写一个递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素之积并返回。

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

          if(n<=0) {printf("n值非法/n"),exit(1);}    

          if(n==1) return a[n-1];                    

          else return a[n-1]*FF(a,n-1);  }


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

相关文章:

2022西藏高考志愿填报时间 高考志愿填报技巧04-27

高考语文备考:《劝学》情景默写题汇总04-27

高考语文备考:诗歌鉴赏高分攻略04-27

高考语文作文备考:议论文才能拿高分04-27

高考语文备考:《逍遥游》情景默写题汇总04-27

高考语文备考:成语题总丢分的12个错误04-27

高考语文备考:文言文阅读掌握这种方法才能拿高分04-27

高考语文备考:文言文解题技巧04-27

高考语文备考:文言文人物传记阅读总结04-27

高考语文备考:论述类文本阅读选择题怎么做才能拿高分04-27

热搜文章
最新文章