大一C语言期末考试求题库

Python012

大一C语言期末考试求题库,第1张

一、单项选择题(共10题,每题2分,共20分。在备选答案中选择一个最佳答案。多选、错选、不选不得分)

1、不是C语言基本数据类型的是( )。

A、指针类型B、整型

C、字符型D、实型

2、设有:int a=3, b= 4, c= 5,x , y表达式0 &&(x=a)&&(y=b)的值为()。

A、1 B、0C、3D、4

3、设有语句 int a=3 则执行了语句 a+=6后,变量a 的值为( )。

A、18B、-3C、9 D、12

4、执行以下程序段后,输出的y值为( )

void main()

{ int a[]={2,4,6,8,10}

int y, *p

p=&a[0]

y=*p printf(“%d”,y)

}

A、2 B、4C、6D、8

5、有定义语句:float a[4]则分配给数组a的内存空间为( )字节。

A、 20 B、 12 C、 16 C、10

6、以下描述错误的是( )。

A、break语句可用于while语句。

B、break语句和continue语句的作用是一样的。

C、在循环语句中使用break语句是为了跳出循环,提前结束循环。

D、在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环。

7、C语言中规定,if语句的嵌套结构中,else总是( )。

A、与最近的if 配对 B、与第一个if 配对

C、按缩进位置相同的if配对 D、与最近的且尚未配对的if 配对

8、说明语句“int (*p)( )”的含义是( ) 。

A、p是一个指向一维数组的指针变量。

B、p是指针变量,指向一个整型数据。

C、p是一个指向函数的指针,该函数返回一个int型数据。

D、以上都不对。

9、以下对二维数组c的正确声明是 ( ) 。

A、int c[3][ ] B、int c(3,4)

C、int c(2)(2) D、int c[3][2]

10、下述程序段执行后输出结果为( )。

int x=100, y=200

printf ("% d", (x, y))

A、100 B、200 C、100,200 D、编译出错

二、填空题(共7题,共10空,每空1分,共10分。将答案填在题中横线上)

1、C语言提供的三种逻辑运算符是 && 、|| 和!

2、函数的返回值是通过函数中的 return语句获得的。

3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}}"定义后,a[2][2]的值为_6__ _;

4、对于"int *pa[5];" pa是一个具有5个元素的_数组指针_,每个元素是一个指向int型变量的__指针__;

5、单向链表的尾节点next指针应赋值__ NULL___;

6、在语句for(x=1,y=3;x>y;y++)中循环体执行的次数为0 。

7、int a[5]数组a的首地址为2000,则元素a[1]的地址为 2002 ,元素a[2]的地址为2004。

三、程序填空题(共2题,共5空,每空4分,共20分)

1、以下程序完成计算1-1/2+1/3-1/4+1/5+……前n 项和,请填空。

#include <stdio.h>

int main( )

{ int i, n, flag

float sum

scanf("%d", &n)

flag= 1

sum=0

for(i=1i<=ni++ )

{ sum+=(float)flag/i

flag=-flag

}

printf("%.3f\n", sum)

}

2、以下程序的功能是从键盘输入n个整数,统计其中正数、0、负数的个数,请填空。

#include <stdio.h>

void main( )

{int a, i, count1,count2,count3

count1=count2=count3=0

for(i=1i<=ni++)

{ scanf(“%d”, &a)

if(a>0) count1++

else if(a==0)count2++

else count3++

}

printf(“正数:&d个,零:%d个,负数:%d个\n”, count1,count2,count3 )

}

四、运行程序结果题(共4题,每题6分,共24分)

1、写出程序运行结果。

void main( )

{ int x=1,y=2,t;

int *p1,*p2

p1=&xp2=&y

t=*p1*p1=*p2*p2=t

printf("x=%d,y=%d\n",x,y)

}

运行结果为:

程序有错,不能运行!或写:

x=2,y=1

2、写出程序运行结果。

#include<stdio.h>

int max(int a,int b)

{ int c

c=a>b?a:b

return(c)

}

int min(int a,int b)

{int c

c=a<b?a:b

return(c)

}

void main()

{ int a=2,b=6

printf("max=%d\n",max(a,b))

printf(“min=%d\n”,min(a,b))

}

运行结果为:

程序有错,不能运行!或写:

max=6

min=2

3、写出程序运行结果。

#include <stdio.h>

void main()

{ int a[3][3]={1,2,3,4,5,6,7,8,9}

int i,j,sum=0

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

for(j=0j<3j++)

if(i==j) sum=sum+a[i][j]

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

}

运行结果为:

程序有错,不能运行!或写:

sum=15

4、写出程序运行结果。

