c语言试卷

2024-01-07 20:56:48

江西财经大学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 <stdio.h>

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 <stdio.h>

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 <stdio.h>

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次幂之和等于它本身)

文章来源:https://blog.csdn.net/2303_79397390/article/details/135443558
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。