c语言试卷

江西财经大学IT帮

2020-2021第一学期期末C语言模拟考试试卷

课程名称:C语言程序设计(软件)(主干课程)           适用对象:21级本科

试卷命题人 钟芳盛 游天悦 李俊贤 万军豪 张位     试卷审核人   钟芳盛 

                                     

                                   

一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。答案错选或未选者,该题不得分。每小题2分,共20分。)

1、C 语言可执行程序的开始执行点是(        )

A.程序中第一条可执行语言 B.程序中第一个函数

C.程序中的 main 函数 D.包含文件中的第一个函数

2、下列叙述正确的是(      )  

A.C语言中的数据类型,在不同的编译系统中占据内存的存储单元大小是一样的

B.C语言中的常量是没有类型的

C.C语言中的数据类型不同,在内存中占据不同长度的存储单元

D.C语言中的数据的类型不同,但取值范围都是相同的

3、下面合法的C语言字符常量是(          )

    A. '\t'        B. "A"          C. 65         D. A

4、在一个C程序中,要定义一个只允许本源文件中的所有函数使用的全局变量,则该变量需要使用的存储类别是(          )

A.extern  B.register     C.auto         D.static

5、设 int a=11,则执行完语句a+=a-=(a++)*(--a)后,a的值是(          )。

   A. -120        B.-121      C. -220        D.- 144

6、C语言中的变量名只能由字母、数字和下划线三种字符组成,且第一个字符必须是 (        )。

A.字母      B.下划线      C.必须为字母或下划线      D.可以是三种中的任一种

7、以下说法不正确的是(      )

A.字符数组可存放字符串       

B.字符数组中的字符串可整体输入、输出

C.可在赋值语句中通过赋值运算符对字符数组整体赋值    

D.不可用关系运算符对字符数组中的字符进行比较

8、若函数调用时用数组名作为函数参数,以下叙述不正确的是(          )

A.实参与其对应的形参共用同一段存储空间

B.实参将其地址传递给形参,结果等同于实现了参数间的双向值传递

C.实参与其对应的形参分别占用不同的存储空间

  D.在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组

9、以下叙述正确的是(         )

A.continue语句作用是结束整个循环的执行

B.只能在循环体内和switch语句体内使用break语句

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用goto语句

10、以下整数值中,不正确的八进制或十六进制数是(     )

A.0x16        B.016       C.ox16        D.0xaaaa

二、简答题(第11题10分,第12题5分,第13题5分,共20分。)

  11、三种循环结构中的条件是循环进行的条件还是循环结束的条件?循环结构中break语句和continue语句的作用是什么,二者有何区别?

12、函数的嵌套调用与递归调用有什么区别?

13、变量的声明与定义有什么区别

三、程序填空题(按题目要求补充完程序。每空2分,共8分。)

14、下面程序是计算 1-3+5-7+……-99+101 的值,请用填空完善程序。

main()

{

    int i, m, t = 1, s = 0;

    for (i = 1; i < 101;   [1]   )

    {

            [2]    ;

        s = s + m;

            [3]    ;

    }

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

}

[1]                                             

[2]                                             

[3]                                             

15、下面函数利用递归实现求第n个斐波那契数,请填空完善fibo函数。

int fibo(int n)

{

    int f1;

    if (n == 1 || n == 2)

    {

        f1 = 1;

        return f1;

    }

    else

    {

        return      [4]    ;

    }

}

[4]                                             

四、程序阅读题(给出下列程序运行后的输出结果。每小题4分,共12分。)

16、 #include

int main()

{

    int a, b;

    for (a = 1, b = 1; a <= 100; a++)

    {

        if (b >= 9)

            break;

        if (b % 3 == 1)

        {

            b += 3;

            continue;

        }

        b -= 5;

    }

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

    return 0;

}

运行结果:                                             

17、 #include

void fun(int x, int cp, int dp)

{

    cp = x++;

    dp = ++x;

}

void main(void)

{

    int a, c = 80, d = -20;

    a = 30;

    fun(a, c, d);

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

}

运行结果:                                             

18、 #include

void inv(int x[], int n);

void main()

{

    int i, a[10] = {3, 7, 9, 11, 0, 6, 7, 5, 4, 2};

    inv(a, 10);

    printf("The array has been reverted.\n");

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

        printf("%d,", a[i]);

    printf("\n");

}

void inv(int x[], int n)

{

    int t, i, j, m = (n - 1) / 2;

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

    {

        j = n - 1 - i;

        t = x[i];

        x[i] = x[j];

        x[j] = t;

    }

}

运行结果:                                             

五、程序设计题(每小题10分,共40分。)

1、找所有1000以内的素数并输出

2、以三角形的形式输出 九九乘法表(第一行为1*1=1 第二行为1*2=2 2*2=4)

3、用递归的方式求斐波那契数列的前100项和

4、找到1000以内所有水仙花数并输出(水仙花是指一个3位数,它的每个位上的数字的3次幂之和等于它本身)

你可能感兴趣的:(c语言,java,前端)