void main( )

{ int n,f

n=1

while(n<=10)

{ f=f*n

n+=2

}

printf(“f=%d\n”,&f)

}

运行结果为:

程序有错,不能运行!或写:

f=不确定

五、程序设计题(共2题,每题13分,共26分)

1、将一个数组按逆序存放,如元素1、2、3、4、5,按逆序存放后为5、4、3、2、1。

一.选择一个正确答案代码(A/B/C/D/E),填入每题的括号内 (每题1.5分, 共30分)

1. 美籍匈牙利数学家冯·诺依曼对计算机科学发展所做出的贡献是( )。

A. 提出理想计算机的数学模型,成为计算机科学的理论基础。

B. 是世界上第一个编写计算机程序的人。

C. 提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机EDVAC。

D. 采用集成电路作为计算机的主要功能部件。

E. 指出计算机性能将以每两年翻一番的速度向前发展。

2. 下列哪个不是CPU(中央处理单元)( )。

A. Intel Itanium B. DDR SDRAM C. AMD Athlon64

D. AMD Opteron E. IBM Power 5

3. 下列网络上常用的名字缩写对应的中文解释错误的是( )。

A. WWW(World Wide Web):万维网。

B. URL(Uniform Resource Locator):统一资源定位器。

C. HTTP(Hypertext Transfer Protocol):超文本传输协议。

D. FTP(File Transfer Protocol):快速传输协议。

E. TCP(Transfer Control Protocol):传输控制协议。

4. 下面哪个部件对于个人桌面电脑的正常运行不是必需的( )。

A. CPU B. 图形卡(显卡) C. 光驱 D. 主板 E. 内存

5. 下列哪个软件属于操作系统软件( )。

A. Microsoft Word B. 金山词霸 C. Foxmail D. WinRAR E. Red Hat Linux

6. 下列哪个不是计算机的存储设备( )。

A. 文件管理器 B. 内存 C. 高速缓存 D. 硬盘 E. U盘

7. 下列说法中错误的是( )。

A. CPU的基本功能就是执行指令。

B. CPU访问内存的速度快于访问高速缓存的速度。

C. CPU的主频是指CPU在1秒内完成的指令周期数。

D. 在一台计算机内部,一个内存地址编码对应唯一的一个内存单元。

E. 数据总线的宽度决定了一次传递数据量的大小,是影响计算机性能的因素之一。

8. 彩色显示器所显示的五彩斑斓的色彩,是由红色、蓝色和( )色混合而成的。

A. 紫 B. 白 C. 黑 D. 绿 E. 橙

9. 用静电吸附墨粉后转移到纸张上,是哪种输出设备的工作方式( )。

A. 针式打印机 B. 喷墨打印机 C. 激光打印机 D. 笔式绘图仪 E. 喷墨绘图仪

10. 一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行相互转换的设备,这种设备是( )。

A. 调制解调器 B. 路由器 C. 网卡 D. 网关 E. 网桥

11. 下列哪个不是数据库软件的名称( )。

A. MySQL B. SQL Server C. Oracle D. 金山影霸 E. Foxpro

12. 下列哪个程序设计语言不支持面向对象程序设计方法( )。

A. C++ B. Object Pascal C. C D. Smalltalk E. Java

13. 由3个a,1个b和2个c构成的所有字符串中,包含子串“abc”的共有( )个。

A. 20 B. 8 C. 16 D. 12 E. 24

14. 某个车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。已知某时刻该车站状态为空,从这一时刻开始的出入记录为:“进,出,进,进,出,进,进,进,出,出,进,出”。假设车辆入站的顺序为1,2,3,……,则车辆出站的顺序为( )。

A. 1, 2, 3, 4, 5 B. 1, 2, 4, 5, 7 C. 1, 3, 5, 4, 6 D. 1, 3, 5, 6, 7 E. 1, 3, 6, 5, 7

15. 二叉树T,已知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,则其后序遍历序列为( )。

A. 4 2 5 7 6 3 1 B. 4 2 7 5 6 3 1 C. 4 2 7 5 3 6 1 D. 4 7 2 3 5 6 1 E. 4 5 2 6 3 7 1

16. 满二叉树的叶结点个数为N,则它的结点总数为( )。

A. N B. 2 * N C. 2 * N – 1 D. 2 * N + 1 E. 2N – 1

17. 十进制数2004等值于八进制数( )。

A. 3077 B. 3724 C. 2766 D. 4002 E. 3755

18. (2004)10 + (32)16的结果是( )。

A. (2036)10 B. (2054)16 C. (4006)10 D. (100000000110)2 E. (2036)16

