| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:想学好c语言
只看楼主 加入收藏
桃儿熟
Rank: 1
来 自:浙江 宁波
等 级:新手上路
帖 子:4
专家分:3
注 册:2010-3-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
想学好c语言
、选择题((1)--(20)每小题1分,(21)--(30)每小题2分,共40分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将选项正确在答题卡相应位置上标出。

(1)、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是
A)有零个或多个输入     B)有零个或多个输出  
C)有穷性               D)可行性

(2)、 以下叙述中正确的是()
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译

(3)、 以下符合C语言语法的实型常量是()
A)1.2E0.5    B)3.14.159E     C).5E-3     D)E15

(4)、 以下4组用户定义标识符中,全部合法的一组是()
A)_main        B)If        C)txt          D)int
   enclude         -max          REAL          k_2
   sin             turbo           3COM          _001

(5)、 若以下选项中的变量已正确定义,则正确的赋值语句是()
A)x1=26.8%3      B)1+2=x2    C)x3=0x12    D)x4=1+2=3;

(6)、 设有以下定义
int   a=0;  
double  b=1.25;
char c=’A’;
#define   d   2
则下面语句中错误的是()
A)a++;     B)b++     C)c++;     D)d++;

(7)、 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式(a+b)h/2 计算结果不相
符的是()
A)(a+b)*h/2    B)(1/2)*(a+b)*h    C)(a+b)*h*1/2    D)h/2*(a+b)

(8)、 有以下程序
main( )
{
int x=102,y=012;
printf(“%2d,%2d\n”,x,y);
}  执行后输出结果是()
A)10,01    B)02,12   C)102,10    D)02,10

(9)、以下4个选项中,不能看作一条语句的是()
A){;}     B)a=0,b=0,c=0;     C)if(a>0);    D)if(b==0) m=1;n=2;

(10)、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()
A)scanf(“%d”,pa);       B)scanf(“%d”,a);
C)scanf(“%d”,&pa);     D)scanf(“%d”,*pa);

(11)、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()
A)if((a>b)&&(b>c)) k=1;                B) if((a>b)||(b>c))  k=1
    else  k=0;
C)if(a<=b)  k=0;                           D)if(a>b)  k=1;
  else if(b<=c)  k=1;                         else if(b>c)  k=1;
                                                       else k=0;
(12)、有以下程序
main( )
{  char k;   int   i;
   for(i=1;i<3;i++)
     {  scanf(“%c”,&k);
        switch(k)
          {  case ‘0’:  printf(“another\n”);
             case ‘1’:  printf(“number\n”);
           }
      }
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()
A) another        B)another       C)another       D)number
   number            number         number            number
                    another             number           

(13)、有以下程序
main( )
{  int x=0,y=5,z=3;
   while(z-->0&&++x<5)    y=y-1;
   printf(“%d,%d,%d\n”,x,y,z);
}   程序执行后的输出结果是()
A)3,2,0      B)3,2,-1      C)4,3,-1      D)5,-2,-5

(14)、有以下程序
main( )
{  int i,s=0;
   for(i=1;i<10;i+=2)  s+=i+1;
   printf(“%d\n”,s);
}      程序执行后的输出结果是()
A)自然数1~9的累加和           B)自然数1~10的累加和
C)自然数1~9中的奇数之和       D)自然数1~10中的偶数之和

(15)、有以下程序
main( )
{  int i,n=0;
   for(i=2;i<5;i++)
     {  do  
          {  if(i%3)  continue;
             n++;
          } while(!i);
         n++;
     }
   printf(“n=%d\n”,n);
}   程序执行后的输出结果是()
A)n=5      B)n=2      C)n=3        D) n=4

(16)、若程序中定义了以下函数
    double  myadd(double a,double b)
     { return (a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()
A)double myadd(double a,b);                B)double myadd(double,double);
C)double myadd(double b,double a);        D)double myadd(double x,double y);

(17)、有以下程序
  char fun(char x , char y)
   {  if(x<y)   return x;
      return y;
   }
  main( )
  {  int a=’9’,b=’8’,c=’7’;
     printf(“%c\n”,fun(fun(a,b),fun(b,c)));
  }   程序的执行结果是()
A)函数调用出错      B)8       C)9      D)7

(18)、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()
A)p=1;     B)*q=2;     C)q=p;     D)*p=5;

