加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

《C语言程序设计》核心试题(5)

(2011-09-13 23:04:59)
标签:

c语言

分类: 教学文件
第六部分:字符型数据


一、选择题
1)以下叙述中正确的是
  A)调用printf函数时,必须要有输出项
  B)使用putchar函数时,必须在之前包含头文件stdio.h
  C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
  D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII

2)有以下程序
 main()
 { char  a1='M', a2='m';
   printf("%c\n", (a1, a2) ); }
以下叙述中正确的是
  A)程序输出大写字母  
  B)程序输出小写字母m
  C)格式说明符不足,编译出错  
  D)程序运行时产生出错信息

3)有以下程序
 #include    <stdio.h>
 main()
 { char  c1='1',c2='2';
   c1=getchar();  c2=getchar();    putchar(c1);    putchar(c2);
 }
当运行时输入:a<回车 后,以下叙述正确的是
  A)变量c1被赋予字符ac2被赋予回车符
  B)程序将等待用户输入第2个字符
  C)变量c1被赋予字符ac2中仍是原有字符2
  D)变量c1被赋予字符ac2中将无确定值

(4)
数字字符0ASCII值为48,若有以下程序
main()
  char  a='1',b='2';
    printf("%c,",b++);
    printf("%d\n",b-a);
}
程序运行后的输出结果是     
  A3,2
  B50,2
  C2,2
  D2,50

(5)
有以下程序
main()
{ char a='a',b;
  print("%c,",++a);
  printf("%c\n",b=a++);

程序运行后的输出结果是
  A) b,b    
  B)  b,c   
  C)a,b    
  D) a,c

(6)
有以下程序
main()
{ char a,b,c,d;
  scanf("%c,%c,%d,%d",&a,&b,&c,&d);
  printf("c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是
  A) 6,5,A,B   
  B) 6,5,65,66  
  C) 6,5,6,5   
  D) 6,5,6,6

(7)
有以下程序
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

(8)
已定义ch为字符型变量,以下赋值语句中错误的是
  A) ch="\";     
  B) ch=62+3;    
  C) ch=NULL;     
  D) ch="\xaa";

(9)
已定义c为字符型变量,则下列语句中正确的是
  A) c=‘97’;   
  B) c="97";    
  C) c=97;       
  D) c="a";

(10)
有以下程序段
int m=0,n=0; char  c=‘a’;
 scanf("%d%c%d",&m,&c,&n);
 printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10A10<回车>,则输出结果是:
  A) 10,A,10   
  B) 10,a,10   
  C) 10,a,0  
  D) 10,A,0

(11)
已知大写字母AASCII码值是65,小写字母aASCII码是97,则用八进制表示的字符常量‘\101’
  A)  字符 
  B)字符 
  C)字符 
  D)非法的常量

(12)
若变量aint类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是
  A) a的值是字符      
  B) a的值是浮点型
  C) 不允许字符型和浮点型相加  
  D) a的值是字符‘A’ASCII值加上1

(13)
以下选项中合法的字符常量是
  A)“B”      
  B) ‘\010’  
  C) 68          
  D) D

(14)
以下程序的输出结果是
main()
{ char  c=’z’;
printf(“%c”,c-25);
}
  A) a    
  B) Z      
  C) z-25     
  D) y

(15)
以下选项中,非法的字符常量是
  A) ‘\t’     
  B) ‘\17’      
  C“n”      
  D) ‘\xaa’

(16)
若变量cchar类型,能正确判断出c为小写字母的表达式是
  A) ‘a’<=c<= ‘z’         
  B) (c>= ‘a’)||(c<= ‘z’)
  C) (‘a’<=c)and (‘z’>=c)     
  D) (c>= ‘a’)&&(c<= ‘z’)

(17)
有如下程序段
int   a=14,b=15,x;
char  c=’A’;
x=(a&&b)&&(c<’B’);
执行该程序段后,x的值为
  A) ture           
  B) false          
  C) 0             
  D) 1

(18)
下列程序执行后的输出结果是
  A) G          B) H                C) I             D) J
    
 main()
     { int x='f'; printf("%c \n",'A'+(x-'a'+1)); }

(19)
以下程序的输出结果是
  A) 编译不通过,无输出        
  B) aceg
  C) acegi                    
  D) abcdefghi
    main(  )
        int    i

           for(i='A'
i<'I'i++i++)  printf("%c"i+32)
           printf(" \n")

     }

(20)
在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为
  A) ABCdef        
  B) abcDEF         
  C) abc           
  D) DEF
         #include<stdio,h>
         main()
         char    ch;
            while((ch=getchar())!='\n')
            if(ch>='A' && ch<='Z') ch=ch+32;
               else if(ch>='a' && ch<='z') ch=ch-32;
               printf("%c",ch);
         }
         printf("\n");
         }

