2009秋C语言笔试
2009年04月全国计算机等级考试二级C语言真题
2009年04月全国计算机等级考试二级C语言真题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)数据库应用系统中的核心问题是C)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 <stdio.h>main(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数B)大于3且不等于10的整数C)大于3或等于10的整数D)小于3的整数(19)有以下程序#include<stdio.h>Main(){int a=1,b=2,c=3,d=0;if(a= =1 &&b++= =2)if(b!=2 || c--!=3)printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);}程序运行后的输出结果是A)1,2,3B)1,3,2C)1,3,3D)3,2,1(20)以下程序中的变量已正确定义for(i=0;i<4;i++,i++for(k=1;k<3;k++);printf(*”);程序段的输出结果是A)********B)****C)**D)*(21)有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。
2009年(秋季)江苏省计算机二级考试C语言笔试部分试卷
『科举网』2009年(秋季)江苏省计算机等级考试二级笔试试卷C语言程序设计教育部考试中心二〇〇八年二月制★科举网★★二级C语言大礼包★1.2001年(春季)江苏省计算机等级考试二级笔试试卷2.2001年(秋季)江苏省计算机等级考试二级笔试试卷3.2002年(春季)江苏省计算机等级考试二级笔试试卷4.2002年(秋季)江苏省计算机等级考试二级笔试试卷5.2003年(春季)江苏省计算机等级考试二级笔试试卷6.2003年(秋季)江苏省计算机等级考试二级笔试试卷7.2004年(春季)江苏省计算机等级考试二级笔试试卷8.2004年(秋季)江苏省计算机等级考试二级笔试试卷9.2005年(春季)江苏省计算机等级考试二级笔试试卷10.2005年(秋季)江苏省计算机等级考试二级笔试试卷11.2006年(春季)江苏省计算机等级考试二级笔试试卷12.2006年(秋季)江苏省计算机等级考试二级笔试试卷13.2007年(春季)江苏省计算机等级考试二级笔试试卷14.2007年(秋季)江苏省计算机等级考试二级笔试试卷15.2008年(春季)江苏省计算机等级考试二级笔试试卷16.2008年(秋季)江苏省计算机等级考试二级笔试试卷17.2009年(春季)江苏省计算机等级考试二级笔试试卷18.2009年(秋季)江苏省计算机等级考试二级笔试试卷19.2010年(春季)江苏省计算机等级考试二级笔试试卷20.2010年(秋季)江苏省计算机等级考试二级笔试试卷21.2011年(春季)江苏省计算机等级考试二级笔试试卷【注意】1.『科举网』会不定期对以上资料进行修订,如果您手中的这份文件来自互联网,请及时登录『科举网』下载最新资料。
2009年(秋季)江苏省计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分60分)一、选择题((1)~(30)每小题1分,共30分)1.A.B.c.2.A.B.3.4.B.C.5.C.启动CMOS设置程序可以重新设置CMOS中的数据,该程序是BIOS的组成部分D.网卡通常集成在主板上,由主板上独立的IC实现其功能,与芯片组无关6. 从PC机存储器的层次结构来看,下列存储器中存取速度最快的是。
2009年3月全国计算机等级考试二级笔试试卷C语言程序设计(附答案)
机密★启用前2009年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题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,则所使用的运算为A)选择 B)投影C)插入 D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性 B)键 C)关系 D)域(11)以下选项中合法的标识符是A)l_l B)l-l C)_ll D)l_ _(12)若函数中有定义语句:int k;,则A)系统将自动给k赋初值0 B)这时k中的值无定义C)系统将自动给k赋初值-1 D)这时k中无任何值(13)以下选项中,能用作数据常量的是A)o115 B)0118 C)1.5e1.5 D)115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x) D)2*x,x+=2(15)程序段:int x=12;double y=3.;printf(“%d%8.6f”,x,y);的输出结果是:A)123. B)12 3. C)12,3. D)123.(16)若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是A)scanf(“%f%f”,x,y); B)scanf(“%f%f”,&x,&y);C)scanf(“%1f%1e”,px,py); D)scanf(“%1f%1f”,x,y);(17)以下是if语句的基本形式:if(表达式) 语句其中“表达式”A)必须是逻辑表达式 B)必须是关系表达式C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式(18)有以下程序#include <stdio.h>main(){ int x;scanf(“%d”,&x);if(x<=3) ; elseif(x!=10) printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数 B)大于3且不等于10的整数C)大于3或等于10的整数 D)小于3的整数(19)有以下程序#include <stdio.h>main(){ int a=1,b=2,c=3,d=0;if (a==1 && b++==2)if (b!=2||c==!=3)printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);}程序运行后输出的结果是A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1(20)以下程序段中的变量已正确定义for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);程序段输出的结果是A)******** B)**** C)** D)*(21)有以下程序#include <stdio.h>main(){ char *s={“ABC”};do{ printf(“%d”,*s%10); s++;}while(*s);}注意:字母A的ASCⅡ码值为65。
全国计算机等级考试二级C语言真题09月之欧阳引擎创编
2009年9月全国计算机等级考试二级笔试考试欧阳引擎(2021.01.01)C语言程序设计考试(考试时间90分钟,满分100分)一、选择题((1-10)、(21-40)每题2分,(11)-(20)每题1分,共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)下列选项中不属于结构化程序设计原则的是A )可封装 B)自顶向下 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 如下:R S TA B C a 1 2 b 2 1 c31A B C a 1 2 b 2 1 c 3 1 d32A B Cd 3 2欧阳引擎创编 2021.01.01其中关系T由关系R和关系S通过某种操作得到:该操作为:A) 选择 B) 投影 C)交 D)并11、一下叙述中正确的是:A) 程序设计的任务是编写程序代码并上机调试。
C语言考试2009-3
2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分100分)一、选择题((1)~(10)、(21)~(40)每小题2分,(11)~(20)每小题1分,共70分)1.下列叙述中正确的是 ______。
A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构2.支持子程序调用的数据结构是 ______ 。
A.栈B.树C.队列D.二叉树3.某二叉树有5个度为2的结点,则该二叉树的叶子结点数是 ______ 。
A.10B.8C. 6D. 44.下列排序方法中,最坏情况下比较次数最少的是 ______ 。
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 SA B Ca 3 2b 0 1c 2 1 A Ba 3b 0c 2由关系R通过运算得到关系S,则所使用的运算为 ______ 。
A.选择B.投影C.插入D.连接10.将E-R图转换为关系模式时,实体和联系都可以表示为 ______ 。
2009级C语言程序设计试卷_A卷(带答案2010.5)
天津工业大学200 9 ~201 0 学年第 2 学期高级语言程序设计(C语言) 试卷(A卷答案)学院班级学号姓名注意事项:1、本试卷共12 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
一、单项选择题:(每题 1 分,共40 分)一、单项选择题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.根据C语言的规定,为变量取名时,不能使用的符号是【1】。
A) 数字字符B) 大写字母C) 下划线D) 减号2.一个C语言程序的执行是【2】。
A) 从第一个函数开始,到最后一个函数结束B) 从main()函数开始,到最后一个函数结束C) 从main()函数开始,到main()函数结束D) 从第一个语句开始,到最后一个语句结束3.执行下列程序段后,输出结果是【3】。
int m=013;printf("%d,%o,%x\n",m,m,m);A) 19,23,13 B) 11,13,b C) 13,15,d D) 13,13,134.表达式sizeof(double)的值是【4】。
A) 1 B) 2 C) 4 D) 85.设有变量定义语句char ch; 则能够正确地为变量ch输入数据的是【5】。
A) scanf("%c",&ch); B) getchar(ch);C) scanf("%c",ch); D) putchar(ch);6.设变量a是int型、f是float型、d是double型、c是char型,则表达式c+a-f/d的数据类型是【6】。
A) char型B) int型C) float型D) double型7.有变量定义语句int k=4,m; 执行语句m=k--; 后,变量m、k的值是【7】。
A) m=3,k=3 B) m=4, k=3 C) m=3,k=4 D) m=4,k=48.设int i=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是【8】。
2009年3月ncre二级c语言笔试试卷
#include <stdio.h> void fun(char *s) { while(*s) { if(*s%2==0)printf("%c",*s); s++; } } main() { char a[]={"good"}; fun(a); printf("\n"); } 注意:字母 a 的 ASCII 码值为 97,程序运行后的输出结果是 A) d B) go C) god D) good (26)有以下程序 #include <stdio.h> void fun(int *a,int *b) { int *c; c=a;a=b;b=c; } main() { int x=3,y=5,*p=&x,*q=&y; fun(p,q);printf("%d,%d,",*p,*q); fun(&x,&y);printf("%d,%d\n",*p,*q); } 程序运行后的输出结果是 A)3,5,5,3 B) 3,5,3,5 C)5,3,3,5 D)5,3,5,3 (27)有以下程序 #include <stdio.h> void f(int *p,int *q); main() { int m=1,n=2,*r=&m; f(r,&n); printf("%d,%d,",m,n); } void f(int *p,int *q) { p=p+1;*q=*q+1; } 程序运行后的输出结果是 A)1,3 B)2,3 C) 1,4 D)1,2 (28)以下函数按每行 8 个输出数组中的数据 void fun(int *w,int n) { int i; for(i=0;i<n;i++) { printf("%d ",w[i]); }
09-10年 浙江省计算机等级二级C语言 笔试试题
2009年秋浙江省高等学校计算机等级考试试卷(二级C )试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】计算并输出下列式值,要求精确到最后一项的绝对值小于10-3(保留4伴小数)。
⋯⋯+-+-=13110171411s 运行示例:sum=-0.8361【程序】#include <stdio.h>#include <math.h>main(){int denomintor=1,flag=1;double item,sum=0;(1)while( (2) ){(3)denomintor=denomintor+3;flag=-flag;}printf("sum= (4) \n",sum);}【供选择的答案】(1)A .item =0; B .f item =0.0001;C .;D .item=2; //答案D(2)A .fabs(item)>=1E-3 B .fabs(item)<1E-3C .fabs(item)>=0.0001D .fabs(item)<0.001 //答案A(3)A .sum=sum+item;item=flag*1.0/denominator;B .sum=sum+ flag*1.0/denominator;C .item=flag*1.0/denominator;sum=sum+item;D . item=item+flag*1.0/denominator; //答案C(4)A .%.0f B .%.4fC .%fD .%4.f //答案B试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】输出1到100之间的所有完数,要求定义和调用函数is(n)判断n 是否为完数,若n 为完数返回1,否则返回0。
历年计算机二级C语言笔试真题及答案
2009 年9 月计算机等级考试二级笔试试卷B)程序设计的任务就是确定所用数据结main1)下列数据结构中,属于非线性结构的构int c0k是C)程序设计的任务就是确定所用算法for k1klt3kA)循环队列B 带链队列 C 二叉树D)以上三种说法都不完整switch kD)带链栈12)以下选项中,能用作用户标识符的是default: ck2)下列数据结果中,能够按照“先进后A)void B)8_8 C)_0_ D)unsigned case 2: cbreak 出”原则存取数据的是13)阅读以下程序case 4: c2breakA 循环队列 B 栈C队列D二叉树include ltstdio.hgt 3)对于循环队列,下列叙述中正确的是main printf“dn”cA)队头指针是固定不变的B)队头指针int case float printF 一定大于队尾指针C)队头指针一定小于printf“请输入2 个数:” 程序运行后的输出结果是队尾指针D)队头指针可以大于队尾指scanf“d f”ampcaseamppjrintF A)3 B)5 C)7 D)9针,也可以小于队尾指针printf“d fn”caseprintF 19 )以下程序段中,与语句:4)算法的空间复杂度是指kagtbbgtc1:0:0;功能相同的是A)算法在执行过程中所需要的计算机存该程序编译时产生错误,其出错原因是A)ifagtbampampbgtc k1else k0储空间B)算法所处理的数据量C)A)定义语句出错,case 是关键字,不能B)ifagtbbgtc k1else k0算法程序中的语句或指令条数用作用户自定义标识符B)定义语句C)ifaltb k0else ifbltc k1D)算法在执行过程中所需要的临时工作出错,printF不能用作用户自定义标D)ifagtb k1else ifbgtc k1 else k0单元数识符20)有以下程序5)软件设计中划分模块的一个准则是C)定义语句无错,scanf 不能作为输入函include ltstdio.hgtA 低内聚低耦合B 高内聚低耦合数使用D)定义语句无错,printf mainC 低内聚高耦合 D 高内聚高耦合不能输出case 的值char s“012xy”int in06)下列选项中不属于结构化程序设计原14)表达式:intdouble9/2-92 的值fori0si0i则的是是ifsigt’a’ampampsilt’z’ nA 可封装 B 自顶向下C 模块化A)0 B)3 C)4 D)5 printf“dn”nD 逐步求精15)若有定义语句:int x10,则表达式程序运行后的输出结果是7)软件详细设计x-xx 的值为A)0 B)2 C)3 D)5产生的图如下:A)-20B)-10C)0D)10 21)有以下程序该图是16)有以下程序include ltstdio.hgtA N-S 图 B include ltstdio.hgt mainPAD 图C 程序main int n2k0流程图D E-R 图inta1b0 whilekampampngt28)数据库管理系统是printf“d”bab printf“d dn”knA)操作系统的一部分B 在操作系统支printf“dn”a2b 程序运行后的输出结果是持下的系统软件C 一种编译系统A)0 2 B)1 3 C)5 7 D)1 2D 一种操作系统程序运行后的输出结果是22)有以下定义语句,编译时会出现编译9)在E-R 图中,用来表示实体联系的图A)00 B)10 C)32 D)12 错误的是形是17)设有定义:int a1b2c3,以下语A)char a’a’ B)char a’n’ C)charA 椭圆图B矩形C 菱形 D 三角形句中执行效果与其它三个不同的是a’aa’ D)char a’x2d’10)有三个关A )ifagtb 23)有以下程序系R,S 和T caabbc include ltstdio.hgt如下:B )ifagtb main其中关系T 由caabb char c1c2关系R 和S 通c C)c1’A’’8’-‘4’过某种操作得ifagtb c2’A’’8’-‘5’到,该操作为caabb printf“cdn”c1c2A 选择B 投影C 交D 并c D)ifagtb caabbc 11)以下叙述中正确的是A)程序设18)有以下程序已知字母 A 的ASCII 码为65,程序运行计的任务就是编写程序代码并上机include ltstdio.hgt 后的输出结果是A)E68 B)D69 C)ED D)printf“d”strlenpprintf“sn”p A)void pf pffun B)viod pf 输出无定值程序运行后的输出结果是pffun C)void pf pffun D)24)有以下程序A)9OneWorld B)9OneDream C)void pfintcharpfampfun include ltstdio.hgt 10OneDream D)10OneWorld (34)有以下程序void funint p 29)有以下程序i nclude ltstdio.hgt int d2 include ltstdio.hgt int fint n pd printf“d”p main main main int a 2354i int a3s int a1 fori0ilt4i sfassfaprintf“dn”s funa printf“dn”a 程序运行switchi2 后的输出结果是case 0:switchai2 int fint n A)32 B)12 C)21 D)22 case 0:aibreak static int a125)以下函数findmax 拟实现在数组中查case 1:ai-- na找最大值并作为函数值返回,但程序中有break return n错导致不能实现预定功能case 1:ai0 程序运行以后的输出结果define MIN -2147483647 是int findmax int xint nfori0ilt4i printf“d”ai A)7 B)8 C)9 D)10 int imax printf“n” 35)有以下程序fori0iltni include ltstdio.hgt maxMIN 3 A)3 4 4 B)0 5 0 2 3 C)0 4 0 D)define fx xxx ifmaxltxi maxxi 0304 main return max 30)有以下程序int a3st 造成错误的原因是include ltstdio.hgt sfa1tfa1A)定义语句int imax中max 未赋初值includeltstring.hgt printf“ddn’stB)赋值语句maxMIN中,不应给max main 程序运行后的输出结果赋MIN 值chara10”abcd” 是C)语句ifmaxltxi maxxi中判断条件printf“ddn”strlenasizeofa A)1064 B)1010 C)6410 D)设置错D)赋值语句maxMIN 程序运行后的输出结果是6464 放错了位置A)74 B)410 C)88 D)1010 36)下面结构体的定义语句中,错误的是(26)有以下程序31)下面是有关 C 语言字符数组的描述,A)struct ord int xint yint z struct ord a include ltstdio.hgt 其中错误的是B)struct ord int xint yint z struct main A)不可以用赋值语句给字符数组名赋字ord a int m1n2pampmqampnr 符串B)可以用输入语句把字符串C )struct ord int xint yint z a rppqqr 整体输入给字符数组D)struct int xint yint z a C)字符数组中的内容不一定是字符串37)设有定义:char c,以下选项中能够printf“ddddn”mnpq D)字符数组只能存放字符串使字符型指针c 正确指向一个字符串程序运行后的输出结果是32)下列函数的功能是的是A)121 B)1221 C)212 D)funchar achar b A )char str ”string”cstrB)2112 whileba’0’ ab scanf“s”c C )cgetchar27)若有定义语句:int a410pq4 A)将 a 所指字符串赋给b 所指空间B)D)c”string”且0≤ilt4,则错误的赋值是使指针b 指向a 所指字符串C)将 a 38)有以下程序A)pa B)qiai C)pai D)所指字符串和 b 所指字符串进行比较include ltstdio.hgt pampa21 D)检查a 和b 所指字符串中是否有’0’ includeltstring.hgt28)有以下程序33)设有以下函数struct A include ltstdio.hgt void funint nchar s …… 则下面对int a char b10 double c includeltstring.hgt 函数指针的定义和赋值均是正确的struct A fstruct A t main 是main char str 20“OneWorld” struct A “OneDream”pstr1 a1001”ZhangDa”1098.0 main 程序运行时从键盘输入:How are afajprintf“ds6.1fn”a.aa.b int x20 yoult 回车gt 则输出结果为【13】。
c语言历年考题真题解析
c语言历年考题真题解析Hessen was revised in January 2021(2010年春选择题第21题)A.必须在最开始B.必须在最后C.必须在预处理命令的后面D.可以在其他函数之前或之后【解析】main函数也叫主函数,是C语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。
C程序总是从main函数的第一条语句开始执行。
【答案】D2.以下叙述中正确的是________ 。
(2009年秋选择题第21题)语言系统以函数为单位编译源程序函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数【解析】C语言系统以程序为单位编译源程序,程序由函数组成。
main函数可以放在其他函数之前或之后。
除了main函数外,函数可以被其他函数多次调用。
函数不能定义在其他函数体内,即不能嵌套定义。
【答案】C3.以下叙述中正确的是_________ 。
(2008年秋选择题第21题)A.在编译时可以发现注释中的拼写错误语言程序的每一行只能写一条语句(){}必须位于程序的开始语言程序可以由一个或多个函数组成【解析】C程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。
C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
main函数可以放在程序中的任何位置。
C程序可以由一个或多个函数组成,函数可以为空函数,包括main 函数。
【答案】D4.以下关于C语言源程序的叙述中错误的是________。
(2007年春选择题第21题)A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义B.函数定义由函数头部和函数体两部分组成C.在一个函数定义的函数体中允许定义另一个函数D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身【解析】一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义,函数定义由函数头部和函数体两部分组成。
全国计算机二级c语言2009-2007年历年真题
A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段B)开发阶段C)维护阶段C)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:R TA)选择B)投影C)交D)并A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a--b(14)若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#include<stdio.h>main(){char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar();d=getchar;printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是A)1234B)12C)12D)12334(16)以下关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==I)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是A)switch(a){case1:a=b;break;default:a++;}B)switch(a==1){case0:a=b;break;case1:a++;}C)switch(a){default:a++;break;case1:a=b;}D)switch(a==1){case1:a=b;break;case0:a++;}(19)有如下嵌套的if语句if(a<b)if(a<c) k=a;else k=c;if(b<c) k=b;else k=c;以下选项中与上述if语句等价的语句是A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);C)k=(a<b)?((a<c)?a:c)((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<stdio.h>main(){int i,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i+j>3) break;m*=i*j;}}printf(“m=%d\n”,m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include<stdio.h>main(){int a=1,b=2;for(;a<8;a++) { b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include<stdio.h>main(){int k=011;printf(“%d\n”,k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返同到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008 int num[N];D)#define N 2008 int num[N];(26)有以下程序#include<stdio.h>void fun(char *c,int d){*c=*c+1;d=d+1;printf(“%c,%c”,*c,d);}main(){char b=‘a’,a=‘A’;fun(&b,a);printf(“%c,%c\n”,b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元索a[3]的是A)(*s)[3] B) *(s+3)C)*s[3] D) *s+3(29)有以下程序#include<stdio.h>main(){int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=1;i<3;i++) s=s+a[b[i]];printf(“%d\n”,s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include<stdio.h>main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=1;i<3;i++)for(j=1;j<=1;j++) t+=b[i][b[j][i]];printf(“%d\n”,t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!", s2="\n123\\";printf("%d%d\n",strlen(s1),strlen(s2));则输出结果是A)55B)105C)107D)58(32)有以下程序#include<stdio.h>#define N 8void fun(int *x,int i){*x=*x+i;}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2); for(i=1;i<N/2;i++){printf(“%d”,a[i]);}printf(“\n”);}程序运行后的输山结果是A)1313B)2234C)3234D)1234(33)有以下程序#include<stdio.h>int f(int t[],int n);main(){int a[4]={1,2,3,4},s;s=f(a,4);printf(“%d\n”,s);}int f(int t[],int n){if (n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)10C)14D)6(34)有以下程序#include<stdio.h>int fun(){static int x=1;x*=2;return x;}main(){int i,s=1;for(i=1;i<=2;i++) s=fun();printf(“%d\n”,s);}程序运行后的输出结果是A)0B)1C)4D)8(35)有以下程序#include<stdio.h>#define SUB(a) (a)-(a)main(){int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序运行后的输山结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include<stdio.h>#include<string.h>struct A{int a;char b[10];double c;};void f(struct At);main(){struct Aa={1001,“ZhangDa”,1098.0};f(a);printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}void f(struct At){t.a=1002;strcpy(t.b,“ChangRong”);t.c=1202.0;}输出结果是A)1001,ZhangDa,1098.0B)1002,ChangRong,1202.0C)1001,ChangRong,10980D)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day;int month;int year;}s};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A) pw.year=1980;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include<stdio.h>main(){int a=2,b=a,c=2;printf(“%d\n”,a/b&c);}程序运行后的输出结果是A)0B)1C)2D)3(40)有以下程序#include<stdio.h>main(){FILE *fp;char str[10];fp=open(“myfile.dat”,“w”);fputs(“abc”,pf);close(pf);fp=open(“myfile.dat”,“a+”);fprintf(pf,“%d”,28);rewind(pf);fscanf(pf,“%s”,str);puts(str);close(pf);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
2009年9月全国计算机等级考试二级C语言笔试真题及参考答案
2009年9月二級C語言筆試真題及答案一、選擇題(每題2分,共計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)可封裝 B)自頂向下 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.(12)以下選項中,能用作用戶識別字的是A)void B)8_8 C)_0_ D)unsigned(13)閱讀以下程式#includemain(){ int case; float printF;printf("請輸入2個數:");scanf("%d %f",&case,&printF);printf("%d %f\n",case,printf);}該程式在編譯時產生錯誤,其出錯原因是A)定義語句出錯,case是關鍵字,不能用作用戶自定義識別字B)定義語句出錯,printF不能用作用戶自定義識別字C)定義語句無錯,scanf不能作為輸入函數使用D)定義語句無措,printf不能輸出case的值(14)運算式:(int)((double)9/2)-(9)%2的值是A)0 B)3 C)4 D)5(15)若有定義語句: int x=10;,則運算式x-=x+x的值為A)-20 B)-10 C)0 D)10(16)有以下程式#includemain(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d",a=2*b);}程式運行後的輸出結果是A)0,0 B)1,0 C)3,2 D)1,2(17)設有定義: 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+=k;case 2:c++;break;case 4:c+=2;break;}printf("%d\n",c);}程式運行後的輸出結果是A)3 B)5 C)7 D)919.(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)0 B)2 C)3 D)5(21)有以下程式#includemain(){ int n=2,k=0;while(k++&&n++>2);printf("%d %d\n",k,n);}程式運行後的輸出結果是A)0 2 B)1 3 C)5 7 D)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,68 B)D,69 C)E,D D)輸出無定值(24)有以下程式#includevoid fun(int p){ int d=2;p=d++;printf("%d",p);}main(){ int a=1;fun(a);printf("%d\n",a);}程式運行後的輸出結果是A)32 B)12 C)21 D)22(25)以下函數findmax擬實現在數組中查找最大值並作為函數值返回, 但程式中有錯導致不能實現預定功能#define MIN -2147463647int findmax(int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成錯誤的原因是A)定義語句int i,max中max未賦值B)賦值語句max=MIN;中,不應該給max賦MIN值C)語句if(max<x[i]) max=x[i];中判斷條件設置錯誤D)賦值語句max=MIN;放錯了位置(26)有以下程式#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程式運行後的輸出結果是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2(27)若有定義語句: int a[4][10],*p,*q[4];且0<=i<4,則錯誤的賦值是A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1](28)有以下程式#include#include。
全国计算机等级考试二级C语言真题2009年9月
全国计算机等级考试二级C语言真题2009年9月(总分:100.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:40,分数:70.00)1.下列数据结构中,属于非线性结构的是( )。
(分数:2.00)A.循环队列B.带链队列C.二叉树D.带链栈√解析:[解析] 一个算法的空间复杂度,一般是指执行这个算法所需的存储空间。
一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。
2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。
(分数:2.00)A.循环队列B.栈√C.队列D.二叉树解析:[解析] 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。
3.对于循环队列,下列叙述中正确的是( )。
(分数:2.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针√D.队头指针可以大于队尾指针,也可以小于队尾指针解析:[解析] 对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。
4.算法的空间复杂度是指( )。
(分数:2.00)A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数√解析:[解析] 软件是运行在计算机硬件之上的逻辑实体,包括程序、数据和相关的文档,软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。
5.软件设计中划分模块的一个准则是( )。
(分数:2.00)A.低内聚低耦合√B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合解析:[解析] 耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
2009年9月C语言真题及答案
2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((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)阅读以下程序#include <stdio.h>main(){ 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)有以下程序#include <stdio.h>main(){ 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)有以下程序#include <stdio.h>main(){ 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)有以下程序#include <stdio.h>main(){ 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)有以下程序#include <stdio.h>main(){ 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)有以下程序#include <stdio.h>main(){ 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)有以下程序#include <stdio.h>void 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<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max<x[i]) max=x[i];中判断条件设置错误D)赋值语句max=MIN;放错了位置(26)有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是 A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include <stdio.h>#include<string.h>main(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include <stdio.h>#include<string.h>main(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是 A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include <stdio.h>#include<string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。
2009年3月全国计算机等级考试二级笔试试卷c语言程序设计
2009年3月全国计算机等级考试二级笔试试卷c语言程序设计2009年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)选择题(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 SA B C A Ba 3 2 a 3b 0 1 b 0c 2 1 c 2由关系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赋初值0 B)这时k中值无定义C)系统将自动给k赋初值-1 D)这时k中无任何值(13)以下选项中,能用作数据常量的是A)o115 B)0118 C)1.5e1.5 D)115L (14)设有定义:int x=2; ,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)D)2*x,x+=2 (15)程序段:int x=12; double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是A)123.141593 B)12 3.141593 C)12,3.141593 D)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 <stdio.h>main(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果}若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下代表空格,<CR>代表回车)A)12a34b<CR> B)12 a 34 b<CR>C)12,a,34,b<CR> D)12 a34 b<CR> (24)有以下程序#include<stdio.h>int f(int x,int y){return()y-x)*x);}main(){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(“%d\n”,d);}程序运行后的输出结果是A)10 B)9 C)8 D)7(25)有以下程序#include<stdio.h>void fun(char *s){while(*s){ if(*s%2==0)printf(“%c”,*s);s++;}}main(){ char a[]={“good”};fun(a);printf(“\n”);}注意:字母a的ASCⅡ码值为97,程序运行后的输出结果是A)d B)go C)god D)good(26)有以下程序#include <stdio.h>void fun(int *a,int *b){int *c;c=a;a=b;b=c;}main(){int x=3,y-5,*P=&x,*q=&y;fun(p,q);printf(“%d,%d,”,*p,*q);fun(&x,&y);printf(“%d,%d\n”,*p,*q);}程序运行后的输出结果是A)3,5,5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3(27)有以下程序#include <stdio.h>viod f(int *p,int *q );main(){ int m=1,n=2,*r=&m;f(r,&n);printf(“%d,%d”,m,n);}void f(int *p,int *q){p=p+1;*q=*q+1;}程序运行后输出的结果是A)1,3 B)2,3 C)1,4 D)1,2(28)以下函数按每行8个输出数组中的数据void fun(int *w,int n){ int i;for(i=0;i<n;i++){_________________printf(“%d”,w);}printf(“\n”);}下划线处应填入的语句是A)if(i/8==0)print(“\n”); B)if(i/8==0)continue;C)if(i%8==0)print(“\n”); D)if(i%8==0)continue; (29)若有以下定义int x[10],*pt=x;则对x数组元素的正确应用是A)*&x[10] B)*(x+3)C)*(pt+10)D)pt+3 (30)设有定义:char s[81];int i=10;,以下不能将一行(不超过80个字符)带有空格的字符串真确读入的语句或语句组是A gets(s)B)while((s[i++]=getchar())!=”\n”;s=”\0”;C)scanf(“%s”,s);D)do{scanf(“%c”,&s);}while(s[i++]!=”\n”);s=”\0”;(31)有以下程序#include <stdio.h>main(){ char *a[ ]={“abcd”,”ef”,”gh”,”ijk”};int I;for (i=0;i<4;i++)printf(“%c”,*a);}程序运行后输出的结果是A)aegi B)dfhk C)abcd D)abcdefghijk (32)以下选项中正确的语句组是A)char s[];s=”BOOK!”; B)char *s;s={”BOOK!”};C)char s[10];s=”BOOK!”; D)char *s;s=”BOOK!”;(33)有以下程序#include <stdio.h>int fun{int x,int y}{ if(x==y)return(x);else returen((x+y)/2)}main(){ int a=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)))}程序运行后的输出结果是A)3 B)6 C)8 D)12(34)设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是A)auto B)register C)static D)auto或register(35)有以下程序#include <stdio.h>int b=2;int fun(int *k){ b=*k+b;return (b);}main(){ int a[10]={1,2,3,4,5,6,7,8},I;for(i=2;i<4;i++){b=fun(&a)+b;printf(“%d”,b);}printf(“\n”);}程序运行后输出的结果是A)10 12 B)8 10 C)10 28 D)10 16(36)有以下程序#include <stdio.h>#define PT 3.5;#define S(x)PT*x*x;mian(){ int a=1, b=2; printf(“%4.1f\n”,S(a+b));}程序运行后输出的结果是A)14.0 B)31.5 C)7.5 D)程序有错无输出结果(37)有以下程序#include <stdio.h>struct ord{ int x,y;} dt[2]={1,2,3,4};main(){ struct ord *p=dt;printf (“%d,”,++p->x); printf(“%d\n”,++p->y);}程序的运行结果是A)1,2 B)2,3 C)3,4 D)4,1(38)设有宏定义:#include IsDIV(k,n)((k%n==1)?1:0且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&& IsDIV(m,7)为真时所要表达的是A)判断m是否能被5或者7整除B)判断m是否能被5和7整除C)判断m被5或者7整除是否余1D)判断m被5和7整除是否余1(39)有以下程序#include <stdio.h>main(){ int a=5,b=1,t;t=(a<<2|b); printf(“%d\n”,t)}程序运行后的输出结果是A)21 B)11 C)6 D)1(40)有以下程序#include <stdio.h>main(){ EILE *f;f=fopen(“filea.txt”,”w”);fprintf(f,”abc”);fclose(f);}若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt 中的内容为A)helloabc B)abclo C)abc D)abchello二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
2009年3月ncre二级c语言笔试试卷
心之所向,所向披靡心之所向,所向披靡2009年3月NCRE二级C语言笔试试卷(考试时间90分钟,满分100分)一选择题((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)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准,下列叙述中正确的是A)提高耦合性降低内聚性有利于提供模块的独立性B) 降低耦合性提高内聚性有利于提供模块的独立性C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计C) 数据库维护D)数据库管理员培训(9)有两个关系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赋初值为0 B)这时k中的值无定义C)系统将自动给k赋初值为-1 D) 这时k中无任何值(13)以下选项中,能用作数据常量的是A)o115 B)0118 C) 1.5e1.5 D)115L(14)设有定义:int x=2; ,以下表达式中,值不为6的是A) x*=x+1 B) x++,2*x C) x*=(1+x) D) 2*x, x+=2(15)程序段:int x=12; double y=3.141593; printf("%d%8.6f",x,y); 的输出结果是A)123.141593 B) 12 3.141593 C) 12,3.142593 D) 123.1415930(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 <stdio.h>main(){int x;scanf("%d",&x);if(x<=3); elseif(x!=10)printf("%d\n",x);}程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数B)大于3且不等于10的整数C) 大于3或等于10 的整数D)小于3的整数(19)有以下程序#include <stdio.h>main(){int a=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c--!=3)printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c);程序运行后的输出结果是A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1(20)以下程序段中的变量已经正确定义for(i=0;i<4;i++,i++)for(k=1;k<3;k++); printf("*");A)******** B)**** C) ** D) *(21)有以下程序#include <stdio.h>main(){char *s={"ABC"};do{ printf("%d",*s%10);s++;}while(*s);}注意:字母A的ASCII码值为65,程序运行后的输出结果是A)5670 B)656667 C) 567 D)ABC(22)设变量已经正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是A)n=0;while((ch=getchar())!='\n')n++;B)n=0;while(ch=getchar()!='\n')n++;C)for(n=0;getchar()!='\n';n++);D)n=0;for(ch=getchar();ch!='\n';n++);(23)有以下程序#include <stdio.h>main(){int a1,a2;char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若想通过键盘输入,使得a的值为12,a2的值位34,c1的值为字符a,c2的值为字符b,程序的输出结果是:12,a,34,b 则正确的输入格式是(以下注:口代表空格字符,CR 代表回车)A)12a34b<CR>B)12口a口34口b<CR> C)12,a,34,b<CR> D)12口a34口b<CR> (24)有以下程序#include <stdio.h>int f(int x,int y){ return((y-x)*x); }main(){ int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);程序运行后的输出结果是A) 10 B)9 C)8 D)7(25)有以下程序#include <stdio.h>void fun(char *s){ while(*s){ if(*s%2==0)printf("%c",*s);s++;}}main(){ char a[]={"good"};fun(a); printf("\n");}注意:字母a的ASCII码值为97,程序运行后的输出结果是A) d B) go C) god D) good(26)有以下程序#include <stdio.h>void fun(int *a,int *b){ int *c;c=a;a=b;b=c;}main(){ int x=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序运行后的输出结果是A)3,5,5,3 B) 3,5,3,5 C)5,3,3,5 D)5,3,5,3 (27)有以下程序#include <stdio.h>void f(int *p,int *q);main(){ int m=1,n=2,*r=&m;f(r,&n); printf("%d,%d,",m,n);}void f(int *p,int *q){ p=p+1;*q=*q+1; }程序运行后的输出结果是A)1,3 B)2,3 C) 1,4 D)1,2(28)以下函数按每行8个输出数组中的数据void fun(int *w,int n){ int i;for(i=0;i<n;i++){printf("%d ",w[i]);}printf("\n");}划线处应填入的语句是A)if(i/8==0)printf("\n"); B)if(i/8==0)continue;C)if(i%8==0)printf("\n"); D)if(i%8==0)continue;(29)若有以下定义:int x[10],*pt=x;则对x数组元素的正确引用是A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3(30)设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是A)gets(s) B)while((s[i++]=getchar())!='\n'); s[i]='\0';C)scanf("%s",s); D)do{scanf("%c",&s[i]);}while(s[i++]!='\n'); s[i]='\0';(31)有以下程序#include <stdio.h>main(){ char *a[]={"abcd","ef","gh","ijk"}; int i;for(i=0;i<4;i++)printf("%c",*a[i]);}程序运行后的输出结果是A)aegi B)dfhk C)abcd D)abcdefghijk(32)以下选项中正确的语句组是A)char s[];s="BOOK!"; B)char *s;s={"BOOK!"};C)char s[10];s="BOOK!"; D)char *s; s="BOOK!";(33)有以下程序#include <stdio.h>int fun(int x,int y){ if(x==y)return(x);else return((x+y)/2);}main(){ int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序运行后的输出结果是A)3 B)6 C) 8 D)12(34)设函数中有整型变量,为保证其在未赋初值的情况下初值为0,应选择的存储类别是A)auto B)register C)static D) auto或register(35)有以下程序#include <stdio.h>int b=2;int fun(int *k){ b=*k+b;return b; }main(){ int a[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){ b=fun(&a[i])+b; printf("%d ",b);}printf("\n");}程序运行后的输出结果是A)10 12 B)8 10 C) 10 28 D)10 16(36)有以下程序#include <stdio.h>#define PT 3.5;#define s(x) PT*x*x;main(){ int a=1,b=2; printf("%4.1f\n",s(a+b)); }程序运行后的输出结果是A) 14.0 B) 31.5 C) 7.5 D)程序有错无输出结果(37)有以下程序#include <stdio.h>struct ord{ int x,y;}dt[2]={1,2,3,4};main(){ struct ord *p=dt;printf("%d,",++p->x);printf("%d\n",++p->y);}程序运行后的输出结果是A) 1,2 B) 2,3 C) 3,4 D) 4,1(38)设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0) 且变量m已经正确定义并且赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是A) 判断m是否能被5或者7整除B) 判断m是否能被5和7整除C) 判断m被5或者7整除是否余1 D) 判断m被5和7整除是否都余1(39)有以下程序#include <stdio.h>main(){ int a=5,b=1,t;t=(a<<2)|b; printf("%d\n",t);}程序运行后的输出结果是A) 21 B) 11 C) 6 D) 1(40)有以下程序#include <stdio.h>{FILE *f;f=fopen("filea.txt","w");fprintf(f,"abc");fclose(f);}若文本文件fliea.txt中原有内容为:hello,则程序运行后,文件fliea.txt中的内容为A) helloabc B) abclo C) abc D) abchello二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2009秋第二部分C语言程序设计一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)21. 以下叙述中正确的是(21) 。
A. C语言系统以函数为单位编译源程序B. main函数必须放在程序开始C. 用户定义的函数可以被一个或多个函数调用任意多次D. 在一个函数体内可以定义另外一个函数22.以下选项中,不能用作C语言标识符的是(22) 。
A. printB. FORC. &aD. _0023. 已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是(23) 。
A. printf("%d",32768);B. printf("%ld",32768);C. printf("%f",32768);D. printf("%c",32768);24. 已知有声明“int a=3,b=4,c=5; ”,以下表达式中值为0的是(24) 。
A. a&&bB. a<=bC. a||b&&cD. !(!c||1)25. 已知有声明“long x,y;”且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,以下表达式中能正确实现这一功能的是(25) 。
A. y=x/(10*(n-1))B. y=x%(10*(n-1))C. y=x%(long)pow(10,n-1)D. y=x%(10∧(n-1))26. 已知有声明“int x,y;”,若要求编写一段程序实现“当x大于等于0时y取值1,否则y取值-1”,则以下程序段中错误的是(26) 。
A. if(x>=0)y=1;else y=-1;B. y=x>=0?1:-1;C. switch()D. switch(x-abs(x)){ case x>=0: y=1; break; { case 0: y=1; break;default: y=-1; default: y=-1;} }27.已知有声明“int m[]={5,4,3,2,1},i=0;”,下列对m数组元素的引用中,错误的是(27) 。
A. m[++i]B. m[5]C. m[2*2]D. m[m[4]]28.已知有声明“char s[80];”,若需要将键盘输入的一个不含空格的字符串保存到s数组中,则下列语句中正确的是(28) 。
A. scanf("%s",s);B. scanf("%s",s[0]);C. s=gets();D. s=getchar();29.若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是(29) 。
A. 实参和其对应的形参占用同一存储单元B. 形参不占用存储单元C. 同名的实参和形参占用同一存储单元D. 形参和实参占用不同的存储单元30. 已知有声明“int i,a[10],*p=a;”,现需要将1~10保存到a[0]~a[9]中,以下程序段中不能实现这一功能的是(30) 。
第4页C语言第5页 C 语言A. for(i=0;i<10;i++)a[i]=i+1;B. for(i=0;i<10;i++)p[i]=i+1;C. i=1;while(p<a+10)*p++=i++;D. i=1;while(p<a+10)*a++=i++;二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分)● 基本概念1.C 语言中有!、&& 、|| 三个逻辑运算符,其中优先级高于算术运算符的是 (1) 。
2.若有声明“int r=2;”,则执行语句“printf("%d",sizeof(2*3.14*r));”时输出 (2) 。
3.数学式bca x 4 所对应的C 语言表达式为 (3) 。
4. 若有以下声明:char *p="%d,%d\n"; int a=1,b=2;则执行语句“printf(p,a,b);”时输出 (4) 。
5.声明局部变量时若缺省存储类别,该变量的存储类别是 (5) 。
● 阅读程序6.以下程序运行时输出到屏幕的结果是 (6) 。
#include <stdio.h>void main(){ FILE *fp;int k,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d,%d\n",k,n);}7. 以下程序运行时输出到屏幕的结果是 (7) 。
#include<stdio.h>void main(){ int i=1,m=0;switch(i){ case 1:case 2: m++;case 3: m++;}printf("%d",m);}8. 以下程序运行时输出到屏幕的结果中第一行是(8) ,第二行是(9) 。
#include <stdio.h>void fun(int a[],int b[],int *x){ int i,j=0;for(i=0;a[i];i++){ if(i%2==0)continue ;if(a[i]>10)b[j++]=a[i];}*x=j;}void main(){ int a[10]={3,15,32,23,11,4,5,9},b[10];int i=0,x=0;fun(a,b,&x) ;for(i=0;i<x;i++)printf("%d\t",b[i]);printf("\n%d",x);}9. 以下程序运行时输出到屏幕的结果是(10) 。
#include <stdio.h>int fun(int *x,int n){ if(n==0) return x[0];else return x[0]+fun(x+1,n-1);}void main(){ int a[]={1,2,3,4,5,6,7};printf("%d\n",fun(a,2));}10.以下程序运行时输出到屏幕的结果是(11) 。
#include <stdio.h>long f(int n){ static long s;if(n==1)return s=2;else return ++s;}void main(){ long i,sum=0;for(i=1;i<4;i++) sum+=f(i);printf("%ld",sum);}第6页C语言11.以下程序运行时输出到屏幕的结果中第一行是(12) ,第二行是(13) 。
#include <stdio.h>#define f(x,y) y=x*xvoid g(int x,int y){ y=x*x; }void main(){ int a=2,b=0,c=2,d=0;f(a,b);g(c,d);printf("%d\n%d",b,d);}12. 以下程序运行时输出到屏幕的结果中第一行是(14) ,第三行是(15) 。
#include <stdio.h>void main(){ int a[3][3]={{3,8,12},{4,7,10},{2,5,11}}, i,j,k,t;for(j=0;j<3;j++)for(k=0;k<2;k++)for(i=0;i<2-k;i++)if(a[i][j]>a[i+1][j])t=a[i][j],a[i][j]=a[i+1][j],a[i+1][j]=t;for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%3d",a[i][j]);printf("\n");}}13.以下程序运行时输出到屏幕的结果是(16) 。
#include <stdio.h>#include <string.h>void main(){ int i=0,n=0;char s[80],*p;strcpy(s,"It is a book.");for(p=s;*p!='\0';p++)if(*p==' ')i=0;elseif(i==0){ n++; i=1; }printf("%d\n",n);}第7页C语言14.以下程序运行时输出到屏幕的结果第一行是(17) ,第二行是(18) 。
#include <stdio.h>typedef struct fact{ int m,z;}FACT;FACT fun1(FACT t1,FACT t2){ FACT t3;t3.m=t1.m*t2.m;t3.z=t1.z*t2.m+t2.z*t1.m;return t3;}FACT fun2(FACT t){ int m,n,k;m=t.m;n=t.z;while(k=m%n){ m=n; n=k; }t.m=t.m/n;t.z=t.z/n ;return t;}void main(){ FACT s,s1={8,4},s2={6,5} ;s=fun1(s1,s2);printf("%d,%d\n",s.z,s.m);s=fun2(s);printf("%d,%d",s.z,s.m);}完善程序15. 以下程序求方程的一个近似根。
root函数采用二分法计算并返回方程f(x)=0在[a,b]内的一个近似根,main函数调用root函数求方程cos(x)=0在[0,3.14]内的一个近似根。
试完善程序以达到要求的功能。
#include<stdio.h>#include<math.h>double root(double a,double b,double (*f)(double)){ double x,y;if( (19) ){ printf(" There is no root between %f and %f",a,b);return 0;}第8页C语言do{ x= (20) ;y=f(x);if(fabs(y)<1e-6||fabs(b-a)<1e-6)break;if( (21) <0 ) b=x;else a=x;}while(1);return x;}void main(){ printf("\n x=%f",root(0,3.14, (22) ));}16.以下程序在3~50范围内验证:大于等于3的两个相邻素数的平方之间至少有4个素数。