一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B) 带链队列C) 二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A) 循环队列B) 栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:
该图是A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\\n”,a=2*b);}程序运行后的输出结果是A)0,0B)1,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\\n”,c);}程序运行后的输出结果是A)3B)5C)7D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#includemain(){ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\\n”,n);}程序运行后的输出结果是A)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\\n”,k,n);}程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’;B)char a=’\\n’;C)char a=’aa’;D)char a=’\\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68B)D,69C)E,DD)输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\\n”,a);}程序运行后的输出结果是A)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i
* 答案仅供参考
(10)0 1 123(9)5(8)1 0(7)1(6)5(5)号(4)多对多(3)需求分析(2)逻辑条件(1)14二、填空题2009年3月二级C语言笔试真题及答案
((1)—(10)每小题2分,(11)—(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进先出”的线性表C)循环队列是非线性结构D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈 B)树 C)队列 D)二叉树(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A)10 B)8 C)6 D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是A)编译软件B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训(9)有两个关系R,S如下:R
S
由关系R通过运算得到关系S,则所使用的运算为A)选择 B)投影 C)插入 D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性 B)键 C)关系 D)域(11)以下选项中合法的标识符是A) 1-1 B)1—1 C)-11 D)1–(12)若函数中有定义语句:int k;,则A)系统将自动给k赋初值0B)这时k中值无定义C)系统将自动给k赋初值-1D)这时k中无任何值(13)以下选项中,能用作数据常量的是A)o115 B) 0118 C)1.5e1.5 D) 115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A) x*=x+1B) x++,2*xC)x*=(1+x)D)2*x,x+=2(15)程序段:int x=12;double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是A)123.141593B)123.141593C)12,3.141593D)123.141593(16)若有定义语句:double x,y,*px,*py,执行了px=&x, py=&y之后,正确的输入语句是A)scanf(“%f%f”,x,y);B) scanf(“%f%f”,&x,&y);C) scanf(“%lf%le”,px,py);D) scanf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:if(表达式)语句其中“表达式”A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(18)有以下程序#include
一、选择题(共70分)下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)程序流程图中指有箭头的线段表示的是A)图元关系 B)数据流 C)控制流 D)调用关系(2)结构化程序设计的基本原则不包括A)多态性 B)自顶向下 C)模块化 D)逐步求精(3)软件设计中模块划分应遵循的准则是A)低内聚低耦合 B)高内聚低耦合C)低内聚高耦合 D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是A)可行性分析报告 B)软件需求规格说明书C)概要设计说明书 D)集成测试计划(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的 D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序 B)冒泡排序C)直接插入排序 D)堆排序(7)下列关于栈的叙述正确的是A)栈按“先进先出”组织数据 B)栈按“先进后出”组织数据C)只能在栈底插入数据 D)不能删除数据(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于[C]A)需求分析阶段 B)概念设计阶段C)逻辑设计阶段 D)物理设计阶段(9)有三个关系R、S和T如下:TB C Da 0 k1R SB C Da 0 k1b 1 n1B C Df 3 h2a 0 k1n 2 x1
2008年9月二级C语言笔试真题及答案
2008年9月二级C语言笔试真题及答案(考试时间:120分钟,满分100分)
一、选择题((1)~(10)、(21)~(40)每题2 分,(11)~(20)每题1 分,70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是()。A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA(2)下列叙述中正确的是( )。A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。A)O(n) B)O(n2) C)O(log2n) D)O(nlog2n)(4)下列叙述中正确的是( )。A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是( )。A)控制流 B)驱动 C)模块调用 D)数据流(6)在软件开发中,需求分析阶段可以使用的工具是( )。A)N-S 图 B)DFD 图 C)PAD 图 D)程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是( )。A)一致性 B)分类性 C)多态性 D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。A)一对一 B)一对多 C)多对一 D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是( )。A)人工管理阶段 B)文件系统阶段 C)数据库系统阶段 D)三个阶段相同(10)有三个关系R、S 和T 如下:R S TA B B C A B Cm 1 1 3 m 1 3n 2 3 5由关系R 和S 通过运算得到关系T,则所使用的运算为( )。A)笛卡尔积 B)交 C)并 D)自然连接(11)以下叙述中正确的是( )。A)C 程序的基本组成单位是语句 B)C 程序中的每一行只能写一条语句二级C 语言程序设计试卷 第 2 页(共9 页)C)简单C 语句必须以分号结束 D)C 语句必须在一行内写完(12)计算机能直接执行的程序是( )。A)源程序 B)目标程序 C)汇编程序 D)可执行程序(13)以下选项中不能作为C 语言合法常量的是( )。A)\’cd\’ B)0.1e+6 C)\”\\a\” D)\’\\011\’(14)以下选项中正确的定义语句是( )。A)double a; b; B)double a=b=7; C)double a=7, b=7; D)double, a, b;(15)以下不能正确表示代数式2abcd的C 语言表达式是( )。A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d(16)C 源程序中不能表示的数制是()。A)二进制 B)八进制 C)十进制 D)十六进制(17)若有表达式(w)?(–x):(++y),则其中与w 等价的表达式是( )。A)w==l B)w==0 C)w!=l D)w!=0(18)执行以下程序段后,w 的值为( )。int w=\’A\’, x=14, y=15;w=((x || y)&&(w<\’a\’));A)-1 B)NULL C)l D)0(19)若变量已正确定义为int 型,要通过语句scanf(\”%d, %d, %d\”, &a, &b, &c);给a 赋值1、给b 赋值2、给c 赋值3,以下输入形式中错误的是( ò 代表一个空格符)( )。A)ò ò ò 1,2,3<回车>B)1 ò 2 ò 3<回车>C)1,ò ò ò 2,ò ò ò 3<回车>D)1,2,3<回车>(20)有以下程序段int a, b, c;a=10; b=50; c=30;if (a>b) a=b, b=c; c=a;printf(\”a=%d b=%d c=%d\\n”, a, b, c);程序的输出结果是()。A)a=10 b=50 c=10 B)a=10 b=50 c=30 C)a=10 b=30 c=10 D)a=50 b=30 c=50(21)若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是()。A)m[–i] B)m[2*2] C)m[m[0]] D)m[m[i]](22)下面的函数调用语句中func 函数的实参个数是( )。func (f2(v1, v2), (v3, v4, v5), (v6, max(v7, v8)));A)3 B)4 C)5 D)8(23)若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则错误引用x 数组元素的是()。A)*p B)x[5] C)*(p+1) D)*x(24)若有定义语句:char s[10]=\”1234567\\0\\0\”;,则strlen(s)的值是()。A)7 B)8 C)9 D)10(25)以下叙述中错误的是( )。A)用户定义的函数中可以没有return 语句B)用户定义的函数中可以有多个return 语句,以便可以调用一次返回多个函数值C)用户定义的函数中若没有return 语句,则应当定义函数为void 类型二级C 语言程序设计试卷 第 3 页(共9 页)D)函数的return 语句中可以没有表达式(26)以下关于宏的叙述中正确的是( )。A)宏名必须用大写字母表示B)宏定义必须位于源程序中所有语句之前C)宏替换没有数据类型限制D)宏调用比函数调用耗费时间(27)有以下程序#include
一、选择题(共70分)下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)程序流程图中指有箭头的线段表示的是A)图元关系 B)数据流 C)控制流 D)调用关系(2)结构化程序设计的基本原则不包括A)多态性 B)自顶向下 C)模块化 D)逐步求精(3)软件设计中模块划分应遵循的准则是A)低内聚低耦合 B)高内聚低耦合C)低内聚高耦合 D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是A)可行性分析报告 B)软件需求规格说明书C)概要设计说明书 D)集成测试计划(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的 D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序 B)冒泡排序C)直接插入排序 D)堆排序(7)下列关于栈的叙述正确的是A)栈按“先进先出”组织数据 B)栈按“先进后出”组织数据C)只能在栈底插入数据 D)不能删除数据(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于[C]A)需求分析阶段 B)概念设计阶段C)逻辑设计阶段 D)物理设计阶段(9)有三个关系R、S和T如下:TB C Da 0 k1R SB C Da 0 k1b 1 n1B C Df 3 h2a 0 k1n 2 x1有关系R和S通过运算得到关系T,则所使用的运算为A)并 B)自然连接 C)笛卡尔积 D)交(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为A)课号,成绩 B)学号,成绩C)学号,课号 D) 学号,姓名,成绩(11)以下叙述中正确的是A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中(12)以下选项中不合法的标识符是A)print B)FOR C)&a D)_00(13)以下选项中不属于字符常量的是A)\’C\’ B)\”C\” C)\’\\xCC0\’ D)\’\\072\’(14)设变量已正确定义并赋值,以下正确的表达式是A)x=y*5=x+z B)int(15.8%5)C)x=y+z+5,++y D)x=25%5.0(15)以下定义语句中正确的是A)int a=b=0 ; B)char A=65+1,b=\’b\’;C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1;(16)有以下程序段char ch; int k;ch=\’a\’; k=12;printf(\”%c,%d,\”,ch,ch,k); printf(\”k=%d\\n\”,k);已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12(17)已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A)kk>=\’A\’&&kk<=\’Z\’ B)!(kk>=\’A\’‖kk<=\’Z\’)C)(kk+32)>=\’a\’&&(kk+32)<=\’z\’ D)isalpha(kk)&&(kk<91)(18)当变量c的值不为2、4、6时,值也为“真”的表达式是A)(c==2)‖(c==4)‖(c==6) B)(c>=2&&c<=6)‖(c!=3)‖(c!=5)C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf(\”%d,%d,%d\\n\”,a,b,c);其输出结果是A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include
大学C语言库(含答案)
单项选择
题号:1482
执行以下程序段后,输出结果和a的值是()。 int a=10; printf(\”%d\”,a++);
A、11 和 10
B、11 和 11
C、10 和 11
D、10 和 10
答案:
C
题号:2100
已知字符\’A\’的ASCⅡ代码值是65,字符变量c1的值是\’A\’,c2的值是\’D\’.执行语句printf(\”%d,%d\”,c1,c2-2);后,输出结果是
A、65,66
B、A,B
C、65,68
D、A,68
答案:
A
题号:5055
相同结构体类型的变量之间,可以()。
A、比较大小
B、地址相同
C、赋值
D、相加
答案:
C
题号:3217
int a[10];合法的数组元素的最小下标值为()。
A、1
B、0
C、10
D、9
答案:
B
题号:45
能正确表示逻辑关系:\” a≥10或a≤0 \”的C语言表达式是
A、a>=0 | a<=10
B、a>=10 or a<=0
C、a>=10 && a<=0
D、a>=10 || a<=0
答案:
D
题号:157
main()
{int x=1,a=0,b=0;
switch (x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;} printf(\”a=%d,b=%d\”,a,b);
}该程序的输出结果是( )
A、2,2
B、2,1
C、1,1
D、1,0
答案:
B
题号:4784
设变量a是整型,f是实型,i是双精度型,则表达式10+\’a\’+i*f值的
数据类型为()。
A、不确定
B、double
C、int
D、float
答案:
B
题号:1647
以下程序中,while循环的循环次数是______
main()
{
int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5) break;
i++;
}
}
A、死循环,不能确定次数
B、6
C、4
D、1
答案:
A
题号:191
若有说明语句:char c=\’\\72\’;则变量c()。
A、说明不合法,c的值不确定
B、包含3个字符
C、包含1个字符
D、包含2个字符
答案:
C
题号:1300
下列程序运行结果为:
#define P 3
#define S(a) P*a*a
main()
{int ar;
ar=S(3+5);
printf(\”\\n%d\”,ar);
}
A、192
B、25
C、29
D、27
答案:
C
判断
题号:6755
若i =3,则printf(\”%d\”,-i++);输出的值为 -4。
答案:错误
题号:6167
表达式 (j=3, j++) 的值是4.
答案:错误
题号:1495
C语言中只能逐个引用数组元素而不能一次引用整个数组。
答案:正确
题号:2921
参加位运算的数据可以是任何类型的数据。
答案:错误
题号:2691
若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
答案:错误
题号:464
若 a=3,b=2,c=1 则关系表达式\”(a>b)==c\” 的值为\”真\”。
答案:正确
题号:66
若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。
答案:正确
题号:758
若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,
所以此宏定义是错误的。
答案:错误
题号:2158
#define 和printf 都不是C语句。
答案:正确
题号:5102
关系运算符<= 与 == 的优先级相同。
答案:错误
填空
题号:1076
表达式3.5 + 1 / 2的计算结果是_____。
答案:
空 1:
3.5
题号:551
请写出以下程序的输出结果_____。
main()
{ int a = 100;
if( a >100) printf(“%d\\n”, a >100);
else printf(“%d\\n”, a<= 100);
}
答案:
空 1:
1
题号:3255
表达式(int)((double)(5/2)+2.5)的值是_____.
答案:
空 1:
4
题号:2472
阅读下面程序,程序执行后的输出结果为_____。
#include \”stdio.h\”
main()
{
char a,b;
for(a=′0′,b=′9′;a
printf(\”%c%c\”,a,b);
printf(\”\n\”);
}
答案:
空 1:
0918273645
题号:937
以下程序段的输出结果是_____。
int i = 0, sum = 1;
do
{ sum += i++;
} while( i< 5);
printf(“%d\\n”, sum);
答案:
空 1:
11
题号:5213
以下程序段的输出结果是_____、_____、_____、_____、_____。
int x = 0177;
printf(“x = %3d, x = %6d, x = %6o, x = %6x, x = %6u\\n”, x, x, x, x, x);
答案:
空 1:
x = 127
空 2:
x = 127
空 3:
x = 177
空 4:
x = 7f
空 5:
x = 127
题号:3210
以下程序的输出结果是_____。
main()
{ int a = 3, b = 2, c = 1;
c -= ++b;
b *= a + c;
{ int b = 5, c = 12;
c /= b * 2;
a -= c;
printf(“%d, %d, %d, ”, a, b, c );
a += –c;
}
printf(“%d, %d, %d\\n”, a, b, c);
}
答案:
空 1:
2,5,1,2,3,-2
题号:4474
当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____。
答案:
空 1:
65535
空 2:
-32768
空 3:
1111 1111 1111 1111,1000 0000 0000 0000
题号:2791
结构化程序由_____、_____、_____三种基本结构组成。
答案:
空 1:
顺序
空 2:
条件分支 【或】 选择
空 3:
循环
题号:561
阅读下面程序,程序执行后的输出结果是_____。
#include \”stdio.h\”
main()
{
int x,y,z;
x = 1; y = 2; z = 3;
if(x>y)
if(x>z)printf(\”%d\”,x);
else printf(\”%d\”,y);
printf(\”%d\n\”,z);
}
答案:
空 1:
3
程序设计
题号:2660
/*————————————————
【程序设计】
————————————————–
功能:计算出k以内最大的10个能被13或17整除的自然数之
和。(k〈3000)。
————————————————*/
#include
#include\”conio.h\”
void bky();
int fun(int k)
{
/**********Begin**********/
/********** End **********/
}
main()
{
int m;
printf(\”Enter m: \”);
scanf(\”%d\”, &m);
printf(\”\\nThe result is %d\\n\”, fun(m));
bky();
}
void bky()
{
FILE *IN,*OUT;
int s ;
int t;
int o;
IN=fopen(\”in.dat\”,\”r\”);
if(IN==NULL)
{
printf(\”Read FILE Error\”);
}
OUT=fopen(\”out.dat\”,\”w\”);
if(OUT==NULL)
{
printf(\”Write FILE Error\”);
}
for(s=1;s<=5;s++)
{
fscanf(IN,\”%d\”,&t);
o=fun(t);
fprintf(OUT,\”%d\\n\”,o);
}
fclose(IN);
fclose(OUT);
}
示例代码:
int a=0,b=0;
while((k>=2)&&(b<10))
{if((k%13==0)||(k%17==0))
{a=a+k;b++;}
k–;
}
return a;
题号:5854
C语言中不可以嵌套的是()。
A、选择语句
B、循环语句
C、函数调用
D、函数定义
答案:
D
题号:1957
C语言中,逻辑\”真\”等价于
A、非零的整数
B、大于零的整数
C、非零的数
D、大于零的数
答案:
C
题号:3786
用户定义的函数不可以调用的函数是()。
A、本文件外的
B、main函数
C、本函数下面定义的
D、非整型返回值的
答案:
B
题号:1764
以下叙述中正确的是 ()。
A、C程序中注释部分可以出现在程序中任意合适的地方
B、分号是C语句之间的分隔符,不是语句的一部分
C、花括号“{“和”}”只能作为函数体的定界符
D、构成C程序的基本单位是函数,所有函数名都可以由用户命名
答案:
A
题号:299
下面四个选项中,均是不合法的浮点数的选项是()。
A、-e3 .234 1e3
B、160. 0.12 e3
C、123 2e4.2 .e5
D、-.18 123e4 0.0
答案:
C
题号:6131
假定所有变量均已正确定义,下列程序段运行后x的值是()。
k1=1;
k2=2;
k3=3;
x=15;
if(!k1) x–;
else if(k2) x=4;
else x=3;
A、15
B、14
C、3
D、4
答案:
D
题号:3208
若变量已正确定义,以下程序段的输出结果是
x=5.16894;
printf(“%f\\n”, (int)(x*1000+0.5)/(float)1000);
A、5.17000
B、输出格式说明与输出项不匹配,输出无定值
C、5.168000
D、5.169000
答案:
D
题号:5043
以下选项中合法的实型常数是()。
A、5E2.0
B、1.3E
C、E-3
D、.2E0
答案:
D
题号:5608
有以下程序
main()
{ int i;
for(i=0; i<3; i++)
switch(i)
{ case 1: printf(\”%d\”, i);
case 2: printf(\”%d\”, i);
default : printf(\”%d\”, i);
}
}
执行后输出结果是
A、011122
B、120
C、012020
D、012
答案:
A
题号:572
对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。
A、将5个初值依次赋给a[1]至a[5]
B、将5个初值依次赋给a[6]至a[10]
C、因为数组长度与初值的个数不相同,所以此语句不正确
D、将5个初值依次赋给a[0]至a[4]
答案:
D
判断
题号:1325
若有说明int c;则while(c=getchar());是正确的C语句。
答案:正确
题号:3386
若有int ⅰ=10, j=0;则执行完语句
if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。
答案:错误
题号:464
若 a=3,b=2,c=1 则关系表达式\”(a>b)==c\” 的值为\”真\”。
答案:正确
题号:2316
while和do…while循环不论什么条件下它们的结果都是相同的.
答案:错误
题号:2989
char c[]=\”Very Good\”; 是一个合法的为字符串数组赋值的语句。
答案:正确
题号:5034
语句scanf(\”%7.2f\”,&a);是一个合法的scanf函数。
答案:错误
题号:2067
如果想使一个数组中全部元素的值为0,可以写成
int a[10]={0*10};
答案:错误
题号:5263
x*=y+8 等价于 x=x*(y+8)。
答案:正确
题号:3862
如果函数值的类型和return语句中表达式的值不一致,则以
函数类型为准。
答案:正确
题号:3558
整数 -32100可以赋值给int型和long int型变量。
答案:正确
填空
题号:551
请写出以下程序的输出结果_____。
main()
{ int a = 100;
if( a >100) printf(“%d\\n”, a >100);
else printf(“%d\\n”, a<= 100);
}
答案:
空 1:
1
题号:1575
对以下数学式,写出三个等价的C语言表达式是_____、_____、_____
答案:
空 1:
a/c/b 【或】 a/(b*c) 【或】 a/b/c
空 2:
a/c/b 【或】 a/b/c 【或】 a/(b*c)
空 3:
a/b/c 【或】 a/c/b 【或】 a/(b*c)
题号:1076
表达式3.5 + 1 / 2的计算结果是_____。
答案:
空 1:
3.5
题号:2758
若x为double型变量,请写出运算x = 3.2, ++x后表达式的值_____和变量的值_____。
答案:
空 1:
4.2
空 2:
4.2
题号:582
以下程序的执行结果是_____。
main()
{
int k=8;
switch(k)
{
case 9: k+=1;
case 10: k+=1;
case 11: k+=1; break;
default: k+=1;
}
printf(\”%d\n\”,k);
}
答案:
空 1:
9
题号:2868
若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入
10、20、30、40,正确的输入形式是_____。请用
scanf(“%d%c%d%c%d%c%d%c”, &w, &a, &x,&b, &y, &c, &z, &d);
答案:
空 1:
10A20B30C40D
题号:4063
以下程序段的输出结果是_____、_____、_____、_____
double a = 513.789215;
printf(“a = %8.6f, a = %8.2f, a = %14.8f, a = %14.8lf\\n”, a, a, a, a);
答案:
空 1:
a = 513.789215
空 2:
a = 513.79
空 3:
a = 513.78921500
空 4:
a = 513.78921500
题号:5076
以下程序的输出结果是_____。
main()
{ int a=0;
a+=(a=8);
printf(\”%d\n\”,a); }
答案:
空 1:
16
题号:5410
以下程序的执行结果是_____。
main()
{
int a, b, *p = &a, *q = &b
a = 10;
b = 20;
*p = b;
*q = a;
printf(“a = %d, b = %d\\n”, a, b);
}
答案:
空 1:
a = 20, b = 20
题号:6975
以下程序的输出结果是_____。
main()
{ int x = 2;
while ( x– );
printf(“%d\\n”, x);
}
答案:
空 1:
-1
程序设计
题号:58
/*————————————————
【程序设计】
————————————————–
功能:将字符串中的小写字母转换为对应的大写字母,
其它字符不变。
————————————————*/
#include \”string.h\”
#include
void bky();
void change(char str[])
{
/**********Begin**********/
/********** End **********/
}
main()
{
void change();
char str[40];
gets(str);
change(str);
puts(str);
bky();
}
void bky()
{
FILE *IN,*OUT;
char i[200];
IN=fopen(\”in.dat\”,\”r\”);
if(IN==NULL)
{
printf(\”Read FILE Error\”);
}
OUT=fopen(\”out.dat\”,\”w\”);
if(OUT==NULL)
{
printf(\”Write FILE Error\”);
}
fscanf(IN,\”%s\”,i);
change(i);
fprintf(OUT,\”%s\\n\”,i);
fclose(IN);
fclose(OUT);
}
示例代码:
int i;
for(i=0;str[i]!=\’\\0\’;i++)
if(str[i]>=\’a\’ && str[i]<=\’z\’)
str[i]=str[i]-32;
题号:45
能正确表示逻辑关系:\” a≥10或a≤0 \”的C语言表达式是
A、a>=0 | a<=10
B、a>=10 or a<=0
C、a>=10 && a<=0
D、a>=10 || a<=0
答案:
D
题号:53
若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。
A、int *p=&x
B、int p=&x
C、*p=*x;
D、int *p=x;
答案:
A
题号:2244
字符串指针变量中存入的是
A、第一个字符
B、字符串
C、字符串的首地址
D、字符串变量
答案:
C
题号:3722
下列字符数组长度为5的是
A、char c[10]= {\’h\’, \’a\’, \’b\’, \’c\’, \’d\’};
B、char b[]= {\’h\’, \’a\’, \’b\’, \’c\’, \’d\’, \’\\0\’};
C、char a[]={\’h\’, \’a\’, \’b\’, \’c\’, \’d\’};
D、char d[6]= {\’h\’, \’a\’, \’b\’, \’c\’, \’\\0\’ };
答案:
C
题号:2703
从键盘上输入某字符串时,不可使用的函数是()。
A、getchar()
B、scanf()
C、fread()
D、gets()
答案:
A
题号:3402
以下对整型数组a的正确说明是:
A、int n = 10, a[n];
B、
C、
D、int a(10);
答案:
C
题号:130
若char a[10];已正确定义,以下语句中不能从键盘上给a数组的
所有元素输入值的语句是()。
A、scanf(\”%s\”,a);
B、for(i=0;i<10;i++)a[i]=getchar();
C、a=getchar();
D、gets(a);
答案:
C
题号:191
若有说明语句:char c=\’\\72\’;则变量c()。
A、说明不合法,c的值不确定
B、包含3个字符
C、包含1个字符
D、包含2个字符
答案:
C
题号:4539
以下程序的输出结果是
main()
{ int i = 1, j = 3;
printf(“%d,”, i++);
{ int i = 0;
i += j * 2;
printf(“%d,%d,”, i, j );
}
pritnf(“%d,%d\\n”, i, j );
}
A、1,6,3,2,3
B、2,7,3,2,3
C、1,7,3,2,3
D、2,6,3,2,3
答案:
A
题号:300
以下对一维整型数组a的正确说明是()。
A、#define SIZE 10 (换行) int a[SIZE];
B、int a(10);
C、int n; scanf(\”%d\”,&n); int a[n];
D、int n=10,a[n];
答案:
A
判断
题号:2691
若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
答案:错误
题号:2067
如果想使一个数组中全部元素的值为0,可以写成
int a[10]={0*10};
答案:错误
题号:1118
函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5.
答案:错误
题号:1534
C语言所有函数都是外部函数.
答案:错误
题号:2158
#define 和printf 都不是C语句。
答案:正确
题号:6321
循环结构中的continue语句是使整个循环终止执行
答案:错误
题号:2583
在程序中定义了一个结构体类型后,可以多次用它来定义具有
该类型的变量。
答案:正确
题号:3386
若有int ⅰ=10, j=0;则执行完语句
if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。
答案:错误
题号:2998
c程序总是从程序的第一条语句开始执行.
答案:错误
题号:5034
语句scanf(\”%7.2f\”,&a);是一个合法的scanf函数。
答案:错误
填空
题号:582
以下程序的执行结果是_____。
main()
{
int k=8;
switch(k)
{
case 9: k+=1;
case 10: k+=1;
case 11: k+=1; break;
default: k+=1;
}
printf(\”%d\n\”,k);
}
答案:
空 1:
9
题号:5171
把a1、a2定义成单精度实型变量,并赋初值1的说明语句是_____。
答案:
空 1:
float a1 = 1.0, a2 = 1.0;
题号:63
以下程序的输出结果是_____。
#define PR(ar) printf(“ar = %d “, ar)
main()
{ int j, a[] = { 1, 3, 5, 7, 9, 11, 13, 15}, *p = a + 5;
for(j = 3; j ; j–)
switch( j )
{ case 1:
case 2: PR(*p++); break;
case 3: PR(*(–p) );
}
}
答案:
空 1:
ar=9 ar=9 ar=11
题号:3255
表达式(int)((double)(5/2)+2.5)的值是_____.
答案:
空 1:
4
题号:1076
表达式3.5 + 1 / 2的计算结果是_____。
答案:
空 1:
3.5
题号:6547
当a = 1、b = 2、c = 3时,以下if语句执行后,a、b、c中的值分别为:_____、_____、_____
if(a >c)
b = a; a = c; c = b;
答案:
空 1:
3
空 2:
2
空 3:
2
题号:3925
阅读下面程序,则执行后程序的结果为_____。
#include \”stdio.h\”
main()
{
int a=0,b=0;
while(a<15)
a++;
while(b++<15);
printf(\”%d,%d\n\”,a,b);
}
答案:
空 1:
15, 16
题号:4473
有以下程序段:
s = 1.0;
for(k = 1; k<= n; k++)
s = s + 1.0 / (k * (k + 1));
printf(“%f\\n”, s);
请填空,使下面的程序段的功能完全与之等同。
s = 0.0;
_____;
k = 0;
do
{ s += d;
_____;
d = 1.0 / (k * (k + 1));
}while(_____ );
printf(“%f\\n”, s);
答案:
空 1:
d = 1.0
空 2:
k++
空 3:
k<= n
题号:6975
以下程序的输出结果是_____。
main()
{ int x = 2;
while ( x– );
printf(“%d\\n”, x);
}
答案:
空 1:
-1
题号:4423
下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0.请填空。
main()
{ int i, x, y=1;
scanf(\”%d\”, &x);
for(i=2; i<= _____; i++)
if_____{ y=0; break;}
printf(\”%d\n\”, y);
}
答案:
空 1:
x / 2
空 2:
!(x % i) 【或】 x % i == 0
程序设计
题号:788
/*——————————————————-
【程序设计】
———————————————————
题目:用while语句求1~100的累计和。
——————————————————-*/
void bky();
int fun(int n)
{
/**********Begin**********/
/********** End **********/
}
void main()
{
int sum = 0;
sum=fun(100);
printf (\”sum = %d\\n\”, sum);
bky();
}
void bky()
{
FILE *IN,*OUT;
int i;
int iIN,iOUT;
IN=fopen(\”in.dat\”,\”r\”);
if(IN==NULL)
{
printf(\”Please Verify The Currernt Dir..it May Be Changed\”);
}
OUT=fopen(\”out.dat\”,\”w\”);
if(OUT==NULL)
{
printf(\”Please Verify The Current Dir.. it May Be Changed\”);
}
for(i=0;i<5;i++)
{
fscanf(IN,\”%d\”,&iIN);
iOUT=fun(iIN);
fprintf(OUT,\”%d\\n\”,iOUT);
}
fclose(IN);
fclose(OUT);
}
示例代码:
int i=1,sum=0;
while(i<=n)
{
sum=sum+i;
i++;
}
return sum;
题号:4662
变量p为指针变量,若p=&a,下列说法不正确的是()。
A、*(p++)==a++
B、&*p==&a
C、(*p)++==a++
D、*&a==a
答案:
A
题号:6651
C语言允许函数类型缺省定义,此时函数值隐含的类型是()。
A、long
B、float
C、int
D、double
答案:
C
题号:6993
若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()。
A、1
B、2.0
C、2.5
D、2
答案:
B
题号:6988
以下程序的输出结果是
main()
{ int a = 2, b =5;
printf(“a=%%d,b=%%d\\n”,a, b);
}
A、a=%2,b=%5
B、a=%%d,b=%%d
C、a=%d,b=%d
D、a=2,b=5
答案:
C
题号:5659
若有定义int a[10],*p=a;,则p+5表示
A、元素a[5]的地址
B、元素a[6]的地址
C、元素a[6]的值
D、元素a[5]的值
答案:
A
题号:6490
若有说明:int *p,m=5,n;以下正确的程序段是()。
A、scanf(\”%d\”,&n);*p=n;
B、p=&n*p=m;
C、p=&nscanf(\”%d\”,*p)
D、p=&nscanf(\”%d\”,&p);
答案:
B
题号:6073
下列程序的输出结果为()。
main()
{int m=7,n=4;
float a=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf(\”%f\\n\”,x);
}
A、28.000000
B、27.500000
C、28.500000
D、27.000000
答案:
D
题号:401
以下所列的C语言常量中,错误的是()。
A、\’\\72\’
B、0xFF
C、2L
D、1.2e0.5
答案:
D
题号:1684
int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为()。
A、3
B、2
C、不一定
D、1
答案:
B
题号:961
C语言中 while 和 do-while 循环的主要区别是()。
A、while的循环控制条件比 do-while的循环控制条件更严格
B、do-while 的循环体至少无条件执行一次
C、do-while 的循环体不能是复合语句
D、do-while 允许从外部转到循环体内
答案:
B
判断
题号:3927
两个字符串中的字符个数相同时才能进行字符串大小的比较
答案:错误
题号:5124
7&3+12的值是15。
答案:错误
题号:3721
语句 printf(\”%f%%\”,1.0/3);输出为 0.333333。
答案:错误
题号:3862
如果函数值的类型和return语句中表达式的值不一致,则以
函数类型为准。
答案:正确
题号:6755
若i =3,则printf(\”%d\”,-i++);输出的值为 -4。
答案:错误
题号:4579
通过return语句,函数可以带回一个或一个以上的返回值。
答案:错误
题号:2440
int i,*p=&i是正确的C说明。
答案:正确
题号:4678
a=(b=4)+(c=6) 是一个合法的赋值表达式。
答案:正确
题号:6288
十进制数15的二进制数是1111.
答案:正确
题号:464
若 a=3,b=2,c=1 则关系表达式\”(a>b)==c\” 的值为\”真\”。
答案:正确
填空
题号:2713
以下程序段的输出结果是_____。
printf(“%d\\n”, strlen(“s\\n\\016\\0end”));
答案:
空 1:
3
题号:2758
若x为double型变量,请写出运算x = 3.2, ++x后表达式的值_____和变量的值_____。
答案:
空 1:
4.2
空 2:
4.2
题号:3121
若有定义:int a=8,b=5,c 执行语句c=a/b+0.4后,c的值为_____
答案:
空 1:
1
题号:4474
当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____。
答案:
空 1:
65535
空 2:
-32768
空 3:
1111 1111 1111 1111,1000 0000 0000 0000
题号:4683
若从键盘输入58,则以下程序输出的结果是_____。
main()
{
int a;
scanf\”%d\”,&a);
if(a>50)printf(\”%d\”,a);
if(a>40)printf(\”%d\”,a);
if(a>30)printf(\”%d\”,a);
}
答案:
空 1:
585858
题号:1262
请写出与以下表达式等价的表达式是 A)_____B)_____。
A)!(x>0) B)!0
答案:
空 1:
x<= 0
空 2:
1
题号:5076
以下程序的输出结果是_____。
main()
{ int a=0;
a+=(a=8);
printf(\”%d\n\”,a); }
答案:
空 1:
16
题号:5410
以下程序的执行结果是_____。
main()
{
int a, b, *p = &a, *q = &b
a = 10;
b = 20;
*p = b;
*q = a;
printf(“a = %d, b = %d\\n”, a, b);
}
答案:
空 1:
a = 20, b = 20
题号:5299
运用位运算,能将八进制数0125000除以4,然后赋给变量a的表达式是_____。
答案:
空 1:
a = 0125000>>2
题号:2211
在C语言程序中,用关键字_____定义基本整型变量,用关键字_____定义单精度实型变量,用关键字_____定义双精度实型变量。
答案:
空 1:
int
空 2:
float
空 3:
double
程序设计
题号:4003
/*————————————————
【程序设计】
————————————————–
功能:求一个四位数的各位数字的立方和
————————————————*/
#include
void VV();
int fun(int n)
{
/********** Begin **********/
/********** End ***********/
}
main()
{
int k;
k=fun(1234);
printf(\”k=%d\\n\”,k);
VV();
}
void VV()
{
FILE *IN,*OUT;
int iIN,iOUT,i;
IN=fopen(\”22.IN\”,\”r\”);
if(IN==NULL)
{
printf(\”Please Verify The Currernt Dir..it May Be Changed\”);
}
OUT=fopen(\”22.out\”,\”w\”);
if(OUT==NULL)
{
printf(\”Please Verify The Current Dir.. it May Be Changed\”);
}
for(i=0;i<10;i++)
{
fscanf(IN,\”%d\”,&iIN);
iOUT=fun(iIN);
fprintf(OUT,\”%d\\n\”,iOUT);
}
fclose(IN);
fclose(OUT);
}
示例代码:
int d,k,s=0;
while (n>0)
{
d=n%10;
s+=d*d*d;
n/=10;
}
return s;
题号:6991
以下程序的执行结果是________.
main()
{ int w = 1, x = 2, y = 3, z = 4;
w =( w< x ) ? x : w;
w =( w< y ) ? y : w;
w =( w< z ) ? z : w;
printf( \”%d \” , w );}
A、2
B、4
C、3
D、1
答案:
B
题号:5467
若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()。
A、n=*q;
B、p=q;
C、p=n;
D、*p=*q;
答案:
C
题号:5820
以下程序的输出结果是
void prtv(int *x)
{ printf(“%d\\n”, ++*x); }
main()
{ int a = 25;
prtv(&a);
}
A、24
B、26
C、23
D、25
答案:
B
题号:6988
以下程序的输出结果是
main()
{ int a = 2, b =5;
printf(“a=%%d,b=%%d\\n”,a, b);
}
A、a=%2,b=%5
B、a=%%d,b=%%d
C、a=%d,b=%d
D、a=2,b=5
答案:
C
题号:6976
语句printf(\”a\\bre\\\’hi\\\’y\\\\\\bou\\n\”);的输出结果是
(说明:\’\\b\’是退格符)()。
A、a\\bre\\\’hi\\\’y\\\\\\bou
B、re\’hi\’you
C、abre\’hi\’y\\bou
D、a\\bre\\\’hi\\\’y\\bou
答案:
B
题号:166
以下关于运算符优先顺序的描述中正确的是()。
A、关系运算符<算术运算符<赋值运算符<逻辑运算符
B、赋值运算符<逻辑运算符<关系运算符<算术运算符
C、算术运算符<关系运算符<赋值运算符<逻辑运算符
D、逻辑运算符<关系运算符<算术运算符<赋值运算符
答案:
B
题号:333
下列语句的结果是()。
main()
{ int j;
j=3;
printf(\”%d,\”,++j);
printf(\”%d\”,j++);
}
A、3,4
B、4,4
C、4,3
D、3,3
答案:
B
题号:457
设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
A、6.000000
B、5.500000
C、6
D、6.500000
答案:
A
题号:523
若有定义:int a=7;float x=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是()。
A、3.500000
B、0.000000
C、2.750000
D、2.500000
答案:
D
题号:855
若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上
语句后,a和b的值分别是()。
A、a=4,b=4
B、a=3,b=3
C、a=3,b=4
D、a=4,b=3
答案:
D
判断
题号:1325
若有说明int c;则while(c=getchar());是正确的C语句。
答案:正确
题号:478
C语言中\”%\”运算符的运算对象必须是整型.
答案:正确
题号:2998
c程序总是从程序的第一条语句开始执行.
答案:错误
题号:3246
假设有int a[10], *p;则p=&a[0]与p=a等价
答案:正确
题号:2158
#define 和printf 都不是C语句。
答案:正确
题号:1498
C语言本身不提供输入输出语句,输入和输出操作是由函数来
实现的。
答案:正确
题号:6288
十进制数15的二进制数是1111.
答案:正确
题号:5263
x*=y+8 等价于 x=x*(y+8)。
答案:正确
题号:2691
若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
答案:错误
题号:5102
关系运算符<= 与 == 的优先级相同。
答案:错误
填空
题号:937
以下程序段的输出结果是_____。
int i = 0, sum = 1;
do
{ sum += i++;
} while( i< 5);
printf(“%d\\n”, sum);
答案:
空 1:
11
题号:1076
表达式3.5 + 1 / 2的计算结果是_____。
答案:
空 1:
3.5
题号:1797
以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,
给x输入1.89234时的三种可能的输入形式_____、_____、_____。
int k; flaot a; double x;
scanf(“%d%f%lf”, &k, &a, &x);
printf(“k = %d, a = %f, x = %f\\n”, k, a, x);
答案:
空 1:
100 25.81 1.8923
空 2:
100 25.81 1.8923
空 3:
100 25.81 1.8923
题号:2472
阅读下面程序,程序执行后的输出结果为_____。
#include \”stdio.h\”
main()
{
char a,b;
for(a=′0′,b=′9′;a
printf(\”%c%c\”,a,b);
printf(\”\n\”);
}
答案:
空 1:
0918273645
题号:2797
以下程序的输出结果是_____。
unsigned fun6(unsigned num)
{ unsigned k = 1;
do
{ k *= num % 10;
num /= 10;
} while( num);
return k;
}
main()
{ unsigned n = 26;
printf(“%d\\n”, fun6(n));
}
答案:
空 1:
12
题号:4423
下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0.请填空。
main()
{ int i, x, y=1;
scanf(\”%d\”, &x);
for(i=2; i<= _____; i++)
if_____{ y=0; break;}
printf(\”%d\n\”, y);
}
答案:
空 1:
x / 2
空 2:
!(x % i) 【或】 x % i == 0
题号:6966
设变量a的二进制数是00101101,若想通过运算a^b使a的高4位取反,低4位不变,
则b的二进制数应该是_____。
答案:
空 1:
11110000
题号:3121
若有定义:int a=8,b=5,c 执行语句c=a/b+0.4后,c的值为_____
答案:
空 1:
1
题号:5171
把a1、a2定义成单精度实型变量,并赋初值1的说明语句是_____。
答案:
空 1:
float a1 = 1.0, a2 = 1.0;
题号:6655
若表达式(a+b)>c*2&&b!=5||!(1/2)中,a、b、c的定义和赋值为
Int a=3,b=4,c=2;
则表达式的值为_____。
答案:
空 1:
1
程序设计
题号:1124
/* 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,
最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。
主函数中x是数组名, n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
注意:部分源程序存在文件prog.c中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/
#include
#include
#include
void fun(int a[], int n , int *max, int *d )
{
/********** Begin **********/
/********** End ***********/
}
void NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i, x[20], max , index, n = 10, j ;
fp = fopen(\”bc06.in\”,\”r\”) ;
if(fp == NULL) {
printf(\”数据文件bc06.in不存在!\”) ;
return ;
}
wf = fopen(\”bc06.out\”,\”w\”) ;
for(i = 0 ; i< 10 ; i++) {
for(j = 0 ; j< n ; j++) fscanf(fp, \”%d,\”, &x[j]) ;
fun( x, n , &max, &index);
fprintf(wf, \”Max=%d,Index=%d\\n\”, max, index) ;
}
fclose(fp) ;
fclose(wf) ;
}
main()
{ int i, x[20], max , index, n = 10;
srand(time(0));
for (i=0;i< n;i++) {x[i] = rand()%50; printf(\”%4d\”, x[i]) ; }
printf(\”\\n\”);
fun( x, n , &max, &index);
printf(\”Max =%5d , Index =%4d\\n\”,max, index );
NONO();
}
示例代码:
int i,base,subscript;
base=a[0]; /*假定第一个元素的值最大*/
subscript=0; /*subscript用于存放数组下标*/
for(i=1;i if(a[i]>base) { /*将数组中的其他元素与变量base作比较,如果大于它则交换两者的值*/ subscript=i; base=a[i]; } } *max=base; /*将最大值元素的值赋给*max*/ *d=subscript; /*将最大值元素的下标赋给*d*/ 题号:5537 有定义:char*p1,*p2;则下列表达式中正确合理的是 A、p1/=5 B、p1+=5 C、p1=&p2 D、p1*=p2 答案: C 题号:5257 若有定义:int *p[3];,则以下叙述中正确的是()。 A、定义了一个名为*p的整型数组,该数组含有三个int类型元素 B、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 C、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 D、定义了一个基类型为int的指针变量p,该变量具有三个指针 答案: C 题号:6968 C语言中,定义结构体的保留字是()。 A、struct B、union C、enum D、typedef 答案: A 题号:1468 设 char *s=\”\\ta\\017bc\”;则指针变量s指向的字符串所占的字节数 是()。 A、7 B、6 C、9 D、5 答案: B 题号:5300 以下程序的输出结果是 main() { int a[] = {1, 2, 3, 4}, i, x = 0; for(i = 0; i< 4; i++) { sub(a, &x); printf(“%d ”, x); } pritnf(“\\n”); } sub(int *s, int *y) { static int t = 3; *y = s[t]; t–; } A、4 4 4 4 B、0 0 0 0 C、1 2 3 4 D、4 3 2 1 答案: D 题号:1700 以下叙述正确的是: A、用do-while构成循环时,只有在while后的表达式为非零时结束循环 B、do-while语句构成的循环不能用其它语句构成的循环来代替。 C、用do-while构成循环时,只有在while后的表达式为零时结束循环 D、do-while语句构成的循环只能用break语句退出。 答案: C 题号:2823 对两个数组a和b进行如下初始化: char a[] = “ABCDEF”; char b[] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F’}; 则以下叙述正确的是 A、a与b中都存放字符串 B、a数组比b数组长度长 C、a与b长度相同 D、a与b完全相同 答案: B 题号:4522 以下数值中,不正确的八进制数或十六进制数是()。 A、-16 B、0x16 C、16 D、0xaaaa 答案: A 题号:1353 对于基本类型相同的两个指针变量之间,不能进行的运算是()。 A、+ B、< C、= D、- 答案: A 题号:2247 执行下列语句后的结果为()。 int x=3,y; int *px=&x y=*px++; A、x=3,y=4 B、x=3,y不知 C、x=4,y=4 D、x=3,y=3 答案: D 判断 题号:2921 参加位运算的数据可以是任何类型的数据。 答案:错误 题号:2316 while和do…while循环不论什么条件下它们的结果都是相同的. 答案:错误 题号:3246 假设有int a[10], *p;则p=&a[0]与p=a等价 答案:正确 题号:2851 字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面. 答案:错误 题号:4703 函数strlen(\”ASDFG\\n\”)的值是7。 答案:错误 题号:5124 7&3+12的值是15。 答案:错误 题号:6167 表达式 (j=3, j++) 的值是4. 答案:错误 题号:4678 a=(b=4)+(c=6) 是一个合法的赋值表达式。 答案:正确 题号:3721 语句 printf(\”%f%%\”,1.0/3);输出为 0.333333。 答案:错误 题号:583 若有定义和语句: int a;char c;float f;scanf(\”%d,%c,%f\”,&a,&c,&f); 若通过键盘输入: 10,A,12.5,则a=10,c=\’A\’,f=12.5. 答案:正确 填空 题号:6886 以下程序的执行结果是_____。 #define PRINT(V) printf(“V = %d\\t”,V) main() { int a, b; a = 1; b = 2; PRINT(a); PRINT(b); } 答案: 空 1: V = 1 V = 2 题号:6547 当a = 1、b = 2、c = 3时,以下if语句执行后,a、b、c中的值分别为:_____、_____、_____ if(a >c) b = a; a = c; c = b; 答案: 空 1: 3 空 2: 2 空 3: 2 题号:5307 下列程序的执行结果是_____。 int d = 1; fun(int p) { int d = 5; d += p++; pritnf(“%d “, d); } main() { int a = 3; fun(a); d += a++; printf(“%d\\n”, d); } 答案: 空 1: 8 4 题号:1540 以下程序的输出结果是_____。 double sub(double x, double y, double z) { y -= 1.0; z = z + x; return z; } main() { double a = 2.5, b = 9.0; printf(“%f\\n”, sub(b – a, a, b)); } 答案: 空 1: 15.500000 题号:606 以下程序段的输出结果是_____。 int k, n, m; n = 10; m = 1; k = 1; while( k<= n ) m *= 2; printf(“%d\\n”, m); 答案: 空 1: 无输出结果 【或】 死循环 【或】 死循环无输出结果 题号:561 阅读下面程序,程序执行后的输出结果是_____。 #include \”stdio.h\” main() { int x,y,z; x = 1; y = 2; z = 3; if(x>y) if(x>z)printf(\”%d\”,x); else printf(\”%d\”,y); printf(\”%d\n\”,z); } 答案: 空 1: 3 题号:1240 函数体由符号_____开始,用符号_____结束。 答案: 空 1: { 空 2: } 题号:1829 若k为int型变量且赋值11,请写出运算k++后表达式的值_____和变量的值_____。 答案: 空 1: 11 空 2: 12 题号:2493 将下列数学式改写成C语言的关系表达式或逻辑表达式是 A)_____B)_____。 A)a=b或a 答案: 空 1: a==b || a 空 2: abs(x)>4 【或】 x<-4 || x>4 题号:1575 对以下数学式,写出三个等价的C语言表达式是_____、_____、_____ 答案: 空 1: a/c/b 【或】 a/(b*c) 【或】 a/b/c 空 2: a/c/b 【或】 a/b/c 【或】 a/(b*c) 空 3: a/b/c 【或】 a/c/b 【或】 a/(b*c) 程序设计 题号:5002 /*———————————————— 【程序设计】 ————————————————– 功能:对某一正数的值保留2位小数,并对第三位进行四舍 五入。 ————————————————*/ #include \”stdio.h\” #include \”conio.h\” float fun(float h) { /*********Begin**********/ /********** End **********/ } main() { float m; void TestFunc(); printf(\”Enter m: \”); scanf(\”%f\”, &m); printf(\”\\nThe result is %8.2f\\n\”, fun(m)); TestFunc(); } void TestFunc() { FILE *IN,*OUT; int s ; float t; float o; IN=fopen(\”in.dat\”,\”r\”); if(IN==NULL) { printf(\”Read File Error\”); } OUT=fopen(\”out.dat\”,\”w\”); if(OUT==NULL) { printf(\”Write File Error\”); } for(s=1;s<=5;s++) { fscanf(IN,\”%f\”,&t); o=fun(t); fprintf(OUT,\”%8.2f\\n\”,o); } fclose(IN); fclose(OUT); } 示例代码: int i; i=(int)(h*1000)%10; if(i>=5) return(int)(h*100+1)/100.0; else
用户评论
计算机二级的 C 语言真难啊!
有12位网友表示赞同!
每次考试都拿不到满分...感觉C语言不太行...
有9位网友表示赞同!
有没有什么好方法学* C 语言?
有13位网友表示赞同!
真的,只要答案对了就是对的,考试的时候别想那么多。
有12位网友表示赞同!
我觉得理解 C 语言代码的功能更重要一些。
有14位网友表示赞同!
C语言的语法确实有点绕
有11位网友表示赞同!
每次看到指针就头疼...
有8位网友表示赞同!
学* C 语言就是敲代码,多练*几次就能熟练掌握
有16位网友表示赞同!
考试的时候要保证逻辑清晰,不要犯低级错误
有5位网友表示赞同!
有没有资源能帮我刷C语言题?
有16位网友表示赞同!
计算机二级 C 语言还是挺重要的
有9位网友表示赞同!
不知道答案对了就对的吗,感觉还是需要理解概念才是最重要的
有18位网友表示赞同!
考试的时候要记得时间管理,不要纠结于一道难题上
有11位网友表示赞同!
C 语言确实很考验逻辑思维能力
有14位网友表示赞同!
有没有人推荐好的 C 语言教材?
有15位网友表示赞同!
希望这次考试能过!
有10位网友表示赞同!
学*编程感觉需要不断积累经验
有20位网友表示赞同!