2020C语言期末试题_A
序号 1 2 3 4
名称 分度圆直径 齿顶圆直径 齿根圆直径 全齿高
图 1 齿轮部分参数几何意义示意图
表 1 齿轮部分参数计算表
符号 计算公式
备注
d
d=mz
(1)z 为齿轮总齿数,用
da
da=m(z+2)
户指定;
df
df =m(z-2.5) (2)m 为齿轮模数,用户
h
h=2.25m
指定。
3.函数求导【10 分】
x
−
sin(
x 2
)cos(
x 2
)
在
x0
=0
处且满足精度
ε
=1.0
×10-6
的导数近似值及任一合
适的微分量 ∆ 。
要求:定义求导函数 double derive(double (*f)(double),*delta),函数调用需返回满足精度 ε 的导数近似值 dx
与任一合适的微分量 delta。形参 f 是被求导函数指针,其类型为是 double (*)(double),表示在调用被求导函数时,
值,
yi 是模型输出。σ
是激活函数
sigmoid,σ (x)
=
1 1+e− x
,损失函数 E( yt
−
y=)
1 2
[(
yt1
−
y1 ) 2
+
(
yt 2
−
y2
)2 ]。根
据上述内容完成下列各题:
(1)定义函 数 float* input2hide(float x[2],float w1[2][3],float b1),实现 图 4 模型中输入层到隐藏层 h 的计算。
学年:2019-2020 学年 学期:2 学期 课程名称:程序设计基础B(C语言) 课程代码:JK160210 日期:2020 年 6 月 29 日 时间:10:00-11:40 1.简单程序设计【45 分】
(1)写出 C 语言程序,实现计算自然数从 1 到 100 之和。【15 分】 (2)写出 C 语言程序,实现将具有 5 个成员的整型数组 a 值赋给同型的数组 b。【15 分】 (3)写出 C 语言程序,实现计算三条边长分别为 a=2,b=3 和 c=4 的三角形面积。【15 分】 2.齿轮参数计算【15 分】 齿轮是机械工程中常用零件,齿轮设计时需要计算齿轮参数,标准直齿圆柱齿轮部分参数几何意义和计算公 式分别见图 1 和表 1 所示。请写出实现表 1 中齿轮参数计算的 C 语言程序。
传入自变量 x 的值,返回函数 f (x) 的值;形参 delta 表示任一合适微分量 ∆ 的指针。
4.图形投影变换【10 分】 工程制图中的三视图是正平行投影变换,投影方向垂直于投影平面,如图 2 所示。在 CAD 系统中,生成三
视图就是把 x-y-z 坐标系下的图形投影到 z=0 平面上,并将坐标变换到 u-v-w 坐标系下,在计算机中的生成过程是 通过矩阵运算实现。将 x-y-z 坐标系原点 o(0,0,0) 变换到 u-v-w 坐标系下的坐标为 o′(ox,oy ,oz ) ,对于图形上任一点 p(x, y, z) ,经过投影变换生成主视图,在主视图上对应点的坐标 q(u, v, w) 为:
6.人工智能基础(10 分) 人工神经网络是一种人工智能(机器学习)算法。感知器是一种简单的人工神经网络模型,图 4 是一仅包含一
个隐藏层的多层感知器模型。神经网络运算分为两个过程:(1)前向传播,输入 x,经过网络计算得到输出 y;
(2)反向传播,用最速下降法(梯度下降法)更新权重和偏置量,实现网络参数自主学习,其过程是计算 y 与
b1
w321
y1 = σ ( y1 )
b2
y
yt
∑ y2
=
3
wi22hi
+b2
y2
i=1
w123
∑ h3
=
2 i =1
wi13 xi
+b1
w322
( ) h3 = σ h3
y2 = σ ( y2 ) b2
b1
前向传播
输入层
隐藏层
输出层
图 4 多层感知器网络模型
第 3 页/共 3 页
第 2 页/共 3 页
其中 x 为输入数据、w1 为输入层到隐藏层的连接权重,b1 为偏置量。【4 分】 要求:调用该函数后直接返回隐藏层输出 h,不能将 h 定义为全局变量。 (2)定义函数 float* hide2output(float h[3],float w2[3][2],float b2),实现 图 4 模型中隐藏层到输出层 y 的计算。
目标 yt 的误差损失函数 E,用 E 分别对权重 w 和偏置量 b 求导,利用当前值减去导数值与学习率η 的乘积,实
现
w
和
b
的更新。如 wi
= wi −η
∂E ∂wi
, bi
= , xi 是模型输入, winj (n = 1或2)是相邻两层间神经元的连接权重, bi 是偏置量, hi 是隐藏层神经元的
标,m 为投影变换矩阵,q 为 p 在主视图上生成的对应点坐标。
图 2 三视图示意图及投影变换
5.新冠人员排查【10 分】
同学 A 于 6 月 29 日乘火车返校,当天下午 A 到校后直接回到寝室,与室友进行了简单交流后,全寝室同学
开始休息。晚上,A 所在寝室与相邻两寝室全体同学相约到二食堂共进晚餐并点了烧烤,烧烤才吃了两串,A 就
其中 h 为隐藏层数据、w2 为隐藏层到输出层的连接权重,b2 为偏置量。【4 分】 要求:调用该函数后直接返回输出 y,不能将 y 定义为全局变量。 (3)定义函数 float dE_db2(float y[2],float yt[2]),实现损失函数对隐藏层到输出层偏置量 b2 的导数值计算,
其中 y 为已知输出数据、yt 为设定的目标值。【2 分】 要求:调用该函数直接返回该偏置量的导数值 db2。
函数
f
在 x0 处的导数可用差分
f ′(x0 ) =
f
(
x0
+
∆) − 2∆
f
(
x0
−
∆)
近似,但微分量
∆
如何取值才能使导数近似值
f ′(x0) 满足指定
的精度 ε ?为简化处理,当 f (x0 + ∆) − f (x0 − ∆) < ε 时,可认为导数近似值 f ′(x0) 满足了精度要求。
编写 C 语言程序,实现计算函数 f (x)=
接到通知,同车次同车厢一名乘客被确诊为新冠感染者,学校启动应急方案,梳理了 A 的活动轨迹,找到了 A
的密切接触者,校医院将所有密切接触者带走隔离,随即对密切接触者做了检测,其中学号为“5120190001”的同
学具有新冠抗体,解除了隔离并从隔离名单中排除,其他同学继续隔离观察。
假设:每个寝室均住满 6 人,去食堂路上未预见其他人,食堂做好了防护措施,不对食堂工作人员隔离。
第 1 页/共 3 页
设 x-y-z 坐标系的原点 o 在 u-v-w 坐标系下的坐标为 (1, 2, 0,1) ,请编写 C 语言程序,计算图形上一点 p(3, 4,5,1) ,
在主视图上生成对应的坐标 q(qx , qy , qz,1) 。 要求:定义投影变换函数 void projection(float p[4] ,float m[4][4],float q[4]),其中 p 为 x-y-z 坐标系下任一点坐
每位同学的信息包括:学号,姓名。
(1)建立同学信息的结构体类型。【4 分】
(2)定义一个函数,实现创建新冠密切接触者链表;【其中 A 用本人信息代替,其他同学信息如下设定:
学号(5120190000),姓名(CLanguage)】。【4 分】
(3)定义一个函数,形参为学号,实现从链表中删除具有新冠抗体的同学。【2 分】
反向传播
∑ h1
=
2
wi11 xi
+b1
i=1
E( yt − y)
x1
w111
w121
( ) h1 = σ h1 b1
w121 w122
∑ y1
=
3
wi21hi
+b2
y1
i=1
x2
1
w ∑ 12
h2
=
2 i =1
wi12 xi
+b1
w221
w122
( ) h2 = σ h2
w222
w113
C语言程序设计期末考试选择题题库
第一章1、一个C程序可能出现的错误有(A)A,以上都包括B,逻辑错误C,运行错误D,语法错误2、C程序中一般可以包含几个函数(D)A.1个B.多个C.0个D.至少一个3.C语言属于程序设计语言的哪个类别(B)A.机器语言B.高级语言C.面向对象语言D.汇编语言4.以下关于C语言描述错误的是(B)A.一个C程序总是从main函数开始执行B.一个C程序可以包含多个main函数C.每个语句的最后必须有一个分号D.C语言的注释符是以"/*"开始并以"*/"结束5、在调试过程中,逻辑错误是指(C)A.所书写的语句,不符合C的语法。
B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。
C.程序的运行结果不符合题目要求。
D.在exe文件的执行过程中,产生运行异常。
第二章1、16位的二进制数可以表示的整数的范围是(C)A.[-32768,32768]B.[-32767,32768]C.[-32768,32767]D.[-32767,32767]2、C语言中的实型数据包括(A)A.float和doubleB.int和floatC.float和charD.int和double3、以下不合法的字符常量是(C)A.'2'B.'A'C.'ab'4、在以下各组标识符中,均是合法的C语言标识符是(A)A.abc,A_4d,_student,xyz_abcB.auto,12-a,a_b,ab5.xC.A_4d,_student,xyz_abc,ifD.abc,a_b,union,scan5、若有定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为(A)A.charB.floatC.doubleD.int6、类型修饰符unsigned不能修饰(D)A.charB.longintC.intD.float7、若有定义:doublex=1,y;执行语句,则y的值是(B)A,1B,2.0D,2.58、设inta=1,b=2;以下选项中不正确的语句是(B)A.a=a+bB.a*3=3C.a+=3D.a/=19、在C语言中,要求参加运算的数必须是整数的运算符是(C)A.*B./C.%D.++10、设有定义:inta=7;floatx=2.5,y=4.7;则表达式的值是(D)A,3.5B,2.75C,0.0D,2.5第三章1、执行以下程序后k的值是(C)inti,j=10,k=0;for(i=0;i<=j;i++){k=i+j;j--;}A.9B.8C.10D.112、2、设inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为(C)A.3B.1C.2D.03、表示y在(-∞,3]和[23,+∞)范围内为真的表达式为(A)A.(y<=3)||(y>=23)C.(y<3)||(y>23)C.(y<=3)&&(y>=23)D.(y<3)&&(y>23)4、设有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是(D)voidmain(){ints=0,a=1,n;scanf("%d",&n);do{s=s+1;}while(a!=n);printf("%d",s);}A.-5B.0C.-1D.-35、对下面程序段,描述正确的是(D)for(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printf("%d",x);}A.当x>=0时,什么也不输出B.printf函数永远也不执行C.当x<0时,整个循环结束D.最多允许输出100个非负整数6、已知intx=10,y=20,z=30;则执行以下语句后x、y、z的值是(A)if(x>y)x=y;y=z;A.x=20,y=30,z=30B.x=20,y=30,z=10C.x=20,y=30,z=20D.x=10,y=20,z=307、设有声明语句:inta=1,b=0;则执行以下语句后输出结果为(A)switch(a){case1:switch(b){case0:printf("**0**");break;case1:printf("**1**");break;}case2:printf("**2**");break;}A.**0****2**B.有语法错误C.**0****1****2**D.**0**8、以下程序段的输出结果是(B)intx=5;if(x--<5)printf("%d",x);elseprintf("%d",x++);A.6B.4C.5D.39、算法描述可以有多种表达方法,下面(C)方法不可以描述算法A.自然语言B.伪代码C.机器语言D.N-S图10、for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是(C)A.2B.8C.3D.9第四章1、包含标准库函数scanf声明的头文件是(B)A.stdlib.hB.stdio.hC.time.hD.math.h2、以下关于函数的叙述中正确的是(C)A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D.main可作为用户标识符,用以定义任意一个函数3、以下正确的函数定义是(A)A.doublefun(intx,inty){doublez;z=x+y;returnz;}B.doublefun(intx,inty){z=x+y;retur nz;}C.fun(x,y){intx,y;doublez;z=x+y;returnz;}D.fun(intx,y){intz;returnz;}4、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(D)A.地址传递B.由用户指定传递方式C.由实参传给形参,再由形参传回实参D.单向值传递5、以下正确的描述是(A)A.函数的定义不可以嵌套,但函数的调用可以嵌套B.函数的定义可以嵌套,但函数的调用不可以嵌套C.函数的定义和函数的调用均可以嵌套D.函数的定义和函数的调用均不可嵌套6、以下关于函数的叙述中不正确的是(C)A.C程序是函数的集合,包括标准库函数和用户自定义函数B.在C语言程序中,函数的定义不能嵌套C.在C语言程序中,被调用的函数必须在main函数中定义D.在C语言程序中,函数的调用可以嵌套7、下列程序的运行结果是(D)#include<stdio.h>voidfun();intmain(){inta=10;fun();printf("]",a);return0;}voidfun(){inta=20;printf("]",a);}A,2020C,1010D,20108、下列程序的运行结果是(D)#include<stdio.h>intfun1(intx);voidfun2();intx=5;intmain(){intx=1;x=fun1(x);printf("%d",x);return0;}intfun1(intx){x++;fun2();returnx;}{x++;}A.7B.5C.6D.29、以下不正确的说法是(C)A.在函数内定义的变量只在本函数范围内可以使用B.形式参数是局部变量C.在主函数内定义的变量可在其余函数中通用D.在不同函数中可以使用相同名字的变量10、下列程序的运行结果是()#include<stdio.h>voidfun();inta=5;intmain(){inta=10;fun();printf("]",a);return0;}voidfun(){a=a+5;printf("]",a);}A.55B.105C.510D.1010第五章1、利用冒泡排序得到升序排列,每一趟中从前到后遍历数组,将相邻两个数作比较,如果前面的数小于后面的数,则(C)。
2020年电大本科C语言程序设计A期末考试试题及答案
2020年电大本科C语言程序设计A期末考试试题及答案2020年电大本科C语言程序设计A期末考试试题及答案| 本科《C语言程序设计A》复习资料一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。
A. mainB. MAINC. nameD. function 2.每个C语言程序文件的编译错误分为(B)类。
A. 1B. 2C. 3D. 4 3. 字符串“a+b=12\n“的长度为(B)。
A. 6B. 7C. 8D. 9 4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。
A. forB. whileC. doD. if 5. 在下面的do-while循环语句中,其循环体语句被执行的次数为(C)。
int i=0; do i++; while(i A. 8 B. 9 C. 10 D. 11 6. 将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。
A. strlen()B. strcpy()C. strcat()D. strcmp() 7. 若用数组名作为函数调用的实参,传递给形参的是(A)。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a的地址比a数组的首地址大(C)个字节。
A. 4B. 8C. 16D. 32 9. 假定s被定义为指针类型char *的变量,初始指向的字符串为“Hello world!“,若要使变量p指向s所指向的字符串,则p应定义为(A)。
A. char *p=s;B. char *p=C. char *p;p=*s;D. char *p; p= 10. 从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。
A. gets()B. fgets()C. getc()D. fgetc() 11.程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用(D)符号作为分隔符。
电子科技大学《C语言》2020秋期末考试试题答案
电子科技大学《C语言》2020秋期末考试试题答案试卷总分:100 得分:100一、单选题 (共 35 道试题,共 70 分)1.若有说明int a[][3]={1,2,3,4,5,6,7};则a数组行数的大小为()。
A.2B.3C.4D.不确定答案:B2.若调用一个函数,且此函数中没有return语句,则正确的说法是该函数()。
A.没有返回值B.返回若干个系统默认值C.返回一个用户所希望的函数值D.返回一个不确定的值答案:D3.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用""括起时,寻找被包含文件的方式是A.直接按照系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按照系统设定的标准方式搜索C.仅仅搜索源程序所在目录D.仅仅搜索当前目录答案:B需要代做加微boge306194.C语言规定:在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后答案:C5.以下程序段的作用是()。
int a[]={4,0,2,3,1},i,j,t; for (i=1;i=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t; }A.对数组a进行插入排序(升序)B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序)D.对数组a进行选择排序(降序)答案:B6.以下说法正确的是()。
A.x'+5是一个错误的表达式B.C语言不允许类型的混合运算C.强制类型转换时,类型说明符必须加括号D.(int)x+y?和(int)(x+y)是完全等价的表达式答案:C7.以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面答案:D8.下面函数调用语句含有实参的个数为()。
2020年大学C语言期末考试练习题(带详解答案)
作者:非成败作品编号:92032155GZ5702241547853215475102时间:2020.12.13一、单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
(1253)国开大学2020年秋季 C语言 期末试题
试卷代号:1253国家开放大学2020年秋季学期期末统一考试C语言程序设计试题2021年1月一、单项选择题(把合适的选项编号填写在括号内。
每小题3分,共42分)1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。
A.mainB.MAIND.function2.用于输出表达式值的标准输出函数是( C )。
A.scanf()B.print()C.printf()D.output()3.由C语言源程序文件编译而成的目标文件的扩展名为( C )。
A.cppB.exeC.objD.C4.运算符优先级最高的是( A )。
A.()B.一C.+D.<5.已知x的初值为15,则下列各表达式中的最大值为( B )。
A.x++B.++xC.x-D.-x6.for循环语句能够被改写为( D )。
A.复合语句B.if语句C.switch语句D.while语句7.在一个数组中,数组元素a[i]前面的元素个数为( A )。
A.iB.i+lC.i-lD.2xi8.假定二维数组的定义语句为“int*a[3][5];”,则该数组所占用的存储空间的字节数为( D )。
A.120B.15C.30n609.对于一个二维字符数组a[M][N],存储每个字符串的长度至多为( D )。
A.MB.NC.M-1D.N-I10.假定a为-Ai数组名,则下面表达式中错误的是( B )。
A.a[i]B.*a++c*a D.*(a+1)11.假定一个函数的原型语句为“int ff(intx);”,一个整型变量为a,则下面函数调用表达式不正确的是( A )。
A.ff(*a)B.ff(a)C.ff(a+10)D.ff(3)12.假定要访问一个结构指针变量x所指对象中的数据成员a,则表示方法为( B )。
A.x.aB.x一>aC.x(a)D.x{a}13.标准输入设备键盘的文件流标识符是( A )。
A.stdinB.stdoutC.stderrD.stdio14.从一个文本文件中读取一个字符的系统函数为( D )。
2020c语言期末考试题库及详解答案
2020c语言期末考试题库及详解答案一、选择题1. 下列哪个选项不是C语言的基本数据类型?A. intB. charC. doubleD. string答案:D2. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C3. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. <=D. ==答案:A4. 在C语言中,哪个关键字用于定义函数?A. ifB. forC. whileD. void答案:D5. 在C语言中,以下哪个语句用于结束程序的执行?A. breakB. continueC. returnD. exit答案:C二、填空题1. C语言中,一个完整的程序由________和函数的实现两部分组成。
答案:函数的声明2. 在C语言中,使用________关键字可以定义一个数组。
答案:array 或者数组名[常量表达式]3. 在C语言中,________运算符用于判断两个表达式是否相等。
答案:==4. C语言中的________函数用于计算两个数的最大公约数。
答案:gcd5. 在C语言中,使用________语句可以结束当前循环体的执行,立即开始下一次循环。
答案:continue三、简答题1. 简述C语言中变量的作用域和生命周期。
答案:变量的作用域是指变量可以被访问的代码区域。
局部变量的作用域仅限于定义它的函数内部,全局变量可以在整个程序中访问。
变量的生命周期是指变量存在的时间段,局部变量的生命周期从定义时开始,到函数执行结束时结束,全局变量的生命周期从程序开始时开始,到程序结束时结束。
2. 解释C语言中的指针和引用的区别。
答案:指针是一个变量,它存储了另一个变量的内存地址。
引用则是一个别名,它为已存在的变量提供了另一个名字。
指针可以被重新赋值为其他地址,而引用一旦被初始化,就不能改变它所引用的变量。
四、编程题1. 编写一个C语言程序,实现求两个整数的最大公约数。
湖北大学软件工程专业2020年C语言程序设计期末综合考试
湖北大学软件工程专业2020年C语言程序设计期末综合考试基本信息:[矩阵文本题] *1. C语言源程序名的后缀是()。
[单选题] *.exe.obj.c(正确答案).cp2. 以下叙述正确的是()。
[单选题] *C语言程序总是从main函数开始执行(正确答案)C语言程序总是从最前面的函数开始执行C语言程序所调用的函数必须放在main函数的前面C语言程序中main函数必须放在程序的开始位置3. 表达式3.6-5/2+1.2+5%2的值是()。
[单选题] *4.83.33.8(正确答案)4.34. 若有定义语句:int x=12,y=8,z;在其后执行语句z=0.9+x/y;则z的值为()。
[单选题] *2.41(正确答案)21.95. 以下选项中,能用作用户标识符的是()。
[单选题] * void_0_(正确答案)8_8unsigned6. 有以下程序#include<stdio.h>main(){int a=1, b=0;printf("%d,", b=a+b);printf("%d\n", a=2*b);}程序运行后的输出结果是()。
[单选题] * 0,03,21,2(正确答案)1,07. 若有以下程序#include <stdio. h>main(){char c1,c2;c1='C'+'8'-'3';c2='9'-'0';printf("%c %d\n", c1, c2);}则程序的输出结果是()。
[单选题] *H 9(正确答案)表达式不合法输出无定值F '9'H '9'8. 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是()。
[单选题] *switch(a+b) { case 1: printf("*\n"); case c: printf("**\n"); }switch(x) { case 1.0: printf("*\n' ); case 2.0: printf(" **n"); }switch((int)x); { case 1: printf("*\n"); case 2: printf("**\n"); }switch(a+b) { case 1: printf("*\n"); case 2+1: printf("**\n"); }(正确答案) 9. 以下程序段中的变量已正确定义for(i=0;i<4;i++,i++)for(k=1;k<3;k++); printf("*” );该程序段的输出结果是()。
XXX《C语言》2020秋期末考试试题答案
XXX《C语言》2020秋期末考试试题答案试卷总分:100得分:100一、单选题(共35道试题,共70分)1.若有说明int a[][3]={1,2,3,4,5,6,7};则a数组行数的大小为()。
A.2B.3C.4D.不确定答案:B2.若调用一个函数,且此函数中没有return语句,则正确的说法是该函数()。
A.没有返回值B.返回若干个系统默认值C.返回一个用户所希望的函数值D.返回一个不确定的值答案:D3.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用""括起时,寻找被包含文件的方式是A.直接按照系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按照系统设定的标准方式搜索C.仅仅搜刮源程序所在目录D.仅仅搜索当前目录答案:B需求代做加微boge4.C语言规定:在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必需在末了谜底:C5.以下程序段的作用是()。
inta[]={4,0,2,3,1},i,j,t;for(i=1;i=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t; }A.对数组a进行插入排序(升序)B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序)D.对数组a进行选择排序(降序)答案:B6.以下说法正确的选项是()。
A.x'+5是一个错误的表达式D.(int)x+y?和(int)(x+y)是完全等价的表达式谜底:C7.以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必需包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,解释说明只能位于一条语句的背面谜底:D8.下面函数调用语句含有实参的个数fun((exp1,exp2),(exp3,exp4,exp5));A.1为()。
西安电子科技大学网络与继续教育学院2020 学年下学期《高级语言程序设计(C)期末考试试题答案
}
return 0;
}
2.1初始化累计和的变量
2.2第二个for循环,寻找当前循环次数的因子,可以在算因数时只算到i/2,这样能够减少运算量。
2.2.1 求当前数的因子之和
2.3判断当前循环次数是否为完数,是则输出
3.结束
2
(2)源码:
#include <stdio.h>
void ma
...
1+2+3+...+n
sum
1
1+(1+2)
1+(1+2)+(1+2+3)
...
1+(1+2)+(1+2+3)+...+(1+2+3+...+n)
2、
3、
4、
表格中,’l’都是小写的L
五、
1、
(1)伪代码:
1.定义次数变量、累计和的变量、因子变量
2.第一个for循环,控制循环次数一直到1000
#include <stdio.h>
int fun(int array[3][3])
{
int temp;
for(int i=0;i<3;i++)
{
for(int j=i;j<3;j++)
{
//矩阵值替换
temp=array[i][j];
array[i][j]=array[j][i];
array[j][i]=temp;
}
}
if(sum==num)//判断num是否为完数
{
2020年全国计算机二级C语言考试真题(第180套)
2020年全国计算机二级C语言考试真题及答案一、选择题(1)下列关于栈叙述正确的是A).栈顶元素先能被删除B).栈顶元素后才能被删除C).栈底元素永远不能被删除C).以上三种说法都不对(2)下列叙述中正确的是A).有一个以上根结点的数据结构不一定是非线性结构B).只有一个根结点的数据结构不一定是线性结构C).循环链表是非线性结构C).双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A).3 B).4 C).6 C).7(4)在软件开发中,需求分析阶段产生的主要文档是A).软件集成测试计划 B).软件详细设计说明书C).用户手册 C).软件需求规格说明书(5)结构化程序所要求的基本结构不包括A).顺序结构 B).GOTO跳转C).选择(分支)结构 C).重复(循环)结构(6)下面描述中错误的是A).系统总体结构图支持软件系统的详细设计B).软件设计是将软件需求转换为软件表示的过程C).数据结构与数据库设计是软件设计的任务之一C).PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A).数据定义语言B).数据管理语言C).数据操纵语言C).数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是A).1:1联系 B).1:m联系C).m:1联系 C).m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A).自然连接 B).交 C).除 C).并(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A).-369 B).369 C).0.369 C).整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A).C语言程序仅可以编译执行B).C语言程序仅可以解释执行C).C语言程序既可以编译执行又可以解释执行C).以上说法都不对(12)以下叙述中错误的是A).C语言的可执行程序是由一系列机器指令构成的B).用C语言编写的源程序不能直接在计算机上运行C).通过编译得到的二进制目标程序需要连接才可以运行C).在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A).1,234 B).'123'C).123 C)."\x7G"(14)以下选项中可用作C程序合法实数的是A)..1e0 B).3.0e0.2C).E9 C).9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A).a=(b=4)=3; B).a=b=c+1;C).a=(b=4)+c; C).a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A).LiliB).name=LiliC).Lili num=C).name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A).必须是逻辑值 B).必须是整数值C).必须是正数 C).可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A).12 B).11 C).10 C).9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break; case3:printf("%d",s+3); default:printf("%d",s+1);break; }scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A).6566456 B).66656 C).66666 C).6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A).for循环语句固定执行8次B).当产生的随机数n为4时结束循环操作C).当产生的随机数n为1和2时不做任何操作C).当产生的随机数n为0时结束程序运行(21)有以下程序#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A).0 B).3 C).7 C).8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是A).循环体执行两次B).循环体执行一次C).循环体一次也不执行C).构成无限循环(23)有以下程序#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+B).;else putchar(i+C).;} printf("\n");}程序运行后的输出结果是A).ABCDEF B).AbCdEf C).aBcDeF C).abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A).scanf("%f",&x[6]); B).scanf("%lf",*(x+6));C).scanf("%lf",p+6); C).scanf("%lf",p[6]);(25)有以下程序(说明:字母A的ASCII码值是65)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(A).; printf("\n");}程序运行后的输出结果是A).BY B).BT C).YT C). YE(26)有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A).此while语句将无限循环B). getchar()不可以出现在while语句的条件表达式中C).当执行此while语句时,只有按回车键程序才能继续执行C).当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A).3 B).2 C).1 C). 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A).p=s; B).p=k; C).p=s[0]; C).k=s;(29)有以下程序#includevoid fun(char *C).{ while(*C).{ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s); fun(s); puts(s):}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A).hello beijing B).Hello Beijing C).HELLO BEIJING C).hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
