c语言模拟试题33,c语言模拟题百度文库

发布时间:2022-12-01

本文目录一览:

  1. 请问这道c语言题怎么做,为什么是33?
  2. [C语言 普及组的模拟题](#C语言 普及组的模拟题)
  3. C语言第33题为什么

请问这道c语言题怎么做,为什么是33?

这个结果是33。分析如下: 根据a = age(5),调用了age()函数,传入5,根据age()函数,返回值是:

age(5) = age(4) + 2

每次根据age()函数去递归:

age(4) = age(3) + 2
age(3) = age(2) + 2
age(2) = age(1) + 2

所以:

age(5) = age(1) + 2 + 2 + 2 + 2

根据age(1)返回值为25,最终结果为:33。

C语言 普及组的模拟题

一、选择题(共20题,每题1.5分,共计30分。每题有5个备选答案,前10个题为单选题,即每题有且只有一个正确答案,选对得分;后10题为不定项选择题,即每题有1至5个正确答案,只有全部选对才得分)。

  1. 微型计算机的性能主要取决于( )。
    • A)内存
    • B)主板
    • C)中央处理器
    • D)硬盘
    • E)显示器
  2. 128KB的存储器用十六进制表示,它的最大的地址码是( )
    • A)10000
    • B)EFFF
    • C)1FFFF
    • D)FFFFF
    • E)FFFF
  3. 能将高级语言程序转换为目标程序的是( ).
    • A)调试程序
    • B)解释程序
    • C)编辑程序
    • D)编译程序
    • E)连接程序
  4. A=11001010B,B=00001111B,C=01011100B,则A∨B∧C=( )B
    • A)01011110
    • B)00001111
    • C)01011100
    • D)11001110
    • E)11001010
  5. 计算机病毒传染的必要条件是( ) 。
    • A)在内存中运行病毒程序
    • B)对磁盘进行读写操作
    • C)在内存中运行含有病毒的可执行程序
    • D)复制文件
    • E)删除文件
  6. TCP/IP协议共有( )层协议
    • A)3
    • B)4
    • C)5
    • D)6
    • E)7
  7. 192.168.0.1是属于( ).
    • A)A类地址
    • B)B类地址
    • C)C类地址
    • D)D类地址
    • E)E类地址
  8. 对给定的整数序列(54,73,21,35,67,78,63,24,89)进行从小到大的排序时,采用快速排序的第一趟扫描的结果是( ).
    • A)(24,21,35,54,67, 78,63,73,89)
    • B)(24,35,21,54,67, 78,63,73,89)
    • C)(24,21,35,54,67, 63,73,78,89)
    • D)(21,24,35,54,63, 67,73,78,89)
    • E)(24,21,35,54,67, 63,73,78,89)
  9. 一棵n个结点的完全二叉树,则二叉树的高度h为( ).
    • A)n/2
    • B)log2n
    • C)(log2n)/2
    • D) [log2n]+1
    • E)2n-1
  10. 下图对该图进行广度优先拓朴排序得到的顶点序列正确的是( ).
    • A)1,2,3,4,5,6
    • B)1,3,2,4,5,6
    • C)1,3,2,4,6,5
    • D)1,2,3,4,6,5,
    • E)1,3,2,4,5,6
  11. 下列属于冯.诺依曼计算机模型的核心思想是( ).
    • A)采用二进制表示数据和指令;
    • B)采用“存储程序”工作方式
    • C)计算机硬件有五大部件(运算器、控制器、存储器、输入和输出设备)
    • D)结构化程序设计方法
    • E)计算机软件只有系统软件
  12. 下列属于输入设备的是( ).
    • A)打印机
    • B)扫描仪
    • C)光笔
    • D)鼠标
    • E)显示器
  13. 算式(1000)10-(100)16-(10)8的结果是( ).
    • A)(890)10
    • B)(986)8
    • C)(1011100000)2
    • D)(2E0)16
    • E)(736)10
  14. 下面关于算法的正确的说法是( )
    • A)算法必须有输出
    • B)算法必须在计算机上用某种语言实现
    • C)算法不一定有输入
    • D)算法必须在有限步执行后能结束
    • E)算法的每一步骤必须有确切的定义
  15. 下列关于十进制数100的正确说法是( ).
    • A)原码为01100100B
    • B)反码为64H
    • C)反码为9BH
    • D)补码为64H
    • E)补码为9BH
  16. 关于windows系统中的窗口和对话框的说法正确的是( ).
    • A)对话框能移动和改变大小
    • B)窗口能移动和改变大小
    • C)对话框只能移动和但不能改变大小
    • D)对话框不能移动但能改变大小
    • E)窗口能移动和但不能改变大小
  17. 下列逻辑运算正确的是( )。
    • A) A·(A + B )= A
    • B) A +(A·B)= A
    • C) A·(B + C )= A·B + A·C
    • D) A +(B·C)=(A + B)·(A + C)
    • E) A+1=A
  18. 下列关于排序说法正确的是( ).
    • A)插入排序、冒泡排序是稳定的
    • B)选择排序的时间复杂性为O(n²)
    • C)选择排序、希尔排序、快速排序、堆排序是不稳定的
    • D)希尔排序、快速排序、堆排序的时间复杂性为O(nlog₂n)
    • E)快速排序是速度最快的排序
  19. 对于一个大小为3的栈,若输入队列为123456,则下列输出队列有可能的是( )。
    • A)123456
    • B)654321
    • C)432165
    • D)431256
    • E)321654
  20. 设有一个含有13个元素的Hash表(0~12),Hash函数是:H(key)=key % 13,其中% 是求余数运算。用二次探查法解决冲突,则对于序列(8、31、20、33、18、53、27),则下列说法正确的是( ) 。
    • A)27在1号格子中
    • B)33在6号格子中
    • C)31在5号格子中
    • D)20在7号格子中
    • E)18在4号格子中 二.问题求解(5分*2=10分)
  21. 一个商场有m种颜色的小球,每种小球足够多,在这m种小球中挑选n个小球的选法有多少种?
    • 如 m=2,n=3 时有4种选法分别是:两种小球的个数分别为03,12,21,30.问:当m=4,n=4时选法数=__________。
  22. 如果一棵m度树中有n₁个度为1的结点,n₂个度为2的结点,…….有nₘ个度为m的结点,则该树中叶结点的的个数=______________.
  23. C语言中没有逻辑量,在给出逻辑运算结果时,以 代表“真”,用 代表“假”。
  24. 一个C源程序中至少应包括一个 。
  25. C源程序的基本单位是 。
  26. 为表示关系X≥Y≥Z,应使用C语言表达式 。
  27. 若有以下定义:double w[10];则w数组元素下标的上限是 ,下限是 。
  28. 若有以下定义:double w[5];则数组w下标的上限是 。
  29. 执行语句:for(i=1;i++4;)后;变量i的值是 。
  30. 在C语言中的实型变量分为两种类型,它们是 、 。
  31. 语句"printf("%x,%o",16,12);"的输出结果是 。
  32. 当a=5,b=4,c=1时,表达式ab!=c的值是 。
  33. 若有定义:char c=’\010’;则变量c中包含的字符数为 。
  34. C语言中的标识符只能由三种字符组成,它们是 、 、 。
  35. 若k为int 型且赋值11。请写出运算k++后表达式的值为 ,变量的值为 。
  36. 在C语言程序中,如果对函数f的类型未加显说明,则函数f的隐含类型是 。
  37. 二维数组中元素在内存中的存放顺序是 。
  38. 设有定义int a=12,b=12;则语句 printf("%d %d\n",--a,++b);的输出结果是:
  39. 当a=3,b=2,c=1时,表达式f=abc的值为______________________。
  40. C语言中的文件类型有 、 。 二、选择题
  41. C语言可执行程序的开始执行点是( )
    • A、 程序中第一条可执行语言
    • B、 程序中第一个函数
    • C、 程序中的main函数
    • D、 包含文件中的第一个函数
  42. 以下叙述中不正确的是( )
    • A、在函数中,通过return语句传回函数值
    • B、在函数中,可以有多条return语句
    • C、在C中,main后的一对圆括号中也可以带有形参
    • D、在C中,调用函数,必需在一条独立的语句中完成
  43. 对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的( )。
    • A、0为假,非0为真
    • B、只有1为真
    • C、-1为假,1为真
    • D、0为真,非0为假
  44. 以下字符中,不正确的C语言转义字符是( )
    • A、‘\t’
    • B、 ‘\011’
    • C、‘\n’
    • D、 ‘\018
  45. C语言中运算对象必需是整型的运算符是( )
    • A、%
    • B、/
    • C、!
    • D、**
  46. putchar函数可以向终端输出一个( )
    • A、整型变量表达式值
    • B、实型变量值
    • C、字符串
    • D、字符或字符型变量值
  47. 下列各语句定义了数组,其中哪一个是正确的( )。
    • A、int a[5],b[2,3];
    • B、char no(30);
    • C、int x[];
    • D、int x[5]={1,2,3};
  48. 数组定义为"int a[4][5];", 引用"*(a+1)+2"表示( )。
    • A、a[1][0]+2
    • B、 a数组第1行第2列元素的地址
    • C、a[0][1]+2
    • D、 a数组第1行第2列元素的值
  49. a是int类型变量,c是字符变量。下列输入语句中哪一个是错误的( )。
    • A、scanf ("%d, %c",a, c);
    • B、scanf (" %d%c", a, c);
    • C、scanf (" %d%c", a,c );
    • D、scanf ( "d=% d, c=%c",a, c);
  50. 将整型变量a、b中的较小值为变量c赋值,下列语句中正确的是( )。
    • A、c= ==(a>b)? a:b;
    • B、c=if(a>b)a else b;
    • C、c=(a>b)? a:b;
    • D、(a>b)? c=a:c=b;
  51. 将整型变量a、b中的较大值为变量c赋值,下列语句中正确的是( )。
    • A、c= ==(a>b)? a:b;
    • B、c=(a>b)? a:b;
    • C、c=if(a>b)a else b;
    • D、(a>b)? c=a:c=b;
  52. 逻辑运算符中,运算优先级按从高到低依次为( )。
    • A、&&, !, ||
    • B、||,&&, !
    • C、&&, ||, !
    • D、!,&&, ||
  53. 在C语言程序中( )
    • A、 函数的定义可以嵌套,但函数的调用不可以嵌套
    • B、 函数的定义和函数的调用均不可以嵌套
    • C、 函数的定义不可以嵌套,但函数的调用可以嵌套
    • D、 函数的定义和函数的调用均可以嵌套
  54. C语言中的文件类型只有( )
    • A、索引文件和文本文件两种
    • B、ASCII文件和二进制文件两种
    • C、文本文件一种
    • D、 二进制文件一种
  55. 若变量已正确定义并赋值,符合C语言语法的表达式是( )
    • A、a=7+b+c,a++
    • B、a=a+7;
    • C、int(12.3%4)
    • D、a=a+7=c+b
  56. 设有int a[ ]={10,11,12},p=a[0];则执行完p++;*p+=1;后a[0],a[1],a[2]的值依次是 ( )
    • A.10,11,12
    • B.11,12,12
    • C.10,12,12
    • D.11,11,12
  57. 已知ch是字符型变量,下面正确的赋值语句是( )
    • A、ch=’\123’
    • B、ch=’xfff’
    • C、ch=’\08’
    • D、ch=’\’
  58. 以下函数调用语句中,含有的实参个数是( )
    • Func((exp1,exp2),(exp3,exp4,exp5));
    • A、1
    • B、2
    • C、4
    • D、5
  59. 以下叙述中正确的是 ( )
    • A、 输入项可以是一个实型常量,如 scanf("%f ",3.5);
    • B、 只有格式控制,没有输入项,也能正确输入数据到内存,如: scanf("a=%d,b=%d");
    • C、 当输入一个实型数据时,格式控制可以规定小数点后的位数,如:scanf("%4.2f",f);
    • D、 当输入数据时,必须指明变量地址,例如: scanf("%f",f);
  60. 程序运行输出了错误的结果,可以排除下列哪一个因素( )。
    • A.算法错误
    • B、运行时输入数据错误
    • C、未通过编译
    • D、系统资源配置不当
  61. 要为字符型变量a赋初值,下列语句中哪一个是正确的( )。
    • A、char a=’3’;
    • B、char a="3";
    • C、char a=%;
    • D、char a=*;
  62. 数组定义为"int a[4][5];", 引用"a[1]+3"表示( )。
    • A、a数组第1行第3列元素的地址
    • B、a数组第1行第3列元素的值
    • C、a数组第4行的首地址
    • D、a数组第4列的首地址 三、程序阅读
  63. 以下程序的输出结果为 。
    main()
    {
        int x=2;
        while (x--);
        printf("%d\n",x);
    }
    
  64. 以下程序的运行结果是 。
    main()
    {
        int m=5;
        if (m++ > 5) printf("%d\n",m);
        else printf("%d\n", m--);
    }
    
  65. 当执行以下程序段后,i的值为 、j的值为 、k的值为 。
    int a,b,c,d,i,j,k;
    a=10; b=c=d=5; i=j=k=0;
    for( ; a > b; ++b) i++;
    while (a++ > c) j++;
    do k++; while (a > d++);
    
  66. 以下程序的输出结果是 。
    main()
    {
        int k=2,m=4,n=6;
        int *pk=k, *pm=m, *p;
        *(p=n)=*pk*(*pm);
        printf("%d\n",n);
    }
    
  67. 以下程序的输出结果是 。
    fun1(int a, int b)
    {
        int c;
        a += a; b += b;
        c = fun2(a, b);
        return c*c;
    }
    fun2(int a, int b)
    {
        int c;
        c = a*b % 3;
        return c;
    }
    main()
    {
        int x=11,y=19;
        printf("%d\n", fun1(x,y));
    }
    
  68. 以下程序的输出结果是 z= , r= 。
    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("z=%d,r=%d\n",z,r);
    }
    
  69. 以下程序的输出结果为 。
    main()
    {
        int aa[3][3]={{2},{4},{6}},i,*p=aa[0][0];
        for(i=0;i < 2;i++)
        {
            if(i==0)
                aa[i][i+1]=*p+1;
            else ++p;
            printf("%d",*p);
        }
        printf("\n");
    }
    
  70. 下列程序运行的输出结果: , 。
    #define X 5
    #define Y X+1
    #define Z Y*X/2
    main()
    {
        int a;
        a=Y;
        printf("%d,%d\n",Z,--a);
    }
    

