设为首页

收藏本站

升本圈祝同学们考试金榜题名

开启辅助访问

辽宁专升本考试网

搜索
快捷导航

c语言程序设计模拟试题及答案

[复制链接]
发表于 2014-10-8 14:30:21 | 显示全部楼层 |阅读模式
《C语言程序设计》模拟试题
一、单项选择题
1、下列有关C语言的叙述中错误的是(D)。
A) C语句必须以分号结束   
B) 任何一个C程序中有且只有一个主函数
C) 复合语句在语法上可被看作一条语句  
D) C程序中对数据的任何操作都可由运算符实现
2、以下不能定义为用户标识符的是(C)。
  A) MAIN        B) _HJ        C) 2ong         D) LINE1
3、下列符号中用来表示C语言中的回车换行的是(B)。
  A) \r            B) \n          C) \b           D) \t
4、如有如下定义:int  a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为(B)。
  A) 1,  1       B) 1,  2     C) 2,  2     D) 2,   1
5、已知ch为字符型变量,下面表达式中正确的是(A)。
  A) ch=’\xff ’     B) ch=’\ff ’    C) ch=’ ff ’     D) ch=” ff ”
6、以下能正确定义一维数组的是(C)。
  A) int  a[5]={0,1,2,3,4,5};   B) int  a[5]=”012345”;
  C) char  a[ ]=”012345”;     D) char  a[5]={0,1,2,3,4,5};
7、以下语句中能正确定义变量并赋初值的是(A)。
  A) char  c=65;          B) float  f=f+1.1;     
C) double  x=12.3e3.6;   D) int  m=n=2.0;
8、在执行下列程序时输入:1357924,则程序的运行结果为(D)。
  main( )
  { int  x, y;
scanf(“%2d%2d”,&x,&y);
printf(“%2d”,x*y);  }
A) 13    B) 1357     C) 74     D) 741
9、执行下列程序段后输出的结果是(C)。
   x = 9;
   while (x > 7)
   {  printf(“*”); x- -; }
A) ****    B) ***     C) **     D) *
10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;
则执行语句  printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)
A)  9    B) 8     C) 5    D) 3
11、若用数组名作为函数调用的实参,则传递给形参的是(A)
A) 数组的首地址           B) 数组第一个元素的值
C) 数组中全部元素的值     D) 数组元素的个数
12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为( A )
A)void     B)double   C)int    D)char
13、下面不能正确进行字符串赋值操作的语句是(A)
A) char s[5]={"ABCD"};      B) char s[5];  s="ABCD";
C) char *s;s="ABCDEF";    D) char *s="ABCD";
14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是 (B )
A)++p     B)++(*p)    C) *(++p)    D) *(p+=2)
15、下面程序的输出结果是(B)
int  m=13;
int  fun( int x,  int  y)
{ int m=3;       
      return( x*y-m); }
main( )
{ int a=7,b=5;
printf(“%d\n”, fun(a,b)/m); }
  A) 1         B)  2        C) 3        D) 10

二、 判断
1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。  (  )
2、C语言规定:标识符应由字母、下划线和数字组成,且可以是上述字符的任意组合,其长度也是任意的。(  )                                 
3、数组在定义时没有必要指定数组的长度,其长度可以在程序中根据元素个数再决定。(  )
4、if语句有多种使用方法,其中if子句和else 子句也都可以单独使用。  (  )
5、for语句作为循环控制语句时,从语法上将其括号内各个表达式都可缺省,但表达式内的分号却不可以却省。(  )                                
6、字符串是C语言中一种基本数据类型,字符串总是以‘\n’作为结束标志。(  )
7、在C语言中,程序的最小编译单位是源文件,最小功能单位是函数。(  )
8、在定义指针型变量时指定的基类型为该指针变量所能指向的变量类型。(  )
9、结构体与数组一样,属于构造类型数据,且在结构体中的各个成员的类型也可不同。(  )
10、在发生函数调用时,主~被调函数中的参数可以是简单变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传递。(  )

三、  程序填
1、以下程序可求出所有水仙花数(指3位正整数中各位数字立方和等于该数本身,如153=13+53+33),请填空。
main( )
   {  int  x, y ,z, m;
  printf(“shui xian huan shu :\n”);
  for(m=100;m<1000;m++)
  {  x=m/100;
     y=   (1)  ;
     z=m%10;
  if(  (2)  )
   printf(“%6d”,m ) ;  }  }
2、输入一个字符,如果是大写字母,则把其变成小写字母;如果是小写字母,则变成大写字母;其它字符不变。请补充()内缺省的内容。
#include <stdio.h>
main( )   
  {  char   ch;   
     ch=getchar( );
     if (___(3)____)      { ch=ch+32;    putchar(ch); }         
else if(__(4)___)    { ch=ch-32;     putchar(ch);}
else                    putchar(ch);
}
3、以下程序使用递归法求n!, 请填空。
main( )
{  int  n, y;
   printf(“input  a  integer  number”);
   scanf(“%d”,&n);
   y=(5);                                
   printf(“%d!  = %6d”, n, y );  
}
      int  fac(int  n)
      {  int  f;
if(n<0) {printf(“n<0” data error); f=-1;}
     else if(n==0||n==1)           f=1;
     else   f=(6)  ;                          
return( f );  }

