C语言综合测试题题(根据2022甘肃专升本大纲编写)

  • 单选题(每题1分,共30分)
    1.下列有关 C语言的叙述中错误的就是(    )

    A. C 语句必须以分号结束

    B. 任何一个 C程序中有且只有一个主函数

    C. 复合语句在语法上可被瞧作一条语句

    D. C 程序中对数据的任何操作都可由运算符实现

    2.以下不能定义为用户标识符的就是(    )

    A. MAIN

    B. _HJ

    C. 2ong

    D. LINE1

    3.以下能正确定义一维数组的就是(    )

    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};

    4.执行下列程序段后输出的结果就是(    )

    x = 9;

    while (x > 7)

    { printf( “*”); x - -; }

    A. ****

    B. ***

    C. **

    D. *

    5.设 char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句 printf( “%d”, strlen(strcpy(str1, str2))); 后的输出结果就是(    )

    A. 9

    B. 8

    C. 5

    D. 3

    6.若用数组名作为函数调用的实参 , 则传递给形参的就是(    )

    A. 数组的首地址

    B. 数组第一个元素的值

    C. 数组中全部元素的值

    D. 数组元素的个数

    7.在 C程序中 , 若未在函数定义时说明函数类型 , 则函数默认的类型为(    )

    A. void

    B. double

    C. int

    D. char 

    8.下面不能正确进行字符串赋值操作的语句就是(    )

    A. char s[5]={"ABCD"};

    B. char s[5]; s="ABCD";

    C. char *s;s="ABCDEF";

    D. char *s="ABCD";

    9.设有说明 int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为 3 的就是(    )

    A. ++p

    B. ++(*p)

    C. *(++p)

    D. *(p+=2)

    10.下面程序的输出结果就是(    )

    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

    11.以下 4 组用户定义标识符中,全部合法的一组是(    )

    A. )_total clu_1 sum

    B. if -max turb

    C. txt REAL 3COM

    D. int k_2 _001

    12.以下程序的输出结果是(    )

    #include

    main( ){

    int a = 1, b = 2, c = 3;

    printf( “%d”, c>b>a);

    }

    A. 2

    B. 1

    C. 0

    D. 3

    13.以下选项中正确的叙述是(    )

    A. 在 C 语言中, main 函数必须位于文件的开头

    B. C 语言每行中只能写一条语句

    C. C 语言本身没有输入、输出语句

    D. 对一个 C语言进行编译预处理时,可检查宏定义的语法错误

    14.设有定义: int a,*pa=&a; 以下 scanf 语句中能正确为变量 a 读入数据的是(    )

    A. scanf("%d",pa);

    B. scanf("%d",a);

    C. scanf("%d",&pa);

    D. scanf("%d",*pa);

    15.若有以下程序段,

    int c1=1,c2=2,c3;

    c3=1.0/c2*c1;

    则执行后, c3 中的值是(    )

    A. 0

    B. 0.5

    C. 1

    D. 2

    16.能正确表示逻辑关系:“ a≥=10 或 a≤0”的 C语言表达式是(    )

    A. a>=10 or a<=0

    B. a>=0|a<=10

    C. a>=10 &&a<=0

    D. a>=10 ‖a<=0

    17.执行下面的程序时,将 1、2、3、4 分别赋给 a、b、c、d,正确的输入是(    )

    main( )

    {

    int a,b,c,d;

    scanf( “%d,%d,%d%d”,&a,&b,&c,&d);

    }

    A. 1 2 3 4

    B. 1 2 3 ,4

    C. 1 ,2,3,4

    D. 1 ,2,3 4

    18.有以下程序段

    main( )

    {

    int k=0;

    while(k=1) k++;

    }

    则 while 循环执行的次数是( ) 赋值语句,只要不是 0,一直循环(    )

    A. 无限次

    B. 有语法错,不能执行

    C. 一次也不执行

    D. 执行 1 次

    19.以下程序的输出结果是(    )

    #include

    main( )

    {

    int a = 5, b = 4, c = 6, d;

    printf( “%d”,d=a>b?(a>c?a:c): b);

    }

    A. 5

    B. 4

    C. 6

    D. 不确定

    20.下面是对数组 a 的初始化,其中 不正确 的是(    )

    A. a[5] ={"ABCD"}

    B. a[5] ={'A' ,'B' ,'C' ,'D'}

    C. a[5] =""

    D. a[5] ="ABCDE"//a[6]= "ABCDE" 因为会自动加一个 \0

    21.以下不是 C 语言的特点的是(    )

    A. C 语言简洁、紧凑

    B. 能够编制出功能复杂的程序

    C. C 语言可以直接对硬件进行操作

    D. C 语言移植性好

    22.以下不正确的 C 语言标识符是(    )

    A. ABC

    B. abc

    C. a_bc

    D. ab.c

    23.一个 C 语言程序是由(    )

    A. 一个主程序和若干子程序组成

    B. 函数组成

    C. 若干过程组成

    D. 若干子程序组成

    24.一个算法应该具有 “确定性 ”等 5 个特性,对另外 4 个特性的描述中错误的是(    )

    A. 有零个或多个输入

    B. 有零个或多个输出

    C. 有穷性

    D. 可行性

    25.设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+‘a’+i*f 值的数据类型为(    )

    A. int

    B. float

    C. double

    D. 不确定

    26.在 C 语言中, char型数据在内存中的存储形式是(    )

    A. 补码

    B. 反码

    C. 源码

    D. ASCII 码

    27.有如下程序,输入数据: 12345M678后(表示回车), x 的值是(    )


    正在上传…
    取消

    A. 12345

    B. 123

    C. 45

    D. 345

    28.若有以下定义 int a,b; float x,则正确的赋值语句是(    )

    A. a=1,b=2

    B. b++;

    C. a=b=5

    D. b=int(x);

    ABCD 纠错 标记

    29.以下程序的执行结果是(    )


    正在上传…
    取消

    A. 11,10

    B. 9,10

    C. 11,9

    D. 10,9

    ABCD 纠错 标记

    30.巳知字母 A 的 ASCII 码是 65,以下程序的执行结果是(    )


    正在上传…
    取消

    A. A,Y

    B. 65,65

    C. 65,90

    D. 65,89

    阅读程序题(每题4分,共20)
    1.

    #include <stdio.h>

    main()_

    { char grade=’C’;

    switch(grade)

    {

    case ‘A’: printf(“90-100\n”);

    case ‘B’: printf(“80-90\n”);

    case ‘C’: printf(“70-80\n”);

    case ‘D’: printf(“60-70\n”); break;

    case ‘E’: printf(“<60\n”);

    default : printf(“error!\n”);

    }

    }

    运行结果为:_______________

    2.

    #include <stdio.h>

    main()

    { int y=9;

    for(;y>0;y- -)

    if(y%3==0)

    { printf(%d”,- -y);

    }

    }

    运行结果为_______________

    3.

    #include <stdio.h>

    main()

    { int i,sum=0; i=1;

    do{ sum=sum+i; i++; }while(i<=10);

    printf(“%d”,sum);

    }

    运行结果为:_______________

    4.

    #include <stdio.h>

    main( )

    { int i,k,a[10],p[3];

    k=5;

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

    a[i]=i;

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

    p[i]=a[i*(i+1)];

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

    k+=p[i]*2;

    printf("%d\n",k);

    }

    运行结果为:_______________

    5.

    #include <stdio.h>

    int m[3][3]={{1},{2},{3}};

    int n[3][3]={1,2 ,3};

    main( )

    { printf(“%d,”, m[1][0]+n[0][0]);

    printf(“%d\n”,m[0][1]+n[1][0]);

    }

    运行结果为:_______________

    判断题(每题1分,共15分)
    1.若i =3,则printf("%d",-i++);输出的值为 -3

    2.表达式 (j=3, j++) 的值是3

    3.C语言中只能逐个引用数组元素而可以一次引用整个数组 

    4.参加位运算的数据只能是整型的数据

    5.若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为100

    6.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"0"

    7.若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为5

    8.若有宏定义:#define S(a,b) t=a;a=b;b=t虽然变量t没定义,宏定义中已经定义,可直接使用

    9.#define 和printf 都是C语句

    10.关系运算符<= 与 == 的优先级不相同

    11.若有说明int c;则while(c=getchar());不是正确的C语句

    12.若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为10

    13.若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值等同"9"

    14.while和do…while循环不论什么条件下它们的结果都是不相同的.

    15.char c[10]="Very Good"; 是一个合法的为字符串数组赋值的语句

    填空题(每题2分,共30分)
    1.表达式3 + 1 / 2的计算结果是_____

    2.请写出以下程序的输出结果_____

    main()

             {   int  a = 100;

      if( a > 100)   printf(“%d\n”, a > 100);

      else         printf(“%d\n”, a < 100);

             }

    3.表达式(float)((int)(5/2)+2.5)的值是_____.

    4.阅读下面程序,程序执行后的输出结果为_____

    #include "stdio.h"

    main() 

    {

     char a,b;

    for(a=′0′,b=′9′;a<b;a++,b--) 

      printf("%c%c",a,b); 

    printf("\n"); 

    }

    5.以下程序段的输出结果是_____

    int  i = 5, sum = 1;

            do   

    {  sum += i++;

    } while( i < 5);

            printf(“%d\n”, sum);

    6.以下程序段的输出结果是_____、_____、_____、_____、_____

              int  x = 0177;

            printf(“x = %3d, x = %6d, x = %6o, x = %6x, x = %6u\n”, x, x, x, x, x);

    7.以下程序的输出结果是_____

    main()

    {   int  a = 8, b = 9, c = 10;

        c -= ++b;

        b *= a + c;

        {   int  b = 5, c = 12;

            c /= b * 2;

      a -= c;

    printf(“%d, %d, %d, ”, a, b, c );

    a += --c;

    }

    printf(“%d, %d, %d\n”, a, b, c);

    }

    8.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____

    9.结构化程序由_____、_____、_____三种基本结构组成 

    10.阅读下面程序,程序执行后的输出结果是_____

    #include "stdio.h"

    main()

    {

     int x,y,z;

      x = 5; y = 2; z = 3;

     if(x>y)

     if(x>z)printf("%d",x);

     else printf("%d",y);

     printf("%d\n",z);

    }

    11.若x为double型变量,请写出运算x = 3.2, ++x后表达式的值_____和变量的值_____

    12.若有定义:int a=8,b=5,c 执行语句c=a/b+0.4后,c的值为_____

    13.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____._

    14.若从键盘输入58,则以下程序输出的结果是_____

    main()

    {

      int a;

    scanf("%d",&a);

    if(a<50)printf("%d",a);

    if(a<40)printf("%d",a);

    if(a<30)printf("%d",a);

    }

    15.以下程序的输出结果是_____

    main(){   

    int a=0;

    a+=(a=8); 

    printf("%d\n",a);  } 

    编程题(10,10,15,20)
    1、键盘输入2个加数,再输入答案,如果正确,显示“right”,否则显示“error”

    2.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)

    3、从键盘输入你和你朋友的年龄,编成判断谁的年龄最大,并打印最大者的年龄。

    4. 编程实现如下功能:从键盘输入一行字符,统计其中大写英文字符,小写英文字符和其他字符的个数。

    答案:

    综合练习五

    一、单选题

    1-5 DCCCD 6-10ACCCB

    11-15ACCAB 16-20 DDACD

    24-25 BDBBC 26-30 DBBAD

    二、阅读程序题

    1、 70-80

    60-70

    2、852

    3、55

    4、21

    5、3,0

    三、判断题

    1-5 对对错对对

    6-10 错错对错对

    11-15 错对对对错

    四、填空题

    1、3

    2、0

    3、4.500000

    4、0918273645

    5、6

    6、空 1:x = 127

    空 2:x =127

    空 3:x =177

    空 4:x =7f

    空 5:x =127

    7、7, 5, 1, 7, 80, 0

    8、空 1:65535

    空 2:-32768

    空 3:1111 1111 1111 1111,1000 0000 0000 0000

    9、

    空 1:顺序

    空 2:条件分支 【或】 选择

    空 3:循环

    10、53

    11、4.2  4.2

    12、1

    13、65535

    无输出
    15、16

    编程题
    1、

    #include “stdio.h”

    main( )

    {int a,b,c;

     printf(“please input a and b\n”);

    scanf (%d,%d”,&a,&b);

     printf(“please input the answer for a+b\n”);

    scanf (%d”,&c);

     if (c==a+b)

         printf(“right\n”);

     else

         printf(“error\n”);

    }

    2.

    main()

    {float max(float x,float y);    

    float a,b,m;

    scanf("%f,%f",&a,&b);

    m=max(a,b);

    printf("Max is %f\n",m);

    }

    float max(float x,float y)

    {undefined

    float temp;

    if (x<y)

    {temp=x;

           x=y;

     y=temp;

    }

    return(x);

    }

    3、

    #include  <stdio.h>

    main()

    { int  yourAge, hisAge;

    printf("Please enter your age:");

    scanf("%d", &yourAge);       /*输入你的年龄yourAge*/

    printf("Please enter your friend's age:");

    scanf("%d", &hisAge);       /*输入你朋友的年龄hisAge*/

    if (yourAge >= hisAge)

    {undefined

    printf("You are older! Your age is = %d\n", yourAge);  

    }

    if (hisAge > yourAge)

    {undefined

    printf("Your friend is older! HisAge age is = %d\n", hisAge);

    }}

    4.

    #include <stdio.h>

    #include <string.h>

    #define ARR_SIZE 80

    main()

    {undefined

    char str[ARR_SIZE];

    int  len, i, letter = 0, digit = 0, space = 0, others = 0;

        printf("Please input a  string:");

        gets(str);

        len = strlen(str);    

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

    {  if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z')   

               letter ++;                /*统计英文字符*/

            else if (str[i] >= '0' && str[i] <= '9' )   

                digit ++;                  /*统计数字字符*/

            else

    others ++;             /*统计其它字符的个数*/

        }

    printf("English character:  %d\n", letter);

        printf("digit character:  %d\n", digit);

    printf("other character:  %d\n", others);

    }

  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RVL_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值