(21)
运行以下程序后,如果从键盘上输入 china#<回车>,则输出结果为
  A) 2,0           
  B) 5,0            
  C) 5,5            
  D) 2,5
       #include<stdio,h>
       mair()
       { int v1=0,v2=0;
         char ch;
         while((ch=getchar())!='#')
             switch(ch)
             { case  'a';
               case  'h';
               default;    v1++;
               case   '0'; v2++;
             }
       printf("%d,%d\n",v1,v2);
       }

(22)
下列不正确的转义字符是
  A) '\\'    
  B) '\"    
  C) '074'    
  D) '\0'

(23)
C语言中,合法的字符常量是
  A) ‘\084'        
  B) ‘\x43'   
  C) ‘ab'           
  D) “\0”

(24)
若有以下定义和语句
     char c1='b',c2='e';
     printf("%d,%c\n",c2-c1,c2-'a'+"A");
    
则输出结果是:
  A)2,M                       
  B)3,E
  C)2,E                       
  D)输出项与对应的格式控制不一致,输出结果不确定

(25)
已知字母AASCII码为十进制的65,下面程序的输出是
  A) 67,D          
  B) B,C          
  C) C,D           
  D) 不确定的值
main()
{ char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);}

(26)
chchar型变量,其值为A,且有下面的表达式:
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
上面表达式的值是
  A) A    
  B) a              
  C) Z              
  D) z

(27)
已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是 27
# include <stdio.h>
main()
     char  c1='A',  c2='Y';
       printf("%d,%d\n",c1,c2);    }
  A) 因输出格式不合法,输出错误信息  
  B6590  
  CA 
  D6589

(28)
有以下程序:
# include<stdio.h>
main()
int c;
   while((c=getchar())!='\n')
   switch(c-'2')
       case 0:
          case 1: putchar(c+4);
          case 2: putchar(c+4);break;
          case 3: putchar(c+3);
          case 4: putchar(c+2);break; }  }
  printf("\n");   }
从第一列开始输入以下数据,<CR>代表一个回车符。
2743<CR>
 
程序的输出结果是 【28】 。
  A) 668977     
  B) 668966    
  C) 6677877     
  D) 6688766

二、填空题:
1)已知字母AASCII码为65。以下程序运行后的输出结果是  1 
 main()
 { char  a, b;
   a='A'+'5'-'3';    b=a+'6'-'2' ;
   printf("%d  %c\n", a, b);
 }

(2)
以下程序运行后的输出结果是
main()
{
   char c1,c2;
   for(c1='0',c2='9';c1<c2;c1++,c2--)
      printf("%c%c",c1,c2);
   printf("\n");
}

(3)
已知字符AASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>.输出结果是  
#include "stdio.h"
main()
{
   char a,b;
   a=getchar(); scanf("%d",&b);
   a=a-'A'+'0';
   b=b*2;
   printf("%c  %c\n",a,b);
}

(4)
已知字符AACSII码值为65,以下语句的输出结果是【4
char ch=’B’;
printf(“%c %d\n”,ch,ch);

(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)
以下程序运行后的输出结果是 6 
main()
{ char  m;
m=‘B’+32;   printf("%c\n",m);
}

(7)
执行以下程序后,输出‘#’号的个数是 7
#include  <stdio.h>
main()
{ int  i,j;
for(i=1; i<5; i++)
for(j=2; j<=i; j++)  putchar('#');
}

(8)
若有以下程序
main()
char a;
 a='H'-'A'+'0';
 print("%c\n",a);
}
执行后的输出结果是 8

(9)
有以下程序:
#include <stdio.h>
main()
{ char c;
while((c=getchar( ))!=’?’)  putchar(--c);
}
程序运行时,如果从键盘输入:YN<回车>,则输出结果为   [9]  

(10)
下列程序段的输出结果是 10
int  n=’c’;
switch(n++)
default: printf(“error”);break;
   case ‘a’:case ‘A’:case ‘b’:case ‘B’:printf(“good”);break;
   case ‘c’:case ‘C’:printf(“pass”);
   case ‘d’:case ‘D’:printf(“warn”);
}

(11)
若输入字符串:abcde<回车>,则以下while循环体将执行 [11] 次。
While((ch=getchar())==’e’) printf(“*”);

答案:
一、选择题
01) 
  02)   03)   04)   05) 

06)   07)   08)   09)   10) A

11) 
  12)   13)   14)   15) 

16)   17)   18)   19)   20) B

21) 
  22)   23)   24)   25) 

26)   27)   28)   

二、填空题

(1) 67 G

(2) 0918273645

(3)  1B

(4) B 66

(5) 12

(6) b

(7) 6

(8) 7

(9) X

(10) passwarm

(11) 0

 

第七部分 :函数