四、程序填空

  1. findmax返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空 。
    findmax(int s[], int t)
    {
        int k,p;
        for(p=0, k=p; p < t; p++)
            if (s[p] > s[k]) ;
            return ;
    }
    
  2. 有以下程序段:
    s=1.0;
    for (k=1; k <= n; k++) s = s + 1.0/(k*(k+1));
    printf("%f\n",s);
    
    请填空,使下面的程序段的功能完全与之等同。
    s=0.0;
    ;
    k=0;
    do
    {
        s = s + d;
        ;
        d = 1.0/(k*(k+1));
    } while( );
    printf("%f\n",s);
    
  3. 以下程序统计从终端输入的字符中每个大写字母的个数,num[0]中统计字母A的个数,其他依次类推。用回车符结束输入,请填空。
    #include "stdio.h"
    #include "ctype.h"
    main()
    {
        int num[26]={0}, i ;
        char c;
        while(( ) != '\n')
            if (isupper(c)) num[ ] += 1;
        for( i=0; i < 26; i++)
            if (num[i]) printf("%c: %d\n", i+'A',num[i]);
    }
    
  4. 以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。
    #include "string.h"
    void fun(char str[])
    {
        int i,j,k;
        for(i=0,j= ; i < j; i++, )
        {
            k = str[i]; str[i] = str[j]; str[j] = k;
        }
    }
    
  5. 以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
    main()
    {
        float x,amax,amin;
        scanf("%f",x);
        amax=x; amin=x;
        while( )
        {
            if ( x > amax ) amax=x;
            else if (x < amin) ;
            ;
        }
        printf("\namax=%f\namin=%f\n",amax,amin);
    }
    
  6. 输入若干字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。
    #include stdio.h
    void main()
    {
        char ch; ;
        while(( ) != '\n')
        {
            if(ch >= '0' && ch <= '9') s1++;
            if((ch >= 'a' && ch <= 'z')|| ) s2++;
        }
        printf("%d,%d\n",s1,s2);
    }
    