(19)、有以下程序
void f(int v , int  w)
{  int t;
   t=v;v=w;w=t;
}
main( )
{  int x=1,y=3,z=2;
   if(x>y)       f(x,y);
   else if(y>z) f(y,z);
       else      f(x,z);
   printf(“%d,%d,%d\n”,x,y,z);
}   执行后输出结果是()
A)1,2,3     B)3,1,2      C)1,3,2      D)2,3,1

(20)、有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是()
A)5      B)6      C)8      D)9

(21)、有以下程序
main( )
{  char a[]=”abcdefg”,b[10]=”abcdefg”;
   printf(“%d  %d\n”,sizeof(a),sizeof(b));
}   执行后输出结果是()
A)7   7      B)8  8     C)8  10     D)10  10

(22)、有以下程序
void swap1(int c[])
{ int t;
  t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{  int t;
   t=c0;c0=c1;c1=t;
}
main( )
{ int a[2]={3,5},b[2]={3,5};
  swap1(a);  swap2(b[0],b[1]);
  printf(“%d  %d  %d  %d\n”,a[0],a[1],b[0],b[1]);
}   其输出结果是()
A)5 3 5 3      B) 5 3 3 5     C)3 5 3 5      D)3 5 5 3

(23)、有以下程序
void sum(int *a)
{ a[0]=a[1];}
main( )
{  int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
   for(i=2;i>=0;i--)   sum(&aa[i]);
   printf(“%d\n”,aa[0]);
}    执行后的输出结果是()
A)4      B)3      C)2      D)1

(24)、有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
  {  i=j;
     if(i>2)  i=3-j;
     s+=b[i][j];
  }
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(a));
}   执行后的输出结果是()
A)12      B)11      C)18      D)16

(25)、有以下定义
#include <stdio.h>
char a[10],*b=a;
不能给数组a输入字符串的语句是()
A)gets(a)      B)gets(a[0])      C)gets(&a[0]);      D)gets(b);

(26)、有以下程序
main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
  printf(“%d\n”,strlen(p[4]));
}  执行后输出结果是()
A)2       B)3       C)4      D)5

(27)、有以下程序
int a=2;
int f(int *a)
{return (*a)++;}
main( )
{  int s=0;
     { int a=5;
       s+=f(&a);
     }
    s+=f(&a);
    printf(“%d\n”,s);
}  执行后输出结果是()
A)10      B)9      C)7      D)8

(28)、有以下程序
     #define  f(x)    x*x
     main( )
     {  int i;
        i=f(4+4)/f(2+2);
        printf(“%d\n”,i);
     }  执行后输出结果是()
A)28      B)22      C)16      D)4

(29)、设有以下语句
typedef struct  s
{  int g;  char  h;}   T;
则下面叙述中正确的是()
A)可用s定义结构体变量      B)可以用T定义结构体变量
C)s是struct类型的变量      D)T是struct  s类型的变量

(30)、有以下程序
struc stu{
          char name[10];
          int num;
        };
void f1(struct stu c)
{  struct stu  b={“LiSiGuo”,2042};
   c=b;
}
void f2(struct stu *c)
{  struct stu  b={“SunDan”,2044};
   *c=b;
}
main( )
{  struct  stu   a={“YangSan”,2041},b={“WangYin”,2043};
   f1(a);f2(&b);
   printf(“%d  %d\n”,a.num,b.num);
}  执行后的输出结果是()
A)2041 2044    B)2041 2043     C)2042  2044       D)2042  2043

二、填空题(每空2分,共30分),请将每空的正确答案写在答题卡上【1】~【15】序号的横线上。

(1)、已知字符A的ACSII码值为65,以下语句的输出结果是【1】
      char ch=’B’;
      printf(“%c %d\n”,ch,ch);
(2)、有以下语句段   
       int  n1=10,n2=20;
       printf(“【2】”,n1.n2);
     要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
     n1=10
     n2=20
(3)、有以下程序
      main( )
      { int t=1,i=5;
       for(;i>=0;i--)  t*=i;
       printf(“%d\n”,t);
      }   执行后输出结果是【3】。
(4)、有以下程序
     main( )
     {  int n=0,m=1,x=2;
        if(!n)   x-=1;
        if(m)   x-=2;
        if(x)   x-=3;  
       printf(“%d\n”,x);
     }    执行后输出结果是【4】。
