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

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

一、单选题

   1.程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用(D)符号作为分隔符。

A.空格或逗号    B.逗号或回车    

C.逗号或分号    D.空格或回车

   2.逻辑表达式(x>0 && x<=10)的相反表达式为(A)。

       A.x<=0 || x>10            B.x<=0 && x>10

       C.x<=0 || x<=10           D.x>0 && x>10

   3.当处理特定问题时的循环次数已知时,通常采用(A)循环来解决。

       A.for      B.while      C.do-while      D.switch

   4.假定i的初值为0,则在循环语句“while(i<n) {s+=i*i; i++;}”中循环体被执行的总次数为(B)。

       A.n-1      B.n      C.n+1      D.n/2

   5.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(C)。

       A.2        B.4      C.6        D.8

   6.在下列选项中,不正确的函数原型格式为(C)。

       A.int Function(int a);    B.void Function (char);

       C.int Function(a);        D.void int(double* a);

   7.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大(C)个字节。

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

   8.假定有定义为“int m=7, *p;”,则给p赋值的正确表达式为(B)。

       A.p=m      B.p=&m      C.*p=&m    D.p=*m

   9.假定指针变量p定义为“int *p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为(A)。

       A.free(p)    B.delete(p)    C.free(*p)    D.free(&p)

   10.C语言中的系统函数fopen()是( D)一个数据文件的函数。

       A.读取      B.写入      C.关闭      D.打开

二、填空题

   1. 在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为#include。

   2. 用于从键盘上为变量输入值的标准输入函数的函数名为scanf 。

   3. 假定一个枚举类型的定义为“enum RA{ab,ac,ad,ae};”,则ac的值为_1 。

   4.double类型的长度为_8_。

   5. 执行“int x=45,y=13;printf("%d",x/y);”语句序列后得到的输出结果为_3_。

   6. 表达式x=x+y表示成复合赋值表达式为 x+=y 。

   7. 假定x=5,则执行“a=(!x? 10: 20);”语句后a的值为_20_。

   8. 假定一维字符指针数组的定义为“char* a[8];”,则该数组占用的存储空间的字节数为_32_。

   9. 假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在_0~M-1 之间。

   10. 空字符串的长度为_0_。

   11. 在函数外定义的变量,若没有被初始化则系统隐含对它所赋的初值为 0_。

   12. 若p指向x,则 *p 与x的表示是等价的。

   13. 与结构成员访问表达式(*fp).score等价的表达式为 fp->score 。

三、写出下列每个程序运行后的输出结果

   1. #include<stdio.h>

      void main() {

          int x=5;

          switch(2*x-1) {

            case 4: printf("%d ",x); break;

            case 7: printf("%d ",2*x); break;

            case 10: printf("%d ",3*x); break;

            default: printf("%s ","default");  }

          printf("%s/n","switch end.");  }

运行结果:default  switch end.

   2. #include<stdio.h>

      void main() {

          int f1,f2,i;

          f1=1;

          printf("%d ",f1);

          for(i=2;i<=5;i++) {

              f2=3*f1+1;

              printf("%d ",f2);

              f1=f2;  }

          printf("/n"); }

运行结果: 1   4   13   40   121

   3. #include<stdio.h>

      void main() {

          int a[10]={12,39,26,41,55,63,72,40,83,95};

          int i, i1=0, i2=0;

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

              if(a[i]%2==1) i1++; else i2++;

          printf("%d %d/n",i1,i2);  }

运行结果:6   4

   4. #include<stdio.h>

      #include<string.h>

      void main( ) {

          char s[15]="567891234";

          int i, n=strlen(s) ;

          for(i=0; i<n/2; i++) {

              char c=s[i];

              s[i]=s[n-1-i];

              s[n-1-i]=c; }

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

运行结果:432198765

   5. #include<stdio.h>

      int LB(int *a, int n) {

          int i,s=1;

          for(i=0;i<n;i++) s*=*a++;

          return s; }

      void main() {

          int a[]={1,2,3,4,2,4,5,2};

          int b=LB(a,4)+LB(a+3,3);

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

运行结果: b=56

6. #include<stdio.h>

      void main() {

          int i, s=0;

          for(i=1;;i++) {

              if(s>30) break;

              if(i%2==0) s+=i; }

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

运行结果:s=42

   7. #include<stdio.h>

      void main() {

          int a[9]={36,25,48,24,55,40,18,66,20};

          int i, b1, b2;

          b1=b2=a[0];

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

              if(a[i]>b1) b1=a[i];

              if(a[i]<b2) b2=a[i];  }

          printf("%d %d/n",b1,b2); }

运行结果:66   18

   8. #include<stdio.h>

      void SB(char ch) {

          switch(ch) {

            case 'A': case 'a':

                printf("WW "); break;

            case 'B': case 'b':

                printf("GG "); break;

            default:

                printf("BB "); break; } }

      void main() {

          char a1='a',a2='B',a3='f';

          SB(a1);SB(a2);SB(a3);

          printf("/n");  }

运行结果:WW   GG   BB

   9. #include<stdio.h>

      #define M 6

      void main() {

          int i,x;

          int a[M]={10,15,22,37,46,58};

          for(i=0; i<M/2; i++)

{x=a[i]; a[i]=a[M-1-i]; a[M-1-i]=x;}

          for(i=0; i<6; i++) printf("%d ",a[i]);

          printf("/n"); }

运行结果:58   46   37   22   15   10

   10. #include<stdio.h>

      struct Worker {

          char name[15]; int age; float pay; };

      void main() {

          struct Worker x={"wanghua",52,2350};

          struct Worker y, *p;

          y=x; p=&x;

        printf("%d  %7.2f/n", y.age+p->age, p->pay+20); }

运行结果:104  2370.00

   五、按题目要求编写程序或函数

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个元素之积并返回。

程序为: 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

2022广东高考志愿填报规则及注意事项04-27

2022广东高考志愿填报入口 高考志愿填报技巧04-27

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

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

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

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

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

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

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

热搜文章
最新文章