编程题

  1. 输入一行数字字符(以回车符结束输入),请用数组元素作为计数器来统计每个数字字符的个数,并输出统计结果。用下标为0的元素统计字符’0’的个数,下标为1的元素统计字符’1’的个数,…。
    #include<stdio.h>
    main()
    {
    }
    
  2. 下面findmax函数将计算数组中的最大元素及其下标值和地址值,请编写*findmax()函数。
    #include<stdio.h>
    *findmax(int *s, int t, int *k)
    {
    }
    main()
    {
        int a[10]={12,23,34,45,56,67,78,89,11,22},k,*add;
        add=findmax(a,10,k);
        printf("%d,%d,%o\n",a[k],k,add);
    }
    
  3. 编写程序,求1-3+5-7+…-99+101的值。
    #include<stdio.h>
    main()
    {
    }
    
  4. 以下程序将字符串中的第m个字符开始的全部字符复制成另一个字符串,在主函数中输入字符串及m的值并输出复制结果,在被调用函数copystr中完成复制。请编写copystr函数。
    #include<stdio.h>
    #include<string.h>
    main()
    {
        int m;
        char str1[80], str2[80];
        printf("Please input a string :\n");
        gets(str2);
        printf("Input m:\n");
        scanf("%d",m);
        if (strlen(str2) > m ) printf("error input!\n");
        else
        {
            copystr(str1,str2,m);
            printf("Result is :%s\n",str1);
        }
    }
    void copystr(char *p1,char *p2,int m)
    {
    }
    
  5. 编写函数invert将数组中的数按颠倒的顺序重新存放。在操作时,只能借助一个临时存储单元而不得另外开辟数组。
    /*参数n为数组中的元素个数*/
    void invert(int a[ ],int n)
    {
    }
    
  6. 函数maxmin完成的功能是:对传送过来的三个数选出最大和最小数,并通过形参传回调用函数。试编写该函数,
    main()
    {
        int a, b, c, max,min;
        printf("please input three integer:\n");
        scanf("%d,%d,%d",a,b,c);
        maxmin(a,b,c,max,min);
        printf("a=%d,b=%d,max=%d,min=%d\n",a,b,c,max,min);
    }
    void maxmin(int a, int b, int c, int *max, int *min)
    {
    }
    

C语言第33题为什么

要紧扣题目,符合语法的赋值语句,赋值语句,赋值语句,所以只能选C。