一、选择题
1)以下关于函数的叙述中正确的是
  A)每个函数都可以被其它函数调用(包括main函数)
  B)每个函数都可以被单独编译
  C)每个函数都可以单独运行
  D)在一个函数内部可以定义另一个函数

2)设函数fun的定义形式为
  void  fun(char  ch, float  x )  { …  }
则以下对函数fun的调用语句中,正确的是
  Afun("abc",3.0);     
  Bt=fun('D',16.5);
  Cfun('65',2.8);      
  Dfun(32,32);

(3)
有以下程序
int  f1(int  x,int  y){return  x>y?x:y;}
int  f2(int  x,int  y){return  x>y?y:x;}
main()
  int  a=4,b=3,c=5,d=2,e,f,g;
    e=f2(f1(a,b),f1(c,d));
    f=f1(f2(a,b),f2(c,d));
    g=a+b+c+d-e-f;
    printf("%d,%d%d\n",e,f,g);
}
程序运行后的输出结果是                 
  A437
  B347
  C527
  D257

4)有以下程序
#define   3
#define  F(int  x)   return  (P*x*x);}
main()
{
   printf("%d\n",F(3+5));
}
程序运行后的输出结果是                    
  A192
  B29
  C25
  D)编译出错

(5)
若程序中定义了以下函数
       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);

(6)
有以下程序
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    
  C    
  D7

(7)
有以下程序
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

(8)
若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是
  A) 调用可以作为独立的语句存在 
  B) 调用可以作为一个函数的实参
  C) 调用可以出现在表达式中  
  D) 调用可以作为一个函数的形参

(9)
有以下函数定义:
void fun( int  n,  double  x)  { …… }
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
  A) fun(int  y,double  m);      
  B) k=fun(10,12.5);
  C) fun(x,n);                  
  D) vold fun(n,x);

(10)
有以下程序
fun(int  a, int b)
if(a>b)   return(a);
else      return(b);
}
main()
  int   x=3, y=8, z=6,  r;
    r=fun (fun(x,y), 2*z);
   printf("%d\n", r);
 }
程序运行后的输出结果是
  A) 3          
  B) 6          
  C) 8          
  D) 12

(11)
在一个C程序中
  A) main函数必须出现在所有函数之前 
  B) main函数可以在任何地方出现
  C) main函数必须出现在所有函数之后 
  D) main函数必须出现在固定位置

(12)
有以下程序
int fl(int x,int y)
 return x>y?x:y; }
int f2(int x,int  y)
 return x>y?y:x; }
main()
int  a=4,b=3,c=5,d,e,f

 d=f1(a,b); d=f1(d,c);
e=f2(a,b); e=f2(e,c);
 f=a+b+c-d-e;
 printf("%d,%d,%d\n",d,f,e);
}
执行后输出结果是
  A) 3,4,5   
  B) 5,3,4  
  C) 5,4,3   
  D) 3,5,4

(13)
有如下程序
void   f(int   x,int y)
int t;
 if(x<y){ t=x; x=y; y=t; }
}
main()
int a=4,b=3,c=5;
 f(a,b);   f(a,c);  f(b,c);
 printf("%d,%d,%d\n",a,b,c);
}
执行后输出结果是
  A) 3,4,5   
  B) 5,3,4  
  C) 5,4,3  
  D) 4,3,5

(14) C
语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是
  A) void      
  B) int   
  C) float  
  D) double

(15)
有以下程序
float fun(int x,int y)
{ return(x+y); }
main()
  int a=2,b=5,c=8;
printf(“%3.0f\n”,fun(int)fun(a+c,b),a-c));
}
程序运行后的输出结果是
  A) 编译出错  
  B)   
  C) 21   
  D) 9.0

(16)
若有以下程序
#include    <stdio.h>
void    f(int  n);
main()
void  f(int  n);
 f(5);
}
void f(int  n)
printf("%d\n",n);  }
则以下叙述中不正确的是
  A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
  B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
  C) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
  D) 函数f无返回值,所以可用void将其类型定义为无值型

(17)
以下函数值的类型是
fun ( float  x )
  float   y;
y= 3*x-4;
return  y;
}
  A) int         
  B) 不确定       
  C) void       
  D) float

(18)
以下所列的各函数首部中,正确的是
  A) void play(var :Integer,var b:Integer)
  B) void play(int a,b)
  C) void play(int a,int b)
  D) Sub play(a as integer,b as integer)

(19)
以下程序的输出结果是
  A) 0               
  B) 29    
  C) 31    
  D) 无定值
fun(int  x, int  y, int  z)
z=x*x+y*y;  }
main()
int  a=31;
   fun(5,2,a);
   printf(“%d”,a);
}

(20)
有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5);
该函数调用语句中,含有的实参个数是
  A) 3              
  B) 4              
  C) 5             
  D) 有语法错