19. 在下图中,从顶点( )出发存在一条路径可以遍历图中的每条边一次,而且仅遍历一次。

A. A点 B. B点 C. C点 D. D点 E. E点

20. 某大学计算机专业的必修课及其先修课程如下表所示:

课程代号 C0 C1 C2 C3 C4 C5 C6 C7

课程名称 高等数学 程序设计语言 离散数学 数据结构 编译技术 操作系统 普通物理 计算机原理

先修课程 C0, C1 C1, C2 C3 C3, C7 C0 C6

请你判断下列课程安排方案哪个是不合理的( )。

A. C0, C6, C7, C1, C2, C3, C4, C5 B. C0, C1, C2, C3, C4, C6, C7, C5

C. C0, C1, C6, C7, C2, C3, C4, C5 D. C0, C1, C6, C7, C5, C2, C3, C4

E. C0, C1, C2, C3, C6, C7, C5, C4

二.问题求解 (每题5分,共10分)

1. 一个家具公司生产桌子和椅子。现在有113个单位的木材。每张桌子要使用20个单位的木材,售价是30元;每张椅子要使用16个单位的木材,售价是20元。使用已有的木材生产桌椅(不一定要把木材用光),最多可以卖 元钱。

2. 75名儿童到游乐场去玩。他们可以骑旋转木马,坐滑行铁道,乘宇宙飞船。已知其中20人这三种东西都玩过,55人至少玩过其中的两种。若每样乘坐一次的费用是5元,游乐场总共收入700,可知有 名儿童没有玩过其中任何一种。

三.阅读程序 (每题8分,共32分)

1.#include <stdio.h>

int main(){

int a = 79, b = 34, c = 57, d = 0, e = -1

if (a <c || b >c) d = d + e

else if (d + 10 <e) d = e + 10

else d = e - a

printf("%d\n", d)

return 0

}

输出: 。

2.#include <stdio.h>

int main(){

int i, j

char str1[] = "pig-is-stupid"

char str2[] = "clever"

str1[0] = 'd'str1[1] = 'o'

for (i = 7, j = 0j <6i++, j++)

str1[i] = str2[j]

printf("%s\n", str1)

return 0

}

输出: 。

3.#include <stdio.h>

int main(){

int u[4], a, b, c, x, y, z

scanf("%d %d %d %d",&(u[0]), &(u[1]), &(u[2]), &(u[3]))

a = u[0] + u[1] + u[2] + u[3] - 5

b = u[0] * (u[1] - u[2] / u[3] + 8)

c = u[0] * u[1] / u[2] * u[3]

x = (a + b + 2) * 3 - u[(c + 3) % 4]

y = (c * 100 - 13) / a / (u[b % 3] * 5)

if ((x + y) % 2 == 0) z = (a + b + c + x + y) / 2

z = (a + b + c – x - y) * 2

printf("%d\n", x + y - z)

return 0

}

输入:2 5 7 4

输出: 。

4.#include <stdio.h>

char c[3][200]

int s[10], m, n

void numara(){

int i, j, cod, nr

for (j = 0j <nj++){

nr = 0cod = 1

for (i = 0i <mi++){

if (c[i][j] == '1'){

if (!cod){cod = 1s[nr]++nr = 0}

}

else{

if (cod){nr = 1cod = 0}

else nr++

}

}

if (!cod) s[nr]++

}

}

int main(){

int i

scanf("%d %d\n", &m, &n)

for (i = 0i <mi++) gets(c[i])

numara()

for (i = 1i <= mi++)

if (s[i] != 0) printf("%d %d ", i, s[i])

return 0

}

输入:

3 10

1110000111

1100001111

1000000011

输出: 。

四、完善程序 (前4空,每空2分,后5空,每空4分,共28分)

1.三角形内切圆的面积

题目描述:

给出三角形三边的边长,求此三角形内切圆(如下图所示,三角形的内切圆是和三角形三边都相切的圆)的面积。

输入:

三个正实数a、b、c(满足a+b>c,b+c>a,c+a>b), 表示三角形三边的边长。

输出:

三角形内切圆的面积,结果四舍五入到小数点后面2位。

输入样例:

3 4 5

输出样例:

3.14

程序:

#include <stdio.h>

#include <math.h>

int main(){

float a, b, c, r, s, t

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

s = ( ① ) / 2

t = ② (s * (s - a) * (s - b) * (s - c))

r = t / s

printf(" ③ \n", 3.1415927 * r * ④ )

return 0

}

2.Joseph

题目描述:

原始的Joseph问题的描述如下:有n个人围坐在一个圆桌周围,把这n个人依次编号为1,…,n。从编号是1的人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m个人又出列,…,如此反复直到所有的人全部出列为止。比如当n=6,m=5的时候,出列的顺序依次是5,4,6,2,3,1。

现在的问题是:假设有k个好人和k个坏人。好人的编号的1到k,坏人的编号是k+1到2k。我们希望求出m的最小值,使得最先出列的k个人都是坏人。

输入:

仅有的一个数字是k(0 <k <14)。

输出:

使得最先出列的k个人都是坏人的m的最小值。

输入样例:

4

输出样例:

30

程序:

#include <stdio.h>

long k, m, begin

int check(long remain){

long result = ( ① ) % remain

if ( ② ){

begin = resultreturn 1

}

else return 0

}

int main(){

long i, find = 0

scanf("%ld", &k)

m = k

while( ③ ) {

find = 1begin = 0

for (i = 0i <ki++)

if (!check( ④ )){

find = 0break

}

m++

}

printf("%ld\n", ⑤ )

return 0

}

赛区 市 学校 姓名

========================== 密 封 线 =======================

第九届全国青少年信息学奥林匹克联赛初赛试题

普及组答卷纸

阅 卷 记 录

总阅卷人 总 得 分

第 一 大 题 得 分 第二大题得分

题号 1 2 3 4 5 6 7 8 9 10 第三大题得分

得分 1) 2) 3) 4)

题号 11 12 13 14 15 16 17 18 19 20 第四大题得分

得分 (1) (2)

============================ 以下由考生填写 ==============================

答卷部分

一. 选择一个正确答案代码(A/B/C/D),填入每题的括号内 (每题1.5分,多选无分, 共30 分)

题号 1 2 3 4 5 6 7 8 9 10

选择

题号 11 12 13 14 15 16 17 18 19 20

选择

二.问题解答 (每题5分,共10分)

1. 答:

2. 答:

三. 阅读程序,并写出程序的正确运行结果:(每题8分,共32分)

(1) 程序的运行结果是:

(2) 程序的运行结果是:

赛区 市 学校 姓名

========================== 密 封 线 =======================

(3) 程序的运行结果是:

(4)程序的运行结果是:

四.根据题意, 将程序补充完整 (前4空,每空2分,后5空,每空4分,共28分)

C 语言

=================

1.

2.

第九届全国青少年信息学奥林匹克联赛初赛试题

普及组参考答案

一. 选择一个正确答案代码(A/B/C/D/E),填入每题的括号内 (每题1.5分,多选无分, 共30 分)

题号 1 2 3 4 5 6 7 8 9 10

选择 C B D C E A B D C A

题号 11 12 13 14 15 16 17 18 19 20

选择 D C D E B C B D E D

二.问题解答 (每题5分,共10分)

1. 答: 160

2. 答: 10

三. 阅读程序,并写出程序的正确运行结果:(每题8分,共32分)

(1)程序的运行结果是: -80

(2) 程序的运行结果是: dog-is-clever

(3)程序的运行结果是: 263

(4)程序的运行结果是: 1 4 2 1 3 3

四.根据题意, 将程序补充完整 (前4空,每空2分,后5空,每空4分,共28分)

C 语言

=================

1.

① a+b+c

② sqrt

③ %.2f

④ r

2.

① begin+m-1

② result>=k (或者k<=result)

③ !find (或者 find==0)

④ 2*k-i

⑤ m-1

参考资料:www.noi.cn

1、一级考试

科目:计算机基础及MS Office应用、计算机基础及WPS Office应用、计算机基础及Photoshop应用、网络安全素质教育,一共四个科目。

2、二级考试

科目:语言程序设计类(C、C++、Java、Visual Basic、Web、Python)、数据库程序设计类(Access、MySQL)、办公软件高级应用(MS Office 高级应用)共九个科目。

3、三级考试

科目:网络技术、数据库技术、软件测试技术、信息安全技术、嵌入式系统开发技术共五个科目。其中,“软件测试技术”科目自2018年3月起暂停考试。

4、四级考试

科目:网络工程师、数据库工程师、软件测试工程师、信息安全工程师与嵌入式系统开发工程师五个考核项目。其中,“软件测试工程师”科目自2018年3月起暂停考试。

扩展资料

1、报名资格

考生不受年龄、职业、学历等背景的限制,均可根据自己学习情况和实际能力选考相应的级别和科目。

2、报名时间

上半年报名一般在 11 月至第二年1 月之间;下半年报名一般在 5 月至 7 月之间。每次考试报名的具体时间由各省(自治区、直辖市)级承办机构规定。

3、报名方式

分为考点现场报名与网上报名。

参考资料来源:百度百科-计算机等级考试