C语言第2次练习题
一. 选择题
1一个C程序的执行是________.
A.从程序的main( )函数开始执行。
B.从本程序的第一个函数开始执行。
C.从本程序第一条语句开始执行
D.#include 处开始执行
3) 定义 int a, *p1; 若使p1指向a,在程序中应使用_______
A*p1=&a;      B. p1=&a;        C. p1=a;            D. p1=*a;
4) 下列为一维数组初始化时, 正确的是_______.
A) int a[ ]={1,3,5,….15};    B) int a[5]=1;    C) int a[3]={5,6,8,3};    D) int a[5]={0};
5). 下列要将2,4,6,8存入数组a中,不正确的是______.
B) int a[4]={2,4,6,8};        B) int a[ ]={2,4,6,8};
C) int a[4]; a={2,4,6,8};        D) int a[4]; a[0]=2;a[1]=4,a[2]=6;a[3]=8;
6)下列二维数组定义并初始化中, 正确的是
A) int a[2][ ]={{3,4},{5,10,15}};
B) int a[2][3]={2,3,4,5,6,7,8,9};
C) int a[ ][3]={{0},{1,2},{3,4,5}};
D) int a[ ][4]={1,2,4,5,2,3,3,4,9,5,6,8};
7). 若有说明: int a[5][5]; 则对数组元素的正确引用是______.
A) a[3+2][3]        B) a[0,3]        C) a[4][1+2]        D) a[ ][2]
8).若有定义: char ch[ ]=”book120”; 则数组ch的存储长度是____;
A) 7          B) 8            C)9          D)10
9) 设有定义: char s[20];  向数组s中输入含有中间空格的字符串应使用的语句是______.
A)scanf(“%s”,&s);      B) scanf(“%s”,s);      C)s=getchar();      D)gets(s);
10).在数组: int a[][3]={{1},{3,2},{4,5,6},{0}}; 中, 数组元素a[2][1]的值是________.
A)3          B) 4          C) 5          D) 2
11) 以下字符串赋值错误的是________
A)char s1[ ]=abcdef;      B)char s2[10];  s2=abcdefg;
C)char *ps=abcdef;        D)char *pa;  pa=abcdefg;
12) 设有如下定义:  char s1[20 ]=”Tianjin”, s2[10 ]=”Bbeijing”;
执行语句:  strcpy(s1,s2);  printf(“%s”,s1);  后, 输出结果是:_______.
A) Tiajinn      B) Beijing      C) TianjinBeijing    D) TianBeij
指针与二维数组
13). 设有定义语句:int m[ ]={5,4,3,2,1},i=2;,下面数组元素引用错误的是____,
A)m[--i]        B)m[i*i]        C)m[m[0]]        D)m[i-2]
14. 下面的函数调用语句中fun函数的参数个数是
fun(fun(a,a+b,a+c),(a+b+c),25);
A) 3           B4          C5          D6
15)设有定义:int a[6]={1,2,3,4,5,6 }, *p=a; *(p+3)的值是
A) 3          B4          C5          D6
      二.阅读程序选择题       
       
1.有以下程序:                         
#include<stdio.h>
void f (int a, int b )
{ int c;
    c=a; a=b ; b=c;
}
void main()
{ int x =2, y = 3  ;
    f (x, y );
printf(“%d, %d \n”, x, y );
}
程序的输出结果是:
A)2,3    B)2,2    C)3,3    D)3,2
2.有以下程序:
#include <stdio.h>
void sub (int x,int y,int *z)
{  *z=x-y;  }
void main()
{  int a,b,c;
sub(10,6,&c);
sub(8,c,&b);
sub(c,b,&a);
printf(%d  %d  %d\n,a,b,c);
}
程序的输出结果是:
A) 10 8 0    B) 10 6 4    C)8 4  4    D)  0  4  4
3.有以下程序:
#include <stdio.h>
void fun(int s[ ]);
void main()
{ int a[ ]={1,2,3,4,5,6},k;
fun(a);      //数组作参数
for(k=0;k<=5;k++) printf(%d  ,a[k]);
printf(\n);
}
void fun(int s[ ])
{  int i=0;
while(i<3) { s[i]=s[i]+5;  i++; }
}
程序的输出结果是:
A) 1 2 3 4 5 6    B) 6 7 8 9 10 11    C) 6 7 8 4 5 6    D) 6 7 8 9 5 6
4. 有以下程序:
void main( )
{ int j,k,a[5]={1,2,3,4,5};
  k=a[0];
  for(j=0; j<4; j++)
a[j]=a[j+1];
  a[4]=k;
for(j=0;j<=5;j++)
printf(%d  ,a[j])
}
程序的输出结果是:
A) 1 2 3 4 5    B) 2 3 4 5 1    C) 5 1 2 3 4    D) 5 4 3 2 1
三.阅读以下程序,写出各程序运行后的结果.
1)  #include "stdio.h"
    void main( )
    { char  a[ ]=“AAAAAA”, *p;
      p=a;
      while(*p!=’\0’)
      { printf(“%s\n”,p);
        p++; }
}
2)#include <stdio.h>
#include <string.h>
void main()
{ int k=0;
char  s1[10]=”Program”, s2[5]=”Computer”;
strcat(s2,s1);
printf(“%s\n%s\n”,s1,s2);
}   
3) #include <stdio.h>
void main()
{ int j, a[ ]={1,2,3,4,10,12,13,15};
for( j=3; j>0; j--)
      switch ( j )
      { case 1:
        case 2: printf(“%d,”, a[j+4]); break;
        case 3: printf(“%d,”, a[j-1]);
        }
            printf(“\n”);
}
4) #include <stdio.h>
long fx(int n)
{  long  s;
if(n==0) s=1;
else  s=n+fx(n-2);    //递归调用
return s;
}
void main()
{  printf(%ld\n,fx(10));  }
运行结果
三.程序填空
1. 以下程序输出s数组中最大元素的下标, 在程序_____处填空完成该程序.
#include <stdio.h>
#define N 10
void main()
{ int k,i;
int s[N]={3,7,-2,19,-6,4,12,8,10,2};
for(i=0,k=0; i<N; i++)
if(s[i]>s[k])  _________;
printf(“%d\n”,k);
}
3. 以下程序求任意10个实数的最大值和最小值,填空完成该程序.
#include <stdio.h>
void main()
{ int i;
float a[10],max,min;
for(i=0;i<10;i++)  scanf(“%f”,&a[i]);
max=min= __________ ;
for(i=1;__________; i++)
{ if(max<a[i]) ______________;
if(min>a[i]) ______________;
}
printf(“最大值=%f\n”,max);
printf(“最小值=%f\n”,min);
}     
4.对输入的100个数按照由小到大的次序排序,输出排序后的结果。
#include "stdio.h"
#define SIZE 100
void main()
{  int i,j,data[SIZE],temp,min;
printf("请输入 %d 个整数:",SIZE);       
for (i=0;i<SIZE;i++)  scanf("%d",_____________ );
for (i=0;i<SIZE;i++)
{ min =i;                     

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。