(21)
有如下程序
int runc(int a,int b)
  return(a+b);}
main0
  int   x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);
}
该程序的输出的结果是
  A) 12             
  B) 13             
  C) 14            
  D) 15

(22)
以下叙述中不正确的是
  A) 在不同的函数中可以使用相同名字的变量
  B) 函数中的形式参数是局部变量
  C) 在一个函数内定义的变量只在本函数范围内有效
  D) 在一个函数内的复合语句中定义的变量在本函数范围内有效

(23)
有以下程序
viod fun (int    a,int   b,int  c)
{ a=456;  b=567;   c=678;}
main()
{ int x=10, y=20,z=30;
fun (x,y,z);
printf("%d,/%d\n",c,d);
}
输出结果是
  A)30,20,10   
  B)10,20,30   
  C) 456,567,678    
  D) 678,567,456

(24)
有以下程序
include    "atdio.h"
int   abc(int u,intv);
main ()
{ int a=24,b=16,c;
  c=abc(a,b);
  printf('%d\n",c);
}
nt abc(int u,int v)
{ int  w;
  while(v)
  { w=u%v;  u=v;  v=w }
  return u;
}
输出结果是
  A) 6             
  B) 7               
  C) 8               
  D) 9

(25)
以下说法中正确的是
  A) C语言程序总是从第一个的函数开始执行
  B) C语言程序中,要调用的函数必须在main()函数中定义
  C) C语言程序总是从main()函数开始执行
  D) C语言程序中的main()函数必须放在程序的开始部分

(26)
请读程序:
#include<stdio.h>
func( int a, int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=6, y=7, z=8, r;
r=func( x--,y==,x+y),z--);
printf("%d\n",r);
}
上面程序的输出结果是
  A) 11            
  B) 20             
  C) 21             
  D) 31


二、填空题
1)有以下程序
 int  sub(int  n)  return (n/10+n);  }
 main()
 { int  x,y;
   scanf("%d",&x);
   y=sub(sub(sub(x)));
   printf("%d\n",y);
 }
若运行时输入:1234<回车>,程序的输出结果是  1  

(2)
通过函数求f(x)的累加和,其中fx)=x21
main()
{
   printf("The sum=%d\n",SunFun(10));
}
SunFun(int n)
{
   int x,s=0;
   for(x=0;x<=n;x++)  s+=F
2 ;
   return s;
}
F( int x)
return 
3 );}

(3)
函数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。实现这一计算的函数调用语句为【4

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

(5)
以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
int fun(int  n)
{ int  n=0,f=1, i;
for (i=1; i<=n; i++)
{ m+=i*f;
f= 
6 
}
return  m;
}
main()
{ printf("m=%d\n", 
7 );}

(6)
请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
8(double,double); 
main()
double   x,y;
scanf("",&x,&y);
printf("\n",max(x,y));
}
double max(double   a,double  b)
  return (a>b ? a:b) :}

(7)
若有以下程序
int  f(int x,int y)
return(y-x)*x; }
main()
int a=3,b=4,c=5,d;
 d=f(f(3,4),f(3,5));
 printf("%d\n",d);
}
执行后输出的结果是【9】。

(8)
以下程序运行后的输出结果是   [10]  
void fun(int x,int y)
x=x+y;y=x-y;x=x-y;
printf(“%d,%d,”,x,y);    }
main()
int x=2,y=3;
fun(x,y);
printf(“%d,%d\n”,x,y);
}

(9)
函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include  “math.h”
double  pi(long n)
  double  s=0.0;    long i;
for(i=1;i<=n;i++)s=s+  [11] ;
return(sqrt(6*s));
}

(10)
下面程序的输出是 12
unsigned fun6( unsigned num)
{ unsigned k=1;
do {
k*=num;
num/=10;
} while(num);
return(k);}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}

(11)
下面pi函数的功能是根据以下的公式,返回满足精度ε要求的π值。请填空。
 
double pi(double eps)
{ double s=0.0, t=1.0;
int n;
for( 
13  ; t>eps; n++)
{ s+=t;
t=n*t/(2*n+1);}
return(2.0 * 
14  );}

答案:
一、选择题
01) 
  02)   03)   04)   05) 

06)   07)   08)   09)   10) D

11) 
  12)   13)   14)   15) 

16)   17)   18)   19)   20) A

21) 
  22)   23)   24)   25) 

26) 

二、填空题

(1) 10

(2) x

(3) x*x+1

(4) fun(a,4)+fun(b,4)-fun(a+b,3);

(5) a=1.0;b=1.0;s=1.0;

(6) -f

(7) fun(10)

(8) double max

(9) 9

(10) 3,2,2,3

(11) 1.0/(i*i)

(12) 12

(13) n=1

(14) s


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有