西北工业大学2020春机考《C语言程序设计》答案 -
- 格式:rtf
- 大小:187.76 KB
- 文档页数:7
一、单选题(共27道试题,共54分)1.35.简单优先分析法每次都是对()进行归约。
A.短语B.直接短语C.句柄D.最左素短语正确答案:C2.3.下而哪个工具用来自动生成词法分析程序()。
A.LEXB.YACCC.OCCSD 丄 Iama正确答案:A3.34.把髙级语言程序翻译成机器可执行的目标程序的工作是由()完成的。
A.编译程序B.汇编程序C.解释程序D.预处理程序正确答案:202, 690, 78974•两个有穷自动机等价是指它们的()。
A.状态数相等B.有向弧数相等C.所识别的语言相等D •状态数和有向弧数相等5・33・算符优先分析法每次都是对()进行归约。
A.直接短语B.句柄C.素短语D •最左素短语6.3&已知文法G:SfWZWfXIYXfalaXYfblbYZfC∣cZ, G左义的语言的相应正规式为 ()oA.aa* I bb* I cc*B.(aa* I bb*) cc*C.aa*(bb* ∣ cc*)D.{a I b I c)*7.27.设数组A[l∙∙20, 1-10]首地址偏移量为6并且数组是按列存放的,每个元素占一个字节,存储器按字节编址,则偏移地址为()。
A.(i-l) *10+ (j-l)B.(M) *20+ (J-I)C.(M) + (j-l) *10D.(M) + (j-l) *208・词法分析器用于识别()。
A •句子B.产生式C •单词D •句型9.11.把髙级语言程序翻译成机器可执行的目标程序的工作是由()完成的。
A.编译程序B.汇编程序C.解释程序D •预处理程序Un8・LR (K)分析方法是()。
A.从左到右每次走K步的分析法B.从左到右共经过K步的分析法C.从左到右每次向前预测K步的分析法D・从左到右每次向前看K个输入符号的分析法口・39・一个文法是递归的,则它产生的语言的句子个数()。
A.必定无穷B.必建有限C.可能无穷,也可能有限D・说不准12.12. 一个3型语言是无穷的,则识别它的FA ()。
《计算机程序设计基础》试题(A卷)2019 ~ 2020 学年第二学期一.选择题:(共30分,每题1分)1.以下关于算法叙述错误的是______。
A)算法可以用伪代码、流程图等多种形式来描述B)一个正确的算法必须有输入C)一个正确的算法必须有输出D)用流程图可描述的算法可以用任一种计算机语言编写成程序代码2.以下选项中,能用作用户标识符的是______。
A)a-b B)8yy C)_oo D)char3.以下选项中不属于字符常量的是______。
A)'W' B)"W" C)'\xFF' D)'\077'4.C语言中,优先级最高的运算符是______。
A)!B)= C)* D)&&5.设有定义:int k=0;,则下列选项中与其他3个表达式的值不相同的是_____。
A)k++ B)k=k+1 C)++k D)k+16.下列选项中,值不为0的表达式是______。
A)97-0x61 B)65-'A' C)0-'\0' D)'0'-07.有定义语句:int a=9, b=2, c ; ,则执行语句c = 0.5 + a / b, 后c的值为______。
A)4 B)4.5 C)5 D)68.以下选项中非法的表达式是_____。
A)'a'<=c<'z' B)m=n==1 C)-7 && 7 D)z+1=559.设变量c为字符型,则以下正确判断字符c是小写字母的表达式是______。
A)'a'<=c<='z' B)( 'a'<=c ) || ( c<='z' )C)( 'a'<=c ) && ( c<='z' ) D)!( 'a'<=c ) || ( c<='z' )10.若int m=-2,n=2,x;则执行以下语句后x值是______。
西工大2020年4月《C语言程序设计》作业机考试卷总分:100 得分:96一、单选题(共35 道试题,共70 分)1. 一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束正确答案:A2. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.auto和registerB.extern和registerC.auto和staticD.static和register正确答案:A3. 以下存储类型只有在使用时才为该类型变量分配内存的是()。
A.auto和staticB.auto和registerC.register和staticD.static和extern正确答案:B4. 运行程序:#includemain(){int n='c';switch(n++){ default: printf("error");break;case 'a':case 'A':case 'b':case 'B':printf("good");break;case 'c':case 'C':printf("pass");case 'd':case 'D':printf("warn");}}则输出结果是()。
A.goodB.passC.warnD.passwarn。
童鞋们,快来呀!答案!答案!no1.绘制余弦曲线在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线*问题分析与算法设计如果在程序中使用数组,这个问题十分简单。
但若规定不能使用数组,问题就变得不容易了。
关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。
为了获得本文要求的图形就必须在一行中一次输出两个“*”。
为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。
将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形与180~360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就应为62-m。
程序中利用反余弦函数acos计算坐标(x,y)的对应关系。
使用这种方法编出的程序短小精炼,体现了一定的技巧。
*程序说明与注释#include<stdio.h>#include<math.h>void main(){double y;int x,m;for(y=1;y>=-1;y-=0.1){m=acos(y)*10;for(x=1;x<m;x++) printf(" ");printf("*");for(;x<62-m;x++)printf(" ");printf("*\\n");}}no2.绘制余弦曲线和直线在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。
其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。
*问题分析与算法设计本题可以在上题的基础上进行修改。
图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。
C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
西北工业大学2020春机考《C语言程序设计》作业1单选题1.下面程序的输出结果是()。
main() { int a[10]={1,2,3,4,5,6,7,8,9,10,*p=a;A.3B.4C.1D.2答案:VX:34637870获取参考答案2.以下描述错误的是()。
A.break 语句不能用于循环语句和 switch 语句外的任何其他语句B.在 switch 语句中使用 break 语句或 continue 语句的作用相同C.在循环语句中使用 continue 语句是为了结束本次循环,而不是终止整个循环D.在循环语句中使用 break 语句是为了使流程跳出循环体,提前结束循环答案:VX:34637870获取参考答案3.下面程序的输出结果是()。
main() { int x=10; x+=(x=8); printf("%d\n",x); }A.10B.8C.18D.16答案:VX:34637870获取参考答案4.定义 int i=1; 则执行语句 while(i++<5); 后,i 的值为()。
A.3B.4C.5D.6答案:VX:34637870获取参考答案5.若有语句 scanf("%d%d",&a,&b);要使变量 a,b 分别得到 10 和 20,正确的输入形式为()。
A.10 20B.10,20C.1020D.10:20答案:VX:34637870获取参考答案6.有以下定义 #include char a[10],*b=a; 不能给 a 数组输入字符串的语句是()。
A.gets(a)B.gets(a[0]);C.gets(&a[0]);D.gets(b)答案:VX:34637870获取参考答案7.当 c 的值不为 0 时,在下列选项中能够将 c 的值赋给变量 a、b 的是()。
A.c=b=a;B.(a=c)||(b=c);C.(a=c)&&(b=c);答案:VX:34637870获取参考答案8.以下描述中正确的是()。
A.由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B.do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能写分号C.在 do-while 循环体中,是先执行一次循环,再进行判断D.do-while 循环中,根据情况可以省略 while答案:VX:34637870获取参考答案9.已知 double *p[6]; 它的含义是()。
A.p 是指向 double 类型变量的指针B.p 是 double 类型数组C.p 是指针数组D.p 是数组指针答案:VX:34637870获取参考答案10.表达式18/4*sqrt(4.0)/8 值的数据类型是()。
A.intB.floatC.doubleD.不正确答案:VX:34637870获取参考答案11.C 语言规定,在一个源程序中,main 函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后答案:VX:34637870获取参考答案12.下面各选项中,均是 C 语言合法标识符的选项组是()。
A.33 we autoB._23 me _3ewC._43 3e_ elseD.ER -DF 32答案:VX:34637870获取参考答案13.运行程序: main() { int a=1,b=2; a+=b;b=a-b;a-=b; printf("%d,%d\n",a,b); }则输出结果是()。
A.2,1B.3,1C.3,2D.1,1答案:VX:34637870获取参考答案14.以下选项中不属于字符常量的是()。
A.′C′C.′\xCC′D.′\072′答案:VX:34637870获取参考答案15.在下列结论中,只有一个是正确的,它是()。
A.递归函数中的形式参数是自动变量B.递归函数中的形式参数是外部变量C.递归函数中的形式参数是静态变量D.递归函数中的形式参数可以根据需要自己定义存储类型答案:VX:34637870获取参考答案16.对 for(表达式 1; ; 表达式 3)可理解为()。
A.for(表达式 1; 0;表达式 3)B.for(表达式 1: 1 ;表达式 3)C.for(表达式 1; 表达式 1; 表达式 3)D.for(表达式 1; 表达式 2; 表达式 3)答案:VX:34637870获取参考答案17.有如下程序 main() { int x=3; do { printf("%d",x--); }while(!x); }该程序的执行结果是()。
A.3 2 1B.2 1 0C.3D.2答案:VX:34637870获取参考答案18.以下选项中,不能作为合法常量的是()。
A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0答案:VX:34637870获取参考答案19.设有定义:char p[]={′1′,′2′,′3′,*q=p;,以下不能计算出一个 char 型数据所占字节数的表达式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])答案:VX:34637870获取参考答案20.假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是()。
A.3.500000B.3C.2.000000D.3.000000答案:VX:34637870获取参考答案21.以下不正确的叙述是()。
A.在 C 程序中,逗号运算符的优先级最低B.在 C 程序中,APH 和 aph 是两个不同的变量C.若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值答案:VX:34637870获取参考答案22.请选出可用作 C 语言用户标识符的是()。
A.void,define,WORDB.a3_b3,_123,IFC.FOR,--abc,CaseD.2a,Do,Sizeof答案:VX:34637870获取参考答案23.说明语句 int *(*p)(); 的含义是()。
A.p 是一个指向 int 型数组的指针B.p 是指针变量,它构成了指针数组C.p 是一个指向函数的指针,该函数的返回值是一个整型D.p 是一个指向函数的指针,该函数的返回值是一个指向整型的指针答案:VX:34637870获取参考答案24.下列不正确的字符串常量是()。
A.'ABC'B."W'"C."SDF/3"D." "答案:VX:34637870获取参考答案25.假定 w、x、y、z、m 均为整型变量,且 w=1, x=2, y=3, z=4 则执行语句:m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;后,m 的值是()。
A.4B.3C.2D.1答案:VX:34637870获取参考答案26.设有说明语句: char a='\72';则变量 a()。
A.包含 1 个字符B.包含 2 个字符C.包含 3 个字符D.说明不合法答案:VX:34637870获取参考答案27.以下不构成无限循环的语句或语句组是()。
A.n=0;<br/>do{++n;}while(n<=0);B.n=0;<br/>while(1){n++;}C.n=10;<br/>while(n);{n--;}D.for(n=0,i=1; ;i++)n+=i;答案:VX:34637870获取参考答案28.已知 x=43,ch='A',y=0;则表达式 x=y&& ch<'B'&&!y 的值是()。
A.0B.语法错C.1D."假"答案:VX:34637870获取参考答案29.在 C 语言中,运算对象必须是整型数的运算符是()。
A.%B.\C.%和\D.**答案:VX:34637870获取参考答案30.下面程序的输出结果是()。
main() { int s,k; for(s=1,k=2;k<5;k++) s+=k; printf("%d\n",s);A.1B.9C.0D.15答案:VX:34637870获取参考答案31.在 C 语言中,变量的隐含存储类别是()。
A.autoB.staticC.externD.无存储类别答案:VX:34637870获取参考答案32.设 x、y、t 均为 int 型变量,则执行语句:x=y=2;t=++x||++y;后,y 的值为()。
A.不确定B.2C.3D.1答案:VX:34637870获取参考答案33.设 a=5, b=6, c=7, d=8, m=2,n=2, 执行(m=a>b)&&(n=c>b)后 n 的值为()。
A.1B.2C.3D.4答案:VX:34637870获取参考答案34.函数 strlen("1234\0xy")的值为()。
A.7B.8D.9答案:VX:34637870获取参考答案35.以下叙述正确的是()。
A.do-while 语句构成的循环不能用其它语句构成的循环来代替。
B.do-while 语句构成的循环只能用 break 语句退出。
C.用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环。
D.用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环。
答案:VX:34637870获取参考答案判断题1.在 C 语言中,二维数组元素在内存中的存放顺序可以随意调整变化。
A.错误B.正确答案:2.一个 C 源程序文件由一个或多个函数组成,由此可见函数是一个独立的编译单位。
A.错误B.正确答案:3.把单个数组元素传递给修改该元素值的函数会使调用函数包含修改后的值。
A.错误B.正确答案:4.设有程序段"char s[ ]="program";char *p;p=s;"表示数组的第一个元素 s[0]和指针 p相等。
A.错误B.正确答案:5.凡是函数中未指明存储类别的局部变量,其隐含的存储类别为自动 auto。
A.错误B.正确答案:6.C 语言规定形参可以是常量、变量或表达式,只要与其对应的实参类型一致即可。