(5)、有以下程序
   #include <stdio.h>
   main( )
   {  char ch1,ch2;  int n1,n2;
       ch1=getchar();  ch2=getchar();
       n1=ch1-‘0’;  n2=n1*10+(ch2-‘0’);
       printf(“%d\n”,n2);
   }   程序运行时输入:12<回车>,执行后输出结果是【5】。
(6)、有以下程序
    void f( int y,int *x)
    {y=y+*x;  *x=*x+y;}
    main( )
    {  int x=2,y=4;
       f(y,&x);
       printf(“%d   %d\n”,x,y);
    }         执行后输出的结果是【6】。
(7)、函数fun的功能是计算xn
     double fun(double x,int n)
    {  int i; double y=1;
       for(i=1;i<=n;i++)  y=y*x;
       return y;
    }   

主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+b)3。       实现这一计算的函数调用语句为【7】。

(8)、下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如:
   
            1  2  3  4                            1  5  9   13
              5  6  7  8                            2  6  10  14  
  A=    9  10  11  12                A’=  3  7   11   15
             13   14  15  16                           4   8   12   16
请填空
#define   N    4
void  rotate(int a[][N])
{  int i,j,t;
   for(i=0;i<N;i++)
     for(j=0; 【8】;j++)
        {  t=a[i][j];
           【9】;
           a[j][i]=t;
        }
}

(9)、以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char *s,char *t)
{ while(*s++=【10】);}
main( )
{  char str1[100],str2[]=”abcdefgh”;
   sstrcpy(str1,str2);
   printf(“%s\n”,str1);
}

(10)、下列程序的运行结果是:【11】
#include >string.h>
char *ss(char *s)
{ return s+strlen(s)/2;}
main( )
{  char *p,*str=”abcdefgh”;
   p=ss(str);   printf(“%s\n”,p);
}

(11)、下面程序的运行结果是:【12】
int  f( int a[], int  n)
{ if(n>1)  return a[0]+f(&a[1],n-1);
else     return a[0];
}
main ( )
{  int aa[3]={1,2,3},s;
   s=f(&aa[0],3);   printf(“%d\n”,s);
}

(12)、以下程序中给指针p分配三个double型动态内存单元,请填空。
# include <stdlib.h>
main ( )
{  double *p;
   p=(double *) malloc(【13】);
   p[0]=1.5;p[1]=2.5;p[2]=3.5;
   printf(“%f%f%f\n”,p[0],p[1],p[2]);
}

(13)、以下程序的运行结果是【14】
# include <string.h>
typedef struct student{
                     char name[10];
                     long sno;
                     float score;
                  }STU;
main( )
{  STU  a={“zhangsan”,2001,95},b={“Shangxian”,2002,90},c={“Anhua”,2003,95},d,*p=&d;
   d=a;
   if(strcmp(a.name,b.name)>0)   d=b;
   if(strcmp(c.name,d.name)>0)   d=c;
   printf(“%ld%s\n”,d.sno,p->name);
}

(14)、以下sum函数的功能是计算下列级数之和。
S=1+x+x2/2!+x3/3!+........+xn/n!
请给函数中的各变量正确赋初值。
double  sum(  double  x, int  n )
{  int i;  double  a,b,s;
   【15】
   for( i=1;i<=n;i++)
   {  a=a*x;   b=b*i;    s=s+a/b; }
   return  s;
}

 

三、编程题(共三道题,(1)、(2)每小题9分,(3)小题12分,共30分),将程序写在答题卡的背面。

(1)编程,输入一个整数,打印出它是奇数还是偶数。

(2)编程统计输入的一行中大写字母的个数。

(3)编写函数把数组中所有奇数放到另一数组中返回。
搜索更多相关主题的帖子: c语言 
2010-03-06 13:03
q260548893
Rank: 2
等 级:论坛游民
帖 子:24
专家分:46
注 册:2010-2-4
收藏
得分:3 
你这是干什么啊?
2010-03-06 13:29
zhoujun221
Rank: 2
等 级:论坛游民
帖 子:19
专家分:15
注 册:2009-7-28
收藏
得分:3 
楼主能发下答案吗?
   谢谢了!
 
2010-03-06 13:34
qw1181810017
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2010-3-6
收藏
得分:3 
呵呵
2010-03-06 21:39
xiaojiang90
Rank: 1
等 级:新手上路
帖 子:4
专家分:6
注 册:2010-3-6
收藏
得分:3 
..
2010-03-06 22:56
快速回复:想学好c语言
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018856 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved