计算机二级《C语言》模拟试题及答案
    第一篇:C语言基础知识
    1. C语言的发明人是谁?简要介绍一下他的背景。
    2. int型变量的取值范围是多少?unsigned int呢?
    3. 请问下面这段代码输出的结果是什么?
      char str1[] = "hello";
  char str2[] = "world";
  strcat(str1, str2);
  printf("%s", str1);
    4. 以下哪些数据类型可以用来存储浮点数?
    A. float
B. double
C. long double
D. char
    5. 下列代码的输出结果是什么?
      int a = 1;
  long b = 2;
  float c = 3.0;
  printf("%ld\n", a + b + c);
    答案:
    1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,
发明了UNIX操作系统和C语言。C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。
    2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。
    3. 输出结果为“helloworld”。strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。如果第一个字符串不够大,程序会出现内存溢出等问题。
    4. A、B、C三个数据类型可以用来存储浮点数。
    5. 输出结果为“6”。在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。当printf函数中的格式字符串和实际参数类型不匹配时,程序会自动进行类型转换。在此例中,a和b自动转换成long类型,而c自动转换成double类型。所有类型转换后,表达式的值为6.0。在输出时,%ld会把浮点数的小数部分去掉,只输出整数部分。所以最终输出6。
    第二篇:C语言控制语句
    1. 编写一个程序,读入一个数,如果这个数是奇数,输出“这是个奇数”,否则输出“这是个偶数”。
    2. 编写一个程序,读入一个整数n,输出n个星号,每个星号之间用空格隔开。例如,当n为3时,输出“* * *”。
    3. 编写一个程序,读入两个整数a和b,输出它们的最大公约数。可以使用欧几里德算法实现。最大公约数定义为能够同时整除a和b的最大正整数。
    4. 编写一个程序,求解二次方程ax² + bx + c = 0的根。程序应该首先读入三个实数a、b、c,然后根据公式计算出根,并将结果输出。当方程无实根时,输出“此方程无实根”。
    5. 编写一个程序,计算斐波那契数列的前n项。斐波那契数列的第0项是0,第1项是1,第n项是第n-1项和第n-2项的和。
    答案:
c语言斐波那契数列
    1.
    #include <stdio.h>
    int main()
{
    int n;
    printf("请输入一个数:");
    scanf("%d", &n);
    if (n % 2 == 1)
        printf("这是个奇数\n");
    else
        printf("这是个偶数\n");
    return 0;
}
    2.
    #include <stdio.h>
    int main()
{
    int n;
    printf("请输入一个数:");
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
        printf("* ");
    return 0;
}
    3.
    #include <stdio.h>
    int gcd(int a, int b)
{
    if (b == 0)
        return a;
    else
        return gcd(b, a % b);
}
    int main()
{
    int a, b;
    printf("请输入两个数:");
    scanf("%d%d", &a, &b);
    int ans = gcd(a, b);
    printf("%d和%d的最大公约数是%d\n", a, b, ans);
    return 0;
}
    4.
    #include <stdio.h>
#include <math.h>
    int main()
{
    double a, b, c;
    printf("请输入三个实数a、b、c,用空格分隔:");
    scanf("%lf%lf%lf", &a, &b, &c);
    double delta = b * b - 4 * a * c;
    if (delta >= 0)
    {
        double x1 = (-b + sqrt(delta)) / (2 * a);
        double x2 = (-b - sqrt(delta)) / (2 * a);
        printf("方程的两个根分别为%.2lf和%.2lf\n", x1, x2);
    }
    else
        printf("此方程无实根\n");
    return 0;
}
    5.
    #include <stdio.h>
    int main()
{
    int n;
    printf("请输入一个数:");
    scanf("%d", &n);
    int f0 = 0, f1 = 1, fn;
    printf("斐波那契数列的前%d项为:", n);
    if (n >= 1)
        printf("0 ");
    if (n >= 2)
        printf("1 ");
    for (int i = 3; i <= n; i++)
    {
        fn = f0 + f1;
        printf("%d ", fn);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。