2020C语言期末试题_A
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)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
重庆三峡学院2020—2021学年度C语言程序设计考试试卷
重庆三峡学院2020—2021学年度《C语言程序设计》考试试卷考试范围:《C语言程序设计》;满分:100分;考试时间:120分钟院/系:__________专业:__________姓名:__________ 考号:__________第I卷(选择题)一、选择题:1~15小题。
下列每题给出的选项中,根据要求选择合适的选项。
请在答题卡上将所选项的字母涂黑。
1.有以下程序#include <stdio.h>main()int y=9;for(;y>0;y--)if(y%3==0) printf("%d",--y);}程序的运行结果是()。
A.852B.963C.741D.8754212.若有以下程序#include <stdio.h>typedef struct stuchar name,gender;int score;} STU;void f(STU a, STU b)b = a;printf("%s,%c,%d,", , b.gender, b.score);}main()STU a="Zhao", 'm', 290}, b="Qian", 'f', 350};f(a,b);printf("%s,%c,%d\n", , b.gender, b.score);}则程序的输出结果是()。
A.Zhao,m,290,Qian,f,350B.Zhao,m,290,Zhao,m,290C.Qian,f,350,Qian,f,350D.Zhao,m,290,Zhao,f,3503.在C语言中,当函数的返回值缺省时,表示该函数返回值的类型是()。
A.charB.floatC.longD.int4.以下叙述中不正确的是()。
A.在不同的函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只能在本函数范围内有效D.在一个函数的复合语句中定义的变量在本函数范围内有效5.若有如下宏定义:#define N 2#define y(n) ((N+1)*n)则执行下列语句:z=4*(N+y(5));后的结果是()。
中南大学2020年《C语言程序设计》期末考试试题及答案
一、选择题(15小题,每小题2分,共计30分)1.下面不正确的字符串常量是 A 。
A)'abc' B)"12'12" C)"0" D)" "2.以下正确的叙述是 DA)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误(精确)地表示D)在C程序中,%是只能用于整数运算的运算符3.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为 AA)D B)68 C)不确定的值 D)C4.sizeof(float)是 B :A)一个双精度型表达式 B)一个整型表达式C)一种函数调用 D)一个不合法的表达式5.以下说法正确的是 D :A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);6.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是 D (注:<CR>表示回车)。
int a1,a2; char c1,c2;scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);A) 1020AB<CR> B)10 20<CR>AB<CR>C)10 20 AB<CR> D)10 20AB<CR>7.请阅读以下程序:void main(){int a=5,b=0,c=0;if(a=b+c) printf("***\n");e1se printf("$$$\n");以上程序 D :A)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出*** D)输出$$$8.下面程序段的运行结果是 C 。
C语言程序设计期末考试选择题题库
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)B,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.3C.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)#includevoidfun();intmain(){inta=10;fun();printf("]",a);return0;}voidfun(){inta=20;printf("]",a);}A,2020C,1010D,20108、下列程序的运行结果是(D)#include 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、下列程序的运行结果是()#includevoidfun();inta=5;intmain(){inta=10;fun();printf("]",a);return0;}voidfun(){a=a+5;printf("]",a);}A.55B.105C.510D.1010第五章1、利用冒泡排序得到升序排列,每一趟中从前到后遍历数组,将相邻两个数作比较,如果前面的数小于后面的数,则(C)。
C语言程序设计(本科)-2020.07国家开放大学2020年春季学期期末统一考试试题及答案
试卷代号:1253国家开放大学2 0 2 0年春季学期期末统一考试C语言程序设计试题2020年7月一、单项选择题(把合适的选项编号填写在括号内。
每小题3分,共42分)1.在C语言中,一条简单语句的结束符是( )。
A.逗号B.冒号C.分号D.空格2.一个程序文件开始使用的每条预处理命令,其首字符必须是( )。
A.@ B.#C.$ D.%3.用于从键盘上为变量输入值的标准输入函数是( )。
A.printf( ) B.print( )C.scanf( ) D.output( )4.float类型的长度为( )。
B.2 A.1D.8 C.45.运算符优先级最高的是( )。
A.&& B.口C.++ D./6.设x和y均为逻辑值,则x&&y为真的条件是( )。
A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假7.在循环语句“for(i一1;i<10;i+一2)s;”中,循环体s被执行的次数为( )。
B.6A.10D.5C.48.假定有一个定义语句为“int a[10]一{3,4,2,8,6);”,则元素a[3]的值为( )。
B.2A.4D.6C.89.对于一维字符数组a[N],用来存储一个字符串的长度至多为( )。
A.N一2 B.NC,N+1 D.N-110.-个指针类型的简单变量占用内存中的字节数为( )。
B.4A.2D.16C.811.已知“int b[lo];int *pb;”,则下面不正确的赋值语句为( )。
A.pb=b;B.pb一&b[o]5C.pb=b+2;D.pb=b[5];。
c语言期末考试卷答案
试卷编号:451所属语言:C语言试卷方案:2019-2020(2)C语言期中考试试卷总分:100分共有题型:4种一、判断共25题(共计25分)第1题(1.0分)题号:1114 难度:中第1章在C语言程序设计中,"/*"和"*/"之间的内容是C语言的注释.答案:Y第2题(1.0分)题号:1115 难度:易第1章c程序总是从程序的第一条语句开始执行.答案:N第3题(1.0分)题号:1152 难度:中第2章int k=8567;printf("|%-6d|\n",k);的输出为|008567|.答案:N第4题(1.0分)题号:1132 难度:中第2章C程序中的关键字必须小写,其他标识符不区分大小写.答案:N第5题(1.0分)题号:1174 难度:中第3章在C程序中,赋值运算符的优先级最低.答案:N第6题(1.0分)题号:1168 难度:中第3章若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真".答案:Y第7题(1.0分)题号:1164 难度:中第3章7&3+12的值是15.答案:N第8题(1.0分)题号:1173 难度:中第3章在C程序中,逗号运算符的优先级最低.答案:Y第9题(1.0分)题号:1172 难度:中第3章关系运算符<= 与 == 的优先级相同.答案:N第10题(1.0分)题号:1184 难度:中第4章设x、t均为int型变量,则执行语句"x=10;t=x&&x<=10;"后,t的值为1.答案:Y第11题(1.0分)题号:1181 难度:中第4章若a是实型变量,C程序中允许以下赋值a=10;因此,实型变量中允许存放整型数据. 答案:N第12题(1.0分)题号:1179 难度:中第4章若a和b的类型相同,在执行了a=b;后,b中的值将丢失.答案:N第13题(1.0分)题号:1178 难度:中第4章x*=y+8 等价于 x=x*(y+8).答案:Y第14题(1.0分)题号:1180 难度:中第4章若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变. 答案:Y第15题(1.0分)题号:1182 难度:中第4章若a是实型变量,在执行了a=5;后,a将变为整型变量.答案:N第16题(1.0分)题号:1185 难度:中第4章设x、t均为int型变量,则执行语句"x=10;t=x&&x>10;"后,t的值为0.答案:Y第17题(1.0分)题号:1186 难度:中第4章在C程序中,j++;是一条赋值语句.答案:Y第18题(1.0分)题号:1197 难度:中第5章与 if(E) 语句中的(E)等价的表达式是 (E==0).答案:N第19题(1.0分)题号:1187 难度:中第5章C语言的if语句嵌套时,if与else的匹配关系是每个else与if的匹配是任意的. 答案:N第20题(1.0分)题号:1198 难度:中第5章在C语言中,逻辑"真"等价于不等于0的数.答案:Y第21题(1.0分)题号:1189 难度:中第5章if后面的控制表达式可以不用括号括起来.答案:N第22题(1.0分)题号:1194 难度:中第5章int i=3,j=5; if(i>j);是正确的.答案:Y第23题(1.0分)题号:1190 难度:中第5章if语句后面的控制表达式只能使用关系表达式或逻辑表达式.答案:N第24题(1.0分)题号:1201 难度:中第5章开关语句switch最多可形成三个分支.答案:N第25题(1.0分)题号:1200 难度:中第5章int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A.答案:N二、单选共25题(共计25分)第1题(1.0分)题号:6170 难度:中第1章C语言程序的基本单位是().A:函数B:过程C:子程序D:子例程答案:A第2题(1.0分)题号:5214 难度:中第1章一个C语言程序是由().A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B第3题(1.0分)题号:5284 难度:中第2章若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97), 则以下程序段的执行结果是().ch='a'; k=12; printf("%x,%o,",ch,ch,k); printf("k=%%d\n",k);A:因变量类型与格式描述符的类型不匹配,输出无定值B:输出项与格式描述符个数不符,输出为零值或不定值C:61,141,k=%dD:61,141,k=%12答案:C第4题(1.0分)题号:5232 难度:中第2章C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符().A:必须为字母B:必须为下划线C:必须为字母或下划线D:可以是字母,数字和下划线中任一字符答案:C第5题(1.0分)题号:5343 难度:中第3章若给定条件表达式(M)?(a++):(a--),则其中表达式M().A:和(M==0)等价B:和(M==1)等价C:和(M!=0)等价D:和(M!=1)等价答案:C第6题(1.0分)题号:6234 难度:中第3章语句printf("%d",(a=2)&&(b=-2));的输出结果是().A:无输出B:结果不确定C:-1D:1答案:D第7题(1.0分)题号:5301 难度:中第3章C语言能正确处理的指数是().A:8.5e4288B:e-32C:123000000000D:4.5e-5.6答案:C第8题(1.0分)题号:5350 难度:中第3章下列运算符中优先级最高的是().A:<B:+C:&&D:!=答案:B第9题(1.0分)题号:5304 难度:中第3章逻辑运算符两侧运算对象的数据类型().A:只能是0或1B:只能是0或非0正数C:只能是整型或字符型数据D:可以是任何类型的数据答案:D第10题(1.0分)题号:5384 难度:中第4章以下不符合C语言语法的赋值语句是().A:j++;B:j=j=5;C:k=2*4,k*4;D:y=float(j);答案:D第11题(1.0分)题号:5374 难度:中第4章若有以下定义:char s='\092'; 则该语句().A:使s的值包含1个字符B:定义不合法,s的值不确定C:使s的值包含4个字符D:使s的值包含3个字符答案:B第12题(1.0分)题号:5380 难度:中第4章先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(). A:c='a';B:c="a";C:c="97";D:C='97'答案:A第13题(1.0分)题号:6244 难度:中第4章能正确表示a和b同时为正或同时为负的逻辑表达式是().A:(a>=0||b>=0)&& (a<0||b<=0)B:(a>=0&&b>=0)&& (a<0&&b<=0)C:(a+b>0)&& (a+b<=0)D:a * b >0答案:D第14题(1.0分)题号:5379 难度:中第4章下列语句的结果是().main(){ int j;j=3;printf("%d,",++j);printf("%d",j++);}A:3,3B:3,4C:4,3D:4,4答案:D第15题(1.0分)题号:6246 难度:中第4章下列关于switch语句和break语句的结论中,正确的是().A:break语句是switch语句中的一部分B:在switch语句中可以根据需要使用或不使用break语句C:在switch语句中必须使用break语句D:break语句只能用于switch语句中答案:B第16题(1.0分)题号:6251 难度:中第4章有一函数如图: ,以下程序段中不能根据x值正确计算出y值的是().A:if(x >0) y =1;else if(x = =0) y =0;else y = -1;B:y =0;if(x >0) y =1;else if (x <0) y = -1;C:y=0;if(x > =0)if(x >0) y =1;else y =-1;D:if(x > =0)if(x >0) y =1;else y =0;else y = -1;答案:C第17题(1.0分)题号:5370 难度:中第4章若变量均已正确定义并赋值,以下合法的C语言赋值语句是().A:x=n/2.5;B:x==5;C:x+n=I;D:5=x=4+1;答案:A第18题(1.0分)题号:5400 难度:中第5章int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().A:1B:2C:3D:不一定答案:A第19题(1.0分)题号:5401 难度:中第5章int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为().A:1B:2C:3D:不一定答案:B第20题(1.0分)题号:6274 难度:中第5章有以下程序段:int k=0;while(k=1)k++;while循环执行的次数是().A:无限次B:有语法错误,不能执行C:一次也不执行D:执行一次答案:A第21题(1.0分)题号:6275 难度:中第5章以下程序中,while循环的循环次数是().#include<stdio.h>void main(){ int i=0;while(i<10){ if(i<1) continue;if(i= =5) break;i++; }……}A:1B:10C:6D:死循环,不能确定次数答案:D第22题(1.0分)题号:5407 难度:中第5章在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式().A:只能用逻辑表达式B:只能用关系表达式C:只能用逻辑表达式或关系表达式D:可用任意表达式答案:D第23题(1.0分)题号:6256 难度:中第5章下列程序执行后的输出结果是().void main(){ int k=5;while(--k) printf("%d",k-=3);printf("\n"); }A:1B:2C:4D:死循环答案:A第24题(1.0分)题号:5408 难度:中第5章执行下列语句后的输出为().int j=-1;if(j<=1) printf("****\n");else printf("%%%%\n");A:****B:%%%%C:%%%%cD:有错,执行不正确答案:A第25题(1.0分)题号:6268 难度:中第5章在while(x)语句中的x与下面条件表达式等价的是().A:x= =0B:x= =1C:x!=1D:x!=0答案:D三、程序填空共3题(共计30分)第1题(10.0分)题号:961 难度:中第3章/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为: 2,在程序中定义的变量名要与公式的变量相同)。
湖南科技大学C语言程序设计期末考试试卷A
/**********FOUND**********/ int y=1; int i; for(i=1 ;i<=n;i++) y=y*i; /**********FOUND**********/ return;
}
四、程序设计题(2 题,每题 15 分,共 30 分) 1、统计出若干个学生的平均成绩,最高分以及得最高分的人数。(15分) 例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均 成绩为77.9,最高分为92,得最高分的人数为3人。
分析过程。 3、写出下列程序段的输出结果,并简要说明变量 a 的值的变化过程。
int main() { int x = 1, a = 0, b = 0; switch(x) { case 0: b++;break; case 1: a++; case 2: a++; b++;break; default: a--;b--; } printf("a=%d,b=%d\n",a,b); return 0; }
/********** End **********/ return 0; }
第4页共4页
s=a[k]; /***********SPACE***********/ 【?】 ; /***********SPACE***********/ 【?】 ; } printf("\n the changed array:\n"); for (k=0;k<N;k++)
/***********SPACE***********/ 【?】 ("%4d",a[k]); }
c语言期末考试卷答案
试卷编号:450所属语言:C语言试卷方案:2019-2020(2)C语言期中考试试卷总分:100分共有题型:4种一、判断共25题(共计25分)第1题(1.0分)题号:1120 难度:中第1章C语言规定,在一个源程序中,main函数的必须在最开始.答案:N第2题(1.0分)题号:1119 难度:中第1章C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的.答案:Y第3题(1.0分)题号:1133 难度:中第2章r_1_2是C语言合法的用户定义标识符.答案:Y第4题(1.0分)题号:1159 难度:中第2章若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);如果通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5.答案:Y第5题(1.0分)题号:1174 难度:中第3章在C程序中,赋值运算符的优先级最低.答案:N第6题(1.0分)题号:1169 难度:中第3章在C程序中,%是只能用于整数运算的运算符.答案:Y第7题(1.0分)题号:1164 难度:中第3章7&3+12的值是15.答案:N第8题(1.0分)题号:1170 难度:中第3章int a=7,b=9,t;t=(a>b)?a:b;t的值为7.答案:N第9题(1.0分)题号:1163 难度:中第3章[3,6,18,23]是合法的表达式.答案:N第10题(1.0分)题号:1179 难度:中第4章若a和b的类型相同,在执行了a=b;后,b中的值将丢失.答案:N第11题(1.0分)题号:1186 难度:中第4章在C程序中,j++;是一条赋值语句.答案:Y第12题(1.0分)题号:1185 难度:中第4章设x、t均为int型变量,则执行语句"x=10;t=x&&x>10;"后,t的值为0.答案:Y第13题(1.0分)题号:1178 难度:中第4章x*=y+8 等价于 x=x*(y+8).答案:Y第14题(1.0分)题号:1183 难度:中第4章若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28.答案:N第15题(1.0分)题号:1182 难度:中第4章若a是实型变量,在执行了a=5;后,a将变为整型变量.答案:N第16题(1.0分)题号:1181 难度:中第4章若a是实型变量,C程序中允许以下赋值a=10;因此,实型变量中允许存放整型数据. 答案:N第17题(1.0分)题号:1177 难度:中第4章int a=10;printf("%d",a++);输出11.答案:N第18题(1.0分)题号:1194 难度:中第5章int i=3,j=5; if(i>j);是正确的.答案:Y第19题(1.0分)题号:1201 难度:中第5章开关语句switch最多可形成三个分支.答案:N第20题(1.0分)题号:1196 难度:中第5章若有int i=10, j=0;则执行完语句if (j=0) i+ +; else i- -; i的值为11.答案:N第21题(1.0分)题号:1192 难度:中第5章int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为2.答案:Y第22题(1.0分)题号:1200 难度:中第5章int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A.答案:N第23题(1.0分)题号:1190 难度:中第5章if语句后面的控制表达式只能使用关系表达式或逻辑表达式.答案:N第24题(1.0分)题号:1189 难度:中第5章if后面的控制表达式可以不用括号括起来.答案:N第25题(1.0分)题号:1198 难度:中第5章在C语言中,逻辑"真"等价于不等于0的数.答案:Y二、单选共25题(共计25分)第1题(1.0分)题号:6179 难度:中第1章一个C语言程序总是从()开始执行的.A:主过程B:主函数C:子程序D:主程序答案:B第2题(1.0分)题号:5210 难度:中第1章C语言源程序的基本单位是().A:过程B:函数C:子程序D:标识符答案:B第3题(1.0分)题号:6204 难度:中第2章若执行以下程序段后,c3的值是().int c1=1,c2=2,c3;c3=1.0/c2*c1;A:0B:0.5C:1D:2答案:A第4题(1.0分)题号:6212 难度:中第2章已知int a=4,b=5;,则执行表达式a=a>b后,变量a的值为().A:0B:1C:4D:5答案:A第5题(1.0分)题号:5306 难度:中第3章判断char型变量cl是否为小写字母的正确表达式是().A:'a'<=cl<='z'B:(cl>=a)&&(cl<=z)C:('a'>=cl)||('z'<=cl)D:(cl>='a')&&(cl<='z')答案:D第6题(1.0分)题号:5304 难度:中第3章逻辑运算符两侧运算对象的数据类型().A:只能是0或1B:只能是0或非0正数C:只能是整型或字符型数据D:可以是任何类型的数据答案:D第7题(1.0分)题号:5319 难度:中第3章下列关于单目运算符++、--的叙述中正确的是().A:它们的运算对象可以是任何变量和常量B:它们的运算对象可以是char型变量和int型变量,但不能是float型变量C:它们的运算对象可以是int型变量,但不能是double型变量和float型变量D:它们的运算对象可以是char型变量、int型变量和float型变量答案:D第8题(1.0分)题号:6235 难度:中第3章下述程序的输出结果是().#include<stdio.h>void main(){ printf("%f",2.5+1*7%2/4); }A:2.500000B:2.750000C:3.375000D:3.000000答案:A第9题(1.0分)题号:5342 难度:中第3章若变量已正确定义且 k 的值是 4,计算表达式 ( j =4, k--) 后,j和k的值为(). A:j=3, k=3B:j=3, k=4C:j=4, k=4D:j=4, k=3答案:D第10题(1.0分)题号:5367 难度:中第4章结构化程序由三种基本结构组成,三种基本结构组成的算法().A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A第11题(1.0分)题号:6242 难度:中第4章如下程序的输出结果是().#include <stdio.h>void main(){ int a,b,c =246;a=c/100%9;b=(-1)& &(-1);printf(" %d,%d\n",a,b); }A:2,1B:3,2C:4,3D:2, -1答案:A第12题(1.0分)题号:5390 难度:中第4章以下程序的输出结果是().main(){float x=3.6;int i;i=(int)x;printf("x=%f,i=%d\n",x,i);}A:x=3.600000,i=4B:x=3,i=3C:x=3.600000,i=3D:x=3 i=3.600000答案:C第13题(1.0分)题号:5395 难度:中第4章执行下列语句后,a和b的值分别为().int a,b;a=1+'a';b=2+7%-4-'A';A:-63,-64B:98,-60C:1,-60D:79,78答案:B第14题(1.0分)题号:6241 难度:中第4章表示关系X≤Y≤Z的c语言表达式为().A:(X < =Y)&&(Y< =Z)B:(X < =Y)AND(Y< =Z)C:(X < =Y< =Z)D:(X < =Y)&(Y <=Z)答案:A第15题(1.0分)题号:5377 难度:中第4章下列程序的输出结果是().main(){int a=7,b=5;printf("%d\n",b=b/a);}A:0B:5C:1D:不确定值答案:A第16题(1.0分)题号:6247 难度:中第4章设有说明语句"int a =1,b=0;"则执行以下语句后,输出为().switch(a){ case 1:switch(b){ case 0:printf(" * * 0 * * " );break;case 1:printf(" * * 1 * * " );break; } case 2:printf(" * * 2 * * " );break; }A:* * 0 * *B:* * 0 * * * * 2 * *C:* * 0 * * * * 1 * * * * 2 * *D:有语法错误答案:B第17题(1.0分)题号:5384 难度:中第4章以下不符合C语言语法的赋值语句是().A:j++;B:j=j=5;C:k=2*4,k*4;D:y=float(j);答案:D第18题(1.0分)题号:6268 难度:中第5章在while(x)语句中的x与下面条件表达式等价的是().A:x= =0B:x= =1C:x!=1D:x!=0答案:D第19题(1.0分)题号:6259 难度:中第5章若如下不构成无限循环的语句或语句组是().A:n=0;do{++n;}while(n<=0);B:n=0;while(1) {n++;}C:n=10;while(n);{n--;}D:for(n=0,i=1; ;i++)n+=i;答案:A第20题(1.0分)题号:5400 难度:中第5章int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().A:1B:2C:3D:不一定答案:A第21题(1.0分)题号:5403 难度:中第5章假定所有变量均已正确定义,下列程序段运行后x的值是().k1=1;k2=2;k3=3;x=15;if(!k1) x--;else if(k2) x=4;else x=3;A:14B:4C:15D:3答案:B第22题(1.0分)题号:6260 难度:中第5章设变量已经正确定义,则以下能正确计算f=n!的程序段是().A:f=0;for(i=1;i<=n;i++)f*=i;B:f=1;for(i=1;i<n;i++)f*=i;C:f=1;for(i=n;i>1;i++)f*=i;D:f=1;for(i=n;i>=2;i--)f*=i;答案:D第23题(1.0分)题号:6275 难度:中第5章以下程序中,while循环的循环次数是().#include<stdio.h>void main(){ int i=0;while(i<10){ if(i<1) continue;if(i= =5) break;i++; }……}A:1B:10C:6D:死循环,不能确定次数答案:D第24题(1.0分)题号:5404 难度:中第5章为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定:else子句总是与()配对.A:缩排位置相同的ifB:其之前最近的ifC:其之后最近的ifD:同一行上的if答案:B第25题(1.0分)题号:6256 难度:中第5章下列程序执行后的输出结果是().void main(){ int k=5;while(--k) printf("%d",k-=3);printf("\n"); }A:1B:2C:4D:死循环答案:A三、程序填空共3题(共计30分)第1题(10.0分)题号:961 难度:中第3章/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为: 2,在程序中定义的变量名要与公式的变量相同)。
2020成考期末C语言考试题
(1分)以下程序段运行后,循环体运行的次数为()。
int i=8,a=0;for ( ;i<8;i++) a+= i;A.0次2.(1分)若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是()。
3.(1分)以下正确的实型常量是()。
B..5798994.(1分)执行下面程序中的输出语句后,输出结果是()。
#includevoid main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}B:205.(1分)给出以下定义:char x[]=“abcdefg”;char y[]={'a','b','c','d','e','f','g'};则正确的叙述为()。
C.数组x的长度大于数组y的长度6.(1分)下列初始化语句中,正确且与语句char c[ ]="string";等价的是()。
7.(1分)设已定义: char s1[8],s2[8]="Science"; 能将字符串"Science"赋给数组s1的语句是()。
8.(1分)若在C语言中未说明函数的类型,则系统默认该函数的数据类型是()。
9.(1分)若已定义int a=5;int *p=&a;则正确的解释是()。
D.是在对p定义的同时进行初始化,使p指向a10.(1分)while循环,当执行以下程序段时()。
<br/>x=-1;<br/>do <br/>{x=x*x;}<br/>while (!x);11.(1分)如果c为字符型变量,判断c是否为空格不能使用()。
(假设已知空格ASCII码为32)12.(1分)若有说明:char c[10]={'E','a','s','t','\0'};,则下述说法中正确的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序号 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