四、 读程序写出结
1、写出下面程序的执行结果              
   #include <stdio.h>
   main( )
   { int  a,b,x;       
x=(a=3,b=a--);
printf(“x=%d,a=%d,b=%d”,x,a,b);  }
2、以下程序的运行结果是           
   #include <stdio.h>
main( )
    { int  a = 2, b = 3, c ;
c = a ;
if ( a>b ) c = 1 ;
else if ( a == b ) c = 0 ;
  else  c = -1 ;
      printf ( “%d\n”, c ) ;  }
3、以下程序的运行结果是           
   #include <stdio.h>
main()
{  int i,j,k;
       for(i=1;i<4;i++)
   {    for(j=1;j<4-i;j++)
                 printf(" ");
            for(k=1;k<=2*i-1;k++)
                 printf("%c",'A'+i-1);
            printf("\n");}  }
4、以下程序的运行结果是           
  main(  )
{ int a[5][5],i, j ;         
for( i=0;i<5;i++)         
{ a[i][0] =1; a[i][i] =1; }     
for( i=2; i<5; i++  )      
    for(j=1; j<i ; j++ )        
     a[i][j] =a[i-1][j-1] + a[i-1][j];   
for(i=0; i<5; i++)
  { for( j=1; j<=i; j++)  
    printf(“%5d”,a[i][j]);
printf(“\n”);}  }
5、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为           
#include<stdio.h>
#include<string.h>
int func(char str[])
{  int num =0;
   while(*(str+num)!='\0') num++;
   return(num);
}
main( )
{  char str[10],*p=str;
   gets(p);
   printf("%d\n",func(p)); }
五、编程题
1、请编程实现下列分段函数的值:
           (1-x) 1/ 2         (x≤0)
    y=      1-x              (x≤1)
           (1-x)2           (x>1)
2、百钱百鸡问题:用100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡每3只1元,要求每种鸡至少买1只,试编程求各种鸡各买多少只。
3、输入20位学生的成绩,分别用函数实现:
(1)将20位学生的成绩按从高到低进行排名。
(2)求所有成绩的平均分,并输出所有成绩中比平均分低的分数。

参考答案:
一、        单项选择题
1、D        2、C        3、B        4、B        5、A        6、C        7、A        8、D        9、C        10、D
11、A        12、A        13、A        14、B        15、B
二、判断题
1、T        2、F        3、F        4、F        5、T        6、F        7、T        8、T        9、T        10、F
三、程序填空题
1、(1)  m/10%10                (2)  m==x*x*x+y*y*y+z*z*z
2、(3)  ch>’A’&&ch<’Z’                (4)ch>’a’&&ch<’z’
3、(5)  fac(n)                (6)n*fac(n-1)
四、读程序写结果
1、 x=3,a=2,b=3
2、  -1
3、       A
         BBB
        CCCCC
4、                1
                2        1
                3        3        1
                4        6        4        1
5、        5
五、编程题
1、
#include<stdio.h>
#include<math.h>
void main()
{
        int x;
        double y;
        printf("Please input x value:");
        scanf("%d",&x);
        if(x<=0)
                y=sqrt(1-x);
        else if(x<=1)
                y=1-x;
        else
                y=(1-x)*(1-x);
        printf("y=%f\n",y);
}
2、
#include<stdio.h>
void main()
{
        int x,y,z;/*分别代表所买的公鸡数,母鸡数,小鸡数*/
        for(x=1;x<99;x++)
                for(y=1;y<99;y++)
                 for(z=1;z<99;z++)
                  if((x*5+y*3+z/3==100)&&(z%3==0)&&(x+y+z==100))
                        printf("公鸡数为%d只,母鸡数为%d只,小鸡数为%d只\n",x,y,z);
}

3、
#include<stdio.h>
void sort(int b[20])
{
        int i,j;
        int temp;
        for(i=0;i<20;i++)
                for(j=0;j<20;j++)
                {
                        if(b[i]<b[j])
                        {temp=b[i];b[i]=b[j];b[j]=temp;}
                }
        for(i=0;i<20;i++)
                printf("%d  ",b[i]);
        printf("\n");
}

double ave(int c[20])
{
        double sum=0.0;
        int i;
        for(i=0;i<20;i++)
                sum=sum+c[i];
        sum=sum/20;
        return sum;
}
void main()
{
        int i;
        int a[20];
        double pingjun;
        printf("Please input 20 students score!\n");
        for(i=0;i<20;i++)
        {
                printf("Please input %d student score:",i+1);
                scanf("%d",&a[i]);
        }
        for(i=0;i<20;i++)
                printf("%d  ",a[i]);
        printf("\n");
        sort(a);
        pingjun=ave(a);
        printf("平均分为:%f\n",pingjun);
        printf("比平均分低的有:\n");
        for(i=0;i<20;i++)
                if(a[i]<pingjun)
                        printf("%d  ",a[i]);
        printf("\n");




辽宁专升本考试网http://www.9zsb.com/




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册升本圈

本版积分规则

QQ    辽ICP备14006548号-2

Powered by 升本圈 © 2010-2014 辽宁专升本考试网版权所有

GMT+8, 2017-9-21 02:13

快速回复 返回顶部 返回列表