2007年4月全国计算机等级考试二级C语言笔试试题及答案
全国计算机等级考试二级C语言笔试试题及答案
老当益壮,宁移白首之心;穷且益坚,不坠青云之志。——唐·王勃
D) 4 (31) 有如下类定义:
class XX( int xx; public: XX(): xx(0) {cout<<' A';} XX( int n):xx ( n) {tout<<' B';} }; Class YY:public XX( Int yy; public: YY(): yy ( 0) (cout+yy;} YY ( int n ): XX (n+1 ), yy(n) (cout<<yy;} YY ( int m, int n):XX (m), yy (n) (cout<<yy;} }; 下列选项中,输出结果为 A0 的语句是 A) YY y1 (0,0); B) YY y2(1); C) YYy3(0); D) YYy4; (32) 有如下程序: #include<iostream> Using namespace std; class A( public: virtual void f () (cout+1;} void g () (cout<<2;} }; class B:public A( public: virtual void f () (cout<<3;} void g()(ecut<<4;} }; void show (A &a)(a.f();a.g( ) ; } int main()( B b; show(b); return 0; } 运行时的输出结果是 A) 12 B) 34 C) 14 D) 32 (33) 有如下程序: #include<iostream> using namespace std; class Pair( int m; int n; public: Pair ( int i, int j ): m(i), n(j) (} boot operator > ( pair p ) const;//须在类体外给出定义 ); int main () { Pair Al(3,4),p2(4,3); p3(4,5); Cout<< (pl>p2) << (P2>P1) << (p2>p3) << (p3>p2); return 0; } 运算符函数。operator〉的功能是比较两个 Pair 对象的大小,当左边对象大时,返回 true,否则 返 回 false。比较规则是首先比较两对象的 m 成员,m 大者为大;当 m 相等时比较 n, n 大者为大。程序输 出 0101, 下列对运算符重载函数的正确定义是 A ) bool Pair::operator> ( Pair p ) const {if (m!=p.m) return m>p.m; return n>p.n;}
2007年第2次C语言等级考试
全国高等学校非计算机专业计算机等级考试二级C语言笔试试题(A卷)考试时间:2007年11月17日上午9:00——11:00考生必读:1.考生应严格遵守考场规则。
考生拿到试卷后应首先将自己的所在学校名称、考场地点、性命、准考证号填涂在答题纸和答题卡规定的位置上。
2. 考生得到监考人员指令后方可作答。
3.考生在答题前务必认真阅读题目要求,按要求作答。
客观题的答案(选择题和判断题)必须用2B铅笔填涂在答题卡的相应位置上;主观题的答案必须用蓝、黑色钢笔或圆珠笔填写在答题纸的相应位置上;且必须注明试卷类型(A 卷或B卷)。
否则答案无效。
4.注意字迹清楚,保持卷面整洁。
5. 考试时间为120分钟。
考试结束时,把试题册、答题卡、答题纸放在桌上,不得带走。
等监考人员收齐点清后,考生才可离开考场。
◆本试卷版权所有,任何单位或个人不得复制、出版和存留,违者必究◆重庆市教育委员会2007年11月二级C语言笔试试卷(A)(共100分)注意事项:1.一题为客观题,请将答案涂在机读答题卡上2.请将二、三、四、五题的答案做在答题纸上一.单项选择题。
(每小题1分,共20分)1. 一个C程序的执行是从()。
(A)本程序的main函数开始(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束2. 设有C语句:int x=3, y=4,z=5;,则下面表达式中值为0的是()。
(A)x&&y (B)x<=y(C) x||y+z&&y-z (D)!((x<y )&& !z||1))3. 以下有关宏替换的叙述不正确的是()。
(A)宏替换不占用运行时间(B)宏名无类型(C)宏替换只是字符串替换;(D)宏替换是在运行时进行的4. 在标准库函数的调用形式“fread(buffer,size,count,fp);”中,参数buffer代表的是()。
c语言二级证考试真题及答案
c语言二级证考试真题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个函数?A. classB. functionC. voidD. int答案:D2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. variable nameD. variable$name答案:B3. 若有定义 `int a[5] = {1, 2, 3, 4, 5};`,则 `a[0]` 的值是多少?A. 0B. 1C. 2D. 5答案:B4. 在C语言中,以下哪个运算符用于计算两个整数的乘积?A. %B. /C. *D. +答案:C5. 下列哪个选项是C语言中正确的注释方式?A. <!-- This is a comment -->B. // This is a commentC. /* This is a comment */D. # This is a comment答案:C6. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlen()B. length()C. size()D. strleng()答案:A7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. ==答案:A8. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. classD. enum答案:A9. 若有定义 `int x = 10;`,则执行 `x += 5;` 后,`x` 的值是多少?A. 5B. 10C. 15D. 20答案:C10. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A二、程序填空题(每空2分,共20分)给定以下代码片段,请在空白处填入正确的代码。
```c#include <stdio.h>int main() {int a, b, sum;a = 5;b = 3;sum = a + b;printf("The sum is: %d\n", sum);return 0;}若要计算两个数的乘积并打印出来,需要修改的代码为:```c#include <stdio.h>int main() {int a, b, product;a = 5;b = 3;product = a * b;printf("The product is: %d\n", product);return 0;}```三、编程题(每题30分,共60分)1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
全国计算机等级考试二级C语言程序设计真题精选3(含答案)
全国计算机等级考试二级C语言程序设计真题精选3一、单项选择题1.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。
根据数据的组成形式,可将文件分为两种:①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
所以C文件就是一个字节流或一个二进制流。
2.有以下程序:#includ<stdio.h>main()inm=1,n=2,*p=&m,*q=&n,*r; r=p,p=q;q=r; printf("%d,%d,%d,%",m,n,*p,*q);}程序运行后的输出结果是()。
A.1,2,1,2B.1,2.2,1 √C.2,1,2,1D.2,1.1,2解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。
3.有以下程序:#includ<stdio.h>#include<string.h>strucAina;chab[10];doublc;};strucf (struct);main()struca={1001,"ZhangDa",1098.0}; a=f(a);printf ("%d,%s,%6.1",a.a,a.b,a.c);}strucf(struct)t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returt;}程序运行后的输出结果是()。
往年全国计算机二级c语言试题及答案
往年全国计算机二级c语言试题及答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是合法的变量名?A. 123abcB. intC. _123abcD. 3d答案:C2. 若有以下代码:```cint a = 10, b = 20;printf("%d", a = b = 20);```则输出结果为:A. 10B. 20C. 30D. 40答案:B3. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A4. 以下关于C语言中数组的描述,正确的是:A. 数组的大小在运行时可以改变B. 数组的大小在编译时确定C. 数组可以存储不同类型的数据D. 数组的索引从1开始答案:B5. 以下哪个运算符不能用于位运算?A. &B. |C. ^D. %答案:D6. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A7. 以下哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. goto答案:D8. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A9. 以下哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. /* 这是注释D. //这是注释答案:A10. 在C语言中,以下哪个关键字用于声明函数?A. functionB. defC. voidD. int答案:C二、填空题(每题2分,共20分)1. 在C语言中,整型变量占用的字节数是______。
答案:42. 以下代码的输出结果是______。
```c#include <stdio.h>int main() {int i = 5;printf("%d", i++);return 0;}```答案:53. 以下代码的输出结果是______。
2007—2008年全国计算机等级考试二级C语言真题及参考答案
2007年9月全国计算机等级考试二级C语言真题及参考答案一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分))下列各题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(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;(18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);If(x<0)y=sqrt(-x);(21)设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)(22)有以下程序#includemain(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c 中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c(24)有以下程序#includemain(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。
全国计算机等级考试《二级C语言程序设计》历年真题精选及详解
全国计算机等级考试《二级C语言程序设计》历年真题精选及详解一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,按照题目上的内容进行答题。
作答选择题时键盘被封锁,使用键盘无效,考生须使用鼠标答题。
选择题部分只能进入一次,退出后不能再次进入。
选择题部分不单独计时。
)1.下列叙述中正确的是()。
A.所有数据结构必须有根结点B.所有数据结构必须有终端结点(即叶子结点)C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构D.没有根结点或没有叶子结点的数据结构一定是非线性结构【答案】D【解析】D项正确,线性结构的特点是:①集合中必存在“第一个元素”且惟一;②集合中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟一的“后继”;④除第一个元素外,其他数据元素均有惟一的“前驱”。
所以没有根结点或没有叶子结点的数据结构一定是非线性结构。
AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。
答案选择D选项。
2.以下叙述中错误的是()。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D.C语言源程序经编译后生成后缀为.obj的目标程序【答案】A【解析】A项错误,注释语句不会被翻译成二进制的机器指令。
C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。
答案选择A选项。
3.C语言主要是借助以下()功能来实现程序模块化的。
A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型【答案】A【解析】C程序的模块化主要通过函数来实现。
二级C语言真题2007年09月
2003年4月全国计算机等级考试二级C语言程序设计笔试真题(考试时间120分钟,满分100分)一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分)下列各题A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 用8位无符号二进制数能表示的最大十进制数为A) 127 B) 128 C) 255 D) 256(2) 在64位高档微机中,一个字长所占的二进制位数为A) 8 B) 16 C) 32 D) 64(3) 在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住A) Alt键B) Esc键C) Shift键D) Ctrl键(4) 在Windows菜单中,暗淡(灰色)的命令项表示该命令A) 暂时不能用B) 正在执行C) 包含下一层菜单D) 包含对话框(5) 在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为A) TYPE B) TYPE/H C) TYPE/* D) TYPE/?(6) 下列选项中,能作为合法DOS文件名的是A) ANP/A.DAT B) ABCCOM C) ECD.BASIC D) XY+Z.TXT(7) 下列叙述中正确的是A) 在Windows环境下,最大化的窗口是不能移动的B) 在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C) 在Windows环境下,只有最小化的窗口才能关闭D) 在Windows环境下,不能关闭最小化窗口(8) 在Windows环境下,工具栏中用于完成复制操作的按钮是A) 打印按钮B) 剪切按钮C) 复制按钮D) 粘贴按钮(9) 在Windows环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按A) Ctrl+Printscreen键B) Alt+Printscreen键C) Shift+Printscreen键D) Printscreen键(10) 目前,计算机病毒扩散最快的途径是A) 通过软件复制B) 通过网络传播C) 通过磁盘拷贝D) 运行游戏软件(11) 以下叙述正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点(12) C语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构B) if、switch、breakC) for、while、do-whileD) if、for、continue(13) 在一个C语言程序中A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置(14) 下列叙述中正确的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型(15) 下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头(16) 若有以下程序段(n所赋的是八进制数)int m=32767,n=032767;printf("%d,%o\n",m,n);执行后输出结果是A) 32767,32767B) 32767,032767C) 32767,77777D) 32767,077777(17) 下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float型变量(18) 若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A) 0X0 B) 0x0 C) 0 D) 0XABC(19) 有以下程序段int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0(20) 有以下程序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) 012 C) 012020 D) 120(21) 有以下程序main(){ int i=1,j=1,k=2;if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k); }执行后输出的结果是A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3(22) 有以下程序main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出的结果是A) 2 B) 3 C) 4 D) 编译时有错,无结果(23) 有以下程序main(){ int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i]; i++;}printf("%d\n",k);}执行后输出的结果是A) 58 B) 56 C) 45 D) 24(24) 有以下程序main(){ int i=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;} while(i<7);printf("%d\n",s);}执行后输出的结果是A) 16 B) 12 C) 28 D) 21(25) 有以下程序main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出的结果是A) 9,2 B) 10,2 C) 9,1 D) 10,1(26) 有以下程序main(){ char a,b,c,*d;a='\'; b='\xbc';c='\0xab'; d="\0127";printf("%c%c%c%c\n",a,b,c,*d);}编译时出现错误,以下叙述中正确的是A) 程序中只有a='\';语句不正确B) b='\xbc';语句不正确C) d="\0127";语句不正确D) a='\';和c='\0xab';语句都不正确(27) main(){int a=4,b=3,c=5,d,e,f;d=f1(a,b); d=f1(d,c);e=f2(a,b); e=f2(e,c);f=a+b+c-d-e;printf("%d,%d,%d\n",d,f,e);}执行后输出的结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 3,5,4(28) 有以下程序void f(int x,int y){ int t;if(x<y){ t=x; x=y; y=t; }}main(){ int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}执行后输出的结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5(29) 若有一些定义和语句#include <stdio.h>int a=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是A) *q=0; B) w=p; C) *p=va; D) *p=*w;(30)有以下程序int *f(int *x,int *y){ if(*x<*y)return x;elsereturn y;}main(){ int a=7,b=8,*p,*q,*r;p=&a; q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}执行后输出结果是A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8(31)有以下程序main(){ char *s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}执行后输出结果是A) n,two B) t,one C) w,one D) o,two(32)有以下程序main(){ int x[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n",s[2]);}执行后输出结果是A) 随机值B) 0 C) 5 D) 6(33) 以下能正确定义数组并正确赋初值的语句是A) int N=5,b[N][N];B) int a[1][2]={{1},{3}};C) int c[2][]={{1,2},{3,4}};D) int d[3][2]={{1,2},{3,4}};(34)有以下程序main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for(i=0;i<3;i++){ printf("%d ",m[k][i]); }}执行后输出结果是A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9(35) 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
全国计算机等级考试(二级)---C语言程序设计考试大纲及习题
选择题
⑥ 以下说法中正确的是 A) C语言程序总是从第一个定义的函数开始 执行 B) 在C语言程序中,要调用的函数必须在 main()函数中定义 √C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序 的开始部分
选择题
⑦ 有以下程序段: int x=3; do { printf(“%3d”, x- =2 ) ; } while( ! (--x) ) ; 执行后的输出结果是 A) 1 B) 30 √C) 1 -2
2. 3. 4.
考试方式
1.
2.
笔试:90分钟,满分100分,其中含公 共基础知识部分的30分 上机:90分钟,满分100分
上机操作包括:
① 填空 ② 改错 ③ 编程
第二部分 样题及参考答案
第二部分 样题及参考答案 选择题 填空题 上机操作题
① 填空题 ② 改错题 ③ 编程题
选择题
1. 只要求缓冲文件系统(即高级磁盘 I/O系 统),对非缓冲文件系统(即低级磁盘 I/O 系统)不要求 文件类型指针( FILE类型指针) 文件的打开和关闭( fopen,fclose ) 文件的读写 (fputc,fgetc,fgets,fread,fwrite fprintf,fscanf 函数的应用),文件的定位 ( rewind,fseek 函数的应用)
选择题
⑩ 有以下程序: #include “stdio.h” #include “stdlib.h” fut(int **s,int p[2][3]) { **s=p[1][1]; } main() { int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fut(&p,a); printf(“%d\n”,*p); } 程序的运行结果是 A) 1 B) 7 C) 9
计算机等级考试二级C语言试题及答案
{ int a=5; s+=f(&a);
}
s+=f(&a); printf(“%d\nC)7 D)8
38、有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2);
15、 若以下选项中的变量已正确定义,则正确的赋值语句 是
(C) A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3;
//%为模式运算,又称为求余运算,二侧均为整形数据 16、 设有以下定义
int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中错误的是(D) A)a++; B)b++ C)c++; D)d++;
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
} 程序执行后的输出结果是(D)
A)自然数1~9的累加和
B)自然数1~10的累加和
C)自然数1~9中的奇数之和 D)自然数1~10中的偶数 之和
25、有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); } 程序执行后的输出结果是(D) A)n=5 B)n=2 C)n=3 D) n=4
2007年4月全国计算机等级考试二级VB语言笔试试题及答案
2007年 4月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计一、选择题(第小题 2分,共 70分下列各题 A、B、C、D四个选项中, 只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上, 答在试卷上不得分。
(1下列叙述中正确的是(BA算法的效率只与问题的规模有关,而与数据的存储结构无关B算法的时间复杂度是指执行算法所需要的计算工作量C数据的逻辑结构与存储结构是一一对应的D算法的时间复杂度与空间复杂度一定相关(2在结构化程序设计中,模块划分的原则是(DA各模块应包括尽量多的功能B各模块的规模应尽量大C各模块之间的联系应尽量紧密D模块内具有高内聚度、模块间具有低耦合度(3下列叙述中正确的是(AA软件测试的主要目的是发现程序中的错误B软件测试的主要目的是确定程序中错误的位置C为了提高软件测试的效率, 最好由程序编制者自己来完成软件的测试工作D软件测试是证明软件没有错误(4下面选项中不属于面向对象程序设计特征的是(C A继承性B多态性C类比性D封装性(5下列对队列的叙述正确的是(DA队列属于非线性表B队列按“先进后出”原则组织数据C队列在队尾删除数据D队列按“先进先出”原则组织数据(6对下列二叉树(CAB CD E F XY Z进行前序遍历的结果为ADYBEAFCZXBYDEBFZXCACABDYECFXZDABCDEFXYZ(7某二叉树中有 n 个度为 2的结点,则该二叉树中的叶子结点数为(AAn+1Bn-1C2nDn/2(8在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 (B A并B交C投影D笛卡儿乘积(9在 E—R 图中,用来表示实体之间联系的图形是(CA矩形B椭圆形C菱形D平行四边形(10下列叙述中错误的是(AA在数据库系统中,数据的物理结构必须与逻辑结构一致B数据库技术的根本目标是解决数据共享问题C数据库技术是指己有数据管理系统的基础上建立数据库D数据库系统需要操作系统的支持(11下面可以正确定义 2个整形变量和 1个字符串变量的语句的是(DADim n,m AS Interger,s AS StringBDim a%,b$,cAS StringCDim a AS Integer,b,c AS StringDDim x%,yAS Integer,z AS String(12下列表述中不能判断 x 是否为偶数的是(DAx/2=Int(x/2Bx Mod 2=0CFix(x/2=x/2Dx\2=013设在名称为 Myform 的窗体上只有 1个名称为 C1的命令按钮,下面叙述中正确的是(BA窗体的 Click 事件过程的过程名是 Myform_ClickB命令按钮的 Click 事件过程名是 C1_ClickC命令按钮的 Click 事件过程的过程名是 Command1_Click(14设窗体上有 1个滚动条,要求单击滚动条右端的◢按钮一次,滚动条移动一定的刻度值,决定此刻度的属性是(CAMaxBMinCSmallChangeDLargeChang(151个二维数组可以存放 1个矩形.在程序开始有语句 Option Base 0,则下面定义的数组中正好可以存放 1个 4*3矩阵(即只有 12个元素的是(BADim a(-2To 0,2 AS IntegerBDim a(3,2AS IngegerCDim a(4,3ASIngegerDDim a(-1To -4,-1To -3AS Ingeger(16若设置了文本框的属性PasswordChar=”$”,则运行程序时向文本框中输入 8个任意字符后,文本框中显示的是(AA8个”$”B1个”$”C8个”*”D无任何内容(17设在窗体上有 1个名称为 Combo1的组合框,含有 5个项目,要删除最后一项,正确的语句是(BACombo1.RemoveItem Combo1.TextB Combo1.RemoveItem4C Combo1.RemoveItem Combo1.ListCountD Combo1.RemoveItem5(18工程中有 2个窗体,名称分别为 Form1.Form2,Form1为启动窗体,该窗体上有命令按钮 Command1,要求程序运行后单击该命令按钮时显示 Form2,则按钮的Click 事件过程应该是(AAPrivate Sub Command1_Click( B Private Sub Command1_Click( Form2.Show Form2.VisibleEnd Sub End SubC Private Sub Command1_Click( DPrivate Sub Command1_Click( Load Form2Form2.LoadEnd Sub End Sub(19若在某窗体模块中有如下事件过程(DPrivate Sub Command1_Click(IndexAS Integer……End Sub则以下叙述中正确的是A 此事件过程与不带参数的事件过程没有区别B 有 1个名称为 Command1的窗体,单击此窗体则执行此事件过程C 有 1个名称为 Command1的空件数组,数组中有多个不同类型控件D 有 1个名称为 Command1的空件数组,数组中有多个相同类型控件(20以下循环语句中在任何情况下都至少执行一次循环体的是(CADo While <条件>BWhile <条件>循环体循环体Loop WendCDo DDo Until <条件>循环体循环体Loop Until <条件>Loop(21在窗体上有 1个名为 Cd1的通用对话框,为了在运行程序时打开保存文件对话框,则在程序总应使用的语句是(AACd1.Action=2BCd1.Action=1CCd1.ShowSave=TureDCd1.ShowSave=0(22下面关于菜单的叙述中错误的是(BA各级菜单中的所有菜单项的名称必须唯一B同一子菜单中的菜单项名称必须唯一,但不同子菜单中的菜单项名称可以相同C弹出式菜单也用菜单编辑器编辑(23已知有下面的过程(DPrivate Sub proc1(aAs Integer,b As String,Optional x As Boolean ……End Sub正确调用此过程的语句是ACall procl(5BCall proc15,”abc”,FalseCproc1(12,”abc”,TrueDproc15, “abc”(24在窗体上有一个文件名称为 Text1的文本框和 1个名称为 Command1的命令按钮, 要求在程序执行时, 每单击命令按钮一次, 文本框向右移动一定距离。
计算机二级C语言笔试400题及答案
1、C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符、C、12、C语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、13、C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、14、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件、B、15、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数、C、16、C语言提供的合法的数据类型关键字是 A)double B) short C) integerD) char、B、17、C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *、A、18、C语言中函数返回值的类型是由( )决定。
A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型、D、19、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。
A、该数组的长度。
B、该数组的元素个数。
C、该数组中各元素的值。
D、该数组的首地址。
、D、110、C语言中数组下标的下限是________。
A、1 B、0 C、视具体情况 D、无固定下限、B、111、C语言中提供的合法关键字是____ A、swith B、cher C、case D、default、D、112、C语言中文件的存取方式是________。
2007-2011计算机二级C语言考试真题及答案
2007年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分100分)一、选择题((1)——(10)每题2分,(11)—(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。
(1)软件是指 DA)程序B)程序和文档C)算法加数据结构D)程序、数据与相关文档的完整集合(2)软件调试的目的是 BA)发现错误B)改正错误C)改善软件的性能D)验证软件的正确性(3)在面向对象中,实现信息隐蔽是依靠 CA)对象的继承B)对象的多态C)对象的封装D)对象的分类(4)下列叙述中,不符合良好程序设计风格要求的是 A A)程序的效率第一,清晰第二B)程序的可读性好C)程序中要有必要的注释D)输入数据前要有提示信息(5)下列叙述中正确的是 AA)程序执行的效率与数据的存储结构密切相关B)程序执行的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对(6)下列叙述中正确的是 DA)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C)程序设计语言中的数组一般是顺序存储的,因此,利用数组只能处理线性结构D)以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是 CA)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2 (8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为 AA)219 B)221 C)229 D)231 (9)下列叙述正确的是 BA)数据系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是 AA)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp (12)可在C程序中用作用户标识符的一组标识符是A)and B)Date C)Hi D)case2007 y-m-d Dr. Tom Bigl (13)以下选项中,合法的一组C语言数值常量是A)028 B)12 C)177 D)0x8A .5e-3 OXa23 4c1.5 10,000 (14)以下叙述正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用min作为主函数名,程序将从开始执行,在此结束D)min可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf(“%d”,a,b,c);B)scanf(“%d%d%d”,a,b,c);C )scanf(“%d”,p);D )scanf(“%d”,&p)(16)以下关于long 、int 和short 类型数据占用内存大小的叙述中正确的是A )均占4个字节B )根据数据的大小来决定所占内存的字节表C )由用户自己定义D )由C 语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C 语言赋值语句是A )x =y =5;B )x =n%2.5;C )x+n =l ;D )x =5=4+1(18)有以下程序段int j ; float y ; char name[50];scanf(“%2d%f%s”,&j,&y,name)当执行上述程序段,从键盘上输入55566 7777abc 后,y 的值为A )55560.0B )566.0C )7777.0D )566777.0(19)若变量已正确定义,有以下程序段i =0;do printf(“%d,”i); while(i++);printf(“%d \n”,i);其输出结果是A )0,0B )0,1C )1,1D )程序进入无限循环(20)有以下计算公式y = (0)(0)x x ≥<若程序前面已在命令行中包含math.h 文件,不能够正确计算上述公式的程序段是A )if(x >=0) y =sprt(x);B )y =sqrt(x);else y =sqrt(-x); if(x <0)y =sqrt(x)C )if(x >=0)y =sqrt(x);D )y =sqrt(x >0?x;-x)If(x <0)y =sqrt(-x);(21)设有条件表达式:(EXP)? i++ ; j —,则以下表达式中与(EXP )完全等价的是A)(EXP=0)B)(EXP!=0)C)(EXP=1)D)(EXP!=1)(22)有以下程序#include <stdio,h>main()﹛inf y=9;for( ; y>0; y--)if(y%3=0) printf(“%d”, ‥y﹜程序的运行结果是A)741 B)963 C)852 D)875421 (23)已有定义:char c;,程序前面已在命令行中包含ctype. h 文件。
2007年4月全国计算机等级考试二级C语言笔试试题(含参考答案)
2007年4月全国计算机考试二级C语言笔试试卷及参考答案一选择题(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) DYBEAFCZX B) YDEBFZXCAC) ABDYECFXZ D) ABCDEFXYZ(7) 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点为A) n+1 B) n-1 C) 2n D) n/2(8) 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是A) 并 B)交 C)投影 D)笛卡儿乘积(9) 在E-R图中,用来表示实体之间联系的图形是A) 矩形 B)椭圆形 C)菱形 D)平行四边形(10)下列叙述中错误的是A) 在数据库系统中,数据的物理结构必须与逻辑结构一致B)数据库技术的根本目标是要解决数据的共享问题C)数据库设计是指在已有数据库管理系统的基础上建立数据库D)数据库系统需要操作系统的支持(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的A)正当性 B)可行性 C)确定性 D)有穷性(12)下列叙述中错误的是A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A)大写字母 B)连接符 C)数字字符 D)下划线(14)以下叙述中错误的是A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法(15)对于一个正常运行的C程序,以下叙述中正确的是A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束(16)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
计算机等级考试二级C语言笔试模拟题及答案
计算机等级考试二级C语言笔试模拟题及答案是全国计算机(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机根底知识和使用一种高级计算机语言编写程序以及上机调试的根本技能。
那么计算机等级考试二级会怎么考?以下仅供参考!以下各题 A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑。
答在试卷上不得分。
(1) 二进制数101110 转换为等值的八进制数是()。
A.45B.56C.67D.78(2) CPU 是由()组成的。
A.内存储器和控制器B.控制器和运算器C.内存储器和运算器D.内存储器、控制器和运算器(3) DOS 是为IBM PC 系列微型计算机及其兼容机所配置的()磁盘。
A.多用户多任务B.单用户单任务C.分时D.分布式(4) 启动MS-DOS 操作系统后,()已驻留内存。
A.B.C.D.CCCC.EXE(5) 设驱动器B 中软盘上的目录构造如以下图所示。
设当前目录为F2,那么把A 盘根目录下的PROG.BAS 文件复制到B 盘F3 子目录中的命令是()。
A.COPY PROG.BAS B:B.COPY A:PROG.BAS B:C.COPY A:PROG.BAS B:F3D.COPY A:PROG.BAS B:F3(6) 下面四组DOS 命令中,意义完全相同的一组是()。
A.COPY 和DISKCOPYB.P 和DISKPC.DEL 和RDD.RENAME 和REN(7) 防止软盘感染病毒的有效方法是()。
A.不要把软盘和有毒软盘放在一起B.在写保护缺口上贴上胶条C.保持机房清洁D.定期对软盘格式化(8) 双面高密度5 英寸软磁盘的容量是()。
A.360KBB.720KBD.1.44MB(9) 在FOXBASE 中,可以使用的两类变量是()。
A.内存变量和字段变量B.全局变量和部分变量C.字段变量和简单变量D.内存变量和自动变量(10) 建立一个新子目录的DOS 命令是()。
[it认证]2007-计算机二级c语言考试真题及答案
2007年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分100分)一、选择题((1)——(10)每题2分,(11)—(50)每题1分,共60分)下列各题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(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述正确的是A)数据系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用作用户标识符的一组标识符是A)and B)Date C)Hi D)case2007 y-m-d Dr. Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12 C)177 D)0x8A.5e-3 OXa23 4c1.5 10,000(14)以下叙述正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用min作为主函数名,程序将从开始执行,在此结束D)min可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf(“%d”,a,b,c);B)scanf(“%d%d%d”,a,b,c);C)scanf(“%d”,p);D)scanf(“%d”,&p)(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占内存的字节表C)由用户自己定义D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y=5;B)x=n%2.5;C)x+n=l;D)x=5=4+1(18)有以下程序段int j;float y;char name[50];scanf(“%2d%f%s”,&j,&y,name)当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55560.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i =0;do printf(“%d,”i); while(i++);printf(“%d \n”,i);其输出结果是A )0,0B )0,1C )1,1D )程序进入无限循环(20)有以下计算公式y = (0)(0)x x ≥< 若程序前面已在命令行中包含math.h 文件,不能够正确计算上述公式的程序段是A )if(x >=0) y =sprt(x);B )y =sqrt(x);else y =sqrt(-x); if(x <0)y =sqrt(x)C )if(x >=0)y =sqrt(x);D )y =sqrt(x >0?x;-x)If(x <0)y =sqrt(-x);(21)设有条件表达式:(EXP)? i++ ; j —,则以下表达式中与(EXP )完全等价的是A )(EXP=0)B )(EXP!=0)C )(EXP=1)D )(EXP!=1)(22)有以下程序#include <stdio,h>main()﹛inf y=9;for( ; y >0; y--)if(y%3=0) printf(“%d”, ‥y﹜程序的运行结果是A )741B )963C )852D )875421(23)已有定义:char c ;,程序前面已在命令行中包含ctype. h 文件。
全国计算机等级考试二级C语言程序设计真题精选6(含答案)
全国计算机等级考试二级C语言程序设计真题精选6一、单项选择题1.有以下程序:#includ<stdio.h>#defin4voifun(ina[][N],inb[])ini; for(i=0;i<N;i++)b[i]=a[i][i];}main()inx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i; fun(x,y); for(i=0;i<N;i++)printf("%d,",y[i]); printf("");}程序运行的结果是()。
A.1,2,3,4,B.1,0,7,0, √C.1,4,5,9D.3,4,8,0解析:数组x有4列。
fun函数中for循环的作用是将二维数组前4行的对角线元素赋给b[0],b[1],b[2],b[3]。
在主函数中,二维数组初始化为{1,2,3},{4},{5,6,7,8},{9,10},所以可以看出对角线元素为1,0,7,0,。
2.有以下程序:#includ<stdio.h>main()chaa=4; printf("%",a=a<<1);}程序运行的结果是()。
A.40B.16C.8 √D.4解析:左移一位相当于原数乘以2,右移一位相当于除以2。
a<<1结果为4*2=8,没有超过char类型的范围。
3.一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。
A.12345ABCDEB.EDCBA54321 √C.ABCDE12345D.54321EDCBA解析:栈是按照“先进后出”的原则组织数据的,入栈的顺序为12345ABCDE,则出栈的顺序应为其逆序,即EDCBA54321。
4.有以下程序:#includ<stdio.h>strucstinx,y;data[2]={1,10,2,20};main ()strucs*p=data; printf("%d,",p->y);printf("%",(++p)->x);}程序运行的结果是()。
历年全国计算机等级考试二级C语言笔试选择真题及答案
⼀、下列各题A、B、C、D四个选项中,只有⼀个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是A.栈是“先进先出”的线性表B.队列是“先进先出”的线性表C.循环队列是⾮线性结构D.有序性表既可以采⽤顺序存储结构,也可以采⽤链式存储结构(2)⽀持⼦程序调⽤的数据结构是A.栈B.树C.队列D.⼆叉树(3)某⼆叉树有5个度为2的结点,则该⼆叉树中的叶⼦结点数是A.10B.8C.6D.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如下:RABCa32b01c21SABa3b0c2由关系R通过运算得到关系S,则所使⽤的运算为A.选择B.投影C.插⼊D.连接(10)将E-R图转换为关系模式时,实体和联系都可以表⽰为A.属性B.键C.关系D.域(11)以下选项中合法的标识符是A.1-1B.1—1C.-11D.1--(12)若函数中有定义语句:int k;,则A.系统将⾃动给k赋初值0B.这时k中值⽆定义C.系统将⾃动给k赋初值-1D.这时k中⽆任何值(13)以下选项中,能⽤作数据常量的是A.0115B.0118C.1.5e1.5D.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)有以下程序#includemain(){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)有以下程序#includeMain(){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)有以下程序#includemain(){char*s=(“ABC.;do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2007年4月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分100分)一、选择题((1)—(10)每小题2分,(11)—(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是(B)A)算法的效率只与问题的规模有关,而与数据的存储结构无关B)算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻辑结构与存储结构是一一对应的D)算法的时间复杂度与空间复杂度一定相关(2)在结构化程序设计中,模块划分的原则是(D)A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度、模块间具有低耦合度(3)下列叙述中正确的是(A)A)软件测试的主要目的是发现程序中的错误B)软件测试的主要目的是确定程序中错误的位置C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D)软件测试是证明软件没有错误(4)下面选项中不属于面向对象程序设计特征的是(C)A)继承性B)多态性C)类比性D)封装性(5)下列对队列的叙述正确的是(D)A)队列属于非线性表B)队列按“先进后出”原则组织数据C)菱形D)平行四边形(10)下列叙述中错误的是(A)A) 在数据库系统中,数据的物理结构必须与逻辑结构一致B)数据库技术的根本目标是要解决数据的共享问题C)数据库设计是指在已有数据库管理系统的基础上建立数据库D)数据库系统需要操作系统的支持(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的(C)A)正当性B)可行性C)确定性D)有穷性(12)下列叙述中错误的是(D)A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B) A)大写字母B)连接符C)数字字符D)下划线(14)以下叙述中错误的是(C)A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法(15)对于一个正常运行的C程序,以下叙述中正确的是(A)A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束(16)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
以下所示的输入形式中正确的是(注:□代表空格字符)(D)A)10□X□20□Y〈回车〉B)10□X20□Y〈回车〉C)10□X〈回车〉D)10X〈回车〉20□Y〈回车〉20Y〈回车〉(17)若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是(C)A)sqrt(abs(n^x+e^x))B) sqrt(fabs(pow(n,x)+pow(x,e)))C)sqrt(fabs(pow(n,x)+exp(x)))D) sqrt(fabs(pow(x,n)+exp(x)))(18)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A)A)k++B)k+=1C)++kD)k+1(19)有以下程序,其中%u表示按无符号整数输出(B)main(){unsigned int x=0xFFFF; /* x的初值为十六进制数*/printf(“%u\n”,x);}程序运行后的输出结果是A)-1B)65535C)32767D)0xFFFF(20)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是(C)A)if(x++);B)if(x>y&&y!=0);C)if(x>y) x- -D)if(y<0) {;}else y++; else x++;(21)以下选项中,当x为大于1的奇数时,值为0的表达式(D)A)x%2==1B)x/2C)x%2!=0D)x%2==0(22)以下叙述中正确的是(C)A)break语句只能用于switch语句体中B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环C)break 语句只能用在循环体内和switch语句体内D)在循环体内使用break语句和continue语句的作用相同(23)有以下程序(A)main(){int k=5,n=0;do{switch(k){case1: case3:n+=1; break;default;n=0;k--;case2: case4:n+=2;k--;break;}printf(“%d”,n);}while(k>0&&n<5);}程序运行后的输出结果是A)235B)0235C)02356D)2356(24)有以下程序mian(){int i,j;for(i=1;i<4;i++){for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j);printf(“\n”);}}程序运行后的输出结果是(B)A)1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=32*1=2 2*2=4 2*2=4 2*3=63*1=3 3*3=9C) 1*1=1 D) 1*1=11*2=2 2*2=4 2*1=2 2*2=41*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9(25)以下合法的字符型常量是(A)A)”\x13”B)”\018”C)”65”D)”\n”(26)在C语言中,函数返回值的类型最终取决于(A)A)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型(27)已知大写字母A的ASCII码是65,小写字母aASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是(D)A)c=(c-A)&+‟a‟B)c=c+32C)c=c-…A‟+‟a‟D)c=(…A‟+c)&-…a‟(28)有以下函数int fun(char *s){char *t=s;while(*t++);return(t-s);}该函数的功能是(B)A)比较两个字符的大小B)计算s所指字符串占用内存字节的个数C)计算s所指字符串的长度D)将s所指字符串复制到字符串t中(29)设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是(D)A)float *p=1024;B)int *p=(float x);C)float p=&x;D)float *P=&x;(30)有以下程序#includemain(){int n,*p=NULL;*p=&n;printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d\n”,p);}该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是(A)A)int n,*p=NULL;B)*p=&n;C)scanf(“%d”,&p)D)printf(“%d\n”,p);(31)以下程序中函数f的功能是:当flag为1时,进行有由小到大排序;当flag 为0时,进行由大到小排序。
void f(int b[],int n,int flag){int i,j,t;for(i=0;i<N-1;I++)for (j=i+1;j<N;J++)if(flag?b[i]>b[j]:b[i]}main(){int a[10]={5,4,3,2,1,6,7,8,9,10},i;f(&a[2],5,0); f(a,5,1);for(i=0;i<10;i++) printf(“%d,”a[i]);}程序运行后的输出结果是(B)A)1,2,3,4,5,6,7,8,9,10,B)3,4,5,6,7,2,1,8,9,10,C)5,4,3,2,1,6,7,8,9,10,D)10,9,8,7,6,5,4,3,2,1,(32)有以下程序void f(int b[]){int i;for(i=2;i<6;i++) b[i]*=2;}main(){int a[10]={1,2,3,4,5,6,7,8,9,10},i;f(a);for(i=0;i<10;i++) printf(“%d,”,a[i]);}程序运行后的输出结果是(B)A)1,2,3,4,5,6,7,8,9,10,B)1,2,6,8,10,12,7,8,9,10C)1,2,3,4,10,12,14,16,9,10,D)1,2,6,8,10,12,14,16,9,10,(33)有以下程序typedef struct{int b,p;}A;void f(A c) /*注意:c是结构变量名*/{int j;c.b+=1; c.p+=2;}main(){int i;A a={1,2};f(a);printf(“%d,%d\n”,a.b,a.p);}程序运行后的输出结果是(D)A)2,3B)2,4C)1,4D)1,2(34)有以下程序main(){int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;for(i=0;i<4;i++)for(j=0;j<3;j++)for(k=j+1;k<4;k++)if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/ for(i=0;i<4;i++)printf(“%d,”,a[i][j]);}程序运行后的输出结果是(A)A)1,6,5,7,B)8,7,3,1,C)4,7,5,2,D)1,6,2,1,(35) 有以下程序main(){int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;for(i=0;i<3;i++)for(k=i+i;k<4;k++) if(a[i][i]for(i=0;i<4;i++)printf(“%d,”,a[0][i]);}程序运行后的输出结果是(B)A)6,2,1,1,B)6,4,3,2,C)1,1,2,6,D)2,3,4,6,</N;J++)</N-1;I++)(36) 有以下程序void f(int *q){int i=0;for( ; i<5;i++)(*q)++;}main(){int a[5]={1,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf(“%d,”,a[i]);}程序运行后的输出结果是(B)A)2,2,3,4,5,B)6,2,3,4,5,C)1,2,3,4,5,D) 2,3,4,5,6,(37) 有以下程序#includemain(){char p[20]={…a‟,‟b‟,‟c‟,‟d‟},q[]=”abc”, r[]=”abcde”; strcpy(p+strlen(q),r); strcat(p,q);printf(“%d%d\n”,sizeof(p),strlen(p));}程序运行后的输出结果是(C)A)20 9B)9 9C)20 11D)11 11(38) 有以下程序#includemain(){char p[20]={…a‟,‟b‟,‟c‟,‟d‟},q[]=”abc”, r[]=”abcde”strcat(p,r); Strcpy(p+strlen(q),q);Printf(“%d \n”,sizeof(p));}程序运行后的输出结果是(B)A)9B)6C)11D)7(39) 有以下程序#includemain()void f(char p[][10], int n )/* 字符串从小到大排序*/{ char t[10]; int i,j;for(i=0;i<N-1;I++)for(j=i+1;j<N;J++)if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); } }main(){char p[5][10]={“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”};f(p,5);printf(“%d\n”,strlen(p[0]));}程序运行后的输出结果是(C)A) 2B) 4C) 6D) 3(40) 有以下程序void f(int n, int *r){int r1=0;if(n%3==0) r1=n/3;else if(n%5==0) r1=n/5;else f(--n,&r1);*r=r1;}main(){int m=7,r;f(m,&r); printf(“%d\n,r”);}程序运行后的输出结果是(A)A) 2B) 1C)3D) 0</N;J++)</N-1;I++)(41)有以下程序main(int argc,char *argv[]){int n=0,i;for(i=1;i<ARGC;I++) n=n*10+*argv[i]-…0‟;printf(“%d\n”,n);}编译连接后生成可执行文件tt.exe,若运行时输入以下命令行tt 12 345 678程序运行后的输出结果是(D)A) 12B) 12345C)12345678D) 136(42) 有以下程序int a=4;int f(int n){int t=0; static int a=5;if(n%2) {int a=6; t+=a++;}else {int a=7 ;t+=a++;}return t+a++;}main(){int s=a,i=0;for(;i〈2;i++)s+=f(i);p rintf (“%d\n”,s);}程序运行后的输出结果是(B)A)24B)28C)32D)36(43)有一个名为init.txt的文件,内容如下:#define HDY(A,B) A/B# define PRINT(Y) Printf(“y=%d\n.,Y)有以下程序#include “init.txt”main(){int a=1,b=2,c=3,d=4,k;K=HDY(a+c,b+d);PRINT(K);}下面针对该程序的叙述正确的是(D)A)编译有错B)运行出错C)运行结果为y=0D) 运行结果为 y=6(44)有以下程序main(){char ch[]=“uvwxyz”,*pc;Pc=ch; printf(“%c\n”,*(pc+5));}程序运行后的输出结果是(A)A)zB)0C)元素ch[5]的地址D)字符y的地址(45)有以下程序struct S {int n; int a[20];};void f(struct S *P){int i,j,t;for(i=0;in-1;i++)for(j=i+1;jn;j++)if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t; } }main(){int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<S.N;I++) printf(“%d”,s.a[i]);}程序运行后的输出结果是(A)A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)2,3,1,6,8,7,5,4,10,9,D)10,9,8,7,6,1,2,3,4,5,(46) 有以下程序struct S{ int n; int a[20]; };void f(int *a,int n){int i;for(i=0;i<N-1;I++) a[i]+=i;}main(){int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};f(s.a, s.n);for(i=0;i<S.N;I++) printf(“%d”,s.a[i]);}程序运行后的输出结果是(A)A)2,4,3,9,12,12,11,11,18,9,B)3,4,2,7,9,8,6,5,11,10,C)2,3,1,6,8,7,5,4,10,9,D)1,2,3,6,8,7,5,4,10,9,(47) 有以下程序段typedef struct node { int data; struct node *next; } *NODE;NODE p;以下叙述正确的是(C)A)p是指向struct node结构变量的指针的指针B)NODE p;语句出错C)p是指向struct node结构变量的指针D)p是struct node结构变量(48)有以下程序main(){unsigned char a=2,b=4,c=5,d;d=a|b; d&=c; printf(“%d\n”,d); }程序运行后的输出结果是(B)A)3B)4C)5D)6(49)有以下程序#includemain(){FILE *fp; int k,n,a[6]={1,2,3,4,5,6};fp=fopen(“d2.dat”,”w”);fprintf(fp,”%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);fclose(fp);}程序运行后的输出结果是(D)A)1 2B)1 4C)123 4D) 123 456(50)有以下程序#includemain (){FILE *fp; int i,a[6]={1,2,3,4,5,6k};fp=fopen(“d3.dat”,”w+b”);fwrite(a,sizeof(int),6,fp);fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/fread(a,sizeof(int),3,fp); fclose(fp);for(i=0;i<6;i++) printf(“%d,”,a[i]);}程序运行后的输出结果是(A)A)4,5,6,4,5,6,B)1,2,3,4,5,6,C)4,5,6,1,2,3,D)6,5,4,3,2,1,二.填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分。